Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef halo_definitions
- #define halo_definitions
- #include "halo_bitfields.h"
- #include "halo_enums.h"
- #pragma mark - Notes -
- // Numbers are all signed unless they are used as lengths (such as string lengths), data offsets and addresses, signatures, padding/alignment byte storage, checksums, or other calculated non-negative numbers. Other numbers, if Guerilla displays it to the user, are signed numbers.
- // In guerilla.txt, strings ending in "*" are calculated values. An example is the physics strings, where there are two entries for mass: "mass" and "mass*". "#" separates window interface text labels from tooltip comments.
- // I'm grouping similar groups of information as structs. I'm also grouping sections as structs. Blocks are of course specified as structs.
- /* UPDATE: THIS IS A WASTE OF TIME, WILL DESIST EXCEPT FOR COMMON STRUCTS. (Otherwise, I only did this approach with actr.) Sections that have padding I grouped into structs of a kind of 4-byte alignment. For example, I split some padding sections to make sectional structs have even multiples of four bytes, like this actr tag class:
- 24 perception
- 2 padding
- 8 movement
- 1 padding
- 113 looking
- 10 unopposable
- 2 padding
- 7 panic
- (1)
- (6)7 padding
- 26 defensive
- 1 padding
- 7 pursuit
- 8 padding
- 13 berserk
- 3 padding
- 6 firing positions
- 10 padding
- 64 communication
- For example, that panic section gets 1 group of four bytes from the 7 groups of four bytes of padding that follows it, and the defensive section following that padding gets the other 6 groups of four bytes, resulting in 8 for panic and 32 for defensive. */
- // Approach: First, go through retribution.h and copy/paste structs here. Then, go through the pasted structs and revise them using the basic structs. Then, use work from infernal to complete the structs I did not paste, determining which structs are common. Then, further optimize common sections into common structs and divide structs into struct sections.
- // I found that when there are bitmask flags whose byte sizes I tested using Guerilla, sometimes they are actually interpreted as larger, evident by the fact that prefixing padding is not interpreted as such during map cache file compilation, when endian order is swapped from big to little. An example is struct halo_effe_events_parts_flags_bf, which in characters\cyborg\localized damage.effect appears as 0x00 (padding untouched by Guerilla) and 0x01 (8-bit flags) but in bloodgulch.map, both bytes are swapped as 0x0100 instead of recognizing that first byte as padding like Guerilla apparently does. Instead of making a different struct, I will simply account for the individual discrepancies in functionality and otherwise interpret unused padding bytes as they are interpreted when used.
- #pragma mark - Functional -
- //struct halo_data
- //{
- // size_t size;
- // char* path;
- // void* bytes_data;
- // void* bytes_struct;
- // enum halo_file_type file_type;
- // enum halo_data_type data_type;
- // enum halo_data_location_format location_format;
- // enum halo_data_chew_state chew_state;
- // bool locked;
- //};
- //struct halo_data
- //{
- // size_t size;
- // void* bytes;
- //};
- //struct halo_data_cycle
- //{
- // struct halo_data original;
- // struct halo_data processed;
- // bool read_ok;
- // bool write_ok;
- // bool chew_ok;
- //};
- #pragma mark - Basics -
- struct halo_ranged_int16_t
- {
- int16_t from;
- int16_t to;
- };
- struct halo_ranged_float
- {
- float from;
- float to;
- };
- struct halo_colorbyte_rgb
- {
- uint8_t pad_1[1];
- uint8_t red;
- uint8_t green;
- uint8_t blue;
- };
- struct halo_colorbyte_argb
- {
- uint8_t alpha;
- uint8_t red;
- uint8_t green;
- uint8_t blue;
- };
- struct halo_colorfloat_rgb // fractional
- {
- float red;
- float green;
- float blue;
- };
- struct halo_ranged_colorfloat_rgb
- {
- struct halo_colorfloat_rgb lower_bound;
- struct halo_colorfloat_rgb upper_bound;
- };
- struct halo_colorfloat_argb // fractional
- {
- float alpha;
- float red;
- float green;
- float blue;
- };
- struct halo_ranged_colorfloat_argb
- {
- struct halo_colorfloat_argb lower_bound;
- struct halo_colorfloat_argb upper_bound;
- };
- struct halo_point_2d_int16_t
- {
- int16_t x;
- int16_t y;
- };
- struct halo_point_2d
- {
- float x;
- float y;
- };
- struct halo_point_3d_int16_t // for prospective tests with halo_sbsp_r3_nodes
- {
- int16_t x;
- int16_t y;
- int16_t z;
- };
- struct halo_point_3d
- {
- float x;
- float y;
- float z;
- };
- struct halo_angle_2d
- {
- float yaw;
- float pitch;
- };
- struct halo_angle_3d
- {
- float yaw;
- float pitch;
- float roll;
- };
- struct halo_angle_delta
- {
- float left;
- float right;
- };
- struct halo_plane_2d
- {
- float i;
- float j;
- float d;
- };
- struct halo_plane_3d
- {
- float i;
- float j;
- float k;
- float d;
- };
- struct halo_quaternion
- {
- float i;
- float j;
- float k;
- float w;
- };
- struct halo_vector_2d_ij
- {
- float i;
- float j;
- };
- struct halo_vector_2d_ik
- {
- float i;
- float k;
- };
- struct halo_vector_3d_component
- {
- int8_t i;
- int8_t j;
- int8_t k;
- };
- struct halo_vector_3d
- {
- float i;
- float j;
- float k;
- };
- struct halo_texture_map_axes
- {
- float u;
- float v;
- };
- struct halo_texture_map_coordinate_axes
- {
- int16_t u;
- int16_t v;
- };
- struct halo_rectangle_2d
- {
- int16_t top;
- int16_t left;
- int16_t bottom;
- int16_t right;
- };
- struct halo_offset_rectangle_2d
- {
- int16_t top;
- int16_t bottom;
- int16_t left;
- int16_t right;
- };
- struct halo_offset_rectangle_2d_float
- {
- float top;
- float bottom;
- float left;
- float right;
- };
- struct halo_area_int16_t
- {
- int16_t width;
- int16_t height;
- };
- struct halo_area_float
- {
- float width;
- float height;
- };
- struct halo_cube
- {
- struct halo_ranged_float x;
- struct halo_ranged_float y;
- struct halo_ranged_float z;
- };
- struct halo_sphere
- {
- struct halo_point_3d centroid;
- float radius;
- };
- struct halo_dependency
- {
- char tag_class[4];
- uint32_t tpns_location;
- uint32_t tpns_length;
- int16_t tag_index_id;
- int16_t tag_index_id_inverse;
- char *tpns; // usually disjunct
- struct halo_tag_classes_bf supports; // not in file
- };
- struct halo_array
- {
- uint32_t count;
- uint32_t location;
- uint32_t type_le;
- uint32_t count_max; // not in file
- uint32_t type_default; // not in file
- void *cells; // disjunct
- };
- struct halo_data
- {
- uint32_t length;
- uint8_t pad_1[4];
- uint32_t offset;
- uint32_t *location;
- uint32_t type;
- uint32_t type_default; // not in file
- uint32_t length_max; // not in file
- void *bytes; // disjunct; unparsed bytes
- };
- #pragma mark - Common -
- struct halo_periodic_functions
- {
- enum halo_function_behaviors function_list;
- uint8_t pad_1[2];
- float period;
- float phase;
- };
- struct halo_render_model_3d_node_link_hierarchy_indices
- {
- int16_t next_sibling_node_index_sel;
- int16_t first_child_node_index_sel;
- int16_t parent_node_index_sel;
- };
- struct halo_render_model_3d_node_identity
- {
- char name[32];
- struct halo_render_model_3d_node_link_hierarchy_indices hierarchy;
- uint8_t pad_1[2];
- };
- struct halo_collision_model_3d_node_link_hierarchy_indices
- {
- int16_t parent_node_sel;
- int16_t next_sibling_node_sel;
- int16_t first_child_node_sel;
- };
- struct halo_collision_model_3d_node_identity
- {
- char name[32];
- int16_t region_sel;
- struct halo_collision_model_3d_node_link_hierarchy_indices hierarchy;
- };
- struct halo_collision_bsp
- {
- struct halo_array r1_bsp3d_nodes; // maximum of 131072 cells 0x504DA100
- struct halo_array r2_planes; // maximum of 65536 cells 0x944DA100
- struct halo_array r3_leaves; // maximum of 65536 cells 0xFC4DA100
- struct halo_array r4_bsp2d_references; // maximum of 131072 cells 0xA84EA100
- struct halo_array r5_bsp2d_nodes; // maximum of 65535 0x584EA100
- struct halo_array r6_surfaces; // maximum of 131072 cells 0x384FA100
- struct halo_array r7_edges; // maximum of 262144 cells 0xBC4FA100
- struct halo_array r8_vertices; // maximum of 131072 cells 0x0C50A100
- };
- struct halo_collision_bsp_bsp3d_nodes
- {
- int32_t plane;
- int32_t back_child;
- int32_t front_child;
- };
- struct halo_collision_bsp_planes
- {
- struct halo_plane_3d plane;
- };
- struct halo_collision_bsp_leaves
- {
- uint8_t pad_1[1];
- struct halo_bsp_leaf_flags_bf flags_bf;
- int16_t bsp2d_reference_count;
- int32_t first_bsp2d_reference;
- };
- struct halo_collision_bsp_bsp2d_references
- {
- int32_t plane;
- int32_t bsp2d_node;
- };
- struct halo_collision_bsp_bsp2d_nodes
- {
- struct halo_plane_2d plane;
- int32_t left_child;
- int32_t right_child;
- };
- struct halo_collision_bsp_surfaces
- {
- int32_t plane;
- int32_t first_edge;
- struct halo_bsp_surface_flags_bf flags_bf;
- int8_t breakable_surface;
- int16_t material; // this is supposed to be set above -1, since every surface must be assigned a material
- };
- struct halo_collision_bsp_edges
- {
- int32_t start_vertex;
- int32_t end_vertex;
- int32_t forward_edge;
- int32_t reverse_edge;
- int32_t left_surface;
- int32_t right_surface;
- };
- struct halo_collision_bsp_vertices
- {
- struct halo_point_3d point;
- int32_t first_edge;
- };
- struct halo_animation_durations
- {
- float transition_time;
- float acceleration_time;
- };
- struct halo_animation_3d_screen_frame_movements
- {
- float right_yaw_per_frame_rad;
- float left_yaw_per_frame_rad;
- int16_t right_frame_count;
- int16_t left_frame_count;
- float down_pitch_per_frame_rad;
- float up_pitch_per_frame_rad;
- int16_t down_pitch_frame_count;
- int16_t up_pitch_frame_count;
- };
- struct halo_2d_texture_animation_movement_translation
- {
- enum halo_function_out_channels source_list;
- enum halo_function_behaviors function_list;
- float period;
- float phase;
- float scale;
- };
- struct halo_2d_texture_animation_movement_rotation
- {
- struct halo_2d_texture_animation_movement_translation translation;
- struct halo_point_2d center;
- };
- struct halo_2d_texture_animation
- {
- struct halo_2d_texture_animation_movement_translation u_animation;
- struct halo_2d_texture_animation_movement_translation v_animation;
- struct halo_2d_texture_animation_movement_rotation rotation_animation;
- };
- struct halo_particle_shader_rendering
- {
- uint8_t pad_1[1];
- struct halo_particle_shader_flags_bf shader_flags_bf;
- enum halo_framebuffer_blend_functions framebuffer_blend_function_list;
- enum halo_framebuffer_fade_modes framebuffer_fade_mode_list;
- uint8_t pad_2[1];
- struct halo_map_flags_bf map_flags_bf;
- };
- struct halo_particle_shader_section_secondary_map
- {
- struct halo_dependency d1_bitmap; // bitm
- enum halo_multitexture_map_anchors anchor_list;
- uint8_t pad_1[1];
- struct halo_map_flags_bf flags_bf;
- struct halo_2d_texture_animation texture_animation;
- uint8_t pad_2[4];
- float zsprite_radius_scale;
- };
- struct halo_particle_shader
- {
- struct halo_particle_shader_rendering rendering;
- uint8_t pad_1[28];
- struct halo_particle_shader_section_secondary_map secondary_map;
- uint8_t pad_2[20];
- };
- struct halo_hud_screen_alignment_anchor
- {
- enum halo_positional_alignment_anchors anchor_list;
- uint8_t pad_1[34];
- };
- struct halo_hud_orientation
- {
- struct halo_point_2d_int16_t anchor_offset;
- struct halo_area_float scale;
- uint8_t pad_1[1];
- struct halo_hud_scaling_flags_bf scaling_flags_bf;
- uint8_t pad_2[22];
- };
- struct halo_hud_color_and_flash
- {
- struct halo_colorbyte_argb default_color;
- struct halo_colorbyte_argb flashing_color;
- float flash_period;
- float flash_delay;
- int16_t number_of_flashes;
- uint8_t pad_1[1];
- struct halo_hud_flash_flags_bf flash_flags_bf;
- float flash_length;
- struct halo_colorbyte_argb disabled_color;
- };
- struct halo_hud_screen_layer
- {
- struct halo_hud_orientation orientation;
- struct halo_dependency d1_interface_bitmap; // bitm
- struct halo_hud_color_and_flash color_and_flash;
- uint8_t pad_1[4];
- int16_t sequence_index;
- uint8_t pad_2[2];
- struct halo_array r_multitexture_overlay; // maximum of 30 cells 0xCC3A9C00
- uint8_t pad_3[4];
- };
- struct halo_hud_numbers
- {
- struct halo_hud_orientation orientation;
- struct halo_hud_color_and_flash color_and_flash;
- uint8_t pad_1[4];
- int8_t maximum_number_of_digits;
- struct halo_hud_numbers_flags_bf flags_bf;
- int8_t number_of_fractional_digits;
- };
- struct halo_hud_meter
- {
- struct halo_hud_orientation orientation;
- struct halo_dependency d1_meter_bitmap; // bitm
- struct halo_colorbyte_rgb color_at_meter_minimum;
- struct halo_colorbyte_rgb color_at_meter_maximum;
- struct halo_colorbyte_rgb flash_color;
- struct halo_colorbyte_argb empty_color;
- struct halo_hud_color_flags_bf flags_bf;
- int8_t minimum_meter_value;
- int16_t sequence_index;
- int8_t alpha_multiplier;
- int8_t alpha_bias;
- int16_t value_scale;
- float opacity;
- float translucency;
- struct halo_colorbyte_argb disabled_color;
- uint8_t pad_1[16];
- };
- struct halo_hud_messaging
- {
- int16_t sequence_index;
- int16_t width_offset;
- struct halo_point_2d_int16_t offset_from_reference_corner;
- struct halo_colorbyte_argb override_icon_color;
- int8_t frame_rate;
- struct halo_hud_messaging_flags_bf flags_bf;
- int16_t text_index;
- };
- struct halo_hud_section_messaging_information
- {
- struct halo_hud_messaging messaging;
- uint8_t pad_1[48];
- };
- struct halo_hud_section_screen_alignment
- {
- struct halo_hud_screen_alignment_anchor anchor;
- };
- struct halo_hud_section_background
- {
- struct halo_hud_screen_layer screen_layer;
- };
- struct halo_hud_section_foreground
- {
- struct halo_hud_screen_layer screen_layer;
- };
- struct halo_hud_section_numbers
- {
- struct halo_hud_numbers numbers;
- };
- struct halo_hud_anchored_screen_layer
- {
- struct halo_hud_section_screen_alignment screen_alignment;
- struct halo_hud_section_background background;
- };
- struct halo_multitexture_overlay_orientation
- {
- struct halo_point_2d primary;
- struct halo_point_2d secondary;
- struct halo_point_2d tertiary;
- };
- struct halo_multitexture_overlay_section_anchors
- {
- enum halo_relational_anchors primary_anchor_list;
- enum halo_relational_anchors secondary_anchor_list;
- enum halo_relational_anchors tertiary_anchor_list;
- };
- struct halo_multitexture_overlay_section_blending_function
- {
- enum halo_texture_blending_functions _0_to_1_blend_function_list;
- enum halo_texture_blending_functions _1_to_2_blend_function_list;
- };
- struct halo_multitexture_overlay_section_map_scales
- {
- struct halo_multitexture_overlay_orientation scale;
- };
- struct halo_multitexture_overlay_section_map_offsets
- {
- struct halo_multitexture_overlay_orientation offset;
- };
- struct halo_multitexture_overlay_section_map
- {
- struct halo_dependency d1_primary; // bitm
- struct halo_dependency d2_secondary; // bitm
- struct halo_dependency d3_tertiary; // bitm
- enum halo_texture_wrap_modes primary_wrap_mode_list;
- enum halo_texture_wrap_modes secondary_wrap_mode_list;
- enum halo_texture_wrap_modes tertiary_wrap_mode_list;
- };
- struct halo_multitexture_overlay
- {
- uint8_t pad_1[2];
- int16_t type;
- enum halo_framebuffer_blend_functions framebuffer_blend_function_list;
- uint8_t pad_2[34];
- struct halo_multitexture_overlay_section_anchors anchors;
- struct halo_multitexture_overlay_section_blending_function blending_function;
- uint8_t pad_3[2];
- struct halo_multitexture_overlay_section_map_scales map_scales;
- struct halo_multitexture_overlay_section_map_offsets map_offsets;
- struct halo_multitexture_overlay_section_map map;
- uint8_t pad_4[186];
- struct halo_array r1_effectors; // maximum of 30 cells 0x10399C00
- uint8_t pad_5[128];
- };
- struct halo_multitexture_overlay_effectors_section_source_destination
- {
- enum halo_effectors_destination_variable_types destination_type_list;
- enum halo_effectors_application_destinations destination_list;
- enum halo_effectors_sources source_list;
- uint8_t pad_1[2];
- };
- struct halo_multitexture_overlay_effectors_section_in_out_bounds
- {
- struct halo_ranged_float in_bounds;
- struct halo_ranged_float out_bounds;
- };
- struct halo_multitexture_overlay_effectors_section_tint_color_bounds
- {
- struct halo_ranged_colorfloat_rgb tint_color;
- };
- struct halo_multitexture_overlay_effectors_section_periodic_functions
- {
- struct halo_periodic_functions periodic_function;
- };
- struct halo_multitexture_overlay_r1_effectors
- {
- uint8_t pad_1[64];
- struct halo_multitexture_overlay_effectors_section_source_destination source_destination;
- struct halo_multitexture_overlay_effectors_section_in_out_bounds in_out_bounds;
- uint8_t pad_2[64];
- struct halo_multitexture_overlay_effectors_section_tint_color_bounds tint_color_bounds;
- struct halo_multitexture_overlay_effectors_section_periodic_functions periodic_functions;
- uint8_t pad_3[32];
- };
- struct halo_predicted_resources
- {
- enum halo_resource_types type_list;
- int16_t resource_index;
- int32_t tag_index; // might be 16-bit id and inverse similar to dependency
- };
- struct halo_shader_transparency
- {
- uint8_t numeric_counter_limit;
- struct halo_transparent_shader_flags_bf flags_bf;
- enum halo_shader_map_types first_map_type_list;
- enum halo_framebuffer_blend_functions framebuffer_blend_function_list;
- enum halo_framebuffer_fade_modes framebuffer_fade_mode_list;
- enum halo_function_out_channels framebuffer_fade_source_list;
- };
- struct halo_shader_section_lens_flares
- {
- float lens_flare_spacing;
- struct halo_dependency d1_lens_flare; // lens
- };
- struct halo_shader_r_extra_layers
- {
- struct halo_dependency d1_shader; // shdr senv soso schi scex sotr sgla smet spla swat
- };
- struct halo_shader_map_orientation
- {
- struct halo_texture_map_axes map_scale;
- struct halo_texture_map_axes map_offset;
- float map_rotation;
- float mipmap_bias_frac;
- struct halo_dependency d1_map; // bitm
- };
- struct halo_shader_section_2d_texture_animation
- {
- struct halo_2d_texture_animation texture_animation;
- };
- struct halo_shader_scaled_map
- {
- float scale;
- struct halo_dependency d1_map; // bitm
- };
- struct halo_shader_directional_light
- {
- float perpendicular_brightness_frac;
- struct halo_colorfloat_rgb perpendicular_tint_color;
- float parallel_brightness_frac;
- struct halo_colorfloat_rgb parallel_tint_color;
- };
- struct halo_chicago_shader_r_maps
- {
- uint8_t pad_1[1];
- struct halo_schi_map_flags_bf flags_bf;
- uint8_t pad_2[42];
- enum halo_stage_map_functions color_function_list;
- enum halo_stage_map_functions alpha_function_list;
- uint8_t pad_3[36];
- struct halo_shader_map_orientation shader_map_orientation;
- uint8_t pad_4[40];
- struct halo_shader_section_2d_texture_animation _2d_texture_animation;
- };
- struct halo_tag_header
- {
- uint8_t zeros_1[36];
- char tag_class[4];
- uint32_t crc32;
- uint32_t header_length;
- uint8_t zeros_2[8];
- uint16_t tag_version;
- uint16_t engine_version;
- char engine_class[4];
- };
- #pragma mark - Abstract Tag Classes -
- #pragma mark devi
- struct halo_devi
- {
- struct halo_devi_flags_bf flags_bf;
- struct halo_animation_durations power;
- struct halo_animation_durations position;
- struct halo_animation_durations depowered_position;
- enum halo_devi_channel_usages A_in_list;
- enum halo_devi_channel_usages B_in_list;
- enum halo_devi_channel_usages C_in_list;
- enum halo_devi_channel_usages D_in_list;
- struct halo_dependency d1_open_up; // effe snd!
- struct halo_dependency d2_close_down; // effe snd!
- struct halo_dependency d3_opened; // effe snd!
- struct halo_dependency d4_closed; // effe snd!
- struct halo_dependency d5_depowered; // effe snd!
- struct halo_dependency d6_repowered; // effe snd!
- float delay_time;
- uint8_t pad_1[8];
- struct halo_dependency d7_delay_effect; // effe snd!
- float automatic_activation_radius;
- uint8_t pad_2[112];
- };
- #pragma mark item
- struct halo_item_section_message_index
- {
- int16_t message_index;
- int16_t sort_order;
- float scale;
- int16_t hud_message_value_scale;
- uint8_t pad_1[18];
- enum halo_nones A_in_list;
- enum halo_nones B_in_list;
- enum halo_nones C_in_list;
- enum halo_nones D_in_list;
- };
- struct halo_item
- {
- struct halo_item_flags_bf flags_bf;
- struct halo_item_section_message_index message_index;
- uint8_t pad_1[164];
- struct halo_dependency d1_material_effects; // foot
- struct halo_dependency d2_collision_sound; // snd!
- uint8_t pad_2[120];
- struct halo_ranged_float detonation_delay;
- struct halo_dependency d3_detonating_effect; // effe
- struct halo_dependency d4_detonation_effect; // effe
- };
- #pragma mark obje
- struct halo_obje_section_export_to_functions
- {
- enum halo_obje_export_to_functions A_in_list;
- enum halo_obje_export_to_functions B_in_list;
- enum halo_obje_export_to_functions C_in_list;
- enum halo_obje_export_to_functions D_in_list;
- uint8_t pad_1[44];
- int16_t hud_text_message_index;
- int16_t forced_shader_permutation_index;
- };
- struct halo_obje
- {
- enum halo_obje_types obje_index_list_le;
- uint8_t pad_1[1];
- struct halo_obje_flags_bf flags_bf;
- float bounding_radius;
- struct halo_point_3d bounding_offset;
- struct halo_point_3d origin_offset;
- float acceleration_scale;
- uint8_t pad_2[4];
- struct halo_dependency d1_model; // mod2
- struct halo_dependency d2_animation_graph; // antr
- uint8_t pad_3[40];
- struct halo_dependency d3_collision_model; // coll
- struct halo_dependency d4_physics; // phys
- struct halo_dependency d5_modifier_shader; // shdr senv soso schi scex sotr sgla smet spla swat
- struct halo_dependency d6_creation_effect; // effe
- uint8_t pad_4[84];
- float render_bounding_radius;
- struct halo_obje_section_export_to_functions export_to_functions;
- struct halo_array r1_attachments; // maximum of 8 cells 0x08479D00
- struct halo_array r2_widgets; // maximum of 4 cells 0x7C479D00
- struct halo_array r3_functions; // maximum of 4 cells 0x50469D00
- struct halo_array r4_change_colors; // maximum of 4 cells 0x6C489D00
- struct halo_array r5_predicted_resources; // maximum of 1024 cells 0x105FA000
- };
- struct halo_obje_r1_attachments
- {
- struct halo_dependency d1_type; // cont effe ligh mgs2 pctl lsnd
- char marker[32];
- enum halo_function_out_channels primary_scale_list;
- enum halo_function_out_channels secondary_scale_list;
- enum halo_function_channel_types change_color_list;
- uint8_t pad_1[18];
- };
- struct halo_obje_r2_widgets
- {
- struct halo_dependency d1_reference; // ant! flag glw! mgs2 elec
- uint8_t pad_1[16];
- };
- struct halo_obje_r3_functions
- {
- struct halo_obje_functions_flags_bf flags_bf;
- float period;
- enum halo_function_in_out_channels scale_period_by_list;
- enum halo_function_behaviors function_list;
- enum halo_function_in_out_channels scale_function_by_list;
- enum halo_function_behaviors wobble_function_list;
- float wobble_period;
- float wobble_magnitude;
- float square_wave_threshold_frac;
- int16_t step_count;
- enum halo_function_mappings map_to_list;
- int16_t sawtooth_count;
- enum halo_function_in_out_channels add_list;
- enum halo_function_in_out_channels scale_result_by_list;
- enum halo_function_bounds bounds_mode_list;
- struct halo_ranged_float bounds_frac;
- uint8_t pad_1[6];
- int16_t turn_off_with_sel;
- float scale_by;
- uint8_t pad_2[268];
- char usage[32];
- };
- struct halo_obje_r4_change_colors
- {
- enum halo_function_in_out_channels darken_by_list;
- enum halo_function_in_out_channels scale_by_list;
- struct halo_color_interpolation_flags_bf scale_flags_bf;
- struct halo_ranged_colorfloat_rgb color;
- struct halo_array r1_permutations; // maximum of 8 cells 0xD8479D00
- };
- struct halo_obje_r4_r1_permutations
- {
- float weight_frac;
- struct halo_ranged_colorfloat_rgb color;
- };
- #pragma mark shdr
- struct halo_shdr_section_radiosity_properties
- {
- uint8_t pad_1[1];
- struct halo_shdr_radiosity_properties_flags_bf flags_bf;
- enum halo_detail_levels detail_level_list;
- float power;
- struct halo_colorfloat_rgb color_of_emitted_light;
- struct halo_colorfloat_rgb tint_color;
- };
- struct halo_shdr_section_physics_properties
- {
- uint8_t pad_1[2];
- enum halo_material_types material_type_list;
- };
- struct halo_shdr
- {
- struct halo_shdr_section_radiosity_properties radiosity_properties;
- struct halo_shdr_section_physics_properties physics_properties;
- enum halo_shdr_types shdr_index_list_le;
- uint8_t pad_1[2];
- };
- #pragma mark unit
- struct halo_unit_camera_identity
- {
- char camera_marker_name[32];
- char camera_submerged_marker_name[32];
- float pitch_auto_level_rad;
- struct halo_ranged_float pitch_range_rad;
- struct halo_array r1_camera_tracks; // maximum of 2 cells 0xFC579D00
- };
- struct halo_unit
- {
- struct halo_unit_flags_bf flags_bf;
- enum halo_teams default_team_list;
- enum halo_sound_volumes constant_sound_volume_list;
- float rider_damage_fraction;
- struct halo_dependency d1_integrated_light_toggle; // effe
- enum halo_unit_channel_functions A_in_list;
- enum halo_unit_channel_functions B_in_list;
- enum halo_unit_channel_functions C_in_list;
- enum halo_unit_channel_functions D_in_list;
- float camera_field_of_view_rad; // Guerilla always mis-reads this value as 0
- float camera_stiffness;
- struct halo_unit_camera_identity camera_identity;
- struct halo_vector_3d seat_acceleration_scale;
- uint8_t pad_1[12];
- float soft_ping_threshold;
- float soft_ping_interrupt_time;
- float hard_ping_threshold;
- float hard_ping_interrupt_time;
- float hard_death_threshold;
- float feign_death_threshold;
- float feign_death_time;
- float distance_of_evade_animation;
- float distance_of_dive_animation;
- uint8_t pad_2[4];
- float stunned_movement_threshold;
- float feign_death_chance;
- float feign_repeat_chance;
- struct halo_dependency d2_spawned_actor; // actv
- struct halo_ranged_int16_t spawned_actor_count;
- float spawned_velocity;
- float aiming_velocity_maximum_rad;
- float aiming_acceleration_maximum_rad;
- float casual_aiming_modifier_frac;
- float looking_velocity_maximum_rad;
- float looking_acceleration_maximum_rad;
- uint8_t pad_3[8];
- float ai_vehicle_radius;
- float ai_danger_radius;
- struct halo_dependency d3_melee_damage; // jpt!
- enum halo_motion_sensor_blip_sizes motion_sensor_blip_size_list;
- uint8_t pad_4[14];
- struct halo_array r2_new_hud_interfaces; // maximum of 2 cells 0xA4579D00
- struct halo_array r3_dialogue_variants; // maximum of 16 cells 0xA85A9D00
- float grenade_velocity;
- enum halo_grenade_types grenade_type_list;
- int16_t grenade_count; // note that players have int8_t in MP games
- uint8_t pad_5[4];
- struct halo_array r4_powered_seats; // maximum of 2 cells 0x345A9D00
- struct halo_array r5_weapons; // maximum of 4 cells 0xC4599D00
- struct halo_array r6_seats; // maximum of 16 cells 0x68599D00
- };
- struct halo_unit_r1_camera_tracks
- {
- struct halo_dependency d1_track; // trak
- uint8_t pad_1[12];
- };
- struct halo_unit_r_unit_hud_interface
- {
- struct halo_dependency d1_unit_hud_interface; // unhi
- uint8_t pad_1[32];
- };
- struct halo_unit_r3_dialogue_variants
- {
- int16_t variant_number;
- uint8_t pad_1[6];
- struct halo_dependency d1_dialogue; // udlg
- };
- struct halo_unit_r4_powered_seats
- {
- uint8_t pad_1[4];
- float driver_powerup_time;
- float driver_powerdown_time;
- uint8_t pad_2[56];
- };
- struct halo_unit_r5_weapons
- {
- struct halo_dependency d1_weapon; // weap
- uint8_t pad_1[20];
- };
- struct halo_unit_r6_seats
- {
- struct halo_unit_seats_flags_bf flags_bf;
- char label[32];
- char marker_name[32];
- uint8_t pad_1[32];
- struct halo_vector_3d acceleration_scale;
- uint8_t pad_2[12];
- float yaw_rate;
- float pitch_rate;
- struct halo_unit_camera_identity camera_identity;
- struct halo_array r2_unit_hud_interface; // maximum of 2 cells 0xA4579D00
- uint8_t pad_3[4];
- int16_t hud_text_message_index;
- uint8_t pad_4[2];
- float yaw_minimum_rad;
- float yaw_maximum_rad;
- struct halo_dependency d1_built_in_gunner; // actv
- uint8_t pad_5[20];
- };
- struct halo_unit_r6_r1_camera_tracks
- {
- struct halo_dependency d1_track; // trak
- uint8_t pad_1[12];
- };
- #pragma mark - Tag Classes -
- #pragma mark actr
- struct halo_actr_section_perception
- {
- float maximum_vision_distance;
- float central_vision_angle_rad;
- float maximum_vision_angle_rad;
- uint8_t pad_1[4];
- float peripheral_vision_angle_rad;
- float peripheral_distance;
- uint8_t pad_2[4];
- struct halo_vector_3d standing_gun_offset;
- struct halo_vector_3d crouching_gun_offset;
- float hearing_distance;
- float notice_projectile_chance;
- float notice_vehicle_chance;
- uint8_t pad_3[8];
- float combat_perception_time;
- float guard_perception_time;
- float non_combat_perception_time;
- // 3 calculated float values, 0 until compiled, compiled defaults:
- float unknown_1; // 0.0555556
- float unknown_2; // 0.0238095
- float unknown_3; // 0.0166667 or 0
- };
- struct halo_actr_section_movement
- {
- float dive_into_cover_chance;
- float emerge_from_cover_chance;
- float dive_from_grenade_chance;
- float path_finding_radius;
- float glass_ignorance_chance;
- float stationary_movement_distance;
- float free_flying_sidestep;
- float begin_moving_angle_rad;
- };
- struct halo_actr_section_looking
- {
- uint8_t pad_1[4];
- struct halo_angle_2d maximum_aiming_deviation;
- struct halo_angle_2d maximum_looking_deviation;
- struct halo_angle_delta non_combat_look_delta;
- struct halo_angle_delta combat_look_delta;
- struct halo_angle_2d idle_aiming_range;
- struct halo_angle_2d idle_looking_range;
- struct halo_ranged_float event_look_time_modifier;
- struct halo_ranged_float non_combat_idle_facing;
- struct halo_ranged_float non_combat_idle_aiming;
- struct halo_ranged_float non_combat_idle_looking;
- struct halo_ranged_float guard_idle_facing;
- struct halo_ranged_float guard_idle_aiming;
- struct halo_ranged_float guard_idle_looking;
- struct halo_ranged_float combat_idle_facing;
- struct halo_ranged_float combat_idle_aiming;
- struct halo_ranged_float combat_idle_looking;
- uint8_t pad_2[8];
- // calculated values, 0 until compiled: 3 unknown values of the same data (0xb33bbd2e) followed by 1 float value of 0.5
- uint32_t unknown_1;
- uint32_t unknown_2;
- uint32_t unknown_3;
- float unknown_4;
- struct halo_dependency d1_do_not_use; // weap
- uint8_t pad_3[268];
- struct halo_dependency d2_do_not_use; // proj
- };
- struct halo_actr_section_unopposable
- {
- enum halo_danger_level_triggers unreachable_danger_trigger_list;
- enum halo_danger_level_triggers vehicle_danger_trigger_list;
- enum halo_danger_level_triggers player_danger_trigger_list;
- uint8_t pad_1[2];
- struct halo_ranged_float danger_trigger_time;
- int16_t friends_killed_trigger;
- int16_t friends_retreating_trigger;
- uint8_t pad_2[12];
- struct halo_ranged_float retreat_time;
- uint8_t pad_3[8];
- };
- struct halo_actr_section_panic
- {
- struct halo_ranged_float cowering_time;
- float friend_killed_panic_chance;
- enum halo_actor_types leader_type_list;
- uint8_t pad_1[2];
- float leader_killed_panic_chance;
- float panic_damage_threshold;
- float surprise_distance;
- uint8_t pad_2[4];
- };
- struct halo_actr_section_defensive
- {
- uint8_t pad_1[24];
- struct halo_ranged_float hide_behind_cover_time;
- float hide_target_not_visible_time;
- float hide_shield_fraction;
- float attack_shield_fraction;
- float pursue_shield_fraction;
- uint8_t pad_2[16];
- enum halo_crouch_triggers defensive_crouch_type_list;
- uint8_t pad_3[2];
- float attacking_crouch_threshold;
- float defending_crouch_threshold;
- float minimum_stand_time;
- float minimum_crouch_time;
- float defending_hide_time_modifier;
- float attacking_evasion_threshold;
- float defending_evasion_threshold;
- float evasion_seek_cover_chance;
- float evasion_delay_time;
- float maximum_seek_cover_distance;
- float cover_damage_threshold;
- float stalking_discovery_time;
- float stalking_maximum_distance;
- float stationary_facing_angle_rad;
- float change_facing_stand_time;
- };
- struct halo_actr_section_pursuit
- {
- uint8_t pad_1[4];
- struct halo_ranged_float uncover_delay_time;
- struct halo_ranged_float target_search_time;
- struct halo_ranged_float pursuit_position_time;
- int16_t num_positions_coord;
- int16_t num_positions_normal;
- uint8_t pad_2[32];
- };
- struct halo_actr_section_berserk
- {
- float melee_attack_delay;
- float melee_fudge_factor;
- float melee_charge_time;
- struct halo_ranged_float melee_leap_range;
- float melee_leap_velocity;
- float melee_leap_chance;
- float melee_leap_ballistic;
- float berserk_damage_amount;
- float berserk_damage_threshold;
- float berserk_proximity;
- float suicide_sensing_distance;
- float berserk_grenade_chance;
- uint8_t pad_1[12];
- };
- struct halo_actr_section_firing_positions
- {
- struct halo_ranged_float guard_position_time;
- struct halo_ranged_float combat_position_time;
- float old_position_avoid_distance;
- float friend_avoid_distance;
- uint8_t pad_1[40];
- };
- struct halo_actr_section_communication
- {
- struct halo_ranged_float non_combat_idle_speech_time;
- struct halo_ranged_float combat_idle_speech_time;
- uint8_t pad_1[176];
- struct halo_dependency d1_do_not_use; // actr
- uint8_t pad_2[48];
- };
- struct halo_actr
- {
- struct halo_actr_flags_bf flags_bf;
- struct halo_actr_more_flags_bf more_flags_bf;
- uint8_t pad_1[12];
- enum halo_actor_types actor_type_list;
- uint8_t pad_2[2];
- struct halo_actr_section_perception perception;
- uint8_t pad_3[8];
- struct halo_actr_section_movement movement;
- struct halo_actr_section_looking looking;
- struct halo_actr_section_unopposable unopposable;
- struct halo_actr_section_panic panic;
- struct halo_actr_section_defensive defensive;
- struct halo_actr_section_pursuit pursuit;
- struct halo_actr_section_berserk berserk;
- struct halo_actr_section_firing_positions firing_positions;
- struct halo_actr_section_communication communication;
- // tpns 1-3
- };
- #pragma mark actv
- struct halo_actv_section_movement_switching
- {
- enum halo_movement_types movement_type_list;
- uint8_t pad_1[2];
- float initial_crouch_chance_frac;
- struct halo_ranged_float crouch_time;
- struct halo_ranged_float run_time;
- };
- struct halo_actv_section_ranged_combat
- {
- struct halo_dependency d1_weapon; // weap
- float maximum_firing_distance;
- float rate_of_fire;
- float projectile_error;
- struct halo_ranged_float fire_burst_delay_time;
- float new_target_firing_pattern_time;
- float surprise_delay_time;
- float surprise_fire_wildly_time;
- float death_fire_wildly_chance_frac;
- float death_fire_wildly_time;
- struct halo_ranged_float desired_combat_range;
- struct halo_vector_3d custom_stand_gun_offset;
- struct halo_vector_3d custom_crouch_gun_offset;
- float target_tracking_frac;
- float target_leading_frac;
- float weapon_damage_modifier;
- float damage_per_second;
- };
- struct halo_actv_section_burst_geometry
- {
- float burst_origin_radius;
- float burst_origin_angle_rad;
- struct halo_ranged_float burst_return_length;
- float burst_return_angle_rad;
- struct halo_ranged_float burst_duration;
- struct halo_ranged_float burst_separation;
- float burst_angular_velocity_rad;
- uint8_t pad_1[4];
- float special_damage_modifier_frac;
- float special_projectile_error_rad;
- };
- struct halo_actv_section_firing_patterns
- {
- float new_target_burst_duration;
- float new_target_burst_separation;
- float new_target_rate_of_fire;
- float new_target_projectile_error;
- uint8_t pad_1[8];
- float moving_burst_duration;
- float moving_burst_separation;
- float moving_rate_of_fire;
- float moving_projectile_error;
- uint8_t pad_2[8];
- float berserk_burst_duration;
- float berserk_burst_separation;
- float berserk_rate_of_fire;
- float berserk_projectile_error;
- };
- struct halo_actv_section_special_case_firing_properties
- {
- float super_ballistic_range;
- float bombardment_range;
- float modified_vision_range;
- enum halo_special_fire_modes special_fire_mode_list;
- enum halo_special_fire_situations special_fire_situation_list;
- float special_fire_chance_frac;
- float special_fire_delay;
- };
- struct halo_actv_section_berserking_and_melee
- {
- float melee_range;
- float melee_abort_range;
- struct halo_ranged_float berserk_firing_ranges;
- float berserk_melee_range;
- float berserk_melee_abort_range;
- };
- struct halo_actv_section_grenades
- {
- enum halo_grenade_types grenade_type_list;
- enum halo_grenade_trajectory_types trajectory_type_list;
- enum halo_grenade_stimuli grenade_stimulus_list;
- int16_t minimum_enemy_count;
- float enemy_radius;
- uint8_t pad_1[4];
- float grenade_velocity;
- struct halo_ranged_float grenade_ranges;
- float collateral_damage_radius;
- float grenade_chance_frac;
- float grenade_check_time;
- float encounter_grenade_timeout;
- };
- struct halo_actv_section_items
- {
- struct halo_dependency d1_equipment; // eqip
- struct halo_ranged_int16_t grenade_count;
- float dont_drop_grenades_chance_frac;
- struct halo_ranged_float drop_weapon_loaded_frac;
- struct halo_ranged_int16_t drop_weapon_ammo;
- };
- struct halo_actv_section_unit
- {
- float body_vitality;
- float shield_vitality;
- float shield_sapping_radius;
- int16_t forced_shader_permutation;
- };
- struct halo_actv
- {
- struct halo_actv_flags_bf flags_bf;
- struct halo_dependency d1_actor_definition; // actr
- struct halo_dependency d2_unit; // bipd unit vehi
- struct halo_dependency d3_major_variant; // actv
- uint8_t pad_1[24];
- struct halo_actv_section_movement_switching movement_switching;
- struct halo_actv_section_ranged_combat ranged_combat;
- struct halo_actv_section_burst_geometry burst_geometry;
- struct halo_actv_section_firing_patterns firing_patterns;
- uint8_t pad_2[8];
- struct halo_actv_section_special_case_firing_properties special_case_firing_properties;
- struct halo_actv_section_berserking_and_melee berserking_and_melee;
- uint8_t pad_3[8];
- struct halo_actv_section_grenades grenades;
- uint8_t pad_4[20];
- struct halo_actv_section_items items;
- uint8_t pad_5[28];
- struct halo_actv_section_unit unit;
- uint8_t pad_6[30];
- struct halo_array r1_change_colors; // maximum of 4 cells 0x4C949C00
- };
- struct halo_actv_r1_change_colors
- {
- struct halo_ranged_colorfloat_rgb color;
- uint8_t pad_1[8];
- };
- #pragma mark ant!
- struct halo_ant
- {
- char attachment_marker_name[32];
- struct halo_dependency d1_bitmaps; // bitm
- struct halo_dependency d2_physics; // pphy
- uint8_t pad_1[80];
- float spring_strength_coefficient_frac;
- float falloff_pixels;
- float cutoff_pixels;
- float total_length_calc_le; // undocumented; sum of all "length" values of r1b cells
- uint8_t pad_2[36];
- struct halo_array r1_vertices; // maximum of 20 cells 0xE4139D00
- };
- struct halo_ant_r1_vertices
- {
- float spring_strength_coefficient_frac;
- uint8_t pad_1[24];
- struct halo_angle_2d angles;
- float length;
- int16_t sequence_index;
- uint8_t pad_2[2];
- struct halo_colorfloat_argb color_frac;
- struct halo_colorfloat_argb lod_color_frac;
- uint8_t pad_3[40];
- struct halo_vector_3d coordinate_vector_calc_le; // undocumented; possibly represents the initial direction of the antenna
- };
- #pragma mark antr
- struct halo_antr
- {
- struct halo_array r1_objects; // maximum of 4 cells 0x806E9D00
- struct halo_array r2_units; // maximum of 32 cells 0x1C729D00
- struct halo_array r3_weapons; // maximum of 1 cell 0xB0729D00
- struct halo_array r4_vehicles; // maximum of 1 cell 0xC4749D00
- struct halo_array r5_devices; // maximum of 1 cell 0x58759D00
- struct halo_array r6_unit_damage; // maximum of 176 cells 0xF86F9D00
- struct halo_array r7_first_person_weapons; // maximum of 1 cell 0x44739D00
- struct halo_array r8_sound_references; // maximum of 257 cells 0xB06B9D00
- float limp_body_node_radius;
- uint8_t pad_1[1];
- struct halo_antr_flags_bf flags_bf;
- uint8_t pad_2[2];
- struct halo_array r9_nodes; // maximum of 64 cells 0x10769D00
- struct halo_array r10_animations; // maximum of 256 cells 0xD86D9D00
- };
- struct halo_antr_r1_objects
- {
- int16_t animation_sel;
- enum halo_animation_out_functions function_list;
- enum halo_animation_function_control_types function_controls_list;
- uint8_t pad_1[14];
- };
- struct halo_antr_section_screen_bounds
- {
- struct halo_animation_3d_screen_frame_movements movements;
- };
- struct halo_antr_r2_units
- {
- char label[32];
- struct halo_antr_section_screen_bounds looking_screen_bounds;
- uint8_t pad_1[8];
- struct halo_array r1_animations; // maximum of 30 cells 0x38719D00
- struct halo_array r2_ik_points; // maximum of 4 cells 0xD06E9D00
- struct halo_array r3_weapons; // maximum of 16 cells 0xF4709D00
- };
- struct halo_antr_r_animations
- {
- int16_t animation_sel;
- };
- struct halo_antr_r_ik_points
- {
- char marker[32];
- char attach_to_marker[32];
- };
- struct halo_antr_r2_r3_weapons
- {
- char name[32];
- char grip_marker[32];
- char hand_marker[32];
- struct halo_antr_section_screen_bounds aiming_screen_bounds;
- uint8_t pad_1[32];
- struct halo_array r1_animations; // maximum of 55 cells 0xB46F9D00
- struct halo_array r2_ik_points; // maximum of 4 cells 0xD06E9D00
- struct halo_array r3_weapon_types; // maximum of 16 cells 0x706F9D00
- };
- struct halo_antr_r2_r3_r3_weapon_types
- {
- char label[32];
- uint8_t pad_1[16];
- struct halo_array r1_animations; // maximum of 10 cells 0x146F9D00
- };
- struct halo_antr_r3_weapons
- {
- uint8_t pad_1[16];
- struct halo_array r1_animations; // maximum of 11 cells 0x60729D00
- };
- struct halo_antr_r4_vehicles
- {
- struct halo_antr_section_screen_bounds steering_screen;
- uint8_t pad_1[68];
- struct halo_array r1_animations; // maximum of 8 cells 0xFC739D00
- struct halo_array r2_suspension_animations; // maximum of 8 cells 0xB8739D00
- };
- struct halo_antr_r4_r2_suspension_animations
- {
- int16_t mass_point_index;
- int16_t animation_sel;
- float full_extension_ground_depth;
- float full_compression_ground_depth;
- uint8_t pad_1[8];
- };
- struct halo_antr_r5_devices
- {
- uint8_t pad_1[84];
- struct halo_array r1_animations; // maximum of 2 cells 0x08759D00
- };
- struct halo_antr_r7_first_person_weapons
- {
- uint8_t pad_1[16];
- struct halo_array r1_animations; // maximum of 28 cells 0xF4729D00
- };
- struct halo_antr_r8_sound_references
- {
- struct halo_dependency d1_sound; // snd!
- uint8_t pad_1[4];
- };
- struct halo_antr_r9_nodes
- {
- struct halo_render_model_3d_node_identity identity;
- struct halo_antr_nodes_node_joint_flags_bf node_joint_flags_bf;
- struct halo_vector_3d base_vector;
- float vector_range;
- uint8_t pad_1[4];
- };
- struct halo_antr_r10_animations
- {
- char name[32];
- enum halo_animation_types type_list;
- int16_t frame_count_calc;
- int16_t frame_size;
- enum halo_animation_frame_info_types frame_info_type_list;
- uint32_t node_list_checksum;
- int16_t node_count;
- int16_t loop_frame_index;
- float weight_frac;
- int16_t key_frame_index;
- int16_t second_key_frame_index;
- int16_t next_animation_sel;
- uint8_t pad_1[1];
- struct halo_antr_animations_flags_bf flags_bf;
- int16_t sound_sel;
- int16_t sound_frame_index;
- int8_t left_foot_frame_index;
- int8_t right_foot_frame_index;
- uint16_t array_entry_id_le; // incremental +1 number, starts at 0 for first animation cell
- float speed_multiplier_le; // i'm guessing this is a playback speed multiplier, because it is normally 1
- struct halo_data frame_info; // 0xDC6A9D00
- uint32_t node_translation_flag_data1;
- uint32_t node_translation_flag_data2;
- uint8_t pad_2[8];
- uint32_t node_rotation_flag_data1;
- uint32_t node_rotation_flag_data2;
- uint8_t pad_3[8];
- uint32_t node_scale_flag_data1;
- uint32_t node_scale_flag_data2;
- uint8_t pad_4[4];
- uint32_t offset_to_compressed_data;
- struct halo_data default_data; // 0x7C6B9D00
- struct halo_data frame_data; // 0x6C6B9D00
- };
- #pragma mark bipd
- struct halo_bipd_section_flying
- {
- float bank_angle_rad;
- float bank_apply_time;
- float bank_decay_time;
- float pitch_ratio;
- float max_velocity;
- float max_sidestep_velocity;
- float acceleration;
- float deceleration;
- float angular_velocity_maximum_rad;
- float angular_acceleration_maximum;
- float crouch_velocity_modifier_frac;
- };
- struct halo_bipd_section_movement
- {
- float maximum_slope_angle_rad;
- float downhill_falloff_angle_rad; // possible slope struct
- float downhill_cutoff_angle_rad;
- float downhill_velocity_scale;
- float uphill_falloff_angle_rad;
- float uphill_cutoff_angle_rad;
- float uphill_velocity_scale;
- uint8_t pad_1[24];
- struct halo_dependency d1_footsteps; // foot
- };
- struct halo_bipd_section_jumping_and_landing
- {
- float jump_velocity;
- uint8_t pad_1[28];
- float maximum_soft_landing_time;
- float maximum_hard_landing_time;
- float minimum_soft_landing_velocity;
- float minimum_hard_landing_velocity;
- float death_hard_landing_velocity;
- };
- struct halo_bipd_section_camera_collision_and_autoaim
- {
- float standing_camera_height;
- float crouching_camera_height;
- float crouch_transition_time;
- uint8_t pad_1[24];
- float standing_collision_height;
- float crouching_collision_height;
- float collision_radius;
- uint8_t pad_2[40];
- float autoaim_width;
- uint8_t pad_3[108];
- float unknown_1_le;
- float unknown_2_le;
- float unknown_3_le;
- float unknown_4_le;
- float unknown_5_le;
- float unknown_6_le;
- float unknown_7_le;
- int32_t unknown_8_le;
- };
- struct halo_bipd
- {
- struct halo_obje obje;
- struct halo_unit unit;
- float moving_turning_speed_rad;
- struct halo_bipd_flags_bf flags_bf;
- float stationary_turning_threshold_rad;
- uint8_t pad_1[16];
- enum halo_bipd_channel_functions A_in_list;
- enum halo_bipd_channel_functions B_in_list;
- enum halo_bipd_channel_functions C_in_list;
- enum halo_bipd_channel_functions D_in_list;
- struct halo_dependency d1_do_not_use; // jpt!
- struct halo_bipd_section_flying flying;
- uint8_t pad_2[8];
- struct halo_bipd_section_movement movement;
- uint8_t pad_3[24];
- struct halo_bipd_section_jumping_and_landing jumping_and_landing;
- uint8_t pad_4[20];
- struct halo_bipd_section_camera_collision_and_autoaim camera_collision_and_autoaim;
- struct halo_array r1_contact_points; // maximum of 2 cells 0xC4539D00
- };
- struct halo_bipd_r1_contact_points
- {
- uint8_t pad_1[32];
- char marker_name[32];
- };
- #pragma mark bitm
- struct halo_bitm_section_type
- {
- enum halo_bitm_geometry_types type_list;
- };
- struct halo_bitm_section_format
- {
- enum halo_bitm_storage_formats format_list;
- };
- struct halo_bitm_section_usage
- {
- enum halo_bitm_mipmap_usages usage_list;
- uint8_t pad_1[1];
- struct halo_bitm_usage_flags_bf flags_bf;
- };
- struct halo_bitm_section_post_processing
- {
- float detail_fade_factor_frac;
- float sharpen_amount_frac;
- float bump_height_frac;
- };
- struct halo_bitm_section_sprite_processing
- {
- enum halo_bitm_sprite_budget_sizes sprite_budget_size_list;
- int16_t sprite_budget_count;
- };
- struct halo_bitm_section_color_plate
- {
- struct halo_area_int16_t color_plate_area;
- struct halo_data compressed_color_plate_data; // 0x04689D00
- };
- struct halo_bitm_section_processed_pixel_data
- {
- struct halo_data processed_pixel_data; // 0xF4679D00
- };
- struct halo_bitm_section_miscellaneous
- {
- float blur_filter_size;
- float alpha_bias;
- int16_t mipmap_count;
- };
- struct halo_bitm_section_more_sprite_processing
- {
- enum halo_bitm_sprite_usages sprite_usage_list;
- int16_t sprite_spacing;
- };
- struct halo_bitm
- {
- struct halo_bitm_section_type type;
- struct halo_bitm_section_format format;
- struct halo_bitm_section_usage usage;
- struct halo_bitm_section_post_processing post_processing;
- struct halo_bitm_section_sprite_processing sprite_processing;
- struct halo_bitm_section_color_plate color_plate;
- struct halo_bitm_section_processed_pixel_data processed_pixel_data;
- struct halo_bitm_section_miscellaneous miscellaneous;
- struct halo_bitm_section_more_sprite_processing more_sprite_processing;
- uint8_t pad_1[2];
- struct halo_array r1_sequences; // maximum of 256 cells 0x10679D00
- struct halo_array r2_bitmaps; // maximum of 2048 cells 0x00669D00
- };
- struct halo_bitm_r1_sequences
- {
- char name[32];
- int16_t first_bitmap_index;
- int16_t bitmap_count;
- uint8_t pad_1[16];
- struct halo_array r1_sprites; // maximum of 64 cells 0x9C669D00
- };
- struct halo_bitm_r1_r1_sprites
- {
- int16_t bitmap_index;
- uint8_t pad_1[6];
- float left;
- float right;
- float top;
- float bottom;
- struct halo_point_2d registration_point;
- };
- struct halo_bitm_r2_bitmaps
- {
- char signature[4]; // "bitm"
- struct halo_area_int16_t area;
- int16_t depth;
- enum halo_bitm_image_types type_list;
- enum halo_bitm_image_data_formats format_list;
- struct halo_bitm_bitmaps_flags_bf flags_bf;
- struct halo_point_2d_int16_t registration_point;
- int16_t mipmap_count;
- uint16_t unknown1_le; // example value = 8192
- int32_t pixels_offset;
- int32_t pixel_count; // pixel count ("unknown" in Guerilla)
- int32_t unknown2;
- uint32_t unknown3_le; // example value = -1 (0xFFFFFFFF)
- uint8_t pad_1[4];
- uint32_t base_address;
- };
- #pragma mark boom
- struct halo_boom
- {
- float radius;
- };
- #pragma mark cdmg
- struct halo_cdmg_section_vibrate_parameters
- {
- float low_frequency_frac;
- float high_frequency_frac;
- };
- struct halo_cdmg_section_camera_shaking
- {
- float random_translation;
- float random_rotation_rad;
- uint8_t pad_1[12];
- enum halo_function_behaviors wobble_function_list;
- uint8_t pad_2[2];
- float wobble_function_period;
- float wobble_weight_frac;
- };
- struct halo_cdmg_section_damage
- {
- enum halo_damage_side_effects side_effect_list;
- enum halo_damage_categories category_list;
- struct halo_damage_flags_bf flags_bf;
- uint8_t pad_1[4];
- float damage_lower_bound;
- struct halo_ranged_float damage_upper_bound;
- float vehicle_passthrough_penalty_frac;
- uint8_t pad_2[4];
- float stun_frac;
- float maximum_stun_frac;
- float stun_time;
- uint8_t pad_3[4];
- float instantaneous_acceleration;
- };
- struct halo_cdmg_section_damage_modifiers
- {
- float dirt;
- float sand;
- float stone;
- float snow;
- float wood;
- float metal_hollow;
- float metal_thin;
- float metal_thick;
- float rubber;
- float glass;
- float force_field;
- float grunt;
- float hunter_armor;
- float hunter_skin;
- float elite;
- float jackal;
- float jackal_energy_shield;
- float engineer;
- float engineer_force_field;
- float flood_combat_form;
- float flood_carrier_form;
- float cyborg;
- float cyborg_energy_shield;
- float armored_human;
- float human;
- float sentinel;
- float monitor;
- float plastic;
- float water;
- float leaves;
- float elite_energy_shield;
- float ice;
- float hunter_shield;
- };
- struct halo_cdmg
- {
- struct halo_ranged_float radius;
- float cutoff_scale_frac;
- uint8_t pad_1[24];
- struct halo_cdmg_section_vibrate_parameters vibrate_parameters;
- uint8_t pad_2[24];
- struct halo_cdmg_section_camera_shaking camera_shaking;
- uint8_t pad_3[192];
- struct halo_cdmg_section_damage damage;
- uint8_t pad_4[8];
- struct halo_cdmg_section_damage_modifiers damage_modifiers;
- uint8_t pad_5[28];
- };
- #pragma mark coll
- struct halo_coll_section_body
- {
- float maximum_body_vitality;
- float body_system_shock;
- uint8_t pad_1[52];
- float friendly_damage_resistance_frac;
- uint8_t pad_2[40];
- struct halo_dependency d1_localized_damage_effect; // effe
- float area_damage_effect_threshold_frac;
- struct halo_dependency d2_area_damage_effect; // effe
- float body_damaged_threshold;
- struct halo_dependency d3_body_damaged_effect; // effe
- struct halo_dependency d4_body_depleted_effect; // effe
- float body_destroyed_threshold;
- struct halo_dependency d5_body_destroyed_effect; // effe
- };
- struct halo_coll_section_shield
- {
- float maximum_shield_vitality;
- uint8_t pad_1[2];
- enum halo_material_types shield_material_type_list;
- uint8_t pad_2[24];
- enum halo_function_mappings shield_failure_function_list;
- uint8_t pad_3[2];
- float shield_failure_threshold_frac;
- float failing_shield_leak_fraction_frac;
- uint8_t pad_4[16];
- float minimum_stun_damage;
- float stun_time;
- float recharge_time;
- uint8_t pad_5[112];
- float shield_damaged_threshold;
- struct halo_dependency d1_shield_damaged_effect; // effe
- struct halo_dependency d2_shield_depleted_effect; // effe
- struct halo_dependency d3_shield_recharging_effect; // effe
- };
- struct halo_coll_section_pathfinding_box
- {
- struct halo_cube cube;
- };
- struct halo_coll
- {
- struct halo_coll_flags_bf flags_bf;
- int16_t indirect_damage_material_sel;
- uint8_t pad_1[2];
- struct halo_coll_section_body body;
- struct halo_coll_section_shield shield;
- uint8_t pad_2[124];
- struct halo_array r1_materials; // maximum of 32 cells (note that the foot and matg classes specify 33 material types) 0x10F19C00
- struct halo_array r2_regions; // maximum of 8 cells 0x10F29C00
- struct halo_array r3_modifiers; // maximum of 0 cells (this is apparently unused) 0x54F29C00
- uint8_t pad_3[16];
- struct halo_coll_section_pathfinding_box pathfinding_box;
- struct halo_array r4_pathfinding_spheres; // maximum of 32 cells 0xA8F39C00
- struct halo_array r5_nodes; // maximum of 64 cells 0x30F39C00
- };
- struct halo_coll_r1_materials
- {
- char name[32];
- struct halo_coll_materials_flags_bf flags_bf;
- enum halo_material_types material_type_list;
- uint8_t pad_1[2];
- float shield_leak_percentage_frac;
- float shield_damage_multiplier;
- uint8_t pad_2[12];
- float body_damage_multiplier;
- uint8_t pad_3[8];
- };
- struct halo_coll_r2_regions
- {
- char name[32];
- struct halo_coll_regions_flags_bf flags_bf;
- uint8_t pad_1[4];
- float damage_threshold;
- uint8_t pad_2[12];
- struct halo_dependency d1_destroyed_effect; // effe
- struct halo_array r1_permutations; // maximum of 32 cells 0x84F19C00
- };
- struct halo_coll_r2_r1_permutations
- {
- char name[32];
- };
- struct halo_coll_r3_modifiers
- {
- // damage modifiers is unused
- };
- struct halo_coll_r4_pathfinding_spheres
- {
- int16_t node_sel;
- uint8_t pad_1[14];
- struct halo_point_3d center;
- float radius;
- };
- struct halo_coll_r5_nodes
- {
- struct halo_collision_model_3d_node_identity identity;
- uint8_t pad_1[12];
- struct halo_array r1_bsps; // maximum of 32 cells 0xA4F29C00
- };
- #pragma mark colo
- struct halo_colo
- {
- struct halo_array r1_colors; // maximum of 512 cells 0xB4639D00
- };
- struct halo_colo_r1_colors
- {
- char name[32];
- struct halo_colorfloat_argb color;
- };
- #pragma mark cont
- struct halo_cont_section_point_creation
- {
- float point_generation_rate;
- struct halo_ranged_float point_velocity;
- float point_velocity_cone_angle_rad;
- float inherited_velocity_fraction_frac;
- };
- struct halo_cont_section_rendering
- {
- enum halo_cont_render_types render_type_list;
- uint8_t pad_1[2];
- struct halo_texture_map_axes texture_repeats;
- struct halo_texture_map_axes texture_animation;
- float animation_rate;
- struct halo_dependency d1_bitmap; // bitm
- int16_t first_sequence_index;
- int16_t sequence_count;
- uint8_t pad_2[104];
- struct halo_particle_shader particle_shader;
- };
- struct halo_cont
- {
- uint8_t pad_1[1];
- struct halo_cont_flags_bf flags_bf;
- struct halo_cont_scale_flags_bf scale_flags_bf;
- struct halo_cont_section_point_creation point_creation;
- struct halo_cont_section_rendering rendering;
- struct halo_array r1_point_states; // maximum of 16 cells 0xBC409D00
- };
- struct halo_cont_r1_point_states_section_state_timing
- {
- struct halo_ranged_float duration;
- struct halo_ranged_float transition_duration;
- };
- struct halo_cont_r1_point_states_section_point_variables
- {
- struct halo_dependency d1_physics; // pphy
- uint8_t pad_1[32];
- float width;
- struct halo_ranged_colorfloat_argb color;
- struct halo_cont_point_states_scale_flags_bf scale_flags_bf;
- };
- struct halo_cont_r1_point_states
- {
- struct halo_cont_r1_point_states_section_state_timing state_timing;
- struct halo_cont_r1_point_states_section_point_variables point_variables;
- };
- #pragma mark ctrl
- struct halo_ctrl
- {
- struct halo_obje obje;
- struct halo_devi devi;
- enum halo_ctrl_types control_type_list;
- enum halo_ctrl_trigger_events control_triggers_when_list;
- float control_call_value_frac;
- uint8_t pad_1[80];
- struct halo_dependency d1_control_on; // effe snd!
- struct halo_dependency d2_control_off; // effe snd!
- struct halo_dependency d3_control_deny; // effe snd!
- };
- #pragma mark deca
- struct halo_deca_section_decal
- {
- struct halo_deca_flags_bf flags_bf;
- enum halo_deca_geometry_wrap_types type_list;
- enum halo_deca_layers layer_list;
- uint8_t pad_1[2];
- struct halo_dependency d1_next_decal_in_chain; // deca
- };
- struct halo_deca_section_radius_and_color
- {
- struct halo_ranged_float radius;
- uint8_t pad_1[12];
- struct halo_ranged_float intensity_frac;
- struct halo_ranged_colorfloat_rgb color;
- };
- struct halo_deca_section_animation
- {
- int16_t animation_loop_frame;
- int16_t animation_speed; // 1 to 120
- uint8_t pad_1[28];
- struct halo_ranged_float lifetime;
- struct halo_ranged_float decay_time;
- };
- struct halo_deca_section_shader
- {
- enum halo_framebuffer_blend_functions framebuffer_blend_function_list;
- uint8_t pad_1[22];
- struct halo_dependency d1_map; // bitm
- };
- struct halo_deca_section_sprite_info
- {
- float maximum_sprite_extent; // 16
- };
- struct halo_deca
- {
- struct halo_deca_section_decal decal;
- struct halo_deca_section_radius_and_color radius_and_color;
- uint8_t pad_1[12];
- struct halo_deca_section_animation animation;
- uint8_t pad_2[56];
- struct halo_deca_section_shader shader;
- uint8_t pad_3[20];
- struct halo_deca_section_sprite_info sprite_info;
- uint8_t pad_4[12];
- };
- #pragma mark DeLa
- struct halo_DeLa_section_game_data_input_functions
- {
- struct halo_array r1_game_data_inputs; // maximum of 64 cells 0xF0239C00
- };
- struct halo_DeLa_section_event_handlers
- {
- struct halo_array r2_event_handlers; // maximum of 32 cells 0xAC249C00
- };
- struct halo_DeLa_section_search_and_replace
- {
- struct halo_array r3_search_and_replace_functions; // maximum of 32 cells 0x18269C00
- };
- struct halo_DeLa_section_text_box
- {
- struct halo_dependency d1_text_label_unicode_strings_list; // ustr
- struct halo_dependency d2_text_font; // font
- struct halo_colorfloat_argb text_color;
- enum halo_justifications justification_list;
- struct halo_dela_text_box_flags_bf flags_bf;
- };
- struct halo_DeLa_section_more_text_box_parameters
- {
- int16_t string_list_index;
- int16_t horizontal_offset;
- int16_t vertical_offset;
- };
- struct halo_DeLa_section_list_items
- {
- struct halo_dela_list_items_bf flags_bf;
- };
- struct halo_DeLa_section_spinner_list
- {
- struct halo_dependency d1_list_header_bitmap; // bitm
- struct halo_dependency d2_list_footer_bitmap; // bitm
- struct halo_rectangle_2d header_bounds;
- struct halo_rectangle_2d footer_bounds;
- };
- struct halo_DeLa_section_column_list
- {
- struct halo_dependency d1_extended_description_widget; // DeLa
- };
- struct halo_DeLa_section_conditional_widgets
- {
- struct halo_array r4_conditional_widgets; // maximum of 32 cells 0x30259C00
- };
- struct halo_DeLa_section_child_widgets
- {
- struct halo_array r5_child_widgets; // maximum of 32 cells 0xC8259C00
- };
- struct halo_DeLa
- {
- enum halo_dela_widget_types widget_type_list;
- enum halo_player_controllers controller_index_list;
- char name[32];
- struct halo_rectangle_2d bounds;
- struct halo_dela_flags_bf flags_bf;
- int32_t milliseconds_to_auto_close;
- int32_t milliseconds_auto_close_fade_time;
- struct halo_dependency d1_background_bitmap; // bitm
- struct halo_DeLa_section_game_data_input_functions game_data_input_functions;
- struct halo_DeLa_section_event_handlers event_handlers;
- struct halo_DeLa_section_search_and_replace search_and_replace;
- uint8_t pad_1[128];
- struct halo_DeLa_section_text_box text_box;
- uint8_t pad_2[12];
- struct halo_DeLa_section_more_text_box_parameters more_text_box_parameters;
- uint8_t pad_3[28];
- struct halo_DeLa_section_list_items list_items;
- struct halo_DeLa_section_spinner_list spinner_list;
- uint8_t pad_4[32];
- struct halo_DeLa_section_column_list column_list;
- uint8_t pad_5[288];
- struct halo_DeLa_section_conditional_widgets conditional_widgets;
- uint8_t pad_6[256];
- struct halo_DeLa_section_child_widgets child_widgets;
- };
- struct halo_DeLa_r1_game_data_inputs
- {
- enum halo_game_data_input_functions function_list;
- uint8_t pad_1[34];
- };
- struct halo_DeLa_r2_event_handlers
- {
- struct halo_dela_event_handlers_flags_bf flags_bf;
- enum halo_event_handler_event_types event_type_list;
- enum halo_event_handler_functions function_list;
- struct halo_dependency d1_widget_tag; // DeLa
- struct halo_dependency d2_sound_effect; // snd!
- char script[32];
- };
- struct halo_DeLa_r3_search_and_replace_functions
- {
- char search_string[32];
- enum halo_replace_functions replace_function_list;
- };
- struct halo_DeLa_r4_conditional_widgets
- {
- struct halo_dependency d1_widget_tag; // DeLa
- char name_unused[32];
- struct halo_dela_conditional_widgets_flags_bf flags_bf;
- int16_t custom_controller_index_unused;
- uint8_t pad_1[26];
- };
- struct halo_DeLa_r5_child_widgets
- {
- struct halo_dependency d1_widget_tag; // DeLa
- char name_unused[32];
- struct halo_dela_child_widgets_flags_bf flags_bf;
- int16_t custom_controller_index;
- int16_t vertical_offset;
- int16_t horizontal_offset;
- uint8_t pad_1[22];
- };
- #pragma mark devc
- struct halo_devc
- {
- enum halo_device_types device_type_list;
- uint8_t pad_1[1];
- struct halo_devc_flags_bf flags_bf; // _calc if line 860 of guerilla.txt applies
- struct halo_data device_id; // 16 bytes 0x88999B00
- struct halo_data profile; // 8188 bytes (the file data size of .sav "Halo Savegames" type profiles) 0x98999B00
- };
- #pragma mark dobc
- struct halo_dobc
- {
- enum halo_dobc_collection_types collection_type_list;
- uint8_t pad_1[2];
- float global_z_offset;
- uint8_t pad_2[44];
- struct halo_dependency d1_sprite_plate; // bitm
- struct halo_array r1_types; // maximum of 16 cells 0x6C2D9C00
- uint8_t pad_3[48];
- };
- struct halo_dobc_r1_types
- {
- char name[32];
- int8_t sequence_index;
- struct halo_dobc_types_type_flags_bf type_flags_bf;
- uint8_t pad_1[2];
- float color_override_factor_frac;
- uint8_t pad_2[8];
- float near_fade_distance;
- float far_fade_distance;
- float size;
- uint8_t pad_3[4];
- struct halo_colorfloat_rgb minimum_color;
- struct halo_colorfloat_rgb maximum_color;
- struct halo_colorbyte_argb ambient_color;
- uint8_t pad_4[4];
- };
- #pragma mark effe
- struct halo_effe
- {
- struct halo_effe_flags_bf flags_bf;
- int16_t loop_start_event_sel;
- int16_t loop_stop_event_sel;
- uint8_t pad_1[32];
- struct halo_array r1_locations; // maximum of 32 cells 0x98309D00
- struct halo_array r2_events; // maximum of 32 cells 0x58349D00
- };
- struct halo_effe_r1_locations
- {
- char marker_name[32];
- };
- struct halo_effe_r2_events
- {
- uint8_t pad_1[4];
- float skip_fraction_frac;
- struct halo_ranged_float delay_bounds;
- struct halo_ranged_float duration_bounds;
- uint8_t pad_2[20];
- struct halo_array r1_parts; // maximum of 32 cells 0xC8339D00
- struct halo_array r2_particles; // maximum of 32 cells 0xB0329D00
- };
- struct halo_effe_r2_r1_parts_section_scale_modifiers
- {
- struct halo_effe_events_parts_scale_modifiers_bf a_scales_values_bf;
- struct halo_effe_events_parts_scale_modifiers_bf b_scales_values_bf;
- };
- struct halo_effe_r2_r1_parts
- {
- enum halo_environment_media create_in_environment_list;
- enum halo_environment_violence_modes create_in_mode_list;
- int16_t location_sel;
- uint8_t pad_1[1];
- struct halo_effe_events_parts_flags_bf flags_bf;
- uint8_t pad_2[12];
- char usage_class[4]; // padding until compiled, then: obje (for all obje types), jpt!, deca, ligh, pctl, unit (?) or snd!; this is probably a shorthand for determining to which memory table it should be added
- struct halo_dependency d1_type; // bipd jpt! deca devi ctrl lifi mach eqip garb item ligh obje pctl plac proj scen snd! ssce unit vehi weap
- uint8_t pad_3[24];
- struct halo_ranged_float velocity_bounds;
- float velocity_cone_angle_rad;
- struct halo_ranged_float angular_velocity_bounds_rad;
- struct halo_ranged_float radius_modifier_bounds;
- uint8_t pad_4[4];
- struct halo_effe_r2_r1_parts_section_scale_modifiers scale_modifiers;
- };
- struct halo_effe_r2_r2_particles_section_scale_modifiers
- {
- struct halo_effe_events_particles_scale_modifiers_bf a_scales_values_bf;
- struct halo_effe_events_particles_scale_modifiers_bf b_scales_values_bf;
- };
- struct halo_effe_r2_r2_particles
- {
- enum halo_environment_media create_in_environment_list;
- enum halo_environment_violence_modes create_in_mode_list;
- enum halo_environment_camera_modes create_in_camera_mode_list;
- uint8_t pad_1[2];
- int16_t location_sel;
- uint8_t pad_2[2];
- struct halo_angle_2d relative_direction_rad;
- struct halo_vector_3d relative_offset;
- uint8_t pad_3[52];
- struct halo_dependency d1_particle_type; // part
- struct halo_effe_events_particles_flags_bf flags_bf;
- enum halo_distribution_functions distribution_function_list;
- uint8_t pad_4[2];// in cell here: 2 bytes of 0
- struct halo_ranged_int16_t count;
- struct halo_ranged_float distribution_radius;
- uint8_t pad_5[12];
- struct halo_ranged_float velocity;
- float velocity_cone_angle_rad;
- struct halo_ranged_float angular_velocity_rad;
- uint8_t pad_6[8];
- struct halo_ranged_float radius;
- uint8_t pad_7[8];
- struct halo_ranged_colorfloat_argb tint;
- uint8_t pad_8[16];
- struct halo_effe_r2_r2_particles_section_scale_modifiers scale_modifiers;
- };
- #pragma mark elec
- struct halo_elec
- {
- int32_t count;
- uint8_t pad_1[16];
- float near_fade_distance;
- float far_fade_distance;
- uint8_t pad_2[16];
- enum halo_function_out_channels jitter_scale_source_list;
- enum halo_function_out_channels thickness_scale_source_list;
- enum halo_function_channel_types tint_modulation_source_list;
- enum halo_function_out_channels brightness_scale_source_list;
- struct halo_dependency d1_bitmap; // bitm
- uint8_t pad_3[84];
- struct halo_array r1_markers; // maximum of 16 cells 0x30069D00
- struct halo_array r2_shader; // maximum of 1 cell 0xF0069D00
- uint8_t pad_4[88];
- };
- struct halo_elec_r1_markers
- {
- char attachment_marker[32];
- uint8_t pad_1[1];
- struct halo_elec_markers_flags_bf flags_bf;
- uint8_t pad_2[2];
- int16_t octaves_to_next_marker;
- uint8_t pad_3[78];
- struct halo_vector_3d random_position_bounds;
- float random_jitter;
- float thickness;
- struct halo_colorfloat_argb tint;
- uint8_t pad_4[76];
- };
- struct halo_elec_r2_shader
- {
- uint8_t pad_1[40];
- struct halo_particle_shader_rendering rendering;
- uint8_t pad_2[132];
- };
- #pragma mark eqip
- struct halo_eqip
- {
- struct halo_obje obje;
- struct halo_item item;
- enum halo_powerup_types powerup_type_list;
- enum halo_grenade_types grenade_type_list;
- float powerup_time;
- struct halo_dependency d1_pickup_sound; // snd!
- uint8_t pad_1[144];
- };
- #pragma mark flag
- struct halo_flag
- {
- uint8_t pad_1[4];
- enum halo_flag_trailing_edge_shapes trailing_edge_shape_list;
- int16_t trailing_edge_shape_offset;
- enum halo_flag_attached_edge_shapes attached_edge_shape_list;
- uint8_t pad_2[2];
- struct halo_area_int16_t area;
- struct halo_area_float cell_area;
- struct halo_dependency d1_red_flag_shader; // shdr senv soso schi scex sotr sgla smet spla swat
- struct halo_dependency d2_physics; // pphy
- float wind_noise;
- uint8_t pad_3[8];
- struct halo_dependency d3_blue_flag_shader; // shdr senv soso schi scex sotr sgla smet spla swat
- struct halo_array r1_attachment_points; // maximum of 5 cells 0x54159D00
- };
- struct halo_flag_r1_attachment_points
- {
- int16_t height_to_next_attachment;
- uint8_t pad_1[18];
- char marker_name[32];
- };
- #pragma mark fog
- struct halo_fog_section_flags
- {
- struct halo_fog_flags_bf flags_bf;
- };
- struct halo_fog_section_density
- {
- float maximum_density_frac;
- uint8_t pad_1[4];
- float opaque_distance;
- uint8_t pad_2[4];
- float opaque_depth;
- uint8_t pad_3[8];
- float distance_to_water_plane;
- };
- struct halo_fog_section_color
- {
- struct halo_colorfloat_rgb color;
- };
- struct halo_fog_section_screen_layers
- {
- struct halo_fog_screen_layers_flags_bf flags_bf;
- int16_t layer_count;
- struct halo_ranged_float distance_gradient;
- struct halo_ranged_float density_gradient_frac;
- float start_distance_from_fog_plane;
- uint8_t pad_1[4];
- struct halo_colorbyte_rgb color;
- float rotation_multiplier_frac;
- float strafing_multiplier_frac;
- float zoom_multiplier_frac;
- uint8_t pad_2[8];
- struct halo_shader_scaled_map scaled_map;
- };
- struct halo_fog_section_screen_layer_animation
- {
- float animation_period;
- uint8_t pad_1[4];
- struct halo_ranged_float wind_velocity;
- struct halo_ranged_float wind_period;
- float wind_acceleration_weight_frac;
- float wind_perpendicular_weight_frac;
- };
- struct halo_fog_section_sound
- {
- struct halo_dependency d1_background_sound; // lsnd
- struct halo_dependency d2_sound_environment; // snde
- };
- struct halo_fog
- {
- struct halo_fog_section_flags flags;
- uint8_t pad_1[84];
- struct halo_fog_section_density density;
- struct halo_fog_section_color color;
- uint8_t pad_2[1];
- struct halo_fog_section_screen_layers screen_layers;
- struct halo_fog_section_screen_layer_animation screen_layer_animation;
- uint8_t pad_3[8];
- struct halo_fog_section_sound sound;
- uint8_t pad_4[120];
- };
- #pragma mark font
- struct halo_font
- {
- uint32_t flags;
- int16_t ascending_height;
- int16_t descending_height;
- int16_t leading_height;
- int16_t leading_width_calc;
- uint8_t pad_1[36];
- struct halo_array r1_character_tables; // maximum of 256 cells 0x1C609D00
- struct halo_dependency d1_bold; // font
- struct halo_dependency d2_italic; // font
- struct halo_dependency d3_condense; // font
- struct halo_dependency d4_underline; // font
- struct halo_array r2_characters; // maximum of 32000 cells 0x785F9D00
- struct halo_data pixels; // 0xA45F9D00
- };
- struct halo_font_r1_character_tables
- {
- struct halo_array r1_character_table; // maximum of 256 cells 0xD85F9D00
- };
- struct halo_font_r1_r1_character_table
- {
- int16_t character_index_sel;
- };
- struct halo_font_r2_characters
- {
- int16_t character;
- int16_t character_width;
- struct halo_area_int16_t bitmap_area;
- struct halo_point_2d_int16_t bitmap_origin;
- int16_t hardware_character_index_calc; // -1 if no data
- uint8_t pad_1[2];
- int32_t pixels_offset;
- };
- #pragma mark foot
- struct halo_foot
- {
- struct halo_array r1_effects; // maximum of 13 cells (walk, run, sliding, shuffle, jump, jump land, biped unused1, biped unused2, impact, vehicle tire slip, vehicle chassis slip, vehicle unused 1, vehicle unused 2) 0x50169C00
- uint8_t pad_1[128];
- };
- struct halo_foot_r1_effects
- {
- struct halo_array r1_materials; // maximum of 33 cells (dirt, sand, stone, snow, wood, metal (hollow), metal (thin), metal (thick), rubber, glass, force field, grunt, hunter armor, hunter skin, elite, jackal, jackal energy shield, engineer skin, engineer force field, flood combat form, flood carrier form, cyborg armor, cyborg energy shield, human armor, human skin, sentinel, monitor, plastic, water, leaves, elite energy shield, ice, hunter shield) 0x00169C00
- uint8_t pad_1[16];
- };
- struct halo_foot_r1_r1_materials
- {
- struct halo_dependency d1_effect; // eff
- struct halo_dependency d2_sound; // snd!
- uint8_t pad_1[16];
- };
- #pragma mark garb
- struct halo_garb
- {
- struct halo_obje obje;
- struct halo_item item;
- uint8_t pad_1[144];
- };
- #pragma mark glw!
- struct halo_glw_channel_attachments
- {
- enum halo_function_out_channels channel_list;
- uint8_t pad_1[2];
- };
- struct halo_glw_ranged_multipliers
- {
- float low;
- float high;
- };
- struct halo_glw_movements
- {
- float velocity;
- struct halo_glw_ranged_multipliers velocity_multiplier;
- };
- struct halo_glw
- {
- char attachment_marker[32];
- int16_t number_of_particles;
- enum halo_boundary_effects boundary_effect_list;
- enum halo_particle_distributions normal_particle_distribution_list;
- enum halo_particle_emissions trailing_particle_distribution_list;
- struct halo_glw_glow_flags_bf glow_flags_bf;
- uint8_t pad_1[36];
- struct halo_glw_channel_attachments particle_rotation_attachment;
- struct halo_glw_movements particle_rotation;
- struct halo_glw_channel_attachments effect_rotation_attachment;
- struct halo_glw_movements effect_rotation;
- struct halo_glw_channel_attachments effect_translation_attachment;
- struct halo_glw_movements effect_translation;
- struct halo_glw_channel_attachments particle_distance_attachment;
- float minimum_distance_particle_to_object;
- float maximum_distance_particle_to_object;
- struct halo_glw_ranged_multipliers distance_to_object_multiplier;
- uint8_t pad_2[8];
- struct halo_glw_channel_attachments particle_size_attachment;
- struct halo_ranged_float particle_size_bounds;
- struct halo_ranged_float size_attachment_multiplier;
- struct halo_glw_channel_attachments color_attachment;
- struct halo_colorfloat_argb color_bound_0;
- struct halo_colorfloat_argb color_bound_1;
- struct halo_colorfloat_argb scale_color_0;
- struct halo_colorfloat_argb scale_color_1;
- float color_rate_of_change;
- float fading_percentage_of_glow;
- float particle_generation_frequency;
- float lifetime_of_trailing_particles;
- float velocity_of_trailing_particles;
- float trailing_particle_minimum_translation;
- float trailing_particle_maximum_translation;
- uint8_t pad_3[52];
- struct halo_dependency d1_texture; // bitm
- };
- #pragma mark grhi
- struct halo_grhi_section_total_grenades_overlays
- {
- struct halo_dependency d1_overlay_bitmap; // bitm
- struct halo_array r3_overlays; // maximum of 16 cells 0x485E9C00
- };
- struct halo_grhi_section_total_grenades
- {
- struct halo_hud_section_background background;
- struct halo_hud_section_numbers numbers;
- uint8_t pad_1[13];
- int16_t flash_cutoff;
- uint8_t pad_2[2];
- struct halo_grhi_section_total_grenades_overlays overlays;
- struct halo_array r4_warning_sounds; // maximum of 12 cells 0xD05E9C00
- uint8_t pad_3[68];
- struct halo_hud_section_messaging_information messaging_information;
- };
- struct halo_grhi
- {
- struct halo_hud_anchored_screen_layer grenade_hud;
- struct halo_grhi_section_total_grenades total_grenades;
- };
- struct halo_grhi_r3_overlays
- {
- struct halo_hud_orientation orientation;
- struct halo_hud_color_and_flash color_and_flash;
- uint8_t pad_1[4];
- float frame_rate; // differs from wphi which stores as int16_t
- int16_t sequence_index;
- uint8_t pad_2[1];
- struct halo_hud_overlays_type_flags_bf type_bf;
- struct halo_hud_overlays_flash_flags_bf flags_bf;
- uint8_t pad_3[56];
- };
- struct halo_grhi_r4_warning_sounds
- {
- struct halo_dependency d1_sound; // snd! lsnd
- struct halo_grhi_warning_sounds_flags_bf latched_to_bf;
- float scale;
- uint8_t pad_1[32];
- };
- #pragma mark hmt
- struct halo_hmt
- {
- struct halo_data text_data; // 0x302A9C00
- struct halo_array r1_message_elements; // maximum of 8192 cells 0x642A9C00
- struct halo_array r2_messages; // maximum of 1024 cells 0xE42A9C00
- uint8_t pad_1[84];
- };
- struct halo_hmt_r1_message_elements
- {
- int8_t type;
- int8_t data;
- };
- struct halo_hmt_r2_messages
- {
- char name[32];
- int16_t start_index_into_text_blob;
- int16_t start_index_of_message_block;
- int8_t panel_count;
- uint8_t pad_1[27];
- };
- #pragma mark hudg
- struct halo_hudg_section_hud_help_text_color
- {
- struct halo_hud_color_and_flash color_and_flash;
- uint8_t pad_1[4];
- };
- struct halo_hudg_section_other_hud_messaging_data
- {
- struct halo_dependency d1_hud_messages; // hmt
- };
- struct halo_hudg_section_messaging_parameters
- {
- struct halo_hud_screen_alignment_anchor anchor;
- struct halo_hud_orientation orientation;
- struct halo_dependency d1_single_player_font; // font
- struct halo_dependency d2_multi_player_font; // font
- float up_time;
- float fade_time;
- struct halo_colorfloat_argb icon_color;
- struct halo_colorfloat_argb text_color;
- float text_spacing;
- struct halo_dependency d3_item_message_text; // ustr
- struct halo_dependency d4_icon_bitmap; // bitm
- struct halo_dependency d5_alternate_icon_text; // ustr
- struct halo_array r1_button_icons; // maximum of 18 cells (a button, b button, x button, y button, black button, white button, left trigger, right trigger, dpad up, dpad down, dpad left, dpad right, start button, back button, left thumb button, right thumb button, left stick (not a button), right stick (not a button) 0xC03C9C00
- struct halo_hudg_section_hud_help_text_color hud_help_text_color;
- struct halo_hudg_section_other_hud_messaging_data other_hud_messaging_data;
- };
- struct halo_hudg_section_objective_colors
- {
- struct halo_hud_color_and_flash color_and_flash;
- int16_t uptime_ticks;
- int16_t fade_ticks;
- };
- struct halo_hudg_section_waypoint_parameters
- {
- struct halo_offset_rectangle_2d_float offset;
- uint8_t pad_1[32];
- struct halo_dependency d1_arrow_bitmap; // bitm
- struct halo_array r2_waypoint_arrows; // maximum of 16 cells 0x8C3D9C00
- };
- struct halo_hudg_section_multiplayer_parameters
- {
- float hud_scale_in_multiplayer;
- };
- struct halo_hudg_section_hud_globals
- {
- struct halo_dependency d1_default_weapon_hud; // wphi
- float motion_sensor_range;
- float motion_sensor_velocity_sensitivity;
- float motion_sensor_scale_dont_touch_ever;
- struct halo_rectangle_2d default_chapter_title_bounds;
- };
- struct halo_hudg_section_hud_damage_indicators
- {
- struct halo_offset_rectangle_2d offset;
- uint8_t pad_1[32];
- struct halo_dependency d1_indicator_bitmap; // bitm
- int16_t sequence_index;
- int16_t multiplayer_sequence_index;
- struct halo_colorbyte_argb color;
- };
- struct halo_hudg_section_not_much_time_left_flash_color
- {
- struct halo_hud_color_and_flash color_and_flash;
- uint8_t pad_1[4];
- };
- struct halo_hudg_section_time_out_flash_color
- {
- struct halo_hud_color_and_flash color_and_flash;
- uint8_t pad_1[44];
- struct halo_dependency d1_carnage_report_bitmap; // bitm
- };
- struct halo_hudg_section_hud_timer_definitions
- {
- struct halo_hudg_section_not_much_time_left_flash_color not_much_time_left_flash_color;
- struct halo_hudg_section_time_out_flash_color time_out_flash_color;
- };
- struct halo_hudg_section_hud_crap_that_wouldnt_fit_anywhere_else
- {
- int16_t loading_begin_text;
- int16_t loading_end_text;
- int16_t checkpoint_begin_text;
- int16_t checkpoint_end_text;
- struct halo_dependency d1_checkpoint_sound; // snd!
- };
- struct halo_hudg
- {
- struct halo_hudg_section_messaging_parameters messaging_parameters;
- struct halo_hudg_section_objective_colors objective_colors;
- struct halo_hudg_section_waypoint_parameters waypoint_parameters;
- uint8_t pad_1[80];
- struct halo_hudg_section_multiplayer_parameters multiplayer_parameters;
- uint8_t pad_2[256];
- struct halo_hudg_section_hud_globals hud_globals;
- uint8_t pad_3[44];
- struct halo_hudg_section_hud_damage_indicators hud_damage_indicators;
- uint8_t pad_4[16];
- struct halo_hudg_section_hud_timer_definitions hud_timer_definitions;
- struct halo_hudg_section_hud_crap_that_wouldnt_fit_anywhere_else hud_crap_that_wouldnt_fit_anywhere_else;
- uint8_t pad_5[96];
- };
- struct halo_hudg_r1_button_icons
- {
- struct halo_hud_messaging messaging;
- };
- struct halo_hudg_r2_waypoint_arrows
- {
- char name[32];
- uint8_t pad_1[8];
- struct halo_colorbyte_rgb color;
- float opacity;
- float translucency;
- int16_t on_screen_sequence_index;
- int16_t off_screen_sequence_index;
- int16_t occluded_sequence_index;
- uint8_t pad_2[18];
- struct halo_hudg_waypoint_arrows_flags_bf flags_bf;
- uint8_t pad_3[24];
- };
- #pragma mark hud#
- struct halo_hudn
- {
- struct halo_dependency d1_digits_bitmap; // bitm
- int8_t bitmap_digit_width;
- int8_t screen_digit_width;
- int8_t x_offset;
- int8_t y_offset;
- int8_t decimal_point_width;
- int8_t colon_width;
- uint8_t pad_1[78];
- };
- #pragma mark itmc
- struct halo_itmc
- {
- struct halo_array r1_item_permutations; // maximum of 32 cells 0x80659C00
- int16_t spawn_time;
- uint8_t pad_1[78];
- };
- struct halo_itmc_r1_item_permutations
- {
- uint8_t pad_1[32];
- float weight_frac;
- struct halo_dependency d1_item; // eqip garb item weap
- uint8_t pad_2[32];
- };
- #pragma mark jpt!
- struct halo_jpt_section_screen_flash
- {
- enum halo_screen_flash_types type_list;
- enum halo_priorities priority_list;
- uint8_t pad_1[12];
- float duration;
- enum halo_function_mappings fade_function_list;
- uint8_t pad_2[10];
- float maximum_intensity_frac;
- uint8_t pad_3[4];
- struct halo_colorfloat_argb color;
- };
- struct halo_jpt_section_low_frequency_vibrate
- {
- float frequency_frac;
- float duration;
- enum halo_function_mappings fade_function_list;
- };
- struct halo_jpt_section_high_frequency_vibrate
- {
- float frequency_frac;
- float duration;
- enum halo_function_mappings fade_function_list;
- };
- struct halo_jpt_section_temporary_camera_impulse
- {
- float duration;
- enum halo_function_mappings fade_function_list;
- uint8_t pad_1[2];
- float rotation_rad;
- float pushback;
- struct halo_ranged_float jitter;
- };
- struct halo_jpt_section_permanent_camera_impulse
- {
- float angle_rad;
- };
- struct halo_jpt_section_camera_shaking
- {
- float duration;
- enum halo_function_mappings falloff_function_list;
- uint8_t pad_1[2];
- float random_translation;
- float random_rotation_rad;
- uint8_t pad_2[12];
- enum halo_function_behaviors wobble_function_list;
- uint8_t pad_3[2];
- float wobble_function_period;
- float wobble_weight_frac;
- };
- struct halo_jpt_section_sound
- {
- struct halo_dependency d1_sound; // snd!
- };
- struct halo_jpt_section_breaking_effect
- {
- float forward_velocity;
- float forward_radius;
- float forward_exponent;
- uint8_t pad_1[12];
- float outward_velocity;
- float outward_radius;
- float outward_exponent;
- };
- struct halo_jpt_section_damage
- {
- enum halo_damage_side_effects side_effect_list;
- enum halo_damage_categories category_list;
- struct halo_damage_flags_bf flags_bf;
- float aoe_core_radius;
- float damage_lower_bound;
- struct halo_ranged_float damage_upper_bound;
- float vehicle_passthrough_penalty_frac;
- float active_camouflage_damage_frac;
- float stun_frac;
- float maximum_stun_frac;
- float stun_time;
- uint8_t pad_1[4];
- float instantaneous_acceleration;
- };
- struct halo_jpt_section_damage_modifiers
- {
- float dirt;
- float sand;
- float stone;
- float snow;
- float wood;
- float metal_hollow;
- float metal_thin;
- float metal_thick;
- float rubber;
- float glass;
- float force_field;
- float grunt;
- float hunter_armor;
- float hunter_skin;
- float elite;
- float jackal;
- float jackal_energy_shield;
- float engineer;
- float engineer_force_field;
- float flood_combat_form;
- float flood_carrier_form;
- float cyborg;
- float cyborg_energy_shield;
- float armored_human;
- float human;
- float sentinel;
- float monitor;
- float plastic;
- float water;
- float leaves;
- float elite_energy_shield;
- float ice;
- float hunter_shield;
- };
- struct halo_jpt
- {
- struct halo_ranged_float radius;
- float cutoff_scale_frac;
- struct halo_jpt_flags_bf flags_bf;
- uint8_t pad_1[20];
- struct halo_jpt_section_screen_flash screen_flash;
- struct halo_jpt_section_low_frequency_vibrate low_frequency_vibrate;
- uint8_t pad_2[10];
- struct halo_jpt_section_high_frequency_vibrate high_frequency_vibrate;
- uint8_t pad_3[30];
- struct halo_jpt_section_temporary_camera_impulse temporary_camera_impulse;
- uint8_t pad_4[8];
- struct halo_jpt_section_permanent_camera_impulse permanent_camera_impulse;
- uint8_t pad_5[16];
- struct halo_jpt_section_camera_shaking camera_shaking;
- uint8_t pad_6[32];
- struct halo_jpt_section_sound sound;
- uint8_t pad_7[112];
- struct halo_jpt_section_breaking_effect breaking_effect;
- uint8_t pad_8[12];
- struct halo_jpt_section_damage damage;
- uint8_t pad_9[8];
- struct halo_jpt_section_damage_modifiers damage_modifiers;
- uint8_t pad_10[28];
- };
- #pragma mark lens
- struct halo_lens_section_lens_flare
- {
- float falloff_angle_rad;
- float cutoff_angle_rad;
- float unknown_1_le; // 1
- float unknown_2_le; // 1
- };
- struct halo_lens_section_occlusion
- {
- float occlusion_radius;
- enum halo_relative_rendering_directions occlusion_offset_direction_list;
- uint8_t pad_1[2];
- float near_fade_distance;
- float far_fade_distance;
- };
- struct halo_lens_section_bitmaps
- {
- struct halo_dependency d1_bitmap; // bitm
- uint8_t pad_1[1];
- struct halo_lens_bitmaps_flags_bf flags_bf;
- };
- struct halo_lens_section_corona_rotation
- {
- enum halo_relative_angular_rotation_functions rotation_function_list;
- uint8_t pad_1[2];
- float rotation_function_scale_rad;
- };
- struct halo_lens_section_corona_radius_scale
- {
- float horizontal_scale;
- float vertical_scale;
- };
- struct halo_lens
- {
- struct halo_lens_section_lens_flare lens_flare;
- struct halo_lens_section_occlusion occlusion;
- struct halo_lens_section_bitmaps bitmaps;
- uint8_t pad_1[78];
- struct halo_lens_section_corona_rotation corona_rotation;
- uint8_t pad_2[24];
- struct halo_lens_section_corona_radius_scale corona_radius_scale;
- uint8_t pad_3[28];
- struct halo_array r1_reflections; // maximum of 32 cells 0x5C849C00
- uint8_t pad_4[32];
- };
- struct halo_lens_r1_reflections_section_tint_color
- {
- struct halo_colorfloat_argb tint_color;
- };
- struct halo_lens_r1_reflections_section_animation
- {
- struct halo_ranged_colorfloat_argb color;
- uint8_t pad_1[1];
- struct halo_color_interpolation_flags_bf flags_bf;
- enum halo_function_behaviors animation_function_list;
- float animation_period;
- float animation_phase;
- };
- struct halo_lens_r1_reflections
- {
- uint8_t pad_1[1];
- struct halo_lens_reflections_flags_bf flags_bf;
- uint8_t pad_2[2];
- int16_t bitmap_index;
- uint8_t pad_3[22];
- float position;
- float rotation_offset; // not radians
- uint8_t pad_4[4];
- struct halo_ranged_float radius;
- enum halo_reflection_scaling_associations radius_scaled_by_list;
- uint8_t pad_5[2];
- struct halo_ranged_float brightness_frac;
- enum halo_reflection_scaling_associations brightness_scaled_by_list;
- uint8_t pad_6[2];
- struct halo_lens_r1_reflections_section_tint_color tint_color;
- struct halo_lens_r1_reflections_section_animation animation;
- uint8_t pad_7[4];
- };
- #pragma mark lifi
- struct halo_lifi
- {
- struct halo_obje obje;
- struct halo_devi devi;
- uint8_t pad_1[64];
- };
- #pragma mark ligh
- struct halo_ligh_gel_movement_behaviors
- {
- uint8_t pad_1[2];
- enum halo_function_behaviors function_list;
- float period;
- };
- struct halo_ligh_section_shape
- {
- float radius;
- struct halo_ranged_float radius_modifier;
- float falloff_angle_rad;
- float cutoff_angle_rad;
- float lens_flare_only_radius;
- };
- struct halo_ligh_section_color
- {
- struct halo_color_interpolation_flags_bf interpolation_flags_bf;
- struct halo_ranged_colorfloat_argb color;
- };
- struct halo_ligh_section_gel
- {
- struct halo_dependency d1_primary_cube_map; // bitm
- struct halo_ligh_gel_movement_behaviors texture_animation;
- struct halo_dependency d2_secondary_cube_map; // bitm
- struct halo_ligh_gel_movement_behaviors yaw;
- struct halo_ligh_gel_movement_behaviors roll;
- struct halo_ligh_gel_movement_behaviors pitch;
- };
- struct halo_ligh_section_lens_flare
- {
- struct halo_dependency d1_lens_flare; // lens
- };
- struct halo_ligh_section_radiosity
- {
- float intensity;
- struct halo_colorfloat_rgb color;
- };
- struct halo_ligh_section_effect_parameters
- {
- float duration;
- uint8_t pad_1[2];
- enum halo_function_mappings falloff_function_list;
- };
- struct halo_ligh
- {
- struct halo_ligh_flags_bf flags_bf;
- struct halo_ligh_section_shape shape;
- uint8_t pad_1[24];
- struct halo_ligh_section_color color;
- uint8_t pad_2[12];
- struct halo_ligh_section_gel gel;
- uint8_t pad_3[8];
- struct halo_ligh_section_lens_flare lens_flare;
- uint8_t pad_4[24];
- struct halo_ligh_section_radiosity radiosity;
- uint8_t pad_5[16];
- struct halo_ligh_section_effect_parameters effect_parameters;
- uint8_t pad_6[100];
- };
- #pragma mark lsnd
- struct halo_lsnd_section_when_scale_is_zero
- {
- float detail_sound_period;
- };
- struct halo_lsnd_section_when_scale_is_one
- {
- float detail_sound_period;
- };
- struct halo_lsnd
- {
- struct halo_lsnd_flags_bf flags_bf;
- struct halo_lsnd_section_when_scale_is_zero when_scale_is_zero;
- uint8_t pad_1[8];
- struct halo_lsnd_section_when_scale_is_one when_scale_is_one;
- uint8_t pad_2[24];
- struct halo_dependency d1_continuous_damage_effect; // cdmg
- struct halo_array r1_tracks; // maximum of 4 cells 0x9C969B00
- struct halo_array r2_detail_sounds; // maximum of 32 cells 0x5C979B00
- };
- struct halo_lsnd_r1_tracks
- {
- struct halo_lsnd_tracks_flags_bf flags_bf;
- float gain_frac;
- float fade_in_duration;
- float fade_out_duration;
- uint8_t pad_1[32];
- struct halo_dependency d1_start; // snd!
- struct halo_dependency d2_loop; // snd!
- struct halo_dependency d3_end; // snd!
- uint8_t pad_2[32];
- struct halo_dependency d4_alternate_loop; // snd!
- struct halo_dependency d5_alternate_end; // snd!
- };
- struct halo_lsnd_r2_detail_sounds_section_frequency_of_play
- {
- struct halo_ranged_float random_period_bounds;
- float gain_frac;
- struct halo_lsnd_detail_sounds_flags_bf flags_bf;
- };
- struct halo_lsnd_r2_detail_sounds_section_random_spatialization
- {
- struct halo_ranged_float yaw_bounds_rad;
- struct halo_ranged_float pitch_bounds_rad;
- struct halo_ranged_float distance_bounds;
- };
- struct halo_lsnd_r2_detail_sounds
- {
- struct halo_dependency d1_sound; // snd!
- struct halo_lsnd_r2_detail_sounds_section_frequency_of_play frequency_of_play;
- uint8_t pad_1[48];
- struct halo_lsnd_r2_detail_sounds_section_random_spatialization random_spatialization;
- };
- #pragma mark mach
- struct halo_mach_section_machine
- {
- enum halo_mach_machine_types type_list;
- uint8_t pad_1[1];
- struct halo_mach_flags_bf flags_bf;
- float door_open_time;
- uint8_t pad_2[80];
- enum halo_mach_collision_responses collision_response_list;
- int16_t elevator_node;
- };
- struct halo_mach
- {
- struct halo_obje obje;
- struct halo_devi devi;
- struct halo_mach_section_machine machine;
- uint8_t pad_1[56];
- };
- #pragma mark matg
- struct halo_matg
- {
- uint8_t pad_1[248];
- struct halo_array r1_sounds; // maximum of 2 cells 0x002B9D00
- struct halo_array r2_camera; // maximum of 1 cell 0xB42A9D00
- struct halo_array r3_player_control; // maximum of 1 cell 0x702A9D00
- struct halo_array r4_difficulty; // maximum of 1 cell 0x3C299D00
- struct halo_array r5_grenades; // maximum of 2 cells 0x7C239D00
- struct halo_array r6_rasterizer_data; // maximum of 1 cell 0x68219D00
- struct halo_array r7_interface_bitmaps; // maximum of 1 cell 0x70229D00
- struct halo_array r8_weapon_list; // (update _weapon_list enum in game_globals.h) maximum of 20 cells 0xB4229D00
- struct halo_array r9_cheat_powerups; // maximum of 20 cells 0xF8229D00
- struct halo_array r10_multiplayer_information; // maximum of 1 cell 0x9C1C9D00
- struct halo_array r11_player_information; // maximum of 1 cell 0x241E9D00
- struct halo_array r12_first_person_interface; // maximum of 1 cell 0xD81E9D00
- struct halo_array r13_falling_damage; // maximum of 1 cell 0x981F9D00
- struct halo_array r14_materials; // maximum of 33 cells 0xBC1A9D00
- struct halo_array r15_playlist_members; // maximum of 20 cells 0x541B9D00
- };
- struct halo_matg_r1_sounds
- {
- struct halo_dependency d1_sound; // snd!
- };
- struct halo_matg_r2_camera
- {
- struct halo_dependency d1_default_unit_camera_track; // trak
- };
- struct halo_matg_r3_player_control
- {
- float magnetism_friction_frac;
- float magnetism_adhesion_frac;
- float inconsequential_target_scale_frac;
- uint8_t pad_1[52];
- float look_acceleration_time;
- float look_acceleration_scale;
- float look_peg_threshold_frac;
- float look_default_pitch_rate; // not radians
- float look_default_yaw_rate; // not radians
- float look_autoleveling_scale;
- uint8_t pad_2[20];
- int16_t minimum_weapon_swap_ticks;
- int16_t minimum_autoleveling_ticks;
- float minimum_angle_for_vehicle_flipping_rad;
- struct halo_array r1_look_function; // maximum of 16 cells -- each cell is displayed with a fraction of the total cell count from 0.000 to 1.000 0x80299D00
- };
- struct halo_matg_r3_r1_look_function
- {
- float scale;
- };
- struct halo_matg_difficulty_level_settings
- {
- float easy;
- float normal;
- float hard;
- float impossible;
- };
- struct halo_matg_r4_difficulty_section_health
- {
- struct halo_matg_difficulty_level_settings enemy_damage;
- struct halo_matg_difficulty_level_settings enemy_vitality;
- struct halo_matg_difficulty_level_settings enemy_shield;
- struct halo_matg_difficulty_level_settings enemy_recharge;
- struct halo_matg_difficulty_level_settings friend_damage;
- struct halo_matg_difficulty_level_settings friend_vitality;
- struct halo_matg_difficulty_level_settings friend_shield;
- struct halo_matg_difficulty_level_settings friend_recharge;
- struct halo_matg_difficulty_level_settings infection_forms;
- };
- struct halo_matg_r4_difficulty_section_ranged_fire
- {
- struct halo_matg_difficulty_level_settings rate_of_fire;
- struct halo_matg_difficulty_level_settings projectile_error;
- struct halo_matg_difficulty_level_settings burst_error;
- struct halo_matg_difficulty_level_settings new_target_delay;
- struct halo_matg_difficulty_level_settings burst_separation;
- struct halo_matg_difficulty_level_settings target_tracking;
- struct halo_matg_difficulty_level_settings target_leading;
- struct halo_matg_difficulty_level_settings overcharge_chance;
- struct halo_matg_difficulty_level_settings special_fire_delay;
- struct halo_matg_difficulty_level_settings guidance_vs_player;
- struct halo_matg_difficulty_level_settings melee_delay_base;
- struct halo_matg_difficulty_level_settings melee_delay_scale;
- };
- struct halo_matg_r4_difficulty_section_grenades
- {
- struct halo_matg_difficulty_level_settings grenade_chance_scale;
- struct halo_matg_difficulty_level_settings grenade_timer_scale;
- };
- struct halo_matg_r4_difficulty_section_placement
- {
- struct halo_matg_difficulty_level_settings major_upgrade_normal;
- struct halo_matg_difficulty_level_settings major_upgrade_few;
- struct halo_matg_difficulty_level_settings major_upgrade_many;
- };
- struct halo_matg_r4_difficulty
- {
- struct halo_matg_r4_difficulty_section_health health;
- uint8_t pad_1[16];
- struct halo_matg_r4_difficulty_section_ranged_fire ranged_fire;
- uint8_t pad_2[16];
- struct halo_matg_r4_difficulty_section_grenades grenades;
- uint8_t pad_3[48];
- struct halo_matg_r4_difficulty_section_placement placement;
- uint8_t pad_4[148];
- };
- struct halo_matg_r5_grenades
- {
- int16_t maximum_count;
- int16_t mp_spawn_default;
- struct halo_dependency d1_throwing_effect; // effe
- struct halo_dependency d2_hud_interface; // grhi
- struct halo_dependency d3_equipment; // eqip
- struct halo_dependency d4_projectile; // proj
- };
- struct halo_matg_r6_rasterizer_data_section_function_textures
- {
- struct halo_dependency d1_distance_attenuation; // bitm
- struct halo_dependency d2_vector_normalization; // bitm
- struct halo_dependency d3_atmospheric_fog_density; // bitm
- struct halo_dependency d4_planar_fog_density; // bitm
- struct halo_dependency d5_linear_corner_fade; // bitm
- struct halo_dependency d6_active_camouflage_distortion; // bitm
- struct halo_dependency d7_glow; // bitm
- };
- struct halo_matg_r6_rasterizer_data_section_default_textures
- {
- struct halo_dependency d1_default_2d; // bitm
- struct halo_dependency d2_default_3d; // bitm
- struct halo_dependency d3_default_cube_map; // bitm
- };
- struct halo_matg_r6_rasterizer_data_section_experimental_textures
- {
- struct halo_dependency d1_test_0; // bitm
- struct halo_dependency d2_test_1; // bitm
- struct halo_dependency d3_test_2; // bitm
- struct halo_dependency d4_test_3; // bitm
- };
- struct halo_matg_r6_rasterizer_data_section_video_effect_textures
- {
- struct halo_dependency d1_video_scanline_map; // bitm
- struct halo_dependency d2_video_noise_map; // bitm
- };
- struct halo_matg_r6_rasterizer_data_section_active_camouflage
- {
- struct halo_matg_active_camouflage_flags_bf flags_bf;
- uint8_t pad_1[2];
- float refraction_amount;
- float distance_falloff;
- struct halo_colorfloat_rgb tint_color;
- float hyper_stealth_refraction;
- float hyper_stealth_distance_falloff;
- struct halo_colorfloat_rgb hyper_stealth_tint_color;
- };
- struct halo_matg_r6_rasterizer_data_section_pc_textures
- {
- struct halo_dependency d1_distance_attenuation_2d; // bitm
- };
- struct halo_matg_r6_rasterizer_data
- {
- struct halo_matg_r6_rasterizer_data_section_function_textures function_textures;
- uint8_t pad_1[60];
- struct halo_matg_r6_rasterizer_data_section_default_textures default_textures;
- struct halo_matg_r6_rasterizer_data_section_experimental_textures experimental_textures;
- struct halo_matg_r6_rasterizer_data_section_video_effect_textures video_effect_textures;
- uint8_t pad_2[53];
- struct halo_matg_r6_rasterizer_data_section_active_camouflage active_camouflage;
- struct halo_matg_r6_rasterizer_data_section_pc_textures pc_textures;
- };
- struct halo_matg_r7_interface_bitmaps
- {
- struct halo_dependency d1_font_system; // font
- struct halo_dependency d2_font_terminal; // font
- struct halo_dependency d3_screen_color_table; // colo
- struct halo_dependency d4_hud_color_table; // colo
- struct halo_dependency d5_editor_color_table; // colo
- struct halo_dependency d6_dialog_color_table; // colo
- struct halo_dependency d7_hud_globals; // hudg
- struct halo_dependency d8_motion_sensor_sweep_bitmap; // bitm
- struct halo_dependency d9_motion_sensor_sweep_bitmap_mask; // bitm
- struct halo_dependency d10_multiplayer_hud_bitmap; // bitm
- struct halo_dependency d11_localization; // strn
- struct halo_dependency d12_hud_digits_definition; // hudn
- struct halo_dependency d13_motion_sensor_blip_bitmap; // bitm
- struct halo_dependency d14_interface_goo_map1; // bitm
- struct halo_dependency d15_interface_goo_map2; // bitm
- struct halo_dependency d16_interface_goo_map3; // bitm
- uint8_t pad_1[48];
- };
- struct halo_matg_r8_weapon_list
- {
- struct halo_dependency d1_weapon; // eqip garb item weap
- };
- struct halo_matg_r9_cheat_powerups
- {
- struct halo_dependency d1_powerup; // eqip
- };
- struct halo_matg_r10_multiplayer_information
- {
- struct halo_dependency d1_flag; // eqip garb item weap
- struct halo_dependency d2_unit; // bipd unit vehi
- struct halo_array r1_vehicles; // maximum of 20 cells 0xA41B9D00
- struct halo_dependency d3_hill_shader; // shdr senv soso schi scex sotr sgla smet spla swat
- struct halo_dependency d4_flag_shader; // shdr senv soso schi scex sotr sgla smet spla swat
- struct halo_dependency d5_ball; // eqip garb item weap
- struct halo_array r2_sounds; // maximum of 60 cells 0xF41B9D00
- uint8_t pad_1[56];
- };
- struct halo_matg_r10_r1_vehicles
- {
- struct halo_dependency d1_vehicle; // vehi
- };
- struct halo_matg_r10_r2_sounds
- {
- struct halo_dependency d1_sound; // snd!
- };
- struct halo_matg_player_movement_speeds
- {
- float forward;
- float backward;
- float sideways;
- float acceleration;
- };
- struct halo_matg_r11_player_information
- {
- struct halo_dependency d1_unit; // bipd unit vehi
- uint8_t pad_1[28];
- float walking_speed;
- float double_speed_multiplier;
- struct halo_matg_player_movement_speeds run;
- struct halo_matg_player_movement_speeds sneak;
- float airborne_acceleration;
- float speed_multiplier;
- uint8_t pad_2[12];
- struct halo_point_3d grenade_origin;
- uint8_t pad_3[12];
- float stun_movement_penalty_frac;
- float stun_turning_penalty_frac;
- float stun_jumping_penalty_frac;
- float minimum_stun_time;
- float maximum_stun_time;
- uint8_t pad_4[8];
- struct halo_ranged_float first_person_idle_time;
- float first_person_skip_fraction_frac;
- uint8_t pad_5[16];
- struct halo_dependency d2_coop_respawn_effect; // effe
- uint8_t pad_6[44];
- };
- struct halo_matg_r12_first_person_interface
- {
- struct halo_dependency d1_first_person_hands; // mod2
- struct halo_dependency d2_base_bitmap; // bitm
- struct halo_dependency d3_shield_meter; // metr
- struct halo_point_2d_int16_t shield_meter_origin;
- struct halo_dependency d4_body_meter; // metr
- struct halo_point_2d_int16_t body_meter_origin;
- struct halo_dependency d5_night_vision_off_to_on_effect; // effe
- struct halo_dependency d6_night_vision_on_to_off_effect; // effe
- uint8_t pad_1[88];
- };
- struct halo_matg_r13_falling_damage
- {
- uint8_t pad_1[8];
- struct halo_ranged_float harmful_falling_distance;
- struct halo_dependency d1_falling_damage; // jpt!
- uint8_t pad_2[8];
- float maximum_falling_distance;
- struct halo_dependency d2_distance_damage; // jpt!
- struct halo_dependency d3_vehicle_environment_collision_damage_effect; // jpt!
- struct halo_dependency d4_vehicle_killed_unit_damage_effect; // jpt!
- struct halo_dependency d5_vehicle_collision_damage; // jpt!
- struct halo_dependency d6_flaming_death_damage; // jpt!
- uint8_t pad_3[28];
- };
- struct halo_matg_r14_materials_section_vehicle_terrain_parameters
- {
- float ground_friction_scale;
- float ground_friction_normal_k1_scale;
- float ground_friction_normal_k0_scale;
- float ground_depth_scale;
- float ground_damp_fraction_scale;
- };
- struct halo_matg_r14_materials_section_breakable_surface_parameters
- {
- float maximum_vitality;
- uint8_t pad_1[12];
- struct halo_dependency d1_effect; // effe
- struct halo_dependency d2_sound; // snd!
- uint8_t pad_2[24];
- struct halo_array r1_particle_effects; // maximum of 8 cells 0x94199D00
- };
- struct halo_matg_r14_materials
- {
- uint8_t pad_1[148];
- struct halo_matg_r14_materials_section_vehicle_terrain_parameters vehicle_terrain_parameters;
- uint8_t pad_2[556];
- struct halo_matg_r14_materials_section_breakable_surface_parameters breakable_surface_parameters;
- uint8_t pad_3[60];
- struct halo_dependency d1_melee_hit_sound; // snd!
- };
- struct halo_matg_r14_r1_particle_effects
- {
- struct halo_dependency d1_particle_type; // part
- struct halo_color_interpolation_flags_bf flags_bf;
- float density;
- struct halo_ranged_float velocity_scale;
- uint8_t pad_1[4];
- struct halo_ranged_float angular_velocity_rad;
- uint8_t pad_2[8];
- struct halo_ranged_float radius;
- uint8_t pad_3[8];
- struct halo_ranged_colorfloat_argb tint;
- uint8_t pad_4[28];
- };
- struct halo_matg_r15_playlist_members
- {
- char map_name[32];
- char game_variant[32];
- int32_t minimum_experience;
- int32_t maximum_experience;
- int32_t minimum_player_count;
- int32_t maximum_player_count;
- int32_t rating;
- uint8_t pad_1[64];
- };
- #pragma mark metr
- struct halo_metr
- {
- uint8_t pad_1[4];
- struct halo_dependency d1_stencil_bitmaps; // bitm
- struct halo_dependency d2_source_bitmap; // bitm
- int16_t stencil_sequence_index;
- int16_t source_sequence_index;
- uint8_t pad_2[20];
- enum halo_metr_color_interpolations interpolate_colors_list;
- enum halo_metr_color_anchors anchor_colors_list;
- uint8_t pad_3[8];
- struct halo_colorfloat_argb empty_color;
- struct halo_colorfloat_argb full_color;
- uint8_t pad_4[20];
- float unmask_distance;
- float mask_distance;
- uint8_t pad_5[12];
- int16_t unknown_1_le; // 64
- int16_t unknown_2_le; // 17
- int16_t unknown_3_le; // 128
- int16_t unknown_4_le; // 32
- struct halo_data encoded_stencil; // 0x387B9C00
- };
- #pragma mark mgs2
- struct halo_mgs2_section_light_volume
- {
- char attachment_marker[32];
- uint8_t pad_1[3];
- struct halo_color_interpolation_flags_bf flags_bf;
- };
- struct halo_mgs2_section_brightness_scale
- {
- float near_fade_distance;
- float far_fade_distance;
- float perpendicular_brightness_scale_frac;
- float parallel_brightness_scale_frac;
- enum halo_function_out_channels source_list;
- };
- struct halo_mgs2_section_bitmaps
- {
- struct halo_dependency d1_map; // bitm
- int16_t bitmaps_sequence_index;
- int16_t bitmaps_count;
- };
- struct halo_mgs2_section_frame_animation
- {
- enum halo_function_out_channels frame_animation_source_list;
- uint8_t pad_1[102];
- struct halo_array r1_frames; // maximum of 2 cells 0x34099D00
- };
- struct halo_mgs2
- {
- struct halo_mgs2_section_light_volume light_volume;
- uint8_t pad_1[16];
- struct halo_mgs2_section_brightness_scale brightness_scale;
- uint8_t pad_2[22];
- struct halo_mgs2_section_bitmaps bitmaps;
- uint8_t pad_3[72];
- struct halo_mgs2_section_frame_animation frame_animation;
- uint8_t pad_4[32];
- };
- struct halo_mgs2_r1_frames
- {
- uint8_t pad_1[16];
- float offset_from_marker;
- float offset_exponent;
- float length;
- uint8_t pad_2[32];
- float radius_hither;
- float radius_yon;
- float radius_exponent;
- uint8_t pad_3[32];
- struct halo_colorfloat_argb tint_color_hither;
- struct halo_colorfloat_argb tint_color_yon;
- float tint_color_exponent;
- float brightness_exponent;
- uint8_t pad_4[32];
- };
- #pragma mark mod2 mode
- // mod2 and mode use the same structures, differing only by some padding and array signatures
- struct halo_mod2
- {
- struct halo_model_flags_bf flags_bf;
- uint32_t node_list_checksum;
- float super_high_detail_cutoff;
- float high_detail_cutoff;
- float medium_detail_cutoff;
- float low_detail_cutoff;
- float super_low_detail_cutoff;
- int16_t super_high_detail_node_count_calc;
- int16_t high_detail_node_count_calc;
- int16_t medium_detail_node_count_calc;
- int16_t low_detail_node_count_calc;
- int16_t super_low_detail_node_count_calc;
- uint8_t pad_1[10];
- struct halo_texture_map_axes base_map_scale;
- uint8_t pad_2[116];
- struct halo_array r1_markers; // maximum of 256 cells 0x90859D00
- struct halo_array r2_nodes; // maximum of 64 cells 0xF4819D00
- struct halo_array r3_regions; // maximum of 32 cells mod2: 0x9C849D00 mode: 0x40849D00
- struct halo_array r4_geometries; // maximum of 256 cells mod2: 0x44819D00 mode: 0xE8809D00
- struct halo_array r5_shaders; // maximum of 32 cells 0x847E9D00
- };
- struct halo_mod2_r1_markers
- {
- char name[32];
- uint16_t magic_identifier;
- uint8_t pad_1[18];
- struct halo_array r1_instances; // maximum of 32 cells 0x1C859D00
- };
- struct halo_mod2_r1_r1_instances
- {
- int8_t region_index;
- int8_t permutation_index;
- int8_t node_index;
- uint8_t pad_1[1];
- struct halo_point_3d translation;
- struct halo_quaternion rotation;
- };
- struct halo_mod2_r2_nodes
- {
- struct halo_render_model_3d_node_identity identity;
- struct halo_point_3d default_translation;
- struct halo_quaternion default_rotation;
- float node_distance_from_parent;
- uint8_t pad_1[84];
- };
- struct halo_mod2_r3_regions
- {
- char name[32];
- uint8_t pad_1[32];
- struct halo_array r1_permutations; // maximum of 32 cells mod2: 0xE4839D00 mode: 0x34839D00
- };
- struct halo_mod2_r3_r1_permutations
- {
- char name[32];
- struct halo_model_region_permutation_flags_bf flags_bf;
- uint8_t pad_1[28];
- int16_t super_low_sel;
- int16_t low_sel;
- int16_t medium_sel;
- int16_t high_sel;
- int16_t super_high_sel;
- uint8_t pad_2[2];
- struct halo_array r1_markers; // maximum of 64 cells 0x74829D00
- };
- struct halo_mod2_r3_r1_r1_markers
- {
- char name[32];
- uint16_t node_index_sel;
- uint8_t pad_1[2];
- struct halo_quaternion rotation;
- struct halo_point_3d translation;
- uint8_t pad_2[16];
- };
- struct halo_mod2_r4_geometries
- {
- uint8_t pad_1[36];
- struct halo_array r1_parts; // maximum of 32 cells mod2: 0x80809D00 mode: 0x647F9D00
- };
- struct halo_mod2_r4_r1_parts
- {
- struct halo_model_geometry_part_flags_bf flags_bf;
- int16_t shader_index_sel;
- int8_t previous_filthy_part_index;
- int8_t next_filthy_part_index;
- int16_t centroid_primary_node;
- int16_t centroid_secondary_node;
- float centroid_primary_weight_frac;
- float centroid_secondary_weight_frac;
- struct halo_point_3d centroid;
- struct halo_array r1_uncompressed_vertices; // maximum of 65535 cells 0x087D9D00
- struct halo_array r2_compressed_vertices; // maximum of 65535 cells 0xB07D9D00
- struct halo_array r3_triangles; // maximum of 65535 cells 0x0C7E9D00
- uint8_t pad_1[64];
- };
- struct halo_mode_r4_r1_parts
- {
- struct halo_model_geometry_part_flags_bf flags_bf;
- int16_t shader_index_sel;
- int8_t previous_filthy_part_index;
- int8_t next_filthy_part_index;
- int16_t centroid_primary_node;
- int16_t centroid_secondary_node;
- float centroid_primary_weight_frac;
- float centroid_secondary_weight_frac;
- struct halo_point_3d centroid;
- struct halo_array r1_uncompressed_vertices; // maximum of 65535 cells 0x087D9D00
- struct halo_array r2_compressed_vertices; // maximum of 65535 cells 0xB07D9D00
- struct halo_array r3_triangles; // maximum of 65535 cells 0x0C7E9D00
- uint8_t pad_1[36];
- };
- struct halo_mod2_r4_r1_r1_uncompressed_vertices
- {
- struct halo_point_3d position;
- struct halo_vector_3d normal;
- struct halo_vector_3d binormal;
- struct halo_vector_3d tangent;
- struct halo_point_2d texture_coords;
- int16_t node_0_index;
- int16_t node_1_index;
- float node_0_weight;
- float node_1_weight;
- };
- struct halo_mod2_r4_r1_r2_compressed_vertices
- {
- struct halo_point_3d position;
- int32_t normal;
- int32_t binormal;
- int32_t tangent;
- struct halo_texture_map_coordinate_axes texture_coordinate;
- int8_t node_0_index;
- int8_t node_1_index;
- int16_t node_0_weight;
- };
- struct halo_mod2_r4_r1_r3_triangles
- {
- int16_t vertex_0_index;
- int16_t vertex_1_index;
- int16_t vertex_2_index;
- };
- struct halo_mod2_r5_shaders
- {
- struct halo_dependency d1_shader; // shdr senv soso schi scex sotr sgla smet spla swat
- int16_t permutation;
- uint8_t pad_1[14];
- };
- #pragma mark mply
- struct halo_mply
- {
- struct halo_array r1_multiplayer_scenarios; // maximum of 32 cells 0x88309C00
- };
- struct halo_mply_r1_multiplayer_scenarios_section_net_map_info
- {
- struct halo_dependency d1_descriptive_bitmap; // bitm
- struct halo_dependency d2_displayed_map_name; // ustr
- char scenario_tag_directory_path[32];
- };
- struct halo_mply_r1_multiplayer_scenarios
- {
- struct halo_mply_r1_multiplayer_scenarios_section_net_map_info net_map_info;
- uint8_t pad_1[4];
- };
- #pragma mark ngpr
- struct halo_ngpr_bitmap_reference
- {
- struct halo_dependency bitmap; // bitm
- int16_t bitmap_index;
- uint8_t pad_1[2];
- };
- struct halo_ngpr
- {
- char name[32];
- struct halo_colorfloat_rgb primary_color;
- struct halo_colorfloat_rgb secondary_color;
- struct halo_ngpr_bitmap_reference pattern;
- struct halo_ngpr_bitmap_reference decal;
- uint8_t pad_1[800];
- };
- #pragma mark part
- struct halo_part
- {
- struct halo_part_flags_bf flags_bf;
- struct halo_dependency d1_bitmap; // bitm
- struct halo_dependency d2_physics; // pphy
- struct halo_dependency d3_material_effects; // foot
- uint8_t pad_1[4];
- struct halo_ranged_float lifespan;
- float fade_in_time;
- float fade_out_time;
- struct halo_dependency d4_collision_effect; // effe snd!
- struct halo_dependency d5_death_effect; // effe snd!
- float minimum_size;
- uint8_t pad_2[8];
- struct halo_ranged_float radius_animation;
- uint8_t pad_3[4];
- struct halo_ranged_float animation_rate;
- float contact_deterioration;
- float fade_start_size;
- float fade_end_size;
- uint8_t pad_4[4];
- int16_t first_sequence_index;
- int16_t initial_sequence_count;
- int16_t looping_sequence_count;
- int16_t final_sequence_count;
- uint8_t pad_5[12];
- enum halo_render_orientations orientation_list;
- uint8_t pad_6[42];
- struct halo_particle_shader particle_shader;
- };
- #pragma mark pctl
- struct halo_pctl_section_system_behavior
- {
- struct halo_dependency d1_point_physics; // pphy
- enum halo_pctl_system_origin_update_physics_behaviors system_update_physics_list;
- uint8_t pad_1[6];
- struct halo_array r1_physics_constants; // maximum of 16 cells 0x54FE9C00
- };
- struct halo_pctl
- {
- uint8_t pad_1[56];
- struct halo_pctl_section_system_behavior system_behavior;
- struct halo_array r2_particle_types; // maximum of 4 cells 0x24039D00
- };
- struct halo_pctl_r_physics_constants
- {
- float k;
- };
- struct halo_pctl_r2_particle_types
- {
- char name[32];
- struct halo_pctl_particle_type_flags_bf flags_bf;
- int16_t initial_particle_count;
- uint8_t pad_1[2];
- enum halo_pctl_complex_sprite_render_modes complex_sprite_render_modes_list;
- uint8_t pad_2[2];
- float radius;
- uint8_t pad_3[36];
- enum halo_pctl_particle_creation_physics_behaviors particle_creation_physics_list;
- uint8_t pad_4[6];
- struct halo_array r1_physics_constants; // maximum of 16 cells 0x54FE9C00
- struct halo_array r2_states; // maximum of 8 cells 0x80FF9C00
- struct halo_array r3_particle_states; // maximum of 8 cells 0xD8019D00
- };
- struct halo_pctl_particle_timing_bounds
- {
- struct halo_ranged_float duration;
- struct halo_ranged_float transition_time;
- };
- struct halo_pctl_r2_r2_states
- {
- char name[32];
- struct halo_pctl_particle_timing_bounds timing_bounds;
- uint8_t pad_1[4];
- float scale_multiplier;
- float animation_rate_multiplier;
- float rotation_rate_multiplier;
- struct halo_colorfloat_argb color_multiplier;
- float radius_multiplier;
- float minimum_particle_count;
- float particle_creation_rate;
- uint8_t pad_2[84];
- enum halo_pctl_particle_creation_physics_behaviors particle_creation_physics_list;
- enum halo_pctl_particle_update_physics_behaviors particle_update_physics_list;
- struct halo_array r1_physics_constants; // maximum of 16 cells 0x54FE9C00
- };
- struct halo_pctl_r2_r3_particle_states
- {
- char name[32];
- struct halo_pctl_particle_timing_bounds timing_bounds;
- struct halo_dependency d1_bitmaps; // bitm
- int16_t sequence_index;
- uint8_t pad_1[6];
- struct halo_ranged_float scale;
- struct halo_ranged_float animation_rate;
- struct halo_ranged_float rotation_rate_rad; // does the game correctly interpret these animation and rotation rate values? (Moses of Egypt mentioned that some CMT modders said these two values, as they are stored in radians, are mis-interpreted by the game as having been degrees -- so when you type 360 degrees, it is stored as 3.14, but the game thinks it is 3.14 degrees.) The values are stored correctly as Guerilla says, but does the game mis-interpret the radians value as degrees? If so, maybe Zeus will need to improperly store the value as degrees rather than radians.
- struct halo_colorfloat_argb color_1;
- struct halo_colorfloat_argb color_2;
- float radius_multiplier;
- struct halo_dependency d2_point_physics; // pphy
- uint8_t pad_2[76];
- struct halo_particle_shader particle_shader;
- struct halo_array r1_physics_constants; // maximum of 16 cells 0x54FE9C00
- };
- #pragma mark phys
- struct halo_phys
- {
- float radius;
- float moment_scale_frac;
- float mass;
- struct halo_point_3d center_of_mass;
- float density;
- float gravity_scale;
- float ground_friction;
- float ground_depth;
- float ground_damp_fraction_frac;
- float ground_normal_k1;
- float ground_normal_k0;
- uint8_t pad_1[4];
- float water_friction;
- float water_depth;
- float water_density;
- uint8_t pad_2[4];
- float air_friction_frac;
- uint8_t pad_3[4];
- float xx_moment_calc;
- float yy_moment_calc;
- float zz_moment_calc;
- struct halo_array r1_inertial_matrix_and_inverse; // maximum of 2 cells 0x684B9D00
- struct halo_array r2_powered_mass_points; // maximum of 32 cells 0x304C9D00
- struct halo_array r3_mass_points; // maximum of 32 cells 0x604D9D00
- };
- struct halo_phys_r1_inertial_matrix_and_inverse
- {
- struct halo_vector_3d yyzz_xy_zx_calc;
- struct halo_vector_3d xy_zzxx_yz_calc;
- struct halo_vector_3d zx_yz_xxyy_calc;
- };
- struct halo_phys_r2_powered_mass_points
- {
- char name[32];
- struct halo_phys_powered_mass_points_flags_bf flags_bf;
- float antigrav_strength;
- float antigrav_offset;
- float antigrav_height;
- float antigrav_damp_fraction;
- float antigrav_normal_k1;
- float antigrav_normal_k0;
- uint8_t pad_1[68];
- };
- struct halo_phys_r3_mass_points
- {
- char name[32];
- int16_t powered_mass_point_sel;
- int16_t model_node;
- struct halo_phys_mass_points_flags_bf flags_bf;
- float relative_mass;
- float mass_calc;
- float relative_density;
- float density_calc;
- struct halo_point_3d position;
- struct halo_vector_3d forward;
- struct halo_vector_3d up;
- enum halo_phys_mass_point_friction_types friction_type_list;
- uint8_t pad_1[2];
- float friction_parallel_scale;
- float friction_perpendicular_scale;
- float radius;
- uint8_t pad_2[20];
- };
- #pragma mark plac scen
- struct halo_plac_scen
- {
- struct halo_obje obje;
- uint8_t pad_1[128];
- };
- #pragma mark pphy
- struct halo_pphy
- {
- struct halo_pphy_flags_bf flags_bf;
- uint8_t pad_1[28];
- float density;
- float air_friction;
- float water_friction;
- float surface_friction;
- float elasticity;
- uint8_t pad_2[12];
- };
- #pragma mark proj
- struct halo_proj_section_detonation
- {
- float arming_time;
- float danger_radius;
- struct halo_dependency d1_effect; // effe
- struct halo_ranged_float timer;
- float minimum_velocity;
- float maximum_range;
- };
- struct halo_proj_section_physics
- {
- float air_gravity_scale;
- struct halo_ranged_float air_damage_range;
- float water_gravity_scale;
- struct halo_ranged_float water_damage_range;
- float initial_velocity;
- float final_velocity;
- float guided_angular_velocity_rad;
- enum halo_sound_volumes detonation_noise_list;
- uint8_t pad_1[2];
- struct halo_dependency d1_detonation_started; // effe
- struct halo_dependency d2_flyby_sound; // snd!
- struct halo_dependency d3_attached_detonation_damage; // jpt!
- struct halo_dependency d4_impact_damage; // jpt!
- uint8_t pad_2[12];
- struct halo_array r1_material_responses; // maximum of 33 cells 0x5CFA9C00
- };
- // it might be nice to reorganize some of these metadata entries in the GUI
- struct halo_proj
- {
- struct halo_obje obje;
- struct halo_proj_flags_bf flags_bf;
- enum halo_proj_timer_triggers detonation_timer_starts_list;
- enum halo_sound_volumes impact_noise_list;
- enum halo_proj_channel_functions A_in_list;
- enum halo_proj_channel_functions B_in_list;
- enum halo_proj_channel_functions C_in_list;
- enum halo_proj_channel_functions D_in_list;
- struct halo_dependency d1_super_detonation; // effe
- float ai_perception_radius;
- float collision_radius;
- struct halo_proj_section_detonation detonation;
- struct halo_proj_section_physics physics;
- };
- struct halo_proj_r1_material_responses_section_default_result
- {
- enum halo_material_responses response_list;
- struct halo_dependency d1_effect; // effe
- };
- struct halo_proj_r1_material_responses_section_potential_result
- {
- enum halo_material_responses response_list;
- uint8_t pad_1[1];
- struct halo_proj_material_response_potential_result_flags_bf flags_bf;
- float skip_fraction_frac;
- struct halo_ranged_float between_rad;
- struct halo_ranged_float _and;
- struct halo_dependency d1_effect; // effe
- };
- struct halo_proj_r1_material_responses_section_misc
- {
- enum halo_material_response_effect_scaling scale_effects_by_list;
- uint8_t pad_1[2];
- float angular_noise_rad;
- float velocity_noise;
- struct halo_dependency d1_detonation_effect; // effe
- };
- struct halo_proj_r1_material_responses_section_penetration
- {
- float initial_friction;
- float maximum_distance;
- };
- struct halo_proj_r1_material_responses_section_reflection
- {
- float parallel_friction;
- float perpendicular_friction;
- };
- struct halo_proj_r1_material_responses
- {
- uint8_t pad_1[1];
- struct halo_proj_material_response_flags_bf flags_bf;
- struct halo_proj_r1_material_responses_section_default_result default_result;
- uint8_t pad_2[16];
- struct halo_proj_r1_material_responses_section_potential_result potential_result;
- uint8_t pad_3[16];
- struct halo_proj_r1_material_responses_section_misc miscellaneous;
- uint8_t pad_4[24];
- struct halo_proj_r1_material_responses_section_penetration penetration;
- struct halo_proj_r1_material_responses_section_reflection reflection;
- };
- #pragma mark rain
- struct halo_rain
- {
- uint8_t pad_1[36];
- struct halo_array r1_particle_types; // maximum of 8 cells 0xBC119D00
- };
- struct halo_rain_r1_particle_types_section_shader
- {
- struct halo_dependency d1_sprite_bitmap; // bitm
- enum halo_render_orientations render_mode_list;
- enum halo_render_direction_sources render_direction_source_list;
- uint8_t pad_1[40];
- struct halo_particle_shader particle_shader;
- };
- struct halo_rain_particle_fading_bounds
- {
- float start;
- float end;
- };
- struct halo_rain_particle_fading
- {
- struct halo_rain_particle_fading_bounds fade_in;
- struct halo_rain_particle_fading_bounds fade_out;
- };
- struct halo_rain_r1_particle_types
- {
- char name[32];
- struct halo_rain_flags_bf flags_bf;
- struct halo_rain_particle_fading fading_distance;
- struct halo_rain_particle_fading fading_height;
- uint8_t pad_1[96];
- struct halo_ranged_float particle_count;
- struct halo_dependency d1_physics; // pphy
- uint8_t pad_2[16];
- struct halo_ranged_float acceleration_magnitude;
- float acceleration_turning_rate_frac;
- float acceleration_change_rate;
- uint8_t pad_3[32];
- struct halo_ranged_float particle_radius;
- struct halo_ranged_float animation_rate;
- struct halo_ranged_float rotation_rate_rad;
- uint8_t pad_4[32];
- struct halo_ranged_colorfloat_argb color;
- uint8_t pad_5[64];
- struct halo_rain_r1_particle_types_section_shader shader;
- };
- #pragma mark sbsp
- // note: all the IJKD planes are calculated normalized in Guerilla; only the D remains as entered
- struct halo_sbsp
- {
- struct halo_dependency d1_lightmaps; // bitm
- float vehicle_floor;
- float vehicle_ceiling;
- uint8_t pad_1[20];
- struct halo_colorfloat_rgb default_ambient_color;
- uint8_t pad_2[4];
- struct halo_colorfloat_rgb default_distant_light_0_color;
- struct halo_vector_3d default_distant_light_0_direction;
- struct halo_colorfloat_rgb default_distant_light_1_color;
- struct halo_vector_3d default_distant_light_1_direction;
- uint8_t pad_3[12];
- struct halo_colorfloat_argb default_reflection_tint;
- struct halo_vector_3d default_shadow_vector;
- struct halo_colorfloat_rgb default_shadow_color;
- uint8_t pad_4[4];
- struct halo_array r1_collision_materials; // maximum of 512 cells 0xBCE59C00
- struct halo_array r2_collision_bsp; // maximum of 1 cell 0x6CE59C00
- struct halo_array r3_nodes; // maximum of 131072 cells 0xD0D89C00
- struct halo_cube world_bounds;
- struct halo_array r4_leaves; // maximum of 65536 cells 0xF0D99C00
- struct halo_array r5_leaf_surfaces; // maximum of 262144 cells 0x7CD99C00
- struct halo_array r6_surfaces; // maximum of 131072 cells 0x2CD99C00
- struct halo_array r7_lightmaps; // maximum of 128 cells 0xF4DB9C00
- uint8_t pad_5[12];
- struct halo_array r8_lens_flares; // maximum of 256 cells 0xCCE49C00
- struct halo_array r9_lens_flare_markers; // maximum of 65536 cells 0x40E59C00
- struct halo_array r10_clusters; // maximum of 8192 cells 0x28E09C00
- struct halo_data cluster_data; // max 65536 bytes 0xA8D89C00
- struct halo_array r11_cluster_portals; // maximum of 512 cells 0x54E19C00
- uint8_t pad_6[12];
- struct halo_array r12_breakable_surfaces; // maximum of 256 cells 0x88E49C00
- struct halo_array r13_fog_planes; // maximum of 32 cells 0x8CE39C00
- struct halo_array r14_fog_regions; // maximum of 32 cells 0x24E39C00
- struct halo_array r15_fog_palette; // maximum of 32 cells 0xC8E29C00
- uint8_t pad_7[24];
- struct halo_array r16_weather_palette; // maximum of 32 cells 0x48DE9C00
- struct halo_array r17_weather_polyhedra; // maximum of 32 cells 0x00E29C00
- uint8_t pad_8[24];
- struct halo_array r18_pathfinding_surfaces; // maximum of 131072 cells 0xD0E39C00
- struct halo_array r19_pathfinding_edges; // maximum of 262144 cells 0x14E49C00
- struct halo_array r20_background_sound_palette; // maximum of 64 cells 0x18DD9C00
- struct halo_array r21_sound_environment_palette; // maximum of 64 cells 0x74DD9C00
- struct halo_data sound_PAS_data; // max 131072 bytes 0xE8E59C00
- uint8_t pad_9[24];
- struct halo_array r22_markers; // maximum of 1024 cells 0x28E69C00
- struct halo_array r23_detail_objects; // maximum of 1 cell 0xA0E69C00
- struct halo_array r24_runtime_decals; // maximum of 6144 cells 0xE4E69C00
- uint8_t pad_10[12];
- struct halo_array r25_leaf_map_leaves; // maximum of 65536 cells 0x484CA100
- struct halo_array r26_leaf_map_portals; // maximum of 524288 cells 0xF44CA100
- };
- struct halo_sbsp_r1_collision_materials
- {
- struct halo_dependency d1_shader; // shdr senv soso schi scex sotr sgla smet spla swat
- uint8_t pad_1[4];
- };
- struct halo_sbsp_r3_nodes
- {
- int16_t unknown_1;
- int16_t unknown_2;
- int16_t unknown_3;
- };
- // retesting required: see line 11034 in ZRL
- struct halo_sbsp_r4_leaves
- {
- int16_t unknown_1;
- int16_t unknown_2;
- int16_t unknown_3;
- uint8_t pad_1[2];
- int16_t cluster;
- int16_t surface_reference_count;
- int32_t surface_references_sel;
- };
- struct halo_sbsp_r5_leaf_surfaces
- {
- int32_t surface_sel;
- int32_t node_sel;
- };
- struct halo_sbsp_r6_surfaces
- {
- int16_t a1;
- int16_t a2;
- int16_t a3;
- };
- struct halo_sbsp_r7_lightmaps
- {
- int16_t bitmap;
- uint8_t pad_1[18];
- struct halo_array r1_materials; // maximum of 2048 cells 0x8CDB9C00
- };
- struct halo_sbsp_r7_r1_materials
- {
- struct halo_dependency d1_shader; // shdr senv soso schi scex sotr sgla smet spla swat
- int16_t shader_permutation;
- uint8_t pad_1[1];
- struct halo_sbsp_lightmap_material_flags_bf flags_bf;
- int32_t surfaces_sel;
- int32_t surface_count;
- struct halo_point_3d centroid;
- struct halo_colorfloat_rgb ambient_color;
- int16_t distant_light_count;
- uint8_t pad_2[2];
- struct halo_colorfloat_rgb distant_light_0_color;
- struct halo_vector_3d distant_light_0_direction;
- struct halo_colorfloat_rgb distant_light_1_color;
- struct halo_vector_3d distant_light_1_direction;
- struct halo_colorfloat_argb reflection_tint;
- struct halo_vector_3d shadow_vector;
- struct halo_colorfloat_rgb shadow_color;
- struct halo_plane_3d plane;
- int16_t breakable_surface;
- uint8_t pad_3[6];
- uint32_t count1;
- uint32_t offset1;
- uint32_t unknown_a1_le;
- uint32_t unknown_a2_le;
- uint32_t unknown_a3_le;
- uint32_t count2;
- uint32_t offset2;
- uint32_t unknown_b1_le;
- uint32_t unknown_b2_le;
- struct halo_data uncompressed_vertices; // max 4864000 bytes 0x88D89C00
- struct halo_data compressed_vertices; // max 2560000 bytes 0x98D89C00
- };
- struct halo_sbsp_r8_lens_flares
- {
- struct halo_dependency d1_lens_flare; // lens
- };
- struct halo_sbsp_r9_lens_flare_markers
- {
- struct halo_point_3d position;
- struct halo_vector_3d_component direction_component;
- int8_t lens_flare_index;
- };
- struct halo_sbsp_r10_clusters
- {
- int16_t sky;
- int16_t fog;
- int16_t background_sound_sel;
- int16_t sound_environment_sel;
- int16_t weather_sel;
- int16_t transition_structure_bsp;
- uint8_t pad_1[28];
- struct halo_array r1_predicted_resources; // maximum of 1024 cells 0x105FA000
- struct halo_array r2_subclusters; // maximum of 4096 cells 0xF4DE9C00
- int16_t first_lens_flare_marker_index;
- int16_t lens_flare_marker_count;
- struct halo_array r3_surface_indices; // maximum of 32768 cells 0x38DF9C00
- struct halo_array r4_mirrors; // maximum of 16 cells 0xA0DC9C00
- struct halo_array r5_portals; // maximum of 128 cells 0x6CE09C00
- };
- struct halo_sbsp_r10_r2_subclusters
- {
- struct halo_cube world_bounds;
- struct halo_array r1_surface_indices; // maximum of 128 cells 0x8CDE9C00
- };
- struct halo_sbsp_surface_indices
- {
- int32_t index;
- };
- struct halo_sbsp_r10_r4_mirrors
- {
- struct halo_plane_3d plane;
- uint8_t pad_1[20];
- struct halo_dependency d1_shader; // shdr senv soso schi scex sotr sgla smet spla swat
- struct halo_array r1_vertices; // maximum of 512 cells 0x38DC9C00
- };
- struct halo_sbsp_vertex_points
- {
- struct halo_point_3d point;
- };
- struct halo_sbsp_r10_r5_portals
- {
- int16_t portal;
- };
- struct halo_sbsp_r11_cluster_portals
- {
- int16_t front_cluster;
- int16_t back_cluster;
- int32_t plane_index;
- struct halo_sphere bounding_sphere;
- struct halo_sbsp_cluster_portal_flags_bf flags_bf;
- uint8_t pad_1[24];
- struct halo_array r1_vertices; // maximum of 128 cells 0xB0E09C00
- };
- struct halo_sbsp_r12_breakable_surfaces
- {
- struct halo_sphere bounding_sphere;
- int32_t collision_surface_index;
- uint8_t pad_1[28];
- };
- struct halo_sbsp_r13_fog_planes
- {
- int16_t front_region_sel;
- uint8_t pad_1[2];
- struct halo_plane_3d plane;
- struct halo_array r1_vertices; // maximum of 4096 cells 0x44E29C00
- };
- struct halo_sbsp_r14_fog_regions
- {
- uint8_t pad_1[36];
- int16_t fog_palette_sel;
- int16_t weather_palette_sel;
- };
- struct halo_sbsp_15_fog_palette
- {
- char name[32];
- struct halo_dependency d1_fog; // fog
- uint8_t pad_1[4];
- char fog_scale_function[32];
- uint8_t pad_2[52];
- };
- struct halo_sbsp_r16_weather_palette
- {
- char name[32];
- struct halo_dependency d1_particle_system; // rain
- uint8_t pad_1[4];
- char particle_system_scale_function[32];
- uint8_t pad_2[44];
- struct halo_dependency d2_wind; // wind
- struct halo_vector_3d wind_direction;
- float wind_magnitude;
- uint8_t pad_3[4];
- char wind_scale_function[32];
- uint8_t pad_4[44];
- };
- struct halo_sbsp_r17_weather_polyhedra
- {
- struct halo_sphere bounding_sphere;
- uint8_t pad_1[4];
- struct halo_array r1_planes; // maximum of 16 cells 0x98E19C00
- };
- struct halo_sbsp_r18_pathfinding_surfaces
- {
- int8_t data;
- };
- struct halo_sbsp_r19_pathfinding_edges
- {
- int8_t midpoint;
- };
- struct halo_sbsp_r20_background_sound_palette
- {
- char name[32];
- struct halo_dependency d1_background_sound; // lsnd
- uint8_t pad_1[4];
- char scale_function[32];
- uint8_t pad_2[32];
- };
- struct halo_sbsp_r21_sound_environment_palette
- {
- char name[32];
- struct halo_dependency d1_sound_environment; // snde
- uint8_t pad_1[32];
- };
- struct halo_sbsp_r22_markers
- {
- char name[32];
- struct halo_quaternion rotation;
- struct halo_point_3d position;
- };
- struct halo_sbsp_r23_detail_objects
- {
- struct halo_array r1_cells; // maximum of 262144 cells 0xF42E9C00
- struct halo_array r2_instances; // maximum of 2097152 cells 0x682F9C00
- struct halo_array r3_counts; // maximum of 8388608 cells 0xAC2F9C00
- struct halo_array r4_z_reference_vectors; // maximum of 262144 cells 0x14309C00
- };
- // retesting required, see line 11739 in ZRL
- struct halo_sbsp_r23_r1_cells
- {
- int16_t q1;
- int16_t q2;
- int16_t q3;
- int16_t q4;
- int32_t q5;
- int32_t q6;
- int32_t q7;
- uint8_t pad_1[12];
- };
- struct halo_sbsp_r23_r2_instances
- {
- int8_t q1;
- int8_t q2;
- int8_t q3;
- int8_t q4;
- int16_t q5;
- };
- struct halo_sbsp_r23_r3_counts
- {
- int16_t q1;
- };
- struct halo_sbsp_r23_r4_z_reference_vectors
- {
- float q1;
- float q2;
- float q3;
- float q4;
- };
- // line 11791 in ZRL
- struct halo_sbsp_r25_leaf_map_leaves
- {
- struct halo_array r1_faces; // maximum of 256 cells 0xF84BA100
- struct halo_array r2_portal_indices; // maximum of 256 cells 0xA84BA100
- };
- struct halo_sbsp_r25_r1_faces
- {
- int32_t node_index;
- struct halo_array r1_vertices; // maximum of 64 cells 0x644BA100
- };
- struct halo_sbsp_r25_r1_r1_vertices
- {
- struct halo_point_2d vertex;
- };
- struct halo_sbsp_r25_r2_portal_indices
- {
- int32_t portal_index;
- };
- struct halo_sbsp_r26_leaf_map_portals
- {
- int32_t plane_index;
- int32_t back_leaf_index;
- int32_t front_leaf_index;
- struct halo_array r1_vertices; // maximum of 64 cells 0x8C4CA100
- };
- #pragma mark scex
- struct halo_scex
- {
- struct halo_shdr shdr;
- struct halo_shader_transparency chicago_shader_extended;
- uint8_t pad_1[2];
- struct halo_shader_section_lens_flares lens_flares;
- struct halo_array r1_extra_layers; // maximum of 4 cells 0x94A59C00
- struct halo_array r2_four_stage_maps; // maximum of 4 cells 0x78AE9C00
- struct halo_array r3_two_stage_maps; // maximum of 4 cells 0x78AE9C00
- struct halo_schi_extra_flags_bf extra_flags_bf;
- uint8_t pad_2[8];
- };
- #pragma mark schi
- struct halo_schi
- {
- struct halo_shdr shdr;
- struct halo_shader_transparency chicago_shader;
- uint8_t pad_1[2];
- struct halo_shader_section_lens_flares lens_flares;
- struct halo_array r1_extra_layers; // maximum of 4 cells 0x94A59C00
- struct halo_array r2_maps; // maximum of 4 cells 0x78AE9C00
- struct halo_schi_extra_flags_bf extra_flags_bf;
- uint8_t pad_2[8];
- };
- #pragma mark scnr
- struct halo_scnr
- {
- struct halo_dependency d1_do_not_use; // sbsp
- struct halo_dependency d2_will_not_use; // sbsp
- struct halo_dependency d3_can_not_use; // sky
- struct halo_array r1_skies; // maximum of 8 cells 0x88D39C00
- enum halo_scnr_types type_list;
- uint8_t pad_1[1];
- struct halo_scnr_flags_bf flags_bf;
- struct halo_array r2_child_scenarios; // maximum of 16 cells 0x38D39C00
- float local_north_rad;
- uint8_t pad_2[156];
- struct halo_array r3_predicted_resources_calc; // maximum of 1024 cells 0x105FA000
- struct halo_array r4_functions; // maximum of 32 cells 0x74BD9C00
- struct halo_data editor_scenario_data; // 0xD8D39C00
- struct halo_array r5_comments; // maximum of 1024 cells 0x28D49C00
- uint8_t pad_3[224];
- struct halo_array r6_object_names; // maximum of 512 cells 0xC4BD9C00
- struct halo_array r7_scenery; // maximum of 2000 cells 0x94C49C00
- struct halo_array r8_scenery_palette; // maximum of 100 cells 0xE4C39C00
- struct halo_array r9_bipeds; // maximum of 128 cells 0x54C89C00
- struct halo_array r10_biped_palette; // maximum of 100 cells 0x70C79C00
- struct halo_array r11_vehicles; // maximum of 80 cells 0x00CA9C00
- struct halo_array r12_vehicle_palette; // maximum of 100 cells 0xF8C89C00
- struct halo_array r13_equipment; // maximum of 256 cells 0xA8C59C00
- struct halo_array r14_equipment_palette; // maximum of 100 cells 0x04C59C00
- struct halo_array r15_weapons; // maximum of 128 cells 0x08C79C00
- struct halo_array r16_weapon_palette; // maximum of 100 cells 0x18C69C00
- struct halo_array r17_device_groups; // maximum of 128 cells 0x3CBE9C00
- struct halo_array r18_machines; // maximum of 400 cells 0x5CCB9C00
- struct halo_array r19_machine_palette; // maximum of 100 cells 0x90CA9C00
- struct halo_array r20_controls; // maximum of 100 cells 0xB0CC9C00
- struct halo_array r21_control_palette; // maximum of 100 cells 0xC4CB9C00
- struct halo_array r22_light_fixtures; // maximum of 500 cells 0xF8CD9C00
- struct halo_array r23_light_fixtures_palette; // maximum of 100 cells 0x0CCD9C00
- struct halo_array r24_sound_scenery; // maximum of 256 cells 0xE0CE9C00
- struct halo_array r25_sound_scenery_palette; // maximum of 100 cells 0x54CE9C00
- uint8_t pad_4[84];
- struct halo_array r26_player_starting_profile; // maximum of 256 cells 0xECC19C00
- struct halo_array r27_player_starting_locations; // maximum of 256 cells 0x90C29C00
- struct halo_array r28_trigger_volumes; // maximum of 256 cells 0x08C39C00
- struct halo_array r29_recorded_animations; // maximum of 1024 cells 0x2043A100
- struct halo_array r30_netgame_flags; // maximum of 200 cells 0xFCC09C00
- struct halo_array r31_netgame_equipment; // maximum of 200 cells 0x94BF9C00
- struct halo_array r32_starting_equipment; // maximum of 200 cells 0x78C09C00
- struct halo_array r33_bsp_switch_trigger_volumes; // maximum of 256 cells 0x70C39C00
- struct halo_array r34_decals; // maximum of 65536 cells 0x38D09C00
- struct halo_array r35_decal_palette; // maximum of 128 cells 0xD0CF9C00
- struct halo_array r36_detail_object_collection_palette; // maximum of 32 cells 0x30CF9C00
- uint8_t pad_5[84];
- struct halo_array r37_actor_palette; // maximum of 64 cells 0x8C33A100
- struct halo_array r38_encounters; // maximum of 128 cells 0x8C3FA100
- struct halo_array r39_command_lists; // maximum of 256 cells 0x4C39A100
- struct halo_array r40_ai_animation_references; // maximum of 128 cells 0x4837A100
- struct halo_array r41_ai_script_references; // maximum of 128 cells 0x9837A100
- struct halo_array r42_ai_recording_references; // maximum of 128 cells 0xE837A100
- struct halo_array r43_ai_conversations; // maximum of 128 cells 0x6842A100
- struct halo_data script_syntax_data; // 0x9C32A100
- struct halo_data script_string_data; // 0xAC32A100
- struct halo_array r44_scripts; // maximum of 512 cells 0xA830A100
- struct halo_array r45_globals; // maximum of 128 cells 0x2C31A100
- struct halo_array r46_references; // maximum of 256 cells 0x8831A100
- struct halo_array r47_source_files; // maximum of 8 cells 0xE831A100
- uint8_t pad_6[24];
- struct halo_array r48_cutscene_flags; // maximum of 512 cells 0xB0D09C00
- struct halo_array r49_cutscene_camera_points; // maximum of 512 cells 0x40D19C00
- struct halo_array r50_cutscene_titles; // maximum of 64 cells 0x80D29C00
- uint8_t pad_7[108];
- struct halo_dependency d4_custom_object_names; // ustr
- struct halo_dependency d5_ingame_help_text; // ustr
- struct halo_dependency d6_hud_messages; // hmt
- struct halo_array r51_structure_bsps; // maximum of 16 cells 0xDCD29C00
- };
- struct halo_scnr_instance_orientation_2d
- {
- struct halo_point_3d position;
- float facing_rad;
- };
- struct halo_scnr_instance_orientation_3d
- {
- struct halo_point_3d position;
- struct halo_angle_3d rotation_rad;
- };
- struct halo_scnr_devi
- {
- uint8_t pad_1[8];
- int16_t power_group_sel;
- int16_t position_group_sel;
- struct halo_scenario_device_flags_bf flags_bf;
- };
- struct halo_scnr_obje
- {
- int16_t type_sel;
- int16_t name_sel;
- uint8_t pad_1[1];
- struct halo_scenario_object_not_placed_flags_bf not_placed_bf;
- int16_t desired_permutation;
- struct halo_scnr_instance_orientation_3d orientation;
- };
- struct halo_scnr_unit
- {
- uint8_t pad_1[40];
- float body_vitality;
- struct halo_scenario_unit_flags_bf flags_bf;
- };
- struct halo_scnr_object_palette
- {
- struct halo_dependency d1_name; // (varies)
- uint8_t pad_1[32];
- };
- struct halo_scnr_r1_skies
- {
- struct halo_dependency d1_sky; // sky
- };
- struct halo_scnr_r2_child_scenarios
- {
- struct halo_dependency d1_child_scenario; // scnr
- uint8_t pad_1[16];
- };
- struct halo_scnr_r4_functions
- {
- struct halo_scnr_function_flags_bf flags_bf;
- char name[32];
- float period;
- int16_t scale_period_by_sel;
- enum halo_function_behaviors function_list;
- int16_t scale_function_by_sel;
- enum halo_function_behaviors wobble_function_list;
- float wobble_period;
- float wobble_magnitude;
- float square_wave_threshold_frac;
- int16_t step_count;
- enum halo_function_mappings map_to_list;
- int16_t sawtooth_count;
- uint8_t pad_1[2];
- int16_t scale_result_by_sel;
- enum halo_function_bounds bounds_mode_list;
- struct halo_ranged_float bounds_frac;
- uint8_t pad_2[6];
- int16_t turn_off_with_sel;
- uint8_t pad_3[32];
- };
- struct halo_scnr_r5_comments
- {
- struct halo_point_3d position;
- uint8_t pad_1[16];
- struct halo_data comment; // 0xE8D39C00
- };
- struct halo_scnr_r6_object_names
- {
- char name[32];
- enum halo_obje_types obje_index_list_le;
- int16_t obje_id_le;
- };
- struct halo_scnr_r7_scenery
- {
- struct halo_scnr_obje obje;
- uint32_t unknown_1;
- uint8_t pad_1[36];
- };
- struct halo_scnr_r8_scenery_palette
- {
- struct halo_scnr_object_palette scen;
- };
- struct halo_scnr_r9_bipeds
- {
- struct halo_scnr_obje obje;
- struct halo_scnr_unit unit;
- uint8_t pad_2[40];
- };
- struct halo_scnr_r10_biped_palette
- {
- struct halo_scnr_object_palette bipd;
- };
- struct halo_scnr_r11_vehicles
- {
- struct halo_scnr_obje obje;
- struct halo_scnr_unit unit;
- uint8_t pad_1[8];
- int8_t multiplayer_team_index;
- uint8_t pad_2[1];
- struct halo_scnr_vehicle_multiplayer_spawn_flags_bf multiplayer_spawn_flags_bf;
- uint8_t pad_3[28];
- };
- struct halo_scnr_r12_vehicle_palette
- {
- struct halo_scnr_object_palette vehi;
- };
- struct halo_scnr_r13_equipment
- {
- struct halo_scnr_obje obje;
- int16_t unknown_1; // undocumented big endian value (first occurrence in d40 @ 57116) (ignored by Guerilla)
- uint8_t pad_1[1];
- struct halo_scnr_item_flags_bf misc_flags_bf;
- uint8_t pad_2[4];
- };
- struct halo_scnr_r14_equipment_palette
- {
- struct halo_scnr_object_palette eqip;
- };
- struct halo_scnr_r15_weapons
- {
- struct halo_scnr_obje obje;
- uint8_t pad_1[40];
- int16_t rounds_left;
- int16_t rounds_loaded;
- uint8_t pad_2[1];
- struct halo_scnr_item_flags_bf flags_bf;
- uint8_t pad_3[14];
- };
- struct halo_scnr_r16_weapon_palette
- {
- struct halo_scnr_object_palette weap;
- };
- struct halo_scnr_r17_device_groups
- {
- char name[32];
- float initial_value;
- struct halo_scnr_device_group_flags_bf flags_bf;
- uint8_t pad_1[12];
- };
- struct halo_scnr_r18_machines
- {
- struct halo_scnr_obje obje;
- struct halo_scnr_devi devi;
- struct halo_scnr_machine_flags_bf flags_bf;
- uint8_t pad_1[12];
- };
- struct halo_scnr_r19_machine_palette
- {
- struct halo_scnr_object_palette mach;
- };
- struct halo_scnr_r20_controls
- {
- struct halo_scnr_obje obje;
- struct halo_scnr_devi devi;
- struct halo_scnr_control_flags_bf flags_bf;
- int16_t do_not_touch_this; // a sapien-used value
- uint8_t pad_1[10];
- };
- struct halo_scnr_r21_control_palette
- {
- struct halo_scnr_object_palette ctrl;
- };
- struct halo_scnr_r22_light_fixtures
- {
- struct halo_scnr_obje obje;
- struct halo_scnr_devi devi;
- struct halo_colorfloat_rgb color;
- float intensity;
- float falloff_angle_rad;
- float cutoff_angle_rad;
- uint8_t pad_1[16];
- };
- struct halo_scnr_r23_light_fixtures_palette
- {
- struct halo_scnr_object_palette lifi;
- };
- struct halo_scnr_r24_sound_scenery
- {
- struct halo_scnr_obje obje;
- uint8_t pad_1[8];
- };
- struct halo_scnr_r25_sound_scenery_palette
- {
- struct halo_scnr_object_palette ssce;
- };
- struct halo_scnr_r26_player_starting_profile
- {
- char name[32];
- float starting_health_modifier_frac;
- float starting_shield_modifier_frac;
- struct halo_dependency d1_primary_weapon; // weap
- int16_t primary_weapon_rounds_loaded;
- int16_t primary_weapon_rounds_total;
- struct halo_dependency d2_secondary_weapon; // weap
- int16_t secondary_weapon_rounds_loaded;
- int16_t secondary_weapon_rounds_total;
- int8_t starting_fragmentation_grenade_count;
- int8_t starting_plasma_grenade_count;
- int8_t starting_unknown1_grenade_count;
- int8_t starting_unknown2_grenade_count;
- uint8_t pad_1[20];
- };
- struct halo_scnr_gametypes_quad
- {
- enum halo_gametypes type_0_list;
- enum halo_gametypes type_1_list;
- enum halo_gametypes type_2_list;
- enum halo_gametypes type_3_list;
- };
- struct halo_scnr_r_player_starting_locations
- {
- struct halo_scnr_instance_orientation_2d orientation;
- int16_t team_index;
- int16_t bsp_index;
- struct halo_scnr_gametypes_quad gametypes;
- uint8_t pad_1[24];
- };
- struct halo_scnr_r28_trigger_volumes
- {
- int32_t unknown_1_le;
- char name[32];
- uint8_t pad_1[12];
- float unknown_1;
- uint8_t pad_2[8];
- float unknown_2_rad;
- float unknown_3_rad;
- float unknown_4;
- float unknown_5;
- float unknown_6;
- float unknown_7;
- float unknown_8;
- float unknown_9;
- float unknown_10;
- };
- struct halo_scnr_r29_recorded_animations
- {
- char name[32];
- int8_t version;
- int8_t raw_animation_data;
- int8_t unit_control_data_version;
- uint8_t pad_1[1];
- int16_t length_of_animation;
- uint8_t pad_2[6];
- struct halo_data recorded_animation_event_stream; // 0x9842A100
- };
- struct halo_scnr_r30_netgame_flags
- {
- struct halo_scnr_instance_orientation_2d orientation;
- enum halo_netgame_flag_types type_list;
- int16_t team_index;
- struct halo_dependency d1_weapon_group; // itmc
- uint8_t pad_1[112];
- };
- struct halo_scnr_r31_netgame_equipment
- {
- struct halo_scnr_netgame_equipment_flags_bf flags_bf;
- struct halo_scnr_gametypes_quad gametypes;
- int16_t team_index;
- int16_t spawn_time;
- uint8_t pad_1[48];
- struct halo_scnr_instance_orientation_2d orientation;
- struct halo_dependency d1_item_collection; // itmc
- uint8_t pad_2[48];
- };
- struct halo_scnr_r32_starting_equipment
- {
- struct halo_scnr_starting_equipment_flags_bf flags_bf;
- struct halo_scnr_gametypes_quad gametypes;
- uint8_t pad_1[48];
- struct halo_dependency d1_item_collection_1; // itmc
- struct halo_dependency d2_item_collection_2; // itmc
- struct halo_dependency d3_item_collection_3; // itmc
- struct halo_dependency d4_item_collection_4; // itmc
- struct halo_dependency d5_item_collection_5; // itmc
- struct halo_dependency d6_item_collection_6; // itmc
- uint8_t pad_2[48];
- };
- struct halo_scnr_r33_bsp_switch_trigger_volumes
- {
- int16_t trigger_volume_sel;
- int16_t source;
- int16_t destination;
- uint8_t pad_1[2];
- };
- struct halo_scnr_r34_decals
- {
- int16_t decal_type_sel;
- int8_t yaw;
- int8_t pitch;
- struct halo_point_3d position;
- };
- struct halo_scnr_r35_decal_palette
- {
- struct halo_dependency d1_reference; // deca
- };
- struct halo_scnr_r36_detail_object_collection_palette
- {
- struct halo_scnr_object_palette dobc;
- };
- struct halo_scnr_r37_actor_palette
- {
- struct halo_dependency d1_reference; // actv
- };
- struct halo_scnr_r38_encounters
- {
- char name[32];
- struct halo_scnr_encounter_flags_bf flags_bf;
- enum halo_team_indices team_index_list;
- int16_t unknown_1_le;
- enum halo_search_behaviors search_behavior_list;
- int16_t manual_bsp_index;
- struct halo_ranged_float respawn_delay;
- uint8_t pad_1[74];
- int16_t unknown_2_le;
- struct halo_array r1_squads; // maximum of 64 cells 0x543EA100
- struct halo_array r2_platoons; // maximum of 32 cells 0x203CA100
- struct halo_array r3_firing_positions; // maximum of 512 cells 0x003BA100
- struct halo_array r4_player_starting_locations; // maximum of 256 cells 0x90C29C00
- };
- struct halo_scnr_r38_r1_squads
- {
- char name[32];
- int16_t actor_type_sel;
- int16_t platoon_sel;
- enum halo_ai_states initial_state_list;
- enum halo_ai_states return_state_list;
- struct halo_scnr_encounter_squad_flags_bf flags_bf;
- enum halo_ai_squad_leaders unique_leader_type_list;
- uint8_t pad_1[32];
- int16_t maneuver_to_squad_sel;
- float squad_delay_time;
- struct halo_scnr_encounter_squad_firing_position_group_indices_bf attacking_bf;
- struct halo_scnr_encounter_squad_firing_position_group_indices_bf attacking_search_bf;
- struct halo_scnr_encounter_squad_firing_position_group_indices_bf attacking_guard_bf;
- struct halo_scnr_encounter_squad_firing_position_group_indices_bf defending_bf;
- struct halo_scnr_encounter_squad_firing_position_group_indices_bf defending_search_bf;
- struct halo_scnr_encounter_squad_firing_position_group_indices_bf defending_guard_bf;
- struct halo_scnr_encounter_squad_firing_position_group_indices_bf pursuing_bf;
- uint8_t pad_2[12];
- int16_t normal_difficulty_count;
- int16_t insane_difficulty_count;
- enum halo_ai_major_upgrades major_upgrade_list;
- uint8_t pad_3[2];
- int16_t respawn_minimum_actors;
- int16_t respawn_maximum_actors;
- int16_t respawn_total;
- uint8_t pad_4[2];
- struct halo_ranged_float respawn_delay;
- uint8_t pad_5[48];
- struct halo_array r1_move_positions; // maximum of 32 cells 0x983AA100
- struct halo_array r2_starting_locations; // maximum of 32 cells 0xF039A100
- uint8_t pad_6[12];
- };
- struct halo_scnr_r38_r1_r1_move_positions
- {
- struct halo_scnr_instance_orientation_2d orientation;
- float weight;
- struct halo_ranged_float time;
- int16_t animation_sel;
- int8_t sequence_id;
- uint8_t pad_1[45];
- int32_t surface_index;
- };
- struct halo_scnr_r38_r1_r2_starting_locations
- {
- struct halo_scnr_instance_orientation_2d orientation;
- int16_t unknown_le;
- int8_t sequence_id;
- struct halo_scnr_encounter_squad_starting_location_flags_bf flags_bf;
- enum halo_ai_states return_state_list;
- enum halo_ai_states initial_state_list;
- int16_t actor_type_sel;
- int16_t command_list_sel;
- };
- struct halo_scnr_r38_r2_platoons
- {
- char name[32];
- struct halo_scnr_encounter_platoon_flags_bf flags_bf;
- uint8_t pad_1[12];
- enum halo_ai_platoon_behavior_alteration_conditions change_attacking_defending_state_when_list;
- int16_t change_state_happens_to_sel;
- uint8_t pad_2[8];
- enum halo_ai_platoon_behavior_alteration_conditions maneuver_when_list;
- int16_t maneuver_happens_to_sel;
- uint8_t pad_3[108];
- };
- struct halo_scnr_r38_r3_firing_positions
- {
- struct halo_point_3d position;
- enum halo_scnr_firing_position_groups group_index_list;
- int16_t unknown_1_le;
- uint8_t pad_1[4];
- int32_t unknown_2_be;
- };
- struct halo_scnr_r39_command_lists
- {
- char name[32];
- struct halo_scnr_command_list_flags_bf flags_bf;
- uint8_t pad_1[8];
- int16_t manual_bsp_index;
- int16_t unknown_sel_le; // check endianness
- struct halo_array r1_commands; // maximum of 64 cells 0xB438A100
- struct halo_array r2_points; // maximum of 64 cells 0xE036A100
- uint8_t pad_2[24];
- };
- struct halo_scnr_r39_r1_commands
- {
- enum halo_ai_command_atom_types atom_type_list;
- int16_t atom_modifier;
- float parameter_1;
- float parameter_2;
- int16_t point_1_sel;
- int16_t point_2_sel;
- int16_t animation_sel;
- int16_t script_sel;
- int16_t recording_sel;
- int16_t command_sel;
- int16_t object_name_sel;
- uint8_t pad_1[6];
- };
- struct halo_scnr_r39_r2_points
- {
- struct halo_point_3d position;
- uint8_t pad_1[8];
- };
- struct halo_scnr_r40_ai_animation_references
- {
- char animation_name[32];
- struct halo_dependency d1_animation_graph; // antr
- uint8_t pad_1[12];
- };
- struct halo_scnr_r41_ai_script_references
- {
- char script_name[32];
- uint8_t pad_1[8];
- };
- struct halo_scnr_r42_ai_recording_references
- {
- char recording_name[32];
- uint8_t pad_1[8];
- };
- struct halo_scnr_r43_ai_conversations
- {
- char name[32];
- uint8_t pad_1[1];
- struct halo_scnr_ai_conversation_flags_bf flags_bf;
- uint8_t pad_2[2];
- float trigger_distance;
- float run_to_player_distance;
- uint8_t pad_3[36];
- struct halo_array r1_participants; // maximum of 8 cells 0xE840A100
- struct halo_array r2_lines; // maximum of 32 cells 0xC041A100
- uint8_t pad_4[12];
- };
- struct halo_scnr_r43_r1_participants
- {
- uint8_t pad_1[3];
- struct halo_scnr_ai_conversation_participant_flags_bf flags_bf;
- enum halo_ai_conversation_participant_selection_types selection_type_list;
- enum halo_actor_types actor_type_list;
- int16_t use_this_object_sel;
- int16_t set_new_name_sel;
- uint8_t pad_2[12];
- int16_t unknown_1_sel_le;
- int16_t unknown_2_sel_le;
- int16_t unknown_3_sel_le;
- int16_t unknown_4_sel_le;
- int16_t unknown_5_sel_le;
- int16_t unknown_6_sel_le;
- char encounter_name[32];
- int32_t unknown_7_le;
- uint8_t pad_3[12];
- };
- struct halo_scnr_r43_r2_lines
- {
- uint8_t pad_1[1];
- struct halo_scnr_ai_conversation_line_flags_bf flags_bf;
- int16_t participant_sel;
- enum halo_ai_conversation_lines_character_types addressee_list;
- int16_t addressee_participant_sel;
- uint8_t pad_2[4];
- float line_delay_time;
- uint8_t pad_3[12];
- struct halo_dependency d1_variant_1; // snd!
- struct halo_dependency d2_variant_2; // snd!
- struct halo_dependency d3_variant_3; // snd!
- struct halo_dependency d4_variant_4; // snd!
- struct halo_dependency d5_variant_5; // snd!
- struct halo_dependency d6_variant_6; // snd!
- };
- struct halo_scnr_r44_scripts
- {
- char name[32];
- enum halo_script_types script_type_list;
- enum halo_script_return_types return_type_list;
- int32_t root_expression_index;
- uint8_t pad_1[52];
- };
- struct halo_scnr_r45_globals
- {
- char name[32];
- enum halo_script_return_types type_list;
- uint8_t pad_1[6];
- int32_t initialization_expression_index;
- uint8_t pad_2[48];
- };
- struct halo_scnr_r46_references
- {
- uint8_t pad_1[24];
- struct halo_dependency d1_reference; // (any tag type)
- };
- struct halo_scnr_r47_source_files
- {
- char name[32];
- struct halo_data source; // 0xB431A100
- };
- struct halo_scnr_r48_cutscene_flags
- {
- uint8_t pad_1[4];
- char name[32];
- struct halo_point_3d position;
- struct halo_angle_2d facing_rad;
- uint8_t pad_2[36];
- };
- struct halo_scnr_r49_cutscene_camera_points
- {
- uint8_t pad_1[4];
- char name[32];
- uint8_t pad_2[4];
- struct halo_scnr_instance_orientation_3d orientation;
- float field_of_view_rad;
- uint8_t pad_3[36];
- };
- struct halo_scnr_r50_cutscene_titles
- {
- uint8_t pad_1[4];
- char name[32];
- uint8_t pad_2[4];
- struct halo_rectangle_2d text_bounds_on_screen;
- int16_t string_index;
- uint8_t pad_3[2];
- enum halo_justifications justification_list;
- uint8_t pad_4[6];
- struct halo_colorbyte_argb text_color;
- struct halo_colorbyte_argb shadow_color;
- float fade_in_time;
- float up_time;
- float fade_out_time;
- uint8_t pad_5[16];
- };
- struct halo_scnr_r51_structure_bsps
- {
- int32_t unknown_1_le;
- int32_t unknown_2_le;
- int32_t unknown_3_le;
- uint8_t pad_1[4];
- struct halo_dependency d1_structure_bsp; // sbsp
- };
- #pragma mark senv
- struct halo_senv_section_environment_shader
- {
- struct halo_senv_flags_bf environment_shader_flags_bf;
- };
- struct halo_senv_section_environment_shader_type
- {
- enum halo_shader_diffuse_map_combinations type_list;
- };
- struct halo_senv_section_diffuse_properties
- {
- uint8_t pad_1[1];
- struct halo_senv_diffuse_flags_bf flags_bf;
- uint8_t pad_2[26];
- struct halo_dependency d1_base_map; // bitm
- float unknown_1_le; // base map texture origin x?
- float unknown_2_le; // base map texture origin y?
- uint8_t pad_3[16];
- enum halo_shader_map_functions detail_map_function_list;
- uint8_t pad_4[2];
- struct halo_shader_scaled_map primary_detail_map;
- struct halo_shader_scaled_map secondary_detail_map;
- float unknown_3_le; // detail maps origin x?
- float unknown_4_le; // detail maps origin y?
- uint8_t pad_5[16];
- enum halo_shader_map_functions micro_detail_map_function_list;
- uint8_t pad_6[2];
- struct halo_shader_scaled_map micro_detail_map;
- struct halo_colorfloat_rgb material_color;
- };
- struct halo_senv_section_bump_properties
- {
- struct halo_shader_scaled_map bump_map;
- float unknown_1_le; // bump map origin x?
- float unknown_2_le; // bump map origin y?
- };
- struct halo_senv_texture_animations
- {
- enum halo_function_behaviors function_list;
- uint8_t pad_1[2];
- float period;
- float scale;
- };
- struct halo_senv_section_texture_scrolling_animation
- {
- struct halo_senv_texture_animations u_animation;
- struct halo_senv_texture_animations v_animation;
- };
- struct halo_senv_self_illumination_effects
- {
- struct halo_colorfloat_rgb on_color;
- struct halo_colorfloat_rgb off_color;
- struct halo_periodic_functions animation;
- };
- struct halo_senv_section_self_illumination_properties
- {
- uint8_t pad_1[1];
- struct halo_map_flags_bf flags_bf;
- uint8_t pad_2[26];
- struct halo_senv_self_illumination_effects primary;
- uint8_t pad_3[24];
- struct halo_senv_self_illumination_effects secondary;
- uint8_t pad_4[24];
- struct halo_senv_self_illumination_effects plasma;
- uint8_t pad_5[24];
- struct halo_shader_scaled_map scaled_map;
- };
- struct halo_senv_section_specular_properties
- {
- uint8_t pad_1[1];
- struct halo_senv_specular_flags_bf flags_bf;
- uint8_t pad_2[18];
- float brightness_frac;
- uint8_t pad_3[20];
- struct halo_colorfloat_rgb perpendicular_color;
- struct halo_colorfloat_rgb parallel_color;
- };
- struct halo_senv_section_reflection_properties
- {
- uint8_t pad_1[1];
- struct halo_senv_reflection_flags_bf flags_bf;
- enum halo_shader_cube_map_reflection_types type_list;
- float lightmap_brightness_scale_frac;
- uint8_t pad_2[28];
- float perpendicular_brightness_frac;
- float parallel_brightness_frac;
- uint8_t pad_3[40];
- struct halo_dependency d1_reflection_cube_map; // bitm
- };
- struct halo_senv
- {
- struct halo_shdr shdr;
- uint8_t pad_1[1];
- struct halo_senv_section_environment_shader environment_shader;
- struct halo_senv_section_environment_shader_type environment_shader_type;
- struct halo_shader_section_lens_flares lens_flares;
- uint8_t pad_2[44];
- struct halo_senv_section_diffuse_properties diffuse_properites;
- uint8_t pad_3[12];
- struct halo_senv_section_bump_properties bump_properties;
- uint8_t pad_4[16];
- struct halo_senv_section_texture_scrolling_animation texture_scrolling_animation;
- uint8_t pad_5[24]; // this might have two floats at the start
- struct halo_senv_section_self_illumination_properties self_illumination_properties;
- uint8_t pad_6[24];
- struct halo_senv_section_specular_properties specular_properties;
- uint8_t pad_7[16];
- struct halo_senv_section_reflection_properties reflection_properties;
- uint8_t pad_8[16]; // might contain two floats at start
- };
- #pragma mark sgla
- struct halo_sgla_section_glass_shader
- {
- uint8_t pad_1[1];
- struct halo_sgla_glass_flags_bf flags_bf;
- };
- struct halo_sgla_section_background_tint_properties
- {
- struct halo_colorfloat_rgb background_tint_color;
- struct halo_shader_scaled_map background_tint_map;
- };
- struct halo_sgla_section_reflection_properties
- {
- enum halo_shader_reflection_map_reflection_types reflection_type_list;
- struct halo_shader_directional_light directional_light;
- struct halo_dependency d1_reflection_map; // bitm
- struct halo_shader_scaled_map bump_map;
- };
- struct halo_sgla_section_diffuse_properties
- {
- struct halo_shader_scaled_map diffuse_map;
- struct halo_shader_scaled_map diffuse_detail_map;
- };
- struct halo_sgla_section_specular_properties
- {
- struct halo_shader_scaled_map specular_map;
- struct halo_shader_scaled_map specular_detail_map;
- };
- struct halo_sgla
- {
- struct halo_shdr shdr;
- struct halo_sgla_section_glass_shader glass_shader;
- uint8_t pad_1[42];
- struct halo_sgla_section_background_tint_properties background_tint_properties;
- uint8_t pad_2[22];
- struct halo_sgla_section_reflection_properties reflection_properites;
- uint8_t pad_3[132];
- struct halo_sgla_section_diffuse_properties diffuse_properties;
- uint8_t pad_4[32];
- struct halo_sgla_section_specular_properties specular_properties;
- uint8_t pad_5[28];
- };
- #pragma mark sky
- struct halo_sky_fog
- {
- struct halo_colorfloat_rgb color;
- uint8_t pad_1[8];
- float maximum_density_frac;
- float start_distance;
- float opaque_distance;
- };
- struct halo_sky
- {
- struct halo_dependency d1_model; // mod2
- struct halo_dependency d2_animation_graph; // antr
- uint8_t pad_1[24];
- struct halo_colorfloat_rgb indoor_ambient_radiosity_color;
- float indoor_ambient_radiosity_power;
- struct halo_colorfloat_rgb outdoor_ambient_radiosity_color;
- float outdoor_ambient_radiosity_power;
- struct halo_sky_fog outdoor_fog;
- struct halo_sky_fog indoor_fog;
- struct halo_dependency d3_indoor_fog_screen; // fog
- uint8_t pad_2[4];
- struct halo_array r1_shader_functions; // maximum of 8 cells 0xA4879C00
- struct halo_array r2_animations; // maximum of 8 cells 0x0C889C00
- struct halo_array r3_lights; // maximum of 8 cells 0xF4889C00
- };
- struct halo_sky_r1_shader_functions
- {
- uint8_t pad_1[4];
- char global_function_name[32];
- };
- struct halo_sky_r2_animations
- {
- int16_t animation_index;
- uint8_t pad_1[2];
- float period;
- uint8_t pad_2[28];
- };
- struct halo_sky_r3_lights_section_lens_flare
- {
- struct halo_dependency d1_lens_flare; // lens
- char lens_flare_marker_name[32];
- };
- struct halo_sky_r3_lights_section_radiosity
- {
- struct halo_sky_radiosity_flags_bf flags_bf;
- struct halo_colorfloat_rgb color;
- float power;
- float test_distance;
- uint8_t pad_1[4];
- struct halo_angle_2d direction_rad;
- float diameter_rad;
- };
- struct halo_sky_r3_lights
- {
- struct halo_sky_r3_lights_section_lens_flare lens_flare;
- uint8_t pad_1[28];
- struct halo_sky_r3_lights_section_radiosity radiosity;
- };
- #pragma mark smet
- struct halo_smet_section_meter_shader
- {
- uint8_t pad_1[1];
- struct halo_smet_flags_bf flags_bf;
- uint8_t pad_2[34];
- struct halo_dependency d1_map; // bitm
- };
- struct halo_smet_section_colors
- {
- struct halo_colorfloat_rgb gradient_minimum_color;
- struct halo_colorfloat_rgb gradient_maximum_color;
- struct halo_colorfloat_rgb background_color;
- struct halo_colorfloat_rgb flash_color;
- struct halo_colorfloat_rgb tint_color;
- float meter_transparency_frac;
- float background_transparency_frac;
- };
- struct halo_smet_section_external_function_sources
- {
- enum halo_function_out_channels meter_brightness_source_list;
- enum halo_function_out_channels flash_brightness_source_list;
- enum halo_function_out_channels value_source_list;
- enum halo_function_out_channels gradient_source_list;
- enum halo_function_out_channels flash_extension_source_list;
- };
- struct halo_smet
- {
- struct halo_shdr shdr;
- struct halo_smet_section_meter_shader meter_shader;
- uint8_t pad_1[32];
- struct halo_smet_section_colors colors;
- uint8_t pad_2[24];
- struct halo_smet_section_external_function_sources external_function_sources;
- uint8_t pad_3[34];
- };
- #pragma mark snd!
- struct halo_snd_section_randomization
- {
- struct halo_ranged_float random_pitch_bounds;
- float inner_cone_angle_rad;
- float outer_cone_angle_rad;
- float outer_cone_gain_frac;
- float gain_modifier;
- float maximum_bend_per_second;
- };
- struct halo_snd_section_when_scale_is_zero
- {
- float skip_fraction_modifier;
- float gain_modifier;
- float pitch_modifier;
- };
- struct halo_snd_section_when_scale_is_one
- {
- float skip_fraction_modifier;
- float gain_modifier;
- float pitch_modifier;
- };
- struct halo_snd_section_import_properties
- {
- enum halo_sound_channel_encodings encoding_list;
- enum halo_sound_compression_formats compression_list;
- struct halo_dependency d1_promotion_sound; // snd!
- int16_t promotion_count;
- };
- struct halo_snd
- {
- struct halo_snd_flags_bf flags_bf;
- enum halo_sound_classes class_list;
- enum halo_sound_sample_rates sample_rate_list;
- float minimum_distance;
- float maximum_distance;
- float skip_fraction_frac;
- struct halo_snd_section_randomization randomization;
- uint8_t pad_1[12];
- struct halo_snd_section_when_scale_is_zero when_scale_is_zero;
- uint8_t pad_2[12];
- struct halo_snd_section_when_scale_is_one when_scale_is_one;
- uint8_t pad_3[12];
- struct halo_snd_section_import_properties import_properties;
- uint8_t pad_4[22];
- struct halo_array r1_pitch_ranges; // maximum of 8 cells 0xA4939B00
- };
- struct halo_snd_r1_pitch_ranges_section_pitch_control
- {
- float natural_pitch;
- struct halo_ranged_float bend_bounds;
- uint16_t actual_permutation_count;
- uint8_t pad_1[14];
- struct halo_array r1_permutations; // maximum of 256 cells 0x08939B00
- };
- struct halo_snd_r1_pitch_ranges
- {
- char name[32];
- struct halo_snd_r1_pitch_ranges_section_pitch_control pitch_control;
- };
- struct halo_snd_r1_r1_permutations
- {
- char name[32];
- float skip_fraction_frac;
- float gain_frac;
- enum halo_sound_compression_formats compression_list;
- int16_t next_permutation_index;
- uint8_t pad_1[20];
- struct halo_data samples; // 0x60929B00
- struct halo_data mouth_data; // 0x70929B00
- struct halo_data subtitle_data; // 0x80929B00
- };
- #pragma mark snde
- struct halo_snde
- {
- uint8_t pad_1[4];
- int16_t priority;
- uint8_t pad_2[2];
- float room_intensity_frac;
- float room_intensity_high_frequency_frac;
- float room_rolloff;
- float decay_time;
- float decay_high_frequency_ratio;
- float reflections_intensity_frac;
- float reflections_delay;
- float reverb_intensity_frac;
- float reverb_delay;
- float diffusion;
- float density;
- float high_frequency_reference;
- uint8_t pad_3[16];
- };
- #pragma mark soso
- struct halo_soso_section_model_shader
- {
- uint8_t pad_1[1];
- struct halo_soso_shader_bf flags_bf;
- uint8_t pad_2[14];
- float translucency_frac;
- };
- struct halo_soso_section_change_color
- {
- enum halo_function_channel_types change_color_source_list;
- };
- struct halo_soso_section_self_illumination
- {
- uint8_t pad_1[1];
- struct halo_soso_self_illumination_flags_bf flags_bf;
- uint8_t pad_2[2];
- enum halo_function_channel_types color_source_list;
- enum halo_function_behaviors animation_function_list;
- float animation_period;
- struct halo_ranged_colorfloat_rgb animation_color;
- };
- struct halo_soso_section_maps
- {
- struct halo_texture_map_axes map_scale;
- struct halo_dependency d1_base_map; // bitm
- uint8_t pad_1[8];
- struct halo_dependency d2_multipurpose_map; // bitm
- uint8_t pad_2[8];
- enum halo_shader_map_functions detail_function_list;
- enum halo_shader_detail_map_masking detail_mask_list;
- struct halo_shader_scaled_map detail_map;
- float detail_map_v_scale; // no "u scale" since this is "applied on top of detail map scale"
- };
- struct halo_soso_section_texture_scrolling_animation
- {
- struct halo_2d_texture_animation texture_animation;
- };
- struct halo_soso_section_reflection_properties
- {
- float reflection_falloff_distance;
- float reflection_cutoff_distance;
- struct halo_shader_directional_light directional_light;
- struct halo_dependency d1_reflection_cube_map; // bitm
- };
- struct halo_soso
- {
- struct halo_shdr shdr;
- struct halo_soso_section_model_shader model_shader;
- uint8_t pad_1[16];
- struct halo_soso_section_change_color change_color;
- uint8_t pad_2[30];
- struct halo_soso_section_self_illumination self_illumination;
- uint8_t pad_3[12];
- struct halo_soso_section_maps maps;
- uint8_t pad_4[12];
- struct halo_soso_section_texture_scrolling_animation texture_scrolling_animation;
- uint8_t pad_5[8];
- struct halo_soso_section_reflection_properties reflection_properties;
- uint8_t pad_6[68];
- };
- #pragma mark sotr
- struct halo_sotr
- {
- struct halo_shdr shdr;
- struct halo_shader_transparency generic_transparent_shader;
- uint8_t pad_1[2];
- struct halo_shader_section_lens_flares lens_flares;
- struct halo_array r1_extra_layers; // maximum of 4 cells 0x94A59C00
- struct halo_array r2_maps; // maximum of 4 cells 0x1CA79C00
- struct halo_array r3_stages; // maximum of 7 cells 0xE8AA9C00
- };
- struct halo_sotr_r2_maps
- {
- uint8_t pad_1[1];
- struct halo_sotr_map_flags_bf flags_bf;
- uint8_t pad_2[2];
- struct halo_shader_map_orientation shader_map_orientation;
- struct halo_shader_section_2d_texture_animation _2d_texture_animation;
- };
- struct halo_sotr_r3_stages_section_constants_and_animation
- {
- enum halo_function_channel_types color_0_source_list;
- enum halo_function_behaviors color_0_animation_function_list;
- float color_0_animation_period;
- struct halo_ranged_colorfloat_argb color_0_animation;
- struct halo_colorfloat_argb color_1;
- };
- struct halo_sotr_staged_color_input
- {
- enum halo_shader_stage_channel_functions input_list;
- enum halo_shader_stage_channel_mapping_functions input_mapping_list;
- };
- struct halo_sotr_r3_stages_section_color_inputs
- {
- struct halo_sotr_staged_color_input A;
- struct halo_sotr_staged_color_input B;
- struct halo_sotr_staged_color_input C;
- struct halo_sotr_staged_color_input D;
- };
- struct halo_sotr_staged_color_output
- {
- enum halo_shader_stage_dual_channel_functions output_list;
- enum halo_shader_stage_dual_channel_function_calculations output_function;
- };
- struct halo_sotr_r3_stages_section_color_outputs
- {
- struct halo_sotr_staged_color_output AB;
- struct halo_sotr_staged_color_output CD;
- enum halo_shader_stage_dual_channel_functions output_AB_CD_mux_sum_list;
- enum halo_shader_stage_dual_channel_mappings output_mapping_list;
- };
- struct halo_sotr_staged_alpha_input
- {
- enum halo_shader_stage_channel_alpha_functions input_list;
- enum halo_shader_stage_channel_mapping_functions input_mapping_list;
- };
- struct halo_sotr_r3_stages_section_alpha_inputs
- {
- struct halo_sotr_staged_alpha_input A;
- struct halo_sotr_staged_alpha_input B;
- struct halo_sotr_staged_alpha_input C;
- struct halo_sotr_staged_alpha_input D;
- };
- struct halo_sotr_r3_stages_section_alpha_outputs
- {
- enum halo_shader_stage_dual_channel_alpha_functions output_AB_list;
- enum halo_shader_stage_dual_channel_alpha_functions output_CD_list;
- enum halo_shader_stage_dual_channel_alpha_functions output_AB_CD_mux_sum_list;
- enum halo_shader_stage_dual_channel_mappings output_mapping_list;
- };
- struct halo_sotr_r3_stages
- {
- uint8_t pad_1[1];
- struct halo_sotr_stage_flags_bf flags_bf;
- uint8_t pad_2[2];
- struct halo_sotr_r3_stages_section_constants_and_animation constants_and_animation;
- struct halo_sotr_r3_stages_section_color_inputs color_inputs;
- struct halo_sotr_r3_stages_section_color_outputs color_outputs;
- struct halo_sotr_r3_stages_section_alpha_inputs alpha_inputs;
- struct halo_sotr_r3_stages_section_alpha_outputs alpha_outputs;
- };
- #pragma mark Soul
- struct halo_Soul
- {
- struct halo_array r1_ui_widget_definitions; // maximum of 32 cells 0xA0269C00
- };
- struct halo_Soul_r1_ui_widget_definitions
- {
- struct halo_dependency d1_ui_widget_definition; // DeLa
- };
- #pragma mark spla
- struct halo_spla_section_plasma_shader
- {
- };
- struct halo_spla_section_intensity
- {
- enum halo_function_out_channels intensity_source_list;
- uint8_t pad_1[2];
- float intensity_exponent;
- };
- struct halo_spla_section_offset
- {
- enum halo_function_out_channels offset_source_list;
- uint8_t pad_1[2];
- float offset_amount;
- float offset_exponent;
- };
- struct halo_spla_section_color
- {
- struct halo_shader_directional_light directional_light;
- enum halo_function_channel_types tint_color_source_list;
- };
- struct halo_spla_maps
- {
- float animation_period;
- struct halo_vector_3d animation_direction;
- struct halo_shader_scaled_map noise_map;
- };
- struct halo_spla_section_primary_noise_map
- {
- struct halo_spla_maps primary;
- };
- struct halo_spla_section_secondary_noise_map
- {
- struct halo_spla_maps secondary;
- };
- struct halo_spla
- {
- struct halo_shdr shdr;
- struct halo_spla_section_plasma_shader plasma_shader;
- uint8_t pad_1[4];
- struct halo_spla_section_intensity intensity;
- struct halo_spla_section_offset offset;
- uint8_t pad_2[32];
- struct halo_spla_section_color color;
- uint8_t pad_3[62];
- struct halo_spla_section_primary_noise_map primary_noise_map;
- uint8_t pad_4[36];
- struct halo_spla_section_secondary_noise_map secondary_noise_map;
- uint8_t pad_5[32];
- };
- #pragma mark ssce
- struct halo_ssce
- {
- struct halo_obje obje;
- uint8_t pad_1[128];
- };
- #pragma mark str#
- struct halo_strn
- {
- struct halo_array r1_string_references; // maximum of 800 cells 0xB4619D00
- };
- struct halo_strn_r1_string_references
- {
- struct halo_data string; // 0x8C619D00
- };
- #pragma mark swat
- struct halo_swat_section_water_shader
- {
- uint8_t pad_1[1];
- struct halo_swat_flags_bf flags_bf;
- uint8_t pad_2[34];
- struct halo_dependency d1_base_map; // bitm
- uint8_t pad_3[16];
- struct halo_shader_directional_light view_directional_light;
- uint8_t pad_4[16];
- struct halo_dependency d2_reflection_map; // bitm
- uint8_t pad_5[16];
- float ripple_animation_angle_rad;
- float ripple_animation_velocity;
- float ripple_scale;
- struct halo_dependency d3_ripple_maps; // bitm
- int16_t ripple_mipmap_levels;
- uint8_t pad_6[2];
- float ripple_mipmap_fade_factor_frac;
- float ripple_mipmap_detail_bias;
- uint8_t pad_7[64];
- struct halo_array r1_ripples; // maximum of 4 cells 0x24B29C00
- };
- struct halo_swat
- {
- struct halo_shdr shdr;
- struct halo_swat_section_water_shader water_shader;
- uint8_t pad_1[16];
- };
- struct halo_swat_r1_ripples
- {
- uint8_t pad_1[4];
- float contribution_factor_frac;
- uint8_t pad_2[32];
- float animation_angle_rad;
- float animation_velocity;
- struct halo_vector_2d_ij map_offset;
- int16_t map_repeats;
- int16_t map_index;
- uint8_t pad_3[16];
- };
- #pragma mark tagc
- struct halo_tagc
- {
- struct halo_array r1_tag_references; // maximum of 200 cells 0x08149C00
- };
- struct halo_tagc_r1_tag_references
- {
- struct halo_dependency d1_tag; // (any tag class)
- };
- #pragma mark trak
- struct halo_trak
- {
- uint32_t unknown_1;
- struct halo_array r1_control_points; // maximum of 16 cells 0x94049D00
- uint8_t pad_1[32];
- };
- struct halo_trak_r1_control_points
- {
- struct halo_vector_3d position;
- struct halo_quaternion orientation;
- uint8_t pad_1[32];
- };
- #pragma mark udlg
- // these are all snd! references
- struct halo_udlg_section_idle
- {
- struct halo_dependency d1_idle_noncombat;
- struct halo_dependency d2_idle_combat;
- struct halo_dependency d3_idle_flee;
- };
- struct halo_udlg_section_involuntary
- {
- struct halo_dependency d1_pain_body_minor;
- struct halo_dependency d2_pain_body_major;
- struct halo_dependency d3_pain_shield;
- struct halo_dependency d4_pain_falling;
- struct halo_dependency d5_scream_fear;
- struct halo_dependency d6_scream_pain;
- struct halo_dependency d7_maimed_limb;
- struct halo_dependency d8_maimed_head;
- struct halo_dependency d9_death_quiet;
- struct halo_dependency d10_death_violent;
- struct halo_dependency d11_death_falling;
- struct halo_dependency d12_death_agonizing;
- struct halo_dependency d13_death_instant;
- struct halo_dependency d14_death_flying;
- };
- struct halo_udlg_section_hurting_people
- {
- struct halo_dependency d1_damaged_friend;
- struct halo_dependency d2_damaged_friend_player;
- struct halo_dependency d3_damaged_enemy;
- struct halo_dependency d4_damaged_enemy_comment;
- };
- struct halo_udlg_section_being_hurt
- {
- struct halo_dependency d1_hurt_friend;
- struct halo_dependency d2_hurt_friend_response;
- struct halo_dependency d3_hurt_friend_player;
- struct halo_dependency d4_hurt_enemy;
- struct halo_dependency d5_hurt_enemy_response;
- struct halo_dependency d6_hurt_enemy_comment;
- struct halo_dependency d7_hurt_enemy_bullet;
- struct halo_dependency d8_hurt_enemy_needler;
- struct halo_dependency d9_hurt_enemy_plasma;
- struct halo_dependency d10_hurt_enemy_sniper;
- struct halo_dependency d11_hurt_enemy_grenade;
- struct halo_dependency d12_hurt_enemy_explosion;
- struct halo_dependency d13_hurt_enemy_melee;
- struct halo_dependency d14_hurt_enemy_flame;
- struct halo_dependency d15_hurt_enemy_shotgun;
- struct halo_dependency d16_hurt_enemy_vehicle;
- struct halo_dependency d17_hurt_enemy_mounted_weapon;
- };
- struct halo_udlg_section_killing_people
- {
- struct halo_dependency d1_killed_friend;
- struct halo_dependency d2_killed_friend_comment;
- struct halo_dependency d3_killed_friend_player;
- struct halo_dependency d4_killed_friend_player_comment;
- struct halo_dependency d5_killed_enemy;
- struct halo_dependency d6_killed_enemy_comment;
- struct halo_dependency d7_killed_enemy_player;
- struct halo_dependency d8_killed_enemy_player_comment;
- struct halo_dependency d9_killed_enemy_covenant;
- struct halo_dependency d10_killed_enemy_covenant_comment;
- struct halo_dependency d11_killed_enemy_flood_combat;
- struct halo_dependency d12_killed_enemy_flood_combat_comment;
- struct halo_dependency d13_killed_enemy_flood_carrier;
- struct halo_dependency d14_killed_enemy_flood_carrier_comment;
- struct halo_dependency d15_killed_enemy_sentinel;
- struct halo_dependency d16_killed_enemy_sentinel_comment;
- struct halo_dependency d17_killed_enemy_bullet;
- struct halo_dependency d18_killed_enemy_needler;
- struct halo_dependency d19_killed_enemy_plasma;
- struct halo_dependency d20_killed_enemy_sniper;
- struct halo_dependency d21_killed_enemy_grenade;
- struct halo_dependency d22_killed_enemy_explosion;
- struct halo_dependency d23_killed_enemy_melee;
- struct halo_dependency d24_killed_enemy_flame;
- struct halo_dependency d25_killed_enemy_shotgun;
- struct halo_dependency d26_killed_enemy_vehicle;
- struct halo_dependency d27_killed_enemy_mounted_weapon;
- struct halo_dependency d28_killing_spree;
- };
- struct halo_udlg_section_player_kill_responses
- {
- struct halo_dependency d1_player_kill_comment;
- struct halo_dependency d2_player_kill_bullet_comment;
- struct halo_dependency d3_player_kill_needler_comment;
- struct halo_dependency d4_player_kill_plasma_comment;
- struct halo_dependency d5_player_kill_sniper_comment;
- struct halo_dependency d6_anyone_kill_grenade_comment;
- struct halo_dependency d7_player_kill_explosion_comment;
- struct halo_dependency d8_player_kill_melee_comment;
- struct halo_dependency d9_player_kill_flame_comment;
- struct halo_dependency d10_player_kill_shotgun_comment;
- struct halo_dependency d11_player_kill_vehicle_comment;
- struct halo_dependency d12_player_kill_mounted_weapon_comment;
- struct halo_dependency d13_player_killing_spree_comment;
- };
- struct halo_udlg_section_friends_dying
- {
- struct halo_dependency d1_friend_died;
- struct halo_dependency d2_friend_player_died;
- struct halo_dependency d3_friend_killed_by_friend;
- struct halo_dependency d4_friend_killed_by_friendly_player;
- struct halo_dependency d5_friend_killed_by_enemy;
- struct halo_dependency d6_friend_killed_by_enemy_player;
- struct halo_dependency d7_friend_killed_by_covenant;
- struct halo_dependency d8_friend_killed_by_flood;
- struct halo_dependency d9_friend_killed_by_sentinel;
- struct halo_dependency d10_friend_betrayed;
- };
- struct halo_udlg_section_shouting
- {
- struct halo_dependency d1_new_combat_alone;
- struct halo_dependency d2_new_enemy_recent_combat;
- struct halo_dependency d3_old_enemy_sighted;
- struct halo_dependency d4_unexpected_enemy;
- struct halo_dependency d5_dead_friend_found;
- struct halo_dependency d6_alliance_broken;
- struct halo_dependency d7_alliance_reformed;
- struct halo_dependency d8_grenade_throwing;
- struct halo_dependency d9_grenade_sighted;
- struct halo_dependency d10_grenade_startle;
- struct halo_dependency d11_grenade_danger_enemy;
- struct halo_dependency d12_grenade_danger_self;
- struct halo_dependency d13_grenade_danger_friend;
- };
- struct halo_udlg_section_group_communication
- {
- struct halo_dependency d1_new_combat_group_response;
- struct halo_dependency d2_new_combat_nearby_response;
- struct halo_dependency d3_alert_friend;
- struct halo_dependency d4_alert_friend_response;
- struct halo_dependency d5_alert_lost_contact;
- struct halo_dependency d6_alert_lost_contact_response;
- struct halo_dependency d7_blocked;
- struct halo_dependency d8_blocked_response;
- struct halo_dependency d9_search_start;
- struct halo_dependency d10_search_query;
- struct halo_dependency d11_search_query_response;
- struct halo_dependency d12_search_report;
- struct halo_dependency d13_search_abandon;
- struct halo_dependency d14_search_group_abandon;
- struct halo_dependency d15_group_uncover;
- struct halo_dependency d16_group_uncover_response;
- struct halo_dependency d17_advance;
- struct halo_dependency d18_advance_response;
- struct halo_dependency d19_retreat;
- struct halo_dependency d20_retreat_response;
- struct halo_dependency d21_cover;
- };
- struct halo_udlg_section_actions
- {
- struct halo_dependency d1_sighted_friend_player;
- struct halo_dependency d2_shooting;
- struct halo_dependency d3_shooting_vehicle;
- struct halo_dependency d4_shooting_berserk;
- struct halo_dependency d5_shooting_group;
- struct halo_dependency d6_shooting_traitor;
- struct halo_dependency d7_taunt;
- struct halo_dependency d8_taunt_response;
- struct halo_dependency d9_flee;
- struct halo_dependency d10_flee_response;
- struct halo_dependency d11_flee_leader_died;
- struct halo_dependency d12_attempted_flee;
- struct halo_dependency d13_attempted_flee_response;
- struct halo_dependency d14_lost_contact;
- struct halo_dependency d15_hiding_finished;
- struct halo_dependency d16_vehicle_entry;
- struct halo_dependency d17_vehicle_exit;
- struct halo_dependency d18_vehicle_woohoo;
- struct halo_dependency d19_vehicle_scared;
- struct halo_dependency d20_vehicle_collision;
- struct halo_dependency d21_partially_sighted;
- struct halo_dependency d22_nothing_there;
- struct halo_dependency d23_pleading;
- };
- struct halo_udlg_section_exclamations
- {
- struct halo_dependency d1_surprise;
- struct halo_dependency d2_berserk;
- struct halo_dependency d3_melee_attack;
- struct halo_dependency d4_dive;
- struct halo_dependency d5_uncover_exclamation;
- struct halo_dependency d6_leap_attack;
- struct halo_dependency d7_resurrection;
- };
- struct halo_udlg_section_post_combat_actions
- {
- struct halo_dependency d1_celebration;
- struct halo_dependency d2_check_body_enemy;
- struct halo_dependency d3_check_body_friend;
- struct halo_dependency d4_shooting_dead_enemy;
- struct halo_dependency d5_shooting_dead_enemy_player;
- };
- struct halo_udlg_section_post_combat_chatter
- {
- struct halo_dependency d1_alone;
- struct halo_dependency d2_unscathed;
- struct halo_dependency d3_seriously_wounded;
- struct halo_dependency d4_seriously_wounded_response;
- struct halo_dependency d5_massacre;
- struct halo_dependency d6_massacre_response;
- struct halo_dependency d7_rout;
- struct halo_dependency d8_rout_response;
- };
- struct halo_udlg
- {
- uint8_t pad_1[16];
- struct halo_udlg_section_idle idle;
- uint8_t pad_2[48];
- struct halo_udlg_section_involuntary involuntary;
- uint8_t pad_3[16];
- struct halo_udlg_section_hurting_people hurting_people;
- uint8_t pad_4[64];
- struct halo_udlg_section_being_hurt being_hurt;
- uint8_t pad_5[48];
- struct halo_udlg_section_killing_people killing_people;
- uint8_t pad_6[48];
- struct halo_udlg_section_player_kill_responses player_kill_responses;
- uint8_t pad_7[48];
- struct halo_udlg_section_friends_dying friends_dying;
- uint8_t pad_8[32];
- struct halo_udlg_section_shouting shouting;
- uint8_t pad_9[32];
- struct halo_udlg_section_group_communication group_communication;
- uint8_t pad_10[64];
- struct halo_udlg_section_actions actions;
- uint8_t pad_11[96];
- struct halo_udlg_section_exclamations exclamations;
- uint8_t pad_12[64];
- struct halo_udlg_section_post_combat_actions post_combat_actions;
- uint8_t pad_13[64];
- struct halo_udlg_section_post_combat_chatter post_combat_chatter;
- uint8_t pad_14[816];
- };
- #pragma mark unhi
- struct halo_unhi_section_shield_panel_meter
- {
- struct halo_hud_meter meter;
- struct halo_colorbyte_rgb overcharge_minimum_color;
- struct halo_colorbyte_rgb overcharge_maximum_color;
- struct halo_colorbyte_rgb overcharge_flash_color;
- struct halo_colorbyte_rgb overcharge_empty_color;
- };
- struct halo_unhi_section_health_panel_meter
- {
- struct halo_hud_meter meter;
- struct halo_colorbyte_rgb medium_health_left_color;
- float maximum_color_health_fraction_cutoff;
- float minimum_color_health_fraction_cutoff;
- };
- struct halo_unhi_metered_shield_panel
- {
- struct halo_hud_section_background background;
- struct halo_unhi_section_shield_panel_meter meter;
- };
- struct halo_unhi_metered_health_panel
- {
- struct halo_hud_section_background background;
- struct halo_unhi_section_health_panel_meter meter;
- };
- struct halo_unhi_section_motion_sensor_center
- {
- uint8_t pad_1[32];
- struct halo_hud_orientation orientation;
- };
- struct halo_unhi_motion_sensor
- {
- struct halo_hud_section_background background;
- struct halo_hud_section_foreground foreground;
- struct halo_unhi_section_motion_sensor_center center;
- };
- struct halo_unhi_section_auxiliary_overlays
- {
- struct halo_hud_screen_alignment_anchor anchor;
- struct halo_array r6_overlays; // maximum of 16 cells 0x80459C00
- };
- struct halo_unhi_section_hud_warning_sounds
- {
- struct halo_array r7_sounds; // maximum of 12 cells 0x18449C00
- };
- struct halo_unhi_section_auxiliary_hud_meters
- {
- struct halo_array r8_meters; // maximum of 16 cells 0x14489C00
- };
- struct halo_unhi_section_vehicle_hud
- {
- };
- struct halo_unhi
- {
- struct halo_hud_anchored_screen_layer unit_hud;
- struct halo_unhi_metered_shield_panel shield_panel;
- uint8_t pad_1[16];
- struct halo_unhi_metered_health_panel health_panel;
- uint8_t pad_2[20];
- struct halo_unhi_motion_sensor motion_sensor;
- struct halo_unhi_section_auxiliary_overlays auxiliary_overlays;
- uint8_t pad_3[16];
- struct halo_unhi_section_hud_warning_sounds hud_warning_sounds;
- struct halo_unhi_section_auxiliary_hud_meters auxiliary_hud_meters;
- struct halo_unhi_section_vehicle_hud vehicle_hud;
- uint8_t pad_4[404];
- };
- struct halo_unhi_r6_overlays
- {
- struct halo_hud_screen_layer screen_layer;
- enum halo_unhi_auxiliary_overlays_types type_list;
- uint8_t pad_1[1];
- struct halo_unhi_overlay_flags_bf flags_bf;
- uint8_t pad_2[24];
- };
- struct halo_unhi_r7_sounds
- {
- struct halo_dependency d1_sound; // lsnd snd!
- struct halo_unhi_hud_warning_sound_flags_bf latched_to_bf;
- float scale;
- uint8_t pad_1[32];
- };
- struct halo_unhi_r8_meters_section_meter
- {
- struct halo_hud_meter meter;
- float minimum_fraction_cutoff;
- struct halo_unhi_meter_limit_flags_bf flags_bf;
- uint8_t pad_1[88];
- };
- struct halo_unhi_r8_meters
- {
- enum halo_unhi_auxiliary_hud_meters_types type_list;
- uint8_t pad_1[18];
- struct halo_hud_section_background background;
- struct halo_unhi_r8_meters_section_meter meter;
- };
- #pragma mark ustr
- struct halo_ustr
- {
- struct halo_array r1_string_references; // maximum of 800 cells 0xBC629D00
- };
- struct halo_ustr_r1_string_references
- {
- struct halo_data string; // 0x94629D00
- };
- #pragma mark vcky
- struct halo_vcky
- {
- struct halo_dependency d1_display_font; // font
- struct halo_dependency d2_background_bitmap; // bitm
- struct halo_dependency d3_special_key_labels_string_list; // ustr
- struct halo_array r1_virtual_keys; // maximum of 44 cells 0x20349C00
- };
- struct halo_vcky_r1_virtual_keys_section_key_codes
- {
- int16_t lowercase_character;
- int16_t shift_character;
- int16_t caps_character;
- int16_t symbols_character;
- int16_t shift_caps_character;
- int16_t shift_symbols_character;
- int16_t caps_symbols_character;
- };
- struct halo_vcky_r1_virtual_keys
- {
- enum halo_vcky_keyboard_keys keyboard_key_list;
- struct halo_vcky_r1_virtual_keys_section_key_codes key_codes;
- struct halo_dependency d1_unselected_background_bitmap; // bitm
- struct halo_dependency d2_selected_background_bitmap; // bitm
- struct halo_dependency d3_active_background_bitmap; // bitm
- struct halo_dependency d4_sticky_background_bitmap; // bitm
- };
- #pragma mark vehi
- struct halo_vehi
- {
- struct halo_obje obje;
- struct halo_unit unit;
- struct halo_vehi_flags_bf flags_bf;
- enum halo_vehicle_types type_list;
- uint8_t pad_1[2];
- float maximum_forward_speed;
- float maximum_reverse_speed;
- float speed_acceleration;
- float speed_deceleration;
- float maximum_left_turn;
- float maximum_right_turn_negative;
- float wheel_circumference;
- float turn_rate;
- float blur_speed;
- enum halo_vehi_vehicle_channel_functions A_in_list;
- enum halo_vehi_vehicle_channel_functions B_in_list;
- enum halo_vehi_vehicle_channel_functions C_in_list;
- enum halo_vehi_vehicle_channel_functions D_in_list;
- uint8_t pad_2[12];
- float maximum_left_slide;
- float maximum_right_slide;
- float slide_acceleration;
- float slide_deceleration;
- float minimum_flipping_angular_velocity;
- float maximum_flipping_angular_velocity;
- uint8_t pad_3[24];
- float fixed_gun_yaw;
- float fixed_gun_pitch;
- uint8_t pad_4[24];
- float ai_sideslip_distance;
- float ai_destination_radius;
- float ai_avoidance_distance;
- float ai_pathfinding_radius;
- float ai_charge_repeat_timeout;
- float ai_strafing_abort_range;
- struct halo_ranged_float ai_oversteering_bounds_rad;
- float ai_steering_maximum_rad;
- float ai_throttle_maximum;
- float ai_move_position_time;
- uint8_t pad_5[4];
- struct halo_dependency d1_suspension_sound; // snd!
- struct halo_dependency d2_crash_sound; // snd!
- struct halo_dependency d3_material_effects; // foot
- struct halo_dependency d4_effect; // effe
- };
- #pragma mark weap
- struct halo_weap_section_export_to_functions
- {
- enum halo_weap_weapon_channel_functions A_in_list;
- enum halo_weap_weapon_channel_functions B_in_list;
- enum halo_weap_weapon_channel_functions C_in_list;
- enum halo_weap_weapon_channel_functions D_in_list;
- float ready_time;
- struct halo_dependency d1_ready_effect; // effe snd!
- };
- struct halo_weap_section_heat
- {
- float heat_recovery_threshold_frac;
- float overheated_threshold_frac;
- float heat_detonation_threshold_frac;
- float heat_detonation_fraction_frac;
- float heat_loss_per_second_frac;
- float heat_illumination_frac;
- uint8_t pad_1[16];
- struct halo_dependency d1_overheated; // effe snd!
- struct halo_dependency d2_detonation; // effe snd!
- struct halo_dependency d3_player_melee_damage; // jpt!
- struct halo_dependency d4_player_melee_response; // jpt!
- };
- struct halo_weap_section_actor_firing_parameters
- {
- struct halo_dependency d1_actor_firing_parameters; // actv
- };
- struct halo_weap_section_reticle
- {
- float near_reticle_range;
- float far_reticle_range;
- float intersection_reticle_range;
- };
- struct halo_weap_section_zoom
- {
- uint8_t pad_1[2];
- int16_t zoom_magnification_levels;
- struct halo_ranged_float zoom_magnification_range;
- };
- struct halo_weap_section_aim_assist
- {
- float autoaim_angle_rad;
- float autoaim_range;
- float magnetism_angle_rad;
- float magnetism_range;
- float deviation_angle_rad;
- };
- struct halo_weap_section_movement
- {
- enum halo_movement_penalizations movement_penalized_list;
- uint8_t pad_1[2];
- float forward_movement_penalty;
- float sideways_movement_penalty;
- };
- struct halo_weap_section_ai_targeting_parameters
- {
- float minimum_target_range;
- float looking_time_modifier;
- };
- struct halo_weap_section_miscellaneous
- {
- float light_power_on_time;
- float light_power_off_time;
- struct halo_dependency d1_light_power_on_effect; // effe snd!
- struct halo_dependency d2_light_power_off_effect; // effe snd!
- float age_heat_recovery_penalty;
- float age_rate_of_fire_penalty;
- float age_misfire_start_frac;
- float age_misfire_chance_frac;
- };
- struct halo_weap_section_interface
- {
- struct halo_dependency d1_first_person_model; // mod2
- struct halo_dependency d2_first_person_animations; // antr
- uint8_t pad_1[4];
- struct halo_dependency d3_hud_interface; // wphi
- struct halo_dependency d4_pickup_sound; // snd!
- struct halo_dependency d5_zoom_in_sound; // snd!
- struct halo_dependency d6_zoom_out_sound; // snd!
- uint8_t pad_2[12];
- float interface_active_camo_ding;
- float interface_active_camo_regrowth_rate;
- };
- struct halo_weap_section_more_miscellaneous
- {
- enum halo_weapon_behavior_types weapon_type_list;
- };
- struct halo_weap
- {
- struct halo_obje obje;
- struct halo_item item;
- struct halo_weap_flags_bf flags_bf;
- char label[32];
- enum halo_weap_trigger_relations secondary_trigger_mode_list;
- int16_t maximum_alternate_shots_loaded;
- struct halo_weap_section_export_to_functions export_to_functions;
- struct halo_weap_section_heat heat;
- uint8_t pad_1[8];
- struct halo_weap_section_actor_firing_parameters actor_firing_parameters;
- struct halo_weap_section_reticle reticle;
- struct halo_weap_section_zoom zoom;
- struct halo_weap_section_aim_assist aim_assist;
- uint8_t pad_2[4];
- struct halo_weap_section_movement movement;
- uint8_t pad_3[4];
- struct halo_weap_section_ai_targeting_parameters ai_targeting_parameters;
- uint8_t pad_4[4];
- struct halo_weap_section_miscellaneous miscellaneous;
- uint8_t pad_5[12];
- struct halo_weap_section_interface interface;
- uint8_t pad_6[14];
- struct halo_weap_section_more_miscellaneous more_miscellaneous;
- struct halo_array r1_predicted_resources; // maximum of 1024 cells 0x105FA000
- struct halo_array r2_magazines; // maximum of 2 cells 0xDC369D00
- struct halo_array r3_triggers; // maximum of 2 cells 0x643A9D00
- };
- struct halo_weap_r2_magazines
- {
- struct halo_weap_magazine_flags_bf flags_bf;
- int16_t rounds_recharged;
- int16_t rounds_total_initial;
- int16_t rounds_total_maximum;
- int16_t rounds_loaded_maximum;
- uint8_t pad_1[8];
- float reload_time;
- int16_t rounds_reloaded;
- uint8_t pad_2[2];
- float chamber_time;
- uint8_t pad_3[24];
- struct halo_dependency d1_reloading_effect; // effe snd!
- struct halo_dependency d2_chambering_effect; // effe snd!
- uint8_t pad_4[12];
- struct halo_array r1_magazines; // maximum of 2 cells (Guerilla does not limit it to 2, but crashes if you try to add more than 2) 0xD0359D00
- };
- struct halo_weap_r2_r1_magazines
- {
- int16_t rounds;
- uint8_t pad_1[10];
- struct halo_dependency d1_equipment; // eqip
- };
- struct halo_weap_r8_triggers_section_firing
- {
- struct halo_ranged_float rounds_per_second;
- float acceleration_time;
- float deceleration_time;
- float blurred_rate_of_fire;
- uint8_t pad_1[8];
- int16_t magazine_sel;
- int16_t rounds_per_shot;
- int16_t minimum_rounds_loaded;
- int16_t rounds_between_tracers;
- uint8_t pad_2[6];
- enum halo_sound_volumes firing_noise_list;
- };
- struct halo_weap_r8_triggers_section_error
- {
- struct halo_ranged_float error;
- float acceleration_time;
- float deceleration_time;
- };
- struct halo_weap_r8_triggers_section_charging
- {
- float charging_time;
- float charged_time;
- enum halo_weap_trigger_overcharge_actions overcharged_action_list;
- uint8_t pad_1[2];
- float charged_illumination;
- float spew_time;
- struct halo_dependency d1_charging_effect; // effe snd!
- };
- struct halo_weap_r8_triggers_section_projectile
- {
- enum halo_weap_trigger_projectile_distribution_functions distribution_function_list;
- int16_t projectiles_per_shot;
- float distribution_angle;
- uint8_t pad_1[4];
- float minimum_error_rad;
- struct halo_ranged_float error_angle_rad;
- struct halo_point_3d first_person_offset;
- uint8_t pad_2[4];
- struct halo_dependency d1_projectile; // proj
- };
- struct halo_weap_r8_triggers_section_miscellaneous
- {
- float ejection_port_recovery_time;
- float illumination_recovery_time;
- uint8_t pad_1[12];
- float heat_generated_per_round_frac;
- float age_generated_per_round_frac;
- uint8_t pad_2[4];
- float overload_time;
- };
- struct halo_weap_r3_triggers
- {
- struct halo_weap_trigger_flags_bf flags_bf;
- struct halo_weap_r8_triggers_section_firing firing;
- struct halo_weap_r8_triggers_section_error error;
- uint8_t pad_1[8];
- struct halo_weap_r8_triggers_section_charging charging;
- struct halo_weap_r8_triggers_section_projectile projectile;
- struct halo_weap_r8_triggers_section_miscellaneous miscellaneous;
- uint8_t pad_2[64];
- struct halo_array r1_firing_effects; // maximum of 8 cells 0x80379D00
- };
- struct halo_weap_r3_r1_firing_effects
- {
- int16_t shot_count_lower_bound;
- int16_t shot_count_upper_bound;
- uint8_t pad_1[32];
- struct halo_dependency d1_firing_effect; // effe snd!
- struct halo_dependency d2_misfire_effect; // effe snd!
- struct halo_dependency d3_empty_effect; // effe snd!
- struct halo_dependency d4_firing_damage; // jpt!
- struct halo_dependency d5_misfire_damage; // jpt!
- struct halo_dependency d6_empty_damage; // jpt!
- };
- #pragma mark wind
- struct halo_wind
- {
- struct halo_ranged_float velocity;
- struct halo_angle_2d variation_area_rad;
- float local_variation_weight;
- float local_variation_rate;
- float damping;
- uint8_t pad_1[36];
- };
- #pragma mark wphi
- struct halo_wphi_section_flash_cutoffs
- {
- uint8_t pad_1[1];
- struct halo_wphi_flash_cutoff_flags_bf flags_bf;
- uint8_t pad_2[2];
- int16_t total_ammo_cutoff;
- int16_t loaded_ammo_cutoff;
- int16_t heat_cutoff;
- int16_t age_cutoff;
- uint8_t pad_3[32];
- };
- struct halo_wphi_section_crosshairs
- {
- struct halo_array r4_crosshairs; // maximum of 19 cells 0x945A9C00
- };
- struct halo_wphi
- {
- struct halo_dependency d1_child_hud; // wphi
- struct halo_wphi_section_flash_cutoffs flash_cutoffs;
- struct halo_hud_section_screen_alignment weapon_hud_screen_alignment;
- struct halo_array r1_static_elements; // maximum of 16 cells 0x3C559C00
- struct halo_array r2_meter_elements; // maximum of 16 cells 0xB8569C00
- struct halo_array r3_number_elements; // maximum of 16 cells 0x44589C00
- struct halo_wphi_section_crosshairs crosshairs;
- struct halo_array r5_overlay_elements; // maximum of 16 cells 0xDC589C00
- uint8_t pad_1[16];
- struct halo_array r6_screen_effect; // maximum of 1 cell 0x48379C00
- uint8_t pad_2[132];
- struct halo_hud_section_messaging_information messaging_information;
- };
- struct halo_wphi_screen_element_association
- {
- enum halo_interface_element_state_attachments state_attached_to_list;
- uint8_t pad_1[2];
- enum halo_interface_element_map_type_compatibilities can_use_on_map_type_list;
- uint8_t pad_2[30];
- };
- struct halo_wphi_r1_static_elements
- {
- struct halo_wphi_screen_element_association association;
- struct halo_hud_screen_layer screen_layer;
- uint8_t pad_1[40];
- };
- struct halo_wphi_r2_meter_elements
- {
- struct halo_wphi_screen_element_association association;
- struct halo_hud_meter meter;
- uint8_t pad_1[40];
- };
- struct halo_wphi_r3_number_elements
- {
- struct halo_wphi_screen_element_association association;
- struct halo_hud_numbers numbers;
- uint8_t pad_1[14];
- struct halo_wphi_number_weapon_flags_bf weapon_specific_flags_bf;
- uint8_t pad_2[38];
- };
- struct halo_wphi_r4_crosshairs
- {
- enum halo_crosshair_types crosshair_type_list;
- uint8_t pad_1[2];
- enum halo_interface_element_map_type_compatibilities can_use_on_map_type_list;
- uint8_t pad_2[30];
- struct halo_dependency d1_crosshair_bitmap; // bitm
- struct halo_array r1_crosshair_overlays; // maximum of 16 cells 0xF8599C00
- uint8_t pad_3[40];
- };
- struct halo_wphi_r4_r1_crosshair_overlays
- {
- struct halo_hud_orientation orientation;
- struct halo_hud_color_and_flash color_and_flash;
- uint8_t pad_1[4];
- int16_t frame_rate; // differs from grhi which stores as float
- int16_t sequence_index;
- struct halo_wphi_crosshair_overlay_flags_bf flags_bf;
- uint8_t pad_2[32];
- };
- struct halo_wphi_r5_overlay_elements
- {
- struct halo_wphi_screen_element_association association;
- struct halo_dependency d1_overlay_bitmap; // bitm
- struct halo_array r1_overlays; // maximum of 16 cells 0xCC539C00
- uint8_t pad_1[40];
- };
- struct halo_wphi_r5_r1_overlays
- {
- struct halo_hud_orientation orientation;
- struct halo_hud_color_and_flash color_and_flash;
- uint8_t pad_1[4];
- int16_t frame_rate;
- uint8_t pad_2[2];
- int16_t sequence_index;
- uint8_t pad_3[1];
- struct halo_wphi_overlays_type_bf type_bf;
- struct halo_hud_overlays_flash_flags_bf flags_bf;
- uint8_t pad_4[56];
- };
- struct halo_wphi_r6_screen_effect_section_mask
- {
- struct halo_wphi_screen_effect_alteration_flags_bf flags_bf;
- uint8_t pad_1[18];
- struct halo_dependency d1_mask_fullscreen; // bitm
- struct halo_dependency d2_mask_splitscreen; // bitm
- };
- struct halo_wphi_r6_screen_effect_section_convolution
- {
- struct halo_wphi_screen_effect_alteration_flags_bf flags_bf;
- uint8_t pad_1[2];
- struct halo_ranged_float fov_in_bounds_rad;
- struct halo_ranged_float radius_out_bounds;
- };
- struct halo_wphi_r6_screen_effect_section_night_vision
- {
- struct halo_wphi_screen_effect_brightness_flags_bf flags_bf;
- int16_t script_source;
- float intensity_frac;
- };
- struct halo_wphi_r6_screen_effect_section_desaturation
- {
- struct halo_wphi_screen_effect_color_flags_bf flags_bf;
- int16_t script_source;
- float intensity_frac;
- struct halo_colorfloat_rgb tint;
- };
- struct halo_wphi_r6_screen_effect
- {
- uint8_t pad_1[5];
- struct halo_wphi_r6_screen_effect_section_mask mask;
- uint8_t pad_2[9];
- struct halo_wphi_r6_screen_effect_section_convolution convolution;
- uint8_t pad_3[25];
- struct halo_wphi_r6_screen_effect_section_night_vision night_vision;
- uint8_t pad_4[25];
- struct halo_wphi_r6_screen_effect_section_desaturation desaturation;
- uint8_t pad_5[24];
- };
- #pragma mark - Files -
- struct halo_tag_file_actr
- {
- struct halo_tag_header header;
- struct halo_actr metadata;
- };
- struct halo_tag_file_actv
- {
- struct halo_tag_header header;
- struct halo_actv metadata;
- };
- struct halo_map
- {
- int32_t something;
- };
- struct halo_map_tags_index_entry
- {
- char tag_class_1[4];
- char tag_class_2[4];
- char tag_class_3[4];
- int16_t tag_index_id;
- int16_t tag_index_id_inverse;
- uint32_t *tpns;
- uint32_t *metadata;
- uint8_t zeros[8];
- };
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement