tp/include/d/actor/d_a_e_hz.h

136 lines
3.9 KiB
C++

#ifndef D_A_E_HZ_H
#define D_A_E_HZ_H
#include "d/actor/d_a_boomerang.h"
#include "d/actor/d_a_nbomb.h"
#include "d/actor/d_a_obj_carry.h"
#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
#include "d/d_cc_uty.h"
#include "f_op/f_op_actor_mng.h"
/**
* @ingroup actors-enemies
* @class daE_HZ_c
* @brief Tile Worm
*
* @details Enemy - Tile Worm
*
*/
class daE_HZ_c : public fopEn_enemy_c {
public:
void setBck(int, u8, f32, f32);
bool checkBck(int);
int draw();
void setActionMode(int);
bool checkHideStart();
bool checkAttackStart();
bool checkArrowCharge();
void setTgSetBit(int);
bool isWait();
void checkFall();
void setCloseSmokeEffect();
void executeWait();
f32 getHideSpeed();
void executeHide();
void executeAttack();
void initBackWalk();
void executeAway();
void setWindEnd();
void executeWind();
void executeChance();
void initRollDamage();
bool doRollDamage();
void executeDamage();
void executeDeath();
void setWindChanceEnd();
void executeWindChance();
void executeWindWalk();
void setWaterEffect();
void executeWaterDeath();
void executeDeathWait();
void damage_check();
bool checkWaterSurface();
void action();
void mtx_set();
void cc_set();
int execute();
int _delete();
int ctrlJoint(J3DJoint*, J3DModel*);
static int JointCallBack(J3DJoint*, int);
int CreateHeap();
void setInitPos();
int create();
private:
/* 0x5AC */ request_of_phase_process_class mPhaseReq;
/* 0x5B4 */ request_of_phase_process_class mPhaseReq2;
/* 0x5BC */ mDoExt_McaMorfSO* mpMorfSO;
/* 0x5C0 */ J3DModel* mpModel;
/* 0x5C4 */ J3DModel* mpModel2;
/* 0x5C8 */ Z2CreatureEnemy mSound;
/* 0x66C */ daBoomerang_c* mpBoomerangActor;
/* 0x670 */ daNbomb_c* mpBombActor;
/* 0x674 */ daObjCarry_c* mpCarryActor;
/* 0x678 */ cXyz field_0x678;
/* 0x684 */ cXyz mSmokeEffectPosition;
/* 0x690 */ csXyz mBackbone1YZRot;
/* 0x696 */ csXyz mBackbone2YZRot;
/* 0x69C */ csXyz mBackbone3YZRot;
/* 0x6A4 */ f32 mPlayerDist;
/* 0x6A8 */ f32 field_0x6a8;
/* 0x6AC */ f32 mGroundCross;
/* 0x6B0 */ s16 mPlayerAngleY;
/* 0x6B2 */ s16 field_0x6b2;
/* 0x6B4 */ s16 field_0x6b4;
/* 0x6B6 */ s16 field_0x6b6;
/* 0x6B8 */ u8 field_0x6B8[0x6BC - 0x6B8];
/* 0x6BC */ char* mpName;
/* 0x6C0 */ s32 mAction;
/* 0x6C4 */ s32 mPrevAction;
/* 0x6C8 */ s32 mMode; // That's just a guess. Might need a better name for it's usage
/* 0x6CC */ s32 field_0x6cc;
/* 0x6D0 */ u32 mShadowKey;
/* 0x6D4 */ s16 mDamageDeathTimer;
/* 0x6D6 */ s16 mWaitTimer;
/* 0x6D8 */ s16 mPiyoriTimer;
/* 0x6DA */ s16 mAttackStartTimer;
/* 0x6DC */ s16 mRetentionBeforeStretchTimer;
/* 0x6DE */ s16 mAttackCooldownTimer;
/* 0x6E0 */ s16 mCameraOffTimer;
/* 0x6E2 */ s16 mCameraOnTimer;
/* 0x6E4 */ u8 field_0x6e4;
/* 0x6E5 */ u8 mSetModelAnmMtx;
/* 0x6E6 */ u8 field_0x6E6;
/* 0x6E7 */ u8 mDisableShadow; // Shadow is active when this is false
/* 0x6E8 */ u8 field_0x6e8;
/* 0x6E9 */ u8 field_0x6e9;
/* 0x6EA */ u8 field_0x6ea;
/* 0x6EB */ u8 mParam;
/* 0x6EC */ u8 field_0x6EC[0x6ED - 0x6EC];
/* 0x6ED */ u8 mReadyNewAction;
/* 0x6F0 */ f32 mColor;
/* 0x6F4 */ u8 mReadyChangeColor;
/* 0x6F8 */ dKy_tevstr_c mTevStr;
/* 0xA80 */ u8 field_0xA80[0xA84 - 0xA80];
/* 0xA84 */ Mtx mMtx;
/* 0xAB4 */ dBgW* mpBgW;
/* 0xAB8 */ dBgS_AcchCir mAcchCir;
/* 0xAF8 */ dBgS_ObjAcch mObjAcch;
/* 0xCD0 */ dCcD_Stts mStts;
/* 0xD0C */ dCcD_Sph mSpheres[4];
/* 0x11EC */ dCcU_AtInfo mAtInfo;
/* 0x1210 */ u32 mSmokeKey;
/* 0x1214 */ u32 mSmokeKey2;
/* 0x1218 */ u32 mJumpEffects[2];
/* 0x1220 */ u32 mWaterEffects[4];
/* 0x1230 */ u32 mEffect;
/* 0x1234 */ u8 mHIOInit;
};
STATIC_ASSERT(sizeof(daE_HZ_c) == 0x1238);
#endif /* D_A_E_HZ_H */