Merge branch 'dialogue-pass' into 'master'

Dialogue pass (code side)

See merge request KartKrew/Kart!2126
This commit is contained in:
AJ Martinez 2024-03-17 22:02:11 +00:00
commit aff5cc05ac
3 changed files with 20 additions and 10 deletions

View file

@ -106,7 +106,8 @@ void Dialogue::Typewriter::WriteText(void)
{
textTimer += textSpeed;
}
else if (std::ispunct(c)
else if (c != '+' && c != '"' // tutorial hack
&& std::ispunct(c)
&& std::isspace(nextc))
{
// slow down for punctuation
@ -330,7 +331,7 @@ void Dialogue::Draw(void)
return;
}
const UINT8 bgcol = 1, darkcol = 235;
const UINT8 bgcol = 235, speakerhilicol = 240;
const fixed_t height = 78 * FRACUNIT;
@ -343,7 +344,7 @@ void Dialogue::Draw(void)
// TODO -- hack, change when dialogue is made per-player/netsynced
UINT32 speakerbgflags = (players[consoleplayer].nocontrol == 0 && P_LevelIsFrozen() == false)
? (V_ADD|V_30TRANS)
? V_30TRANS
: 0;
drawer
@ -374,10 +375,10 @@ void Dialogue::Draw(void)
if (speakername && speaker[0])
{
INT32 speakernamewidth = V_StringWidth(speakername, 0);
INT32 speakernamewidth = V_MenuStringWidth(speakername, 0);
INT32 existingborder = (portrait == nullptr ? -4 : 3);
INT32 speakernamewidthoffset = (speakernamewidth + (arrowstep - existingborder) - 1) % arrowstep;
INT32 speakernamewidthoffset = (speakernamewidth + (arrowstep - existingborder) - 2) % arrowstep;
if (speakernamewidthoffset)
{
speakernamewidthoffset = (arrowstep - speakernamewidthoffset);
@ -410,14 +411,14 @@ void Dialogue::Draw(void)
.width(speakernamewidth - existingborder)
.y(-38-11)
.height(11)
.fill(darkcol);
.fill(speakerhilicol);
}
speakernameedge -= speakernamewidth;
drawer
.xy(speakernamewidthoffset + speakernameedge, -39-9)
.font(srb2::Draw::Font::kConsole)
.font(srb2::Draw::Font::kMenu)
.text(speakername);
speakernameedge -= 5;
@ -468,9 +469,18 @@ void Dialogue::Draw(void)
.patch("TUTDIAG2");
}
auto bt_translate_press = [this]() -> std::optional<bool>
{
if (Held())
return true;
if (TextDone())
return {};
return false;
};
drawer
.xy(17-14 - BASEVIDWIDTH, -39-16)
.button(srb2::Draw::Button::z, Held());
.button(srb2::Draw::Button::z, bt_translate_press());
}
}

View file

@ -17,7 +17,7 @@ menuitem_t OPTIONS_ProfileControls[] = {
{IT_CONTROL, "Look back", "Look backwards / Go back",
"TLB_B", {.routine = M_ProfileSetControl}, gc_b, 0},
{IT_CONTROL, "Spindash", "Spindash / Extra",
{IT_CONTROL, "Spin Dash", "Spin Dash / Extra",
"TLB_C", {.routine = M_ProfileSetControl}, gc_c, 0},
{IT_CONTROL, "Brake / Go back", "Brake / Go back",

View file

@ -12316,7 +12316,7 @@ void P_MovePlayerToSpawn(INT32 playernum, mapthing_t *mthing)
mobj->angle = p->drawangle = angle;
// FAULT
if (gamestate == GS_LEVEL && leveltime > introtime && !p->spectator)
if (gamestate == GS_LEVEL && leveltime > introtime && !p->spectator && gametype != GT_TUTORIAL)
{
K_DoIngameRespawn(p);
}