diff --git a/polymer/build/src/mdsprite.c b/polymer/build/src/mdsprite.c index 614a0f038..f6243975d 100644 --- a/polymer/build/src/mdsprite.c +++ b/polymer/build/src/mdsprite.c @@ -568,7 +568,7 @@ int mdloadskin_trytexcache(char *fn, int len, int pal, char effect, texcachehead if (!bglCompressedTexImage2DARB || !bglGetCompressedTexImageARB) { // lacking the necessary extensions to do this - initprintf("Warning: the GL driver lacks necessary functions to use caching\n"); + OSD_Printf("Warning: the GL driver lacks necessary functions to use caching\n"); glusetexcache = 0; return -1; } @@ -745,7 +745,7 @@ int mdloadskin(md2model *m, int number, int pal, int surf) if ((filh = kopen4load(fn, 0)) < 0) { - initprintf("Skin %s not found.\n",fn); + OSD_Printf("Skin %s not found.\n",fn); skinfile[0] = 0; return 0; } @@ -773,7 +773,7 @@ int mdloadskin(md2model *m, int number, int pal, int surf) if (daskinloader(filh,&fptr,&bpl,&xsiz,&ysiz,&osizx,&osizy,&hasalpha,pal,(globalnoeffect)?0:hictinting[pal].f,m,number,surf)) { kclose(filh); - initprintf("Failed loading skin file \"%s\"\n", fn); + OSD_Printf("Failed loading skin file \"%s\"\n", fn); skinfile[0] = 0; return(0); } @@ -860,7 +860,7 @@ int mdloadskin(md2model *m, int number, int pal, int surf) if (ysiz == pow2long[j]) { i |= 2; } } cachead.flags = (i!=3) | (hasalpha ? 2 : 0); - initprintf("No cached tex for %s.\n",fn); + OSD_Printf("No cached tex for %s.\n",fn); writexcache(fn, picfillen, pal<<8, (globalnoeffect)?0:hictinting[pal].f, &cachead); } diff --git a/polymer/build/src/polymost.c b/polymer/build/src/polymost.c index 9143104f2..0d0c7762e 100644 --- a/polymer/build/src/polymost.c +++ b/polymer/build/src/polymost.c @@ -1225,7 +1225,7 @@ int trytexcache(char *fn, int len, int dameth, char effect, texcacheheader *head if (!bglCompressedTexImage2DARB || !bglGetCompressedTexImageARB) { // lacking the necessary extensions to do this - initprintf("Warning: the GL driver lacks necessary functions to use caching\n"); + OSD_Printf("Warning: the GL driver lacks necessary functions to use caching\n"); glusetexcache = 0; return -1; } @@ -1274,11 +1274,11 @@ void writexcache(char *fn, int len, int dameth, char effect, texcacheheader *hea unsigned int padx=0, pady=0; GLuint gi; - if (!glinfo.texcompr || !glusetexcompr || !glusetexcache) {initprintf("\n");return;} + if (!glinfo.texcompr || !glusetexcompr || !glusetexcache) {OSD_Printf("\n");return;} if (!bglCompressedTexImage2DARB || !bglGetCompressedTexImageARB) { // lacking the necessary extensions to do this - initprintf("Warning: the GL driver lacks necessary functions to use caching\n"); + OSD_Printf("Warning: the GL driver lacks necessary functions to use caching\n"); glusetexcache = 0; return; } @@ -1292,11 +1292,11 @@ void writexcache(char *fn, int len, int dameth, char effect, texcacheheader *hea // try to create the cache directory if (Bmkdir(TEXCACHEDIR, S_IRWXU) < 0) { - initprintf("Failed to create texture cache directory %s\n", TEXCACHEDIR); + OSD_Printf("Failed to create texture cache directory %s\n", TEXCACHEDIR); glusetexcache = 0; return; } - else initprintf("Created texture cache directory %s\n", TEXCACHEDIR); + else OSD_Printf("Created texture cache directory %s\n", TEXCACHEDIR); } else { @@ -1323,7 +1323,7 @@ void writexcache(char *fn, int len, int dameth, char effect, texcacheheader *hea for (fp = 0; fp < 16; phex(mdsum[fp++], cp), cp+=2); sprintf(cp, "-%x-%x%x", len, dameth, effect); - initprintf("Writing cached tex: %s\n", cachefn); + OSD_Printf("Writing cached tex: %s\n", cachefn); fil = Bopen(cachefn,BO_BINARY|BO_CREAT|BO_TRUNC|BO_RDWR,BS_IREAD|BS_IWRITE); if (fil < 0) return; @@ -1452,7 +1452,7 @@ int gloadtile_cached(int fil, texcacheheader *head, int *doalloc, pthtyp *pth,in format = B_LITTLE32(format); if (pict.format != format) { - initprintf("invalid texture cache file format %d %d\n",pict.format, format); + OSD_Printf("invalid texture cache file format %d %d\n",pict.format, format); goto failure; } } @@ -1522,7 +1522,7 @@ int gloadtile_hi(int dapic,int dapalnum, int facen, hicreplctyp *hicr, int damet if ((filh = kopen4load(fn, 0)) < 0) { - initprintf("hightile: %s (pic %d) not found\n", fn, dapic); + OSD_Printf("hightile: %s (pic %d) not found\n", fn, dapic); if (facen > 0) hicr->skybox->ignore = 1; else @@ -1719,7 +1719,7 @@ int gloadtile_hi(int dapic,int dapalnum, int facen, hicreplctyp *hicr, int damet if (ysiz == pow2long[j]) { x |= 2; } } cachead.flags = (x!=3) | (hasalpha != 255 ? 2 : 0); - initprintf("No cached tex for tile %d pal %d.\n",dapic,dapalnum); + OSD_Printf("No cached tex for tile %d pal %d.\n",dapic,dapalnum); writexcache(fn, picfillen+(dapalnum<<8), dameth, effect, &cachead); } diff --git a/polymer/eduke32/source/funct.h b/polymer/eduke32/source/funct.h index 21f31292a..1b9263820 100644 --- a/polymer/eduke32/source/funct.h +++ b/polymer/eduke32/source/funct.h @@ -118,7 +118,6 @@ extern void loadefs(const char *fn); extern int furthestangle(int iActor,int angs); extern void execute(int iActor,int iPlayer,int lDist); extern void overwritesprite(int thex,int they,int tilenum,int shade,int stat,int dapalnum); -extern inline int minitext(int x,int y,const char *t,int p,int sb); extern void gamenumber(int x,int y,int n,int s); extern void Shutdown(void); extern void getpackets(void); @@ -191,7 +190,6 @@ extern inline void setstatusbarscale(int sc); extern void setgamepalette(player_struct *player, char *pal, int set); extern void fadepal(int r, int g, int b, int start, int end, int step); -extern inline int minitextshade(int x,int y,const char *t,int s,int p,int sb); extern inline int gametext_z(int small, int starttile, int x,int y,const char *t,int s,int p,int orientation,int x1, int y1, int x2, int y2,int z); extern void txdigitalnumberz(int starttile, int x,int y,int n,int s,int pal,int cs,int x1, int y1, int x2, int y2, int z); extern void myosx(int x,int y,int tilenum,int shade,int orientation); @@ -199,6 +197,11 @@ extern void myospalx(int x,int y,int tilenum,int shade,int orientation,int p); extern void ResetGameVars(void); extern void ResetActorGameVars(int iActor); +extern int minitext_(int x,int y,const char *t,int s,int p,int sb); + +#define minitextshade(x, y, t, s, p, sb) minitext_(x,y,t,s,p,sb) +#define minitext(x, y, t, p, sb) minitext_(x,y,t,0,p,sb) + #define gametext(x,y,t,s,dabits) gametext_z(0,STARTALPHANUM, x,y,t,s,0,dabits,0, 0, xdim-1, ydim-1, 65536) #define gametextpal(x,y,t,s,p) gametext_z(0,STARTALPHANUM, x,y,t,s,p,26,0, 0, xdim-1, ydim-1, 65536) #define mgametext(x,y,t,s,dabits) gametext_z(2,STARTALPHANUM, x,y,t,s,0,dabits,0, 0, xdim-1, ydim-1, 65536) diff --git a/polymer/eduke32/source/game.c b/polymer/eduke32/source/game.c index 722257826..d231801b0 100644 --- a/polymer/eduke32/source/game.c +++ b/polymer/eduke32/source/game.c @@ -405,7 +405,7 @@ static inline int mpgametext(int y,const char *t,int s,int dabits) return(gametext_z(0,STARTALPHANUM, 5,y,t,s,0,dabits,0, 0, xdim-1, ydim-1, 65536)); } -static int minitext_(int x,int y,const char *t,int s,int p,int sb) +int minitext_(int x,int y,const char *t,int s,int p,int sb) { int ac; char ch,cmode; @@ -417,6 +417,25 @@ static int minitext_(int x,int y,const char *t,int s,int p,int sb) usehightile = (ht && !r_downsize); while (*t) { + if (*t == '^' && isdigit(*(t+1))) + { + char smallbuf[4]; + t++; + if (isdigit(*(t+1))) + { + smallbuf[0] = *(t++); + smallbuf[1] = *(t++); + smallbuf[2] = '\0'; + p = atol(smallbuf); + } + else + { + smallbuf[0] = *(t++); + smallbuf[1] = '\0'; + p = atol(smallbuf); + } + continue; + } ch = Btoupper(*t); if (ch == 32) { @@ -436,16 +455,6 @@ static int minitext_(int x,int y,const char *t,int s,int p,int sb) return (x); } -inline int minitextshade(int x,int y,const char *t,int s,int p,int sb) -{ - return (minitext_(x,y,(char *)stripcolorcodes(t),s,p,sb)); -} - -inline int minitext(int x,int y,const char *t,int p,int sb) -{ - return (minitext_(x,y,(char *)stripcolorcodes(t),0,p,sb)); -} - #if 0 static void gamenumber(int x,int y,int n,char s) { @@ -3175,7 +3184,7 @@ static void drawoverheadmap(int cposx, int cposy, int czoom, short cang) else if (j > (65536<<1)) j = (65536<<1); rotatesprite((x1<<4)+(xdim<<15),(y1<<4)+(ydim<<15),j,daang,i,sprite[g_player[p].ps->i].shade, - (g_player[p].ps->cursectnum > -1)?sector[g_player[p].ps->cursectnum].floorpal:0, + (g_player[p].ps->cursectnum > -1)?sector[g_player[p].ps->cursectnum].floorpal:0, (sprite[g_player[p].ps->i].cstat&2)>>1,windowx1,windowy1,windowx2,windowy2); } } @@ -3399,7 +3408,7 @@ void displayrest(int smoothratio) if (ud.overhead_on == 2) { - a = (ud.screen_size > 2)?scale(tilesizy[BOTTOMSTATUSBAR],ud.statusbarscale,100):5; + a = (ud.screen_size > 2)?scale(tilesizy[ud.screen_size==4?INVENTORYBOX:BOTTOMSTATUSBAR],ud.statusbarscale,100):5; minitext(5,200-a-6-6-6-6,volume_names[ud.volume_number],0,2+8+16); minitext(5,200-a-6-6-6-6-6,map[ud.volume_number*MAXLEVELS + ud.level_number].name,0,2+8+16); } @@ -3505,22 +3514,22 @@ void displayrest(int smoothratio) // JBF 20040124: display level stats in screen corner if (ud.levelstats && (g_player[myconnectindex].ps->gm&MODE_MENU) == 0) { - i = (ud.screen_size > 2)?scale(tilesizy[BOTTOMSTATUSBAR],ud.statusbarscale,100):5; + i = (ud.screen_size > 2)?scale(tilesizy[ud.screen_size==4?INVENTORYBOX:BOTTOMSTATUSBAR],ud.statusbarscale,100):5; - Bsprintf(tempbuf,"T:%d:%02d", + Bsprintf(tempbuf,"T:^15%d:%02d", (g_player[myconnectindex].ps->player_par/(26*60)), (g_player[myconnectindex].ps->player_par/26)%60); minitext(5,200-i-6-6-6,tempbuf,10,26); if (ud.player_skill > 3 || (ud.multimode > 1 && !GTFLAGS(GAMETYPE_FLAG_PLAYERSFRIENDLY))) - Bsprintf(tempbuf,"K:%d",(ud.multimode>1 &&!GTFLAGS(GAMETYPE_FLAG_PLAYERSFRIENDLY))?g_player[i].ps->frag-g_player[i].ps->fraggedself:g_player[myconnectindex].ps->actors_killed); + Bsprintf(tempbuf,"K:^15%d",(ud.multimode>1 &&!GTFLAGS(GAMETYPE_FLAG_PLAYERSFRIENDLY))?g_player[i].ps->frag-g_player[i].ps->fraggedself:g_player[myconnectindex].ps->actors_killed); else - Bsprintf(tempbuf,"K:%d/%d",g_player[myconnectindex].ps->actors_killed, + Bsprintf(tempbuf,"K:^15%d/%d",g_player[myconnectindex].ps->actors_killed, g_player[myconnectindex].ps->max_actors_killed>g_player[myconnectindex].ps->actors_killed? g_player[myconnectindex].ps->max_actors_killed:g_player[myconnectindex].ps->actors_killed); minitext(5,200-i-6-6,tempbuf,10,26); - Bsprintf(tempbuf,"S:%d/%d", g_player[myconnectindex].ps->secret_rooms,g_player[myconnectindex].ps->max_secret_rooms); + Bsprintf(tempbuf,"S:^15%d/%d", g_player[myconnectindex].ps->secret_rooms,g_player[myconnectindex].ps->max_secret_rooms); minitext(5,200-i-6,tempbuf,10,26); } if (tintf > 0 || dotint) palto(tintr,tintg,tintb,tintf|128); @@ -4266,7 +4275,7 @@ int EGS(int whatsect,int s_x,int s_y,int s_z,int s_pn,int s_s,int s_xr,int s_yr, s->clipdist = 0; s->pal = 0; s->lotag = 0; - + if (s_ow > -1 && s_ow < MAXSPRITES) { hittype[i].picnum = sprite[s_ow].picnum; diff --git a/polymer/eduke32/source/menus.c b/polymer/eduke32/source/menus.c index 522bb2539..8ae103857 100644 --- a/polymer/eduke32/source/menus.c +++ b/polymer/eduke32/source/menus.c @@ -51,6 +51,8 @@ static char *mousebuttonnames[] = { "Left", "Right", "Middle", "Thumb", "Wheel U extern int voting; +#define USERMAPENTRYLENGTH 25 + void cmenu(int cm) { current_menu = cm; @@ -2227,14 +2229,26 @@ cheat_for_port_credits: if (finddirshigh) { + int len; + dir = finddirshigh; - for (i=0; i<6; i++) if (!dir->prev) break; + for (i=0; i<5; i++) if (!dir->prev) break; else dir=dir->prev; - for (i=6; i>-7 && dir; i--, dir=dir->next) + for (i=5; i>-8 && dir; i--, dir=dir->next) { if (dir == finddirshigh && currentlist == 0) c=0; else c=16; - minitextshade(40,1+12+32+8*(7-i),dir->name,c,0,26); + len = Bstrlen(dir->name); + Bstrncpy(tempbuf,dir->name,len); + if (len > USERMAPENTRYLENGTH) + { + len = USERMAPENTRYLENGTH-3; + tempbuf[len] = 0; + while (len < USERMAPENTRYLENGTH) + tempbuf[len++] = '.'; + } + tempbuf[len] = 0; + minitextshade(40,1+12+32+8*(6-i),tempbuf,c,0,26); } } @@ -2242,14 +2256,26 @@ cheat_for_port_credits: if (findfileshigh) { + int len; + dir = findfileshigh; - for (i=0; i<7; i++) if (!dir->prev) break; + for (i=0; i<6; i++) if (!dir->prev) break; else dir=dir->prev; - for (i=7; i>-7 && dir; i--, dir=dir->next) + for (i=6; i>-8 && dir; i--, dir=dir->next) { if (dir == findfileshigh && currentlist == 1) c=0; else c=16; - minitextshade(180,1+12+32+8*(7-i),dir->name,c,2,26); + len = Bstrlen(dir->name); + Bstrncpy(tempbuf,dir->name,len); + if (len > USERMAPENTRYLENGTH) + { + len = USERMAPENTRYLENGTH-3; + tempbuf[len] = 0; + while (len < USERMAPENTRYLENGTH) + tempbuf[len++] = '.'; + } + tempbuf[len] = 0; + minitextshade(180,1+12+32+8*(6-i),tempbuf,c,2,26); } } diff --git a/polymer/eduke32/source/sector.c b/polymer/eduke32/source/sector.c index a15c4daa9..2da3ec94c 100644 --- a/polymer/eduke32/source/sector.c +++ b/polymer/eduke32/source/sector.c @@ -3192,47 +3192,47 @@ void checksectors(int snum) short j,hitscanwall; if (p->cursectnum > -1) - switch (sector[p->cursectnum].lotag) - { + switch (sector[p->cursectnum].lotag) + { - case 32767: - sector[p->cursectnum].lotag = 0; - FTA(9,p); - p->secret_rooms++; - return; - case -1: - for (i=connecthead;i>=0;i=connectpoint2[i]) - g_player[i].ps->gm = MODE_EOL; - sector[p->cursectnum].lotag = 0; - if (ud.from_bonus) - { - ud.level_number = ud.from_bonus; - ud.m_level_number = ud.level_number; - ud.from_bonus = 0; - } - else - { - ud.level_number++; - if (ud.level_number > MAXLEVELS-1) - ud.level_number = 0; - ud.m_level_number = ud.level_number; - } - return; - case -2: - sector[p->cursectnum].lotag = 0; - p->timebeforeexit = 26*8; - p->customexitsound = sector[p->cursectnum].hitag; - return; - default: - if (sector[p->cursectnum].lotag >= 10000 && sector[p->cursectnum].lotag < 16383) - { - if (snum == screenpeek || (gametype_flags[ud.coop]&GAMETYPE_FLAG_COOPSOUND)) - spritesound(sector[p->cursectnum].lotag-10000,p->i); + case 32767: sector[p->cursectnum].lotag = 0; - } - break; + FTA(9,p); + p->secret_rooms++; + return; + case -1: + for (i=connecthead;i>=0;i=connectpoint2[i]) + g_player[i].ps->gm = MODE_EOL; + sector[p->cursectnum].lotag = 0; + if (ud.from_bonus) + { + ud.level_number = ud.from_bonus; + ud.m_level_number = ud.level_number; + ud.from_bonus = 0; + } + else + { + ud.level_number++; + if (ud.level_number > MAXLEVELS-1) + ud.level_number = 0; + ud.m_level_number = ud.level_number; + } + return; + case -2: + sector[p->cursectnum].lotag = 0; + p->timebeforeexit = 26*8; + p->customexitsound = sector[p->cursectnum].hitag; + return; + default: + if (sector[p->cursectnum].lotag >= 10000 && sector[p->cursectnum].lotag < 16383) + { + if (snum == screenpeek || (gametype_flags[ud.coop]&GAMETYPE_FLAG_COOPSOUND)) + spritesound(sector[p->cursectnum].lotag-10000,p->i); + sector[p->cursectnum].lotag = 0; + } + break; - } + } //After this point the the player effects the map with space