fix(inventory): correct drag overlay priority
Keep the persistent selection indicator above retail's waiting mesh, use the normal green accept circle for backpack-grid placement, and reserve the green drop-in arrow for bag-column containers as ItemList_DragOver does. Co-Authored-By: Codex <codex@openai.com>
This commit is contained in:
parent
ace5880fed
commit
64a056e656
6 changed files with 63 additions and 19 deletions
|
|
@ -65,6 +65,30 @@ on drag release/cancel:
|
|||
hide m_elem_Icon_Ghosted
|
||||
```
|
||||
|
||||
## Destination feedback and source overlay order
|
||||
|
||||
`UIElement_ItemList::ItemList_DragOver @ 0x004e3400` distinguishes an ordinary
|
||||
slot insertion from dropping into a container:
|
||||
|
||||
```text
|
||||
if target list is a container selector
|
||||
and target cell is occupied by a container
|
||||
and that container has an empty item slot:
|
||||
target.SetDragAcceptState(0x10000046) # ItemSlot_DragOver_DropIn
|
||||
# 0x060011F7 green arrow
|
||||
else if target accepts an ordinary item-list placement:
|
||||
target.SetDragAcceptState(0x10000041) # ItemSlot_DragOver_Accept
|
||||
# 0x060011F9 green circle
|
||||
else:
|
||||
target.SetDragAcceptState(0x10000040) # 0x060011F8 reject
|
||||
```
|
||||
|
||||
Therefore the backpack contents grid uses the green circle; the side-bag column
|
||||
and main-pack container cell use the green drop-in arrow. The selected/open
|
||||
indicators remain visible while `m_elem_Icon_Ghosted` is active, so the
|
||||
procedural leaf draws the waiting mesh before those persistent indicators and
|
||||
keeps drag-accept feedback topmost.
|
||||
|
||||
## Port mapping
|
||||
|
||||
- `IconComposer` caches the underlay-free composite separately and exposes
|
||||
|
|
@ -85,6 +109,6 @@ on drag release/cancel:
|
|||
- `DragDropSpineTests.InventoryDrag_ghostsSourceUntilRelease`
|
||||
- `DragDropSpineTests.ShortcutDrag_doesNotGhostSource`
|
||||
- `UiItemSlotTests.DefaultWaitingSprite_isRetailGhostMesh`
|
||||
- `InventoryControllerTests.Empty_sprites_and_drop_feedback_are_applied_per_list_role`
|
||||
- Existing `IconComposerTests.TwoStageWithEffect_copiesTilePixelBeforeUnderlay`
|
||||
locks the two-stage composition order.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue