Files
EscapistsReintroduced/docs/powered-flight-pad-survey.md
T

4.0 KiB

Powered-flight fixture pad survey

The current powered-flight draft surveys at most 377 deterministic candidates: 208 around the existing extraction helicopter followed by 169 around the installed Everon airport. The first 128 are the original 12 points at 120 m, four 24-point rings at 200/280/360/440 m with alternating angular offsets, and 20 points at 500 m. If none passes, it freezes the best above-water coarse candidate and tests the other 80 points in a nine-by-nine grid at 10 m spacing (±40 m per axis). Later improvements never move that refinement center. The local 208 candidates remain within 557 m of the original anchor. If these fail, the fixture tries a 13-by-13 grid at 50 m spacing around (4900.953, 11787.412), the center in installed Prefabs/World/Locations/Eden/Airport.et:16. The airport offsets extend ±300 m per axis; this is a separate fixture location, not an expansion of the mission extraction route. This search changes only the disposable fixture; it does not modify the mission extraction aircraft or terrain.

Every candidate must have terrain elevation at least 2 m and no more than 0.8 m absolute height difference at four 14 m cardinal samples. The latest draft increases the entity-clear cylinder to radius 40 m and height 4 m, centered 2.5 m above the candidate. The world-and-entity swept box extends from 3 m to 60 m with bounds (-40,-1,-40)..(40,1,40). Installed SCR_WorldTools.TraceCilinderUtil returns true for clear geometry. No best-effort result is accepted: a candidate that fails any gate cannot spawn the aircraft.

A second, still-unqualified native guard measures the actual spawned aircraft hierarchy's model bounds, rotor damage sweeps and native simulation rotors about the physics origin before engine start. The resulting conservative radius must fit the cleared 40 m corridor including initial drift, planned 8 m drift and a 1 m margin, and the 60 m height envelope including initial placement and the fixture height allowance. Unknown/missing geometry refuses startup. The guard is scoped to the audited vanilla Mi8 prefab; source calculations are not evidence that its native footprint fits or that powered flight works.

Search diagnostics record tested count, range, sampled height delta and low-ground/slope/cylinder/sweep rejection counts. The best sample is diagnostic input to the bounded refinement only, never an unchecked usable pad. A value of -1 means no candidate reached slope sampling.

Archived 091819 compiles and runs the earlier 128-point survey but rejects all candidates before aircraft creation: three low-ground and 125 over the unchanged 0.8 m slope limit, with best delta 0.803917 m. Cylinder and swept-box checks are not reached. Archived 093319 compiles the later 208-point refinement and enlarged-clearance draft, but also refuses every candidate: three low-ground, 182 slope and 23 cylinder rejections. Its best height delta is 0.0999985 m, so flat terrain exists but none passes the entity-clear column. No candidate reaches the swept-box or spawned-aircraft footprint checks. The two explicit fixture failures and zero completions are retained. The subsequent 169 airport candidates and native-input diagnostics await their own archived result; no successful pad or flight is claimed.

tests/test_powered_flight_pad.py checks the actual candidate/refinement generators and source contracts, including preserved original points, bounded unique offsets and a frozen refinement anchor. tests/test_native_flight_footprint.py exercises the conservative footprint calculations and source contracts. These checks do not compile Enforce or prove native geometry/flight. Native Math.Mod replaces the earlier unsupported % operator; installed vanilla scripts/Game/UI/Conflict/SCR_CampaignLogisticMapUIBase.c:294 provides the integer-use precedent. The shim tests remain geometry/compatibility checks rather than runtime qualification.