Conversation
…prove display cycle logic for locked/unlocked achievements
…istency in monitoring service integration files
… persistent timing settings
…ce, and UI controls
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.
This pull request adds support for tracking and displaying "measured progress" (such as "5/10") for achievements, improves the handling of achievement unlock timestamps, and refines the achievement display cycle to ensure the UI is never blank at session start. It also enhances session and achievement state management to avoid race conditions and stale data.
Achievement structure and progress tracking:
Added a
measured_progressfield toachievement_tandretro_achievement_tstructs, along with support for copying, freeing, and parsing this field from JSON messages. This allows achievements with partial progress to display their current state (e.g., "5/10"). [1] [2] [3] [4] [5] [6] [7]Updated the JSON protocol and documentation to include
measured_progressandunlock_timefor achievements. [1] [2]Achievement unlock timestamp improvements:
unlock_timewhen available, or a sentinel value when not, ensuring accurate and consistent unlock tracking. [1] [2]Achievement display cycle and UI experience:
Enhanced the achievement display cycle so that if there are no unlocked achievements, a random locked achievement is shown immediately, preventing the display from being blank at session start. [1] [2]
Ensured proper freeing of the last unlocked achievement when the game changes, preventing memory leaks and dangling pointers.
Session and achievement state management:
notify_game_playedandnotify_active_identitybefore clearing achievements, and only firingnotify_session_readywhen a game is active. [1] [2]