- Notifications
You must be signed in to change notification settings - Fork99
Update LocatorIds before synchronization#3940
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
…rride file processing logic.
| } | ||
| // Update locator IDs before building the sync tree | ||
| loadout=awaitUpdateLocatorIds(loadout); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
EDIT: Actually my analysis was wrong, I updated it
I thinkUpdateLocatorIds(loadout) might need to go before theawait ActivateLoadout(loadout); (L1144) during the loadout switching code.
Otherwise if there was a game update, and the user tries to switch to a different target loadout we would:
- Correctly deactivate the previous loadout, updating its
LocatorIds, ingesting any changes. - Reset the game to the gameMetadata
LocatorIds, which should be the latest ones due to the previous Synchronize. - Try to Activate the target loadout against a vanilla game state that doesn't match the loadout
LocatorIds(still on the old game version). - Likely run into missing backups exceptions because we no longer backup old game versions.
I think we should also update the target loadout to use the newLocatorIds as the base for now.
In the future, if we wish to allow users to select which Game version they wish each Loadout to be on, then we will have to add some extra data likeDesiredLocatorIds to be able to determine exactly which version we should want a loadout to be based on, but for now, I think going by what is provided by the game storeLocatorIds is best.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Might be something for QA to test, not sure if they have loadout switching between different game versions on their list.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Test case for cyberpunk would be:
- Unmanage game, close the app.
- In steam disable a DLC, run the game to ensure the change is applied.
- Open the app, manage the game (loadout A), add a couple of mods, apply.
- Create a second loadout (B), don't apply.
- Go in steam and enable the DLC again, run the game to ensure the change applied.
- Go back to the app
- Disable a mod in Loadout A, Apply. This should hopefully not backup the DLC.
- Now go to Loadout B and Apply that one
- Ideally this should work without exceptions and without backing up DLCs either.
Al12rs commentedOct 2, 2025
Moved the |
b75fc0d intomainUh oh!
There was an error while loading.Please reload this page.
fixes#3455
This pull request refactors the loadout synchronization logic to improve the handling of locator IDs and game version updates when ingesting from disk. The main changes involve separating the update of locator IDs from the override reprocessing logic, ensuring locator IDs are updated before building the sync tree.