Add save slot picker (uiselectsave/uisaveslot), fix focus stack reentrancy
uiselectsave is a Save/Load/Delete slot picker built on save/save.h's SAVE_SLOT_COUNT: a scrolling list of framed uisaveslot_t rows (slot number + file name, or an "Empty Slot" placeholder), navigated via the same uimenu_t/focus-stack convention as every other menu. Load and Delete modes add a trailing action row (switch to delete / cancel) fixed below the scrollable area. Selecting a slot in Delete mode routes through uiConfirmOpen before actually blanking the slot via saveSlotInit + saveDeviceSlotWrite. uiScrollingEnsureVisible in uiscrolling.c is now a real implementation instead of the earlier placeholder. Main menu collapses New Game/Load Game into a single Start Game entry that opens uiselectsave in Load mode; backing out reopens the main menu via uiselectsave's result callback. Also fixes a real reentrancy bug in uiFocusPop: it invoked the popped item's closed callback before decrementing UI_FOCUS.count, so a push triggered from within that callback (e.g. reopening the main menu once select-save reports no result) landed one slot past the true stack top and got silently dropped, stranding the new item outside navigation. Count is now decremented first. Adds a uikeyboard placeholder widget, registered in uielementlist with no behavior yet. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
+22
-5
@@ -26,11 +26,8 @@ msgstr "Continue without saving"
|
||||
|
||||
|
||||
# Main Menu Scene
|
||||
msgid "main_menu.new_game"
|
||||
msgstr "New Game"
|
||||
|
||||
msgid "main_menu.load_game"
|
||||
msgstr "Load Game"
|
||||
msgid "main_menu.start_game"
|
||||
msgstr "Start Game"
|
||||
|
||||
msgid "main_menu.options"
|
||||
msgstr "Options"
|
||||
@@ -42,6 +39,26 @@ msgid "main_menu.quit_confirm"
|
||||
msgstr "Are you sure you want to quit?"
|
||||
|
||||
|
||||
# Select Save Screen
|
||||
msgid "ui.select_save.title"
|
||||
msgstr "Select Save"
|
||||
|
||||
msgid "ui.select_save.empty"
|
||||
msgstr "Empty Slot"
|
||||
|
||||
msgid "ui.select_save.slot_format"
|
||||
msgstr "%s Lv.%d %s"
|
||||
|
||||
msgid "ui.select_save.delete_mode"
|
||||
msgstr "Delete a Save"
|
||||
|
||||
msgid "ui.select_save.delete_confirm"
|
||||
msgstr "Are you sure you want to delete this save?"
|
||||
|
||||
msgid "ui.save_slot.number_format"
|
||||
msgstr "Slot %d"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user