From b37893e660ce8aa36aa55a1f77f3ed0e3fc8ee52 Mon Sep 17 00:00:00 2001 From: Marco Cawthorne Date: Wed, 4 Oct 2023 07:55:55 -0700 Subject: [PATCH] Client: fix the typewriter text effect timing, where fadein controls the time for each character to fade in. --- src/client/text.qc | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/client/text.qc b/src/client/text.qc index c7f73e75..65ef0cdd 100644 --- a/src/client/text.qc +++ b/src/client/text.qc @@ -91,6 +91,11 @@ GameText_DrawMessage(gametext_t *txt, float timer, int highlight) txt->m_flHoldTime; } + if (txt->m_iEffect == 2) { + mtime = (strlen(txt->m_strMessage) * txt->m_flFadeIn) + txt->m_flHoldTime; + btime = mtime + txt->m_flFadeOut; + } + if (timer > mtime) { return; } @@ -185,7 +190,14 @@ GameText_Draw(void) g_textqueue[0].m_flTime += clframetime; - float maxTime = g_textqueue[0].m_flFadeIn + g_textqueue[0].m_flFadeOut + g_textqueue[0].m_flHoldTime + g_textqueue[0].m_flFXTime; + float maxTime; + + if (g_textqueue[0].m_iEffect == 2) { + float charCount = strlen(g_textqueue[0].m_strMessage); + maxTime = (charCount * g_textqueue[0].m_flFadeIn) + g_textqueue[0].m_flFadeOut + g_textqueue[0].m_flHoldTime + g_textqueue[0].m_flFXTime; + } else { + maxTime = g_textqueue[0].m_flFadeIn + g_textqueue[0].m_flFadeOut + g_textqueue[0].m_flHoldTime + g_textqueue[0].m_flFXTime; + } if (g_textqueue[0].m_flTime >= maxTime) g_textqueue[0].m_strMessage = __NULL__;