summaryrefslogtreecommitdiff
path: root/src/overlays/actors/ovl_Ball/ac_ball.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/overlays/actors/ovl_Ball/ac_ball.h')
-rw-r--r--src/overlays/actors/ovl_Ball/ac_ball.h31
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