mirror of
https://github.com/astromaddie/HaloCE-VR.git
synced 2026-10-19 09:00:14 +02:00
95 lines
2.1 KiB
C
95 lines
2.1 KiB
C
/*
|
|
EFFECT_DEFINITIONS.H
|
|
|
|
header included in hcex build.
|
|
*/
|
|
|
|
#ifndef __EFFECT_DEFINITIONS_H
|
|
#define __EFFECT_DEFINITIONS_H
|
|
#pragma once
|
|
|
|
#include "tag_files/tag_groups.h"
|
|
|
|
/* ---------- constants */
|
|
|
|
enum
|
|
{
|
|
EFFECT_DEFINITION_TAG = 'effe',
|
|
EFFECT_DEFINITION_VERSION = 4,
|
|
MAXIMUM_EFFECT_PARTICLES_PER_EVENT = 32,
|
|
MAXIMUM_EFFECT_PARTS_PER_EVENT = 32,
|
|
MAXIMUM_EFFECT_LOCATIONS = 32,
|
|
MAXIMUM_EFFECT_EVENTS = 32,
|
|
};
|
|
|
|
/* ---------- macros */
|
|
|
|
/* ---------- structures */
|
|
|
|
struct effect_definition
|
|
{
|
|
long flags;
|
|
short loop_start_index;
|
|
short loop_stop_index;
|
|
real runtime_danger_radius;
|
|
real unused00c[7];
|
|
struct tag_block locations;
|
|
struct tag_block events;
|
|
};
|
|
|
|
typedef char effect_definition_size_assert[
|
|
sizeof(struct effect_definition) == 0x40 ? 1 : -1];
|
|
|
|
struct effect_event_definition
|
|
{
|
|
long flags;
|
|
real skip_fraction;
|
|
real delay_lower_bound;
|
|
real delay_upper_bound;
|
|
real duration_lower_bound;
|
|
real duration_upper_bound;
|
|
real unused018[5];
|
|
struct tag_block parts;
|
|
struct tag_block particles;
|
|
};
|
|
|
|
typedef char effect_event_definition_size_assert[
|
|
sizeof(struct effect_event_definition) == 0x44 ? 1 : -1];
|
|
|
|
struct effect_part_definition
|
|
{
|
|
short environment;
|
|
short disposition;
|
|
short location_index;
|
|
word flags;
|
|
long unused008[3];
|
|
unsigned long runtime_base_class_tag;
|
|
struct tag_reference reference;
|
|
long unused028[6];
|
|
real velocity_lower_bound;
|
|
real velocity_upper_bound;
|
|
real velocity_cone_angle;
|
|
real angular_velocity_lower_bound;
|
|
real angular_velocity_upper_bound;
|
|
real radius_modifier_lower_bound;
|
|
real radius_modifier_upper_bound;
|
|
long unused05c;
|
|
unsigned long scale_a_flags;
|
|
unsigned long scale_b_flags;
|
|
};
|
|
|
|
typedef char effect_part_definition_size_assert[
|
|
sizeof(struct effect_part_definition) == 0x68 ? 1 : -1];
|
|
typedef char effect_part_definition_reference_offset_assert[
|
|
offsetof(struct effect_part_definition, reference) == 0x18 ? 1 : -1];
|
|
typedef char effect_part_definition_velocity_offset_assert[
|
|
offsetof(struct effect_part_definition, velocity_lower_bound) == 0x40 ? 1 : -1];
|
|
|
|
/* ---------- prototypes/EXAMPLE.C */
|
|
|
|
/* ---------- globals */
|
|
|
|
/* ---------- public code */
|
|
|
|
#endif // __EFFECT_DEFINITIONS_H
|