Add front-passenger handbrake control; record Workshop 0.0.132
continuous-integration/drone/push Build is passing
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user