diff --git a/docs/ISSUES.md b/docs/ISSUES.md index 6212ccd4..2cf86639 100644 --- a/docs/ISSUES.md +++ b/docs/ISSUES.md @@ -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 **Status:** DONE (`9b06a9b8`, 2026-07-03) — root confirmed live via a landblock-load