summaryrefslogtreecommitdiff
path: root/include/d/actor/d_a_e_zh.h
blob: 0c184acc5db8010a44a2eb0efedaf1efd8d0ee1d (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
#ifndef D_A_E_ZH_H
#define D_A_E_ZH_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_ZH_c
 * @brief Ball Master
 * 
 * @details 
 * 
 */

class daObjCarry_c;

class daE_ZH_c : public fopEn_enemy_c {
public:
    int draw();
    void setBck(int, u8, f32, f32);
    void setActionMode(int, int);
    bool startDemoCheck();
    void mBallBGCheck();
    void mGateOpen();
    bool mColorSet(bool, f32, f32);
    bool mReturnLineMove();
    bool mBallBgLineCheck();
    bool mSearchMove(u8);
    void mStartParticleSet();
    bool mCutTypeCheck();
    void damage_check();
    void executeStartDemo();
    void executeWait();
    void executeBallWait();
    void executeOpenStart();
    void executeSearchMove();
    void executeBgHitSHMove();
    void executeCatchMove();
    void executeCatchFlyMove();
    void executeReturnDemo();
    void executeFlyDelete();
    void executeDamage();
    void executeDeadStop();
    void executeEntryCheck();
    void tagAction();
    void action();
    void mtx_set();
    void cc_set();
    int execute();
    int _delete();
    int CreateHeap();
    cPhs_Step create();
    daE_ZH_c();

    /* 0x5AC */ request_of_phase_process_class mPhase;
    /* 0x5B4 */ mDoExt_McaMorfSO* mpModelMorf;
    /* 0x5B8 */ J3DModel* mEntranceModel;
    /* 0x5BC */ mDoExt_btkAnm* mpBtkAnm;
    /* 0x5C0 */ Z2CreatureEnemy mSound;
    /* 0x664 */ daObjCarry_c* mS_Ball;
    /* 0x668 */ cXyz field_0x668;
    /* 0x674 */ u8 field_0x674[0x680 - 0x674];
    /* 0x680 */ cXyz field_0x680;
    /* 0x68C */ cXyz field_0x68c;
    /* 0x698 */ cXyz mRetrunStartLine;
    /* 0x6A4 */ cXyz mRetrunEndLine;
    /* 0x6B0 */ cXyz mBallHosei;
    /* 0x6BC */ cXyz field_0x6bc;
    /* 0x6C8 */ cXyz field_0x6c8[3];
    /* 0x6EC */ int field_0x6ec[3];
    /* 0x6F8 */ cXyz field_0x6f8[8];
    /* 0x758 */ u8 field_0x758[8];
    /* 0x760 */ f32 field_0x760;
    /* 0x764 */ f32 field_0x764[3];
    /* 0x770 */ f32 pmRoofPos;
    /* 0x774 */ f32 field_0x774;
    /* 0x778 */ f32 field_0x778;
    /* 0x77C */ f32 field_0x77c;
    /* 0x780 */ int mActionMode;
    /* 0x784 */ int mMoveMode;
    /* 0x788 */ u32 mShadowKey;
    /* 0x78C */ int field_0x78c;
    /* 0x790 */ int mAnm;
    /* 0x794 */ int field_0x794[3];
    /* 0x7A0 */ int field_0x7a0;
    /* 0x7A4 */ int field_0x7a4;
    /* 0x7A8 */ u8 field_0x7a8;
    /* 0x7A9 */ u8 bitSw;
    /* 0x7AA */ u8 bitSwEnd;
    /* 0x7AB */ u8 arg0;
    /* 0x7AC */ u8 field_0x7ac;
    /* 0x7AD */ u8 field_0x7ad;
    /* 0x7AE */ u8 field_0x7ae;
    /* 0x7AF */ u8 field_0x7af;
    /* 0x7B0 */ s16 mRollAngle;
    /* 0x7B2 */ s16 field_0x7b2;
    /* 0x7B4 */ dBgS_AcchCir mAcchCir;
    /* 0x7F4 */ dBgS_ObjAcch mBgc;
    /* 0x9CC */ dCcD_Stts mStts;
    /* 0xA08 */ dCcD_Sph field_0xa08;
    /* 0xB40 */ dCcD_Cyl field_0xb40;
    /* 0xC7C */ dCcD_Cyl field_0xc7c;
    /* 0xDB8 */ dCcU_AtInfo mAtInfo;
    /* 0xDDC */ u32 field_0xddc[3];
    /* 0xDE8 */ u32 field_0xde8;
    /* 0xDEC */ cXyz mDemoCamEye;
    /* 0xDF8 */ cXyz mDemoCamCenter;
    /* 0xE04 */ u8 field_0xe04;
};

STATIC_ASSERT(sizeof(daE_ZH_c) == 0xe08);

class daE_ZH_HIO_c: public JORReflexible {
public:
    daE_ZH_HIO_c();
    virtual ~daE_ZH_HIO_c() {}

    void genMessage(JORMContext* ctx);

    // ボールマスター (Ball Master)
    /* 0x04 */ s8 field_0x4;
    /* 0x08 */ f32 model_size;          // モデルサイズ (Model Size)
    /* 0x0C */ f32 ascent_rate;         // 上昇速度(落下後)(Rate of ascent (after falling))
    /* 0x10 */ f32 wandering_area;      // うろうろ範囲 (Wandering Area)
    /* 0x14 */ s16 wait_time;           // 玉取られ後移動開始待ち時間 (Waiting time after the stone is taken and movement begins)
    /* 0x16 */ s16 piyori_time;         // ピヨリ時間 (Piyori Time)
    /* 0x18 */ u8 dungeon_bit_check;    // ダンジョンビットチェックON/OFF (Dungeon Bit Check ON/OFF)
};

#endif /* D_A_E_ZH_H */