]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - r_shadow.c
380 items left.
[xonotic/darkplaces.git] / r_shadow.c
index bc4fd664d843e9c924757d8ae4259a8d7d5b03ac..a209709ec1cacc82f7cdbc268dedf1c4d6d0b3a4 100644 (file)
@@ -919,7 +919,7 @@ void R_Shadow_Stage_LightWithoutShadows(void)
        qglPolygonOffset(0, 0);
        //qglDisable(GL_POLYGON_OFFSET_FILL);
        GL_Color(1, 1, 1, 1);
-       GL_ColorMask(1, 1, 1, 1);
+       GL_ColorMask(r_refdef.colormask[0], r_refdef.colormask[1], r_refdef.colormask[2], 1);
        qglDepthFunc(GL_EQUAL);
        qglCullFace(GL_FRONT); // quake is backwards, this culls back faces
        qglEnable(GL_CULL_FACE);
@@ -944,7 +944,7 @@ void R_Shadow_Stage_LightWithShadows(void)
        qglPolygonOffset(0, 0);
        //qglDisable(GL_POLYGON_OFFSET_FILL);
        GL_Color(1, 1, 1, 1);
-       GL_ColorMask(1, 1, 1, 1);
+       GL_ColorMask(r_refdef.colormask[0], r_refdef.colormask[1], r_refdef.colormask[2], 1);
        qglDepthFunc(GL_EQUAL);
        qglCullFace(GL_FRONT); // quake is backwards, this culls back faces
        qglEnable(GL_STENCIL_TEST);
@@ -970,7 +970,7 @@ void R_Shadow_Stage_End(void)
        qglPolygonOffset(0, 0);
        //qglDisable(GL_POLYGON_OFFSET_FILL);
        GL_Color(1, 1, 1, 1);
-       GL_ColorMask(1, 1, 1, 1);
+       GL_ColorMask(r_refdef.colormask[0], r_refdef.colormask[1], r_refdef.colormask[2], 1);
        GL_Scissor(r_view_x, r_view_y, r_view_width, r_view_height);
        qglDepthFunc(GL_LEQUAL);
        qglCullFace(GL_FRONT); // quake is backwards, this culls back faces
@@ -1579,7 +1579,7 @@ void R_Shadow_RenderLighting(int numverts, int numtriangles, const int *elements
                        }
                        // this final code is shared
                        R_Mesh_State(&m);
-                       GL_ColorMask(1,1,1,0);
+                       GL_ColorMask(r_refdef.colormask[0], r_refdef.colormask[1], r_refdef.colormask[2], 0);
                        GL_BlendFunc(GL_DST_ALPHA, GL_ONE);
                        VectorScale(lightcolor, colorscale, color2);
                        for (renders = 0;renders < 64 && (color2[0] > 0 || color2[1] > 0 || color2[2] > 0);renders++, color2[0]--, color2[1]--, color2[2]--)
@@ -1809,7 +1809,7 @@ void R_Shadow_RenderLighting(int numverts, int numtriangles, const int *elements
                                }
                        }
                        R_Mesh_State(&m);
-                       GL_ColorMask(1,1,1,0);
+                       GL_ColorMask(r_refdef.colormask[0], r_refdef.colormask[1], r_refdef.colormask[2], 0);
                        GL_BlendFunc(GL_DST_ALPHA, GL_ONE);
                        VectorScale(lightcolor, colorscale, color2);
                        GL_LockArrays(0, numverts);
@@ -2719,6 +2719,7 @@ void R_Shadow_LoadWorldLightsFromMap_LightArghliteTyrlite(void)
                origin[0] = origin[1] = origin[2] = 0;
                originhack[0] = originhack[1] = originhack[2] = 0;
                angles[0] = angles[1] = angles[2] = 0;
+               color[0] = color[1] = color[2] = 1;
                light[0] = light[1] = light[2] = 1;light[3] = 300;
                overridecolor[0] = overridecolor[1] = overridecolor[2] = 1;
                fadescale = 1;
@@ -3214,14 +3215,28 @@ void R_Shadow_EditLights_Edit_f(void)
        R_Shadow_NewWorldLight(origin, angles, color, radius, corona, style, shadows, cubemapname);
 }
 
+void R_Shadow_EditLights_EditAll_f(void)
+{
+       dlight_t *light;
+
+       for (light = r_shadow_worldlightchain;light;light = light->next)
+       {
+               R_Shadow_SelectLight(light);
+               R_Shadow_EditLights_Edit_f();
+       }
+}
+
 void R_Shadow_EditLights_DrawSelectedLightProperties(void)
 {
        float x, y;
        char temp[256];
-       if (r_shadow_selectedlight == NULL)
+       if (!r_editlights.integer)
                return;
        x = 0;
        y = con_vislines;
+       sprintf(temp, "Cursor  %f %f %f", r_editlights_cursorlocation[0], r_editlights_cursorlocation[1], r_editlights_cursorlocation[2]);DrawQ_String(x, y, temp, 0, 8, 8, 1, 1, 1, 1, 0);y += 8;
+       if (r_shadow_selectedlight == NULL)
+               return;
        sprintf(temp, "Light properties");DrawQ_String(x, y, temp, 0, 8, 8, 1, 1, 1, 1, 0);y += 8;
        sprintf(temp, "Origin  %f %f %f", r_shadow_selectedlight->origin[0], r_shadow_selectedlight->origin[1], r_shadow_selectedlight->origin[2]);DrawQ_String(x, y, temp, 0, 8, 8, 1, 1, 1, 1, 0);y += 8;
        sprintf(temp, "Angles  %f %f %f", r_shadow_selectedlight->angles[0], r_shadow_selectedlight->angles[1], r_shadow_selectedlight->angles[2]);DrawQ_String(x, y, temp, 0, 8, 8, 1, 1, 1, 1, 0);y += 8;
@@ -3346,6 +3361,7 @@ void R_Shadow_EditLights_Init(void)
        Cmd_AddCommand("r_editlights_save", R_Shadow_EditLights_Save_f);
        Cmd_AddCommand("r_editlights_spawn", R_Shadow_EditLights_Spawn_f);
        Cmd_AddCommand("r_editlights_edit", R_Shadow_EditLights_Edit_f);
+       Cmd_AddCommand("r_editlights_editall", R_Shadow_EditLights_EditAll_f);
        Cmd_AddCommand("r_editlights_remove", R_Shadow_EditLights_Remove_f);
        Cmd_AddCommand("r_editlights_toggleshadow", R_Shadow_EditLights_ToggleShadow_f);
        Cmd_AddCommand("r_editlights_togglecorona", R_Shadow_EditLights_ToggleCorona_f);