Phase B.5 (ground-item pickup, close-range path) shipped and
visual-verified 2026-05-14 at Holtburg. M1 demo target 4/4 ("pick up
an item") met.
New ship-handoff doc captures the 5-commit history including the
post-visual-test PickupEvent (0xF74A) wire-handler fix that closes
the local-despawn gap.
Roadmap and CLAUDE.md updated to reflect the ship + the new follow-up
issues:
- #63 (MEDIUM) — server-initiated MoveToObject auto-walk not
honored; blocks double-click pickup + out-of-range F. Filed as
candidate Phase B.6. holtburger has the reference implementation.
- #64 (LOW) — local-player pickup animation does not render
(retail observers see it correctly). Likely a self-echo filter
dropping UpdateMotion(Pickup) on the local player.
Carry-overs from B.4c (#61 link-cycle flash, #62 PARTSDIAG null-guard)
unchanged.
This commit is contained in:
parent
f7636a9e78
commit
d132fcccfb
4 changed files with 364 additions and 17 deletions
45
CLAUDE.md
45
CLAUDE.md
|
|
@ -619,19 +619,26 @@ acdream's plan lives in two files committed to the repo:
|
|||
|
||||
**Currently in Phase L.2 (Movement & Collision Conformance).** L.2a slices
|
||||
1+2+3 + L.2d slice 1+1.5 + L.2g slice 1 + L.2g slice 1b + L.2g slice 1c +
|
||||
**Phase B.4b** + **Phase B.4c** all shipped and visual-verified 2026-05-13.
|
||||
The M1 demo target *"open the inn door"* is met **with full visual feedback**:
|
||||
double-click a door in the Holtburg inn doorway → `WorldPicker.Pick` finds
|
||||
the door entity → `BuildUse` sends `0xF7B1/0x0036` to ACE → ACE broadcasts
|
||||
`SetState (0xF74B)` with `ETHEREAL` bit → `ShadowObjectRegistry.UpdatePhysicsState`
|
||||
(L.2g slice 1) mutates the cached state (via fixed ServerGuid→entity.Id
|
||||
translation, L.2g slice 1c) → `CollisionExemption.ShouldSkip` exempts on
|
||||
ETHEREAL-alone (L.2g slice 1b) → player walks through → door swing animation
|
||||
plays (B.4c: spawn-time `AnimationSequencer` registration + `OnLiveMotionUpdated`
|
||||
routing for door entities). Issue #57 (B.4 handler gap) is closed. Issue #58
|
||||
(door swing animation) is closed by B.4c. Issues #61 (link→cycle boundary
|
||||
flash) and #62 (PARTSDIAG null-guard) are filed as M1-deferred polish.
|
||||
**Phase B.4b** + **Phase B.4c** all shipped and visual-verified 2026-05-13;
|
||||
**Phase B.5** (ground-item pickup, F-key) shipped and visual-verified
|
||||
2026-05-14. The M1 demo target *"pick up an item"* is met for the
|
||||
close-range path — single-click a ground item to select, walk within
|
||||
~0.6 m of it, press F, and the item is removed from the world and added
|
||||
to the player's inventory. Wire chain: `InteractRequests.BuildPickUp`
|
||||
sends `PutItemInContainer (0xF7B1/0x0019)`; ACE despawns the item with
|
||||
`GameMessagePickupEvent (0xF74A)` (NOT `0xF747 DeleteObject` — the
|
||||
distinction surfaced during visual testing and is fixed by the new
|
||||
`PickupEvent.cs` parser routed through the shared `EntityDeleted`
|
||||
event). The M1 demo target *"open the inn door"* remains met from B.4b
|
||||
+ B.4c. Issue #57 (B.4 handler gap) is closed. Issue #58 (door swing
|
||||
animation) is closed by B.4c. Issues #61 (link→cycle boundary flash),
|
||||
#62 (PARTSDIAG null-guard), **#63 (server-initiated MoveToObject
|
||||
auto-walk not honored — blocks out-of-range pickup / Use)**, and **#64
|
||||
(local-player pickup animation does not render)** are filed as
|
||||
M1-deferred follow-up.
|
||||
|
||||
**B.5 ship handoff:** [`docs/research/2026-05-14-b5-shipped-handoff.md`](docs/research/2026-05-14-b5-shipped-handoff.md)
|
||||
— full evidence for the 5 commits across InteractRequests / GameWindow / WorldSession + the bonus `PickupEvent (0xF74A)` wire-handler fix that closes the despawn gap.
|
||||
**B.4c ship handoff:** [`docs/research/2026-05-13-b4c-shipped-handoff.md`](docs/research/2026-05-13-b4c-shipped-handoff.md)
|
||||
— full evidence for the 4 commits + 2 bonus discoveries (stance-value wrong
|
||||
`0x01` vs `0x3D` causing underground doors; link→cycle boundary flash).
|
||||
|
|
@ -725,11 +732,15 @@ project.
|
|||
packets, wire the handlers; if it is silent, investigate ACE's NPC handler
|
||||
configuration. ~30 min spike, outcome determines whether NPC interaction
|
||||
needs a full phase or is a one-commit fix.
|
||||
- **Phase B.5 — Ground item pickup (F key) (M1 critical path).** The
|
||||
`SelectionPickUp` input action + F-key binding exist in `KeyBindings` but
|
||||
`OnInputAction` has no case for it. `BuildUse` IS `BuildPickUp` (same wire
|
||||
format). One-commit addition: add `SelectionPickUp` case to `GameWindow.
|
||||
OnInputAction` → call `InteractRequests.BuildPickUp(seq, _selectedGuid)`. ~30 min.
|
||||
- **Phase B.6 — Client-side MoveToObject auto-walk handling (closes #63).**
|
||||
ACE auto-walks the player to out-of-range Use / Pickup targets via
|
||||
`CreateMoveToChain` + `EnqueueBroadcastMotion(MoveToObject)`, but our client
|
||||
doesn't honor the inbound motion broadcast — character drifts toward the
|
||||
target and snaps back, ACE's chain times out. Reference implementation
|
||||
exists in `references/holtburger/crates/holtburger-core/src/client/simulation.rs`
|
||||
(the `approximate_move_to_object_projection_target` + `MoveToObject` case).
|
||||
Unlocks double-click pickup, F-key pickup from any distance, Use on
|
||||
out-of-range NPCs / corpses. Probably 1-2 commits + visual verification.
|
||||
- **Triage the chronic open-issue list** in `docs/ISSUES.md` — #2 (lightning),
|
||||
#4 (sky horizon-glow), #28 (aurora), #29 (cloud thinness), #37 (humanoid
|
||||
coat), #41 (remote-motion blips) have been open since April/early-May and
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue