Fix low-terrain startup and extraction placement; record Workshop 0.0.121
continuous-integration/drone/push Build is passing
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
# 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.
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"initial_runner_result": "cleanup-failed",
|
||||
"followup_idle_verified": true,
|
||||
"signalled_process": 1703783,
|
||||
"proof": "exact owned prefix, winedevice identity, same UID and launch-time window; pidfd-scoped termination"
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"initial_runner_result": "cleanup-failed",
|
||||
"followup_idle_verified": true,
|
||||
"signalled_process": 1629980,
|
||||
"proof": "exact owned prefix, winedevice identity, same UID and launch-time window; pidfd-scoped SIGKILL after SIGTERM did not stop the helper"
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
13:41:03.022 SCRIPT : Module: Game; loaded 6786x files; 14050x classes; used 43576K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_VHC_OVERRIDE,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,SHOW_DISCLAIMER,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,GAME_MODE_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG,WCS_DEFINES_ARMAMENTS,WCS_DEFINES_SPACECORE"; CRC32: 0ac67b79
|
||||
13:41:03.084 PROFILING : Compiling Game scripts took: 2574.635400 ms
|
||||
13:41:03.147 PLATFORM (E): Steamworks: SteamAPI_Init failed. Is Steam running?
|
||||
13:41:03.147 PLATFORM (E): Could not initialize platform services.
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_Actors.c": "7258b838f8365e4fa575c4f2ccc8532e22a33946405ebb490120534d5ca65607",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_AirfieldPlacement.c": "0601d8da570e1f63e43ea7df451d0e997872e4e163669fd8ad37bedd59de7b9b",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_GeneratedSites.c": "45bfeec63720fa1019f54d0e2ac21f3bbc40616d0693d94a94e0980dcae5744b",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SiteService.c": "db95d3caac9bd658a633ac7a69ebe6f1d0c093673c79cc6ad9b122360d773a16",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnPlacement.c": "fc5b61f1877aeaee75fbfd6aed3cd0b4c5277ae8543bc38a0c09836353d54b27",
|
||||
"addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSites.c": "109f8ae55f67a79343cae05f103f6ee74679c63db6081c2b73a423bc70b0c3ae",
|
||||
"addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSystem.c": "01bae0bab685e9f0c86c3a8939d18ce6f20dc0b8c1a389d179d91e93008c6957"
|
||||
}
|
||||
@@ -131,6 +131,22 @@ without resetting that total budget. The fallback surveys the terrain for a
|
||||
helicopter landing zone and retains the normal primary/secondary aircraft
|
||||
clearance and navigation checks.
|
||||
|
||||
Extraction pads do not use the camp-only 12 m road exclusion, and their initial
|
||||
ground survey uses the same 0.8 m height variation limit as the landing-zone
|
||||
survey. Camp footprints retain their 0.6 m limit and road exclusion. Aircraft
|
||||
clearance is tested at the centre's actual terrain height, matching pickup
|
||||
registration, rather than the lowest point sampled across the camp grid.
|
||||
Water, physical obstacles, guard/patrol ground and navigation, the 28 m landing
|
||||
footprint, overhead clearance and additional transport-pad checks still apply.
|
||||
|
||||
Dry ground is determined from the terrain's actual water surface, not a fixed
|
||||
world-altitude minimum. Site clearance queries water at every sampled terrain
|
||||
height instead of testing placeholder candidate heights. Dry terrain below
|
||||
one metre (including negative map elevations) can qualify; submerged terrain,
|
||||
invalid heights, excessive slopes and physical obstructions remain rejected.
|
||||
Site creation, character spawn slots, airfield pads and mortar setup use the
|
||||
same terrain-height water check, without the 10 cm character spawn lift.
|
||||
|
||||
On terrain-generated maps, prison-to-airport separation is 15% of the shorter
|
||||
world axis, clamped to 200–1,500 m (300 m on a 2 km map). This changes tactical
|
||||
spacing, not the physical footprint or slope allowance. Original authored Everon
|
||||
|
||||
Reference in New Issue
Block a user