docs: file #65 — local player doesn't turn to face on close-range Use
This commit is contained in:
parent
211fe240b8
commit
5f83766de5
1 changed files with 41 additions and 0 deletions
|
|
@ -46,6 +46,47 @@ Copy this block when adding a new issue:
|
|||
|
||||
# Active issues
|
||||
|
||||
## #65 — Local player doesn't turn to face target on close-range Use
|
||||
|
||||
**Status:** OPEN
|
||||
**Severity:** LOW (functional — Use still completes — but visually awkward)
|
||||
**Filed:** 2026-05-15 (B.6/B.7 visual verification)
|
||||
**Component:** physics / movement / inbound MoveTo handling
|
||||
|
||||
**Description:** When the local player has a target selected and is
|
||||
already within ACE's `WithinUseRadius` (close-range branch in
|
||||
`CreateMoveToChain` at `Player_Move.cs:66`), ACE skips the auto-walk
|
||||
chain and just calls `Rotate(target)` server-side. The Use action
|
||||
completes, but the local player's body doesn't visibly turn to face
|
||||
the target — the character stays at whatever heading the user was
|
||||
looking when they clicked.
|
||||
|
||||
**User-visible:** Stand behind an NPC, click them, press R. Dialogue
|
||||
appears, but the character keeps facing away from the NPC. In retail
|
||||
the character would have turned to face the NPC before / during the
|
||||
Use.
|
||||
|
||||
**Root cause:** ACE's close-range path sends a `TurnTo` motion
|
||||
(MovementType=8 TurnToObject, decomp `0x005241b3` switch case 8).
|
||||
Our `OnLiveMotionUpdated` doesn't currently handle MovementType=8 —
|
||||
it falls into the locomotion path and ignores the rotation.
|
||||
|
||||
**Acceptance:** When the user uses an in-range target while facing
|
||||
away, the character rotates to face the target before / as the Use
|
||||
action fires. No regression on close-range pickup (item still picks
|
||||
up cleanly).
|
||||
|
||||
**Files (likely):**
|
||||
- `src/AcDream.Core.Net/Messages/UpdateMotion.cs` — extend parser for MovementType=8 TurnToObject payload.
|
||||
- `src/AcDream.App/Input/PlayerMovementController.cs` — add a `BeginServerTurnToObject(targetWorld, useFinalHeading)` method that rotates Yaw at TurnRateRadPerSec each frame until aligned, then clears the state.
|
||||
- `src/AcDream.App/Rendering/GameWindow.cs` `OnLiveMotionUpdated` — when inbound motion is MovementType=8 and the guid is `_playerServerGuid`, install the turn on the controller.
|
||||
|
||||
**Estimated scope:** Small — ~50 LOC plus tests. Pairs naturally with
|
||||
B.6 (already does turn-then-walk for far targets via RemoteMoveToDriver's
|
||||
heading correction; this is the close-range cousin).
|
||||
|
||||
---
|
||||
|
||||
## #64 — Local-player pickup animation does not render
|
||||
|
||||
**Status:** OPEN
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue