Revert "fix(phys): A6.P3 #98 — gate ContactPlane assignment by Normal.Z (Shape 1)"
This reverts commit 0cb4c59681.
This commit is contained in:
parent
0cb4c59681
commit
402ec10ec5
2 changed files with 2 additions and 31 deletions
|
|
@ -1230,17 +1230,7 @@ public static class BSPQuery
|
|||
var worldNormal = TransformNormal(polyHit.Plane.Normal, localToWorld);
|
||||
var worldVertices = TransformVertices(polyHit.Vertices, localToWorld, scale, worldOrigin);
|
||||
var worldPlane = BuildWorldPlane(worldNormal, worldVertices);
|
||||
|
||||
// A6.P3 #98 (2026-05-23): gate ContactPlane assignment by Normal.Z.
|
||||
// Retail's cdb capture shows CP is only ever set to flat polygons
|
||||
// (Normal.Z = 1.0); the cellar ramp (Normal.Z = 0.695) is never CP.
|
||||
// Setting CP=ramp made AdjustOffset slope-project forward motion
|
||||
// and caused the sphere to wedge at the ramp top when step-up's
|
||||
// downward probe couldn't find cottage floor (which is ABOVE).
|
||||
// Polygons that fail this gate still drive collision detection
|
||||
// and walkable-polygon tracking — they just don't become CP.
|
||||
if (worldNormal.Z >= PhysicsGlobals.ContactPlaneFlatThreshold)
|
||||
collisions.SetContactPlane(worldPlane, path.CheckCellId, false);
|
||||
collisions.SetContactPlane(worldPlane, path.CheckCellId, false);
|
||||
|
||||
path.SetWalkable(worldPlane, worldVertices, Vector3.UnitZ);
|
||||
|
||||
|
|
@ -1780,14 +1770,7 @@ public static class BSPQuery
|
|||
var worldNormal = TransformNormal(hitPoly.Plane.Normal, localToWorld);
|
||||
var worldVertices = TransformVertices(hitPoly.Vertices, localToWorld, scale, worldOrigin);
|
||||
var worldPlane = BuildWorldPlane(worldNormal, worldVertices);
|
||||
|
||||
// A6.P3 #98 (2026-05-23): same Normal.Z gate as
|
||||
// AdjustSphereToPlane above — only flat polygons become CP.
|
||||
// Sloped walkable polygons (cellar ramp etc.) drive collision
|
||||
// and walkable tracking but don't override the resting CP.
|
||||
if (worldNormal.Z >= PhysicsGlobals.ContactPlaneFlatThreshold)
|
||||
collisions.SetContactPlane(worldPlane, path.CheckCellId, false);
|
||||
|
||||
collisions.SetContactPlane(worldPlane, path.CheckCellId, false);
|
||||
path.SetWalkable(worldPlane, worldVertices, Vector3.UnitZ);
|
||||
|
||||
if (PhysicsDiagnostics.ProbeBuildingEnabled || PhysicsDiagnostics.ProbeIndoorBspEnabled)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue