objects.h: both bounding-sphere inline assertions report OBJECTS_H_FILE, which
defaults to January's relative "..\objects\objects.h". object_lights defines the
absolute spelling first, as January's string census shows. action_vehicle loses
its NODUP hand copy of object_get_bounding_sphere, so the header inline is the only
definition. render_objects' lighting_storage becomes the static local of
object_get_cached_render_lighting (symbols.json).
path.h: the opaque __unknown140A0[0x5C] span is HCEX's `struct path_result
result`, and path.c stores through the field instead of a punning cast.
Consumer sweep (full ninja, objdiff 3.3.1): stable diff shows 0 regressions and no
moved rows beyond the batch-1/Layer-2 gains. Parks 93/0/0, admission 15/0/7/0,
pytest 1157 passed.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
cachebeta.pdb publics show 31 objects.obj symbols were file-static in
January, and no other January object references any of them. Only
symbols.json and our source disagreed with January.
- 29 functions were already static in our source; their symbols.json
entries gain "static": true.
- object_memory_release_procs becomes static.
- object_update becomes static, and its public prototype leaves the
shared objects.h. It is defined before every use in objects.c.
objects now matches January in all 225 symbols, all 121 functions stay
strict exact, and its 1,530-byte .data section is identical. It is
still held: five candidate-only helper COMDATs conflict with
hand-written NODUP providers (path_obstacles, action_charge,
player_control, bored_camera). It also emits the three stock D3D SDK
tables that keep rasterizer_xbox_profile held. No
semantic_data_matches entry, no credit.
Verification: full ninja (the objects.h edit rebuilt its 92
consumers); stable diff vs frozen 8,245-function baseline 0 gained /
0 regressions; parks 103/0/0; fake-match scan 0 -> 0; pytest 1154
passed; git diff --check clean.
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.
* wip objects.c work
* objects_disconnect_from_structure_bsp
* match more functions
* more objects work
* objects_update work
- 93.42% matching
* match matrix4x3_transform_point
* more objects work
- fix duplicate symbol name at 1870800
* match object_choose_random_change_colors
* match object_update
* objects_garbage_collection work
* match object_set_position
* more object work
* match objects_update
* more object work
* match object_select_random_region_permutations_by_variant
* objects_in_sphere work
99.90% match
* object name list calls
* match objects_in_sphere
* misc matches
* match structure_bsp_definitions object
* match objects_in_clusters_by_indices
* more object work
* match `edit_text_handle_key`
* mark edit_text as matching
* misc changes
- match get_next_character
- match data section in objects.c
* object_export_function_values work
* match object_compute_function_values
* match object_get_orientation
* added functions and adjust formatting
* fix profile macros
* formatting changes
* more formatting
* more formatting
---------
Co-authored-by: punpckhdq <121350336+punpckhdq@users.noreply.github.com>