docs: file #170 — remote creature chase+attack renders wrong vs retail

User retail side-by-side during R5-V2 visual gate: chasing+attacking monster
glides, over-frequency, uniform attack anims (retail correct on same ACE →
client-side). Decomposes into #159 (attack cmd numbering) + pending_motions
loop + dead-reckon-vs-locomotion glide. NOT V2 (chase tracking works).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Erik 2026-07-04 08:48:55 +02:00
parent 7c5bc97c74
commit 64f83d7cf1

View file

@ -46,6 +46,47 @@ Copy this block when adding a new issue:
--- ---
## #170 — Remote creature chase+attack renders wrong vs retail (glide, over-frequency, uniform attack anims)
**Status:** OPEN
**Severity:** MEDIUM (visual — remote combat / aggro)
**Filed:** 2026-07-03 (user retail side-by-side during the R5-V2 visual gate)
**Component:** animation, remote entity, combat
**Description:** A monster chasing + attacking the player (aggro) renders wrong
vs the retail client running against the SAME local ACE. User side-by-side:
retail plays proper animations, positions the monster better, plays DIFFERENT
attack animations (variety), and the attack-animation FREQUENCY is correct;
acdream shows the creature "stuck in the attack animation, gliding after me."
Because retail gets the identical ACE motion stream and renders it correctly,
the divergence is CLIENT-side (acdream's UM/animation handling), **not** ACE.
Three distinct sub-divergences:
1. **Wrong/uniform attack animations** → likely **#159** (CombatAnimationPlanner
uses 2013-decomp command numbering, not ACE/DRW; the attacks
`0x10000062/63/64` misclassify → wrong or same animation).
2. **Over-frequency / stuck attack** — motion trace: ACE streams attack UMs
(`mt=0x00 cmd=0x62/0x63/0x64 spd=0.97`) on top of the `mt=0x06` chase;
acdream's `pending_motions` completes+re-queues in a tight MOTIONDONE loop
(`pending=True` spam) → over-plays. R3/R4 pending_motions/MotionDone area.
3. **Glide** — the creature's position moves (mt-6 moveto + UP dead-reckon) but
no locomotion legs play (attacks override) → smooth slide. AP-80 / #160
dead-reckon-vs-animation family.
**Evidence:** `ACDREAM_DUMP_MOTION` trace for guid 0x80000244 — `mt-0 stance 0x3C`
`mt-6 chase spd 2.03` → stream of `mt-0` attacks `0x62/63/64 spd 0.97`;
MOTIONDONE loop between `0x8000003C` (stance) and the dispatched motion.
**NOT V2/R5:** the voyeur target-tracking correctly makes the creature chase
(the `mt-6` is proof); this is the animation/position layer.
**Where:** `MotionInterpreter`/`AnimationSequencer` attack-motion dispatch +
`pending_motions`; `CombatAnimationPlanner` (#159); `ServerControlledLocomotion`
+ remote dead-reckoning (glide).
**Acceptance:** side-by-side with retail — a chasing+attacking Mite Scamp shows
correct attack-animation variety, correct frequency, and steps/runs (no glide).
## #169 — Cold-spawn "hole": world doesn't load / invisible player when spawning far from Holtburg ## #169 — Cold-spawn "hole": world doesn't load / invisible player when spawning far from Holtburg
**Status:** DONE (`9b06a9b8`, 2026-07-03) — root confirmed live via a landblock-load **Status:** DONE (`9b06a9b8`, 2026-07-03) — root confirmed live via a landblock-load