feat(ui): D.5.3/B.2 — toolbar reorder/remove via ShortcutStore + wire + green-cross overlay
ToolbarController is now the LIVE drag handler: - OnDragLift: removes the source slot from ShortcutStore, sends RemoveShortcut (0x019D) wire immediately (retail remove-on-lift model). - HandleDropRelease: evicts occupant from target (RemoveShortcut), places dragged item (AddShortcut 0x019C), bumps evicted item into the vacated source slot if empty (swap path); off-bar release leaves the lift's removal standing. - Populate() now lazy-loads ShortcutStore from the PD shortcut list on first call; store is authoritative thereafter. - IsShortcutGuid() uses the store (O(18)) when loaded, falls back to scanning _shortcuts() in the pre-PD window. - All 18 slot cells now get DragAcceptSprite=0x060011FA (green cross, distinct from the inventory ring 0x060011F9). - GameWindow.Bind wired: sendAddShortcut + sendRemoveShortcut lambdas forwarded to _liveSession?.Send*(). - Divergence register: AP-47 Divergence+Risk cells updated (opacity corrected, underlay-backing framing improved). TS-33 row deleted (stopgap retired). Section header 32→31 rows. - Tests: HandleDropRelease_isInertStub removed; 5 new B.2 tests added (lift removes + sends, swap sequence, empty-target place, self-drop re-adds, green-cross sprite). 24/24 ToolbarController tests pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
41bb70c11a
commit
250f7827be
4 changed files with 179 additions and 38 deletions
|
|
@ -2018,7 +2018,9 @@ public sealed class GameWindow : IDisposable
|
|||
combatState: Combat,
|
||||
peaceDigits: toolbarPeaceDigits,
|
||||
warDigits: toolbarWarDigits,
|
||||
emptyDigits: toolbarEmptyDigits);
|
||||
emptyDigits: toolbarEmptyDigits,
|
||||
sendAddShortcut: (i, g) => _liveSession?.SendAddShortcut(i, g),
|
||||
sendRemoveShortcut: i => _liveSession?.SendRemoveShortcut(i));
|
||||
|
||||
// Phase D.5.3a — selected-object strip (name, overlay state, health meter).
|
||||
// Analogue of retail gmToolbarUI::HandleSelectionChanged
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue