Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -1674,7 +1674,7 @@ def MatchingFor(*versions):
ActorRel(NonMatching, "d_a_e_sw"),
ActorRel(Equivalent, "d_a_e_th"), # weak func order
ActorRel(MatchingFor("GZ2E01"), "d_a_e_th_ball"),
ActorRel(NonMatching, "d_a_e_tk"),
ActorRel(MatchingFor("GZ2E01"), "d_a_e_tk"),
ActorRel(NonMatching, "d_a_e_tk2"),
ActorRel(NonMatching, "d_a_e_tk_ball"),
ActorRel(NonMatching, "d_a_e_tt"),
Expand Down
68 changes: 60 additions & 8 deletions include/d/actor/d_a_e_tk.h
Original file line number Diff line number Diff line change
@@ -1,26 +1,78 @@
#ifndef D_A_E_TK_H
#define D_A_E_TK_H
#include "f_op/f_op_actor_mng.h"

#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
#include "d/d_cc_uty.h"
#include "d/d_path.h"
#include "f_op/f_op_actor.h"

/**
* @ingroup actors-enemies
* @class e_tk_class
* @brief Water Toadpoli
*
* @details
*
*
* @details Water Toadpoli in a Water Grotto. (And Goron Mines?)
* Frog-like creatures that emerge from the water and shoot a stone ball
* towards Link. If Link gets too close to the toadpoli, it will dive
* underwater, where it is invulnerable. It likes to swim around.
*/

class e_tk_class : public fopEn_enemy_c {
private:
/* 0x5ac */ u8 field_0x5ac[0xa64 - 0x5ac];
public:
/* 0x5AC */ request_of_phase_process_class mPhaseReq;
/* 0x5B4 */ u8 mArg0;
/* 0x5B5 */ u8 mArg1;
/* 0x5B6 */ u8 mArg2;
/* 0x5B7 */ u8 mParamPathIdx;
/* 0x5B8 */ s8 mPathLoaded;
/* 0x5BC */ dPath* mpPath;
/* 0x5C0 */ s8 mPathID;
/* 0x5C1 */ s8 mPathDirection;
/* 0x5C4 */ mDoExt_McaMorfSO* mpMorf;
/* 0x5C8 */ int mAnim;
/* 0x5CC */ Z2CreatureEnemy mSound;
/* 0x670 */ f32 mAnimSpeed;
/* 0x674 */ s16 mLifetime;
/* 0x676 */ s16 mAction;
/* 0x678 */ s16 mMode;
/* 0x67C */ cXyz mPos;
/* 0x688 */ s16 mSomeAngle;
/* 0x68A */ u8 field_0x68a[2];
/* 0x68C */ s16 mPlayerAngleY;
/* 0x690 */ f32 mPlayerDistanceLimit;
/* 0x694 */ u8 field_0x694[2];
/* 0x696 */ s16 mActionTimer[3];
/* 0x69C */ s16 mExecuteState;
/* 0x69E */ s16 mInvincibilityTimer;
/* 0x6A0 */ s8 mAttentionOFF;
/* 0x6A1 */ s8 mTKBallSpawned;
/* 0x6A4 */ u32 mHamonSet;
/* 0x6A8 */ u8 field_0x6a8[4];
/* 0x6AC */ fpc_ProcID mpBallID;
/* 0x6B0 */ dBgS_AcchCir mAcchCir;
/* 0x6F0 */ dBgS_ObjAcch mAcch;
/* 0x8C8 */ dCcD_Stts mStts;
/* 0x904 */ dCcD_Sph mSph;
/* 0xA3C */ dCcU_AtInfo mAtInfo;
/* 0xA60 */ bool mInitHIO;
};

STATIC_ASSERT(sizeof(e_tk_class) == 0xa64);
STATIC_ASSERT(sizeof(e_tk_class) == 0xA64);

class daE_TK_HIO_c {
public:
/* 807B81EC */ daE_TK_HIO_c();
/* 807BA1C4 */ ~daE_TK_HIO_c();
/* 807BA1C4 */ virtual ~daE_TK_HIO_c() {}

/* 0x04 */ s8 field_0x04;
/* 0x08 */ f32 mRadiusScale;
/* 0x0C */ f32 mPlayerRange1;
/* 0x10 */ f32 mPlayerRange2;
/* 0x14 */ f32 mSpeedModifier1;
/* 0x18 */ f32 mSpeedModifier2;
};

STATIC_ASSERT(sizeof(daE_TK_HIO_c) == 0x1C);

#endif /* D_A_E_TK_H */
2 changes: 1 addition & 1 deletion include/d/actor/d_a_e_tk_ball.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
*
*/
class e_tk_ball_class : public fopEn_enemy_c {
private:
public:
/* 0x5ac */ u8 field_0x5ac[0x8cc - 0x5ac];
};

Expand Down
Loading