Supporting variable refresh rate for minor menu timers

Notably implemented with a hack, but these have already or will be rewritten for Ring Racers, and backporting isn't viable or desirable, so functional is better than the alternative.
This commit is contained in:
toaster 2022-08-06 14:26:56 +01:00
parent 5aa56e6029
commit 0e5f223666

View file

@ -165,6 +165,7 @@ INT16 startmap; // Mario, NiGHTS, or just a plain old normal game?
static INT16 itemOn = 1; // menu item skull is on, Hack by Tails 09-18-2002 static INT16 itemOn = 1; // menu item skull is on, Hack by Tails 09-18-2002
static INT16 skullAnimCounter = 10; // skull animation counter static INT16 skullAnimCounter = 10; // skull animation counter
static boolean interpTimerHackAllow = 0;
static UINT8 setupcontrolplayer; static UINT8 setupcontrolplayer;
static INT32 (*setupcontrols)[2]; // pointer to the gamecontrols of the player being edited static INT32 (*setupcontrols)[2]; // pointer to the gamecontrols of the player being edited
@ -3133,6 +3134,8 @@ void M_Drawer(void)
else else
V_DrawCenteredString(BASEVIDWIDTH/2, (BASEVIDHEIGHT/2) - (4), highlightflags, "Focus Lost"); V_DrawCenteredString(BASEVIDWIDTH/2, (BASEVIDHEIGHT/2) - (4), highlightflags, "Focus Lost");
} }
interpTimerHackAllow = false;
} }
// //
@ -3413,6 +3416,8 @@ void M_Ticker(void)
else else
playback_enterheld = 0; playback_enterheld = 0;
interpTimerHackAllow = true;
//added : 30-01-98 : test mode for five seconds //added : 30-01-98 : test mode for five seconds
if (vidm_testingmode > 0) if (vidm_testingmode > 0)
{ {
@ -5684,7 +5689,9 @@ static void M_DrawReplayHut(void)
{ {
cursory = localy; cursory = localy;
if (replayScrollDelay) if (!interpTimerHackAllow)
;
else if (replayScrollDelay)
replayScrollDelay--; replayScrollDelay--;
else if (replayScrollDir > 0) else if (replayScrollDir > 0)
{ {
@ -5786,7 +5793,9 @@ static void M_DrawReplayStartMenu(void)
#undef STARTY #undef STARTY
// Handle scrolling rankings // Handle scrolling rankings
if (replayScrollDelay) if (!interpTimerHackAllow)
;
else if (replayScrollDelay)
replayScrollDelay--; replayScrollDelay--;
else if (replayScrollDir > 0) else if (replayScrollDir > 0)
{ {
@ -11180,7 +11189,7 @@ static void M_DrawMonitorToggles(void)
} }
} }
if (shitsfree) if (shitsfree && interpTimerHackAllow)
shitsfree--; shitsfree--;
V_DrawCenteredString(BASEVIDWIDTH/2, currentMenu->y, highlightflags, va("* %s *", currentMenu->menuitems[itemOn].text)); V_DrawCenteredString(BASEVIDWIDTH/2, currentMenu->y, highlightflags, va("* %s *", currentMenu->menuitems[itemOn].text));