Playtester DOS-binary comparison: our radar showed blips + wedge but NO map
outlines (the DOS reference draws the whole arena). MapDisplay::DrawStatic
was always a faithful, working drawer of the rtype-18 GaugeImage outlines
(the same records docs/MAPS.html renders) -- it drew nothing because
staticEntityList was empty, from TWO stacked port regressions; fixing either
alone is insufficient:
1. GaugeRenderer::RebuildEntityGrid (per frame) Clear()ed BOTH grids and
refilled from the DYNAMIC host iterators only -- the 528 static-flagged
(0x20C) UnscalableTerrain map placements, which carry most arena outlines
(arenall: 59 static vs 3 dynamic), were structurally excluded, and the
wipe also destroyed anything the interest feed contributed.
2. The notify feed's static gate was transcribed as
Terrain::GetClassDerivations() -- but the shipped content has ZERO Terrain
records (census: 1008x UnscalableTerrain + 789x CulturalIcon, both
deriving from Entity in our headers), so the predicate was dead code and
rejected 100% of map geometry. @0x4e6ef8 was almost certainly
UnscalableTerrain's derivation (or the shipped machine's MUNGA derived
UnscalableTerrain from Terrain). [T3 on which; the corrected gate is
what the content requires.]
FIX:
- staticEntities is now PERSISTENT: filled ONCE per mission inside
RebuildEntityGrid (AllEntityIterator; keep UnscalableTerrain-derived
entities carrying a rtype-18 GaugeImage -- covers the static walls AND
the dynamic CulturalIcon props the 2026-07-12 phantom-red-pip fix routed
here). Deterministic whether or not the interest feed delivers.
- Per-frame RebuildEntityGrid now rebuilds only the MOVING grid (Mover
filter + dead-mech skip unchanged).
- Lifecycle: cleared + refill-armed at LinkToEntity (the pod process hosts
many missions); the gate-corrected remove-notify prunes destroyed
statics; the gate-corrected add-notify is guarded pre-fill so nothing
double-adds.
- BT_RADAR_LOG=1 prints '[radar] static grid filled: N'.
Verified live (glass, DEV.EGG): fill reports 326 map entities; structure
outlines now draw on the radar at the correct zoom; blips + sweep wedge
unregressed. KB: GAUGE_COMPOSITE row 24 + the Phase-4 staticEntities
deferral resolved.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>