Recover transparent geometry submit (+1,285 meaningful code, zero exact losses); reconcile COMMON ownership and Q10 85+EXT1 credit, actions/main data, and separately disclosed denominator corrections. Preserve canonical-only repairs and all held research. C09 is ordinary disclosed cleanup, not a claim of proven scaffolding intent. Clean rebuild, 1,663 tests, parks, audits, provider links and independent EXT1 check pass. Local reconciliation only.
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.
- geometry: drop the NODUP hand copy of plane2d_distance_to_point, so the
header inline is used (selection byte only; removes a latent
collision_bsp<->geometry LNK2005).
- collision_bsp: collision_bsp_usage_times is file-static (cachebeta publics).
- rasterizer_lights P1: HCEX file statics with January's .bss layout (the
load-bearing `= {0}` follows the VC7 initialised-statics law and precedent);
lands atomically with its 6 symbols.json rows.
- motion_sensor: .bss symbol layout fix (object_audit 44/2 -> 44/0).
- rasterizer_xbox_models: five D3D wrapper rows static.
All byte- and credit-neutral (gated with batch 5a); objects stay incomplete
on residual functions and held owner items.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
realcmp appears in January's own assert strings in four objects
(actors, actor_moving, matrix_math, biped_limp_noodle), so it is a
shared Bungie math macro. Define it once in real_math.h's macros
section, using an existing blank line so no header line number moves.
Blank the four identical TU-local copies in actors.c, actor_looking.c
(with its now-stale comment), matrix_math.c and biped_limp_noodle.c.
They are blanked, not deleted, so no __LINE__ moves.
realcmp_epsilon is untouched.
_convex_hull2d returns to direct points[index] indexing. The /Od build
(0x6b9250) reads the parameter array at every site ([eax+edx*8+4]),
with no pointer locals. It uses realcmp at the two degeneracy tests.
The function is now strict exact: 784 padded / 770 meaningful bytes,
25 relocations, normalized sha256
49124afa1d48d20fe6b36cd5c98861de7d27d9ec0109cf7d8dba8812c5464e77. With
the plain fabs(...) < _real_epsilon spelling it is not exact, so the
genuine macro is load-bearing. No new view cast, no new helper
definitions (nothing to link). _convex_polygon2d_clip_to_plane is not
pursued.
The now-stale _convex_hull2d park is retired with
tools.campaign.unpark --write (1 removed, 102 retained).
Verification: full ninja; all 273 real_math.h consumers rebuilt with
no C4005/C4013; stable diff vs frozen 8,245-function baseline
+2 (_collision_debug_render 4,192, _convex_hull2d 784 padded) and 0
regressions; parks 102/0/0; admission audit 13/0/7/0; fake-match scan
unchanged on all six files; python -m pytest -q tools 1154 passed;
git diff --check clean. objdiff 3.3.1 as canonical.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Reviewed reconstructions, each strict exact in its whole-TU gate with
zero inherited losses, guard passing and no new owners:
- rasterizer_xbox_screen_effect (13/13): complete per-arm shader setups,
load-before-call locals, January assert texts, PIN clamp; screen_flash
projection spelling and the defined inverse-pixel default arm
- hs_compile: _hs_parse_begin (per-branch result type; January's extra
sprintf name argument kept with a BUG comment), _hs_parse_cond_recursive
(single exit; January's always-true negation test kept with a BUG
comment, byte-proven and recorded in HCEA)
- geometry: definitions in January object order (assert lines ascend),
duplicate prototype removed, _get_edge_vertex single exit
- render_cameras: view_to_screen and build_frustum_bounds simplifications
- sound_manager: _sound_dispose_from_old_map loop-exit flag
Rejected in review: _encounter_test_rule (redundant default stores),
_render_camera_mirror (point_from_line3d COMDAT), _sound_set_definition_end
(prototype contradicting its definition).
Stable diff vs 9062b1e96: 0 regressions; parks 255 -> 250.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Wave w2 landing, adversarially verified. park reopens: _build_torus, _convex_hull3d_begin, _geosphere_new. Requires in-place config/symbols.json linkage/label lines (included in this commit); full ninja build and per-function stable_verdicts sweep: 0 regressions. symbols.json: insert the static label _geosphere_primitive_triangles at 2597632 (the source-owned static short const table that follows _geosphere_primitive_vertices). 3 park(s) removed.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
calculate_vertex private parameter order proven by the frame; get_edge_vertex park re-measured for the call site (evidence appended). convex_hull2d_perimeter and build_torus stay parked (steering rejected). 3 park(s) removed. Adversarially verified (wave D park re-investigation); full build of the combined wave D set: 0 regressions, parks 402/0/0.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>