From 330d19b0af5d7f0515f93d4d6f3d9a81c2e339b4 Mon Sep 17 00:00:00 2001 From: havoc Date: Tue, 17 Feb 2009 18:40:49 +0000 Subject: [PATCH] fix bugs with missing shader replacements casting shadows 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 | 2 +- model_alias.c | 2 +- model_brush.c | 3 +-- model_shared.c | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/gl_rmain.c b/gl_rmain.c index 31e10531..ab597a4a 100644 --- a/gl_rmain.c +++ b/gl_rmain.c @@ -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; } diff --git a/model_alias.c b/model_alias.c index 3f6efa5b..6feaa127 100644 --- a/model_alias.c +++ b/model_alias.c @@ -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; } } } diff --git a/model_brush.c b/model_brush.c index de83c864..874892a9 100644 --- a/model_brush.c +++ b/model_brush.c @@ -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; diff --git a/model_shared.c b/model_shared.c index eac0865b..c710eb0a 100644 --- a/model_shared.c +++ b/model_shared.c @@ -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) -- 2.39.2