fix(interaction): restore retail loot placement and world-drop projection
This commit is contained in:
parent
4d095be286
commit
921712f412
24 changed files with 1581 additions and 34 deletions
|
|
@ -103,6 +103,63 @@ Copy this block when adding a new issue:
|
|||
|
||||
---
|
||||
|
||||
## #247 — Loot ordering and local dropped-item projection regressed
|
||||
|
||||
**Status:** DONE — 2026-07-26; connected loot/drop/selection gate passed
|
||||
**Severity:** HIGH
|
||||
**Filed:** 2026-07-26
|
||||
**Component:** inventory / live-entity projection
|
||||
|
||||
**Description:** Double-click loot transferred successfully but settled at an
|
||||
unrelated backpack position. Locally dropped items were authoritative and
|
||||
visible to retail observers, yet remained invisible in acdream.
|
||||
|
||||
**Root cause / status:** The compact container projection sorted a completed
|
||||
server move by stale slot state instead of performing retail's separate
|
||||
remove-then-`IDList::AddAtNum` insertion. Whole-object drops then exposed two
|
||||
projection errors. Inventory-only objects retained canonical CreateObject and
|
||||
timestamp state without an App projection sidecar; the Position authority gate
|
||||
committed their server position and then rejected the presentation tail
|
||||
because it required a pre-existing `LiveEntityRecord`. Accepted Position now
|
||||
returns the exact canonical incarnation, and the network presenter crosses
|
||||
the normal spatial-hydration boundary before continuing. Objects which already
|
||||
retain a sidecar recover whenever `IsSpatiallyProjected` is false.
|
||||
`EquippedChildRenderController` also no longer interprets every final `None`
|
||||
equip mask as a detach; it requires the actual equipped-to-unequipped edge.
|
||||
|
||||
Partial-stack drops have an additional ACE-specific wire omission.
|
||||
`HandleActionStackableSplitTo3D` creates a new GUID and sends Position updates,
|
||||
but does not send that new object's CreateObject to the initiating session.
|
||||
Retail records the source WCID, selected count, and request time for ten
|
||||
seconds so the created object can be recognized. acdream now retains that same
|
||||
single pending identity; the one matching unknown ACE Position hydrates a
|
||||
canonical clone of the source appearance through the normal live-entity path.
|
||||
Reconnect evidence proved all prior drops were persisted and received as
|
||||
ordinary CreateObjects. Focused ordering, projection, and pending-identity
|
||||
tests pass, including stale-authority rejection, first projection construction,
|
||||
and no duplicate resource/ready publication.
|
||||
|
||||
The follow-up stale marker was a separate projection-lifetime ordering edge.
|
||||
Retail keeps canonical selection but suppresses its vivid world marker while
|
||||
the object is player-owned or `IN_CONTAINER`. acdream additionally must not
|
||||
mistake a retained leave-world `WorldEntity` pose for a current ground pose:
|
||||
ACE may publish the drop placement before the new Position. Marker resolution
|
||||
now requires both world placement and a current top-level spatial projection.
|
||||
The inverse packet order is also safe: a fresh Position remains suppressed by
|
||||
ownership until the placement arrives. This uses no timer and does not impose
|
||||
camera/PVS visibility, preserving off-screen and through-wall indicators.
|
||||
|
||||
**Research:**
|
||||
[`research/2026-07-26-retail-inventory-placement-and-world-drop-pseudocode.md`](research/2026-07-26-retail-inventory-placement-and-world-drop-pseudocode.md).
|
||||
|
||||
**Acceptance:** Looted items occupy the retail-selected backpack slot in
|
||||
server order; locally and remotely dropped items appear once in the world;
|
||||
pickup removes the ground marker without clearing inventory selection; re-drop
|
||||
shows the marker only at the new authoritative pose. User accepted all four
|
||||
connected checks on 2026-07-26.
|
||||
|
||||
---
|
||||
|
||||
## #246 — Prepared indoor cells stopped traversing their portals
|
||||
|
||||
**Status:** DONE — 2026-07-26; connected house/dungeon gate passed
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue