From 845a395ff1ab6bc861a8261e889de56f031fb641 Mon Sep 17 00:00:00 2001 From: Dominic Masters Date: Sun, 6 Sep 2026 11:52:48 -0500 Subject: [PATCH] Fix New Game falling through into the Quit confirm dialog The SAVE_DEVICE_FOUND/SAVE_LOAD_ALL_SLOTS block had been moved to the end of the file (after QUIT/QUIT_GAME) without moving the LOADED marker with it. MARKER items always auto-advance to whatever follows them in the array, so reaching LOADED after a successful save-load fell straight through into the QUIT block's confirm dialog instead of completing the cutscene. LOADED now sits after SAVE_LOAD_ALL_SLOTS as the true last item, so it falls off the end and fires uiMainMenuOpenSelectSave again as intended. Co-Authored-By: Claude Sonnet 5 --- assets/cutscenes/main_menu.jsonc | 45 ++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 19 deletions(-) diff --git a/assets/cutscenes/main_menu.jsonc b/assets/cutscenes/main_menu.jsonc index bc17e12c..e58939b5 100644 --- a/assets/cutscenes/main_menu.jsonc +++ b/assets/cutscenes/main_menu.jsonc @@ -63,20 +63,6 @@ ] }, - // Save device found - { - "type": "MARKER", - "name": "SAVE_DEVICE_FOUND" - }, - { - "type": "MODAL_CLOSE" - }, - { - "type": "SAVE_LOAD_ALL_SLOTS", - "successMarker": "LOADED", - "failureMarker": "LOAD_ERROR" - }, - // Save data failed to load (e.g. corrupt/unreadable) - only option is // to retry, no "continue without saving" here since we already know a // device is present. @@ -96,11 +82,6 @@ ] }, - { - "type": "MARKER", - "name": "LOADED" - }, - // Quit Game button goes here. Cancelling jumps back to // MAIN_MENU_IDLE; confirming falls through to QUIT_GAME, which // ends the process directly. @@ -122,12 +103,38 @@ } ] }, + { "type": "MARKER", "name": "QUIT_CONFIRMED" }, { "type": "QUIT_GAME" + }, + + // main menu just listens for cutscene ending to show the select save modal + // so we have that here. + { + "type": "MARKER", + "name": "SAVE_DEVICE_FOUND" + }, + { + "type": "MODAL_CLOSE" + }, + { + "type": "SAVE_LOAD_ALL_SLOTS", + "successMarker": "LOADED", + "failureMarker": "LOAD_ERROR" + }, + + // Must be the very last item - falling off the end here is what + // completes the cutscene and fires uiMainMenuOpenSelectSave (see + // cutsceneSystemSetOnComplete in ui/screen/mainmenu/uimainmenu.c). + // Placing this anywhere earlier would fall through into whatever + // comes next instead (e.g. the QUIT block, if placed just before it). + { + "type": "MARKER", + "name": "LOADED" } ] }