Overlays/SaveStates: Add multi-slot support to controller menu
This commit is contained in:
@@ -35,18 +35,31 @@ namespace rsx
|
|||||||
return page_navigation::exit;
|
return page_navigation::exit;
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!suspend_mode && boot_current_game_savestate(true, 1)) {
|
for (u32 save_index = 1; !suspend_mode && save_index <= 4; save_index++)
|
||||||
std::unique_ptr<overlay_element> reload_state = std::make_unique<home_menu_entry>(
|
{
|
||||||
get_localized_string(localized_string_id::HOME_MENU_RELOAD_SAVESTATE));
|
if (boot_current_game_savestate(true, save_index))
|
||||||
|
|
||||||
add_item(reload_state, [](pad_button btn) -> page_navigation
|
|
||||||
{
|
{
|
||||||
if (btn != pad_button::cross) return page_navigation::stay;
|
const localized_string_id str_id = static_cast<localized_string_id>(static_cast<usz>(localized_string_id::HOME_MENU_RELOAD_SAVESTATE) + (save_index - 1));
|
||||||
rsx_log.notice("User selected reload savestate in home menu");
|
std::unique_ptr<overlay_element> reload_state = std::make_unique<home_menu_entry>(get_localized_string(str_id));
|
||||||
Emu.CallFromMainThread([]() { boot_current_game_savestate(true, 1); });
|
|
||||||
return page_navigation::exit;
|
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();
|
apply_layout();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -274,6 +274,9 @@ enum class localized_string_id
|
|||||||
HOME_MENU_SAVESTATE_SAVE,
|
HOME_MENU_SAVESTATE_SAVE,
|
||||||
HOME_MENU_SAVESTATE_AND_EXIT,
|
HOME_MENU_SAVESTATE_AND_EXIT,
|
||||||
HOME_MENU_RELOAD_SAVESTATE,
|
HOME_MENU_RELOAD_SAVESTATE,
|
||||||
|
HOME_MENU_RELOAD_SECOND_SAVESTATE,
|
||||||
|
HOME_MENU_RELOAD_THIRD_SAVESTATE,
|
||||||
|
HOME_MENU_RELOAD_FOURTH_SAVESTATE,
|
||||||
HOME_MENU_RECORDING,
|
HOME_MENU_RECORDING,
|
||||||
HOME_MENU_TROPHIES,
|
HOME_MENU_TROPHIES,
|
||||||
HOME_MENU_TROPHY_LIST_TITLE,
|
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_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_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_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_RECORDING: return tr("Start/Stop Recording");
|
||||||
case localized_string_id::HOME_MENU_TROPHIES: return tr("Trophies");
|
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)...);
|
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