System: Use Async HC mode disable for resuming

This commit is contained in:
Stenzek 2023-11-27 00:45:00 +10:00
parent bbf7d9d769
commit afe8384b6d
No known key found for this signature in database
2 changed files with 29 additions and 6 deletions

View file

@ -1355,13 +1355,35 @@ bool System::BootSystem(SystemBootParameters parameters)
} }
// Check for resuming with hardcore mode. // Check for resuming with hardcore mode.
if (!parameters.save_state.empty() && Achievements::IsHardcoreModeActive() && if (parameters.disable_achievements_hardcore_mode)
!Achievements::ConfirmHardcoreModeDisable(TRANSLATE("Achievements", "Resuming state"))) Achievements::DisableHardcoreMode();
if (!parameters.save_state.empty() && Achievements::IsHardcoreModeActive())
{ {
s_state = State::Shutdown; bool cancelled;
ClearRunningGame(); if (FullscreenUI::IsInitialized())
Host::OnSystemDestroyed(); {
return false; Achievements::ConfirmHardcoreModeDisableAsync(TRANSLATE("Achievements", "Resuming state"),
[parameters = std::move(parameters)](bool approved) mutable {
if (approved)
{
parameters.disable_achievements_hardcore_mode = true;
BootSystem(std::move(parameters));
}
});
cancelled = true;
}
else
{
cancelled = !Achievements::ConfirmHardcoreModeDisable(TRANSLATE("Achievements", "Resuming state"));
}
if (cancelled)
{
s_state = State::Shutdown;
ClearRunningGame();
Host::OnSystemDestroyed();
return false;
}
} }
// Load BIOS image. // Load BIOS image.

View file

@ -50,6 +50,7 @@ struct SystemBootParameters
bool load_image_to_ram = false; bool load_image_to_ram = false;
bool force_software_renderer = false; bool force_software_renderer = false;
bool fast_forward_to_first_frame = false; bool fast_forward_to_first_frame = false;
bool disable_achievements_hardcore_mode = false;
}; };
struct SaveStateInfo struct SaveStateInfo