From a383b4b330b69873dbb7a8cf6aebf4781b7f5f1e Mon Sep 17 00:00:00 2001 From: inspectredc <78732756+inspectredc@users.noreply.github.com> Date: Sat, 15 Jun 2024 01:55:24 +0100 Subject: [PATCH] Fix Fast Text Not Working on Instant Textboxes (#662) * Fix Fast Text Not Working on Instant Textboxes * format --- mm/src/code/z_message.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/mm/src/code/z_message.c b/mm/src/code/z_message.c index e5696d12a..c8183d70d 100644 --- a/mm/src/code/z_message.c +++ b/mm/src/code/z_message.c @@ -5638,12 +5638,7 @@ void Message_Update(PlayState* play) { case MSGMODE_TEXT_DISPLAYING: if (msgCtx->textBoxType != TEXTBOX_TYPE_4) { - if ((CHECK_BTN_ALL(input->press.button, BTN_B) || - // 2S2H [Enhancement] When fast text is on, we want to check if B is held instead of only if it was - // just pressed - (CVarGetInteger("gEnhancements.Dialogue.FastText", 0) && - CHECK_BTN_ALL(input->cur.button, BTN_B))) && - !msgCtx->textUnskippable) { + if (CHECK_BTN_ALL(input->press.button, BTN_B) && !msgCtx->textUnskippable) { msgCtx->textboxSkipped = true; msgCtx->textDrawPos = msgCtx->decodedTextLen; } else if (CHECK_BTN_ALL(input->press.button, BTN_A) && !msgCtx->textUnskippable) { @@ -5657,6 +5652,14 @@ void Message_Update(PlayState* play) { } msgCtx->textDrawPos++; } + // 2S2H [Enhancement] When fast text is on, we want to check if B is held instead of only if it was + // just pressed. Has an additional check that the textbox hasnt been skipped already to prevent the + // message from failing to continue. + } else if ((CVarGetInteger("gEnhancements.Dialogue.FastText", 0) && + CHECK_BTN_ALL(input->cur.button, BTN_B)) && + !msgCtx->textUnskippable && !msgCtx->textboxSkipped) { + msgCtx->textboxSkipped = true; + msgCtx->textDrawPos = msgCtx->decodedTextLen; } } else if (CHECK_BTN_ALL(input->press.button, BTN_A) && (msgCtx->textUnskippable == 0)) { while (true) {