X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=model_sprite.c;h=3827ab2d49b128d26ba8f3e0e766758b62ca18ce;hb=064213f25fd7d96bf1608bdbdb1e604ff0efd9f5;hp=df70609f6dba352efde24d8e7c7eeb00e1bafab8;hpb=9e10334c3d85c0ff3630fe015f40b5c5a227668a;p=xonotic%2Fdarkplaces.git diff --git a/model_sprite.c b/model_sprite.c index df70609f..3827ab2d 100644 --- a/model_sprite.c +++ b/model_sprite.c @@ -47,21 +47,30 @@ static void Mod_SpriteSetupTexture(texture_t *texture, skinframe_t *skinframe, q { if (!skinframe) skinframe = R_SkinFrame_LoadMissing(); + texture->offsetmapping = OFFSETMAPPING_OFF; + texture->offsetscale = 1; + texture->specularscalemod = 1; + texture->specularpowermod = 1; texture->basematerialflags = MATERIALFLAG_WALL; if (fullbright) texture->basematerialflags |= MATERIALFLAG_FULLBRIGHT; if (additive) texture->basematerialflags |= MATERIALFLAG_ADD | MATERIALFLAG_BLENDED | MATERIALFLAG_NOSHADOW; - else if (skinframe->fog) + else if (skinframe->hasalpha) texture->basematerialflags |= MATERIALFLAG_ALPHA | MATERIALFLAG_BLENDED | MATERIALFLAG_NOSHADOW; texture->currentmaterialflags = texture->basematerialflags; texture->numskinframes = 1; texture->currentskinframe = texture->skinframes[0] = skinframe; + texture->surfaceflags = 0; + texture->supercontents = SUPERCONTENTS_SOLID; + if (!(texture->basematerialflags & MATERIALFLAG_BLENDED)) + texture->supercontents |= SUPERCONTENTS_OPAQUE; } static void Mod_Sprite_SharedSetup(const unsigned char *datapointer, int version, const unsigned int *palette, qboolean additive) { - int i, j, groupframes, realframes, x, y, origin[2], width, height, fullbright; + int i, j, groupframes, realframes, x, y, origin[2], width, height; + qboolean fullbright; dspriteframetype_t *pinframetype; dspriteframe_t *pinframe; dspritegroup_t *pingroup; @@ -70,7 +79,7 @@ static void Mod_Sprite_SharedSetup(const unsigned char *datapointer, int version float modelradius, interval; char name[MAX_QPATH], fogname[MAX_QPATH]; const void *startframes; - int texflags = (r_mipsprites.integer ? TEXF_MIPMAP : 0) | (r_picmipsprites.integer ? TEXF_PICMIP : 0) | TEXF_ALPHA | TEXF_CLAMP | TEXF_PRECACHE; + int texflags = (r_mipsprites.integer ? TEXF_MIPMAP : 0) | (r_picmipsprites.integer ? TEXF_PICMIP : 0) | TEXF_ALPHA | TEXF_CLAMP; modelradius = 0; if (loadmodel->numframes < 1) @@ -347,11 +356,12 @@ void Mod_IDSP_Load(dp_model_t *mod, void *buffer, void *bufferend) void Mod_IDS2_Load(dp_model_t *mod, void *buffer, void *bufferend) { - int i, version, fullbright; + int i, version; + qboolean fullbright; const dsprite2_t *pinqsprite; skinframe_t *skinframe; float modelradius; - int texflags = (r_mipsprites.integer ? TEXF_MIPMAP : 0) | (r_picmipsprites.integer ? TEXF_PICMIP : 0) | TEXF_COMPRESS | TEXF_ALPHA | TEXF_CLAMP | TEXF_PRECACHE; + int texflags = (r_mipsprites.integer ? TEXF_MIPMAP : 0) | (r_picmipsprites.integer ? TEXF_PICMIP : 0) | TEXF_COMPRESS | TEXF_ALPHA | TEXF_CLAMP; loadmodel->modeldatatypestring = "SPR2";