acdream/tools
Erik 8257b9ba10 fix(#186): render side-cull mis-sided thin connectors — use dat PortalSide bit, not AABB centroid
The indoor GREY flap at a top-floor connecting room. The render portal side-cull
reconstructed each doorway's "interior side" (PortalClipPlane.InsideSide) from the
cell's AABB CENTROID. For a THIN connector cell (0xF6820118, 5 render polys), the
bounding-box center falls on the WRONG side of the 0118->0116 doorway, so the eye
read as a back-portal and the forward room 0116 was culled -> the aperture showed
the fog clear color = grey.

Retail's PView::InitCell (0x005a4b70) and acdream's own PHYSICS path
(CellTransit.cs:190) both read the explicit dat PortalSide bit ((Flags&2)==0)
instead of guessing from geometry. Port the render path (GameWindow.BuildLoadedCell)
to the same bit.

Proven by a live retail cdb trace (retail draws 0116 from the 0118 root at the grey
pose; tools/cdb/issue186-connector-decider.cdb) + an offline dat diagnostic
(Issue186...PortalSide_CentroidVsDatBit_AtGreyEye): the dat bit matches the old
centroid on every portal of these cells EXCEPT the one #186 breaks, so the switch is
surgical. Full regression green (App 741 / Core 2631); the CornerFlood + Issue113
dat-loading helpers updated to the same bit confirm every real Holtburg/tower/hall
cell floods identically. Touches neither PortalSideEpsilon nor the deleted
EyeInsidePortalOpening rescue (the two DO-NOT-RETRY traps).

Live-gated: user-confirmed no grey at any camera angle; probe shows 216 root=0118
frames, 0 still grey (0118->0116 now TRV, vis=4).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-08 15:06:33 +02:00
..
A8CellAudit diag(render/physics): flap root-caused to physics rest µm-jitter; refute prior diagnoses 2026-06-08 09:16:12 +02:00
cdb fix(#186): render side-cull mis-sided thin connectors — use dat PortalSide bit, not AABB centroid 2026-07-08 15:06:33 +02:00
cdb-scripts fix(motion): full queue reset on locomotion-cycle direct transitions 2026-05-03 17:00:55 +02:00
diag-logs diag(motion): instrumentation for remote walk↔run leg-cycle bug (Commit A) 2026-05-03 20:38:47 +02:00
dump-keymap docs(research): canonical retail keymap + dump-keymap tool 2026-04-25 23:01:58 +02:00
ghidra_project feat(core): port decompiled AC client physics — CollisionPrimitives + PhysicsBody 2026-04-12 23:54:51 +02:00
InspectCoatTex docs(issues): #37 — Investigation 2 narrows bug to SubPalette coverage gaps 2026-05-05 14:45:50 +02:00
jsonl test(phys): A6.P5 fixture — 3 ticks from live door-stuck capture 2026-05-25 12:43:51 +02:00
pdb-extract CLAUDE.md: adopt the condensed structure, updated to current truth (-503/+176) 2026-06-12 12:42:27 +02:00
PesChainAudit docs(research): sky/weather investigation handoff + diagnostic tools 2026-04-26 21:40:34 +02:00
RainMeshProbe feat(sky): load Setup-backed (0x020xxx) sky objects via SetupMesh.Flatten 2026-04-27 23:24:09 +02:00
RetailTimeProbe sky(phase-8): retail-faithful night sky + README refresh 2026-04-24 20:34:36 +02:00
SkyObjectInspect sky(phase-8): retail-faithful night sky + README refresh 2026-04-24 20:34:36 +02:00
StarsProbe tools(probe): add StarsProbe to dump every SkyObject's geometry + UVs 2026-04-26 22:19:28 +02:00
TextureDump feat(render): indoor render WORKS — terminating portal flood + every-cell seal + look-in FPS 2026-06-07 10:14:43 +02:00
WeatherEnumerator docs(research): sky/weather investigation handoff + diagnostic tools 2026-04-26 21:40:34 +02:00
WeatherSetupProbe docs(research): sky/weather investigation handoff + diagnostic tools 2026-04-26 21:40:34 +02:00
analyze_resolve_capture.py tools+plan(#182): resolve-capture histogram classifier + verbatim player-physics rebuild plan 2026-07-07 13:37:15 +02:00
decompile_acclient.py research: decompile acclient.exe terrain/physics via Ghidra headless 2026-04-12 23:18:27 +02:00
decompile_full.py research: full acclient.exe decompilation — 22,225 functions, 688K lines 2026-04-12 23:25:51 +02:00
DecompileTargets.java research: decompile acclient.exe terrain/physics via Ghidra headless 2026-04-12 23:18:27 +02:00
ghidra_decompile.py research: decompile acclient.exe terrain/physics via Ghidra headless 2026-04-12 23:18:27 +02:00
verify_un2_fmul.py UN-2 RESOLVED: GetMaxSpeed x4 is byte-verified retail; doc-comment was the misread 2026-06-12 13:17:50 +02:00