- sprintf (fogname, "%s_%ifog", loadmodel->name, i);
- if (version == SPRITE32_VERSION)
- skinframe = R_SkinFrame_LoadInternal(name, texflags, false, false, datapointer, width, height, 32, NULL, NULL);
- else //if (version == SPRITE_VERSION || version == SPRITEHL_VERSION)
- skinframe = R_SkinFrame_LoadInternal(name, texflags, false, false, datapointer, width, height, 8, palette, alphapalette);
+ {
+ 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 = 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);
+ Mem_Free(pixels);
+ }