HostInterface: Don't try to resume system without game code

This commit is contained in:
Connor McLaughlin 2020-02-16 00:15:09 +09:00
parent 6efcf2d912
commit dcc9da3f5e
1 changed files with 22 additions and 11 deletions

View File

@ -487,23 +487,34 @@ bool HostInterface::ResumeSystemFromState(const char* filename, bool boot_on_fai
return false; return false;
const bool global = m_system->GetRunningCode().empty(); const bool global = m_system->GetRunningCode().empty();
const std::string path = if (m_system->GetRunningCode().empty())
global ? GetGlobalSaveStateFileName(-1) : GetGameSaveStateFileName(m_system->GetRunningCode().c_str(), -1);
if (FileSystem::FileExists(path.c_str()))
{ {
if (!LoadState(path.c_str()) && !boot_on_failure) ReportFormattedError("Cannot resume system with undetectable game code from '%s'.", filename);
if (!boot_on_failure)
{ {
DestroySystem(); DestroySystem();
return true;
}
}
else
{
const std::string path = GetGameSaveStateFileName(m_system->GetRunningCode().c_str(), -1);
if (FileSystem::FileExists(path.c_str()))
{
if (!LoadState(path.c_str()) && !boot_on_failure)
{
DestroySystem();
return false;
}
}
else if (!boot_on_failure)
{
ReportFormattedError("Resume save state not found for '%s' ('%s').", m_system->GetRunningCode().c_str(),
m_system->GetRunningTitle().c_str());
DestroySystem();
return false; return false;
} }
} }
else if (!boot_on_failure)
{
ReportFormattedError("Resume save state not found for '%s' ('%s').", m_system->GetRunningCode().c_str(),
m_system->GetRunningTitle().c_str());
DestroySystem();
return false;
}
return true; return true;
} }