diff options
| author | David Racine <bass_dr@hotmail.com> | 2026-08-03 09:36:29 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-08-03 13:36:29 +0000 |
| commit | 44f680a0b96412929638c7dd0bdfff639b689588 (patch) | |
| tree | ed0f25cfb9d3701b857e1cc09c75ff95cf5e5264 /StormLib/src/SFilePatchArchives.cpp | |
| parent | 985590246fbd1926cd53b9f8a8acf35fcf880276 (diff) | |
Fix Save Editor inventory edits leaving C/D-pad buttons desynced (#7008)
The Save Editor's Inventory tab writes gSaveContext.inventory.items[]
directly, but a C/D-pad item button mirrors the slot it points at
(buttonItems[i] == items[cButtonSlots[i-1]]). That derived value was
never refreshed, so e.g. emptying a bottle assigned to a button left the
button showing its old contents -- a desync the game's equip/inventory
consistency then trips on at the next age swap or bottle update.
Re-sync any button pointing at an edited slot after the write. Equipment
assigned to a button stores an equipment-page index in cButtonSlots
(>= inventory size), so it never matches an inventory slot and is left
untouched.
Includes a default-on "Keep C/D-pad buttons in sync" checkbox
(mirroring "Restrict to valid items") so inventory edits can intentionally
leave a slot desynced from its button for RBA practice/debugging.
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Diffstat (limited to 'StormLib/src/SFilePatchArchives.cpp')
0 files changed, 0 insertions, 0 deletions
