]> git.rm.cloudns.org Git - xonotic/darkplaces.git/commitdiff
fixed a critical bug with Vile and other midnight mods (dlights were being controlled...
authorhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Wed, 24 Nov 2004 13:39:38 +0000 (13:39 +0000)
committerhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Wed, 24 Nov 2004 13:39:38 +0000 (13:39 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@4783 d7cf8633-e32d-0410-b094-e92efae38249

cgamevm.c
cl_main.c
r_shadow.c

index ed2bc411c96d21c5cb2b8e5b0baf99a8da0c6876..f3250df194a551832129146ce52bd41f08b89824 100644 (file)
--- a/cgamevm.c
+++ b/cgamevm.c
@@ -169,7 +169,7 @@ void CGVM_Draw_Light(const cgdrawlight_t *l)
 {
        matrix4x4_t matrix;
        Matrix4x4_CreateTranslate(&matrix, l->origin[0], l->origin[1], l->origin[2]);
-       CL_AllocDlight(NULL, &matrix, l->radius, l->color[0], l->color[1], l->color[2], 0, 0, 0, 0, true, 1, 0.25, 0, 1, 1, LIGHTFLAG_NORMALMODE | LIGHTFLAG_REALTIMEMODE);
+       CL_AllocDlight(NULL, &matrix, l->radius, l->color[0], l->color[1], l->color[2], 0, 0, 0, -1, true, 1, 0.25, 0, 1, 1, LIGHTFLAG_NORMALMODE | LIGHTFLAG_REALTIMEMODE);
 }
 
 void *CGVM_Malloc(const int size)
index 41667e5f89badf0679b6664d4918323a336f5618..75d0d0eb437d89c499a86849ac548f921069a24f 100644 (file)
--- a/cl_main.c
+++ b/cl_main.c
@@ -745,7 +745,7 @@ void CL_LinkNetworkEntity(entity_t *e)
                        tempmatrix.m[0][3] = v[0];
                        tempmatrix.m[1][3] = v[1];
                        tempmatrix.m[2][3] = v[2];
-                       CL_AllocDlight(NULL, &tempmatrix, 100, e->persistent.muzzleflash, e->persistent.muzzleflash, e->persistent.muzzleflash, 0, 0, 0, 0, true, 0, 0.25, 0.25, 1, 1, LIGHTFLAG_NORMALMODE | LIGHTFLAG_REALTIMEMODE);
+                       CL_AllocDlight(NULL, &tempmatrix, 100, e->persistent.muzzleflash, e->persistent.muzzleflash, e->persistent.muzzleflash, 0, 0, 0, -1, true, 0, 0.25, 0.25, 1, 1, LIGHTFLAG_NORMALMODE | LIGHTFLAG_REALTIMEMODE);
                        e->persistent.muzzleflash -= cl.frametime * 10;
                }
                // LordHavoc: if the model has no flags, don't check each
@@ -818,7 +818,7 @@ void CL_LinkNetworkEntity(entity_t *e)
                        // hack to make glowing player light shine on their gun
                        //if ((e - cl_entities) == cl.viewentity/* && !chase_active.integer*/)
                        //      dlightmatrix.m[2][3] += 30;
-                       CL_AllocDlight(&e->render, &e->render.matrix, dlightradius, dlightcolor[0], dlightcolor[1], dlightcolor[2], 0, 0, 0, 0, true, 1, 0.25, 0.25, 1, 1, LIGHTFLAG_NORMALMODE | LIGHTFLAG_REALTIMEMODE);
+                       CL_AllocDlight(&e->render, &e->render.matrix, dlightradius, dlightcolor[0], dlightcolor[1], dlightcolor[2], 0, 0, 0, -1, true, 1, 0.25, 0.25, 1, 1, LIGHTFLAG_NORMALMODE | LIGHTFLAG_REALTIMEMODE);
                }
                // custom rtlight
                if (e->state_current.lightpflags & PFLAGS_FULLDYNAMIC)
@@ -1068,7 +1068,7 @@ void CL_RelinkBeams(void)
                        {
                                // FIXME: create a matrix from the beam start/end orientation
                                Matrix4x4_CreateTranslate(&tempmatrix, b->end[0], b->end[1], b->end[2]);
-                               CL_AllocDlight (NULL, &tempmatrix, 200, 0.3, 0.7, 1, 0, 0, 0, 0, true, 1, 0.25, 1, 0, 0, LIGHTFLAG_NORMALMODE | LIGHTFLAG_REALTIMEMODE);
+                               CL_AllocDlight (NULL, &tempmatrix, 200, 0.3, 0.7, 1, 0, 0, 0, -1, true, 1, 0.25, 1, 0, 0, LIGHTFLAG_NORMALMODE | LIGHTFLAG_REALTIMEMODE);
                        }
                        if (cl_beams_polygons.integer)
                                continue;
index f495c7189b2213cbe4d45551e7ca7968278e7a2b..ba4f461b8575ba8a7be0a008f5b0b2d66a9a16c9 100644 (file)
@@ -2185,7 +2185,7 @@ void R_RTLight_UpdateFromDLight(rtlight_t *rtlight, const dlight_t *light, int i
 
        rtlight->lightmap_cullradius = bound(0, rtlight->radius, 2048.0f);
        rtlight->lightmap_cullradius2 = rtlight->lightmap_cullradius * rtlight->lightmap_cullradius;
-       VectorScale(rtlight->color, rtlight->radius * d_lightstylevalue[rtlight->style] * 0.125f, rtlight->lightmap_light);
+       VectorScale(rtlight->color, rtlight->radius * (rtlight->style >= 0 ? d_lightstylevalue[rtlight->style] : 128) * 0.125f, rtlight->lightmap_light);
        rtlight->lightmap_subtract = 1.0f / rtlight->lightmap_cullradius2;
 }
 
@@ -2334,7 +2334,7 @@ void R_DrawRTLight(rtlight_t *rtlight, int visiblevolumes)
        cullmaxs[0] = rtlight->shadoworigin[0] + rtlight->radius;
        cullmaxs[1] = rtlight->shadoworigin[1] + rtlight->radius;
        cullmaxs[2] = rtlight->shadoworigin[2] + rtlight->radius;
-       if (d_lightstylevalue[rtlight->style] <= 0)
+       if (rtlight->style >= 0 && d_lightstylevalue[rtlight->style] <= 0)
                return;
        numclusters = 0;
        clusterlist = NULL;
@@ -2381,7 +2381,7 @@ void R_DrawRTLight(rtlight_t *rtlight, int visiblevolumes)
        if (R_Shadow_ScissorForBBox(cullmins, cullmaxs))
                return;
 
-       f = d_lightstylevalue[rtlight->style] * (1.0f / 256.0f);
+       f = (rtlight->style >= 0 ? d_lightstylevalue[rtlight->style] : 128) * (1.0f / 256.0f);
        VectorScale(rtlight->color, f, lightcolor);
        /*
        if (rtlight->selected)