From 900195a0935a21c93d2e9e2051f7070969dea42b Mon Sep 17 00:00:00 2001 From: terminx Date: Sun, 3 Aug 2008 11:45:15 +0000 Subject: [PATCH] git-svn-id: https://svn.eduke32.com/eduke32@929 1a8010ca-5511-0410-912e-c29ae57300e0 --- polymer/build/include/osd.h | 2 +- polymer/build/src/engine.c | 12 ++--- polymer/build/src/osd.c | 47 +++++++++++--------- polymer/eduke32/source/config.c | 2 +- polymer/eduke32/source/duke3d.h | 2 +- polymer/eduke32/source/funct.h | 3 +- polymer/eduke32/source/game.c | 76 ++++++++++++++++---------------- polymer/eduke32/source/global.c | 2 +- polymer/eduke32/source/menus.c | 5 +-- polymer/eduke32/source/osdcmds.c | 4 +- 10 files changed, 81 insertions(+), 74 deletions(-) diff --git a/polymer/build/include/osd.h b/polymer/build/include/osd.h index 0d52f4e06..aad580d7e 100644 --- a/polymer/build/include/osd.h +++ b/polymer/build/include/osd.h @@ -23,7 +23,7 @@ typedef struct _symbol } symbol_t; symbol_t *symbols; -const char *stripcolorcodes(const char *t); +const char *stripcolorcodes(const char *in, char *out); #define OSD_ALIAS 1337 #define OSD_UNALIASED 1338 diff --git a/polymer/build/src/engine.c b/polymer/build/src/engine.c index f5381f51e..a0ad547af 100644 --- a/polymer/build/src/engine.c +++ b/polymer/build/src/engine.c @@ -5628,12 +5628,12 @@ static int preinitcalled = 0; #define DYNALLOC_ARRAYS #ifndef DYNALLOC_ARRAYS -spriteexttype spriteext_s[MAXSPRITES+MAXUNIQHUDID]; -spritesmoothtype spritesmooth_s[MAXSPRITES+MAXUNIQHUDID]; -sectortype sector_s[MAXSECTORS]; -walltype wall_s[MAXWALLS]; -spritetype sprite_s[MAXSPRITES]; -spritetype tsprite_s[MAXSPRITESONSCREEN]; +static spriteexttype spriteext_s[MAXSPRITES+MAXUNIQHUDID]; +static spritesmoothtype spritesmooth_s[MAXSPRITES+MAXUNIQHUDID]; +static sectortype sector_s[MAXSECTORS]; +static walltype wall_s[MAXWALLS]; +static spritetype sprite_s[MAXSPRITES]; +static spritetype tsprite_s[MAXSPRITESONSCREEN]; #endif int preinitengine(void) diff --git a/polymer/build/src/osd.c b/polymer/build/src/osd.c index b000a881a..ad21d1941 100644 --- a/polymer/build/src/osd.c +++ b/polymer/build/src/osd.c @@ -116,35 +116,38 @@ static void (*_drawosdcursor)(int, int, int, int) = _internal_drawosdcursor; static int (*_getcolumnwidth)(int) = _internal_getcolumnwidth; static int (*_getrowheight)(int) = _internal_getrowheight; -const char *stripcolorcodes(const char *t) -{ - int i = 0; - static char colstrip[1024]; +// color code format is as follows: +// ^## sets a color, where ## is the palette number +// ^S# sets a shade, range is 0-7 equiv to shades 0-14 +// ^O resets formatting to defaults - while (*t) +const char *stripcolorcodes(const char *in, char *out) +{ + char *ptr = out; + + while (*in) { - if (*t == '^' && isdigit(*(t+1))) + if (*in == '^' && isdigit(*(in+1))) { - t += 2; - if (isdigit(*t)) - t++; + in += 2; + if (isdigit(*in)) + in++; continue; } - if (*t == '^' && (Btoupper(*(t+1)) == 'S')) + if (*in == '^' && (Btoupper(*(in+1)) == 'S') && isdigit(*(in+2))) { - t += 3; + in += 3; continue; } - if (*t == '^' && (Btoupper(*(t+1)) == 'O')) + if (*in == '^' && (Btoupper(*(in+1)) == 'O')) { - t += 2; + in += 2; continue; } - colstrip[i] = *t; - i++,t++; + *(out++) = *(in++); } - colstrip[i] = '\0'; - return(colstrip); + *out = '\0'; + return(ptr); } int OSD_Exec(const char *szScript) @@ -1380,7 +1383,8 @@ static inline void linefeed(void) void OSD_Printf(const char *fmt, ...) { - char tmpstr[1024], *chp, p=osdtextpal, s=osdtextshade; + static char tmpstr[1024]; + char *chp, p=osdtextpal, s=osdtextshade; va_list va; if (!osdinited) OSD_Init(); @@ -1392,7 +1396,11 @@ void OSD_Printf(const char *fmt, ...) if (linecnt 10) + while (Bstrlen(stripcolorcodes(tempbuf,tempbuf)) > 10) tempbuf[Bstrlen(tempbuf)-1] = '\0'; Bstrncpy(myname,tempbuf,sizeof(myname)-1); diff --git a/polymer/eduke32/source/duke3d.h b/polymer/eduke32/source/duke3d.h index 7d3df0d83..b27baf19d 100644 --- a/polymer/eduke32/source/duke3d.h +++ b/polymer/eduke32/source/duke3d.h @@ -511,7 +511,7 @@ typedef struct { char return_to_center, reloading, name[32]; } player_struct; -extern char tempbuf[2048], packbuf[576]; +extern char tempbuf[2048], packbuf[576], menutextbuf[128]; extern int gc; diff --git a/polymer/eduke32/source/funct.h b/polymer/eduke32/source/funct.h index 1b9263820..05f898104 100644 --- a/polymer/eduke32/source/funct.h +++ b/polymer/eduke32/source/funct.h @@ -107,7 +107,8 @@ extern void savetemp(const char *fn,int daptr,int dasiz); // extern int loadpheader(char spot,int32 *vn,int32 *ln,int32 *psk,int32 *numplr); extern int loadplayer(int spot); extern int saveplayer(int spot); -extern int menutext(int x,int y,int s,int p,char *t); +extern int menutext_(int x,int y,int s,int p,char *t); +#define menutext(x,y,s,p,t) menutext_(x,y,s,p,(char *)stripcolorcodes(t,menutextbuf)) extern void menus(void); extern void palto(int r,int g,int b,int e); extern void playanm(const char *fn,char); diff --git a/polymer/eduke32/source/game.c b/polymer/eduke32/source/game.c index 93ba281dd..3af17280f 100644 --- a/polymer/eduke32/source/game.c +++ b/polymer/eduke32/source/game.c @@ -2443,7 +2443,7 @@ static void operatefta(void) { if (user_quote_time[i] <= 0) break; k = user_quote_time[i]; - l = gametextlen(USERQUOTE_LEFTOFFSET,stripcolorcodes(user_quote[i])); + l = gametextlen(USERQUOTE_LEFTOFFSET,stripcolorcodes(user_quote[i],tempbuf)); while (l > (ud.config.ScreenWidth - USERQUOTE_RIGHTOFFSET)) { l -= (ud.config.ScreenWidth-USERQUOTE_RIGHTOFFSET); @@ -2714,7 +2714,7 @@ static int strget_(int small,int x,int y,char *t,int dalen,int c) } c = 4-(sintable[(totalclock<<4)&2047]>>11); - i = gametextlen(USERQUOTE_LEFTOFFSET,stripcolorcodes(t)); + i = gametextlen(USERQUOTE_LEFTOFFSET,stripcolorcodes(t,tempbuf)); while (i > (ud.config.ScreenWidth - USERQUOTE_RIGHTOFFSET)) { i -= (ud.config.ScreenWidth - USERQUOTE_RIGHTOFFSET); @@ -2792,7 +2792,7 @@ static void typemode(void) } adduserquote(recbuf); quotebot += 8; - l = gametextlen(USERQUOTE_LEFTOFFSET,stripcolorcodes(recbuf)); + l = gametextlen(USERQUOTE_LEFTOFFSET,stripcolorcodes(recbuf,tempbuf)); while (l > (ud.config.ScreenWidth - USERQUOTE_RIGHTOFFSET)) { l -= (ud.config.ScreenWidth - USERQUOTE_RIGHTOFFSET); @@ -9874,7 +9874,7 @@ static void Startup(void) // myname[10] = '\0'; Bstrcpy(tempbuf,CommandName); - while (Bstrlen(stripcolorcodes(tempbuf)) > 10) + while (Bstrlen(stripcolorcodes(tempbuf,tempbuf)) > 10) tempbuf[Bstrlen(tempbuf)-1] = '\0'; Bstrncpy(myname,tempbuf,sizeof(myname)-1); @@ -9925,36 +9925,6 @@ static void Startup(void) if (ud.executions >= 50) initprintf("IT IS NOW TIME TO UPGRADE TO THE COMPLETE VERSION!!!\n"); } - if (CONTROL_Startup(1, &GetTime, TICRATE)) - { - uninitengine(); - exit(1); - } - SetupGameButtons(); - CONFIG_SetupMouse(); - CONFIG_SetupJoystick(); - - CONTROL_JoystickEnabled = (ud.config.UseJoystick && CONTROL_JoyPresent); - CONTROL_MouseEnabled = (ud.config.UseMouse && CONTROL_MousePresent); - - // JBF 20040215: evil and nasty place to do this, but joysticks are evil and nasty too - for (i=0;i 1) initprintf("Multiplayer initialized.\n"); + if (CONTROL_Startup(1, &GetTime, TICRATE)) + { + uninitengine(); + exit(1); + } + SetupGameButtons(); + CONFIG_SetupMouse(); + CONFIG_SetupJoystick(); + + CONTROL_JoystickEnabled = (ud.config.UseJoystick && CONTROL_JoyPresent); + CONTROL_MouseEnabled = (ud.config.UseMouse && CONTROL_MousePresent); + + // JBF 20040215: evil and nasty place to do this, but joysticks are evil and nasty too + for (i=0;i 10) + while (Bstrlen(stripcolorcodes(buf,tempbuf)) > 10) { buf[Bstrlen(buf)-1] = '\0'; inputloc--; diff --git a/polymer/eduke32/source/osdcmds.c b/polymer/eduke32/source/osdcmds.c index f547d893e..b7911260b 100644 --- a/polymer/eduke32/source/osdcmds.c +++ b/polymer/eduke32/source/osdcmds.c @@ -926,6 +926,8 @@ static int osdcmd_usemousejoy(const osdfuncparm_t *parm) static int osdcmd_name(const osdfuncparm_t *parm) { + char namebuf[32]; + if (parm->numparms != 1) { OSD_Printf("\"name\" is \"%s\"\n",myname); @@ -934,7 +936,7 @@ static int osdcmd_name(const osdfuncparm_t *parm) Bstrcpy(tempbuf,parm->parms[0]); - while (Bstrlen(stripcolorcodes(tempbuf)) > 10) + while (Bstrlen(stripcolorcodes(tempbuf,namebuf)) > 10) tempbuf[Bstrlen(tempbuf)-1] = '\0'; Bstrncpy(myname,tempbuf,sizeof(myname)-1);