docs: issue #101 — broken stairs cyl phantom (post-A6.P7 finding)
Visual verification of A6.P7 at Holtburg cottage door passed cleanly (1187 [cyl-skip-bsp] guard fires, 0 [cyl-test] on doors, 30/30 axis-aligned hits, smooth NE/SE slide along door face). While exploring post-verification, the user discovered a different staircase in cells 0xA9B40159 + 0xA9B4015A where the sphere cannot climb at all. Captured working baseline (stairs-working.jsonl, cottage cellar stairs in cells 0xA9B40143/146/147 — clean ↔ Z=90.95-94.00 traversal) and broken scenario (stairs-broken.jsonl, Z stays at 94.00 the entire 4216-record capture). Root cause is NOT a regression of A6.P7. It's a different bug shape: the staircase is built as a multi-part EnvCell entity (entityId 0x0040B500, ~150 parts), with 10 of those parts being 0.80m-radius cylinders forming the steps. Each cyl carries state=0x00000000 — no HAS_PHYSICS_BSP_PS — so A6.P7's BspOnlyDispatch guard correctly doesn't fire. Cyl height 0.80m exceeds A6.P6's step-up budget 0.60m so grounded step-over fails. Falls through to wall-slide which produces the same diagonal radial phantom A6.P7 closed for the door. The [resolve-bldg] lines reveal gfxObj=0x0100081A hasPhys=False bspR=0.00 vAabbR=0.82 — the underlying GfxObj has NO physics BSP; we appear to be synthesizing a cyl from the visual AABB radius. That synthesis path is the suspected misregistration. Filed as issue #101 with severity HIGH. Investigation handoff written covering 4 retail-research questions (cdb on retail at this stair location, Setup trace via entity-source probe, ShadowShapeBuilder vAabbR fallback audit, cell BSP poly dump), do-not-retry list, and 3 candidate fix shapes (don't synthesize cyl from vAabbR / cell BSP for stairs / cyl-height-tolerant step-over). The handoff explicitly defers implementation to a later session pending retail evidence. Files: - docs/research/2026-05-25-stairs-cyl-investigation-handoff.md (new) - docs/ISSUES.md — added #101 entry Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
888272aad1
commit
8795655250
2 changed files with 398 additions and 0 deletions
|
|
@ -761,6 +761,65 @@ family (sling-out — also likely).
|
|||
|
||||
---
|
||||
|
||||
## #101 — Stair-step cylinder phantom blocks player on multi-part EnvCell entity
|
||||
|
||||
**Status:** OPEN
|
||||
**Severity:** HIGH (M1.5 — blocks stair climbing in at least one Holtburg
|
||||
building; same symptom class as the just-closed A6.P7 door bug but
|
||||
different root cause)
|
||||
**Filed:** 2026-05-25
|
||||
**Component:** physics, dat-handling
|
||||
|
||||
**Description:** At a Holtburg staircase in cells `0xA9B40159` +
|
||||
`0xA9B4015A` (XY ≈ 110, 26; user-discovered post-A6.P7 visual
|
||||
verification), the player sphere cannot climb the stairs. Walking into
|
||||
the foot of the stairs from the east, the sphere hits a phantom slide
|
||||
with radial-cyl normals (e.g. `(0.88, -0.47, 0)`) and never gains
|
||||
altitude. Z stays at 94.00 for the entire 4216-record capture in
|
||||
`stairs-broken.jsonl`.
|
||||
|
||||
**Root cause / status:** The staircase is built as ~10 stacked cylinder
|
||||
parts of multi-part entity `entityId=0x0040B500`. Each cyl is
|
||||
`radius=0.80m, height=0.80m` at `Y=26.60`, stepping up in X+Z by 0.25m
|
||||
per step. All parts carry `state=0x00000000` — **no
|
||||
`HAS_PHYSICS_BSP_PS` flag**, so A6.P7's `Transition.BspOnlyDispatch`
|
||||
gate does NOT fire. Cyls are tested. Cyl height (0.80m) exceeds A6.P6's
|
||||
step-up budget (0.60m), so grounded step-over fails too. Falls through
|
||||
to wall-slide → diagonal radial normal → slide tangent driven into
|
||||
perpendicular cell wall → stuck.
|
||||
|
||||
The `[resolve-bldg]` lines show `gfxObj=0x0100081A hasPhys=False
|
||||
bspR=0.00 vAabbR=0.82` — the underlying `GfxObj` has NO physics BSP. We
|
||||
appear to be synthesizing a cyl from the visual AABB radius
|
||||
(`vAabbR=0.82` → registered as `r=0.80`). This synthesis path is the
|
||||
suspected mis-registration.
|
||||
|
||||
This is NOT a regression of A6.P7 (the cottage door works correctly
|
||||
post-A6.P7, visually verified). It's a separate bug shape that A6.P7's
|
||||
fix didn't address.
|
||||
|
||||
**Files:**
|
||||
- Captures: `stairs-broken.jsonl`, `stairs-broken.launch.log`,
|
||||
`stairs-working.jsonl`, `stairs-working.launch.log` (gitignored, on
|
||||
disk for the next session to read)
|
||||
- Suspected mis-registration: `src/AcDream.Core/Physics/ShadowShapeBuilder.cs::FromSetup`
|
||||
- Entity hydration site: `src/AcDream.App/Rendering/GameWindow.cs::BuildInteriorEntitiesForStreaming`
|
||||
|
||||
**Research:**
|
||||
- [`docs/research/2026-05-25-stairs-cyl-investigation-handoff.md`](research/2026-05-25-stairs-cyl-investigation-handoff.md)
|
||||
— full investigation handoff with 4 research questions, do-not-retry
|
||||
list, and 3 candidate fix shapes
|
||||
- A6.P7 background (closed companion):
|
||||
[`docs/research/2026-05-25-a6-door-cyl-retail-dispatch-investigation.md`](research/2026-05-25-a6-door-cyl-retail-dispatch-investigation.md)
|
||||
|
||||
**Acceptance:** Walking west into the broken staircase at cells
|
||||
`0xA9B40159` + `0xA9B4015A`, the player sphere ascends step-by-step to
|
||||
the top (Z=96.47), then can walk back down to the bottom (Z=94.22) — no
|
||||
phantom diagonal slide normals attributed to entity `0x0040B500`.
|
||||
Comparable trajectory to `stairs-working.jsonl` cellar-stairs baseline.
|
||||
|
||||
---
|
||||
|
||||
## #100 — Transparent rectangular patches around every house (terrain rendering)
|
||||
|
||||
**Status:** OPEN
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue