fix #270 closeout: strip investigation probes; close the issue
User-verified: casting fixed (exhaustion-edge gate) and monster attack animations restored (spawn settle placement + lost-cell retry). Final session evidence: 14/15 spawn settles grounded; Falling-refusal spam collapsed 2,954 -> 15 transient pre-settle lines. Strips the [UM-ACT]/[MT-FAIL]/[SPAWN-PLACE]/[remote-edge] probes, the MotionInterpreter.DiagnosticGuid plumbing, and the two throwaway probe tests (motion-table attack sweep, vitae color dump - both findings are recorded in ISSUES/research). Complete Release suite: 10,030 passed / 5 skips / 0 failures. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
21b3a3f3d3
commit
bb1640f777
7 changed files with 3 additions and 263 deletions
|
|
@ -678,13 +678,6 @@ public sealed class MotionInterpreter : IMotionDoneSink
|
|||
/// </summary>
|
||||
public Action? RemoveLinkAnimations { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// #270 diagnostic identity (2026-07-30): the owning entity's server
|
||||
/// guid, stamped by the binding layer so [UM-ACT]/[MT-FAIL] probe lines
|
||||
/// are attributable (probe-identity-attribution lesson). 0 = unset.
|
||||
/// Strip with the #270 probes.
|
||||
/// </summary>
|
||||
public uint DiagnosticGuid { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// R3-W4 no-op seam standing in for retail
|
||||
|
|
@ -2781,16 +2774,6 @@ public sealed class MotionInterpreter : IMotionDoneSink
|
|||
int diff = incoming >= stored ? incoming - stored : stored - incoming;
|
||||
bool newer = diff <= 0x3FFF ? stored < incoming : incoming < stored;
|
||||
|
||||
// #270 missing-attack investigation (2026-07-30): one line per
|
||||
// wire action item with the gate verdict — rides
|
||||
// ACDREAM_DUMP_MOTION=1. Strip when #270 closes.
|
||||
if (PhysicsDiagnostics.DumpMotionEnabled)
|
||||
{
|
||||
Console.WriteLine(
|
||||
$"[UM-ACT] guid={DiagnosticGuid:X8} cmd=0x{a.Command:X8} stamp={incoming} stored={stored} "
|
||||
+ $"newer={newer} auton={a.Autonomous} localSkip={IsLocalPlayer && a.Autonomous}");
|
||||
}
|
||||
|
||||
if (!newer) continue;
|
||||
|
||||
// Local player skips its own autonomous echoes (305977).
|
||||
|
|
@ -3039,19 +3022,6 @@ public sealed class MotionInterpreter : IMotionDoneSink
|
|||
// non-action" apply-only path below — but WITHOUT writing state.
|
||||
bool dispatchOk = sink?.ApplyMotion(motion, p.Speed) ?? true;
|
||||
|
||||
// #270 missing-attack investigation (2026-07-30): surface FAILED
|
||||
// animation dispatches — a silently-failing sink is the "monster
|
||||
// attacks but the animation never fires" candidate. Rides
|
||||
// ACDREAM_DUMP_MOTION=1. Strip when #270 closes.
|
||||
if (!dispatchOk && PhysicsDiagnostics.DumpMotionEnabled)
|
||||
{
|
||||
Console.WriteLine(
|
||||
$"[MT-FAIL] guid={DiagnosticGuid:X8} motion=0x{motion:X8} speed={p.Speed:F2} "
|
||||
+ $"style=0x{InterpretedState.CurrentStyle:X8} substate=0x{InterpretedState.ForwardCommand:X8} "
|
||||
+ $"contact={PhysicsObj.TransientState.HasFlag(TransientStateFlags.Contact)} "
|
||||
+ $"walkable={PhysicsObj.TransientState.HasFlag(TransientStateFlags.OnWalkable)}");
|
||||
}
|
||||
|
||||
if (!dispatchOk)
|
||||
{
|
||||
// Retail: `result = CPhysicsObj::DoInterpretedMotion(...)` is
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue