]> git.xonotic.org Git - xonotic/darkplaces.git/commitdiff
fix bugs with missing shader replacements casting shadows
authorhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Tue, 17 Feb 2009 18:40:49 +0000 (18:40 +0000)
committerhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Tue, 17 Feb 2009 18:40:49 +0000 (18:40 +0000)
fix bugs with surfaceparm nodraw casting shadows

git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@8720 d7cf8633-e32d-0410-b094-e92efae38249

gl_rmain.c
model_alias.c
model_brush.c
model_shared.c

index 31e10531fa24e0b9a2444b338fb7d66f410cd21e..ab597a4a174e569d635868caf443f963f1590ac0 100644 (file)
@@ -4573,7 +4573,7 @@ void R_UpdateTextureInfo(const entity_render_t *ent, texture_t *t)
 
        if (t->basematerialflags & MATERIALFLAG_NODRAW)
        {
-               t->currentmaterialflags = MATERIALFLAG_NODRAW;
+               t->currentmaterialflags = t->basematerialflags & (MATERIALFLAG_NODRAW | MATERIALFLAG_NOSHADOW);
                return;
        }
 
index 3f6efa5ba89706b4fdfa25bc24c27a771b8f33bc..6feaa127b27e316a28640b306cd5b1481f42b22a 100644 (file)
@@ -819,7 +819,7 @@ static void Mod_BuildAliasSkinsFromSkinFiles(texture_t *skin, skinfile_t *skinfi
                        {
                                // don't render unmentioned meshes
                                Mod_BuildAliasSkinFromSkinFrame(skin, NULL);
-                               skin->basematerialflags = skin->currentmaterialflags = 0;
+                               skin->basematerialflags = skin->currentmaterialflags = MATERIALFLAG_NOSHADOW | MATERIALFLAG_NODRAW;
                        }
                }
        }
index de83c8643f918426e5ade92785b8e875a2e9e403..874892a93ddf07298a4c6c4d17f432c39e034453 100644 (file)
@@ -1358,7 +1358,6 @@ static void Mod_Q1BSP_LoadTextures(lump_t *l)
                        tx->skinframerate = 1;
                        tx->skinframes[0] = skinframe;
                        tx->currentskinframe = tx->skinframes[0];
-                       tx->basematerialflags = 0;
                }
                tx->basematerialflags = MATERIALFLAG_WALL;
                if (i == loadmodel->num_textures - 1)
@@ -1563,7 +1562,7 @@ static void Mod_Q1BSP_LoadTextures(lump_t *l)
                        else if (!strncmp(tx->name, "sky", 3))
                                tx->basematerialflags = MATERIALFLAG_SKY | MATERIALFLAG_NOSHADOW;
                        else if (!strcmp(tx->name, "caulk"))
-                               tx->basematerialflags = MATERIALFLAG_NODRAW;
+                               tx->basematerialflags = MATERIALFLAG_NODRAW | MATERIALFLAG_NOSHADOW;
                        else if (tx->skinframes[0] && tx->skinframes[0]->fog)
                                tx->basematerialflags |= MATERIALFLAG_ALPHA | MATERIALFLAG_BLENDED | MATERIALFLAG_NOSHADOW;
 
index eac0865badb3468fbce1e2de18665989cedbde85..c710eb0a3f97071fd8ce794d4707e661ba9dff27 100644 (file)
@@ -1786,7 +1786,6 @@ qboolean Mod_LoadTextureFromQ3Shader(texture_t *texture, const char *name, qbool
                if(!(defaulttexflags & TEXF_COMPRESS))
                        texture->textureflags &= ~TEXF_COMPRESS;
 
-               texture->basematerialflags = 0;
                if (shader->surfaceparms & Q3SURFACEPARM_SKY)
                {
                        texture->basematerialflags = MATERIALFLAG_SKY | MATERIALFLAG_NOSHADOW;
@@ -1800,6 +1799,7 @@ qboolean Mod_LoadTextureFromQ3Shader(texture_t *texture, const char *name, qbool
                        texture->basematerialflags = MATERIALFLAG_NODRAW | MATERIALFLAG_NOSHADOW;
                else
                        texture->basematerialflags = MATERIALFLAG_WALL;
+
                if (shader->layers[0].alphatest)
                        texture->basematerialflags |= MATERIALFLAG_ALPHATEST | MATERIALFLAG_NOSHADOW;
                if (shader->textureflags & Q3TEXTUREFLAG_TWOSIDED)