feat(ui): preserve exact retail shortcut records
Carry signed index, object id, and raw spell word losslessly through PlayerDescription, session storage, drag mutation, and AddShortcut wire serialization while keeping gmToolbarUI object-only. Retire AP-103 and record the live ACE relog persistence gate. Co-Authored-By: Codex <codex@openai.com>
This commit is contained in:
parent
e65119f0c6
commit
b5b230c860
21 changed files with 271 additions and 181 deletions
|
|
@ -450,16 +450,25 @@ skipped.
|
|||
|
||||
### 4.2 Preserve the exact shortcut model; keep the toolbar object-only
|
||||
|
||||
- [ ] Model the 18 raw `ShortCutData` entries exactly as signed `index_`, unsigned
|
||||
- [x] Model the 18 raw `ShortCutData` entries exactly as signed `index_`, unsigned
|
||||
`objectID_`, and unsigned `spellID_`; verify packing against the retail packer and
|
||||
protocol captures before changing the existing builder.
|
||||
- [ ] Preserve all three fields through parse, session storage, mutation, and wire
|
||||
- [x] Preserve all three fields through parse, session storage, mutation, and wire
|
||||
serialization even though `gmToolbarUI::UpdateFromPlayerDesc @ 0x004BF810`
|
||||
restores only entries with a nonzero `objectID_`.
|
||||
- [ ] Keep the main toolbar item/object-only. Feed `PlayerModule::favorite_spells_[8]`
|
||||
- [x] Keep the main toolbar item/object-only. Feed `PlayerModule::favorite_spells_[8]`
|
||||
and the already parsed `HotbarSpells` into the separate spell-bar subsystem in
|
||||
Wave 10.
|
||||
|
||||
**Wave 4.2 implementation (2026-07-11):** Core-owned `ShortcutEntry` now models
|
||||
the exact signed index, object id, and raw 32-bit spell word. PlayerDescription
|
||||
parsing, the 18-slot nullable store, retained-cell drag snapshots, displaced-item
|
||||
reindexing, runtime delegates, WorldSession, and AddShortcut serialization carry
|
||||
the same lossless value. The visible toolbar continues to bind only entries with
|
||||
nonzero object ids. AP-103 is retired; automated conformance is green and the
|
||||
live relog/persistence gate passed: ACE restored the mutated shortcut in the
|
||||
same slot after a clean reconnect.
|
||||
|
||||
### 4.3 Port every drag/drop branch
|
||||
|
||||
- [ ] Add a pure `ShortcutDropPlanner` keyed by source kind: toolbar reorder,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue