[PL-81] - Support for achievement progress#60
Merged
Conversation
- Add support for "current" and "target" progress tracking in achievements. - Implement `xbox_session_progress_achievement` to update achievement status dynamically. - Refine JSON parsing logic to extract progression data. - Ensure proper memory management for new fields in `xbox_achievement_progress_t`.
- Update Xbox achievement progression logic to handle in-place updates for measured_progress. - Add fallback unlock timestamp handling for Xbox achievements. - Enhance session readiness checks for Retro achievements to avoid empty list issues. - Introduce `achievement_cycle_refresh_current` for reactive display updates in achievement cycles.
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 implements support for tracking and displaying Xbox achievement progress in real time, including partial progress (e.g., "42/100") for achievements that are not yet unlocked. It adds new fields to Xbox achievement and progress structures, updates the logic to patch and display measured progress in-place without resetting the achievement cycle, and ensures UI elements reflect these updates immediately. Additionally, it improves session state handling for RetroArch achievements and refines text source updates for better visual feedback.
Xbox Achievement Progress Tracking:
progression_currentandprogression_targetfields toxbox_achievement_tandcurrent/targettoxbox_achievement_progress_tto store partial progress values, updated parsing, copying, and freeing logic to handle these fields.xbox_session_progress_achievementto update in-progress achievements and log their state, and integrated it with the Xbox monitor event flow.Achievement Cycle and Display Updates:
achievement_cycle_refresh_currentto re-notify subscribers after in-place field updates (e.g., measured progress), ensuring the UI updates without resetting the cycle.text_source_update_textto propagate the active color flag even when the text does not change, ensuring visual state changes are reflected.Session and State Handling Improvements:
Codebase Maintenance:
These changes ensure that Xbox achievement progress is tracked accurately, displayed responsively, and managed efficiently throughout the session lifecycle.