Files
Cesarus85--mjolnir-vr/source/structures/structures.h
T
Berthalamewandpunpckhdq eb93ce635e wip objects.c work (#12)
* 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>
2026-02-15 01:05:45 +00:00

72 lines
2.2 KiB
C

/*
STRUCTURES.H
header included in hcex build.
*/
#ifndef __STRUCTURES_H
#define __STRUCTURES_H
#pragma once
/* ---------- constants */
enum
{
MAXIMUM_COLLISION_MATERIALS_PER_STRUCTURE= 512,
MAXIMUM_SURFACE_REFERENCES_PER_STRUCTURE= 0x40000,
MAXIMUM_LIGHTMAPS_PER_STRUCTURE= 128,
MAXIMUM_MATERIALS_PER_STRUCTURE_LIGHTMAP= 2048,
MAXIMUM_SURFACES_PER_STRUCTURE_MATERIAL= 20000,
MAXIMUM_VERTICES_PER_STRUCTURE_MATERIAL= 64000,
MAXIMUM_CLUSTER_PORTALS_PER_CLUSTER= 128,
MAXIMUM_MIRRORS_PER_CLUSTER= 16,
MAXIMUM_SUBCLUSTERS_PER_CLUSTER= 4096,
MAXIMUM_SURFACES_PER_SUBCLUSTER= 128,
MAXIMUM_SURFACES_PER_CLUSTER= SHORT_MAX+1,
MAXIMUM_VERTICES_PER_MIRROR= 512,
MAXIMUM_TEMPORARY_CLUSTERS_PER_STRUCTURE= 8192,
MAXIMUM_CLUSTERS_PER_STRUCTURE= 512,
MAXIMUM_CLUSTER_DATA_SIZE= UNSIGNED_SHORT_MAX+1,
MAXIMUM_CLUSTER_PORTALS_PER_STRUCTURE= 512,
MAXIMUM_VERTICES_PER_CLUSTER_PORTAL= 128,
MAXIMUM_FOG_PLANES_PER_STRUCTURE= 32,
MAXIMUM_VERTICES_PER_STRUCTURE_FOG_PLANE= 4096,
MAXIMUM_FOG_REGIONS_PER_STRUCTURE= 32,
MAXIMUM_FOG_PALETTE_ENTRIES_PER_STRUCTURE= 32,
MAXIMUM_WEATHER_PALETTE_ENTRIES_PER_STRUCTURE= 32,
MAXIMUM_WEATHER_POLYHEDRA_PER_STRUCTURE= 32,
MAXIMUM_PLANES_PER_WEATHER_POLYHEDRON= 16,
MAXIMUM_BACKGROUND_SOUND_PALETTE_ENTRIES_PER_STRUCTURE= 64,
MAXIMUM_SOUND_ENVIRONMENT_PALETTE_ENTRIES_PER_STRUCTURE= 64,
MAXIMUM_MARKERS_PER_STRUCTURE= 1024,
MAXIMUM_LENS_FLARES_PER_STRUCTURE= 256,
MAXIMUM_LENS_FLARE_MARKERS_PER_STRUCTURE= UNSIGNED_SHORT_MAX+1,
MAXIMUM_DECALS_PER_STRUCTURE= 6144,
};
/* ---------- macros */
/* ---------- structures */
/* ---------- prototypes/STRUCTURES.C */
short structure_clusters_in_sphere(short cluster_index, real_point3d const *position, real radius, short maximum_count, short *intersected_indices);
/* ---------- prototypes/STRUCTURE_DETAIL_OBJECTS.C */
void structure_detail_objects_flush(void);
/* ---------- prototypes/STRUCTURE_LENS_FLARES.C */
long cluster_index_from_point(struct structure_bsp const *structure_bsp, union real_point3d const *point);
/* ---------- prototypes/STRUCTURE_RUNTIME_DECALS.C */
void structure_decals_update(unsigned long *old_combined_pvs, unsigned long *new_combined_pvs, short cluster_count);
/* ---------- globals */
/* ---------- public code */
#endif // __STRUCTURES_H