Repository navigation
Restore vendor reputation and faction rank rewards - #150
Open
gagefulwood wants to merge 45 commits into
Open
gagefulwood wants to merge 45 commits into
gagefulwood wants to merge 45 commits into
Conversation
Read installed reward pools, item wrappers, conditions, and Season Pass rows alongside item definitions. Resolve existing server grants through State and publish inventory and acquisition flags in the same transaction. Replace authored engram and material reward tables and Season Pass armor rolls. Share the extracted class-package path, preserve native claim indices, and apply earned progression flags as seasonal experience changes.
…ions' into fix/vendor-reputation-runtime-integration
Read installed reward pools, item wrappers, conditions, and Season Pass rows alongside item definitions. Resolve existing server grants through State and publish inventory and acquisition flags in the same transaction. Replace authored engram and material reward tables and Season Pass armor rolls. Share the extracted class-package path, preserve native claim indices, and apply earned progression flags as seasonal experience changes.
…alk owed pass perks
Integrate runtime-item-definitions at 05ce3ea. Include the verified cache and WS901 corrections, rank-claim handling, and version-3 save compatibility while preserving both parent histories.
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.
Summary
Dependency and shared changes
Depends on Throg's Extract runtime reward definitions and replace hardcoded grants (#146), reviewed here at
05ce3ea7ea5e74449d2a6a98a4b58b80945be127.Throg's work provides the item/reward catalogs, nested reward-pool resolver, conditions/socket overrides, inventory grants, and ordinary multi-cost sale handling. My contribution adds vendor reputation, rank-claim handling, faction metadata, claim-credit revalidation, and the spent-credit after-image on top of that foundation.
The tables below list my additions and modifications relative to his dependency revision, not his full file changes. Shared-file rows distinguish my changes from Throg's or upstream's existing implementation. His reward resolver and validating cache decoder are unchanged.
I also corrected the inherited Season Pass cache encoder to encode only active conditions and write canonical unused slots. Condition padding stays zero; socket padding retains Throg's absent-reference defaults. The combined vendor cache layout uses version 73 so older derived caches rebuild.
Save compatibility
This PR retains investment schema-v3 support so existing version-3 saves continue to open, including the migration from older saves and cleanup of objective rows for removed characters. Vendor XP and claim credit still use the existing unlock banks, not the objective table. This compatibility is my addition, not part of Throg's dependency. Schema-v2-only builds cannot open saves after migration to version 3.
Notes / limits
Files added and modified (my vendor/cache and save-compatibility changes)
My added files
Sunrise/resources/database/vendor_reputation_content.sqlSunrise/src/client/content/vendors/package_vendor_gate_build.cppSunrise/src/state/build_data/vendors/reconstructed_rank_claim_links.hSunrise/src/state/build_data/vendors/reputation_sale_catalog.hSunrise/src/state/build_data/vendors/reputation_sale_catalog.cppSunrise/src/state/build_data/vendors/vendor_gate_catalog.hSunrise/src/state/build_data/vendors/vendor_gate_catalog.cppSunrise/src/state/runtime/state_vendor_reputation_runtime.hSunrise/src/state/runtime/state_vendor_reputation_runtime.cppMy modifications to shared files
Sunrise/Sunrise.vcxprojSunrise/resources/resource.hSunrise/resources/sunrise.rcSunrise/src/client/content/items/packages/package_item_build.cppSunrise/src/client/content/items/packages/package_progression_build.cppSunrise/src/client/content/items/packages/package_reward_build.cppSunrise/src/client/content/vendors/layout.hSunrise/src/client/content/vendors/package_vendor_build.cppSunrise/src/client/content/vendors/vendor_build.hSunrise/src/middleware/content/packages/tables/definition_index_table.hSunrise/src/middleware/web_service/messages/opcode904/opcode904_codec.hSunrise/src/middleware/web_service/messages/opcode904/opcode904_codec.cppSunrise/src/server/web_service/web_service_runtime.hSunrise/src/server/web_service/web_service_runtime.cppSunrise/src/server/web_service/web_service_vendor_actions.cppSunrise/src/server/bap/encrypted/internal.hSunrise/src/server/bap/encrypted/body/bap_service_body.cppSunrise/src/server/bap/encrypted/transactions/service_outcome_commit.cppSunrise/src/server/bap/encrypted/encrypted_runtime.cppSunrise/src/server/bap/encrypted/push/snapshot/family4_reward_updates.cppSunrise/src/state/build_data/build_data_runtime.cppSunrise/src/state/build_data/runtime/build_data_catalog_runtime.cppSunrise/src/state/build_data/vendors/definition.hSunrise/src/state/build_data/vendors/vendor_catalog.cppSunrise/src/state/build_data/progressions/definition.hSunrise/src/state/build_data/progressions/progression_catalog.hSunrise/src/state/build_data/progressions/progression_catalog.cppSunrise/src/state/build_data/cache/records/cache_investment_records.cppSunrise/src/state/build_data/cache/records/cache_vendor_records.cppSunrise/src/state/build_data/cache/records/format.hSunrise/src/state/runtime/runtime.hSunrise/src/state/runtime/state_account_reward_grant_runtime.cppSunrise/src/state/build_data/rewards/definition.hSunrise/src/state/unlocks/unlocks_expression.hSunrise/resources/database/investment_schema.sqlSunrise/src/state/investment/investment_database.cppSunrise/src/state/investment/investment_account_store.cpp