System: Fix patch setting override desync on safe mode toggle

old-dev
Stenzek 1 month ago
parent c2bbef066d
commit dc1882dd3e
No known key found for this signature in database

@ -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 ||

Loading…
Cancel
Save