merge gtkgensurf from ZeroRadiant trunk
git-svn-id: svn://svn.icculus.org/netradiant/trunk@408 61c419a2-8eb2-4b30-bcec-8cead039b335
This commit is contained in:
parent
187727f4c3
commit
0163475e2c
|
|
@ -77,86 +77,89 @@ void GenerateBitmapMapping ()
|
||||||
|
|
||||||
static unsigned char* OpenBitmapFile ()
|
static unsigned char* OpenBitmapFile ()
|
||||||
{
|
{
|
||||||
int bmWidth;
|
#define INVALID_FORMAT do{\
|
||||||
int bmHeight;
|
fprintf(stderr,"%s:%d: Error file '%s' is malformed.\n",__FILE__,__LINE__,gbmp.name);\
|
||||||
unsigned char bmPlanes;
|
fclose(fp);\
|
||||||
unsigned char bmBitsPixel;
|
return NULL;\
|
||||||
unsigned char m1,m2;
|
}while(0);
|
||||||
unsigned long sizeimage;
|
|
||||||
short res1,res2;
|
int32_t bmWidth;
|
||||||
long filesize, pixoff;
|
int32_t bmHeight;
|
||||||
long bmisize, compression;
|
uint16_t bmPlanes;
|
||||||
long xscale, yscale;
|
uint16_t bmBitsPixel;
|
||||||
long colors, impcol;
|
uint8_t m1,m2;
|
||||||
unsigned long m_bytesRead = 0;
|
uint32_t sizeimage;
|
||||||
|
int16_t res1,res2;
|
||||||
|
int32_t filesize, pixoff;
|
||||||
|
int32_t bmisize, compression;
|
||||||
|
int32_t xscale, yscale;
|
||||||
|
int32_t colors, impcol;
|
||||||
|
uint32_t m_bytesRead = 0;
|
||||||
unsigned char *image;
|
unsigned char *image;
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
|
|
||||||
fp = fopen (gbmp.name, "rb");
|
fp = fopen (gbmp.name, "rb");
|
||||||
if (fp == NULL)
|
if (fp == NULL)
|
||||||
|
{
|
||||||
|
fprintf(stderr,"Error: Invalid filename '%s'\n",gbmp.name);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
long rc;
|
long rc;
|
||||||
rc = fread(&m1, 1, 1, fp);
|
rc = fread(&m1, 1, 1, fp);
|
||||||
m_bytesRead++;
|
m_bytesRead++;
|
||||||
if (rc == -1)
|
if (rc == -1)
|
||||||
{
|
INVALID_FORMAT;
|
||||||
fclose(fp);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
rc = fread(&m2, 1, 1, fp);
|
rc = fread(&m2, 1, 1, fp);
|
||||||
m_bytesRead++;
|
m_bytesRead++;
|
||||||
if ((m1 != 'B') || (m2 != 'M'))
|
if ((m1 != 'B') || (m2 != 'M'))
|
||||||
{
|
INVALID_FORMAT;
|
||||||
fclose(fp);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
rc = fread((long*)&(filesize),4,1,fp); m_bytesRead+=4;
|
rc = fread((uint32_t*)&(filesize),4,1,fp); m_bytesRead+=4;
|
||||||
if (rc != 1) { fclose(fp); return NULL; }
|
if (rc != 1) INVALID_FORMAT;
|
||||||
|
|
||||||
rc = fread((int*)&(res1),2,1,fp); m_bytesRead+=2;
|
rc = fread((uint16_t*)&(res1),2,1,fp); m_bytesRead+=2;
|
||||||
if (rc != 1) { fclose(fp); return NULL; }
|
if (rc != 1) INVALID_FORMAT;
|
||||||
|
|
||||||
rc = fread((int*)&(res2),2,1,fp); m_bytesRead+=2;
|
rc = fread((uint16_t*)&(res2),2,1,fp); m_bytesRead+=2;
|
||||||
if (rc != 1) { fclose(fp); return NULL; }
|
if (rc != 1) INVALID_FORMAT;
|
||||||
|
|
||||||
rc = fread((long*)&(pixoff),4,1,fp); m_bytesRead+=4;
|
rc = fread((uint32_t*)&(pixoff),4,1,fp); m_bytesRead+=4;
|
||||||
if (rc != 1) { fclose(fp); return NULL; }
|
if (rc != 1) INVALID_FORMAT;
|
||||||
|
|
||||||
rc = fread((long*)&(bmisize),4,1,fp); m_bytesRead+=4;
|
rc = fread((uint32_t*)&(bmisize),4,1,fp); m_bytesRead+=4;
|
||||||
if (rc != 1) { fclose(fp); return NULL; }
|
if (rc != 1) INVALID_FORMAT;
|
||||||
|
|
||||||
rc = fread((long *)&(bmWidth),4,1,fp); m_bytesRead+=4;
|
rc = fread((uint32_t *)&(bmWidth),4,1,fp); m_bytesRead+=4;
|
||||||
if (rc != 1) { fclose(fp); return NULL; }
|
if (rc != 1) INVALID_FORMAT;
|
||||||
|
|
||||||
rc = fread((long*)&(bmHeight),4,1,fp); m_bytesRead+=4;
|
rc = fread((uint32_t*)&(bmHeight),4,1,fp); m_bytesRead+=4;
|
||||||
if (rc != 1) { fclose(fp); return NULL; }
|
if (rc != 1) INVALID_FORMAT;
|
||||||
|
|
||||||
rc = fread((int*)&(bmPlanes),2,1,fp); m_bytesRead+=2;
|
rc = fread((uint16_t*)&(bmPlanes),2,1,fp); m_bytesRead+=2;
|
||||||
if (rc != 1) { fclose(fp); return NULL; }
|
if (rc != 1) INVALID_FORMAT;
|
||||||
|
|
||||||
rc = fread((int*)&(bmBitsPixel),2,1,fp); m_bytesRead+=2;
|
rc = fread((uint16_t*)&(bmBitsPixel),2,1,fp); m_bytesRead+=2;
|
||||||
if (rc != 1) { fclose(fp); return NULL; }
|
if (rc != 1) INVALID_FORMAT;
|
||||||
|
|
||||||
rc = fread((long*)&(compression),4,1,fp); m_bytesRead+=4;
|
rc = fread((uint32_t*)&(compression),4,1,fp); m_bytesRead+=4;
|
||||||
if (rc != 1) { fclose(fp); return NULL; }
|
if (rc != 1) INVALID_FORMAT;
|
||||||
|
|
||||||
rc = fread((long*)&(sizeimage),4,1,fp); m_bytesRead+=4;
|
rc = fread((uint32_t*)&(sizeimage),4,1,fp); m_bytesRead+=4;
|
||||||
if (rc != 1) {fclose(fp); return NULL; }
|
if (rc != 1) INVALID_FORMAT;
|
||||||
|
|
||||||
rc = fread((long*)&(xscale),4,1,fp); m_bytesRead+=4;
|
rc = fread((uint32_t*)&(xscale),4,1,fp); m_bytesRead+=4;
|
||||||
if (rc != 1) { fclose(fp); return NULL; }
|
if (rc != 1) INVALID_FORMAT;
|
||||||
|
|
||||||
rc = fread((long*)&(yscale),4,1,fp); m_bytesRead+=4;
|
rc = fread((uint32_t*)&(yscale),4,1,fp); m_bytesRead+=4;
|
||||||
if (rc != 1) { fclose(fp); return NULL; }
|
if (rc != 1) INVALID_FORMAT;
|
||||||
|
|
||||||
rc = fread((long*)&(colors),4,1,fp); m_bytesRead+=4;
|
rc = fread((uint32_t*)&(colors),4,1,fp); m_bytesRead+=4;
|
||||||
if (rc != 1) { fclose(fp); return NULL; }
|
if (rc != 1) INVALID_FORMAT;
|
||||||
|
|
||||||
rc = fread((long*)&(impcol),4,1,fp); m_bytesRead+=4;
|
rc = fread((uint32_t*)&(impcol),4,1,fp); m_bytesRead+=4;
|
||||||
if (rc != 1) { fclose(fp); return NULL; }
|
if (rc != 1) INVALID_FORMAT;
|
||||||
|
|
||||||
if (bmBitsPixel != 8)
|
if (bmBitsPixel != 8)
|
||||||
{
|
{
|
||||||
|
|
@ -180,40 +183,35 @@ static unsigned char* OpenBitmapFile ()
|
||||||
m_bytesRead++;
|
m_bytesRead++;
|
||||||
if (rc!=1)
|
if (rc!=1)
|
||||||
{
|
{
|
||||||
fclose(fp);
|
INVALID_FORMAT;
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = fread(&g, 1, 1, fp);
|
rc = fread(&g, 1, 1, fp);
|
||||||
m_bytesRead++;
|
m_bytesRead++;
|
||||||
if (rc!=1)
|
if (rc!=1)
|
||||||
{
|
{
|
||||||
fclose(fp);
|
INVALID_FORMAT;
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = fread(&r, 1, 1, fp);
|
rc = fread(&r, 1, 1, fp);
|
||||||
m_bytesRead++;
|
m_bytesRead++;
|
||||||
if (rc != 1)
|
if (rc != 1)
|
||||||
{
|
{
|
||||||
fclose(fp);
|
INVALID_FORMAT;
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = fread(&dummy, 1, 1, fp);
|
rc = fread(&dummy, 1, 1, fp);
|
||||||
m_bytesRead++;
|
m_bytesRead++;
|
||||||
if (rc != 1)
|
if (rc != 1)
|
||||||
{
|
{
|
||||||
fclose(fp);
|
INVALID_FORMAT;
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((long)m_bytesRead > pixoff)
|
if ((long)m_bytesRead > pixoff)
|
||||||
{
|
{
|
||||||
fclose(fp);
|
INVALID_FORMAT;
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
while ((long)m_bytesRead < pixoff)
|
while ((long)m_bytesRead < pixoff)
|
||||||
|
|
@ -231,8 +229,6 @@ static unsigned char* OpenBitmapFile ()
|
||||||
|
|
||||||
if (image != NULL)
|
if (image != NULL)
|
||||||
{
|
{
|
||||||
gbmp.width = w;
|
|
||||||
gbmp.height = h;
|
|
||||||
unsigned char* outbuf = image;
|
unsigned char* outbuf = image;
|
||||||
long row = 0;
|
long row = 0;
|
||||||
long rowOffset = 0;
|
long rowOffset = 0;
|
||||||
|
|
@ -261,8 +257,7 @@ static unsigned char* OpenBitmapFile ()
|
||||||
if (fread(&inbyte,1,1,fp) != 1)
|
if (fread(&inbyte,1,1,fp) != 1)
|
||||||
{
|
{
|
||||||
free(image);
|
free(image);
|
||||||
fclose(fp);
|
INVALID_FORMAT;
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
m_bytesRead++;
|
m_bytesRead++;
|
||||||
}
|
}
|
||||||
|
|
@ -283,8 +278,7 @@ static unsigned char* OpenBitmapFile ()
|
||||||
if (fread(&dummy,1,1,fp)!=1)
|
if (fread(&dummy,1,1,fp)!=1)
|
||||||
{
|
{
|
||||||
free(image);
|
free(image);
|
||||||
fclose(fp);
|
INVALID_FORMAT;
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
m_bytesRead++;
|
m_bytesRead++;
|
||||||
}
|
}
|
||||||
|
|
@ -402,15 +396,21 @@ static unsigned char* OpenBitmapFile ()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
|
|
||||||
|
gbmp.width = w;
|
||||||
|
gbmp.height = h;
|
||||||
|
if(gbmp.colors)
|
||||||
|
free(gbmp.colors);
|
||||||
|
gbmp.colors = image;
|
||||||
return image;
|
return image;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool OpenBitmap ()
|
bool OpenBitmap ()
|
||||||
{
|
{
|
||||||
if (gbmp.colors)
|
|
||||||
free (gbmp.colors);
|
|
||||||
|
|
||||||
gbmp.colors = OpenBitmapFile ();
|
OpenBitmapFile ();
|
||||||
|
|
||||||
if (!gbmp.colors)
|
if (!gbmp.colors)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@ void MakeDecimatedMap(int *NumNodes, int *NumTris, NODE **pNode, TRI **pTri)
|
||||||
int Bisect(NODE *, int, int, int);
|
int Bisect(NODE *, int, int, int);
|
||||||
void CalcAngles(NODE *, int *, float *);
|
void CalcAngles(NODE *, int *, float *);
|
||||||
void EdgeOnSide(int *, int *, int *);
|
void EdgeOnSide(int *, int *, int *);
|
||||||
int tricall(int, NODE *, int *, TRI **, TRI **, char *);
|
int tricall(int, NODE *, int *, TRI **, TRI **, const char *);
|
||||||
int CheckBorders(int *,int,NODE *,int *,TRI **);
|
int CheckBorders(int *,int,NODE *,int *,TRI **);
|
||||||
|
|
||||||
float biggesterror;
|
float biggesterror;
|
||||||
|
|
@ -323,9 +323,8 @@ void MakeDecimatedMap(int *NumNodes, int *NumTris, NODE **pNode, TRI **pTri)
|
||||||
/* tricall Takes an array of nodes, spits out an array of triangles */
|
/* tricall Takes an array of nodes, spits out an array of triangles */
|
||||||
/* */
|
/* */
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
int tricall(int NumNodes, NODE *Node, int *NumTris, TRI **inTri, TRI **Tri, LPSTR Options)
|
int tricall(int NumNodes, NODE *Node, int *NumTris, TRI **inTri, TRI **Tri, const char *Options)
|
||||||
{
|
{
|
||||||
|
|
||||||
struct triangulateio in, out;
|
struct triangulateio in, out;
|
||||||
int i, N;
|
int i, N;
|
||||||
int NumUsedNodes;
|
int NumUsedNodes;
|
||||||
|
|
|
||||||
|
|
@ -176,7 +176,7 @@ void texfont_init ()
|
||||||
|
|
||||||
int i, j, x, y;
|
int i, j, x, y;
|
||||||
float inv = 1.0f/128;
|
float inv = 1.0f/128;
|
||||||
char *charlines[16] = {
|
const char *charlines[16] = {
|
||||||
"abcdefghijklmn", "opqrstuvwxyz0", "123456789ABC", "DEFGHIJKLMN",
|
"abcdefghijklmn", "opqrstuvwxyz0", "123456789ABC", "DEFGHIJKLMN",
|
||||||
"OPQRSTUVWX", "YZ,.!;:<>/?{}@$%", "&*()-+=_[] #" };
|
"OPQRSTUVWX", "YZ,.!;:<>/?{}@$%", "&*()-+=_[] #" };
|
||||||
unsigned char lefts[7][17] = {
|
unsigned char lefts[7][17] = {
|
||||||
|
|
|
||||||
|
|
@ -890,11 +890,6 @@ static gint bitmap_file_entryfocusout(GtkWidget* widget, GdkEventFocus* event, g
|
||||||
strcpy (filename, gtk_entry_get_text (GTK_ENTRY(widget)));
|
strcpy (filename, gtk_entry_get_text (GTK_ENTRY(widget)));
|
||||||
if(strcmp (filename,gbmp.name))
|
if(strcmp (filename,gbmp.name))
|
||||||
{
|
{
|
||||||
if (gbmp.colors)
|
|
||||||
{
|
|
||||||
free(gbmp.colors);
|
|
||||||
gbmp.colors=NULL;
|
|
||||||
}
|
|
||||||
strcpy (gbmp.name,filename);
|
strcpy (gbmp.name,filename);
|
||||||
if (strlen(gbmp.name) )
|
if (strlen(gbmp.name) )
|
||||||
OpenBitmap ();
|
OpenBitmap ();
|
||||||
|
|
@ -1389,10 +1384,10 @@ GtkWidget* create_main_dialog ()
|
||||||
GtkObject *adj;
|
GtkObject *adj;
|
||||||
GSList *group;
|
GSList *group;
|
||||||
int i;
|
int i;
|
||||||
char *games[] = { "Quake 2", "Half-Life", "SiN", "Heretic 2", "Kingpin", "Genesis3D", "Quake 3 Arena" };
|
const char *games[] = { "Quake 2", "Half-Life", "SiN", "Heretic 2", "Kingpin", "Genesis3D", "Quake 3 Arena" };
|
||||||
char *waveforms[] = { "Alternating hill/valley", "Cylindrical left-to-right", "Cylindrical top-to-bottom",
|
const char *waveforms[] = { "Alternating hill/valley", "Cylindrical left-to-right", "Cylindrical top-to-bottom",
|
||||||
"From bitmap", "Fractal" };
|
"From bitmap", "Fractal" };
|
||||||
char *orientations[] = { "Ground surface", "Ceiling", "Wall facing 0", "Wall facing 90",
|
const char *orientations[] = { "Ground surface", "Ceiling", "Wall facing 0", "Wall facing 90",
|
||||||
"Wall facing 180","Wall facing 270" };
|
"Wall facing 180","Wall facing 270" };
|
||||||
|
|
||||||
g_pWnd = dlg = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
g_pWnd = dlg = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||||
|
|
|
||||||
|
|
@ -133,11 +133,12 @@ bool GenSurfInit ()
|
||||||
else */
|
else */
|
||||||
Game = QUAKE3;
|
Game = QUAKE3;
|
||||||
|
|
||||||
ReadIniFile (gszIni);
|
|
||||||
|
|
||||||
if (g_pWnd == NULL)
|
if (g_pWnd == NULL)
|
||||||
g_pWnd = create_main_dialog ();
|
g_pWnd = create_main_dialog ();
|
||||||
|
|
||||||
|
ReadIniFile (gszIni);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -291,9 +292,10 @@ void ReadIniFile (const char *file)
|
||||||
if(!strlen(Texture[GENESIS3D][0])) strcpy(Texture[GENESIS3D][0],"textures/rock13");
|
if(!strlen(Texture[GENESIS3D][0])) strcpy(Texture[GENESIS3D][0],"textures/rock13");
|
||||||
if(!strlen(Texture[QUAKE3][0])) strcpy(Texture[QUAKE3][0], "textures/organics/grass3");
|
if(!strlen(Texture[QUAKE3][0])) strcpy(Texture[QUAKE3][0], "textures/organics/grass3");
|
||||||
if(!strlen(Texture[QUAKE3][1])) strcpy(Texture[QUAKE3][1], "textures/common/caulk");
|
if(!strlen(Texture[QUAKE3][1])) strcpy(Texture[QUAKE3][1], "textures/common/caulk");
|
||||||
|
|
||||||
strcpy (gbmp.name, g_FuncTable.m_pfnProfileLoadString (file, "Bitmap","Filename",""));
|
strcpy (gbmp.name, g_FuncTable.m_pfnProfileLoadString (file, "Bitmap","Filename",""));
|
||||||
|
|
||||||
|
|
||||||
|
gbmp.colors = NULL;
|
||||||
if (strlen(gbmp.name))
|
if (strlen(gbmp.name))
|
||||||
OpenBitmap ();
|
OpenBitmap ();
|
||||||
|
|
||||||
|
|
@ -321,7 +323,7 @@ varargs versions of all text functions.
|
||||||
FIXME: make this buffer size safe someday
|
FIXME: make this buffer size safe someday
|
||||||
============
|
============
|
||||||
*/
|
*/
|
||||||
char *va (char *format, ...)
|
char *va (const char *format, ...)
|
||||||
{
|
{
|
||||||
va_list argptr;
|
va_list argptr;
|
||||||
static char string[1024];
|
static char string[1024];
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user