diff --git a/src/hu_stuff.c b/src/hu_stuff.c index 7cb20d7ca..8b0c5c6a9 100644 --- a/src/hu_stuff.c +++ b/src/hu_stuff.c @@ -305,6 +305,10 @@ void HU_Init(void) PR ("MKFNT"); REG; + ADIM (TIMER); + PR ("TMFNT"); + REG; + ADIM (LT); PR ("GAMEM"); REG; @@ -2732,4 +2736,4 @@ void HU_DoTitlecardCEcho(const char *msg) tcechotext[sizeof(tcechotext) - 1] = '\0'; tcechotimer = 1; tcechoduration = TICRATE*6 + strlen(tcechotext); -} \ No newline at end of file +} diff --git a/src/hu_stuff.h b/src/hu_stuff.h index bf897de41..eaef0a59d 100644 --- a/src/hu_stuff.h +++ b/src/hu_stuff.h @@ -37,6 +37,11 @@ extern "C" { #define KART_FONTSIZE (KART_FONTEND - KART_FONTSTART + 1) +#define TIMER_FONTSTART '"' // the first font character +#define TIMER_FONTEND '9' + +#define TIMER_FONTSIZE (TIMER_FONTEND - TIMER_FONTSTART + 1) + #define AZ_FONTSTART 'A' // the first font character #define AZ_FONTEND 'Z' @@ -77,6 +82,7 @@ enum X (PROFNUM), X (KART), + X (TIMER), X (GM), X (LSHI), X (LSLOW), diff --git a/src/k_hud.c b/src/k_hud.c index ee11dd568..145d9f502 100644 --- a/src/k_hud.c +++ b/src/k_hud.c @@ -1448,7 +1448,7 @@ static void K_drawKartItem(void) else { V_DrawScaledPatch(fy+28, fy+41, V_HUDTRANS|V_SLIDEIN|fflags, kp_itemx); - V_DrawKartString(fx+38, fy+36, V_HUDTRANS|V_SLIDEIN|fflags, va("%d", stplyr->itemamount)); + V_DrawTimerString(fx+38, fy+36, V_HUDTRANS|V_SLIDEIN|fflags, va("%d", stplyr->itemamount)); } } else @@ -1587,30 +1587,30 @@ void K_drawKartTimestamp(tic_t drawtime, INT32 TX, INT32 TY, INT32 splitflags, U } if (mode && !drawtime) - V_DrawKartString(TX, TY+3, splitflags, va("--'--\"--")); + V_DrawTimerString(TX, TY+3, splitflags, va("--'--\"--")); else { // minutes time 00 __ __ - V_DrawKartString(TX, TY+3+jitter, splitflags, va("%d", worktime/10)); - V_DrawKartString(TX+12, TY+3-jitter, splitflags, va("%d", worktime%10)); + V_DrawTimerString(TX, TY+3+jitter, splitflags, va("%d", worktime/10)); + V_DrawTimerString(TX+12, TY+3-jitter, splitflags, va("%d", worktime%10)); // apostrophe location _'__ __ - V_DrawKartString(TX+24, TY+3, splitflags, va("'")); + V_DrawTimerString(TX+24, TY+3, splitflags, va("'")); worktime = (drawtime/TICRATE % 60); // seconds time _ 00 __ - V_DrawKartString(TX+36, TY+3+jitter, splitflags, va("%d", worktime/10)); - V_DrawKartString(TX+48, TY+3-jitter, splitflags, va("%d", worktime%10)); + V_DrawTimerString(TX+36, TY+3+jitter, splitflags, va("%d", worktime/10)); + V_DrawTimerString(TX+48, TY+3-jitter, splitflags, va("%d", worktime%10)); // quotation mark location _ __"__ - V_DrawKartString(TX+60, TY+3, splitflags, va("\"")); + V_DrawTimerString(TX+60, TY+3, splitflags, va("\"")); worktime = G_TicsToCentiseconds(drawtime); // tics _ __ 00 - V_DrawKartString(TX+72, TY+3+jitter, splitflags, va("%d", worktime/10)); - V_DrawKartString(TX+84, TY+3-jitter, splitflags, va("%d", worktime%10)); + V_DrawTimerString(TX+72, TY+3+jitter, splitflags, va("%d", worktime/10)); + V_DrawTimerString(TX+84, TY+3-jitter, splitflags, va("%d", worktime%10)); } // Medal data! @@ -2490,7 +2490,7 @@ static void K_drawKartLaps(void) { // Laps V_DrawScaledPatch(LAPS_X, LAPS_Y, V_HUDTRANS|V_SLIDEIN|splitflags, kp_lapsticker); - V_DrawKartString(LAPS_X+33, LAPS_Y+3, V_HUDTRANS|V_SLIDEIN|splitflags, va("%d/%d", min(stplyr->laps, numlaps), numlaps)); + V_DrawTimerString(LAPS_X+33, LAPS_Y+3, V_HUDTRANS|V_SLIDEIN|splitflags, va("%d/%d", min(stplyr->laps, numlaps), numlaps)); } } @@ -2986,7 +2986,7 @@ static void K_drawKartBumpersOrKarma(void) V_DrawMappedPatch(LAPS_X, LAPS_Y, V_HUDTRANS|V_SLIDEIN|splitflags, kp_capsulestickerwide, NULL); else V_DrawMappedPatch(LAPS_X, LAPS_Y, V_HUDTRANS|V_SLIDEIN|splitflags, kp_capsulesticker, NULL); - V_DrawKartString(LAPS_X+47, LAPS_Y+3, V_HUDTRANS|V_SLIDEIN|splitflags, va("%d/%d", numtargets, maptargets)); + V_DrawTimerString(LAPS_X+47, LAPS_Y+3, V_HUDTRANS|V_SLIDEIN|splitflags, va("%d/%d", numtargets, maptargets)); } else { @@ -2998,7 +2998,7 @@ static void K_drawKartBumpersOrKarma(void) else V_DrawMappedPatch(LAPS_X, LAPS_Y, V_HUDTRANS|V_SLIDEIN|splitflags, kp_bumpersticker, colormap); - V_DrawKartString(LAPS_X+47, LAPS_Y+3, V_HUDTRANS|V_SLIDEIN|splitflags, va("%d/%d", bumpers, maxbumper)); + V_DrawTimerString(LAPS_X+47, LAPS_Y+3, V_HUDTRANS|V_SLIDEIN|splitflags, va("%d/%d", bumpers, maxbumper)); } } } @@ -4507,7 +4507,7 @@ static void K_drawBattleFullscreen(void) else { V_DrawFixedPatch(x<karmadelay/TICRATE)); + V_DrawTimerString(x-txoff, ty, 0, va("%d", stplyr->karmadelay/TICRATE)); } } @@ -4919,8 +4919,17 @@ void K_drawKartFreePlay(void) if (((leveltime-lt_endtime) % TICRATE) < TICRATE/2) return; - V_DrawKartString((BASEVIDWIDTH - (LAPS_X+1)) - 72, // mirror the laps thingy - LAPS_Y+3, V_HUDTRANS|V_SLIDEIN|V_SNAPTOBOTTOM|V_SNAPTORIGHT|V_SPLITSCREEN, "FREE PLAY"); + V_DrawStringScaled( + ((BASEVIDWIDTH - (LAPS_X+1)) - 72) * FRACUNIT, // mirror the laps thingy + (LAPS_Y+3) * FRACUNIT, + FRACUNIT, + FRACUNIT, + FRACUNIT, + V_HUDTRANS|V_SLIDEIN|V_SNAPTOBOTTOM|V_SNAPTORIGHT|V_SPLITSCREEN, + NULL, + KART_FONT, + "FREE PLAY" + ); } static void @@ -5371,7 +5380,7 @@ void K_drawKartHUD(void) else { INT32 karlen = strlen(countstr)*6; // half of 12 - V_DrawKartString((BASEVIDWIDTH/2)-karlen, LAPS_Y+3, V_SPLITSCREEN, countstr); + V_DrawTimerString((BASEVIDWIDTH/2)-karlen, LAPS_Y+3, V_SPLITSCREEN, countstr); } } diff --git a/src/k_menudraw.c b/src/k_menudraw.c index 2111acfbb..06d8e95d0 100644 --- a/src/k_menudraw.c +++ b/src/k_menudraw.c @@ -1701,7 +1701,7 @@ static void M_DrawProfileCard(INT32 x, INT32 y, boolean greyedout, profile_t *p) if (p != NULL) { V_DrawFixedPatch((x+30)*FRACUNIT, (y+84)*FRACUNIT, FRACUNIT, 0, pwrlv, colormap); - V_DrawCenteredKartString(x+30, y+87, 0, va("%d", p->wins)); + V_DrawCenteredTimerString(x+30, y+87, 0, va("%d", p->wins)); } @@ -3839,7 +3839,7 @@ void M_DrawItemToggles(void) V_DrawScaledPatch(onx-1, ony-2, 0, W_CachePatchName("K_ITMUL", PU_CACHE)); V_DrawScaledPatch(onx-1, ony-2, translucent, W_CachePatchName(K_GetItemPatch(currentMenu->menuitems[itemOn].mvar1, false), PU_CACHE)); V_DrawScaledPatch(onx+27, ony+39, translucent, W_CachePatchName("K_ITX", PU_CACHE)); - V_DrawKartString(onx+37, ony+34, translucent, va("%d", drawnum)); + V_DrawTimerString(onx+37, ony+34, translucent, va("%d", drawnum)); } else V_DrawScaledPatch(onx-1, ony-2, translucent, W_CachePatchName(K_GetItemPatch(currentMenu->menuitems[itemOn].mvar1, false), PU_CACHE)); @@ -5559,7 +5559,7 @@ challengedesc: } V_DrawFixedPatch((8+offs)*FRACUNIT, 5*FRACUNIT, FRACUNIT, 0, key, NULL); - V_DrawKartString((27+offs), 9-challengesmenu.unlockcount[CC_CHAOANIM], 0, va("%u", gamedata->chaokeys)); + V_DrawTimerString((27+offs), 9-challengesmenu.unlockcount[CC_CHAOANIM], 0, va("%u", gamedata->chaokeys)); offs = challengekeybarwidth; if (gamedata->chaokeys < GDMAX_CHAOKEYS) @@ -5577,7 +5577,7 @@ challengedesc: challengesmenu.unlockcount[CC_UNLOCKED] + challengesmenu.unlockcount[CC_TALLY], challengesmenu.unlockcount[CC_TOTAL] ); - V_DrawRightAlignedKartString(BASEVIDWIDTH-7, 9-challengesmenu.unlockcount[CC_ANIM], 0, str); + V_DrawRightAlignedTimerString(BASEVIDWIDTH-7, 9-challengesmenu.unlockcount[CC_ANIM], 0, str); } // Name bar diff --git a/src/lua_hudlib.c b/src/lua_hudlib.c index 5e08fd25d..aab85e26c 100644 --- a/src/lua_hudlib.c +++ b/src/lua_hudlib.c @@ -984,7 +984,7 @@ static int libd_drawKartString(lua_State *L) if (LUA_HUD_IsDrawListValid(list)) LUA_HUD_AddDrawKartString(list, x, y, str, flags); else - V_DrawKartString(x, y, flags, str); + V_DrawTimerString(x, y, flags, str); return 0; } diff --git a/src/lua_hudlib_drawlist.c b/src/lua_hudlib_drawlist.c index ce5b9d49f..68515ae20 100644 --- a/src/lua_hudlib_drawlist.c +++ b/src/lua_hudlib_drawlist.c @@ -468,7 +468,7 @@ void LUA_HUD_DrawList(huddrawlist_h list) V_DrawTitleCardString(item->x, item->y, itemstr, item->flags, item->bossmode, item->timer, item->threshold); break; case DI_DrawKartString: - V_DrawKartString(item->x, item->y, item->flags, itemstr); + V_DrawTimerString(item->x, item->y, item->flags, itemstr); break; default: I_Error("can't draw draw list item: invalid draw list item type"); diff --git a/src/v_video.cpp b/src/v_video.cpp index 26369c281..afab505a7 100644 --- a/src/v_video.cpp +++ b/src/v_video.cpp @@ -2800,16 +2800,16 @@ fixed_t V_DrawPingNum(fixed_t x, fixed_t y, INT32 flags, INT32 num, const UINT8 return x; } -void V_DrawCenteredKartString(INT32 x, INT32 y, INT32 option, const char *string) +void V_DrawCenteredTimerString(INT32 x, INT32 y, INT32 option, const char *string) { - x -= V_KartStringWidth(string, option)/2; - V_DrawKartString(x, y, option, string); + x -= V_TimerStringWidth(string, option)/2; + V_DrawTimerString(x, y, option, string); } -void V_DrawRightAlignedKartString(INT32 x, INT32 y, INT32 option, const char *string) +void V_DrawRightAlignedTimerString(INT32 x, INT32 y, INT32 option, const char *string) { - x -= V_KartStringWidth(string, option); - V_DrawKartString(x, y, option, string); + x -= V_TimerStringWidth(string, option); + V_DrawTimerString(x, y, option, string); } void V_DrawCenteredGamemodeString(INT32 x, INT32 y, INT32 option, const UINT8 *colormap, const char *string) diff --git a/src/v_video.h b/src/v_video.h index 28ab28d2a..65529c112 100644 --- a/src/v_video.h +++ b/src/v_video.h @@ -364,14 +364,14 @@ void V_DrawProfileNum(INT32 x, INT32 y, INT32 flags, UINT8 num); V__IntegerStringWidth ( FRACUNIT,0,CRED_FONT,string ) // SRB2Kart -#define V_DrawKartString( x,y,option,string ) \ - V__DrawDupxString (x,y,FRACUNIT,option,NULL,KART_FONT,string) +#define V_DrawTimerString( x,y,option,string ) \ + V__DrawDupxString (x,y,FRACUNIT,option,NULL,TIMER_FONT,string) -#define V_KartStringWidth( string,option ) \ - V__IntegerStringWidth ( FRACUNIT,option,KART_FONT,string ) +#define V_TimerStringWidth( string,option ) \ + V__IntegerStringWidth ( FRACUNIT,option,TIMER_FONT,string ) -void V_DrawCenteredKartString(INT32 x, INT32 y, INT32 option, const char *string); -void V_DrawRightAlignedKartString(INT32 x, INT32 y, INT32 option, const char *string); +void V_DrawCenteredTimerString(INT32 x, INT32 y, INT32 option, const char *string); +void V_DrawRightAlignedTimerString(INT32 x, INT32 y, INT32 option, const char *string); #define V_DrawGamemodeString( x,y,option,cm,string ) \ V__DrawDupxString (x,y,FRACUNIT,option,cm,GM_FONT,string)