docs: file #112 - house containment gap demotes to outdoor with no containment-based re-promotion (A9B3 cottage, dat-scan evidenced)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Erik 2026-06-10 14:46:22 +02:00
parent 33662b35b6
commit e9c8a925d2

View file

@ -3709,6 +3709,45 @@ stable now; this is a draw-order/depth oscillation localized to the door surface
---
## #112 — A9B3 hill cottage: containment gap inside the house demotes to outdoor with no re-promotion (transparent interior while walking)
**Status:** OPEN
**Severity:** MEDIUM-HIGH (any house with interior containment gaps; user-observed
"sometimes transparent" while walking around inside)
**Filed:** 2026-06-10 (late — user exploration after #111 closed)
**Component:** physics / membership (outdoor→indoor promotion) + cell containment
**Symptom (user, A9B3 hill cottage — interior cells 0xA9B30100/0x103/0x104, z=116):**
walking around INSIDE the house, the interior intermittently goes transparent;
membership ping-pongs indoor↔outdoor `0xA9B3003C` across a ~4 m band (x≈181185
world frame; log `issue111-verify7.log` lines 8444-68375). Separately: some objects
inside lack collision — that part is the known #99 stopgap shape (outdoor object
sweep gated while indoor-classified; A6.P4 debt), filed here as a data point only.
**Mechanism (dat-scan evidenced, scan in this entry):**
1. The cottage's containment volumes have a REAL GAP inside the visible house:
(184.9, 109.5, z 116.5) [A9B3-local (184.9, 82.5)] is contained by NO interior
cell, while 1 m away (184.2, 109.2) is inside 0x100 and (180.5, 109.0) is
inside 0x103. Walking through the gap demotes the player to outdoor 0x3C
(correct per containment — the sphere-overlap stickiness releases once the
center leaves the volume by more than the foot radius).
2. **Once outdoor-classified, nothing re-promotes from INSIDE a room**: the pick
with seed 0x3C returns 0x3C even at points the scan proves are inside 0x103 —
our outdoor→indoor promotion (`CheckBuildingTransit`) fires only on PORTAL
crossings, so the player stays outdoor (→ outdoor flood → transparent interior)
until they happen to re-cross the doorway portal.
**Fix direction:** read the retail oracle for the outdoor pick's building handling —
`CLandCell::find_transit_cells` / `CBuildingObj` building-cell checks
(`acclient_2013_pseudo_c.txt`; the CheckBuildingTransit port covered the portal
path #85, but retail likely also tests interior-cell containment for an outdoor
object standing inside a building's footprint). A containment-based promotion in
`ResolveCellId`'s outdoor branch (test the landcell's building's interior cells for
foot-sphere containment) would both heal the gap exit and harden every house.
Scan data: standing-now → [0x103], pick(seed 0x100)=0x103 / pick(seed 0x3C)=0x3C;
flip-a → []; flip-b → [0x100]. Cross-check #90 (sphere-overlap stickiness,
`4ca3596`) and the A6.P4 per-cell shadow architecture — same family.
---
# Recently closed