Independently gate storage + K, OQ-4 P-a/P-b1, four static-local packets and comment-only disclosures. Preserve all 7641 exact owner rows, 71 valid parks and 1161 passing tests; code/data credit unchanged. G and game_engine admission remain held because current canonical loses populate_statistic_buffer. Existing collision static-local repair is not duplicated. No donor tree, held candidate, scorer or private asset imported.
- _collision_bsp_test_vector_recursive: reads the leaf flags through the
typed tag-block macro inline (HCEA spelling)
- _collision_surface_find_closest_point2d: vector_from_points2d and
cross_product2d replace hand-expanded math, as the exact sibling
collision_surface_test_point2d does
- _ai_communication_update_speech_timers: includes the owner header
cseries/errors.h for error() and names the timer label
- _cached_map_file_read_header: the exact wait helper snapshots the
completion flag before returning, reproducing January's double volatile
load at both inlined sites; the still-parked _cache_files_open_cache_files
is re-measured (closer, non-exact)
- _update_client_local_ticks: countdown tick loop and a machine_index
local passed to both server calls (January calls the build helper out of
line, which a literal 0 argument does not reproduce; disclosed)
- _rasterizer_sort_external: plain indexed loops; the object's eight
file-private globals are static, as only this object uses them
Stable diff: 0 regressions; admission 28 candidates / 0 contradicted;
active parks 201 -> 195.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>