]> de.git.xonotic.org Git - xonotic/darkplaces.git/commitdiff
static entities now light and shadow properly
authorhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Sun, 26 Sep 2004 13:42:22 +0000 (13:42 +0000)
committerhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Sun, 26 Sep 2004 13:42:22 +0000 (13:42 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@4546 d7cf8633-e32d-0410-b094-e92efae38249

cl_main.c

index 307851cada0756de918c4cd199616808132a9ef2..036a92452921f697837bfd41f5c4fbae1da77010 100644 (file)
--- 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;
        }
 }