mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-04-21 03:55:32 +00:00
Migrate Savestates overlay
Create necessary files to move the savestates overlay functions to a new subpage in preparation for slots.
This commit is contained in:
parent
a9f6b012b8
commit
845c4e3221
9 changed files with 82 additions and 45 deletions
|
@ -522,6 +522,7 @@ target_sources(rpcs3_emu PRIVATE
|
|||
RSX/Overlays/HomeMenu/overlay_home_menu_message_box.cpp
|
||||
RSX/Overlays/HomeMenu/overlay_home_menu_page.cpp
|
||||
RSX/Overlays/HomeMenu/overlay_home_menu_settings.cpp
|
||||
RSX/Overlays/HomeMenu/overlay_home_menu_savestate.cpp
|
||||
RSX/Overlays/Network/overlay_recvmessage_dialog.cpp
|
||||
RSX/Overlays/Network/overlay_sendmessage_dialog.cpp
|
||||
RSX/Overlays/overlays.cpp
|
||||
|
|
|
@ -8,8 +8,6 @@
|
|||
|
||||
extern atomic_t<bool> g_user_asked_for_recording;
|
||||
extern atomic_t<bool> g_user_asked_for_screenshot;
|
||||
extern bool boot_last_savestate(bool testing);
|
||||
|
||||
namespace rsx
|
||||
{
|
||||
namespace overlays
|
||||
|
@ -74,48 +72,7 @@ namespace rsx
|
|||
return page_navigation::exit;
|
||||
});
|
||||
|
||||
const bool suspend_mode = g_cfg.savestate.suspend_emu.get();
|
||||
|
||||
std::unique_ptr<overlay_element> save_state = std::make_unique<home_menu_entry>(get_localized_string(suspend_mode ? localized_string_id::HOME_MENU_SAVESTATE_AND_EXIT : localized_string_id::HOME_MENU_SAVESTATE));
|
||||
add_item(save_state, [suspend_mode](pad_button btn) -> page_navigation
|
||||
{
|
||||
if (btn != pad_button::cross) return page_navigation::stay;
|
||||
|
||||
rsx_log.notice("User selected savestate in home menu");
|
||||
|
||||
Emu.CallFromMainThread([suspend_mode]()
|
||||
{
|
||||
if (!suspend_mode)
|
||||
{
|
||||
Emu.after_kill_callback = []()
|
||||
{
|
||||
Emu.Restart();
|
||||
};
|
||||
}
|
||||
|
||||
Emu.Kill(false, true);
|
||||
});
|
||||
|
||||
return page_navigation::exit;
|
||||
});
|
||||
|
||||
if (!suspend_mode && boot_last_savestate(true))
|
||||
{
|
||||
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
|
||||
{
|
||||
if (btn != pad_button::cross) return page_navigation::stay;
|
||||
|
||||
rsx_log.notice("User selected reload savestate in home menu");
|
||||
|
||||
Emu.CallFromMainThread([]()
|
||||
{
|
||||
boot_last_savestate(false);
|
||||
});
|
||||
|
||||
return page_navigation::exit;
|
||||
});
|
||||
}
|
||||
add_page(std::make_shared<home_menu_savestate>(x, y, width, height, use_separators, this));
|
||||
|
||||
std::unique_ptr<overlay_element> restart = std::make_unique<home_menu_entry>(get_localized_string(localized_string_id::HOME_MENU_RESTART));
|
||||
add_item(restart, [](pad_button btn) -> page_navigation
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
#include "overlay_home_menu_page.h"
|
||||
#include "overlay_home_menu_settings.h"
|
||||
#include "overlay_home_menu_savestate.h"
|
||||
|
||||
namespace rsx
|
||||
{
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
#include "stdafx.h"
|
||||
#include "overlay_home_menu_savestate.h"
|
||||
#include "overlay_home_menu_components.h"
|
||||
#include "Emu/system_config.h"
|
||||
|
||||
extern bool boot_last_savestate(bool testing);
|
||||
|
||||
namespace rsx
|
||||
{
|
||||
namespace overlays
|
||||
{
|
||||
home_menu_savestate::home_menu_savestate(s16 x, s16 y, u16 width, u16 height, bool use_separators, home_menu_page* parent)
|
||||
: home_menu_page(x, y, width, height, use_separators, parent, get_localized_string(localized_string_id::HOME_MENU_SAVESTATE))
|
||||
{
|
||||
const bool suspend_mode = g_cfg.savestate.suspend_emu.get();
|
||||
|
||||
std::unique_ptr<overlay_element> save_state = std::make_unique<home_menu_entry>(
|
||||
get_localized_string(suspend_mode ? localized_string_id::HOME_MENU_SAVESTATE_AND_EXIT : localized_string_id::HOME_MENU_SAVESTATE_SAVE));
|
||||
|
||||
add_item(save_state, [suspend_mode](pad_button btn) -> page_navigation
|
||||
{
|
||||
if (btn != pad_button::cross) return page_navigation::stay;
|
||||
rsx_log.notice("User selected savestate in home menu");
|
||||
Emu.CallFromMainThread([suspend_mode]()
|
||||
{
|
||||
if (!suspend_mode)
|
||||
{
|
||||
Emu.after_kill_callback = []() { Emu.Restart(); };
|
||||
}
|
||||
Emu.Kill(false, true);
|
||||
});
|
||||
return page_navigation::exit;
|
||||
});
|
||||
|
||||
if (!suspend_mode && boot_last_savestate(true)) {
|
||||
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
|
||||
{
|
||||
if (btn != pad_button::cross) return page_navigation::stay;
|
||||
rsx_log.notice("User selected reload savestate in home menu");
|
||||
Emu.CallFromMainThread([]() { boot_last_savestate(false); });
|
||||
return page_navigation::exit;
|
||||
});
|
||||
}
|
||||
apply_layout();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
#pragma once
|
||||
|
||||
#include "overlay_home_menu_page.h"
|
||||
|
||||
namespace rsx
|
||||
{
|
||||
namespace overlays
|
||||
{
|
||||
struct home_menu_savestate : public home_menu_page
|
||||
{
|
||||
public:
|
||||
home_menu_savestate(s16 x, s16 y, u16 width, u16 height, bool use_separators, home_menu_page* parent);
|
||||
|
||||
private:
|
||||
std::vector<std::shared_ptr<home_menu_page>> m_savestate_pages;
|
||||
};
|
||||
}
|
||||
}
|
|
@ -265,6 +265,7 @@ enum class localized_string_id
|
|||
HOME_MENU_SETTINGS_DEBUG_TEXTURE_LOD_BIAS,
|
||||
HOME_MENU_SCREENSHOT,
|
||||
HOME_MENU_SAVESTATE,
|
||||
HOME_MENU_SAVESTATE_SAVE,
|
||||
HOME_MENU_SAVESTATE_AND_EXIT,
|
||||
HOME_MENU_RELOAD_SAVESTATE,
|
||||
HOME_MENU_RECORDING,
|
||||
|
|
|
@ -120,6 +120,7 @@
|
|||
<ClCompile Include="Emu\RSX\Overlays\HomeMenu\overlay_home_menu_main_menu.cpp" />
|
||||
<ClCompile Include="Emu\RSX\Overlays\HomeMenu\overlay_home_menu_page.cpp" />
|
||||
<ClCompile Include="Emu\RSX\Overlays\HomeMenu\overlay_home_menu_settings.cpp" />
|
||||
<ClCompile Include="Emu\RSX\Overlays\HomeMenu\overlay_home_menu_savestate.cpp" />
|
||||
<ClCompile Include="Emu\RSX\Overlays\Network\overlay_recvmessage_dialog.cpp" />
|
||||
<ClCompile Include="Emu\RSX\Overlays\Network\overlay_sendmessage_dialog.cpp" />
|
||||
<ClCompile Include="Emu\RSX\Overlays\overlay_animated_icon.cpp" />
|
||||
|
@ -642,6 +643,7 @@
|
|||
<ClInclude Include="Emu\RSX\Overlays\HomeMenu\overlay_home_menu_main_menu.h" />
|
||||
<ClInclude Include="Emu\RSX\Overlays\HomeMenu\overlay_home_menu_page.h" />
|
||||
<ClInclude Include="Emu\RSX\Overlays\HomeMenu\overlay_home_menu_settings.h" />
|
||||
<ClInclude Include="Emu\RSX\Overlays\HomeMenu\overlay_home_menu_savestate.h" />
|
||||
<ClInclude Include="Emu\RSX\Overlays\Network\overlay_recvmessage_dialog.h" />
|
||||
<ClInclude Include="Emu\RSX\Overlays\Network\overlay_sendmessage_dialog.h" />
|
||||
<ClInclude Include="Emu\RSX\Overlays\overlay_animated_icon.h" />
|
||||
|
|
|
@ -1174,6 +1174,9 @@
|
|||
<ClCompile Include="Emu\RSX\Overlays\HomeMenu\overlay_home_menu_settings.cpp">
|
||||
<Filter>Emu\GPU\RSX\Overlays\HomeMenu\Pages</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\RSX\Overlays\HomeMenu\overlay_home_menu_savestate.cpp">
|
||||
<Filter>Emu\GPU\RSX\Overlays\HomeMenu\Pages</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\RSX\Overlays\overlay_animated_icon.cpp">
|
||||
<Filter>Emu\GPU\RSX\Overlays</Filter>
|
||||
</ClCompile>
|
||||
|
@ -2410,6 +2413,9 @@
|
|||
<ClInclude Include="Emu\RSX\Overlays\HomeMenu\overlay_home_menu_settings.h">
|
||||
<Filter>Emu\GPU\RSX\Overlays\HomeMenu\Pages</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\RSX\Overlays\HomeMenu\overlay_home_menu_savestate.h">
|
||||
<Filter>Emu\GPU\RSX\Overlays\HomeMenu\Pages</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\RSX\Overlays\overlay_loading_icon.hpp">
|
||||
<Filter>Emu\GPU\RSX\Overlays</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
@ -285,7 +285,8 @@ private:
|
|||
case localized_string_id::HOME_MENU_SETTINGS_DEBUG_DISABLE_VIDEO_OUTPUT: return tr("Disable Video Output", "Debug");
|
||||
case localized_string_id::HOME_MENU_SETTINGS_DEBUG_TEXTURE_LOD_BIAS: return tr("Texture LOD Bias Addend", "Debug");
|
||||
case localized_string_id::HOME_MENU_SCREENSHOT: return tr("Take Screenshot");
|
||||
case localized_string_id::HOME_MENU_SAVESTATE: return tr("Save Emulation State");
|
||||
case localized_string_id::HOME_MENU_SAVESTATE: return tr("SaveState");
|
||||
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_RECORDING: return tr("Start/Stop Recording");
|
||||
|
|
Loading…
Add table
Reference in a new issue