mirror of
https://github.com/Cesarus85/ringfall-mjolnir-vr.git
synced 2026-10-17 13:00:25 +02:00
Header prerequisites: objects.h __FILE__ provider packet and path.h HCEX field
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>
This commit is contained in:
1 parent
931ed8dc2b
commit
b807f9f61d
7 files changed
+20
-28
No files matched your search
+1
-1
@@ -23248,7 +23248,7 @@
|
||||
{ "file_offset": 4951098, "flags": 0, "name": "_render_camera_debug_this_fucking_frustum" },
|
||||
{ "file_offset": 4951104, "flags": 0, "name": "_render_debug_globals", "static": true },
|
||||
{ "file_offset": 4980812, "flags": 0, "name": "_bss_004c004c" },
|
||||
{ "file_offset": 4980856, "flags": 0, "name": "_lighting_storage" },
|
||||
{ "file_offset": 4980856, "flags": 0, "name": "?lighting_storage@?1??object_get_cached_render_lighting@@9@9", "static": true },
|
||||
{ "file_offset": 4980976, "flags": 0, "name": "_render_object_globals", "static": true },
|
||||
{ "file_offset": 4982004, "flags": 0, "name": "_debug_inactive_objects" },
|
||||
{ "file_offset": 4982005, "flags": 0, "name": "_reported_rendered_object_overflow", "static": true },
|
||||
|
||||
@@ -70,11 +70,7 @@ symbols in this file:
|
||||
|
||||
#include "cseries.h"
|
||||
#include "actions.h"
|
||||
|
||||
#define object_get_bounding_sphere object_get_bounding_sphere_inline
|
||||
#include "actors.h"
|
||||
#undef object_get_bounding_sphere
|
||||
|
||||
#include "actor_definitions.h"
|
||||
#include "ai_debug.h"
|
||||
#include "props.h"
|
||||
@@ -157,22 +153,6 @@ boolean unit_get_seat_entrance_point(
|
||||
|
||||
/* ---------- public code */
|
||||
|
||||
void object_get_bounding_sphere(
|
||||
long object_index,
|
||||
real_point3d *center,
|
||||
real *radius)
|
||||
{
|
||||
struct object_datum *object = object_get(object_index);
|
||||
|
||||
match_assert("..\\objects\\objects.h", 535, center);
|
||||
match_assert("..\\objects\\objects.h", 536, radius);
|
||||
|
||||
*center = object->object.bounding_sphere_center;
|
||||
*radius = object->object.bounding_sphere_radius;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
void action_vehicle_begin(
|
||||
long actor_index)
|
||||
{
|
||||
|
||||
+1
-1
@@ -1043,7 +1043,7 @@ boolean path_state_build_path(
|
||||
|
||||
if (state->debug)
|
||||
{
|
||||
*(struct path_result *)state->debug->__unknown140A0 = *path;
|
||||
state->debug->result = *path;
|
||||
|
||||
if (state->debug->path_build_result != _path_build_result_success)
|
||||
{
|
||||
|
||||
+1
-1
@@ -264,7 +264,7 @@ struct path_debug_storage
|
||||
short path_traverse_result;
|
||||
short path_build_result;
|
||||
struct path_state path_state;
|
||||
char __unknown140A0[0x5C];
|
||||
struct path_result result;
|
||||
short raw_step_count;
|
||||
word pad_140FE;
|
||||
struct path_step raw_steps[64];
|
||||
|
||||
@@ -140,6 +140,10 @@ symbols in this file:
|
||||
|
||||
/* ---------- headers */
|
||||
|
||||
/* objects.h lies in this unit's own directory, so January's __FILE__ for it was the absolute
|
||||
path (see OBJECTS_H_FILE in objects.h) */
|
||||
#define OBJECTS_H_FILE "c:\\halo\\source\\objects\\objects.h"
|
||||
|
||||
#include "cseries/cseries.h"
|
||||
#include "cseries/errors.h"
|
||||
#include "cseries/profile.h"
|
||||
|
||||
@@ -188,6 +188,14 @@ enum
|
||||
#define object_get(index) ((struct object_datum*)object_get_and_verify_type(index, _object_mask_all))
|
||||
#define object_try_and_get(index) ((struct object_datum*)object_try_and_get_and_verify_type(index, _object_mask_all))
|
||||
|
||||
/* the inline assertions below report January's __FILE__ for this header, and January spelled it
|
||||
two ways: its string census has "..\objects\objects.h" defined by action_vehicle (and
|
||||
referenced by render_objects) and "c:\halo\source\objects\objects.h" defined by
|
||||
object_lights; a unit that needs the absolute spelling defines OBJECTS_H_FILE first */
|
||||
#ifndef OBJECTS_H_FILE
|
||||
#define OBJECTS_H_FILE "..\\objects\\objects.h"
|
||||
#endif
|
||||
|
||||
/* ---------- structures */
|
||||
|
||||
typedef void (*object_deleted_proc)(long);
|
||||
@@ -488,8 +496,8 @@ __inline void object_get_bounding_sphere(
|
||||
{
|
||||
struct object_datum *object = object_get(object_index);
|
||||
|
||||
match_assert("c:\\halo\\source\\objects\\objects.h", 535, center);
|
||||
match_assert("c:\\halo\\source\\objects\\objects.h", 536, radius);
|
||||
match_assert(OBJECTS_H_FILE, 535, center);
|
||||
match_assert(OBJECTS_H_FILE, 536, radius);
|
||||
|
||||
*center = object->object.bounding_sphere_center;
|
||||
*radius = object->object.bounding_sphere_radius;
|
||||
@@ -504,8 +512,8 @@ __inline void object_get_render_bounding_sphere(
|
||||
{
|
||||
struct object_datum *object = object_get(object_index);
|
||||
|
||||
match_assert("..\\objects\\objects.h", 551, center);
|
||||
match_assert("..\\objects\\objects.h", 552, radius);
|
||||
match_assert(OBJECTS_H_FILE, 551, center);
|
||||
match_assert(OBJECTS_H_FILE, 552, radius);
|
||||
|
||||
*center = object->object.bounding_sphere_center;
|
||||
*radius = object_definition_get(object->definition_index)->object.render_bounding_radius;
|
||||
|
||||
@@ -304,7 +304,6 @@ static struct profile_section render_object_shadows_section =
|
||||
|
||||
struct data_array *cached_object_render_states;
|
||||
|
||||
struct render_lighting lighting_storage = { 0 };
|
||||
static struct render_object_globals render_object_globals = { 0 };
|
||||
|
||||
boolean debug_inactive_objects = FALSE;
|
||||
@@ -356,6 +355,7 @@ struct render_lighting *object_get_cached_render_lighting(
|
||||
long object_index,
|
||||
real level_of_detail_pixels)
|
||||
{
|
||||
static struct render_lighting lighting_storage;
|
||||
long render_state_index = object_get_cached_render_state(
|
||||
object_index,
|
||||
level_of_detail_pixels);
|
||||
|
||||
Reference in new issue
Block a user