Fix Two Point Museum Steam Cloud save placement#1465
Conversation
Steam can report Auto-Cloud files under the original cloud prefix even when a Windows rootoverride adds a local subdirectory. Two Point Museum exposes this as cloud prefixes like %WinAppDataLocalLow%75264032/Saves/Slot1/ while the game reads from AppData/LocalLow/Two Point Studios/Two Point Museum/Cloud/75264032/. Map both compact and slash-separated cloud prefixes to the remapped local path, then preserve any nested suffix from the Steam prefix so downloaded slot saves land where the game expects them. Adds a SteamAutoCloud regression test using the observed Two Point Museum prefix/filename split.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (4)
📝 WalkthroughWalkthroughSteam Cloud save file synchronization logic is refactored to support longest-prefix matching for cloud-to-local path resolution with multiple key variants. UFS path change handling now preserves local file snapshots by writing a cache entry instead of deleting cached metadata, and the parse version is bumped to trigger app definition reparse. ChangesSteam Cloud sync path resolution and cache preservation
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Bump the UFS parse version so cached SteamApp rows using older path mapping are regenerated. For apps with UFS rootoverrides, clear the stored Steam app change number while preserving the local file snapshot. The next sync performs a full cloud query and can download files using the corrected path mapping, without turning existing local files into an unnecessary conflict.
b3a9885 to
998da63
Compare
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
Description
Fix Steam Auto-Cloud path mapping for games whose UFS manifest uses Windows rootoverrides that remap the local save directory away from the cloud upload prefix.
Two Point Museum cloud files were downloading under the raw cloud prefix, where the game could not see them:
AppData/LocalLow/75264032/Saves/Slot1/1003.savThey now land in the remapped local UFS path:
AppData/LocalLow/Two Point Studios/Two Point Museum/Cloud/75264032/Saves/Slot1/1003.savThis also bumps the UFS parse cache version for affected remapped apps. On upgrade, the app stores cloud change number
0to force one full Steam Cloud query while preserving the local file snapshot and prior sync state. That avoids treating the app as never synced and prevents an empty refreshed cloud listing from deleting existing local saves.Tests added for:
Recording
N/A - Steam Cloud save path handling is covered by unit tests and does not have a visible UI flow.
Type of Change
Checklist
#code-changes, I have discussed this change there and it has been green-lighted. If I do not have access, I have still provided clear context in this PR. If I skip both, I accept that this change may face delays in review, may not be reviewed at all, or may be closed.CONTRIBUTING.md.Testing
./gradlew :app:testDebugUnitTest --tests "app.gamenative.service.SteamAutoCloudTest"Summary by CodeRabbit