From: havoc Date: Sun, 26 Sep 2004 13:42:22 +0000 (+0000) Subject: static entities now light and shadow properly X-Git-Tag: xonotic-v0.1.0preview~5563 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=3dec249af38ac10d995ea4829993e76ae13fda9e;p=xonotic%2Fdarkplaces.git static entities now light and shadow properly git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@4546 d7cf8633-e32d-0410-b094-e92efae38249 --- 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; } }