From ca4ed3b7ddcf334964bfc8de1454a0c0f9ea606d Mon Sep 17 00:00:00 2001 From: GoldenTails Date: Wed, 26 Aug 2020 23:22:53 -0500 Subject: [PATCH] Make Special Stage map transitions respect nextmapoverride. In other words: lets Luas set the next map of Special Stages via G_SetCustomExitVars. It's otherwise impossible to do so via Lua. --- src/g_game.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/g_game.c b/src/g_game.c index b969eb4a4..df298e20b 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -3808,7 +3808,7 @@ static void G_DoCompleted(void) // a map of the proper gametype -- skip levels that don't support // the current gametype. (Helps avoid playing boss levels in Race, // for instance). - if (!spec) + if (!spec || nextmapoverride) { if (nextmap >= 0 && nextmap < NUMMAPS) { @@ -3860,7 +3860,8 @@ static void G_DoCompleted(void) if (nextmap < 0 || (nextmap >= NUMMAPS && nextmap < 1100-1) || nextmap > 1103-1) I_Error("Followed map %d to invalid map %d\n", prevmap + 1, nextmap + 1); - lastmap = nextmap; // Remember last map for when you come out of the special stage. + if (!spec) + lastmap = nextmap; // Remember last map for when you come out of the special stage. } if ((gottoken = ((gametyperules & GTR_SPECIALSTAGES) && token))) @@ -3881,7 +3882,7 @@ static void G_DoCompleted(void) } } - if (spec && !gottoken) + if (spec && !gottoken && !nextmapoverride) nextmap = lastmap; // Exiting from a special stage? Go back to the game. Tails 08-11-2001 automapactive = false;