X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=model_brush.c;h=12ae4d6feb9784391354336e78bcf211187b07f3;hb=9fb9f7ec19abcbd8caa7b2c61a0c990d03d674a3;hp=3278bcd467722a140210bedcbc1ccc06bee19084;hpb=a5ef877c54194120f900afe7f5a4759f2ce7799e;p=xonotic%2Fdarkplaces.git diff --git a/model_brush.c b/model_brush.c index 3278bcd4..12ae4d6f 100644 --- a/model_brush.c +++ b/model_brush.c @@ -1317,6 +1317,9 @@ static void Mod_Q1BSP_LoadTextures(lump_t *l) unsigned char *data, *mtdata; const char *s; char mapname[MAX_QPATH], name[MAX_QPATH]; + unsigned char zero[4]; + + memset(zero, 0, sizeof(zero)); loadmodel->data_textures = NULL; @@ -1533,14 +1536,29 @@ static void Mod_Q1BSP_LoadTextures(lump_t *l) if (tx->name[0] == '*') { // LordHavoc: some turbulent textures should not be affected by wateralpha - if (strncmp(tx->name,"*lava",5) - && strncmp(tx->name,"*teleport",9) - && strncmp(tx->name,"*rift",5)) // Scourge of Armagon texture - tx->basematerialflags |= MATERIALFLAG_WATERALPHA | MATERIALFLAG_NOSHADOW | MATERIALFLAG_WATERSHADER; - tx->basematerialflags |= MATERIALFLAG_WATER | MATERIALFLAG_LIGHTBOTHSIDES | MATERIALFLAG_NOSHADOW; + if (!strncmp(tx->name, "*glassmirror", 12)) // Tenebrae + { + // replace the texture with transparent black + tx->skinframes[0] = R_SkinFrame_LoadInternalBGRA(tx->name, TEXF_MIPMAP | TEXF_PRECACHE, zero, 1, 1); + tx->basematerialflags |= MATERIALFLAG_WATER | MATERIALFLAG_NOSHADOW | MATERIALFLAG_ADD | MATERIALFLAG_BLENDED | MATERIALFLAG_REFLECTION; + } + else if (!strncmp(tx->name,"*lava",5) + || !strncmp(tx->name,"*teleport",9) + || !strncmp(tx->name,"*rift",5)) // Scourge of Armagon texture + tx->basematerialflags |= MATERIALFLAG_WATER | MATERIALFLAG_LIGHTBOTHSIDES | MATERIALFLAG_NOSHADOW; + else + tx->basematerialflags |= MATERIALFLAG_WATER | MATERIALFLAG_LIGHTBOTHSIDES | MATERIALFLAG_NOSHADOW | MATERIALFLAG_WATERALPHA | MATERIALFLAG_WATERSHADER; + } + else if (!strncmp(tx->name, "mirror", 6)) // Tenebrae + { + // replace the texture with transparent black + tx->skinframes[0] = R_SkinFrame_LoadInternalBGRA(tx->name, TEXF_PRECACHE, zero, 1, 1); + tx->basematerialflags |= MATERIALFLAG_WALL | MATERIALFLAG_REFLECTION; } else if (!strncmp(tx->name, "sky", 3)) tx->basematerialflags |= MATERIALFLAG_SKY | MATERIALFLAG_NOSHADOW; + else if (!strcmp(tx->name, "caulk")) + tx->basematerialflags = MATERIALFLAG_NODRAW; else tx->basematerialflags |= MATERIALFLAG_WALL; if (tx->skinframes[0] && tx->skinframes[0]->fog)