mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-08-02 22:30:39 +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_message_box.cpp
|
||||||
RSX/Overlays/HomeMenu/overlay_home_menu_page.cpp
|
RSX/Overlays/HomeMenu/overlay_home_menu_page.cpp
|
||||||
RSX/Overlays/HomeMenu/overlay_home_menu_settings.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_recvmessage_dialog.cpp
|
||||||
RSX/Overlays/Network/overlay_sendmessage_dialog.cpp
|
RSX/Overlays/Network/overlay_sendmessage_dialog.cpp
|
||||||
RSX/Overlays/overlays.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_recording;
|
||||||
extern atomic_t<bool> g_user_asked_for_screenshot;
|
extern atomic_t<bool> g_user_asked_for_screenshot;
|
||||||
extern bool boot_last_savestate(bool testing);
|
|
||||||
|
|
||||||
namespace rsx
|
namespace rsx
|
||||||
{
|
{
|
||||||
namespace overlays
|
namespace overlays
|
||||||
|
@ -74,48 +72,7 @@ namespace rsx
|
||||||
return page_navigation::exit;
|
return page_navigation::exit;
|
||||||
});
|
});
|
||||||
|
|
||||||
const bool suspend_mode = g_cfg.savestate.suspend_emu.get();
|
add_page(std::make_shared<home_menu_savestate>(x, y, width, height, use_separators, this));
|
||||||
|
|
||||||
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;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
std::unique_ptr<overlay_element> restart = std::make_unique<home_menu_entry>(get_localized_string(localized_string_id::HOME_MENU_RESTART));
|
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
|
add_item(restart, [](pad_button btn) -> page_navigation
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
#include "overlay_home_menu_page.h"
|
#include "overlay_home_menu_page.h"
|
||||||
#include "overlay_home_menu_settings.h"
|
#include "overlay_home_menu_settings.h"
|
||||||
|
#include "overlay_home_menu_savestate.h"
|
||||||
|
|
||||||
namespace rsx
|
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_SETTINGS_DEBUG_TEXTURE_LOD_BIAS,
|
||||||
HOME_MENU_SCREENSHOT,
|
HOME_MENU_SCREENSHOT,
|
||||||
HOME_MENU_SAVESTATE,
|
HOME_MENU_SAVESTATE,
|
||||||
|
HOME_MENU_SAVESTATE_SAVE,
|
||||||
HOME_MENU_SAVESTATE_AND_EXIT,
|
HOME_MENU_SAVESTATE_AND_EXIT,
|
||||||
HOME_MENU_RELOAD_SAVESTATE,
|
HOME_MENU_RELOAD_SAVESTATE,
|
||||||
HOME_MENU_RECORDING,
|
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_main_menu.cpp" />
|
||||||
<ClCompile Include="Emu\RSX\Overlays\HomeMenu\overlay_home_menu_page.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_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_recvmessage_dialog.cpp" />
|
||||||
<ClCompile Include="Emu\RSX\Overlays\Network\overlay_sendmessage_dialog.cpp" />
|
<ClCompile Include="Emu\RSX\Overlays\Network\overlay_sendmessage_dialog.cpp" />
|
||||||
<ClCompile Include="Emu\RSX\Overlays\overlay_animated_icon.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_main_menu.h" />
|
||||||
<ClInclude Include="Emu\RSX\Overlays\HomeMenu\overlay_home_menu_page.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_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_recvmessage_dialog.h" />
|
||||||
<ClInclude Include="Emu\RSX\Overlays\Network\overlay_sendmessage_dialog.h" />
|
<ClInclude Include="Emu\RSX\Overlays\Network\overlay_sendmessage_dialog.h" />
|
||||||
<ClInclude Include="Emu\RSX\Overlays\overlay_animated_icon.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">
|
<ClCompile Include="Emu\RSX\Overlays\HomeMenu\overlay_home_menu_settings.cpp">
|
||||||
<Filter>Emu\GPU\RSX\Overlays\HomeMenu\Pages</Filter>
|
<Filter>Emu\GPU\RSX\Overlays\HomeMenu\Pages</Filter>
|
||||||
</ClCompile>
|
</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">
|
<ClCompile Include="Emu\RSX\Overlays\overlay_animated_icon.cpp">
|
||||||
<Filter>Emu\GPU\RSX\Overlays</Filter>
|
<Filter>Emu\GPU\RSX\Overlays</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
@ -2410,6 +2413,9 @@
|
||||||
<ClInclude Include="Emu\RSX\Overlays\HomeMenu\overlay_home_menu_settings.h">
|
<ClInclude Include="Emu\RSX\Overlays\HomeMenu\overlay_home_menu_settings.h">
|
||||||
<Filter>Emu\GPU\RSX\Overlays\HomeMenu\Pages</Filter>
|
<Filter>Emu\GPU\RSX\Overlays\HomeMenu\Pages</Filter>
|
||||||
</ClInclude>
|
</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">
|
<ClInclude Include="Emu\RSX\Overlays\overlay_loading_icon.hpp">
|
||||||
<Filter>Emu\GPU\RSX\Overlays</Filter>
|
<Filter>Emu\GPU\RSX\Overlays</Filter>
|
||||||
</ClInclude>
|
</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_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_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_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_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_RECORDING: return tr("Start/Stop Recording");
|
case localized_string_id::HOME_MENU_RECORDING: return tr("Start/Stop Recording");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue