#113 moved to Recently closed: the phantom staircase was the Holtburg meeting hall (AAB3, not A9B3) interior stair cells drawn unclipped from outside - the PView shell clip was routed but never GL-enabled (927fd8f). Misplaced-cell hypothesis refuted with dat evidence. #112 residual paragraph updated: retail straddle gate live-binary verified + ported (414c3de); at-doorway demote is retail-faithful, deep gaps now keep-curr. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
414c3deaf4
commit
8259598970
1 changed files with 62 additions and 48 deletions
110
docs/ISSUES.md
110
docs/ISSUES.md
|
|
@ -3749,61 +3749,75 @@ adjacent-claim shape self-heals, dat-tested) then retail keep-curr. Poisoned
|
||||||
saves stay covered at the snap (#107/#111 AdjustPosition). P1 retail-golden
|
saves stay covered at the snap (#107/#111 AdjustPosition). P1 retail-golden
|
||||||
gates explicitly green (11/11).
|
gates explicitly green (11/11).
|
||||||
|
|
||||||
**RESIDUAL (documented by
|
**RESIDUAL RESOLVED 2026-06-10 (`414c3de`, live-binary oracle):** retail's
|
||||||
`Issue112MembershipTests.A9B3CottageGap_..._DocumentsResidual`):** at the
|
gate read straight from the running 2013 client (cdb attach,
|
||||||
doorway-region gap itself, the NORMAL outdoor-candidate path still demotes
|
`CEnvCell::find_transit_cells` @ 0052c820 — BN pseudo-C had invented
|
||||||
(the BFS reaches the exterior portal → outdoor cells enter the array). Open
|
portal_side tests in this branch): outdoor cells are admitted IFF a path
|
||||||
oracle read: retail's `add_all_outside_cells` gate in
|
sphere STRADDLES an exterior portal's polygon plane,
|
||||||
`CEnvCell::find_transit_cells` (pc:317499 region) — sphere-proximity to the
|
`|dist| < radius + F_EPSILON(0.0002)`. Ported as the straddle gate on the
|
||||||
exterior portal polygon vs mere graph reachability. If proximity-gated, the
|
membership PICK's outdoor branch; the collision cell SET keeps the A6.P5
|
||||||
at-door demote disappears and the DocumentsResidual assert flips to keep-curr.
|
topology widening until #99/A6.P4 (outdoor-registered doors must stay
|
||||||
Re-promotion at doorway cells works (retail-identical), so the demote now
|
findable from indoors). Consequences: (a) the at-doorway gap demote is
|
||||||
self-heals walking in — no stranding. Live gate pending: user re-walks the
|
RETAIL-FAITHFUL (gap point 0.23 m from 0x104's door plane < 0.48 m foot
|
||||||
A9B3 cottage; expect interior to stay rendered (brief doorway flicker at most).
|
radius → retail straddles + demotes + self-heals inward) — test renamed
|
||||||
The missing OBJECT collision in that cottage = #99 data point (A6.P4 debt).
|
`...DemotesRetailFaithfully`, expectation unchanged; (b) deep-interior
|
||||||
Scan data: standing-now → [0x103]; flip-a → []; flip-b → [0x100].
|
containment gaps in ANY house now keep-curr like retail instead of demoting
|
||||||
|
(new pins: `A9B3Cottage_GapBeyondStraddleDistance_KeepsCurrCell` +
|
||||||
|
`FindTransitCellsSphere_ExitPortalStraddleGate_MatchesRetail`). Live gate
|
||||||
|
pending: user re-walks the A9B3 cottage; expect interior to stay rendered
|
||||||
|
(brief doorway flicker at most). The missing OBJECT collision in that
|
||||||
|
cottage = #99 data point (A6.P4 debt). Scan data: standing-now → [0x103];
|
||||||
|
flip-a → []; flip-b → [0x100].
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## #113 — Phantom exterior staircase on an A9B3 building (not in retail); suspect misplaced interior cell
|
|
||||||
|
|
||||||
**Status:** OPEN
|
|
||||||
**Severity:** MEDIUM (visual fidelity; suspect shares a root with the same
|
|
||||||
building's containment gap #112 and collision gaps #99)
|
|
||||||
**Filed:** 2026-06-10 (late — user side-by-side vs retail)
|
|
||||||
**Component:** render / building cells (or dat interpretation)
|
|
||||||
|
|
||||||
**Symptom:** an A9B3 building (near the #112 hill cottage; NPCs Aun Kielerea +
|
|
||||||
The Sentry nearby, spot ~(183, −111, 116) world) shows a stone-and-wood
|
|
||||||
STAIRCASE attached to its exterior wall in acdream; the retail client shows a
|
|
||||||
plain wall with a window there (user screenshots, 2026-06-10). The stairs are
|
|
||||||
NOT pickable (clicks select only NPCs behind them) ⇒ not a stab/WorldEntity —
|
|
||||||
building-shell or interior-cell geometry.
|
|
||||||
|
|
||||||
**Hypothesis (would unify three symptoms at this building):** a misplaced
|
|
||||||
interior EnvCell — an indoor staircase cell whose world transform puts its
|
|
||||||
geometry outside the shell. That would simultaneously explain (a) the phantom
|
|
||||||
exterior stairs, (b) the interior containment gap (#112's dead zone = a cell
|
|
||||||
volume sitting in the wrong place), and (c) missing collision on objects in
|
|
||||||
the house.
|
|
||||||
|
|
||||||
**Next steps:** (1) ACViewer oracle — open the same landblock; stairs present
|
|
||||||
there ⇒ shared dat-interpretation, absent ⇒ our transform/draw
|
|
||||||
(feedback_acviewer_as_oracle). (2) Offline: dump A9B3's LandBlockInfo
|
|
||||||
buildings + per-cell Position.Origin/rotation; look for a cell whose
|
|
||||||
transformed AABB escapes the building footprint. (3) Identify the building id
|
|
||||||
(the landblock's building list near the spot).
|
|
||||||
|
|
||||||
**Meta (user, 2026-06-10):** "we should not have to verify all houses like
|
|
||||||
this" — agreed; the open systemic debts are A6.P4 per-cell shadows (#99,
|
|
||||||
fixes collision everywhere), the #112 residual oracle read, and this transform
|
|
||||||
check. If (2) finds a systematic per-building transform error, ONE fix covers
|
|
||||||
every affected house.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
# Recently closed
|
# Recently closed
|
||||||
|
|
||||||
|
## #113 — Phantom exterior staircase (Holtburg meeting hall): PView shell clip was never GL-enabled — [FIXED 2026-06-10 · 927fd8f, user visual gate pending]
|
||||||
|
|
||||||
|
**Status:** FIXED (self-gated by screenshot comparison at the original spot —
|
||||||
|
phantom gone; formal user visual gate pending)
|
||||||
|
**Closed:** 2026-06-10
|
||||||
|
**Component:** render (PView shell pass GL state)
|
||||||
|
|
||||||
|
**Attribution (dat-evidenced — the filed "A9B3 misplaced interior cell"
|
||||||
|
hypothesis is REFUTED):** the building is the Holtburg MEETING HALL — AAB3
|
||||||
|
building[0], model `0x010014C3` at AAB3-local (36,84,116), not an A9B3
|
||||||
|
building (A9B3 has exactly ONE building, the #112 hill cottage; the user
|
||||||
|
stood at the A9B3/AAB3 boundary — `issue112-gate1.log` cell-transit trail —
|
||||||
|
and clicked through the hall to the NPC behind it). The hall's interior
|
||||||
|
stair cells (0x100..0x106, a ring climbing z 116→124.5 to the deck hatch)
|
||||||
|
have geometry COINCIDENT with the shell's west wall (both at local x=29.0).
|
||||||
|
|
||||||
|
**Root cause:** retail clips drawn CELL geometry to the accumulated portal
|
||||||
|
view (`Render::set_view` :343750 + `planeMask=0xffffffff` per cell polygon
|
||||||
|
:427922 → `polyClipFinish`). Our equivalent — `UseShellClipRouting` →
|
||||||
|
`mesh_modern.vert` `gl_ClipDistance` — was routed with CORRECT tight clip
|
||||||
|
regions (`Issue113MeetingHallFloodTests` proves 4–6 planes, door-aperture
|
||||||
|
NDC boxes) but was INERT: `gl_ClipDistance` writes are ignored unless
|
||||||
|
`GL_CLIP_DISTANCEi` is enabled, and no caller ever enabled it for the shell
|
||||||
|
pass (born inert in `1405dd8`). Flooded interior cells drew WHOLE → the
|
||||||
|
interior staircase painted across the exterior wall; unpickable because
|
||||||
|
it's cell geometry. 5th instance of
|
||||||
|
`feedback_render_self_contained_gl_state`.
|
||||||
|
|
||||||
|
**Fix (`927fd8f`):** enable `GL_CLIP_DISTANCE0..7` around exactly the shell
|
||||||
|
pass in `RetailPViewRenderer.DrawEnvCellShells` (no early-outs between set
|
||||||
|
and restore). Entities/characters stay unclipped (retail's mesh path is
|
||||||
|
viewcone-check, not poly-clip — comment scoped). Known remaining
|
||||||
|
approximation: slot-0 fallback slices (>8-plane apertures) still draw
|
||||||
|
pass-all — the assembler's scissor fallback remains unimplemented (rare;
|
||||||
|
pinned 0 such slices at the hall).
|
||||||
|
|
||||||
|
**Refuted along the way (evidence in `Issue113PhantomStairsDumpTests`):**
|
||||||
|
the unifying misplaced-cell hypothesis — all 17 A9B3 cottage cells share
|
||||||
|
one identical dat Position (nothing to misplace); the #112 gap is a real
|
||||||
|
20 cm doorway micro-gap, not a displaced volume; missing object collision
|
||||||
|
remains #99/A6.P4. A9B3's dat has NO stair geometry anywhere near the spot
|
||||||
|
(shell = balcony slabs z119 + turret roof; cells flat 116/118.8).
|
||||||
|
|
||||||
## #111 — ACE-mutated indoor restores: transparent interior / wrong placement at login — [DONE 2026-06-10 · 5f1eb7c + 5706e0e + 2735695]
|
## #111 — ACE-mutated indoor restores: transparent interior / wrong placement at login — [DONE 2026-06-10 · 5f1eb7c + 5706e0e + 2735695]
|
||||||
|
|
||||||
**Status:** DONE (user-gated: clean indoor logins at two different buildings —
|
**Status:** DONE (user-gated: clean indoor logins at two different buildings —
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue