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:
parent
5ad32d5753
commit
2dd5cb80d2
17 changed files with 264 additions and 5 deletions
|
|
@ -147,6 +147,10 @@ assessment. `SelectRight` is now a release-completed configurable click with
|
|||
the shared three-pixel drag threshold, then pulses, selects, and appraises the
|
||||
picked world object through the same owners as the magnifying glass and E key.
|
||||
RMB camera drags and empty-world releases do not issue appraisal requests.
|
||||
The separate retained ItemList path now does the same for occupied backpack,
|
||||
side-bag, loot-container, paperdoll-slot, and physical shortcut cells; it
|
||||
selects the item before entering the shared appraisal owner, and RMB movement
|
||||
neither appraises nor lifts the item.
|
||||
|
||||
**Files:** `src/AcDream.Core.Net/Messages/AppraiseInfoParser.cs`;
|
||||
`src/AcDream.App/UI/RetailUiRuntime.cs`;
|
||||
|
|
@ -170,6 +174,8 @@ the top and assessed melee/missile/armor/magic items show their retail-ordered
|
|||
stats and full DAT spell descriptions.
|
||||
Right-clicking a visible world object opens the same examination window;
|
||||
right-dragging the camera does not.
|
||||
Right-clicking an occupied retained item cell selects and examines it without
|
||||
using, equipping, looting, or dragging it.
|
||||
The Black Phyntos Hive specifically reads `Value: ???`, `Burden: Unknown`,
|
||||
then its description after one retail paragraph break, without the bogus
|
||||
255-item/255-container line.
|
||||
|
|
|
|||
|
|
@ -33,7 +33,9 @@ presentation; its connected gate passed. The existing magnifying-glass Assess
|
|||
command was already retail-faithful. World right-click assessment now follows
|
||||
the configurable `SelectRight` action's retail release-completed gesture,
|
||||
including drag cancellation, then reuses the canonical
|
||||
picker/selection/appraisal path. Slice 3's first connected gate exposed
|
||||
picker/selection/appraisal path. The parallel retained ItemList branch now
|
||||
selects and appraises occupied inventory, external-container, paperdoll, and
|
||||
physical-shortcut cells through the same request owner. Slice 3's first connected gate exposed
|
||||
three deeper defects, now corrected: the response enum mislabeled ACE's
|
||||
creature bit `0x0100` and dropped monster packets while retaining the busy
|
||||
cursor; the imported 310 x 400 examination layout was incorrectly hosted as
|
||||
|
|
|
|||
|
|
@ -101,6 +101,9 @@ passed. The pre-existing Assess command has been reconciled against retail.
|
|||
The same slice now includes retail world right-click assessment through the
|
||||
configurable `SelectRight` complete-click gesture; RMB orbit drags cancel
|
||||
instead of appraising the release point.
|
||||
Retail's separate retained ItemList right-click branch now covers physical
|
||||
backpack, loot, paperdoll, and toolbar item cells through the same selection
|
||||
and appraisal owner.
|
||||
Slice 3's first connected gate found and corrected the real remaining defects:
|
||||
ACE creature flag `0x0100` was mislabeled as a weapon profile and left the
|
||||
appraisal busy reference held, retail's examination UI had been mounted as a
|
||||
|
|
|
|||
|
|
@ -236,6 +236,11 @@ routes through the existing world picker, lighting pulse, canonical
|
|||
no-op, right-drag camera orbit does not appraise its release point, and the
|
||||
independent configurable `SelectionExamine` action now reaches the same
|
||||
request/target-mode path.
|
||||
The retained follow-up ports the separate
|
||||
`UIElement_ItemList::ListenToElementMessage @ 0x004E4D50` branch: an occupied
|
||||
backpack, side-bag, loot, paperdoll-slot, or physical toolbar cell now selects
|
||||
its item and enters that same appraisal owner on a completed right-click.
|
||||
Right-button movement cancels the click and can never begin an item drag.
|
||||
|
||||
## Slice 1 — spell-bar overflow arrows
|
||||
|
||||
|
|
|
|||
|
|
@ -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`
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue