#ifndef Z_ANIM_H #define Z_ANIM_H #if defined(_DEBUG) && defined(_Z_TESTMODE) /*========================================================================= Animation player types. =========================================================================*/ typedef enum { DIR_FIXED, DIR_AT_CLIENT, DIR_PARA_CLIENT } anim_dir_t; typedef struct { edict_t *monster; //monster being animated mframe_t monster_frames[1]; //current frame buffer mmove_t monster_move; //replacement currentmove for monster mmove_t **monster_sequences; //list of frame sequences for monster int current_sequence; //0 to play all frames int current_frame; //current frame in the current sequence (0 based) float last_dist; //last distance travelled, for going backwards qboolean moving_forward; int actual_frame, last_actual_frame; mmove_t *actual_sequence; int actual_sequence_idx; qboolean paused; //is animation paused or looping qboolean stationary; //allow movement in frame qboolean frame_events; //play frame events? qboolean active; //apply state changes to this animation anim_dir_t facing; anim_dir_t aim; vec3_t v_aim; } anim_data_t; //for aim correction during animation playback qboolean anim_player_correct_aim(edict_t *self, vec3_t aim); //for console commands void anim_player_cmd(edict_t *ent); #define ANIM_AIM(x, y) anim_player_correct_aim(x, y) #else #define ANIM_AIM(x, y) #endif #endif