Files
Cesarus85--ringfall-mjolnir-vr/source/models/models.h
T
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

95 lines
2.3 KiB
C

/*
MODELS.H
header included in hcex build.
*/
#ifndef __MODELS_H
#define __MODELS_H
#pragma once
/* ---------- constants */
/* ---------- macros */
/* ---------- structures */
struct model;
struct model_geometry_part;
struct object_marker;
struct real_matrix4x3;
struct real_orientation;
struct render_lighting;
struct render_model_effect;
union real_point3d;
union real_rgb_color;
union real_vector3d;
/* ---------- prototypes/MODELS.C */
void model_interpolate_node_orientations(
struct model const *model,
struct real_orientation *original_node_orientations,
struct real_orientation *target_node_orientations,
short frame_index,
short frame_count);
void model_get_node_orientations(
struct model const *model,
struct real_orientation *node_orientations);
void model_get_node_matrices(
struct model const *model,
struct real_matrix4x3 *node_matrices,
union real_point3d const *origin,
union real_vector3d const *forward,
union real_vector3d const *up);
void model_node_matrices_from_orientations(
struct model const *model,
struct real_matrix4x3 *node_matrices,
struct real_orientation const *node_orientations,
union real_point3d const *origin,
union real_vector3d const *forward,
union real_vector3d const *up);
short model_find_marker(
long model_index,
char const *name);
struct real_matrix4x3 *model_get_default_inverse_matrix(
struct model *model,
short node_index);
short model_find_node(
long model_index,
char const *name);
short model_get_marker_by_name(
long model_index,
char const *name,
byte const *region_permutations,
short const *node_remapping_table,
short node_count,
struct real_matrix4x3 const *node_matrices,
boolean mirrored_flag,
struct object_marker *markers,
short maximum_marker_count);
void model_build_tangent_matrices(
struct model *model);
void render_model(
long model_index,
real level_of_detail_pixels,
struct real_matrix4x3 const *node_matrices,
char const *region_permutation_indices,
union real_rgb_color const *change_colors,
real const *function_values,
struct render_lighting const *lighting,
union real_point3d const *centroid,
real radius,
struct render_model_effect const *model_effect,
long unique_identifier,
short forced_shader_permutation_index,
unsigned long flags);
boolean model_data_report_once(
void const *data);
/* ---------- globals */
/* ---------- public code */
#endif // __MODELS_H