diag(#170): dump remote inbound action list with stamps under ACDREAM_DUMP_MOTION

The existing UM dump shows only ForwardCommand; the [CMD_LIST] dump is local-
player only and omits stamps. For a remote creature (the #170 Mite Scamp) nothing
logged the attack action stream, so a capture couldn't answer "do the attack
stamps advance (variety) or repeat (uniform)?". Add one env-gated line in the
remote funnel branch dumping each inbound action (full command + route + stamp +
autonomous + speed). Temporary #170 capture aid — strip once the mechanism is
confirmed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Erik 2026-07-04 09:23:03 +02:00
parent eb423fb749
commit fe24289ac5

View file

@ -4977,6 +4977,29 @@ public sealed class GameWindow : IDisposable
Speed: item.Speed));
}
ims.Actions = actionList;
// #170 capture aid (ACDREAM_DUMP_MOTION): dump the
// REMOTE inbound action list WITH stamps — the
// existing UM line only shows ForwardCommand, and the
// [CMD_LIST] dump is local-player only. This is what
// answers "do the attack stamps advance (variety) or
// repeat (uniform)?". Strip once #170 is understood.
if (Environment.GetEnvironmentVariable("ACDREAM_DUMP_MOTION") == "1")
{
var sb = new System.Text.StringBuilder();
sb.Append(System.FormattableString.Invariant(
$"UM ↳ actions guid=0x{update.Guid:X8} mt=0x{update.MotionState.MovementType:X2} fwd=0x{ims.ForwardCommand:X8} ["));
for (int ai = 0; ai < actionList.Count; ai++)
{
var a = actionList[ai];
var rt = AcDream.Core.Physics.AnimationCommandRouter.Classify(a.Command);
if (ai > 0) sb.Append(", ");
sb.Append(System.FormattableString.Invariant(
$"0x{a.Command:X8}({rt}) stamp={a.Stamp} auto={a.Autonomous} spd={a.Speed:F2}"));
}
sb.Append(']');
Console.WriteLine(sb.ToString());
}
}
// R2-Q5/R3-W4: funnel dispatches go STRAIGHT into the