X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=entity.h;h=5b0d4a73bb82842d63959434e4e86eb882b8cf55;hb=8f83be5a31728cd6bf95020e729367cc44308763;hp=2c70b82988375ed3e6814869c1e6b8481ea5d97d;hpb=2673c575386c604fc2c0603dba2480eda05cf97a;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/entity.h b/entity.h index 2c70b82..5b0d4a7 100644 --- a/entity.h +++ b/entity.h @@ -11,6 +11,32 @@ typedef struct ent_path_index ent_path_index; typedef struct ent_checkpoint ent_checkpoint; typedef struct ent_route ent_route; typedef struct ent_water ent_water; +typedef struct ent_audio_clip ent_audio_clip; +typedef struct volume_particles volume_particles; +typedef struct volume_trigger volume_trigger; +typedef struct ent_volume ent_volume; +typedef struct ent_audio ent_audio; +typedef struct ent_index ent_index; + +enum entity_alias{ + k_ent_gate = 1, + k_ent_spawn = 2, + k_ent_route_node = 3, + k_ent_route = 4, + k_ent_water = 5, + k_ent_volume = 6, + k_ent_audio = 7 +}; + +struct ent_index{ + u32 type, + index; +}; + +enum entity_function{ + k_ent_function_trigger, + k_ent_function_particle_spawn +}; struct ent_spawn{ mdl_transform transform; @@ -109,4 +135,63 @@ struct ent_water{ u32 reserved0, reserved1; }; +struct ent_audio_clip{ + union{ + mdl_file file; + audio_clip clip; + }; + + float probability; +}; + +struct volume_particles{ + u32 blank, blank2; +}; + +struct volume_trigger{ + u32 event, blank; +}; + +enum volume_subtype{ + k_volume_subtype_trigger, + k_volume_subtype_particle +}; + +struct ent_volume{ + mdl_transform transform; + m4x3f to_world, to_local; + u32 type; + + ent_index target; + + union{ + volume_trigger trigger; + volume_particles particles; + }; +}; + +struct ent_audio{ + mdl_transform transform; + u32 flags, + clip_start, + clip_count; + float volume, crossfade; + u32 behaviour, + group, + probability_curve, + max_channels; +}; + +enum channel_behaviour{ + k_channel_behaviour_unlimited = 0, + k_channel_behaviour_discard_if_full = 1, + k_channel_behaviour_crossfade_if_full = 2 +}; + +enum probability_curve{ + k_probability_curve_constant = 0, + k_probability_curve_wildlife_day = 1, + k_probability_curve_wildlife_night = 2 +}; + #endif /* ENTITY_H */