feat(ui): port retail selected-item mana
Parse and route the complete 0x0264 guid/fraction/valid response, send exact 0x0263 item-mana queries, and reproduce retail meter visibility plus guid-zero cancellation for mana and health selection changes. Keep the behavior in Core state and the retained selected-object controller with wire/state/UI conformance coverage. Co-Authored-By: Codex <codex@openai.com>
This commit is contained in:
parent
df460f94c3
commit
fa1da02783
21 changed files with 402 additions and 38 deletions
|
|
@ -519,13 +519,13 @@ their live action gate remains pending. The inventory-button gate remains pendin
|
|||
Use, and Examine actions; dispatch panel buttons through the window registry,
|
||||
ghosting unavailable panels rather than constructing placeholders.
|
||||
- [ ] Make open/closed states event-driven from `RetailWindowManager`.
|
||||
- [ ] Complete selected-object item mana and port `RecvNotice_UpdateItemMana`.
|
||||
- [x] Complete selected-object item mana and port `RecvNotice_UpdateItemMana`.
|
||||
- [x] Complete formatted stack count, stack entry and split slider, the applicable
|
||||
`RecvNotice_SplitStack` activation behavior, and `HandleSelectionChanged` stack
|
||||
precedence. Vendor-specific initial quantity remains naturally dormant until a
|
||||
vendor panel owns an active vendor id.
|
||||
- [ ] Replace the PWD-only health gate with the exact attackable/player/pet policy.
|
||||
- [ ] Add item-mana query/cancel state and health query cancellation.
|
||||
- [x] Add item-mana query/cancel state and health query cancellation.
|
||||
- [x] Add one shared split-quantity owner for the entry, slider, and selected-source
|
||||
item-holder merge, container-split, and ground-split payloads.
|
||||
|
||||
|
|
@ -547,6 +547,16 @@ moves send `StackableSplitToContainer 0x0055`; partial drag-out drops send
|
|||
because the authoritative destination stack receives a server-assigned guid. The
|
||||
partial inventory and ground transfers were live-confirmed 2026-07-11.
|
||||
|
||||
**Wave 4.4b implementation (2026-07-11):** named retail pins the complete selected-item
|
||||
mana exchange: `CM_Item::Event_QueryItemMana @ 0x006A8610` sends `0x0263 + guid`,
|
||||
`DispatchUI_QueryItemManaResponse @ 0x006A84D0` reads guid/fraction/valid, and
|
||||
`gmToolbarUI::RecvNotice_UpdateItemMana @ 0x004BD0C0` reveals the meter only for a
|
||||
valid response. `ItemManaState` owns the parsed response; `SelectedObjectController`
|
||||
queries only owned non-stack items, ignores stale-guid notices, cancels invalid/visible
|
||||
queries with guid zero, and applies the same visible-meter cancellation to health.
|
||||
Automated wire, state, and retained-controller conformance is green; live visual/action
|
||||
confirmation remains pending.
|
||||
|
||||
**Wave 4.1 implementation (2026-07-11):** bare `1..9` now use slots 0..8,
|
||||
Ctrl+`1..9` selects them, Alt+`5..9` uses slots 13..17, and `0` creates a
|
||||
shortcut to the selected owned/eligible object in the first empty slot. A focused
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue