summaryrefslogtreecommitdiff
path: root/include/d/actor/d_a_e_hz.h
blob: 539d808cf5e9629ee8cf5ba52d5921c594323dce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#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 */ const 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 */