Commit Graph
55 Commits
Author SHA1 Message Date
MrBruh 65a6bb7edd Grow the powerups' render spheres in a port file
The powerup bounds of #117 move from source/models/models.c to port/linux/game/powerup_render_bounds.c, called from scenario_tags_load beside the other tags-loaded hooks, so the game's models.c no longer takes <xtl.h> and D3D buffer locks. It uses square_root and a relative margin in place of sqrtf and nextafterf, which strict gnu89 does not declare, and the objects.h scale change is marked as the port's. tools/test_powerup_bounds.py is dropped: it redeclares the engine's types by hand and CI does not run it.

On bloodgulch the active camouflage's render radius grows from 0.1 to 0.23 and the overshield's from 0.1 to 0.21; no other equipment changes.
2026-10-08 14:15:15 +13:00
eltanschauung 2875b505fc Merge remote-tracking branch 'upstream/main' into resolve/pr117-2026-10-07
# Conflicts:
#	source/cache/cache_files.c
2026-10-07 02:09:33 -04:00
MrBruh d7efd3934a Validate map tags before loading 2026-10-07 12:01:09 +13:00
MrBruh 76addf661f Second hardening round 2026-10-07 00:01:28 +13:00
eltanschauung 201874d783 Derive conservative render spheres from rigid powerup meshes 2026-10-06 01:29:42 -04:00
Jonas Volman 6bfd956737 Reconcile approved Halo fidelity packets and bounded data credit
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.
2026-09-29 13:52:37 -07:00
Jonas Volman f3aadeab98 Reconcile five Halo functions and approved declaration batches
Integrate coherent B3, P2/K17 prerequisites, completed K1-K16 + S, and the independent profile/effects rulings. Five gains and two explicitly approved B3 debits: net +3 strict functions, +2770 meaningful/+2800 padded bytes (+2774 progress credit). No additional losses; Halo objects 394 to 396 and data unchanged.

Clean rebuild, identical 8252-row stable sweep, 68 valid parks, admission/provider checks, 467-unit warning comparison, unchanged fake scan, and 1318 tests passed. Preserve canonical helper recoveries and unrelated work. Full evidence and disclosures in docs/object_matching_logs/astra_five_function_reconciliation_20260928.md.
2026-09-28 23:17:10 -07:00
Jonas Volman 709bfc3a3c Reconcile approved frontier ownership and admission packets
Import only independently reviewed production changes. Preserve canonical physics and virtual-keyboard repairs; keep B3 and all unresolved holds out.

Record exactly four approved canary debits (6987 meaningful bytes), six Halo admissions and two revocations. Keep vendor ioinit/storage work separate. Full build, 8252-row sweep, 1318 tests, park/admission/fake audits and 621-object binding pass within approved debit bounds.

Do not publish donor research dumps or private assets. README and unrelated user research remain untouched. See frontier_publication_reconciliation_20260927.md for complete evidence limits and accounting.
2026-09-27 17:12:48 -07:00
Jonas Volman f6d00a8c1d Reconcile Claude fifty-object lane with canonical
Merge verified source, data and owner corrections from 4e84c212. Resolve overlapping HS/path symbols against canonical, retain the dynavobgeom ownership rejection, document Layer 2/P7 source-shape decisions, and preserve held research. Verified 14 exact functions, 17 new Halo objects, zero regressions under objdiff 3.3.1.
2026-09-24 07:20:01 -07:00
Jonas VolmanandClaude Opus 5.5 b9a8d587a0 Batch 3: admit twelve objects; four exact functions; verified storage and data fixes
Objects admitted (Halo 363 -> 375), each with an independent adversarial review:
units (first-party names incl. the reviewer-corrected unit_vectors_are_valid, 49
static flags, '$'-defect data entry), collision_debug (/Od helper calls),
render_objects (b807f9f6 provider packet), editor_flying_camera
(_editor_camera_set_position_and_roll 432, storage + grouped entry re-pin),
rasterizer_xbox_shadows (shadow_model_draw 688), cache_files_windows
(open_cache_files 752), light_volumes (light_volume_render 912, reviewer-amended
/Od declaration order), actor_firing_position, path, biped_limp_noodle (HCEX file
statics), leaf_map and model_animations (/Od helper calls replace hand expansions).

Zero-credit/data: path_structure_bsp HCEX tables (+200 data), hud_nav_points
storage, first_person_weapons patch A (park re-baselined).

Gate (full ninja, objdiff 3.3.1): stable diff +4 strict / 2,784 padded, 0
regressions; parks 89/0/0; admission 11/0/5/0; fake scan 26 (new lead is the
/Od-attested empty then-arm in the still-parked fpw update); pytest 1157 passed;
diff --check clean. Ledger: docs/object_matching_logs/claude_fifty_objects_20260925.md
(adds the Layer 2 owner-ruling disclosure, tallies and held items).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 23:53:28 -07:00
Jonas Volman a595bbc2b7 models: restore exact BSS default ownership 2026-09-23 18:59:38 -07:00
Jonas VolmanandClaude Opus 5.5 2535f91a79 Close five objects after correcting January symbol ownership
Each of actor_types, recorded_animation_definitions,
model_animation_definitions, sound_classes and object_types had strict
exact functions and a .data section byte-identical to January's: same
payload, flags and resolved relocation destinations. But each also had
private symbols whose storage disagreed with January. cachebeta.pdb
publics are the independent truth: none of the corrected symbols is
public, and no other January object references them.

- actor_types: the address-named accessor and table become
  actor_type_definition_get and actor_type_definitions, both static.
  January's own assert strings name the table, and the Halo CE atlas
  names the accessor at the same 0x140-byte span.
- recorded_animation_definitions: byte_swap_recording is static.
- model_animation_definitions: the seven *_animation_list_entries
  arrays are static beside their public animation_list wrappers.
- sound_classes: _code_001b84c0 is sound_class_datum_get (static). The
  atlas mapping is anchored on six exact sound_classes names.
- object_types: bss_00456e98 is processed_bsp_flags (static), the
  object's only file static in HCEX.pdb.
- items: drop the hand-written NODUP valid_real_matrix4x3 and
  valid_real_vector3d_axes3 copies (bodies identical to real_math.h).
  items genuinely uses them, and all 18 items rows are unchanged. This
  lets object_types' candidate-only copies pair-link. All eight
  object_types helper COMDATs are byte-identical to January's selected
  copies.

Five pinned entries in config/semantic_data_matches.json.
- Canonical scorer (objdiff 3.3.1): credits 6,656 data bytes and clears
  5 more revoked admission rows (9 -> 4).
- Pinned objdiff 3.6.0: already fully matched (verified no-ops).
- No code bytes, no config status change.

Verification: full ninja; stable diff vs frozen 8,245-function
baseline 0 gained / 0 regressions; parks 103/0/0; whole-object audit
PASS, PDB-storage 0 disagreements and provider links PASS for all five;
fake-match scan unchanged (0 -> 0) on all six changed sources; pytest
1154 passed; git diff --check clean.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-23 14:42:52 -07:00
Jonas Volman 4f4c85021d Reconcile Lane C with canonical house-rule audit
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.
2026-09-22 23:12:40 -07:00
Jonas VolmanandClaude Opus 5 06e5f0e5fa Wave 15: six functions strict exact (hs, animations, stimulus, caches)
- _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>
2026-09-16 20:44:59 -07:00
Jonas VolmanandClaude Opus 5 071c5c045c model_animations: reopen keyframe getters and overlay continuous appliers exact
January reads keyframe frame indices with movzx (word stream), refuting the parked signed-short premise; keyframe declaration/assignment order follows January load order; uncompressed overlay paths read-then-advance per stream, closing the structural 12-byte frame gap. Adversarially verified. 5 parks removed; +5 exact (4,288 padded). Full build of the combined reopen set: 0 regressions, parks 451/0/0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 21:26:07 -07:00
Jonas VolmanandClaude Opus 5 5a95868519 Widen animation_update_internal render/game-state parameter to long
January reads and forwards parameter 1 as a dword; the header owner and definition now agree. Full build: +1 exact (304 padded), 0 regressions, parks clean.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 19:21:06 -07:00
Jonas VolmanandClaude Opus 5 8c1cd4f91d model_animations: write animation_update_internal (fuzzy pending parameter width)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-13 19:19:55 -07:00
Jonas Volman eb61c0f746 Reconcile seventh 10K exact source batch 2026-09-12 17:23:46 -07:00
Jonas Volman c7db854bd0 Reconstruct model animation large functions 2026-09-09 12:56:33 -07:00
Jonas Volman 6f8644c0cc Finalize second 10K reconciliation batch 2026-09-09 10:59:29 -07:00
Jonas Volman f0303ea9c7 Tighten model animation ownership boundary 2026-09-09 10:08:41 -07:00
Jonas Volman 4f7682ad9a Reconcile coherent model animation packet 2026-09-09 10:03:29 -07:00
Jonas Volman 6d351b3578 Reconcile Opus first-person weapon reconstruction 2026-09-04 01:45:18 -07:00
Jonas Volman 77cee5677c Reconcile Fable models exact wave 2026-09-02 15:15:36 -07:00
Jonas Volman 0aafb4058d Snapshot Fable models wave for salvage 2026-09-02 15:15:32 -07:00
Jonas Volman 9f74e9937f Import 909 authenticated January and HCEA symbol names 2026-08-31 16:11:03 -07:00
Jonas Volman 777a30ba1d Place shared prototypes in owner headers 2026-08-30 23:58:08 -07:00
Jonas Volman b1709807eb Match model marker lookup 2026-08-28 14:39:34 -07:00
Jonas Volman 6b2294301a Recover model tangent matrix walk 2026-08-26 15:49:28 -07:00
Jonas Volman 79b1672813 Recover model node orientation interpolation 2026-08-26 15:43:06 -07:00
Jonas Volman c4e439d02a Recover seven exact runtime leaves 2026-08-20 17:36:31 -07:00
Jonas Volman a62abaacec Match animation permutation and orientation interpolation 2026-07-16 20:23:54 -07:00
Jonas Volman 170c4291df Match packed quaternion compression and damage index 2026-07-16 20:09:06 -07:00
Jonas Volman 114a677380 Match 8-byte quaternion compression 2026-07-16 20:04:00 -07:00
Jonas Volman 5f2b0aca1b Match model animation access hubs 2026-07-16 19:48:03 -07:00
Jonas Volman 348984648f Match animation root motion helpers 2026-07-16 19:42:12 -07:00
Jonas Volman 307afd5c69 Match packed quaternion decoders 2026-07-16 19:34:57 -07:00
Jonas Volman e74d2bdcaf Match model animation frame accessors 2026-07-16 19:28:26 -07:00
Jonas Volman 170ffb3454 Match renormalized quaternion decoding 2026-07-16 18:40:18 -07:00
Jonas Volman 62b3da6fa0 Verify model animation data layouts 2026-07-16 18:32:32 -07:00
Jonas Volman 6673b87ab6 Match default model node orientations 2026-07-16 17:42:46 -07:00
Jonas Volman 3c1698790e Match model inverse matrix and node lookup 2026-07-16 17:35:53 -07:00
Jonas Volman 73efb0750c Match unit inventory and scripting leaves 2026-07-16 13:57:03 -07:00
Jonas Volman cc7e2bb8c9 Recover model animation catalog data 2026-07-14 17:16:06 -07:00
Jonas Volman e688944f54 Declare model animation catalogs 2026-07-14 17:16:06 -07:00
Jonas Volman 89d62d6cd1 Match animation_list_get_string 2026-07-14 17:16:06 -07:00
Jonas Volman c8b2c3941e Match animation_get_frame_info 2026-07-14 17:16:06 -07:00
Jonas Volman 5b84cbab2e Match animation_get_frame_data 2026-07-14 17:16:06 -07:00
Jonas Volman 8c99655de2 Declare model animation definition accessors 2026-07-14 17:16:06 -07:00
Berthalamew bc6663de55 unit additions (#34)
- add unit functions and associated dependencies
2026-07-01 00:15:19 +01:00