+ for (j = 0;j < groupframes;j++)
+ {
+ pinframe = (dspriteframe_t *)datapointer;
+ datapointer += sizeof(dspriteframe_t);
+
+ origin[0] = LittleLong (pinframe->origin[0]);
+ origin[1] = LittleLong (pinframe->origin[1]);
+ width = LittleLong (pinframe->width);
+ height = LittleLong (pinframe->height);
+
+ loadmodel->sprdata_frames[realframes].left = origin[0];
+ loadmodel->sprdata_frames[realframes].right = origin[0] + width;
+ loadmodel->sprdata_frames[realframes].up = origin[1];
+ loadmodel->sprdata_frames[realframes].down = origin[1] - height;
+
+ x = max(loadmodel->sprdata_frames[realframes].left * loadmodel->sprdata_frames[realframes].left, loadmodel->sprdata_frames[realframes].right * loadmodel->sprdata_frames[realframes].right);
+ y = max(loadmodel->sprdata_frames[realframes].up * loadmodel->sprdata_frames[realframes].up, loadmodel->sprdata_frames[realframes].down * loadmodel->sprdata_frames[realframes].down);
+ if (modelradius < x + y)
+ modelradius = x + y;
+
+ if (width > 0 && height > 0)
+ {
+ if (groupframes > 1)
+ sprintf (name, "%s_%i_%i", tempname, i, j);
+ else
+ sprintf (name, "%s_%i", tempname, i);
+ loadmodel->sprdata_frames[realframes].texture = loadtextureimagewithmask(loadmodel->texturepool, name, 0, 0, false, r_mipsprites.integer, true);
+ loadmodel->sprdata_frames[realframes].fogtexture = image_masktex;
+
+ if (!loadmodel->sprdata_frames[realframes].texture)
+ {
+ pixbuf = Mem_Alloc(tempmempool, width*height*4);
+ if (version == SPRITE32_VERSION)
+ memcpy(pixbuf, datapointer, width*height*4);
+ else //if (version == SPRITE_VERSION || version == SPRITEHL_VERSION)
+ Image_Copy8bitRGBA(datapointer, pixbuf, width*height, palette);
+
+ loadmodel->sprdata_frames[realframes].texture = R_LoadTexture (loadmodel->texturepool, name, width, height, pixbuf, TEXTYPE_RGBA, TEXF_ALPHA | (r_mipsprites.integer ? TEXF_MIPMAP : 0) | TEXF_PRECACHE);
+
+ // make fog version (just alpha)
+ for (k = 0;k < width*height;k++)
+ {
+ pixbuf[k*4+0] = 255;
+ pixbuf[k*4+1] = 255;
+ pixbuf[k*4+2] = 255;
+ }
+ if (groupframes > 1)
+ sprintf (name, "%s_%i_%ifog", tempname, i, j);
+ else
+ sprintf (name, "%s_%ifog", tempname, i);
+ loadmodel->sprdata_frames[realframes].fogtexture = R_LoadTexture (loadmodel->texturepool, name, width, height, pixbuf, TEXTYPE_RGBA, TEXF_ALPHA | (r_mipsprites.integer ? TEXF_MIPMAP : 0) | TEXF_PRECACHE);
+
+ Mem_Free(pixbuf);
+ }
+ }
+
+ if (version == SPRITE32_VERSION)
+ datapointer += width * height * 4;
+ else //if (version == SPRITE_VERSION || version == SPRITEHL_VERSION)
+ datapointer += width * height;
+ realframes++;
+ }