acdream/src/AcDream.Runtime/Physics
Erik a46c8e65b2 fix #270: fire ReportExhaustion on the stamina-exhaustion edge only, not every stats tick
Retail calls CPhysicsObj::report_exhaustion from exactly one site -
CommandInterpreter::HandleExhaustion (0x006b3c70), a notification handler
for the stamina-exhaustion EVENT. Campaign P P1 wired it to every
movement-stats application instead (every stamina regen/drain tick), and
each call re-dispatches the current movement state through the animation
sink - truncating any in-flight action animation. The diagnostic session
log shows 490 spurious casting-stance re-queues in one short session:
'sometimes stuck in spell animations' was every stamina tick that
collided with a cast gesture's play window.

The re-apply now fires only when the exhausted state (stamina == 0)
transitions, matching retail's event semantics. Stats still reach
PlayerWeenie immediately via RuntimeMovementSkillProjection.ApplyTo.

Also adds the [remote-edge] probe (rides ACDREAM_DUMP_MOTION=1): one
line per remote HitGround/LeaveGround - each such edge drains the
mover's pending action animations (retail HandleEnterWorld), the
working theory for intermittently missing monster attack swings.

Complete Release suite: 10,026 passed / 5 skips / 0 failures.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-30 22:11:20 +02:00
..
EntityPhysicsHost.cs fix(physics): P5 commit 3 - retire TS-35, close #167 (ConstraintManager leash) 2026-07-30 12:12:29 +02:00
RemoteMotion.cs refactor(runtime): own per-session physics simulation 2026-07-26 13:39:57 +02:00
RuntimeOrdinaryPhysicsUpdater.cs fix(physics): TS-23 - plumb real PK/PKLite/Impenetrable mover flags 2026-07-30 09:52:55 +02:00
RuntimePhysicsState.cs feat(headless): complete deterministic bot command parity 2026-07-27 08:23:36 +02:00
RuntimeProjectile.cs refactor(runtime): own projectile simulation 2026-07-26 14:17:42 +02:00
RuntimeProjectilePhysicsUpdater.cs refactor(runtime): own projectile simulation 2026-07-26 14:17:42 +02:00
RuntimeRemoteMotionContracts.cs refactor(runtime): own per-session physics simulation 2026-07-26 13:39:57 +02:00
RuntimeRemotePhysicsUpdater.cs fix #270: fire ReportExhaustion on the stamina-exhaustion edge only, not every stats tick 2026-07-30 22:11:20 +02:00
ShadowPositionSynchronizer.cs refactor(runtime): own per-session physics simulation 2026-07-26 13:39:57 +02:00