]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - cl_main.c
eliminated RENDER_NOCULLFACE (now uses MATERIALFLAG_NOCULLFACE on a texture)
[xonotic/darkplaces.git] / cl_main.c
index b501d8e8fd06f5aef6864772ff690abce7568e3c..735660494ddec0951117c1b11584fed542005600 100644 (file)
--- a/cl_main.c
+++ b/cl_main.c
@@ -969,19 +969,13 @@ void CL_UpdateNetworkEntity(entity_t *e, int recursionlimit)
        // player model is only shown with chase_active on
        if (e->state_current.number == cl.viewentity)
                e->render.flags |= RENDER_EXTERIORMODEL;
-       // transparent stuff can't be lit during the opaque stage
-       if (e->render.effects & (EF_ADDITIVE | EF_NODEPTHTEST) || e->render.alpha < 1)
-               e->render.flags |= RENDER_TRANSPARENT;
-       // double sided rendering mode causes backfaces to be visible
-       // (mostly useful on transparent stuff)
-       if (e->render.effects & EF_DOUBLESIDED)
-               e->render.flags |= RENDER_NOCULLFACE;
        // 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_VIEWMODEL | RENDER_TRANSPARENT))
+       if (!(e->render.effects & (EF_NOSHADOW | EF_ADDITIVE | EF_NODEPTHTEST))
+        && (e->render.alpha >= 1)
+        && !(e->render.flags & RENDER_VIEWMODEL)
         && (!(e->render.flags & RENDER_EXTERIORMODEL) || (!cl.intermission && cls.protocol != PROTOCOL_NEHAHRAMOVIE && !cl_noplayershadow.integer)))
                e->render.flags |= RENDER_SHADOW;
 }
@@ -1331,14 +1325,11 @@ static void CL_RelinkStaticEntities(void)
                // need to re-fetch the model pointer
                e->render.model = cl.model_precache[e->state_baseline.modelindex];
                CL_UpdateRenderEntity(&e->render);
-               // transparent stuff can't be lit during the opaque stage
-               if (e->render.effects & (EF_ADDITIVE | EF_NODEPTHTEST) || 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))
+               if (!(e->render.effects & (EF_NOSHADOW | EF_ADDITIVE | EF_NODEPTHTEST)) && (e->render.alpha >= 1))
                        e->render.flags |= RENDER_SHADOW;
                VectorSet(e->render.colormod, 1, 1, 1);
                R_LerpAnimation(&e->render);