fix(physics): #32 L.2c wire edge-slide movement flag
This commit is contained in:
parent
9fea9b13ad
commit
1ec40f2a4f
6 changed files with 75 additions and 14 deletions
|
|
@ -428,12 +428,18 @@ public sealed class PlayerMovementController
|
|||
stepDownHeight: StepDownHeight, // L.2.3a: from Setup.StepDownHeight
|
||||
isOnGround: _body.OnWalkable,
|
||||
body: _body, // persist ContactPlane across frames for slope tracking
|
||||
// L.2c 2026-04-30: retail PhysicsGlobals.DefaultState includes
|
||||
// EdgeSlide, and PhysicsObj.get_object_info copies that bit into
|
||||
// OBJECTINFO. Keep it explicit here so edge/cliff handling runs
|
||||
// under the same flag profile as retail player movement.
|
||||
//
|
||||
// Commit C 2026-04-29 — local player is always IsPlayer.
|
||||
// The PK/PKLite/Impenetrable bits come from PlayerDescription's
|
||||
// PlayerKillerStatus property; not yet parsed (non-PK pair → walks
|
||||
// through other non-PK players, which is retail's default for
|
||||
// ACE's character creation defaults too).
|
||||
moverFlags: AcDream.Core.Physics.ObjectInfoState.IsPlayer);
|
||||
moverFlags: AcDream.Core.Physics.ObjectInfoState.IsPlayer
|
||||
| AcDream.Core.Physics.ObjectInfoState.EdgeSlide);
|
||||
|
||||
// Apply resolved position.
|
||||
_body.Position = resolveResult.Position;
|
||||
|
|
|
|||
|
|
@ -5856,7 +5856,11 @@ public sealed class GameWindow : IDisposable
|
|||
// branch zeroes the +Z offset every step (same bug
|
||||
// we hit on the local jump).
|
||||
isOnGround: !rm.Airborne,
|
||||
body: rm.Body); // persist ContactPlane across frames for slope tracking
|
||||
body: rm.Body, // persist ContactPlane across frames for slope tracking
|
||||
// Retail default physics state includes EdgeSlide.
|
||||
// Remote dead-reckoning should exercise the same
|
||||
// edge/cliff branch as local movement.
|
||||
moverFlags: AcDream.Core.Physics.ObjectInfoState.EdgeSlide);
|
||||
|
||||
rm.Body.Position = resolveResult.Position;
|
||||
if (resolveResult.CellId != 0)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue