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
|
|
@ -305,7 +305,7 @@ All rows are `inbound` direction (GameEvents are server→client only).
|
|||
| 0x0248 | inbound | HouseUpdateRestrictions | `ClientHousingSystem::Handle_House__Recv_UpdateRestrictions` | – | W | – | –defer:Housing | RestrictionDB blob |
|
||||
| 0x0257 | inbound | UpdateHAR | `ClientHousingSystem::Handle_House__Recv_UpdateHAR` | – | W | – | –defer:Housing | HAR blob |
|
||||
| 0x0259 | inbound | HouseTransaction | `ClientHousingSystem::Handle_House__Recv_HouseTransaction` | – | W | – | –defer:Housing | scalar txn code |
|
||||
| 0x0264 | inbound | QueryItemManaResponse | `ClientUISystem::Handle_Item__QueryItemManaResponse` | W | W | P | P+W | parser exists; needs ItemRepository wiring |
|
||||
| 0x0264 | inbound | QueryItemManaResponse | `ClientUISystem::Handle_Item__QueryItemManaResponse` | W | W | P | P+W | parser + trailing valid flag wired to `ItemManaState` and selected-object meter (2026-07-11) |
|
||||
| 0x0271 | inbound | AvailableHouses | `ClientHousingSystem::Handle_House__Recv_AvailableHouses` | – | W | – | –defer:Housing | PackableList<u32> + flag |
|
||||
| 0x0274 | inbound | CharacterConfirmationRequest | `ClientUISystem::Handle_Character__ConfirmationRequest` | W | W | P | P+W | parser exists; needs modal-confirm wiring |
|
||||
| 0x0276 | inbound | CharacterConfirmationDone | `ClientUISystem::Handle_Character__ConfirmationDone` | W | W | – | P+W | (type, contextId); confirms client ACK |
|
||||
|
|
|
|||
|
|
@ -49,6 +49,11 @@ The named-decomp anchors for each stream are inline below.
|
|||
**Goal:** when the player selects a world object (LMB pick or Tab/Q combat-target), the action bar's
|
||||
bottom strip shows that object's **Health meter** + **name**; **Mana meter** for owned items.
|
||||
|
||||
**Landed 2026-07-11:** the selected-item mana path is implemented end to end.
|
||||
`CM_Item::Event_QueryItemMana @ 0x006A8610` pins outbound `0x0263`; inbound `0x0264`
|
||||
is guid + float fraction + trailing 32-bit valid flag; Core `ItemManaState` feeds
|
||||
`SelectedObjectController`, which ports valid/invalid visibility and guid-zero cancellation.
|
||||
|
||||
**Retail lifecycle** (the oracle): `gmToolbarUI::HandleSelectionChanged`
|
||||
(`acclient_2013_pseudo_c.txt:198635`) — on selection it `SetVisible(1)`s the right meter and fires
|
||||
`CM_Combat::Event_QueryHealth(guid)` (creatures/players) or `CM_Item::Event_QueryItemMana(guid)`
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue