After land has been explored and then leaves sight, the production renderer still reads its live landscape, elevation and map-object fields. This can reveal changes the player has not seen. The pinned reference records hidden landscape/height/map objects and has its graphics grid return those remembered values while the tile is hidden.
A retained actual-browser reproduction uses public scenario setup and commands. A swordsman discovers the desert at 40,40, walks to 65,65, and leaves it explored but not visible. The rival then casts Grassland Galore, paying manna supplied by two normally completed large temples. The viewer's tile stays visible=0, explored=1, but its displayed pixel changes from 79,60,21,255 to 50,53,4,255. The unseen world changes from desert to grass at ticks 210/211. Painting leaves simulation checksums unchanged, renderer disposal is clean, and the browser records no console, request or collection errors. No sight, terrain, faith or clock state is directly patched. Original rasters remain private.
Source owner: game player visibility state, public player views, saves/replays, scene, terrain renderer and minimap. Parent #88; related #38, #28, #92 and #94. Depends on #220, which establishes current source-material selection and its regression baseline.
Pinned implementation evidence, not original Gold observations:
- FogOfWar.java:
recordHidden,clearHiddenand the hidden landscape, height and map-object snapshots. - MainGrid.GraphicsGrid:
getVisibleLandscapeTypeAt,getVisibleHeightAtandgetVisibleMapObjectsAtreturn those snapshots while hidden.
Acceptance:
- Retain the red troop-movement/rival-intervention/actual-browser reproduction at the established public seam.
- Remember each player's last observed landscape, elevation and supported map objects when sight leaves. Hidden changes must not refresh that memory; renewed sight must refresh it from the actual world. Never fabricate history on first draw.
- Read the appropriate player memory in terrain geometry, material selection, lighting dependencies, scene and minimap. Preserve filtering of unseen foreign units, goods and diagnostics.
- Cover terrain conversion, grading, object removal/growth, two independent viewers, loss and renewal of sight, initially unexplored land and late first rendering. Pin reference behavior and make unsupported map-object memory explicit.
- Persist and validate the required player memory through saves, restore, checkpoints and deterministic replay. Preserve every published earlier rules profile and its identity; do not silently reinterpret old saves.
- Keep allocation/cache ownership bounded and disposed. Retain existing clocks, replay windows and test guards. Verify actual 1x/2x pixels and no hidden-state leakage at maintained public interfaces.
- Run source integrity, lint, types, full units, production build and all browser gates. Qualify the pushed version and original diagnostics before closing.
This issue concerns remembered world presentation. Exact temporal fog fading, original Gold timings and native renderer parity remain separately unqualified.