}
#if 1
-// written by LordHavoc in a readable way, optimized by Vic, further optimized by LordHavoc (the non-special index case), readable version preserved below this
-void Image_CopyMux(unsigned char *outpixels, const unsigned char *inpixels, int inputwidth, int inputheight, qboolean inputflipx, qboolean inputflipy, qboolean inputflipdiagonal, int numoutputcomponents, int numinputcomponents, int *outputinputcomponentindices)
+// written by LadyHavoc in a readable way, optimized by Vic, further optimized by LadyHavoc (the non-special index case), readable version preserved below this
+void Image_CopyMux(unsigned char *outpixels, const unsigned char *inpixels, int inputwidth, int inputheight, qbool inputflipx, qbool inputflipy, qbool inputflipdiagonal, int numoutputcomponents, int numinputcomponents, int *outputinputcomponentindices)
{
int index, c, x, y;
const unsigned char *in, *line;
}
#else
// intentionally readable version
-void Image_CopyMux(unsigned char *outpixels, const unsigned char *inpixels, int inputwidth, int inputheight, qboolean inputflipx, qboolean inputflipy, qboolean inputflipdiagonal, int numoutputcomponents, int numinputcomponents, int *outputinputcomponentindices)
+void Image_CopyMux(unsigned char *outpixels, const unsigned char *inpixels, int inputwidth, int inputheight, qbool inputflipx, qbool inputflipy, qbool inputflipdiagonal, int numoutputcomponents, int numinputcomponents, int *outputinputcomponentindices)
{
int index, c, x, y;
const unsigned char *in, *inrow, *incolumn;
memcpy(&pcx, fin, sizeof(pcx));
fin += sizeof(pcx);
- // LordHavoc: big-endian support ported from QF newtree
+ // LadyHavoc: big-endian support ported from QF newtree
pcx.xmax = LittleShort (pcx.xmax);
pcx.xmin = LittleShort (pcx.xmin);
pcx.ymax = LittleShort (pcx.ymax);
LoadPCX
============
*/
-qboolean LoadPCX_QWSkin(const unsigned char *f, int filesize, unsigned char *pixels, int outwidth, int outheight)
+qbool LoadPCX_QWSkin(const unsigned char *f, int filesize, unsigned char *pixels, int outwidth, int outheight)
{
pcx_t pcx;
unsigned char *a;
memcpy(&pcx, fin, sizeof(pcx));
fin += sizeof(pcx);
- // LordHavoc: big-endian support ported from QF newtree
+ // LadyHavoc: big-endian support ported from QF newtree
pcx.xmax = LittleShort (pcx.xmax);
pcx.xmin = LittleShort (pcx.xmin);
pcx.ymax = LittleShort (pcx.ymax);
LoadPCX
============
*/
-qboolean LoadPCX_PaletteOnly(const unsigned char *f, int filesize, unsigned char *palette768b)
+qbool LoadPCX_PaletteOnly(const unsigned char *f, int filesize, unsigned char *palette768b)
{
if (filesize < 768)
return false;
return image_buffer;
}
-qboolean LoadWAL_GetMetadata(const unsigned char *f, int filesize, int *retwidth, int *retheight, int *retflags, int *retvalue, int *retcontents, char *retanimname32c)
+qbool LoadWAL_GetMetadata(const unsigned char *f, int filesize, int *retwidth, int *retheight, int *retflags, int *retvalue, int *retcontents, char *retanimname32c)
{
const q2wal_t *inwal = (const q2wal_t *)f;
}
// gfx/conchars is a raw 128x128 image with 0 as transparent color rather than 255
-unsigned char *LoadConChars_BGRA(const unsigned char *f, int filesize, int *miplevel)
+static unsigned char *LoadConChars_BGRA(const unsigned char *f, int filesize, int *miplevel)
{
unsigned char *image_buffer;
int i;
};
int fixtransparentpixels(unsigned char *data, int w, int h);
-unsigned char *loadimagepixelsbgra (const char *filename, qboolean complain, qboolean allowFixtrans, qboolean convertsRGB, int *miplevel)
+unsigned char *loadimagepixelsbgra (const char *filename, qbool complain, qbool allowFixtrans, qbool convertsRGB, int *miplevel)
{
fs_offset_t filesize;
imageformat_t *firstformat, *format;
+ int mymiplevel;
unsigned char *f, *data = NULL, *data2 = NULL;
char basename[MAX_QPATH], name[MAX_QPATH], name2[MAX_QPATH], path[MAX_QPATH], afterpath[MAX_QPATH], *c;
char vabuf[1024];
for (format = firstformat;format->formatstring;format++)
{
dpsnprintf (name, sizeof(name), format->formatstring, basename);
- f = FS_LoadFile(name, tempmempool, true, &filesize);
- if (f)
+
+ FS_SanitizePath(name);
+
+ if(FS_FileExists(name) && (f = FS_LoadFile(name, tempmempool, true, &filesize)) != NULL)
{
- int mymiplevel = miplevel ? *miplevel : 0;
+ mymiplevel = miplevel ? *miplevel : 0;
image_width = 0;
image_height = 0;
data = format->loadfunc(f, (int)filesize, &mymiplevel);
if (developer_loading.integer)
Con_Printf("loading gfx.wad lump \"%s\"\n", afterpath);
- int mymiplevel = miplevel ? *miplevel : 0;
+ mymiplevel = miplevel ? *miplevel : 0;
if (!strcmp(afterpath, "conchars"))
{
// conchars is a raw image and with color 0 as transparent instead of 255
return NULL;
}
-qboolean Image_GetStockPicSize(const char *filename, int *returnwidth, int *returnheight)
+qbool Image_GetStockPicSize(const char *filename, int *returnwidth, int *returnheight)
{
unsigned char *data;
fs_offset_t filesize;
}
extern cvar_t gl_picmip;
-rtexture_t *loadtextureimage (rtexturepool_t *pool, const char *filename, qboolean complain, int flags, qboolean allowFixtrans, qboolean sRGB)
+rtexture_t *loadtextureimage (rtexturepool_t *pool, const char *filename, qbool complain, int flags, qbool allowFixtrans, qbool sRGB)
{
unsigned char *data;
rtexture_t *rt;
return changedPixels;
}
-void Image_FixTransparentPixels_f(void)
+void Image_FixTransparentPixels_f(cmd_state_t *cmd)
{
const char *filename, *filename_pattern;
fssearch_t *search;
int i, n;
char outfilename[MAX_QPATH], buf[MAX_QPATH];
unsigned char *data;
- if(Cmd_Argc() != 2)
+ if(Cmd_Argc(cmd) != 2)
{
- Con_Printf("Usage: %s imagefile\n", Cmd_Argv(0));
+ Con_Printf("Usage: %s imagefile\n", Cmd_Argv(cmd, 0));
return;
}
- filename_pattern = Cmd_Argv(1);
- search = FS_Search(filename_pattern, true, true);
+ filename_pattern = Cmd_Argv(cmd, 1);
+ search = FS_Search(filename_pattern, true, true, NULL);
if(!search)
return;
for(i = 0; i < search->numfilenames; ++i)
FS_FreeSearch(search);
}
-qboolean Image_WriteTGABGR_preflipped (const char *filename, int width, int height, const unsigned char *data)
+qbool Image_WriteTGABGR_preflipped (const char *filename, int width, int height, const unsigned char *data)
{
- qboolean ret;
+ qbool ret;
unsigned char buffer[18];
const void *buffers[2];
fs_offset_t sizes[2];
return ret;
}
-qboolean Image_WriteTGABGRA (const char *filename, int width, int height, const unsigned char *data)
+qbool Image_WriteTGABGRA (const char *filename, int width, int height, const unsigned char *data)
{
int y;
unsigned char *buffer, *out;
const unsigned char *in, *end;
- qboolean ret;
+ qbool ret;
buffer = (unsigned char *)Mem_Alloc(tempmempool, width*height*4 + 18);
}
}
-static const unsigned char concharimage[] =
-{
+
#include "lhfont.h"
-};
static unsigned char *Image_GenerateConChars(void)
{
{
for (x = 0; x < 16; x++)
{
- data[(y * 8 + x) * 4 + 0] =
- data[(y * 8 + x) * 4 + 1] =
- data[(y * 8 + x) * 4 + 2] = (y < 8) ^ (x < 8) ? 128 : 64;
- data[(y * 8 + x) * 4 + 3] = 255;
+ data[(y * 16 + x) * 4 + 0] =
+ data[(y * 16 + x) * 4 + 1] =
+ data[(y * 16 + x) * 4 + 2] = (y < 8) ^ (x < 8) ? 128 : 64;
+ data[(y * 16 + x) * 4 + 3] = 255;
}
}
return data;
return data;
}
}
- if (!strcmp(name, "white"))
+ if (!strcmp(name, "white") || !strcmp(name, "#white") || !strcmp(name, "*white") || !strcmp(name, "$whiteimage"))
return Image_GenerateWhite();
if (!strcmp(name, "gfx/conchars"))
return Image_GenerateConChars();