From b2c695875090c9bd32a4560999a1105684d66d83 Mon Sep 17 00:00:00 2001 From: Darkhost1999 <60384196+Darkhost1999@users.noreply.github.com> Date: Mon, 25 Sep 2023 09:59:57 -0500 Subject: [PATCH] Add restart option to home menu --- .../HomeMenu/overlay_home_menu_main_menu.cpp | 22 +++++++++++++++---- rpcs3/Emu/localized_string_id.h | 1 + rpcs3/rpcs3qt/localized_emu.h | 1 + 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/rpcs3/Emu/RSX/Overlays/HomeMenu/overlay_home_menu_main_menu.cpp b/rpcs3/Emu/RSX/Overlays/HomeMenu/overlay_home_menu_main_menu.cpp index 204e6efdbc..21e7489ebf 100644 --- a/rpcs3/Emu/RSX/Overlays/HomeMenu/overlay_home_menu_main_menu.cpp +++ b/rpcs3/Emu/RSX/Overlays/HomeMenu/overlay_home_menu_main_menu.cpp @@ -41,6 +41,16 @@ namespace rsx return page_navigation::exit; }); + std::unique_ptr recording = std::make_unique(get_localized_string(localized_string_id::HOME_MENU_RECORDING)); + add_item(recording, [](pad_button btn) -> page_navigation + { + if (btn != pad_button::cross) return page_navigation::stay; + + rsx_log.notice("User selected recording in home menu"); + g_user_asked_for_recording = true; + return page_navigation::exit; + }); + const bool suspend_mode = g_cfg.savestate.suspend_emu.get(); std::unique_ptr save_state = std::make_unique(get_localized_string(suspend_mode ? localized_string_id::HOME_MENU_SAVESTATE_AND_EXIT : localized_string_id::HOME_MENU_SAVESTATE)); @@ -84,13 +94,17 @@ namespace rsx }); } - std::unique_ptr recording = std::make_unique(get_localized_string(localized_string_id::HOME_MENU_RECORDING)); - add_item(recording, [](pad_button btn) -> page_navigation + std::unique_ptr restart = std::make_unique(get_localized_string(localized_string_id::HOME_MENU_RESTART)); + add_item(restart, [](pad_button btn) -> page_navigation { if (btn != pad_button::cross) return page_navigation::stay; - rsx_log.notice("User selected recording in home menu"); - g_user_asked_for_recording = true; + rsx_log.notice("User selected restart in home menu"); + + Emu.CallFromMainThread([]() + { + Emu.Restart(false); + }); return page_navigation::exit; }); diff --git a/rpcs3/Emu/localized_string_id.h b/rpcs3/Emu/localized_string_id.h index e07fcd6b07..1d944538c2 100644 --- a/rpcs3/Emu/localized_string_id.h +++ b/rpcs3/Emu/localized_string_id.h @@ -153,6 +153,7 @@ enum class localized_string_id HOME_MENU_TITLE, HOME_MENU_EXIT_GAME, + HOME_MENU_RESTART, HOME_MENU_RESUME, HOME_MENU_SETTINGS, HOME_MENU_SETTINGS_SAVE, diff --git a/rpcs3/rpcs3qt/localized_emu.h b/rpcs3/rpcs3qt/localized_emu.h index 0fbcb00d62..c4214e3414 100644 --- a/rpcs3/rpcs3qt/localized_emu.h +++ b/rpcs3/rpcs3qt/localized_emu.h @@ -176,6 +176,7 @@ private: case localized_string_id::HOME_MENU_TITLE: return tr("Home Menu"); case localized_string_id::HOME_MENU_EXIT_GAME: return tr("Exit Game"); case localized_string_id::HOME_MENU_RESUME: return tr("Resume Game"); + case localized_string_id::HOME_MENU_RESTART: return tr("Restart Game"); case localized_string_id::HOME_MENU_SETTINGS: return tr("Settings"); case localized_string_id::HOME_MENU_SETTINGS_SAVE: return tr("Save custom configuration?"); case localized_string_id::HOME_MENU_SETTINGS_SAVE_BUTTON: return tr("Save");