mirror of https://github.com/zeldaret/tp.git
136 lines
3.9 KiB
C++
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 */
|