From 5751ecdcd1da69fb8456c0120e2fcbc8e164f89d Mon Sep 17 00:00:00 2001 From: toaster Date: Mon, 10 Apr 2023 13:35:59 +0100 Subject: [PATCH] Special stage access-related fixes - Fix GPEVENT_SPECIAL forcing via rank restriction in round queue - Re-implements gamedata->everseenspecial --- src/d_netcmd.c | 8 ++++++++ src/g_game.c | 3 +++ 2 files changed, 11 insertions(+) diff --git a/src/d_netcmd.c b/src/d_netcmd.c index ae08f0e42..a1321b4dc 100644 --- a/src/d_netcmd.c +++ b/src/d_netcmd.c @@ -3135,6 +3135,14 @@ static void Got_Mapcmd(UINT8 **cp, INT32 playernum) || (gametyperules & (GTR_BOSS|GTR_CATCHER))) // Conventional rules. { grandprixinfo.eventmode = GPEVENT_SPECIAL; + + if (pforcespecialstage == true && gamedata->everseenspecial == false) + { + gamedata->everseenspecial = true; + // No need to do anything else here -- P_LoadLevel will get this for us! + //M_UpdateUnlockablesAndExtraEmblems(true, true); + //gamedata->deferredsave = true; + } } else if (gametype != GT_RACE) { diff --git a/src/g_game.c b/src/g_game.c index 9f273ca49..8c5be2de7 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -4139,6 +4139,9 @@ static void G_GetNextMap(void) D_GameTypeChanged(lastgametype); } + // Is this special..? + forcespecialstage = roundqueue.entries[roundqueue.position].rankrestricted; + // On entering roundqueue mode, kill the non-PWR between-round scores. // This makes it viable as a future tournament mode base. if (roundqueue.position == 0)