From 91cc6a657bd0791ed0d18a73a63a868adad4280e Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Wed, 19 Aug 2020 17:10:54 +0200 Subject: [PATCH] - tick the fortune cookie display within the playsim code to ensure its duration is handled properly. Fixes #204 --- source/sw/src/player.cpp | 10 ++++++++++ source/sw/src/sbar.cpp | 2 +- source/sw/src/sprite.cpp | 2 +- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/source/sw/src/player.cpp b/source/sw/src/player.cpp index 8ee7b5c3c..1ab8bfb30 100644 --- a/source/sw/src/player.cpp +++ b/source/sw/src/player.cpp @@ -7700,6 +7700,16 @@ domovethings(void) pp = Player + pnum; GlobPlayerP = pp; + if (pp->cookieTime) + { + pp->cookieTime -= synctics; + if (pp->cookieTime <= 0) + { + memset(pp->cookieQuote, 0, sizeof(pp->cookieQuote)); + pp->cookieTime = 0; + } + } + // auto tracking mode for single player multi-game if (numplayers <= 1 && PlayerTrackingMode && pnum == screenpeek && screenpeek != myconnectindex) { diff --git a/source/sw/src/sbar.cpp b/source/sw/src/sbar.cpp index d04765c29..5d9c2f251 100644 --- a/source/sw/src/sbar.cpp +++ b/source/sw/src/sbar.cpp @@ -1003,7 +1003,7 @@ void UpdateStatusBar(ClockTicks arg) sbar.UpdateStatusBar(arg); PLAYERp pp = &Player[screenpeek]; - if (totalclock < pp->cookieTime) + if (pp->cookieTime > 0) { const int MESSAGE_LINE = 142; // Used to be 164 MNU_DrawSmallString(160, MESSAGE_LINE, pp->cookieQuote, 0, 0, 0, clamp((pp->cookieTime - totalclock) / 60., 0., 1.)); diff --git a/source/sw/src/sprite.cpp b/source/sw/src/sprite.cpp index 09afd0056..dd94777f4 100644 --- a/source/sw/src/sprite.cpp +++ b/source/sw/src/sprite.cpp @@ -5728,7 +5728,7 @@ KeyMain: Printf(TEXTCOLOR_SAPPHIRE "%s\n", msg.GetChars()); strncpy(pp->cookieQuote, msg, 255); pp->cookieQuote[255] = 0; - pp->cookieTime = totalclock + 540; + pp->cookieTime = 540; } SetFadeAmt(pp,ITEMFLASHAMT,ITEMFLASHCLR); // Flash blue on item pickup