fix(ui): assess retained items on right click

Port UIElement_ItemList's physical-item right-click branch through the shared retained list. Select and appraise backpack, loot, paperdoll, and shortcut items through their canonical owners, while preventing RMB movement from lifting items or issuing appraisal requests.

Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
Erik 2026-07-24 05:55:51 +02:00
parent 5ad32d5753
commit 2dd5cb80d2
17 changed files with 264 additions and 5 deletions

View file

@ -221,6 +221,40 @@ camera drag does not appraise the object under the release point. Acdream maps
the configurable `SelectRight` action to the same complete-click gesture and
keeps `SelectionExamine` independently configurable (retail default E).
### Retained physical-item lists
`UIElement_ItemList::ListenToElementMessage @ 0x004E4D50`
```text
on ItemList right-click:
item = UIItem under the mouse
if item.itemID != 0:
if this list uses single selection:
update the list selection
SetSelectedObject(item.itemID)
ClientUISystem.ExamineObject(item.itemID)
else if item.spellID != 0:
ClientUISystem.ExamineSpell(item.spellID)
```
`gmPaperDollUI::ListenToElementMessage @ 0x004A5C30` repeats the physical-item
branch for a worn item resolved through the authored paperdoll click map:
```text
on paperdoll right-click:
itemID = GetPaperDollItemUnderMouse(mouse)
if itemID != 0:
SetSelectedObject(itemID)
ClientUISystem.ExamineObject(itemID)
```
Acdream's shared retained `UiItemList` owns the corresponding physical-item
notice. Backpack, side-bag, external-container, paperdoll-slot, and physical
toolbar cells provide their selection source and route the request through the
same `ItemInteractionController` appraisal owner used by world SmartBox and
the toolbar magnifying glass. RMB motion beyond the shared three-pixel click
threshold neither appraises nor begins an item drag.
## SmartBox click lighting pulse
`UIElement_SmartBoxWrapper::RecvNotice_SmartBoxObjectFound @ 0x004E5AD0`