mirror of
https://github.com/stenzek/duckstation.git
synced 2026-02-13 01:44:33 +00:00
System: Fix patch setting override desync on safe mode toggle
This commit is contained in:
@@ -1061,7 +1061,7 @@ void Cheats::UpdateActiveCodes(bool reload_enabled_list, bool verbose, bool verb
|
||||
blocked_cheats_msg.view(), blocked_patches_msg.view()) :
|
||||
fmt::format(TRANSLATE_FS("Cheats", "{} disabled by achievements hardcore mode/safe mode."),
|
||||
(blocked_cheats > 0) ? blocked_cheats_msg.view() : blocked_patches_msg.view());
|
||||
Host::AddIconOSDMessage("CheatsBlocked", ICON_EMOJI_WARNING, std::move(message), Host::OSD_INFO_DURATION);
|
||||
Host::AddIconOSDMessage("LoadCheats", ICON_EMOJI_WARNING, std::move(message), Host::OSD_INFO_DURATION);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1386,6 +1386,15 @@ void System::ApplySettings(bool display_osd_messages)
|
||||
LoadSettings(display_osd_messages);
|
||||
}
|
||||
|
||||
// If safe mode is changed, patches need to be disabled and settings potentially reloaded.
|
||||
if (g_settings.disable_all_enhancements != old_settings.disable_all_enhancements)
|
||||
{
|
||||
const bool had_setting_overrides = Cheats::HasAnySettingOverrides();
|
||||
Cheats::ReloadCheats(false, true, false, true, true);
|
||||
if (had_setting_overrides != Cheats::HasAnySettingOverrides())
|
||||
LoadSettings(false);
|
||||
}
|
||||
|
||||
CheckForSettingsChanges(old_settings);
|
||||
Host::CheckForSettingsChanges(old_settings);
|
||||
}
|
||||
@@ -4335,9 +4344,6 @@ void System::CheckForSettingsChanges(const Settings& old_settings)
|
||||
{
|
||||
ClearMemorySaveStates(false, false);
|
||||
|
||||
if (g_settings.disable_all_enhancements != old_settings.disable_all_enhancements)
|
||||
Cheats::ReloadCheats(false, true, false, true, true);
|
||||
|
||||
if (g_settings.cpu_overclock_active != old_settings.cpu_overclock_active ||
|
||||
(g_settings.cpu_overclock_active &&
|
||||
(g_settings.cpu_overclock_numerator != old_settings.cpu_overclock_numerator ||
|
||||
|
||||
Reference in New Issue
Block a user