-
-/*
-============
-LoadLMP
-============
-*/
-qbyte *LoadLMPAs8Bit (qbyte *f, int matchwidth, int matchheight)
-{
- qbyte *image_8bit;
-
- if (fs_filesize < 9)
- {
- Con_Print("LoadLMPAs8Bit: invalid LMP file\n");
- return NULL;
- }
-
- // parse the very complicated header *chuckle*
- image_width = f[0] + f[1] * 256 + f[2] * 65536 + f[3] * 16777216;
- image_height = f[4] + f[5] * 256 + f[6] * 65536 + f[7] * 16777216;
- if (image_width > 4096 || image_height > 4096 || image_width <= 0 || image_height <= 0)
- {
- Con_Printf("LoadLMPAs8Bit: invalid size %ix%i\n", image_width, image_height);
- return NULL;
- }
- if ((matchwidth && image_width != matchwidth) || (matchheight && image_height != matchheight))
- return NULL;
-
- if (fs_filesize < 8 + image_width * image_height)
- {
- Con_Print("LoadLMPAs8Bit: invalid LMP file\n");
- return NULL;
- }
-
- image_8bit = Mem_Alloc(tempmempool, image_width * image_height);
- if (!image_8bit)
- {
- Con_Printf("LoadLMPAs8Bit: not enough memory for %i by %i image\n", image_width, image_height);
- return NULL;
- }
- memcpy(image_8bit, f + 8, image_width * image_height);
- return image_8bit;
-}
-