diff --git a/soh/src/code/z_message_PAL.c b/soh/src/code/z_message_PAL.c index 4e1dc8692..4736f95a7 100644 --- a/soh/src/code/z_message_PAL.c +++ b/soh/src/code/z_message_PAL.c @@ -835,6 +835,7 @@ void Message_DrawText(PlayState* play, Gfx** gfxP) { u16 i; u16 sfxHi; u16 charTexIdx; + int gTextSpeed; Font* font = &play->msgCtx.font; Gfx* gfx = *gfxP; @@ -1115,11 +1116,17 @@ void Message_DrawText(PlayState* play, Gfx** gfxP) { break; } } - if (msgCtx->textDelayTimer == 0) { - msgCtx->textDrawPos = i + CVarGetInteger(CVAR_ENHANCEMENT("TextSpeed"), 1); + + gTextSpeed = CVarGetInteger(CVAR_ENHANCEMENT("TextSpeed"), 1); + if (msgCtx->textDelay == 0) { + msgCtx->textDrawPos = i + gTextSpeed; + } else if (msgCtx->textDelayTimer == 0) { + msgCtx->textDrawPos = i + 1; msgCtx->textDelayTimer = msgCtx->textDelay; + } else if (msgCtx->textDelayTimer <= gTextSpeed) { + msgCtx->textDelayTimer = 0; } else { - msgCtx->textDelayTimer--; + msgCtx->textDelayTimer -= gTextSpeed; } *gfxP = gfx; }