X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=model_sprite.c;h=7c80ef482ce37a59cf2009d55323850de078161b;hb=0873bc01c7ed42a79c9f55d7cc26deaa8a67b4c4;hp=df70609f6dba352efde24d8e7c7eeb00e1bafab8;hpb=9e10334c3d85c0ff3630fe015f40b5c5a227668a;p=xonotic%2Fdarkplaces.git diff --git a/model_sprite.c b/model_sprite.c index df70609f..7c80ef48 100644 --- a/model_sprite.c +++ b/model_sprite.c @@ -26,7 +26,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "image.h" cvar_t r_mipsprites = {CVAR_SAVE, "r_mipsprites", "1", "mipmaps sprites so they render faster in the distance and do not display noise artifacts"}; -cvar_t r_picmipsprites = {CVAR_SAVE, "r_picmipsprites", "1", "make gl_picmip affect sprites too (saves some graphics memory in sprite heavy games)"}; cvar_t r_labelsprites_scale = {CVAR_SAVE, "r_labelsprites_scale", "1", "global scale to apply to label sprites before conversion to HUD coordinates"}; cvar_t r_labelsprites_roundtopixels = {CVAR_SAVE, "r_labelsprites_roundtopixels", "1", "try to make label sprites sharper by rounding their size to 0.5x or 1x and by rounding their position to whole pixels if possible"}; @@ -38,7 +37,6 @@ Mod_SpriteInit void Mod_SpriteInit (void) { Cvar_RegisterVariable(&r_mipsprites); - Cvar_RegisterVariable(&r_picmipsprites); Cvar_RegisterVariable(&r_labelsprites_scale); Cvar_RegisterVariable(&r_labelsprites_roundtopixels); } @@ -47,21 +45,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 +77,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) | TEXF_ISSPRITE | TEXF_PICMIP | TEXF_ALPHA | TEXF_CLAMP; modelradius = 0; if (loadmodel->numframes < 1) @@ -347,11 +354,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) | TEXF_ISSPRITE | TEXF_PICMIP | TEXF_COMPRESS | TEXF_ALPHA | TEXF_CLAMP; loadmodel->modeldatatypestring = "SPR2";