- int i, j, groupframes, realframes, x, y, origin[2], width, height;
- dspriteframetype_t *pinframetype;
- dspriteframe_t *pinframe;
- dspritegroup_t *pingroup;
- dspriteinterval_t *pinintervals;
- float modelradius, interval;
- char name[MAX_QPATH], fogname[MAX_QPATH];
- qbyte *pixbuf;
- const void *startframes;
+ if (!skinframe)
+ skinframe = R_SkinFrame_LoadMissing();
+ texture->offsetmapping = OFFSETMAPPING_OFF;
+ texture->offsetscale = 1;
+ texture->offsetbias = 0;
+ texture->specularscalemod = 1;
+ texture->specularpowermod = 1;
+ texture->basematerialflags = MATERIALFLAG_WALL;
+ texture->basealpha = 1.0f;
+ if (fullbright)
+ texture->basematerialflags |= MATERIALFLAG_FULLBRIGHT;
+ if (additive)
+ texture->basematerialflags |= MATERIALFLAG_ADD | MATERIALFLAG_BLENDED | MATERIALFLAG_NOSHADOW;
+ else if (skinframe->hasalpha)
+ texture->basematerialflags |= MATERIALFLAG_ALPHA | MATERIALFLAG_BLENDED | MATERIALFLAG_NOSHADOW;
+ texture->currentmaterialflags = texture->basematerialflags;
+ texture->materialshaderpass = texture->shaderpasses[0] = Mod_CreateShaderPass(loadmodel->mempool, skinframe);
+ texture->currentskinframe = skinframe;
+ texture->surfaceflags = 0;
+ texture->supercontents = SUPERCONTENTS_SOLID;
+ if (!(texture->basematerialflags & MATERIALFLAG_BLENDED))
+ texture->supercontents |= SUPERCONTENTS_OPAQUE;
+ texture->transparentsort = TRANSPARENTSORT_DISTANCE;
+ // WHEN ADDING DEFAULTS HERE, REMEMBER TO PUT DEFAULTS IN ALL LOADERS
+ // JUST GREP FOR "specularscalemod = 1".
+}
+
+extern cvar_t gl_texturecompression_sprites;
+
+static void Mod_Sprite_SharedSetup(const unsigned char *datapointer, int version, const unsigned int *palette, qbool additive)
+{
+ int i, j, groupframes, realframes, x, y, origin[2], width, height;
+ qbool fullbright;
+ dspriteframetype_t pinframetype;
+ dspriteframe_t pinframe;
+ dspritegroup_t pingroup;
+ dspriteinterval_t pinintervals;
+ skinframe_t *skinframe;
+ float modelradius, interval;
+ char name[MAX_QPATH], fogname[MAX_QPATH];
+ const void *startframes;
+ int texflags = (r_mipsprites.integer ? TEXF_MIPMAP : 0) | ((gl_texturecompression.integer && gl_texturecompression_sprites.integer) ? TEXF_COMPRESS : 0) | TEXF_ISSPRITE | TEXF_PICMIP | TEXF_ALPHA | TEXF_CLAMP;