From 3b0a12c4accd055ee9adb59d56390bb73cb3216d Mon Sep 17 00:00:00 2001 From: Isaac0-dev <62234577+Isaac0-dev@users.noreply.github.com> Date: Sun, 9 Mar 2025 15:32:16 +1000 Subject: [PATCH] fix pause exiting instead of "continue, don't save" --- src/game/ingame_menu.c | 2 ++ src/game/level_update.c | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/game/ingame_menu.c b/src/game/ingame_menu.c index 883fa09d5..090e9edb5 100644 --- a/src/game/ingame_menu.c +++ b/src/game/ingame_menu.c @@ -1863,6 +1863,7 @@ void render_dialog_string_color(s8 linesPerBox) { } s16 gMenuMode = -1; +s16 gPrevMenuMode = -1; u8 *gEndCutsceneStringsEn[] = { INGAME_TEXT_PTR(TEXT_FILE_MARIO_EXCLAMATION), @@ -3532,6 +3533,7 @@ s16 render_menus_and_dialogs(void) { create_dl_ortho_matrix(); if (gMenuMode != -1) { + gPrevMenuMode = gMenuMode; switch (gMenuMode) { case 0: mode = render_pause_courses_and_castle(); diff --git a/src/game/level_update.c b/src/game/level_update.c index d2ecd805e..fb76e1065 100644 --- a/src/game/level_update.c +++ b/src/game/level_update.c @@ -1344,7 +1344,13 @@ s32 play_mode_paused(void) { gCameraMovementFlags &= ~CAM_MOVE_PAUSE_SCREEN; set_play_mode(PLAY_MODE_NORMAL); } else if (gPauseScreenMode == 2) { - level_trigger_warp(&gMarioStates[0], WARP_OP_EXIT); + extern s16 gPrevMenuMode; + if (gPrevMenuMode > 1) { // Course complete screen + raise_background_noise(1); + gCameraMovementFlags &= ~CAM_MOVE_PAUSE_SCREEN; + } else { // Pause menu + level_trigger_warp(&gMarioStates[0], WARP_OP_EXIT); + } set_play_mode(PLAY_MODE_NORMAL); } else if (gPauseScreenMode == 3) { // Exit level