mirror of
https://github.com/RPCS3/rpcs3.git
synced 2026-01-31 01:25:18 +01:00
Overlays/SaveStates: Add multi-slot support to controller menu
This commit is contained in:
@@ -35,18 +35,31 @@ namespace rsx
|
||||
return page_navigation::exit;
|
||||
});
|
||||
|
||||
if (!suspend_mode && boot_current_game_savestate(true, 1)) {
|
||||
std::unique_ptr<overlay_element> reload_state = std::make_unique<home_menu_entry>(
|
||||
get_localized_string(localized_string_id::HOME_MENU_RELOAD_SAVESTATE));
|
||||
|
||||
add_item(reload_state, [](pad_button btn) -> page_navigation
|
||||
for (u32 save_index = 1; !suspend_mode && save_index <= 4; save_index++)
|
||||
{
|
||||
if (boot_current_game_savestate(true, save_index))
|
||||
{
|
||||
if (btn != pad_button::cross) return page_navigation::stay;
|
||||
rsx_log.notice("User selected reload savestate in home menu");
|
||||
Emu.CallFromMainThread([]() { boot_current_game_savestate(true, 1); });
|
||||
return page_navigation::exit;
|
||||
});
|
||||
const localized_string_id str_id = static_cast<localized_string_id>(static_cast<usz>(localized_string_id::HOME_MENU_RELOAD_SAVESTATE) + (save_index - 1));
|
||||
std::unique_ptr<overlay_element> reload_state = std::make_unique<home_menu_entry>(get_localized_string(str_id));
|
||||
|
||||
add_item(reload_state, [save_index](pad_button btn) -> page_navigation
|
||||
{
|
||||
if (btn != pad_button::cross)
|
||||
{
|
||||
return page_navigation::stay;
|
||||
}
|
||||
|
||||
rsx_log.notice("User selected reload savestate(%u) in home menu", save_index);
|
||||
Emu.CallFromMainThread([save_index]() { boot_current_game_savestate(false, save_index); });
|
||||
return page_navigation::exit;
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
apply_layout();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -274,6 +274,9 @@ enum class localized_string_id
|
||||
HOME_MENU_SAVESTATE_SAVE,
|
||||
HOME_MENU_SAVESTATE_AND_EXIT,
|
||||
HOME_MENU_RELOAD_SAVESTATE,
|
||||
HOME_MENU_RELOAD_SECOND_SAVESTATE,
|
||||
HOME_MENU_RELOAD_THIRD_SAVESTATE,
|
||||
HOME_MENU_RELOAD_FOURTH_SAVESTATE,
|
||||
HOME_MENU_RECORDING,
|
||||
HOME_MENU_TROPHIES,
|
||||
HOME_MENU_TROPHY_LIST_TITLE,
|
||||
|
||||
@@ -295,6 +295,9 @@ private:
|
||||
case localized_string_id::HOME_MENU_SAVESTATE_SAVE: return tr("Save Emulation State");
|
||||
case localized_string_id::HOME_MENU_SAVESTATE_AND_EXIT: return tr("Save Emulation State And Exit");
|
||||
case localized_string_id::HOME_MENU_RELOAD_SAVESTATE: return tr("Reload Last Emulation State");
|
||||
case localized_string_id::HOME_MENU_RELOAD_SECOND_SAVESTATE: return tr("Reload Second-To-Last Emulation State");
|
||||
case localized_string_id::HOME_MENU_RELOAD_THIRD_SAVESTATE: return tr("Reload Third-To-Last Emulation State");
|
||||
case localized_string_id::HOME_MENU_RELOAD_FOURTH_SAVESTATE: return tr("Reload Fourth-To-Last Emulation State");
|
||||
case localized_string_id::HOME_MENU_RECORDING: return tr("Start/Stop Recording");
|
||||
case localized_string_id::HOME_MENU_TROPHIES: return tr("Trophies");
|
||||
case localized_string_id::HOME_MENU_TROPHY_LIST_TITLE: return tr("Trophy Progress: %0").arg(std::forward<Args>(args)...);
|
||||
|
||||
Reference in New Issue
Block a user