mirror of
https://github.com/nunuhara/xsystem4.git
synced 2026-10-10 00:08:23 +03:00
ReignEngine: Add loader for particle effects
This implements a parser for particle effect definition files (.pae) and a set of field accessor functions for the RE_ITYPE_PARTICLE_EFFECT instance type. Rendering of effects is not yet implemented.
This commit is contained in:
@@ -118,6 +118,7 @@ struct RE_plugin {
|
||||
struct RE_instance {
|
||||
struct RE_plugin *plugin;
|
||||
struct model *model;
|
||||
struct particle_effect *effect;
|
||||
struct motion *motion;
|
||||
struct motion *next_motion;
|
||||
struct height_detector *height_detector;
|
||||
@@ -175,6 +176,68 @@ bool RE_motion_set_frame(struct motion *motion, float frame);
|
||||
bool RE_motion_set_frame_range(struct motion *motion, float begin, float end);
|
||||
bool RE_motion_set_loop_frame_range(struct motion *motion, float begin, float end);
|
||||
|
||||
int RE_effect_get_num_object(struct particle_effect *effect);
|
||||
struct particle_object *RE_get_effect_object(struct particle_effect *effect, unsigned object);
|
||||
int RE_particle_get_type(struct particle_object *po);
|
||||
int RE_particle_get_move_type(struct particle_object *po);
|
||||
int RE_particle_get_up_vec_type(struct particle_object *po);
|
||||
float RE_particle_get_move_curve(struct particle_object *po);
|
||||
void RE_particle_get_frame(struct particle_object *po, int *begin_frame, int *end_frame);
|
||||
int RE_particle_get_stop_frame(struct particle_object *po);
|
||||
const char *RE_particle_get_name(struct particle_object *po);
|
||||
int RE_particle_get_num_pos(struct particle_object *po);
|
||||
int RE_particle_get_num_pos_unit(struct particle_object *po, int pos);
|
||||
int RE_particle_get_pos_unit_type(struct particle_object *po, int pos, int unit);
|
||||
int RE_particle_get_pos_unit_index(struct particle_object *po, int pos, int unit);
|
||||
int RE_particle_get_num_texture(struct particle_object *po);
|
||||
const char *RE_particle_get_texture(struct particle_object *po, int texture);
|
||||
bool RE_particle_get_size(struct particle_object *po, float *begin_size, float *end_size);
|
||||
bool RE_particle_get_size2(struct particle_object *po, int frame, float *size);
|
||||
bool RE_particle_get_size_x(struct particle_object *po, int frame, float *size);
|
||||
bool RE_particle_get_size_y(struct particle_object *po, int frame, float *size);
|
||||
bool RE_particle_get_size_type(struct particle_object *po, int frame, int *type);
|
||||
bool RE_particle_get_size_x_type(struct particle_object *po, int frame, int *type);
|
||||
bool RE_particle_get_size_y_type(struct particle_object *po, int frame, int *type);
|
||||
int RE_particle_get_num_size2(struct particle_object *po);
|
||||
int RE_particle_get_num_size_x(struct particle_object *po);
|
||||
int RE_particle_get_num_size_y(struct particle_object *po);
|
||||
int RE_particle_get_num_size_type(struct particle_object *po);
|
||||
int RE_particle_get_num_size_x_type(struct particle_object *po);
|
||||
int RE_particle_get_num_size_y_type(struct particle_object *po);
|
||||
int RE_particle_get_blend_type(struct particle_object *po);
|
||||
const char *RE_particle_get_polygon_name(struct particle_object *po);
|
||||
int RE_particle_get_num_particles(struct particle_object *po);
|
||||
int RE_particle_get_alpha_fadein_time(struct particle_object *po);
|
||||
int RE_particle_get_alpha_fadeout_time(struct particle_object *po);
|
||||
int RE_particle_get_texture_anime_time(struct particle_object *po);
|
||||
float RE_particle_get_alpha_fadein_frame(struct particle_object *po);
|
||||
float RE_particle_get_alpha_fadeout_frame(struct particle_object *po);
|
||||
float RE_particle_get_texture_anime_frame(struct particle_object *po);
|
||||
int RE_particle_get_frame_ref_type(struct particle_object *po);
|
||||
int RE_particle_get_frame_ref_param(struct particle_object *po);
|
||||
void RE_particle_get_x_rotation_angle(struct particle_object *po, float *begin_angle, float *end_angle);
|
||||
void RE_particle_get_y_rotation_angle(struct particle_object *po, float *begin_angle, float *end_angle);
|
||||
void RE_particle_get_z_rotation_angle(struct particle_object *po, float *begin_angle, float *end_angle);
|
||||
void RE_particle_get_x_revolution_angle(struct particle_object *po, float *begin_angle, float *end_angle);
|
||||
void RE_particle_get_x_revolution_distance(struct particle_object *po, float *begin_distance, float *end_distance);
|
||||
void RE_particle_get_y_revolution_angle(struct particle_object *po, float *begin_angle, float *end_angle);
|
||||
void RE_particle_get_y_revolution_distance(struct particle_object *po, float *begin_distance, float *end_distance);
|
||||
void RE_particle_get_z_revolution_angle(struct particle_object *po, float *begin_angle, float *end_angle);
|
||||
void RE_particle_get_z_revolution_distance(struct particle_object *po, float *begin_distance, float *end_distance);
|
||||
bool RE_particle_get_curve_length(struct particle_object *po, vec3 out);
|
||||
int RE_particle_get_child_frame(struct particle_object *po);
|
||||
float RE_particle_get_child_length(struct particle_object *po);
|
||||
float RE_particle_get_child_begin_slope(struct particle_object *po);
|
||||
float RE_particle_get_child_end_slope(struct particle_object *po);
|
||||
float RE_particle_get_child_create_begin_frame(struct particle_object *po);
|
||||
float RE_particle_get_child_create_end_frame(struct particle_object *po);
|
||||
int RE_particle_get_child_move_dir_type(struct particle_object *po);
|
||||
int RE_particle_get_dir_type(struct particle_object *po);
|
||||
int RE_particle_get_num_damage(struct particle_object *po);
|
||||
int RE_particle_get_damage(struct particle_object *po, int frame);
|
||||
float RE_particle_get_offset_x(struct particle_object *po);
|
||||
float RE_particle_get_offset_y(struct particle_object *po);
|
||||
|
||||
bool RE_back_cg_set(struct RE_back_cg *bcg, int no);
|
||||
bool RE_back_cg_set_name(struct RE_back_cg *bcg, struct string *name, struct archive *aar);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user