mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Merge branch 'tuto-minor' into 'master'
Minor tutorial addendums See merge request kart-krew-dev/ring-racers-internal!2733
This commit is contained in:
commit
56fe6580e2
17 changed files with 300 additions and 88 deletions
|
|
@ -305,6 +305,10 @@ void HU_Init(void)
|
||||||
PR ("4GTFN");
|
PR ("4GTFN");
|
||||||
REG;
|
REG;
|
||||||
|
|
||||||
|
DIG (2);
|
||||||
|
PR ("GENEFN");
|
||||||
|
REG;
|
||||||
|
|
||||||
DIG (1);
|
DIG (1);
|
||||||
|
|
||||||
DIM (0, 10);
|
DIM (0, 10);
|
||||||
|
|
|
||||||
|
|
@ -77,6 +77,8 @@ enum
|
||||||
X (GTOL4),
|
X (GTOL4),
|
||||||
X (GTFN4),
|
X (GTFN4),
|
||||||
|
|
||||||
|
X (GENESIS),
|
||||||
|
|
||||||
X (TALLNUM),
|
X (TALLNUM),
|
||||||
X (NIGHTSNUM),
|
X (NIGHTSNUM),
|
||||||
X (PINGNUM),
|
X (PINGNUM),
|
||||||
|
|
|
||||||
|
|
@ -294,9 +294,26 @@ void Dialogue::Tick(void)
|
||||||
{
|
{
|
||||||
slide += kSlideSpeed;
|
slide += kSlideSpeed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (P_LevelIsFrozen())
|
||||||
|
{
|
||||||
|
if (fade > 0)
|
||||||
|
{
|
||||||
|
fade--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (fade < 5)
|
||||||
|
{
|
||||||
|
fade++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
if (fade > 0)
|
||||||
|
{
|
||||||
|
fade--;
|
||||||
|
}
|
||||||
|
|
||||||
if (slide > 0)
|
if (slide > 0)
|
||||||
{
|
{
|
||||||
slide -= kSlideSpeed;
|
slide -= kSlideSpeed;
|
||||||
|
|
@ -342,6 +359,11 @@ INT32 Dialogue::SlideAmount(fixed_t multiplier)
|
||||||
return Easing_OutCubic(slide, 0, multiplier);
|
return Easing_OutCubic(slide, 0, multiplier);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
INT32 Dialogue::FadeAmount(void)
|
||||||
|
{
|
||||||
|
return fade;
|
||||||
|
}
|
||||||
|
|
||||||
void Dialogue::Draw(void)
|
void Dialogue::Draw(void)
|
||||||
{
|
{
|
||||||
if (slide == 0)
|
if (slide == 0)
|
||||||
|
|
@ -516,6 +538,7 @@ void Dialogue::Unset(void)
|
||||||
Dismiss();
|
Dismiss();
|
||||||
SetSpeaker();
|
SetSpeaker();
|
||||||
slide = 0;
|
slide = 0;
|
||||||
|
fade = 0;
|
||||||
current_era = 0;
|
current_era = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -547,3 +570,8 @@ INT32 K_GetDialogueSlide(fixed_t multiplier)
|
||||||
{
|
{
|
||||||
return g_dialogue.SlideAmount(multiplier);
|
return g_dialogue.SlideAmount(multiplier);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
INT32 K_GetDialogueFade(void)
|
||||||
|
{
|
||||||
|
return g_dialogue.FadeAmount();
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@ void K_TickDialogue(void);
|
||||||
|
|
||||||
boolean K_DialogueFreeze(void);
|
boolean K_DialogueFreeze(void);
|
||||||
INT32 K_GetDialogueSlide(fixed_t multiplier);
|
INT32 K_GetDialogueSlide(fixed_t multiplier);
|
||||||
|
INT32 K_GetDialogueFade(void);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
} // extern "C"
|
} // extern "C"
|
||||||
|
|
|
||||||
|
|
@ -47,6 +47,7 @@ public:
|
||||||
void Draw(void);
|
void Draw(void);
|
||||||
|
|
||||||
INT32 SlideAmount(fixed_t multiplier);
|
INT32 SlideAmount(fixed_t multiplier);
|
||||||
|
INT32 FadeAmount(void);
|
||||||
|
|
||||||
void Dismiss(void);
|
void Dismiss(void);
|
||||||
void Unset(void);
|
void Unset(void);
|
||||||
|
|
@ -94,6 +95,7 @@ private:
|
||||||
|
|
||||||
bool active;
|
bool active;
|
||||||
fixed_t slide;
|
fixed_t slide;
|
||||||
|
INT32 fade;
|
||||||
|
|
||||||
bool dismissable;
|
bool dismissable;
|
||||||
bool freeze;
|
bool freeze;
|
||||||
|
|
|
||||||
|
|
@ -7654,6 +7654,31 @@ void K_drawKartHUD(void)
|
||||||
{
|
{
|
||||||
if (g_emeraldWin)
|
if (g_emeraldWin)
|
||||||
K_drawEmeraldWin(false);
|
K_drawEmeraldWin(false);
|
||||||
|
|
||||||
|
// Tacitcal Normie Countermeasure
|
||||||
|
INT32 dfade = K_GetDialogueFade();
|
||||||
|
if (dfade)
|
||||||
|
{
|
||||||
|
V_DrawFadeScreen(31, dfade); // Fade out
|
||||||
|
|
||||||
|
srb2::Draw normiedraw = srb2::Draw()
|
||||||
|
.clipx(0.f, BASEVIDWIDTH)
|
||||||
|
.y((BASEVIDHEIGHT - 36)/2)
|
||||||
|
.flags((10 - dfade)<<FF_TRANSSHIFT)
|
||||||
|
.font(srb2::Draw::Font::kGenesis);
|
||||||
|
|
||||||
|
const char *normietext = "COMMUNICATION IN PROGRESS!! ";
|
||||||
|
INT32 normiew = srb2::Draw::TextElement(normietext).font(srb2::Draw::Font::kGenesis).width();
|
||||||
|
INT32 normiex = -((static_cast<INT32>(timeinmap)) % normiew);
|
||||||
|
|
||||||
|
while (normiex < BASEVIDWIDTH)
|
||||||
|
{
|
||||||
|
normiedraw
|
||||||
|
.x(normiex)
|
||||||
|
.text(normietext);
|
||||||
|
normiex += normiew;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// In case of font debugging break glass
|
// In case of font debugging break glass
|
||||||
|
|
@ -8271,16 +8296,17 @@ void K_DrawMarginSticker(INT32 x, INT32 y, INT32 width, INT32 flags, boolean isS
|
||||||
V_DrawFixedPatch((x + width)*FRACUNIT, y*FRACUNIT, FRACUNIT, flags|V_FLIP, stickerEnd, NULL);
|
V_DrawFixedPatch((x + width)*FRACUNIT, y*FRACUNIT, FRACUNIT, flags|V_FLIP, stickerEnd, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
// common fonts: 0 = thin, 8 = menu. sorry we have to launder a C++ enum in here
|
|
||||||
INT32 K_DrawGameControl(UINT16 x, UINT16 y, UINT8 player, const char *str, UINT8 alignment, UINT8 font, UINT32 flags)
|
INT32 K_DrawGameControl(UINT16 x, UINT16 y, UINT8 player, const char *str, UINT8 alignment, UINT8 font, UINT32 flags)
|
||||||
{
|
{
|
||||||
using srb2::Draw;
|
using srb2::Draw;
|
||||||
|
|
||||||
Draw::TextElement text = Draw::TextElement().as(player).parse(str).font((Draw::Font)font);
|
Draw draw = Draw(x, y).align((Draw::Align)alignment).flags(flags);
|
||||||
|
|
||||||
|
Draw::TextElement text = Draw::TextElement().as(player).parse(str).font(draw.fontno_to_font(font));
|
||||||
|
|
||||||
INT32 width = text.width();
|
INT32 width = text.width();
|
||||||
|
|
||||||
Draw(x, y).align((srb2::Draw::Align)alignment).flags(flags).text(text);
|
draw.text(text);
|
||||||
|
|
||||||
return width;
|
return width;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1458,6 +1458,8 @@ extern struct challengesmenu_s {
|
||||||
boolean chaokeyadd, keywasadded;
|
boolean chaokeyadd, keywasadded;
|
||||||
UINT8 chaokeyhold;
|
UINT8 chaokeyhold;
|
||||||
|
|
||||||
|
UINT16 tutorialfound;
|
||||||
|
|
||||||
boolean requestflip;
|
boolean requestflip;
|
||||||
|
|
||||||
UINT16 unlockcount[CMC_MAX];
|
UINT16 unlockcount[CMC_MAX];
|
||||||
|
|
|
||||||
|
|
@ -839,7 +839,7 @@ void M_DrawMenuMessage(void)
|
||||||
workx -= K_DrawGameControl(
|
workx -= K_DrawGameControl(
|
||||||
workx+2, worky+2,
|
workx+2, worky+2,
|
||||||
0, "<b_animated> <x_animated> ",
|
0, "<b_animated> <x_animated> ",
|
||||||
2, 8, 0
|
2, MENU_FONT, 0
|
||||||
);
|
);
|
||||||
|
|
||||||
if (menumessage.confirmstr)
|
if (menumessage.confirmstr)
|
||||||
|
|
@ -863,7 +863,7 @@ void M_DrawMenuMessage(void)
|
||||||
workx -= K_DrawGameControl(
|
workx -= K_DrawGameControl(
|
||||||
workx+2, worky+2,
|
workx+2, worky+2,
|
||||||
0, "<a_animated> ",
|
0, "<a_animated> ",
|
||||||
2, 8, 0
|
2, MENU_FONT, 0
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1257,7 +1257,7 @@ static INT32 M_DrawRejoinIP(INT32 x, INT32 y, INT32 tx)
|
||||||
V_DrawMenuString(x - 10 - (skullAnimCounter/5), y, f, "\x1C"); // left arrow
|
V_DrawMenuString(x - 10 - (skullAnimCounter/5), y, f, "\x1C"); // left arrow
|
||||||
V_DrawMenuString(x + w + 2+ (skullAnimCounter/5), y, f, "\x1D"); // right arrow
|
V_DrawMenuString(x + w + 2+ (skullAnimCounter/5), y, f, "\x1D"); // right arrow
|
||||||
V_DrawThinString(x, y, f, text);
|
V_DrawThinString(x, y, f, text);
|
||||||
K_DrawGameControl(BASEVIDWIDTH + 4 + tx, y, 0, "<c> Rejoin", 2, 0, V_ORANGEMAP);
|
K_DrawGameControl(BASEVIDWIDTH + 4 + tx, y, 0, "<c> Rejoin", 2, TINY_FONT, V_ORANGEMAP);
|
||||||
|
|
||||||
return shift;
|
return shift;
|
||||||
}
|
}
|
||||||
|
|
@ -2462,11 +2462,11 @@ void M_DrawCharacterSelect(void)
|
||||||
|
|
||||||
if (!optionsmenu.profile) // Does nothing on this screen
|
if (!optionsmenu.profile) // Does nothing on this screen
|
||||||
{
|
{
|
||||||
K_DrawGameControl(BASEVIDWIDTH/2, kTop, pid, "<r_animated> Info <c_animated> Default", 1, 0, 0);
|
K_DrawGameControl(BASEVIDWIDTH/2, kTop, pid, "<r_animated> Info <c_animated> Default", 1, TINY_FONT, 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
K_DrawGameControl(BASEVIDWIDTH/2+62, kTop, pid, "<a_animated> Accept <x_animated> Back <c_animated> Default", 1, 0, 0);
|
K_DrawGameControl(BASEVIDWIDTH/2+62, kTop, pid, "<a_animated> Accept <x_animated> Back <c_animated> Default", 1, TINY_FONT, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2745,11 +2745,11 @@ void M_DrawRaceDifficulty(void)
|
||||||
switch (it->mvar2)
|
switch (it->mvar2)
|
||||||
{
|
{
|
||||||
case MBT_Y:
|
case MBT_Y:
|
||||||
K_DrawGameControl(cx + 24, cy + 22, 0, activated ? "<y_pressed>" : "<y>", 0, 8, 0);
|
K_DrawGameControl(cx + 24, cy + 22, 0, activated ? "<y_pressed>" : "<y>", 0, MENU_FONT, 0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MBT_Z:
|
case MBT_Z:
|
||||||
K_DrawGameControl(cx + 24, cy + 22, 0, activated ? "<z_pressed>" : "<z>", 0, 8, 0);
|
K_DrawGameControl(cx + 24, cy + 22, 0, activated ? "<z_pressed>" : "<z>", 0, MENU_FONT, 0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
@ -3868,7 +3868,7 @@ void M_DrawTimeAttack(void)
|
||||||
|
|
||||||
if (M_EncoreAttackTogglePermitted())
|
if (M_EncoreAttackTogglePermitted())
|
||||||
{
|
{
|
||||||
K_DrawGameControl(buttonx + 35, buttony - 3, 0, "<r_animated>", 0, 8, 0);
|
K_DrawGameControl(buttonx + 35, buttony - 3, 0, "<r_animated>", 0, MENU_FONT, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((timeattackmenu.spbflicker == 0 || timeattackmenu.ticker % 2) == (cv_dummyspbattack.value == 1))
|
if ((timeattackmenu.spbflicker == 0 || timeattackmenu.ticker % 2) == (cv_dummyspbattack.value == 1))
|
||||||
|
|
@ -5559,7 +5559,7 @@ void M_DrawProfileControls(void)
|
||||||
UINT16 oldsetting = cv_descriptiveinput->value;
|
UINT16 oldsetting = cv_descriptiveinput->value;
|
||||||
CV_StealthSetValue(cv_descriptiveinput, cv_dummyprofiledescriptiveinput.value);
|
CV_StealthSetValue(cv_descriptiveinput, cv_dummyprofiledescriptiveinput.value);
|
||||||
INT32 xpos = BASEVIDWIDTH - 12;
|
INT32 xpos = BASEVIDWIDTH - 12;
|
||||||
xpos = K_DrawGameControl(xpos, ypos, 0, "<right> / <c> Clear", 2, 0, 0);
|
xpos = K_DrawGameControl(xpos, ypos, 0, "<right> / <c> Clear", 2, TINY_FONT, 0);
|
||||||
CV_StealthSetValue(cv_descriptiveinput, oldsetting);
|
CV_StealthSetValue(cv_descriptiveinput, oldsetting);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -6330,16 +6330,16 @@ void M_DrawPause(void)
|
||||||
}
|
}
|
||||||
else if (gametype == GT_TUTORIAL)
|
else if (gametype == GT_TUTORIAL)
|
||||||
{
|
{
|
||||||
K_DrawGameControl(4, 184 - 60 + offset/2, 0, "<left> <right> <up> <down> Steering", 0, 0, 0);
|
K_DrawGameControl(4, 184 - 60 + offset/2, 0, "<left> <right> <up> <down> Steering", 0, TINY_FONT, 0);
|
||||||
K_DrawGameControl(4, 184 - 45 + offset/2, 0, "<a> Accelerate", 0, 0, 0);
|
K_DrawGameControl(4, 184 - 45 + offset/2, 0, "<a> Accelerate", 0, TINY_FONT, 0);
|
||||||
K_DrawGameControl(4, 184 - 30 + offset/2, 0, "<b> Look Back", 0, 0, 0);
|
K_DrawGameControl(4, 184 - 30 + offset/2, 0, "<b> Look Back", 0, TINY_FONT, 0);
|
||||||
K_DrawGameControl(4, 184 - 15 + offset/2, 0, "<c> Spindash", 0, 0, 0);
|
K_DrawGameControl(4, 184 - 15 + offset/2, 0, "<c> Spindash", 0, TINY_FONT, 0);
|
||||||
K_DrawGameControl(4, 184 - 0 + offset/2, 0, "<l> Item/Rings", 0, 0, 0);
|
K_DrawGameControl(4, 184 - 0 + offset/2, 0, "<l> Item/Rings", 0, TINY_FONT, 0);
|
||||||
|
|
||||||
K_DrawGameControl(90, 184 - 45 + offset/2, 0, "<x> Brake", 0, 0, 0);
|
K_DrawGameControl(90, 184 - 45 + offset/2, 0, "<x> Brake", 0, TINY_FONT, 0);
|
||||||
K_DrawGameControl(90, 184 - 30 + offset/2, 0, "<y> Respawn", 0, 0, 0);
|
K_DrawGameControl(90, 184 - 30 + offset/2, 0, "<y> Respawn", 0, TINY_FONT, 0);
|
||||||
K_DrawGameControl(90, 184 - 15 + offset/2, 0, "<z> Dialogue / Action", 0, 0, 0);
|
K_DrawGameControl(90, 184 - 15 + offset/2, 0, "<z> Dialogue / Action", 0, TINY_FONT, 0);
|
||||||
K_DrawGameControl(90, 184 - 0 + offset/2, 0, "<r> Drift", 0, 0, 0);
|
K_DrawGameControl(90, 184 - 0 + offset/2, 0, "<r> Drift", 0, TINY_FONT, 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -6448,7 +6448,7 @@ void M_DrawKickHandler(void)
|
||||||
(playerkickmenu.adminpowered)
|
(playerkickmenu.adminpowered)
|
||||||
? "You are using <red>Admin Tools<white>. <a> Kick <c> Ban"
|
? "You are using <red>Admin Tools<white>. <a> Kick <c> Ban"
|
||||||
: K_GetMidVoteLabel(menucallvote),
|
: K_GetMidVoteLabel(menucallvote),
|
||||||
1, 0, 0
|
1, TINY_FONT, 0
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -7523,7 +7523,7 @@ static void M_DrawChallengePreview(INT32 x, INT32 y)
|
||||||
y = BASEVIDHEIGHT-16;
|
y = BASEVIDHEIGHT-16;
|
||||||
V_DrawGamemodeString(x, y - 33, 0, R_GetTranslationColormap(TC_RAINBOW, SKINCOLOR_PLAGUE, GTC_MENUCACHE), M_UseAlternateTitleScreen() ? "On" : "Off");
|
V_DrawGamemodeString(x, y - 33, 0, R_GetTranslationColormap(TC_RAINBOW, SKINCOLOR_PLAGUE, GTC_MENUCACHE), M_UseAlternateTitleScreen() ? "On" : "Off");
|
||||||
|
|
||||||
K_DrawGameControl(x, y, 0, "<a_animated> Toggle", 0, 0, 0);
|
K_DrawGameControl(x, y, 0, "<a_animated> Toggle", 0, TINY_FONT, 0);
|
||||||
// K_drawButtonAnim(x, y, 0, kp_button_a[1], challengesmenu.ticker);
|
// K_drawButtonAnim(x, y, 0, kp_button_a[1], challengesmenu.ticker);
|
||||||
// x += SHORT(kp_button_a[1][0]->width);
|
// x += SHORT(kp_button_a[1][0]->width);
|
||||||
// V_DrawThinString(x, y + 1, highlightflags, "Toggle");
|
// V_DrawThinString(x, y + 1, highlightflags, "Toggle");
|
||||||
|
|
@ -7590,9 +7590,9 @@ static void M_DrawChallengePreview(INT32 x, INT32 y)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!pushed)
|
if (!pushed)
|
||||||
K_DrawGameControl(x, y, 0, "<l> <sky>E Side", 0, 0, 0);
|
K_DrawGameControl(x, y, 0, "<l> <sky>E Side", 0, TINY_FONT, 0);
|
||||||
else
|
else
|
||||||
K_DrawGameControl(x, y, 0, "<l_pressed> <gray>E Side", 0, 0, 0);
|
K_DrawGameControl(x, y, 0, "<l_pressed> <gray>E Side", 0, TINY_FONT, 0);
|
||||||
// K_drawButton(x&FRACUNIT, y*FRACUNIT, 0, kp_button_l, pushed);
|
// K_drawButton(x&FRACUNIT, y*FRACUNIT, 0, kp_button_l, pushed);
|
||||||
// x += SHORT(kp_button_l[0]->width);
|
// x += SHORT(kp_button_l[0]->width);
|
||||||
// V_DrawThinString(x, y + 1, (pushed ? V_GRAYMAP : highlightflags), "E Side");
|
// V_DrawThinString(x, y + 1, (pushed ? V_GRAYMAP : highlightflags), "E Side");
|
||||||
|
|
@ -7615,9 +7615,9 @@ static void M_DrawChallengePreview(INT32 x, INT32 y)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!pushed)
|
if (!pushed)
|
||||||
K_DrawGameControl(x, y, 0, "<a> <sky>Play CD", 0, 0, 0);
|
K_DrawGameControl(x, y, 0, "<a> <sky>Play CD", 0, TINY_FONT, 0);
|
||||||
else
|
else
|
||||||
K_DrawGameControl(x, y, 0, "<a_pressed> <gray>Play CD", 0, 0, 0);
|
K_DrawGameControl(x, y, 0, "<a_pressed> <gray>Play CD", 0, TINY_FONT, 0);
|
||||||
// K_drawButton(x*FRACUNIT, y*FRACUNIT, 0, kp_button_a[1], pushed);
|
// K_drawButton(x*FRACUNIT, y*FRACUNIT, 0, kp_button_a[1], pushed);
|
||||||
// x += SHORT(kp_button_a[1][0]->width);
|
// x += SHORT(kp_button_a[1][0]->width);
|
||||||
// V_DrawThinString(x, y + 1, (pushed ? V_GRAYMAP : highlightflags), "Play CD");
|
// V_DrawThinString(x, y + 1, (pushed ? V_GRAYMAP : highlightflags), "Play CD");
|
||||||
|
|
@ -7700,7 +7700,7 @@ static void M_DrawChallengeKeys(INT32 tilex, INT32 tiley)
|
||||||
K_DrawGameControl(
|
K_DrawGameControl(
|
||||||
24, 16,
|
24, 16,
|
||||||
0, keybuttonpress ? "<c_pressed>" : "<c>",
|
0, keybuttonpress ? "<c_pressed>" : "<c>",
|
||||||
0, 0, 0
|
0, TINY_FONT, 0
|
||||||
);
|
);
|
||||||
|
|
||||||
// Metyr of rounds played that contribute to Chao Key generation
|
// Metyr of rounds played that contribute to Chao Key generation
|
||||||
|
|
@ -9432,13 +9432,13 @@ void M_DrawDiscordRequests(void)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
K_DrawSticker(x, y + 26, stickerWidth, 0, true);
|
K_DrawSticker(x, y + 26, stickerWidth, 0, true);
|
||||||
K_DrawGameControl(x, y+22, 0, "<a_animated>", 0, 0, V_SNAPTORIGHT);
|
K_DrawGameControl(x, y+22, 0, "<a_animated>", 0, TINY_FONT, V_SNAPTORIGHT);
|
||||||
// K_drawButtonAnim(x, y + 22, V_SNAPTORIGHT, kp_button_a[1], discordrequestmenu.ticker);
|
// K_drawButtonAnim(x, y + 22, V_SNAPTORIGHT, kp_button_a[1], discordrequestmenu.ticker);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
UINT32 bigwidth = K_DrawGameControl(x, y+22, 0, "<a_animated> Accept <b_animated> <x_animated> Decline", 0, 0, V_SNAPTORIGHT);
|
UINT32 bigwidth = K_DrawGameControl(x, y+22, 0, "<a_animated> Accept <b_animated> <x_animated> Decline", 0, TINY_FONT, V_SNAPTORIGHT);
|
||||||
K_DrawSticker(x, y + 26, bigwidth, 0, true);
|
K_DrawSticker(x, y + 26, bigwidth, 0, true);
|
||||||
K_DrawGameControl(x, y+22, 0, "<a_animated> Accept <b_animated> <x_animated> Decline", 0, 0, V_SNAPTORIGHT);
|
K_DrawGameControl(x, y+22, 0, "<a_animated> Accept <b_animated> <x_animated> Decline", 0, TINY_FONT, V_SNAPTORIGHT);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
V_DrawThinString((x + xoffs), y + 24, 0, acceptText);
|
V_DrawThinString((x + xoffs), y + 24, 0, acceptText);
|
||||||
|
|
@ -9447,7 +9447,7 @@ void M_DrawDiscordRequests(void)
|
||||||
K_drawButtonAnim((x + xoffs), y + 22, V_SNAPTORIGHT, kp_button_b[1], discordrequestmenu.ticker);
|
K_drawButtonAnim((x + xoffs), y + 22, V_SNAPTORIGHT, kp_button_b[1], discordrequestmenu.ticker);
|
||||||
xoffs += declineButtonWidth;
|
xoffs += declineButtonWidth;
|
||||||
|
|
||||||
xoffs += K_DrawGameControl(x + xoffs, y+22, 0, "<x_animated>", 0, 0, V_SNAPTORIGHT);
|
xoffs += K_DrawGameControl(x + xoffs, y+22, 0, "<x_animated>", 0, TINY_FONT, V_SNAPTORIGHT);
|
||||||
K_drawButtonAnim((x + xoffs), y + 22, V_SNAPTORIGHT, kp_button_x[1], discordrequestmenu.ticker);
|
K_drawButtonAnim((x + xoffs), y + 22, V_SNAPTORIGHT, kp_button_x[1], discordrequestmenu.ticker);
|
||||||
xoffs += altDeclineButtonWidth;
|
xoffs += altDeclineButtonWidth;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1136,7 +1136,7 @@ void K_DrawMidVote(void)
|
||||||
K_DrawGameControl(
|
K_DrawGameControl(
|
||||||
x/FRACUNIT - 4, y/FRACUNIT + exc->height - 8,
|
x/FRACUNIT - 4, y/FRACUNIT + exc->height - 8,
|
||||||
id, pressed ? "<z_pressed>" : "<z>",
|
id, pressed ? "<z_pressed>" : "<z>",
|
||||||
0, 8, V_SNAPTOBOTTOM|V_SNAPTORIGHT|V_SPLITSCREEN
|
0, MENU_FONT, V_SNAPTOBOTTOM|V_SNAPTORIGHT|V_SPLITSCREEN
|
||||||
);
|
);
|
||||||
/*
|
/*
|
||||||
K_drawButton(
|
K_drawButton(
|
||||||
|
|
@ -1260,7 +1260,7 @@ void K_DrawMidVote(void)
|
||||||
K_DrawGameControl(
|
K_DrawGameControl(
|
||||||
x/FRACUNIT-20, y/FRACUNIT + 2, id,
|
x/FRACUNIT-20, y/FRACUNIT + 2, id,
|
||||||
pressed ? "<z_pressed>" : "<z>",
|
pressed ? "<z_pressed>" : "<z>",
|
||||||
0, 8, V_SNAPTOBOTTOM|V_SNAPTORIGHT|V_SPLITSCREEN
|
0, MENU_FONT, V_SNAPTOBOTTOM|V_SNAPTORIGHT|V_SPLITSCREEN
|
||||||
);
|
);
|
||||||
/*
|
/*
|
||||||
K_drawButton(
|
K_drawButton(
|
||||||
|
|
|
||||||
140
src/m_cond.c
140
src/m_cond.c
|
|
@ -2570,6 +2570,10 @@ static const char *M_GetConditionString(condition_t *cn)
|
||||||
Z_Free(title);
|
Z_Free(title);
|
||||||
return work;
|
return work;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case UC_CONDITIONSET:
|
||||||
|
return va("INVALID CN RECURSION \"%d\"", cn->requirement);
|
||||||
|
|
||||||
case UC_UNLOCKABLE: // Requires unlockable x to be obtained
|
case UC_UNLOCKABLE: // Requires unlockable x to be obtained
|
||||||
return va("get %s",
|
return va("get %s",
|
||||||
gamedata->unlocked[cn->requirement-1]
|
gamedata->unlocked[cn->requirement-1]
|
||||||
|
|
@ -3015,20 +3019,17 @@ static const char *M_GetConditionString(condition_t *cn)
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// UC_MAPTRIGGER and UC_CONDITIONSET are explicitly very hard to support proper descriptions for
|
// UC_MAPTRIGGER and the like are explicitly very hard to support proper descriptions for
|
||||||
return va("UNSUPPORTED CONDITION \"%d\"", cn->type);
|
return va("UNSUPPORTED CONDITION \"%d\"", cn->type);
|
||||||
}
|
}
|
||||||
|
|
||||||
char *M_BuildConditionSetString(UINT16 unlockid)
|
char *M_BuildConditionSetString(UINT16 unlockid)
|
||||||
{
|
{
|
||||||
conditionset_t *c = NULL;
|
|
||||||
UINT32 lastID = 0;
|
|
||||||
condition_t *cn;
|
condition_t *cn;
|
||||||
size_t len = 1024, worklen;
|
size_t len = 1024, worklen;
|
||||||
static char message[1024] = "";
|
static char message[1024] = "";
|
||||||
const char *work = NULL;
|
const char *work = NULL;
|
||||||
size_t i;
|
size_t i;
|
||||||
UINT8 stopasap = 0;
|
|
||||||
|
|
||||||
message[0] = '\0';
|
message[0] = '\0';
|
||||||
|
|
||||||
|
|
@ -3049,61 +3050,102 @@ char *M_BuildConditionSetString(UINT16 unlockid)
|
||||||
len--;
|
len--;
|
||||||
}
|
}
|
||||||
|
|
||||||
c = &conditionSets[unlockables[unlockid].conditionset-1];
|
struct conditionset_traverser_s {
|
||||||
|
conditionset_t *c;
|
||||||
|
size_t i;
|
||||||
|
UINT32 lastID;
|
||||||
|
UINT8 stopasap;
|
||||||
|
};
|
||||||
|
|
||||||
for (i = 0; i < c->numconditions; ++i)
|
struct conditionset_traverser_s current = {0};
|
||||||
{
|
current.c = &conditionSets[unlockables[unlockid].conditionset-1];
|
||||||
cn = &c->condition[i];
|
current.i = current.lastID = current.stopasap = 0;
|
||||||
|
|
||||||
if (i > 0)
|
struct conditionset_traverser_s restore = {0};
|
||||||
|
restore.c = NULL;
|
||||||
|
|
||||||
|
do {
|
||||||
|
if (current.stopasap == UINT8_MAX)
|
||||||
{
|
{
|
||||||
worklen = 0;
|
// Sentinel value for recursion
|
||||||
if (lastID != cn->id)
|
current.stopasap = 0;
|
||||||
|
}
|
||||||
|
else if (restore.c)
|
||||||
|
{
|
||||||
|
// De-recur
|
||||||
|
current = restore;
|
||||||
|
current.i++;
|
||||||
|
|
||||||
|
restore.c = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (; current.i < current.c->numconditions; ++current.i)
|
||||||
|
{
|
||||||
|
cn = ¤t.c->condition[current.i];
|
||||||
|
|
||||||
|
if (current.i > 0)
|
||||||
{
|
{
|
||||||
stopasap = 0;
|
worklen = 0;
|
||||||
worklen = 6;
|
if (current.lastID != cn->id)
|
||||||
strncat(message, " - OR ", len);
|
{
|
||||||
|
current.stopasap = 0;
|
||||||
|
worklen = 6;
|
||||||
|
strncat(message, " - OR ", len);
|
||||||
|
}
|
||||||
|
else if (current.stopasap == 0 && cn->type != UC_COMMA)
|
||||||
|
{
|
||||||
|
worklen = 1;
|
||||||
|
strncat(message, " ", len);
|
||||||
|
}
|
||||||
|
len -= worklen;
|
||||||
}
|
}
|
||||||
else if (stopasap == 0 && cn->type != UC_COMMA)
|
|
||||||
|
current.lastID = cn->id;
|
||||||
|
|
||||||
|
if (current.stopasap == 1)
|
||||||
{
|
{
|
||||||
worklen = 1;
|
// Secret challenge -- show unrelated condition IDs
|
||||||
strncat(message, " ", len);
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (cn->type == UC_CONDITIONSET
|
||||||
|
&& restore.c == NULL
|
||||||
|
&& cn->requirement
|
||||||
|
&& cn->requirement <= MAXCONDITIONSETS)
|
||||||
|
{
|
||||||
|
// Conditionset description! Can only recursion once at a time
|
||||||
|
restore = current;
|
||||||
|
current.c = &conditionSets[cn->requirement-1];
|
||||||
|
current.i = current.lastID = 0;
|
||||||
|
current.stopasap = UINT8_MAX;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
work = M_GetConditionString(cn);
|
||||||
|
if (work == NULL)
|
||||||
|
{
|
||||||
|
current.stopasap = 1;
|
||||||
|
if (message[0] && message[1])
|
||||||
|
work = "???";
|
||||||
|
else
|
||||||
|
work = "(Find other secrets to learn about this...)";
|
||||||
|
}
|
||||||
|
else if (cn->type == UC_DESCRIPTIONOVERRIDE)
|
||||||
|
{
|
||||||
|
current.stopasap = 2;
|
||||||
|
}
|
||||||
|
worklen = strlen(work);
|
||||||
|
|
||||||
|
strncat(message, work, len);
|
||||||
len -= worklen;
|
len -= worklen;
|
||||||
}
|
|
||||||
|
|
||||||
lastID = cn->id;
|
if (current.stopasap == 2)
|
||||||
|
{
|
||||||
if (stopasap == 1)
|
// Description override - hide all further ones
|
||||||
{
|
break;
|
||||||
// Secret challenge -- show unrelated condition IDs
|
}
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
|
} while (restore.c);
|
||||||
work = M_GetConditionString(cn);
|
|
||||||
if (work == NULL)
|
|
||||||
{
|
|
||||||
stopasap = 1;
|
|
||||||
if (message[0] && message[1])
|
|
||||||
work = "???";
|
|
||||||
else
|
|
||||||
work = "(Find other secrets to learn about this...)";
|
|
||||||
}
|
|
||||||
else if (cn->type == UC_DESCRIPTIONOVERRIDE)
|
|
||||||
{
|
|
||||||
stopasap = 2;
|
|
||||||
}
|
|
||||||
worklen = strlen(work);
|
|
||||||
|
|
||||||
strncat(message, work, len);
|
|
||||||
len -= worklen;
|
|
||||||
|
|
||||||
if (stopasap == 2)
|
|
||||||
{
|
|
||||||
// Description override - hide all further ones
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (message[0] == '\0')
|
if (message[0] == '\0')
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -376,6 +376,7 @@ menu_t *M_InterruptMenuWithChallenges(menu_t *desiredmenu)
|
||||||
challengesmenu.requestnew = false;
|
challengesmenu.requestnew = false;
|
||||||
challengesmenu.chaokeyadd = false;
|
challengesmenu.chaokeyadd = false;
|
||||||
challengesmenu.keywasadded = false;
|
challengesmenu.keywasadded = false;
|
||||||
|
challengesmenu.tutorialfound = NEXTMAP_INVALID;
|
||||||
challengesmenu.chaokeyhold = 0;
|
challengesmenu.chaokeyhold = 0;
|
||||||
challengesmenu.unlockcondition = NULL;
|
challengesmenu.unlockcondition = NULL;
|
||||||
|
|
||||||
|
|
@ -479,6 +480,7 @@ boolean M_CanKeyHiliTile(void)
|
||||||
enum {
|
enum {
|
||||||
CCTUTORIAL_KEYGEN = 0,
|
CCTUTORIAL_KEYGEN = 0,
|
||||||
CCTUTORIAL_MAJORSKIP,
|
CCTUTORIAL_MAJORSKIP,
|
||||||
|
CCTUTORIAL_TUTORIAL, // I heard you like tutorials, so I...
|
||||||
} cctutorial_e;
|
} cctutorial_e;
|
||||||
|
|
||||||
static void M_ChallengesTutorial(UINT8 option)
|
static void M_ChallengesTutorial(UINT8 option)
|
||||||
|
|
@ -512,6 +514,25 @@ static void M_ChallengesTutorial(UINT8 option)
|
||||||
gamedata->majorkeyskipattempted = true;
|
gamedata->majorkeyskipattempted = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case CCTUTORIAL_TUTORIAL:
|
||||||
|
{
|
||||||
|
M_StartMessage("New Tutorial Data",
|
||||||
|
va(M_GetText(
|
||||||
|
"A new piece of Eggman and Tails'\n"
|
||||||
|
"short adventure has been decrypted.\n"
|
||||||
|
"\n"
|
||||||
|
"You can find \"""\x87""%s""\x80""\" on\n"
|
||||||
|
"the Tutorials menu under Extras!\n"
|
||||||
|
"\n"
|
||||||
|
"These may sometimes be needed for progression.\n"
|
||||||
|
), (challengesmenu.tutorialfound < nummapheaders
|
||||||
|
&& mapheaderinfo[challengesmenu.tutorialfound]
|
||||||
|
? mapheaderinfo[challengesmenu.tutorialfound]->menuttl
|
||||||
|
: "ERROR!?"
|
||||||
|
)), NULL, MM_NOTHING, NULL, "Got it!");
|
||||||
|
challengesmenu.tutorialfound = NEXTMAP_INVALID;
|
||||||
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
M_StartMessage("M_ChallengesTutorial ERROR",
|
M_StartMessage("M_ChallengesTutorial ERROR",
|
||||||
|
|
@ -725,6 +746,28 @@ void M_ChallengesTick(void)
|
||||||
gamedata->unlocked[challengesmenu.currentunlock] = true;
|
gamedata->unlocked[challengesmenu.currentunlock] = true;
|
||||||
M_UpdateUnlockablesAndExtraEmblems(true, true);
|
M_UpdateUnlockablesAndExtraEmblems(true, true);
|
||||||
|
|
||||||
|
if (challengesmenu.tutorialfound == NEXTMAP_INVALID
|
||||||
|
&& ref->type == SECRET_MAP)
|
||||||
|
{
|
||||||
|
// Map exists...
|
||||||
|
UINT16 mapnum = M_UnlockableMapNum(ref);
|
||||||
|
if (mapnum < nummapheaders && mapheaderinfo[mapnum])
|
||||||
|
{
|
||||||
|
// is tutorial...
|
||||||
|
INT32 guessgt = G_GuessGametypeByTOL(mapheaderinfo[mapnum]->typeoflevel);
|
||||||
|
if (guessgt == GT_TUTORIAL)
|
||||||
|
{
|
||||||
|
// and isn't the playground?
|
||||||
|
if (!tutorialplaygroundmap
|
||||||
|
|| strcmp(tutorialplaygroundmap, mapheaderinfo[mapnum]->lumpname))
|
||||||
|
{
|
||||||
|
// Pop an alert up!
|
||||||
|
challengesmenu.tutorialfound = mapnum;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Update shown description just in case..?
|
// Update shown description just in case..?
|
||||||
if (challengesmenu.unlockcondition)
|
if (challengesmenu.unlockcondition)
|
||||||
Z_Free(challengesmenu.unlockcondition);
|
Z_Free(challengesmenu.unlockcondition);
|
||||||
|
|
@ -801,6 +844,11 @@ void M_ChallengesTick(void)
|
||||||
// not ideal but at least unlikely to
|
// not ideal but at least unlikely to
|
||||||
// get at same time?? :V
|
// get at same time?? :V
|
||||||
}
|
}
|
||||||
|
else if (challengesmenu.tutorialfound != NEXTMAP_INVALID)
|
||||||
|
{
|
||||||
|
M_ChallengesTutorial(CCTUTORIAL_TUTORIAL);
|
||||||
|
// Also no keygen, but that can come later.
|
||||||
|
}
|
||||||
else if (gamedata->chaokeytutorial == false
|
else if (gamedata->chaokeytutorial == false
|
||||||
&& challengesmenu.keywasadded == true)
|
&& challengesmenu.keywasadded == true)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -264,7 +264,7 @@ void draw_menu()
|
||||||
|
|
||||||
draw.x(BASEVIDWIDTH/2).font(Draw::Font::kGamemode).text(mode_strings[menu_mode()]);
|
draw.x(BASEVIDWIDTH/2).font(Draw::Font::kGamemode).text(mode_strings[menu_mode()]);
|
||||||
if (server || IsPlayerAdmin(consoleplayer))
|
if (server || IsPlayerAdmin(consoleplayer))
|
||||||
K_DrawGameControl(draw.x() + 8, draw.y()-6, 0, M_MenuButtonHeld(0, MBT_Y) ? "<y_pressed> Switch Page" : "<y> Switch Page", 0, 8, 0);
|
K_DrawGameControl(draw.x() + 8, draw.y()-6, 0, M_MenuButtonHeld(0, MBT_Y) ? "<y_pressed> Switch Page" : "<y> Switch Page", 0, MENU_FONT, 0);
|
||||||
// K_drawButton((draw.x() + 8) * FRACUNIT, (draw.y() + 8) * FRACUNIT, 0, kp_button_y[0], M_MenuButtonHeld(0, MBT_Y));
|
// K_drawButton((draw.x() + 8) * FRACUNIT, (draw.y() + 8) * FRACUNIT, 0, kp_button_y[0], M_MenuButtonHeld(0, MBT_Y));
|
||||||
draw = draw.y(32 + kMargin);
|
draw = draw.y(32 + kMargin);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -208,7 +208,7 @@ void draw_menu()
|
||||||
draw = draw.y(27 + kMargin);
|
draw = draw.y(27 + kMargin);
|
||||||
|
|
||||||
draw.x(BASEVIDWIDTH/2).font(Draw::Font::kGamemode).text(mode_strings[menu_mode()]);
|
draw.x(BASEVIDWIDTH/2).font(Draw::Font::kGamemode).text(mode_strings[menu_mode()]);
|
||||||
K_DrawGameControl(draw.x() + 8, draw.y()-6, 0, M_MenuButtonHeld(0, MBT_Y) ? "<y_pressed> Switch Page" : "<y> Switch Page", 0, 8, 0);
|
K_DrawGameControl(draw.x() + 8, draw.y()-6, 0, M_MenuButtonHeld(0, MBT_Y) ? "<y_pressed> Switch Page" : "<y> Switch Page", 0, MENU_FONT, 0);
|
||||||
// K_drawButton((draw.x() + 8) * FRACUNIT, (draw.y() + 8) * FRACUNIT, 0, kp_button_y[0], M_MenuButtonHeld(0, MBT_Y));
|
// K_drawButton((draw.x() + 8) * FRACUNIT, (draw.y() + 8) * FRACUNIT, 0, kp_button_y[0], M_MenuButtonHeld(0, MBT_Y));
|
||||||
draw = draw.y(32 + kMargin);
|
draw = draw.y(32 + kMargin);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1501,7 +1501,7 @@ void ST_DrawSaveReplayHint(INT32 flags)
|
||||||
K_DrawGameControl(
|
K_DrawGameControl(
|
||||||
BASEVIDWIDTH - 2, 2, 0,
|
BASEVIDWIDTH - 2, 2, 0,
|
||||||
(demo.willsave && demo.titlename[0]) ? "Replay will be saved. <b> Change title" : "<b> or <x> Save replay",
|
(demo.willsave && demo.titlename[0]) ? "Replay will be saved. <b> Change title" : "<b> or <x> Save replay",
|
||||||
2, 0, flags|V_YELLOWMAP
|
2, TINY_FONT, flags|V_YELLOWMAP
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -531,16 +531,66 @@ patch_t* Draw::cache_patch(const char* name)
|
||||||
return static_cast<patch_t*>(W_CachePatchName(name, PU_CACHE));
|
return static_cast<patch_t*>(W_CachePatchName(name, PU_CACHE));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Draw::Font Draw::fontno_to_font(int font)
|
||||||
|
{
|
||||||
|
switch (font)
|
||||||
|
{
|
||||||
|
case TINY_FONT:
|
||||||
|
default:
|
||||||
|
return Font::kThin;
|
||||||
|
|
||||||
|
case GM_FONT:
|
||||||
|
return Font::kGamemode;
|
||||||
|
|
||||||
|
case GENESIS_FONT:
|
||||||
|
return Font::kGenesis;
|
||||||
|
|
||||||
|
case HU_FONT:
|
||||||
|
return Font::kConsole;
|
||||||
|
|
||||||
|
case KART_FONT:
|
||||||
|
return Font::kFreeplay;
|
||||||
|
|
||||||
|
case OPPRF_FONT:
|
||||||
|
return Font::kZVote;
|
||||||
|
|
||||||
|
case PINGF_FONT:
|
||||||
|
return Font::kPing;
|
||||||
|
|
||||||
|
case TIMER_FONT:
|
||||||
|
return Font::kTimer;
|
||||||
|
|
||||||
|
case TINYTIMER_FONT:
|
||||||
|
return Font::kThinTimer;
|
||||||
|
|
||||||
|
case MENU_FONT:
|
||||||
|
return Font::kMenu;
|
||||||
|
|
||||||
|
case MED_FONT:
|
||||||
|
return Font::kMedium;
|
||||||
|
|
||||||
|
case ROLNUM_FONT:
|
||||||
|
return Font::kRollingNum;
|
||||||
|
|
||||||
|
case RO4NUM_FONT:
|
||||||
|
return Font::kRollingNum4P;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
int Draw::font_to_fontno(Font font)
|
int Draw::font_to_fontno(Font font)
|
||||||
{
|
{
|
||||||
switch (font)
|
switch (font)
|
||||||
{
|
{
|
||||||
case Font::kThin:
|
case Font::kThin:
|
||||||
|
default:
|
||||||
return TINY_FONT;
|
return TINY_FONT;
|
||||||
|
|
||||||
case Font::kGamemode:
|
case Font::kGamemode:
|
||||||
return GM_FONT;
|
return GM_FONT;
|
||||||
|
|
||||||
|
case Font::kGenesis:
|
||||||
|
return GENESIS_FONT;
|
||||||
|
|
||||||
case Font::kConsole:
|
case Font::kConsole:
|
||||||
return HU_FONT;
|
return HU_FONT;
|
||||||
|
|
||||||
|
|
@ -571,8 +621,6 @@ int Draw::font_to_fontno(Font font)
|
||||||
case Font::kRollingNum4P:
|
case Font::kRollingNum4P:
|
||||||
return RO4NUM_FONT;
|
return RO4NUM_FONT;
|
||||||
}
|
}
|
||||||
|
|
||||||
return TINY_FONT;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
INT32 Draw::default_font_flags(Font font)
|
INT32 Draw::default_font_flags(Font font)
|
||||||
|
|
|
||||||
|
|
@ -194,6 +194,7 @@ public:
|
||||||
{
|
{
|
||||||
kThin,
|
kThin,
|
||||||
kGamemode,
|
kGamemode,
|
||||||
|
kGenesis,
|
||||||
kConsole,
|
kConsole,
|
||||||
kFreeplay,
|
kFreeplay,
|
||||||
kZVote,
|
kZVote,
|
||||||
|
|
@ -205,6 +206,7 @@ public:
|
||||||
kRollingNum,
|
kRollingNum,
|
||||||
kRollingNum4P,
|
kRollingNum4P,
|
||||||
};
|
};
|
||||||
|
Font fontno_to_font(int font);
|
||||||
|
|
||||||
enum class Align
|
enum class Align
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -2350,6 +2350,10 @@ static void V_GetFontSpecification(int fontno, INT32 flags, fontspec_t *result)
|
||||||
case GM_FONT:
|
case GM_FONT:
|
||||||
result->spacew = 6;
|
result->spacew = 6;
|
||||||
break;
|
break;
|
||||||
|
case GENESIS_FONT:
|
||||||
|
result->spacew = 8;
|
||||||
|
result->right_outline = 0;
|
||||||
|
break;
|
||||||
case FILE_FONT:
|
case FILE_FONT:
|
||||||
result->spacew = 0;
|
result->spacew = 0;
|
||||||
break;
|
break;
|
||||||
|
|
@ -2390,6 +2394,9 @@ static void V_GetFontSpecification(int fontno, INT32 flags, fontspec_t *result)
|
||||||
case GM_FONT:
|
case GM_FONT:
|
||||||
result->lfh = 32;
|
result->lfh = 32;
|
||||||
break;
|
break;
|
||||||
|
case GENESIS_FONT:
|
||||||
|
result->lfh = 36;
|
||||||
|
break;
|
||||||
case LSHI_FONT:
|
case LSHI_FONT:
|
||||||
result->lfh = 56;
|
result->lfh = 56;
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue