summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/SSystem/SComponent/c_cc_d.h2
-rw-r--r--include/d/actor/d_a_e_tk_ball.h38
2 files changed, 33 insertions, 7 deletions
diff --git a/include/SSystem/SComponent/c_cc_d.h b/include/SSystem/SComponent/c_cc_d.h
index de6af75a72..c8c413edc8 100644
--- a/include/SSystem/SComponent/c_cc_d.h
+++ b/include/SSystem/SComponent/c_cc_d.h
@@ -522,6 +522,8 @@ public:
void OnTgSetBit() { mObjTg.OnSPrmBit(1); }
void OffTgSetBit() { mObjTg.ClrSet(); }
void OnCoSetBit() { mObjCo.OnSPrmBit(1); }
+ void OffAtVsEnemyBit() { mObjAt.OffSPrmBit(0x2); }
+ void OnAtVsEnemyBit() { mObjAt.OnSPrmBit(0x2); }
void OffAtVsPlayerBit() { mObjAt.OffSPrmBit(0xC); }
void OnAtVsPlayerBit() { mObjAt.OnSPrmBit(0xC); }
void OnCoSPrmBit(u32 flag) { mObjCo.OnSPrmBit(flag); }
diff --git a/include/d/actor/d_a_e_tk_ball.h b/include/d/actor/d_a_e_tk_ball.h
index 5c990cb2b0..7b391fa4cf 100644
--- a/include/d/actor/d_a_e_tk_ball.h
+++ b/include/d/actor/d_a_e_tk_ball.h
@@ -1,21 +1,45 @@
#ifndef D_A_E_TK_BALL_H
#define D_A_E_TK_BALL_H
-#include "f_op/f_op_actor_mng.h"
+
+#include "f_op/f_op_actor.h"
+#include "d/d_cc_d.h"
/**
* @ingroup actors-enemies
* @class e_tk_ball_class
* @brief Fire/Water Toadpoli Ball
- *
- * @details
- *
+ *
+ * @details Projectiles spat by Toadpoli enemies at the player.
+ * Two types exist: fire and water. Link can deflect these balls
+ * with his shield or slice them with his sword. When deflected
+ * while locked on to the enemy, they will return to the Toadpoli
+ * that fired them.
*/
+
class e_tk_ball_class : public fopEn_enemy_c {
public:
- /* 0x5ac */ u8 field_0x5ac[0x8cc - 0x5ac];
+ /* 0x5AC */ request_of_phase_process_class mPhaseReq;
+ /* 0x5B4 */ u8 mType;
+ /* 0x5B5 */ u8 mArg1;
+ /* 0x5B8 */ J3DModel* mpModel;
+ /* 0x5BC */ Z2SoundObjSimple mSound;
+ /* 0x5DC */ s16 mLifetime;
+ /* 0x5DE */ s16 mAction;
+ /* 0x5E0 */ s16 mMode;
+ /* 0x5E2 */ s16 mActionTimer[2];
+ /* 0x5E6 */ s16 mInvincibilityTimer;
+ /* 0x5E8 */ cXyz mInitalPosition;
+ /* 0x5F4 */ f32 mInitalDistance;
+ /* 0x5F8 */ f32 mArcHeight;
+ /* 0x5FC */ dCcD_Stts mStts;
+ /* 0x638 */ dCcD_Sph mAtSph;
+ /* 0x770 */ dCcD_Sph mTgSph;
+ /* 0x8A8 */ u32 mParticleKey[2];
+ /* 0x8B0 */ cXyz mParticleDirection;
+ /* 0x8BC */ cXyz mPreviousPosition;
+ /* 0x8C8 */ bool mSuspended;
};
-STATIC_ASSERT(sizeof(e_tk_ball_class) == 0x8cc);
-
+STATIC_ASSERT(sizeof(e_tk_ball_class) == 0x8CC);
#endif /* D_A_E_TK_BALL_H */