{ "items": [ { "type": "MARKER", "name": "MAIN_MENU_IDLE" }, { "type": "UI_SHOW", "name": "main_menu" }, // Options button goes here - no options screen yet, so this is just // an alias landing right back on the idle loop below. { "type": "MARKER", "name": "OPTIONS" }, { "type": "IDLE" }, // New Game button goes here. { "type": "MARKER", "name": "NEW_GAME" }, { "type": "MODAL", "title": "main_menu.checking_save.title", "message": "main_menu.checking_save.message" }, { "type": "WAIT", "seconds": 0.2 }, { "type": "SAVE_DEVICE_CHECK", "successMarker": "SAVE_DEVICE_FOUND", "failureMarker": "SAVE_DEVICE_NOT_FOUND" }, // Save device not found { "type": "MARKER", "name": "SAVE_DEVICE_NOT_FOUND" }, { "type": "MODAL_CLOSE" }, { "type": "MODAL_OPTIONS_MARKERS", "title": "main_menu.no_device.title", "message": "main_menu.no_device.message", "options": [ { "text": "main_menu.no_device.retry", "marker": "NEW_GAME" }, { "text": "main_menu.no_device.continue", "marker": "SAVE_DEVICE_FOUND" } ] }, // 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. { "type": "MARKER", "name": "LOAD_ERROR" }, { "type": "MODAL_OPTIONS_MARKERS", "title": "main_menu.save_load_error.title", "message": "main_menu.save_load_error.message", "options": [ { "text": "main_menu.save_load_error.retry", "marker": "NEW_GAME" } ] }, // Quit Game button goes here. Cancelling jumps back to // MAIN_MENU_IDLE; confirming falls through to QUIT_GAME, which // ends the process directly. { "type": "MARKER", "name": "QUIT" }, { "type": "MODAL_OPTIONS_MARKERS", "title": "main_menu.quit_confirm", "options": [ { "text": "ui.confirm.confirm", "marker": "QUIT_CONFIRMED" }, { "text": "ui.confirm.cancel", "marker": "MAIN_MENU_IDLE" } ] }, { "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" } ] }