45 lines
2.5 KiB
Markdown
45 lines
2.5 KiB
Markdown
# Passenger handbrake validation
|
|
|
|
The feature adds a held Space input for a conscious front passenger in wheeled
|
|
vehicles. Authority derives the passenger from the requesting player controller,
|
|
requires the current admitted mission body, and validates the actual occupied
|
|
seat. Seat points are compared in vehicle coordinates, excluding driver, turret,
|
|
rear and tandem seats. The held state is replicated from authority. Heartbeats
|
|
are sent every 250 ms; a 250 ms authority timer expires a demand older than one
|
|
second even when the passenger no longer receives input callbacks.
|
|
|
|
The driver's native `CarHandBrake` action receives the extra demand before native
|
|
control preparation. No release is written over the driver's action, and no gear
|
|
or service-brake values are changed. An already-set persistent brake or a native
|
|
persistent-brake toggle is left alone. Chat, menus, incapacity, leaving the seat,
|
|
and mission completion stop the passenger input.
|
|
|
|
## Native fixture
|
|
|
|
`native-probe.c` runs only in a disposable Workbench source snapshot. It suppresses
|
|
normal scenario preparation and supplies two scripted occupants and a locally
|
|
controlled driver. The passenger demand is injected through the production
|
|
server-side setter; this does **not** exercise physical Space input, the admission
|
|
RPC, or replication between two clients. Those remain a dedicated-server playtest.
|
|
|
|
The fixture checks UAZ front/rear/driver seat eligibility, native brake engagement
|
|
and release, preservation of an existing parking brake, lease expiry without
|
|
heartbeats, and front-seat selection in a rotated S105. `prepare-native.py` copies
|
|
the exact addon sources and adds the temporary fixture and runner choice.
|
|
|
|
Earlier native experiments found that editing CharacterInputContext in
|
|
OnApplyControls did not drive the brake, and ordinary held input released an
|
|
existing parking latch. The implementation uses the native actor action and
|
|
skips that extra demand while the parking brake is already set.
|
|
|
|
## Result
|
|
|
|
All feature assertions completed successfully in the final run. No script errors
|
|
were reported. The strict runner exited 1 because it also counts 13 pre-existing
|
|
localization/world asset diagnostics; they are retained in `native-checks.log`
|
|
and the runner record. Cleanup and source immutability checks passed.
|
|
|
|
Additional checks: `git diff --check`, generated-menu freshness, and the four
|
|
Workshop changelog tests passed. At validation time the published Workshop version was 0.0.131;
|
|
the native checks preceded publication of this change.
|