From 3dec249af38ac10d995ea4829993e76ae13fda9e Mon Sep 17 00:00:00 2001 From: havoc Date: Sun, 26 Sep 2004 13:42:22 +0000 Subject: [PATCH] static entities now light and shadow properly git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@4546 d7cf8633-e32d-0410-b094-e92efae38249 --- cl_main.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/cl_main.c b/cl_main.c index 307851ca..036a9245 100644 --- a/cl_main.c +++ b/cl_main.c @@ -897,10 +897,21 @@ void CL_RelinkWorld(void) static void CL_RelinkStaticEntities(void) { int i; - for (i = 0;i < cl_num_static_entities && r_refdef.numentities < r_refdef.maxentities;i++) + entity_t *e; + for (i = 0, e = cl_static_entities;i < cl_num_static_entities && r_refdef.numentities < r_refdef.maxentities;i++, e++) { - Mod_CheckLoaded(cl_static_entities[i].render.model); - r_refdef.entities[r_refdef.numentities++] = &cl_static_entities[i].render; + Mod_CheckLoaded(e->render.model); + e->render.flags = 0; + // transparent stuff can't be lit during the opaque stage + if (e->render.effects & (EF_ADDITIVE) || e->render.alpha < 1) + e->render.flags |= RENDER_TRANSPARENT; + // either fullbright or lit + if (!(e->render.effects & EF_FULLBRIGHT) && !r_fullbright.integer) + e->render.flags |= RENDER_LIGHT; + // hide player shadow during intermission or nehahra movie + if (!(e->render.effects & EF_NOSHADOW) && !(e->render.flags & RENDER_TRANSPARENT)) + e->render.flags |= RENDER_SHADOW; + r_refdef.entities[r_refdef.numentities++] = &e->render; } } -- 2.39.2