From 284b13cd43d54c164535ff4df5ae7611963d2550 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Thu, 10 Apr 2025 21:40:34 +1000 Subject: [PATCH] Achievements: Fix starting with RAIntegration-forced HC mode --- src/core/achievements.cpp | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/core/achievements.cpp b/src/core/achievements.cpp index 66a58e613..c54f730ce 100644 --- a/src/core/achievements.cpp +++ b/src/core/achievements.cpp @@ -1153,10 +1153,18 @@ void Achievements::OnSystemStarting(CDImage* image, bool disable_hardcore_mode) } // HC should have been disabled, we're now enabling it - // only enable hardcore mode if we're logged in, or waiting for a login response - AssertMsg(!rc_client_get_hardcore_enabled(s_state.client), "Hardcode mode should be disabled prior to boot"); - if (!disable_hardcore_mode && g_settings.achievements_hardcore_mode && IsLoggedInOrLoggingIn()) - EnableHardcodeMode(false, false); + // RAIntegration can enable hardcode mode outside of us, so we need to double-check + if (rc_client_get_hardcore_enabled(s_state.client)) + { + WARNING_LOG("Hardcore mode was enabled on system starting."); + OnHardcoreModeChanged(true, false, false); + } + else + { + // only enable hardcore mode if we're logged in, or waiting for a login response + if (!disable_hardcore_mode && g_settings.achievements_hardcore_mode && IsLoggedInOrLoggingIn()) + EnableHardcodeMode(false, false); + } // now we can finally identify the game IdentifyGame(image);