From 6780b5f6078308f2dc09124c3011d8e7016e4bb8 Mon Sep 17 00:00:00 2001 From: FreakyMutantMan Date: Thu, 2 Oct 2025 16:28:59 -0700 Subject: [PATCH] Add checks to G_GPCupIntoRoundQueue to account for potential multi-gametype special stage maps (in order of Special>Versus>guess). --- src/g_game.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/g_game.c b/src/g_game.c index 8a2bcd583..d80832774 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -4322,9 +4322,22 @@ void G_GPCupIntoRoundQueue(cupheader_t *cup, UINT8 setgametype, boolean setencor cupLevelNum = emeraldcup->cachedlevels[CUPCACHE_SPECIAL]; if (cupLevelNum < nummapheaders) { + // In case of multiple TOLs, prioritize Special, then Versus, then guess. + if ((mapheaderinfo[cupLevelNum]->typeoflevel & TOL_SPECIAL) == TOL_SPECIAL) + { + bonusgt = GT_SPECIAL; + } + else if ((mapheaderinfo[cupLevelNum]->typeoflevel & TOL_VERSUS) == TOL_VERSUS) + { + bonusgt = GT_VERSUS; + } + else + { + bonusgt = G_GuessGametypeByTOL(mapheaderinfo[cupLevelNum]->typeoflevel); + } G_MapIntoRoundQueue( cupLevelNum, - G_GuessGametypeByTOL(mapheaderinfo[cupLevelNum]->typeoflevel), + bonusgt, setencore, // if this isn't correct, Got_Mapcmd will fix it true // Rank-restricted! );