- mspriteframe_t *pspriteframe;
- float dist;
- int i, width, height, size, origin[2];
- char name[256], tempname[256];
- byte *pixbuf, *pixel, *inpixel;
-
- pinframe = (dspriteframe_t *)pin;
-
- origin[0] = LittleLong (pinframe->origin[0]);
- origin[1] = LittleLong (pinframe->origin[1]);
- width = LittleLong (pinframe->width);
- height = LittleLong (pinframe->height);
- size = width * height * bytesperpixel;
-
- pspriteframe = frame;
-
- memset (pspriteframe, 0, sizeof (mspriteframe_t));
-
- pspriteframe->left = origin[0];
- pspriteframe->right = origin[0] + width;
- pspriteframe->up = origin[1];
- pspriteframe->down = origin[1] - height;
-
- dist = pspriteframe->left*pspriteframe->left+pspriteframe->up*pspriteframe->up;
- if (*modelradius < dist)
- *modelradius = dist;
- dist = pspriteframe->right*pspriteframe->right+pspriteframe->down*pspriteframe->down;
- if (*modelradius < dist)
- *modelradius = dist;
-
- Mod_Sprite_StripExtension(loadmodel->name, tempname);
- sprintf (name, "%s_%i", tempname, framenum);
- pspriteframe->texture = loadtextureimagewithmask(name, 0, 0, false, r_mipsprites.value, true);
- pspriteframe->fogtexture = image_masktex;
-
- pixbuf = qmalloc(width*height*4);
-
- inpixel = (byte *)(pinframe + 1);
- pixel = pixbuf;
- if (bytesperpixel == 1)
- {
- for (i = 0;i < width * height;i++)
- {
- *pixel++ = palette[inpixel[i]*4+0];
- *pixel++ = palette[inpixel[i]*4+1];
- *pixel++ = palette[inpixel[i]*4+2];
- *pixel++ = palette[inpixel[i]*4+3];
- }
- }
- else
- memcpy(pixel, inpixel, width*height*4);
-
- if (!pspriteframe->texture)
- {
- pspriteframe->texture = R_LoadTexture (name, width, height, pixbuf, TEXF_ALPHA | TEXF_RGBA | (r_mipsprites.value ? TEXF_MIPMAP : 0) | TEXF_PRECACHE);
- // make fog version (just alpha)
- pixel = pixbuf;
- for (i = 0;i < width*height;i++)
- {
- *pixel++ = 255;
- *pixel++ = 255;
- *pixel++ = 255;
- pixel++;
- }
- sprintf (name, "%s_%ifog", loadmodel->name, framenum);
- pspriteframe->fogtexture = R_LoadTexture (name, width, height, pixbuf, TEXF_ALPHA | TEXF_RGBA | (r_mipsprites.value ? TEXF_MIPMAP : 0) | TEXF_PRECACHE);
- }
-
- qfree(pixbuf);
-
- return (void *)((byte *)pinframe + sizeof (dspriteframe_t) + size);
-}
-
-
-/*
-=================
-Mod_LoadSpriteGroup
-=================
-*/
-/*
-void *Mod_LoadSpriteGroup (void * pin, mspriteframe_t *frame, int numframes, int framenum, int bytesperpixel)
-{
- int i;
- void *ptemp;