From 0bb66abe617d65737b2b5107ed7c71dc37b5c2b4 Mon Sep 17 00:00:00 2001 From: Isaac0-dev <62234577+Isaac0-dev@users.noreply.github.com> Date: Fri, 26 Aug 2022 13:16:01 +1000 Subject: [PATCH] fix custom level corruption on network shutdown (#174) --- src/game/level_update.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/game/level_update.c b/src/game/level_update.c index d9af72be..33dc1f94 100644 --- a/src/game/level_update.c +++ b/src/game/level_update.c @@ -1340,11 +1340,15 @@ void update_menu_level(void) { // warp to level, this feels buggy if (gCurrLevelNum != curLevel) { if (curLevel == LEVEL_JRB) { - dynos_warp_to_level(curLevel, 1, 2); + gChangeLevel = curLevel; + gChangeActNum = 2; } else if (curLevel == LEVEL_THI) { - dynos_warp_to_level(curLevel, 2, 6); + gChangeLevel = curLevel; + gChangeAreaIndex = 2; + gChangeActNum = 6; } else { - dynos_warp_to_level(curLevel, 1, 6); + gChangeLevel = curLevel; + gChangeActNum = 6; } } @@ -1452,11 +1456,15 @@ void update_menu_level(void) { if (get_current_background_music() == 0x0021) { if (curLevel == LEVEL_JRB) { - dynos_warp_to_level(curLevel, 1, 2); + gChangeLevel = curLevel; + gChangeActNum = 2; } else if (curLevel == LEVEL_THI) { - dynos_warp_to_level(curLevel, 2, 6); + gChangeLevel = curLevel; + gChangeAreaIndex = 2; + gChangeActNum = 6; } else { - dynos_warp_to_level(curLevel, 1, 6); + gChangeLevel = curLevel; + gChangeActNum = 6; } } } @@ -1720,6 +1728,10 @@ s32 lvl_set_current_level(UNUSED s16 arg0, s32 levelNum) { disable_warp_checkpoint(); } + if (gDjuiInMainMenu) { + return 0; + } + if (foundHook) { return hookUseActSelect; }