fix(B.6): speculative auto-walk uses WalkRunThreshold=15 to match ACE

User report: 'No we only walk, not running from the correct threshold.
regression?'

Cause: InstallSpeculativeTurnToTarget passed walkRunThreshold=9999,
which made BeginServerAutoWalk evaluate the initial-distance run/walk
decision as walk-mode (no distance > 9999). ACE's MovementType=6
arrives ~100 ms later with the real wire threshold (15.0) and
overwrites, but the body had already started walking by then; for
far targets near the 15 m boundary, the speculative walking shortened
the distance enough that ACE's overwrite re-evaluated to walk also.

Fix: pass 15.0 in the speculative install — matches ACE's default
MoveToParameters.SetDefaults() for non-combat Use/PickUp.

Effect: a >15 m target now correctly enters run-mode at the
speculative install, and the ACE overwrite preserves that decision.
The body runs all the way, stopping at the target as before.
This commit is contained in:
Erik 2026-05-15 15:23:30 +02:00
parent 7158c46d46
commit e49c704b39

View file

@ -9323,11 +9323,16 @@ public sealed class GameWindow : IDisposable
minDistance: 0f,
distanceToObject: useRadius,
moveTowards: true,
// High walkRunThreshold → walk mode by default. If the
// body is far enough to actually need to run, ACE's
// subsequent MovementType=6 will overwrite with the
// wire's real threshold.
walkRunThreshold: 9999f);
// 15 m matches ACE's MoveToParameters.SetDefaults
// WalkRunThreshold for non-combat Use/PickUp paths.
// Using 9999 here forced walk-mode for the brief window
// between this speculative install and ACE's MovementType=6
// overwrite — far targets briefly walked before switching
// to run, which the user observed as "we only walk, not
// running from the correct threshold". 15.0 lines up with
// what ACE will send anyway, so the initial decision and
// the overwrite agree.
walkRunThreshold: 15.0f);
}
/// <summary>