Skip to content

Commit 7d4ec88

Browse files
authored
d_a_e_zh almost equivalent (#2548)
* work on create function * a bit more work * almost all functions worked on * All functions worked on and enums added * Fixed header brief * Can't figure out the last three small issues
1 parent ea1c649 commit 7d4ec88

File tree

3 files changed

+2293
-1685
lines changed

3 files changed

+2293
-1685
lines changed

include/d/actor/d_a_e_zh.h

Lines changed: 87 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,36 @@
11
#ifndef D_A_E_ZH_H
22
#define D_A_E_ZH_H
33

4+
#include "d/d_bg_s_acch.h"
5+
#include "d/d_cc_d.h"
6+
#include "d/d_cc_uty.h"
47
#include "f_op/f_op_actor_mng.h"
58

69
/**
710
* @ingroup actors-enemies
811
* @class daE_ZH_c
9-
* @brief Zant Head
12+
* @brief Ball Master
1013
*
1114
* @details
1215
*
1316
*/
17+
18+
class daObjCarry_c;
19+
1420
class daE_ZH_c : public fopEn_enemy_c {
15-
/* 8082907C */ void draw();
21+
public:
22+
/* 8082907C */ int draw();
1623
/* 808293A8 */ void setBck(int, u8, f32, f32);
1724
/* 80829454 */ void setActionMode(int, int);
18-
/* 80829570 */ void startDemoCheck();
25+
/* 80829570 */ bool startDemoCheck();
1926
/* 80829658 */ void mBallBGCheck();
2027
/* 808298BC */ void mGateOpen();
21-
/* 808299F8 */ void mColorSet(bool, f32, f32);
22-
/* 80829AD8 */ void mReturnLineMove();
23-
/* 80829E44 */ void mBallBgLineCheck();
24-
/* 8082A01C */ void mSearchMove(u8);
28+
/* 808299F8 */ bool mColorSet(bool, f32, f32);
29+
/* 80829AD8 */ bool mReturnLineMove();
30+
/* 80829E44 */ bool mBallBgLineCheck();
31+
/* 8082A01C */ bool mSearchMove(u8);
2532
/* 8082A390 */ void mStartParticleSet();
26-
/* 8082A4C8 */ void mCutTypeCheck();
33+
/* 8082A4C8 */ bool mCutTypeCheck();
2734
/* 8082A534 */ void damage_check();
2835
/* 8082A88C */ void executeStartDemo();
2936
/* 8082ABDC */ void executeWait();
@@ -42,22 +49,83 @@ class daE_ZH_c : public fopEn_enemy_c {
4249
/* 8082DB84 */ void action();
4350
/* 8082DE18 */ void mtx_set();
4451
/* 8082DF44 */ void cc_set();
45-
/* 8082E2FC */ void execute();
46-
/* 8082E3E8 */ void _delete();
47-
/* 8082E4E4 */ void CreateHeap();
48-
/* 8082E730 */ void create();
49-
/* 8082ECEC */ daE_ZH_c();
50-
51-
private:
52-
/* 0x5ac */ u8 field_0x5ac[0xe08 - 0x5ac];
52+
/* 8082E2FC */ int execute();
53+
/* 8082E3E8 */ int _delete();
54+
/* 8082E4E4 */ int CreateHeap();
55+
/* 8082E730 */ cPhs__Step create();
56+
/* 8082ECEC */ daE_ZH_c() {}
57+
58+
/* 0x5AC */ request_of_phase_process_class mPhase;
59+
/* 0x5B4 */ mDoExt_McaMorfSO* mpModelMorf;
60+
/* 0x5B8 */ J3DModel* mEntranceModel;
61+
/* 0x5BC */ mDoExt_btkAnm* mpBtkAnm;
62+
/* 0x5C0 */ Z2CreatureEnemy mSound;
63+
/* 0x664 */ daObjCarry_c* mS_Ball;
64+
/* 0x668 */ cXyz field_0x668;
65+
/* 0x674 */ u8 field_0x674[0x680 - 0x674];
66+
/* 0x680 */ cXyz field_0x680;
67+
/* 0x68C */ cXyz field_0x68c;
68+
/* 0x698 */ cXyz mRetrunStartLine;
69+
/* 0x6A4 */ cXyz mRetrunEndLine;
70+
/* 0x6B0 */ cXyz mBallHosei;
71+
/* 0x6BC */ cXyz field_0x6bc;
72+
/* 0x6C8 */ cXyz field_0x6c8[3];
73+
/* 0x6EC */ int field_0x6ec[3];
74+
/* 0x6F8 */ cXyz field_0x6f8[8];
75+
/* 0x758 */ u8 field_0x758[8];
76+
/* 0x760 */ f32 field_0x760;
77+
/* 0x764 */ f32 field_0x764[3];
78+
/* 0x770 */ f32 pmRoofPos;
79+
/* 0x774 */ f32 field_0x774;
80+
/* 0x778 */ f32 field_0x778;
81+
/* 0x77C */ f32 field_0x77c;
82+
/* 0x780 */ int mActionMode;
83+
/* 0x784 */ int mMoveMode;
84+
/* 0x788 */ u32 mShadowKey;
85+
/* 0x78C */ int field_0x78c;
86+
/* 0x790 */ int mAnm;
87+
/* 0x794 */ int field_0x794[3];
88+
/* 0x7A0 */ int field_0x7a0;
89+
/* 0x7A4 */ int field_0x7a4;
90+
/* 0x7A8 */ u8 field_0x7a8;
91+
/* 0x7A9 */ u8 bitSw;
92+
/* 0x7AA */ u8 bitSwEnd;
93+
/* 0x7AB */ u8 arg0;
94+
/* 0x7AC */ u8 field_0x7ac;
95+
/* 0x7AD */ u8 field_0x7ad;
96+
/* 0x7AE */ u8 field_0x7ae;
97+
/* 0x7AF */ u8 field_0x7af;
98+
/* 0x7B0 */ s16 mRollAngle;
99+
/* 0x7B2 */ s16 field_0x7b2;
100+
/* 0x7B4 */ dBgS_AcchCir mAcchCir;
101+
/* 0x7F4 */ dBgS_ObjAcch mBgc;
102+
/* 0x9CC */ dCcD_Stts mStts;
103+
/* 0xA08 */ dCcD_Sph field_0xa08;
104+
/* 0xB40 */ dCcD_Cyl field_0xb40;
105+
/* 0xC7C */ dCcD_Cyl field_0xc7c;
106+
/* 0xDB8 */ dCcU_AtInfo mAtInfo;
107+
/* 0xDDC */ u32 field_0xddc[3];
108+
/* 0xDE8 */ u32 field_0xde8;
109+
/* 0xDEC */ cXyz mDemoCamEye;
110+
/* 0xDF8 */ cXyz mDemoCamCenter;
111+
/* 0xE04 */ u8 field_0xe04;
53112
};
54113

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

57-
class daE_ZH_HIO_c {
116+
class daE_ZH_HIO_c: public JORReflexible {
117+
public:
58118
/* 8082902C */ daE_ZH_HIO_c();
59-
/* 8082F160 */ ~daE_ZH_HIO_c();
60-
};
119+
/* 8082F160 */ virtual ~daE_ZH_HIO_c() {}
61120

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

63131
#endif /* D_A_E_ZH_H */

include/d/actor/d_a_obj_carry.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,10 @@ class daObjCarry_c : public fopAc_ac_c {
277277
void offDraw() { mDraw = 1; }
278278
void onDraw() { mDraw = 0; }
279279
bool isDraw() { return mDraw == false; }
280+
void onCarryHookOK() { mCarryHookOK = 1; }
281+
void offCarryHookOK() { mCarryHookOK = 0; }
282+
BOOL checkRecover() { return mRecover; }
283+
void reset() { mReset = 1; }
280284

281285
void setPower(fopAc_ac_c* cannon_actor, f32 my_0xde0, f32 my_0xde4, s16 my_0xde8) {
282286
mpCannonActor = cannon_actor;

0 commit comments

Comments
 (0)