]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - cl_main.c
fix r_editlights_edit not accepting some commands
[xonotic/darkplaces.git] / cl_main.c
index 42b01de1846b8194feaa63155b5202635d077190..5ccdc562ea83a796a58323a076401ef5bc524998 100644 (file)
--- a/cl_main.c
+++ b/cl_main.c
@@ -798,9 +798,12 @@ void CL_LinkNetworkEntity(entity_t *e)
                        dlightradius = max(dlightradius, e->state_current.glowsize * 4);
                        VectorMA(dlightcolor, (1.0f / 255.0f), (qbyte *)&palette_complete[e->state_current.glowcolor], dlightcolor);
                }
-               if (e->state_current.light[3])
+               if (e->state_current.lightpflags & PFLAGS_FULLDYNAMIC)
                {
-                       dlightradius = max(dlightradius, e->state_current.light[3]);
+                       if (e->state_current.light[3])
+                               dlightradius = max(dlightradius, e->state_current.light[3]);
+                       else
+                               dlightradius = max(dlightradius, 350);
                        if (VectorLength2(dlightcolor) == 0)
                                (dlightcolor[0] += 1, dlightcolor[1] += 1, dlightcolor[2] += 1);
                        else
@@ -813,7 +816,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, &dlightmatrix, dlightradius, dlightcolor[0], dlightcolor[1], dlightcolor[2], 0, 0, e->state_current.skin >= 16 ? e->state_current.skin : 0, e->state_current.lightstyle, !(e->state_current.lightpflags & 1), 1);
+                       CL_AllocDlight(&e->render, &dlightmatrix, dlightradius, dlightcolor[0], dlightcolor[1], dlightcolor[2], 0, 0, e->state_current.skin >= 16 ? e->state_current.skin : 0, e->state_current.lightstyle, !(e->state_current.lightpflags & PFLAGS_NOSHADOW), (e->state_current.lightpflags & PFLAGS_FULLDYNAMIC) ? ((e->state_current.lightpflags & PFLAGS_CORONA) != 0) : 1);
                }
                // trails need the previous frame
                if (e->state_previous.active && e->state_previous.modelindex == e->state_current.modelindex)
@@ -832,11 +835,15 @@ void CL_LinkNetworkEntity(entity_t *e)
                 && !(e->render.flags & RENDER_VIEWMODEL)
                 && ((e - cl_entities) != cl.viewentity || (!cl.intermission && cl.protocol != PROTOCOL_NEHAHRAMOVIE && !cl_noplayershadow.integer)))
                        e->render.flags |= RENDER_SHADOW;
+               if (!(e->render.effects & EF_FULLBRIGHT))
+                       e->render.flags |= RENDER_LIGHT;
                // as soon as player is known we can call V_CalcRefDef
                if ((e - cl_entities) == cl.viewentity)
                        V_CalcRefdef();
                if (e->render.model && e->render.model->name[0] == '*' && e->render.model->TraceBox)
                        cl_brushmodel_entities[cl_num_brushmodel_entities++] = &e->render;
+               if (gamemode == GAME_TENEBRAE && e->render.model && e->render.model->type == mod_sprite)
+                       e->render.effects |= EF_ADDITIVE;
                // don't show entities with no modelindex (note: this still shows
                // entities which have a modelindex that resolved to a NULL model)
                if (e->render.model && !(e->render.effects & EF_NODRAW) && r_refdef.numentities < r_refdef.maxentities)
@@ -1133,6 +1140,7 @@ int CL_ReadFromServer(void)
 
                // move particles
                CL_MoveParticles();
+               R_MoveExplosions();
 
                // link stuff
                CL_RelinkWorld();