Per-function transplant of historical and worktree donor bodies into the
current tree (whole-blob mining had rejected them for unrelated losses).
Each landing is the minimum hunk, strict exact in its whole-TU gate with
zero inherited losses, and reviewed for house rules and hard holds:
- helper spellings replace hand-expanded math (_device_frontfacing,
_point_in_triangle3d, _actor_look_valid_aim/look_vector)
- _pill_test_vector3d normalizes directly into the output normal
- natural control-flow/declaration forms reopen five parks
(_structure_cluster_mark/unmarked, __rasterizer_widget_draw_sprite2d,
_rasterizer_set_model_skinning, _ai_handle_editing)
- two byte-proven non-UB original bugs kept under the documented
original-bug policy with BUG comments (_ai_handle_editing unscaled
csmemmove counts, _ai_scripting_follow_target_ai repeated name)
Stable diff vs 9062b1e96: +11 functions, 0 regressions; parks 268 -> 263.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Wave n1 of the next-150K lane (fresh structural portfolio at ae10935da).
- structures _structure_render_detail_objects (+1136): reopened with the natural
array initializer, which the w2 verifier asked for when it rejected the
hand-written a[0]=0/memset expansion (R6).
- draw_string _bitmap_draw_character (+944).
- hud_sounds _hud_play_sound (+352): closed by removing the one-use index alias
and reading sound_indices directly (A5), NOT by the volatile/goto body that the
park record shows was deliberately replaced.
- bink_playback _bink_free_texture_cache (+96): the park premise was the repo's
own match_dassert wrapper; the user-supplied Bungie random_math.c spells the
same two sites vassert, and the tree is 874 match_vassert to 14 match_dassert.
- structures _structure_get_planar_fog: zero-credit remeasure. Adding the
discarded fog-plane lookup January provably executes (its 15th
_tag_block_get_element_with_size relocation at +0x16d) closes both structural
tags; 448/448 and 15/15, residual now one register-naming window.
Rejected by the verifiers and not landed: _bink_alloc@4 (exact only with an __asm
block in a pool allocator - house rule 10 allows asm only for evidenced
helper/math routines), the progress_bar _code_000d16d0 rename (standing hold),
and the _portal_hull_from_points remeasure. wind _wind_variance_get is HELD for an
owner ruling (see its ledger).
Full ninja, parks 274 active / 0 stale / 0 invalid, stable diff vs
scratch/opus5-next150-before.json: gained 4 / 2,528 padded, regressions 0; fake
scan 0 leads.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Wave w1 Batch B (adversarially verified): _leaf_map_build_portals_from_leaf is now resolved-address identical to January (480/17, objdiff 100%); the only strict difference is a csplit one-past-the-end relocation alias, so its park is re-measured and reclassified csplit-relocation-alias (validated by tools.parked_functions). Zero strict credit. Full ninja build and stable sweep: 0 regressions.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Wave w2 landing, adversarially verified. park reopens: _render_debug_detail_objects. Full ninja build and per-function stable_verdicts sweep: 0 regressions. 1 park(s) removed.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
planes_intersect_rectangle private ABI, single-exit mirror search, established child & LONG_MIN idiom; traverse_leaf park re-measured for the callee ABI (evidence appended). 8 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>
matrix_math.h and real_math_planes.h declare the genuine matrix_math.c / real_math.c signatures for their physics and collisions callers. Declaring either prototype in the broad real_math.h regressed decals::_decals_delete_permanent_from_cluster and draw_primitives::_rasterizer_dynamic_geometry_initialize and drifted four parks at any position (declaration count, bisected), so the precedent of narrow subsystem headers (bitmap_color_conversion.h, rasterizer_xbox_water.h) is followed. structure_fog_plane +0x00/+0x02 are the region index and the signed runtime material type January collision_test_vector reads; scenario.c renames are names only.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Retain 18 strict exact-function gains across Actions, Actor Combat, Decals, Game Engine, Object Lights, and Bipeds after removing donor bodies that regressed exact objects, emitted unowned code, or violated source-credibility rules. Name authenticated private symbols, move declarations to owner headers, record honest residual parks, and preserve units.obj at 189/189.
Reconstruct code_00180fa0 as the static cluster-first-data-reference
lookup used by cluster_partition_reconnect, disconnect and
get_first_datum. VC7 inlines all three call sites, reproducing the
previous literal expansions byte for byte, and still emits the
unreferenced COMDAT copy with its register convention
(cluster_index in SI, partition on the stack), matching the January
object exactly: 0x50 padded bytes and all 5 relocations.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>