+ skinframe = NULL;
+ // note: Nehahra's null.spr has width == 0 and height == 0
+ if (width > 0 && height > 0)
+ {
+ if (groupframes > 1)
+ {
+ dpsnprintf (name, sizeof(name), "%s_%i_%i", loadmodel->name, i, j);
+ dpsnprintf (fogname, sizeof(fogname), "%s_%i_%ifog", loadmodel->name, i, j);
+ }
+ else
+ {
+ dpsnprintf (name, sizeof(name), "%s_%i", loadmodel->name, i);
+ dpsnprintf (fogname, sizeof(fogname), "%s_%ifog", loadmodel->name, i);
+ }
+ if (!(skinframe = R_SkinFrame_LoadExternal(name, texflags | TEXF_COMPRESS, false)))
+ {
+ unsigned char *pixels = (unsigned char *) Mem_Alloc(loadmodel->mempool, width*height*4);
+ if (version == SPRITE32_VERSION)
+ {
+ for (x = 0;x < width*height;x++)
+ {
+ pixels[x*4+2] = datapointer[x*4+0];
+ pixels[x*4+1] = datapointer[x*4+1];
+ pixels[x*4+0] = datapointer[x*4+2];
+ pixels[x*4+3] = datapointer[x*4+3];
+ }
+ }
+ else //if (version == SPRITEHL_VERSION || version == SPRITE_VERSION)
+ Image_Copy8bitBGRA(datapointer, pixels, width*height, palette ? palette : palette_bgra_transparent);
+ skinframe = R_SkinFrame_LoadInternalBGRA(name, texflags, pixels, width, height, false);
+ // texflags |= TEXF_COMPRESS;
+ Mem_Free(pixels);
+ }
+ }
+ if (skinframe == NULL)
+ skinframe = R_SkinFrame_LoadMissing();
+ Mod_SpriteSetupTexture(&loadmodel->data_textures[realframes], skinframe, fullbright, additive);