Files
EscapistsReintroduced/docs/evidence/extraction-survey-2026-10-25/README.md
T
2026-10-25 14:01:49 +01:00

3.9 KiB

Small-terrain survey corrections — 25 October 2026

The reported failure contains 48,000 failed checks, including 5,796 road proximity refusals and seven primary-aircraft-clearance refusals. No navigation failure is listed. It identifies exhaustion of the extraction survey, not proof that the terrain has no usable helicopter landing area.

A second screenshot failed on the prison with 34,381 checks rejected by the hard-coded minimum elevation. The water query used the candidate's placeholder height rather than the sampled terrain height. Native API documentation says TryGetWaterSurface tests whether the supplied point is submerged; the simplified query takes the same world/point inputs.

The site grid now checks finite terrain height and water at each actual sampled surface point, accepting dry low or negative terrain. The shared DryGround helper samples without the 10 cm spawn lift, so shallow water stays excluded. Site creation, character spawn footprints, primary/secondary aircraft pads and mortar setup use this check instead of fixed world-height cutoffs.

The common site survey applied the camp's 12 m road exclusion and 0.6 m flatness limit before the extraction-specific 0.8 m survey. Extraction now permits clear roadside/paved ground and uses the landing survey's flatness limit. Camps and guard footprints keep their existing constraints. The aircraft checks now use centre terrain height, matching ERR_SiteService pickup registration, instead of the camp grid's lowest sampled height.

Passed focused production-body tests:

python3 tests/test_crash_start.py
python3 tests/test_generated_sites.py
python3 tests/test_terrain_sites.py
python3 tests/test_rescue_landing.py
python3 tests/test_terrain_airfields.py
python3 tests/test_placement_diagnostics.py

These cover camp/extraction road separation, a 0.7 m height-range candidate accepted only for extraction, 0.9 m refusal, blocked pad/guard refusal, centre height passed to aircraft checks, preserved camp floor, navigation and fleet refusals, finite scheduling and diagnostics. Added tests execute the production dry-ground helper and clearance grid for dry heights 0.5, 0 and -25 m, submerged terrain at positive and negative elevations, 5 cm shallow water, a water patch between the former nine sample points, non-finite terrain height, slope and physical obstruction. Startup consumers are checked for the shared gate.

The full repository check run passed through the terrain/placement coverage, then stopped on a stale objective-copy assertion expecting the old generic startup message. That assertion now checks the actual reason and absence of a chat-command instruction. Rerunning that check and the remaining 88 checks completed successfully. No production source changed during this continuation.

Both isolated native attempts compiled the Game module with no script errors, then failed Steam platform initialization before loading the world. The retained log excerpt is compilation evidence only; no native fixture assertions or map-specific startup success are claimed. Full attempted-run inputs and logs are at /tmp/erri-small-terrain-placement-run-Oct25A1 and /tmp/erri-small-terrain-placement-run-Oct25B1 (final source bytes). The first runner timed out with one orphaned Wine device helper. Follow-up cleanup verified its exact private prefix, process identity and launch time, stopped only that helper, and confirmed the prefix idle; see cleanup-followup.json. The final compile attempt required the same verified cleanup; its idle check also passed (cleanup-final-followup.json).

Reproduce the native attempt with an available Steam session and an unused suffix:

python3 docs/evidence/small-terrain-placement-2026-10-24/isolated-runner.py Oct25Next

The screenshots came from another player; the reported terrain is unidentified. These corrections remove verified mismatches; they do not guarantee every terrain fits the required fleet.