mirror of
https://github.com/izzy2lost/dolphin.git
synced 2026-06-19 01:16:48 -07:00
Core/State: Add OSD message and prevent state save/load when running Triforce.
This commit is contained in:
@@ -199,6 +199,17 @@ static void DoState(Core::System& system, PointerWrap& p)
|
||||
#endif // USE_RETRO_ACHIEVEMENTS
|
||||
}
|
||||
|
||||
static bool CheckIfStateSaveIsAllowed(Core::System& system)
|
||||
{
|
||||
if (system.IsTriforce())
|
||||
{
|
||||
OSD::AddMessage("State saving is not yet supported for Triforce");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool CheckIfStateLoadIsAllowed(Core::System& system)
|
||||
{
|
||||
if (!Core::IsRunningOrStarting(system))
|
||||
@@ -216,6 +227,12 @@ static bool CheckIfStateLoadIsAllowed(Core::System& system)
|
||||
return false;
|
||||
}
|
||||
|
||||
if (system.IsTriforce())
|
||||
{
|
||||
OSD::AddMessage("State loading is not yet supported for Triforce");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -495,6 +512,9 @@ static void SaveAsFromCore(Core::System& system, std::string filename)
|
||||
|
||||
void SaveAs(Core::System& system, std::string filename)
|
||||
{
|
||||
if (!CheckIfStateSaveIsAllowed(system))
|
||||
return;
|
||||
|
||||
Core::RunOnCPUThread(
|
||||
system, [&system, filename = std::move(filename), lock = GetStateSaveTaskLock()]() mutable {
|
||||
SaveAsFromCore(system, std::move(filename));
|
||||
@@ -932,6 +952,9 @@ void LoadLastSaved(Core::System& system, int i)
|
||||
|
||||
void SaveFirstSaved(Core::System& system)
|
||||
{
|
||||
if (!CheckIfStateSaveIsAllowed(system))
|
||||
return;
|
||||
|
||||
Core::RunOnCPUThread(system, [&system, lock = GetStateSaveTaskLock()] {
|
||||
// Data must reach the filesystem for up to date "UsedSlots".
|
||||
s_compress_and_dump_thread.WaitForCompletion();
|
||||
|
||||
Reference in New Issue
Block a user