Achievements: Preserve hardcore mode when toggling encore/spectator/unofficial settings#3661
Merged
stenzek merged 1 commit intostenzek:masterfrom Dec 17, 2025
Merged
Conversation
…nofficial settings
Owner
|
Probably should save/restore the cheevo state, but eh, whatever.. not like this is being toggled often. |
Contributor
Author
|
@stenzek almost forgot about that. I'd really like this to work properly, so I've added save/restore state here: #3663 It will allow players to re-earn the same achievements multiple times in a single session if they want to, without resetting achievement/leaderboard progress. (probably won't be used often, but I'd like to use it :P) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Toggling "Enable Encore Mode", "Enable Spectator Mode", or "Test Unofficial Achievements" while a game is running no longer disables hardcore mode.
Problem
Previously, changing any of these three settings during gameplay would trigger a full
Shutdown()+Initialize()cycle, which disabled hardcore mode until the game was reset.This change allows players to toggle these options mid-session without losing hardcore mode.
Solution
Instead of destroying and recreating the rc_client, we can reload the game achievement state by calling
ClearGameInfo()+BeginLoadGame(). This unloads and reloads the game on the existing client, preserving the hardcore mode state while still properly applying the settings changes (e.g., Encore Mode correctly resets achievement unlock states and can be done multiple times in a session).Screenshots