mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-05-23 14:41:38 -04:00
58 lines
1.4 KiB
C
58 lines
1.4 KiB
C
#ifndef AC_SNOWMAN_H
|
|
#define AC_SNOWMAN_H
|
|
|
|
#include "types.h"
|
|
#include "m_actor.h"
|
|
#include "m_snowman.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define aSMAN_MOVE_DIST_MAX (6400.0f)
|
|
|
|
#define aSMAN_FLAG_HEAD_JUMP (1 << 0)
|
|
#define aSMAN_FLAG_ON_GROUND (1 << 1)
|
|
#define aSMAN_FLAG_MOVED (1 << 2)
|
|
#define aSMAN_FLAG_IN_HOLE (1 << 3)
|
|
#define aSMAN_FLAG_4 (1 << 4) // unused?
|
|
#define aSMAN_FLAG_COMBINED (1 << 5)
|
|
#define aSMAN_FLAG_NO_SPEAK (1 << 6)
|
|
#define aSMAN_FLAG_DELETE (1 << 7)
|
|
|
|
typedef int (*aSMAN_PROC)(ACTOR* actorx, GAME* game);
|
|
|
|
typedef struct snowman_actor_s {
|
|
/* 0x000 */ ACTOR actor_class;
|
|
/* 0x174 */ ClObjPipe_c col_pipe;
|
|
/* 0x190 */ aSMAN_PROC process;
|
|
/* 0x194 */ ACTOR* col_actor;
|
|
/* 0x198 */ xyz_t combine_dist;
|
|
/* 0x1A4 */ xyz_t rev_pos;
|
|
/* 0x1B0 */ xyz_t fg_pos;
|
|
/* 0x1BC */ f32 y_ofs;
|
|
/* 0x1C0 */ f32 fall_height;
|
|
/* 0x1C4 */ f32 base_speed;
|
|
/* 0x1C8 */ f32 accel;
|
|
/* 0x1CC */ f32 roll_speed;
|
|
/* 0x1D0 */ f32 normalized_scale; /* normalized ball scale, [0, 1.0f] */
|
|
/* 0x1D4 */ f32 body_scale;
|
|
/* 0x1D8 */ f32 move_dist; /* [0, 6400.0f] */
|
|
/* 0x1DC */ f32 impact_speed;
|
|
/* 0x1E0 */ int result;
|
|
/* 0x1E4 */ int msg_no;
|
|
/* 0x1E8 */ int snowman_part;
|
|
/* 0x1EC */ s_xyz head_vec;
|
|
/* 0x1F2 */ s_xyz ground_angle;
|
|
/* 0x1F8 */ s16 flags;
|
|
/* 0x1FA */ s16 timer;
|
|
} SNOWMAN_ACTOR;
|
|
|
|
extern ACTOR_PROFILE Snowman_Profile;
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|