Add TIMER_FONT, rename V_DrawKartString to V_DrawTimerString

Separates timer and FREE PLAY fonts.
This commit is contained in:
James R 2023-04-20 23:45:38 -07:00
parent 68916559aa
commit d9b406f4d0
8 changed files with 55 additions and 36 deletions

View file

@ -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);
}
}

View file

@ -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),

View file

@ -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<<FRACBITS, ty<<FRACBITS, scale, 0, kp_timeoutsticker, NULL);
V_DrawKartString(x-txoff, ty, 0, va("%d", stplyr->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);
}
}

View file

@ -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

View file

@ -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;
}

View file

@ -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");

View file

@ -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)

View file

@ -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)