The collision model's top lifted the Scorpion's driver onto the turret as
it swung over him (screenshots); it never caught anything the set heights
did not.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Like the Ghost's: the driver sits down in the hull (screenshot: the
compartment's inside). The raise applies to a vehicle's driver and gunner
only; riders on a tank's back sit on it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Their rider bends down into the vehicle, and the eyes at his head looked
into his own shoulders.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Their riders sit down in the hull, drawn from behind in the game; from the
rider's head the view met its inside. The eyes now rise to above the hull's
top over the head and up to 50 cm ahead of it (a downward ray against the
vehicle's own collision model), plus vr.enclosed_seat_clearance.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Seated as a driver or gunner, the player's body is drawn (its hands on
the wheel or the gun's handles, as the seat animates them), its head
shrunk to nothing out of the eyes' way. A gunner's view is moved back from
the gun's sights (vr.gunner_camera_back). Glass tints and reflects half as
much (vr.glass_strength), which up close hid the view through the
Warthog's windscreen.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Seated, the first-person camera stood where the seat's chase camera turns
about (the vehicle's middle, low); it is now at the rider's head marker.
X now does what the game's prompts say it does (action, reload); B takes
the flashlight (tap) and grenade switch (hold).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Seated, the view stays behind the player's own eyes (vr.vehicle_first_person)
and turns with the vehicle, smoothly between ticks (its interpolated
heading); the head looks around freely, and recentring faces the vehicle's
forward. A driver who steers by facing (jeep, boat, plane, scout, fighter)
steers with the right stick: aside up to vr.vehicle_steer_degrees off the
heading, up and down for pitch (vr.vehicle_pitch_degrees). Gunners, the
tank's driver and passengers aim with the right controller, and turn in
the seat with the stick. The crosshair and its distance follow the
vehicle's aim. While the vehicle turns the player, the eye images darken
from their edges (vr.comfort_vignette, host_xr_set_vignette).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Integrate verified source and data progress; exclude unproven COMMON ownership, held UB/asm forms, and address-named data credit. Stable sweep: 23 exact functions gained, zero lost.
- _hs_compile_and_evaluate: calls the real static hs_compile_source_error
helper with no source file instead of a hand-written copy (January
inlines the helper here, leaving its dead loop's alignment pad), reuses
the expression parameter; formerly recorded as unreachable
- _inverse_kinematics_adjust_matrices: named squared upper-arm length and
consistent basis-row locals (park reopen)
- _actor_stimulus_prop_acknowledged: MAX clamps, DATUM_INDEX_TO_ABSOLUTE_INDEX,
January's ternary polarity (park reopen)
- _lrar_allocate: found-flag loop allocating inside the fitting arm, as the
sibling _lra_allocate (park reopen)
- _prop_add: reads the dead field back and binds the actor lookup
- _director_script_camera: real director_set_camera helper call and the
admitted bare director_get validation (park reopen)
Stable diff: 0 regressions; active parks 213 -> 209.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- _main_load_last_solo_map: MIN clamp on the terminator index (house rule 18)
- _main_get_window_count: named single-window predicate and a PIN of the
local player count (reopens its park)
- _observer_update_command: timer/last-timer/flag pointer walk mirroring
the exact sibling observer_update_velocities (reopens its park)
Rejected: _observer_update_positions (same-value carrier copy of
remaining_time), _main_crash (January writes through a null pointer),
_effect_generate_part (mismatched csprintf varargs).
Stable diff: 0 regressions; parks 236 -> 234.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Wave w2 landing, adversarially verified. park reopens: _director_update_controls. Full ninja build and per-function stable_verdicts sweep: 0 regressions. 1 park(s) removed.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Wave w1 landing, adversarially verified. park reopen: _editor_camera_orbiting_update (adds the genuine director.h include). The verifier-accepted split variant (_editor_camera_update reopen and three parked-body refreshes) needs a names-only symbols.json change and is held for the config packet. Full build of the combined batch: 54 strict gains / 29,440 padded, 0 regressions, parks 355/0/0. 1 park(s) removed.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
symbols.json names the observer maximum-acceleration table, sine_region_angle and the parameter / derivative real-count tables (HCEA names, static; separate statics proven by the 2-byte alignment gap). Writes the unwritten collision_test_differential and reopens collision_test_with_t (single result flag), check_penetration, postcheck and the acceleration/velocity/polynomial integrators. 6 parks removed. Adversarially verified in wave D; full build of the combined object_lights + observer set: 0 regressions, parks 391/0/0.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Reconstruct _main_loop from the exact Claude packet using semantic helper names, authentic types, and owner-header prototypes. Keep collision timing declarations behind the collision debug/log boundary so units.obj remains exact.