diff options
Diffstat (limited to 'src/overlays/actors/ovl_Ball/ac_ball.h')
| -rw-r--r-- | src/overlays/actors/ovl_Ball/ac_ball.h | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/src/overlays/actors/ovl_Ball/ac_ball.h b/src/overlays/actors/ovl_Ball/ac_ball.h index d94cd2e..4e62164 100644 --- a/src/overlays/actors/ovl_Ball/ac_ball.h +++ b/src/overlays/actors/ovl_Ball/ac_ball.h @@ -5,16 +5,43 @@ #include "m_actor.h" #include "m_collision_obj.h" #include "unk.h" +#include "c_keyframe.h" struct Game_Play; struct Ball; +#define BALL_208_FLAG_1 (1 << 0) +#define BALL_208_FLAG_2 (1 << 1) +#define BALL_208_FLAG_4 (1 << 2) +#define BALL_208_FLAG_8 (1 << 3) + +typedef enum BallType { + BALL_TYPE_B, + BALL_TYPE_D, + BALL_TYPE_S, +} BallType; + typedef void (*BallActionFunc)(struct Ball*, struct Game_Play*); typedef struct Ball { /* 0x000 */ Actor actor; /* 0x174 */ ClObjPipe collider; - /* 0x180 */ UNK_TYPE1 unk_180[0x8C]; -} Ball; // size = 0x20C + /* 0x190 */ UNK_TYPE1 unk_190[0x40]; + /* 0x1D0 */ xyz_t bgPos; + /* 0x1DC */ Actor* colliderActor; + /* 0x1E0 */ BallActionFunc process; + /* 0x1E4 */ void* segment; + /* 0x1E8 */ f32 height; + /* 0x1EC */ f32 maxSpeed; + /* 0x1F0 */ f32 acceleration; + /* 0x1F4 */ f32 speed; + /* 0x1F8 */ s32 type; + /* 0x1FC */ s16 waterTimer; + /* 0x1FE */ UNK_TYPE1 unk_1FE[0x2]; + /* 0x200 */ s_xyz ballRot; + /* 0x206 */ s16 bounceTimer; + /* 0x208 */ s16 unk_208; + /* 0x20A */ s16 unk_20A; +} Ball; // size 0x20C #endif |
