acdream/tests/AcDream.Core.Tests/Fixtures/cellar-lip/0xA9B40174.json
Erik bc1be26907 test(p2): faithful cellar-lip wedge reproduction + investigation apparatus (no fix yet)
P2 / M1.5 "blocked at the last step" cellar-lip wedge. This session built a faithful
deterministic reproduction and peeled the cause through six evidence-disproven framings
to one bounded question. NO fix landed — the last layers were each disproven by evidence,
and guessing at the load-bearing collision code is the saga's failure mode.

Apparatus:
- CellarLipWedgeTests.cs + Fixtures/cellar-lip/ (3 real cell dumps + wedge-records.jsonl =
  29 captured ACDREAM_CAPTURE_RESOLVE wedge calls). Replays the exact calls + body-before
  through the lip-cell engine: all 29 reproduce at 0% advance in <200 ms. Tests are
  documents-the-bug / diagnostics (GREEN while the wedge exists).
- TEMP probes ([path5-wall]/[fw-enter]/[find-walkable] in BSPQuery; [neg-poly]/[stepsphereup]/
  [stepdown-decide]/CheckOtherCells cn/sn/negHit in TransitionTypes), gated on
  ACDREAM_PROBE_INDOOR_BSP, marked STRIP. TransitionTypes neg-poly shortcut has a reverted-fix
  comment (slide attempt didn't clear the wedge).
- tools/cdb/retail-*-trace.cdb (retail cdb traces).

Findings (handoff: docs/research/2026-06-04-p2-cellar-lip-flatfloor-cp-handoff.md, see the
"NEXT-SESSION KICKOFF" at top):
- Flat-floor contact plane is retail-faithful (v1 trace, full-file correlation). NOT the bug.
- PosHitsSphere cull sign is retail-faithful (cdb -z verified; the Binary Ninja `test ah,N; jp`
  parity-jump reads inverted — caught + reverted a wrong fix from that mis-read).
- Sphere radius correct (0.48 player / 0.30 camera probe).
- Retail connector cell 0xA9B40175 never blocks (CEnvCell::find_collisions trace: 0 Collided/Slid).
- PINNED: during the step-up's step-down, BSPQuery.FindWalkableInternal is never called for cell
  0171, so the cottage floor (poly 0x0023, Z=94) is never tested as walkable -> no contact plane
  -> step-up fails -> StepUpSlide=Collided -> wedge.

Next: trace FindEnvCollisions -> FindCollisions path dispatch for 0171 during StepDown=true (why
StepSphereDown/find_walkable is skipped), port retail, validate via CellarLipWedgeTests, regress
DoorBugTrajectoryReplayTests + visual gate.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 08:30:36 +02:00

583 lines
No EOL
9.2 KiB
JSON

{
"CellId": 2847146356,
"WorldTransform": {
"M11": -1,
"M12": 8.74228E-08,
"M13": 0,
"M14": 0,
"M21": -8.74228E-08,
"M22": -1,
"M23": 0,
"M24": 0,
"M31": 0,
"M32": 0,
"M33": 1,
"M34": 0,
"M41": 161.929,
"M42": 7.50315,
"M43": 94,
"M44": 1
},
"InverseWorldTransform": {
"M11": -1,
"M12": -8.74228E-08,
"M13": 0,
"M14": -0,
"M21": 8.74228E-08,
"M22": -1,
"M23": 0,
"M24": 0,
"M31": 0,
"M32": 0,
"M33": 1,
"M34": -0,
"M41": 161.929,
"M42": 7.5031643,
"M43": -94,
"M44": 1
},
"ResolvedPolygons": [
{
"Id": 0,
"NumPoints": 4,
"SidesType": 0,
"Plane": {
"Normal": {
"X": 0,
"Y": 0,
"Z": 1
},
"D": 3.999
},
"Vertices": [
{
"X": 9,
"Y": -2.85,
"Z": -3.999
},
{
"X": 9,
"Y": 2.98,
"Z": -3.999
},
{
"X": -2.664,
"Y": 2.98,
"Z": -3.999
},
{
"X": -2.664,
"Y": -2.85,
"Z": -3.999
}
]
},
{
"Id": 1,
"NumPoints": 4,
"SidesType": 0,
"Plane": {
"Normal": {
"X": -1,
"Y": 0,
"Z": 0
},
"D": 9
},
"Vertices": [
{
"X": 9,
"Y": -2.85,
"Z": -0.364
},
{
"X": 9,
"Y": 2.98,
"Z": -0.364
},
{
"X": 9,
"Y": 2.98,
"Z": -3.999
},
{
"X": 9,
"Y": -2.85,
"Z": -3.999
}
]
},
{
"Id": 2,
"NumPoints": 4,
"SidesType": 0,
"Plane": {
"Normal": {
"X": 0,
"Y": 0,
"Z": -1
},
"D": -0.364
},
"Vertices": [
{
"X": 9,
"Y": 2.98,
"Z": -0.364
},
{
"X": 9,
"Y": 1.15,
"Z": -0.364
},
{
"X": 7,
"Y": 1.15,
"Z": -0.364
},
{
"X": -2.664,
"Y": 2.98,
"Z": -0.364
}
]
},
{
"Id": 3,
"NumPoints": 4,
"SidesType": 0,
"Plane": {
"Normal": {
"X": 0,
"Y": -1,
"Z": 0
},
"D": 2.98
},
"Vertices": [
{
"X": 9,
"Y": 2.98,
"Z": -3.999
},
{
"X": 9,
"Y": 2.98,
"Z": -0.364
},
{
"X": -2.664,
"Y": 2.98,
"Z": -0.364
},
{
"X": -2.664,
"Y": 2.98,
"Z": -3.999
}
]
},
{
"Id": 4,
"NumPoints": 4,
"SidesType": 0,
"Plane": {
"Normal": {
"X": 0,
"Y": 0,
"Z": -1
},
"D": -0.364
},
"Vertices": [
{
"X": 7,
"Y": 1.15,
"Z": -0.364
},
{
"X": 7,
"Y": -2.85,
"Z": -0.364
},
{
"X": -2.664,
"Y": -2.85,
"Z": -0.364
},
{
"X": -2.664,
"Y": 2.98,
"Z": -0.364
}
]
},
{
"Id": 5,
"NumPoints": 4,
"SidesType": 0,
"Plane": {
"Normal": {
"X": 0,
"Y": 1,
"Z": 0
},
"D": 2.85
},
"Vertices": [
{
"X": -2.664,
"Y": -2.85,
"Z": -0.364
},
{
"X": 9,
"Y": -2.85,
"Z": -0.364
},
{
"X": 9,
"Y": -2.85,
"Z": -3.999
},
{
"X": -2.664,
"Y": -2.85,
"Z": -3.999
}
]
},
{
"Id": 6,
"NumPoints": 4,
"SidesType": 0,
"Plane": {
"Normal": {
"X": 1,
"Y": 0,
"Z": 0
},
"D": 2.664
},
"Vertices": [
{
"X": -2.664,
"Y": 2.98,
"Z": -3.999
},
{
"X": -2.664,
"Y": 2.98,
"Z": -0.364
},
{
"X": -2.664,
"Y": -2.85,
"Z": -0.364
},
{
"X": -2.664,
"Y": -2.85,
"Z": -3.999
}
]
}
],
"PortalPolygons": [
{
"Id": 0,
"NumPoints": 4,
"SidesType": 0,
"Plane": {
"Normal": {
"X": 0,
"Y": 0,
"Z": 1
},
"D": 3.999
},
"Vertices": [
{
"X": 9,
"Y": -2.85,
"Z": -3.999
},
{
"X": 9,
"Y": 2.98,
"Z": -3.999
},
{
"X": -2.664,
"Y": 2.98,
"Z": -3.999
},
{
"X": -2.664,
"Y": -2.85,
"Z": -3.999
}
]
},
{
"Id": 1,
"NumPoints": 4,
"SidesType": 0,
"Plane": {
"Normal": {
"X": 0,
"Y": 1,
"Z": 0
},
"D": 2.85
},
"Vertices": [
{
"X": -2.664,
"Y": -2.85,
"Z": -0.364
},
{
"X": 9,
"Y": -2.85,
"Z": -0.364
},
{
"X": 9,
"Y": -2.85,
"Z": -3.999
},
{
"X": -2.664,
"Y": -2.85,
"Z": -3.999
}
]
},
{
"Id": 2,
"NumPoints": 4,
"SidesType": 0,
"Plane": {
"Normal": {
"X": -1,
"Y": 0,
"Z": 0
},
"D": 9
},
"Vertices": [
{
"X": 9,
"Y": -2.85,
"Z": -0.364
},
{
"X": 9,
"Y": 2.98,
"Z": -0.364
},
{
"X": 9,
"Y": 2.98,
"Z": -3.999
},
{
"X": 9,
"Y": -2.85,
"Z": -3.999
}
]
},
{
"Id": 3,
"NumPoints": 4,
"SidesType": 0,
"Plane": {
"Normal": {
"X": 0,
"Y": -1,
"Z": 0
},
"D": 2.98
},
"Vertices": [
{
"X": 9,
"Y": 2.98,
"Z": -3.999
},
{
"X": 9,
"Y": 2.98,
"Z": -0.364
},
{
"X": -2.664,
"Y": 2.98,
"Z": -0.364
},
{
"X": -2.664,
"Y": 2.98,
"Z": -3.999
}
]
},
{
"Id": 4,
"NumPoints": 4,
"SidesType": 0,
"Plane": {
"Normal": {
"X": 1,
"Y": 0,
"Z": 0
},
"D": 2.664
},
"Vertices": [
{
"X": -2.664,
"Y": 2.98,
"Z": -3.999
},
{
"X": -2.664,
"Y": 2.98,
"Z": -0.364
},
{
"X": -2.664,
"Y": -2.85,
"Z": -0.364
},
{
"X": -2.664,
"Y": -2.85,
"Z": -3.999
}
]
},
{
"Id": 5,
"NumPoints": 4,
"SidesType": 0,
"Plane": {
"Normal": {
"X": 0,
"Y": 0,
"Z": -1
},
"D": -0.364
},
"Vertices": [
{
"X": 9,
"Y": 2.98,
"Z": -0.364
},
{
"X": 9,
"Y": 1.15,
"Z": -0.364
},
{
"X": 7,
"Y": 1.15,
"Z": -0.364
},
{
"X": -2.664,
"Y": 2.98,
"Z": -0.364
}
]
},
{
"Id": 6,
"NumPoints": 4,
"SidesType": 0,
"Plane": {
"Normal": {
"X": 0,
"Y": 0,
"Z": -1
},
"D": -0.364
},
"Vertices": [
{
"X": 7,
"Y": 1.15,
"Z": -0.364
},
{
"X": 7,
"Y": -2.85,
"Z": -0.364
},
{
"X": -2.664,
"Y": -2.85,
"Z": -0.364
},
{
"X": -2.664,
"Y": 2.98,
"Z": -0.364
}
]
},
{
"Id": 7,
"NumPoints": 4,
"SidesType": 0,
"Plane": {
"Normal": {
"X": 0,
"Y": 0,
"Z": 1
},
"D": 0.364
},
"Vertices": [
{
"X": 7,
"Y": 1.15,
"Z": -0.364
},
{
"X": 7,
"Y": -2.85,
"Z": -0.364
},
{
"X": 9,
"Y": -2.85,
"Z": -0.364
},
{
"X": 9,
"Y": 1.15,
"Z": -0.364
}
]
}
],
"Portals": [
{
"OtherCellId": 373,
"PolygonId": 7,
"Flags": 1
}
],
"VisibleCellIds": [
2847146351,
2847146352,
2847146353,
2847146354,
2847146355,
2847146357
]
}