11#ifndef D_A_B_TN_H
22#define D_A_B_TN_H
33
4+ #include " f_op/f_op_actor.h"
45#include " d/d_bg_s_acch.h"
56#include " d/d_cc_uty.h"
6- #include " f_op/f_op_actor_mng.h"
77#include " d/d_cc_d.h"
88
99/* *
1414 * @details Temple of Time dungeon mini-boss.
1515 *
1616 */
17+
1718class daB_TN_c : public fopEn_enemy_c {
1819public:
20+ enum daB_TN_ACTION1 {
21+ /* 0x0 */ ACT_ROOMDEMO,
22+ /* 0x1 */ ACT_OPENING,
23+ /* 0x2 */ ACT_WAITH,
24+ /* 0x3 */ ACT_CHASEH,
25+ /* 0x4 */ ACT_ATTACKH,
26+ /* 0x5 */ ACT_ATTACKSHIELDH,
27+ /* 0x6 */ ACT_GUARDH,
28+ /* 0x7 */ ACT_DAMAGEH,
29+ /* 0x8 */ ACT_CHANGEDEMO,
30+ /* 0x9 */ ACT_CHASEL,
31+ /* 0xA */ ACT_ATTACKL,
32+ /* 0xB */ ACT_ATTACKSHIELDL,
33+ /* 0xC */ ACT_GUARDL,
34+ /* 0xD */ ACT_DAMAGEL,
35+ /* 0xE */ ACT_ENDING,
36+ /* 0xF */ ACT_YOROKE,
37+ };
38+
39+ enum daB_TN_ACTION2 {
40+ /* 0x0 */ ACTION2_0_e,
41+ /* 0x1 */ ACTION2_1_e,
42+ /* 0x2 */ ACTION2_2_e,
43+ /* 0x3 */ ACTION2_3_e,
44+ /* 0x4 */ ACTION2_4_e,
45+ /* 0x5 */ ACTION2_5_e,
46+ /* 0x6 */ ACTION2_6_e,
47+ /* 0x7 */ ACTION2_7_e,
48+ /* 0x8 */ ACTION2_8_e,
49+ /* 0x9 */ ACTION2_9_e,
50+ /* 0xA */ ACTION2_10_e,
51+ /* 0xB */ ACTION2_11_e,
52+ /* 0xC */ ACTION2_12_e,
53+ /* 0xD */ ACTION2_13_e,
54+ /* 0xE */ ACTION2_14_e,
55+ /* 0xF */ ACTION2_15_e,
56+ /* 0x10 */ ACTION2_16_e,
57+ /* 0x11 */ ACTION2_17_e,
58+
59+ /* 0x14 */ ACTION2_20_e = 0x14 ,
60+ /* 0x40 */ ACTION2_70_e = 0x40 ,
61+ /* 0x46 */ ACTION2_76_e = 0x46 ,
62+ /* 0x64 */ ACTION2_100_e = 100 ,
63+ /* 0x65 */ ACTION2_101_e,
64+ /* 0x66 */ ACTION2_102_e,
65+ /* 0x67 */ ACTION2_103_e,
66+ /* 0x68 */ ACTION2_104_e,
67+ /* 0x69 */ ACTION2_105_e,
68+ /* 0x6A */ ACTION2_106_e,
69+ /* 0x6B */ ACTION2_107_e,
70+ };
71+
1972 /* 8061EC58 */ int ctrlJoint (J3DJoint*, J3DModel*);
2073 /* 8061ED10 */ static int JointCallBack (J3DJoint*, int );
2174 /* 8061ED5C */ void calcNeckAngle ();
@@ -80,14 +133,14 @@ class daB_TN_c : public fopEn_enemy_c {
80133 /* 8062D2F0 */ daB_TN_c() {};
81134
82135private:
83- /* 0x05AC */ request_of_phase_process_class mPhase1 ;
84- /* 0x05B4 */ request_of_phase_process_class mPhase2 ;
85- /* 0x05BC */ J3DModel* mModels [16 ];
136+ /* 0x05AC */ request_of_phase_process_class mPhaseReq1 ;
137+ /* 0x05B4 */ request_of_phase_process_class mPhaseReq2 ;
138+ /* 0x05BC */ J3DModel* mpModels [16 ];
86139 /* 0x05FC */ mDoExt_McaMorfSO * mpModelMorf1;
87140 /* 0x0600 */ mDoExt_McaMorfSO * mpModelMorf2;
88- /* 0x0604 */ mDoExt_brkAnm * mBrkAnms [16 ];
89- /* 0x0644 */ mDoExt_brkAnm * mBrkAnm ;
90- /* 0x0648 */ J3DModel* field_0x648 ;
141+ /* 0x0604 */ mDoExt_brkAnm * mpBrkAnms [16 ];
142+ /* 0x0644 */ mDoExt_brkAnm * mpBrkAnm ;
143+ /* 0x0648 */ J3DModel* mpModel ;
91144 /* 0x064C */ Z2CreatureEnemy mSound ;
92145 /* 0x06F0 */ int mActionMode1 ;
93146 /* 0x06F4 */ int mActionMode2 ;
@@ -98,85 +151,78 @@ class daB_TN_c : public fopEn_enemy_c {
98151 /* 0x0710 */ cXyz mCamCenter ;
99152 /* 0x071C */ f32 mCamFovY ;
100153 /* 0x0720 */ s16 field_0x720;
101- /* 0x0722 */ u8 field_0x722[0x724 - 0x722 ];
102154 /* 0x0724 */ f32 field_0x724;
103- /* 0x0728 */ f32 field_0x728 ;
104- /* 0x072C */ Mtx field_0x72c ;
105- /* 0x075C */ cXyz field_0x75c [16 ];
106- /* 0x081C */ cXyz field_0x81c [16 ];
155+ /* 0x0728 */ f32 mMaterialColor ;
156+ /* 0x072C */ Mtx mNewTRMtx ;
157+ /* 0x075C */ cXyz mPositions [16 ];
158+ /* 0x081C */ cXyz mPositionsCopy [16 ];
107159 /* 0x08DC */ cXyz field_0x8dc[16 ];
108160 /* 0x099C */ csXyz field_0x99c[16 ];
109- /* 0x09FC */ u16 field_0x9fc [16 ];
161+ /* 0x09FC */ u16 mStates [16 ];
110162 /* 0x0A1C */ u16 field_0xa1c[16 ];
111163 /* 0x0A3C */ s16 field_0xa3c[16 ];
112164 /* 0x0A5C */ s16 field_0xa5c;
113- /* 0x0A5E */ u8 field_0xa5e[0xa60 - 0xa5e ];
114- /* 0x0A60 */ int field_0xa60;
165+ /* 0x0A60 */ int mTimer9 ;
115166 /* 0x0A64 */ s16 field_0xa64;
116- /* 0x0A66 */ u8 field_0xa66[0xa68 - 0xa66 ];
117- /* 0x0A68 */ s16 field_0xa68;
118- /* 0x0A6A */ u8 field_0xa6a[0xa6c - 0xa6a ];
119- /* 0x0A6C */ int field_0xa6c;
120- /* 0x0A70 */ int field_0xa70;
121- /* 0x0A74 */ int field_0xa74;
122- /* 0x0A78 */ int field_0xa78;
123- /* 0x0A7C */ int field_0xa7c;
124- /* 0x0A80 */ int field_0xa80;
125- /* 0x0A84 */ int field_0xa84;
126- /* 0x0A88 */ int field_0xa88;
167+ /* 0x0A66 */ s16 field_0xa66;
168+ /* 0x0A68 */ s16 mInvincibilityTimer ;
169+ /* 0x0A6C */ int mTimer1 ;
170+ /* 0x0A70 */ int mTimer3 ;
171+ /* 0x0A74 */ int mTimer6 ;
172+ /* 0x0A78 */ int mNextBreakPart ;
173+ /* 0x0A7C */ int mTimer4 ;
174+ /* 0x0A80 */ int mTimer5 ;
175+ /* 0x0A84 */ int mTimer7 ;
176+ /* 0x0A88 */ int mVibrationTimer ;
127177 /* 0x0A8C */ int mWalkDir ;
128- /* 0x0A90 */ u8 field_0xa90;
129- /* 0x0A91 */ u8 field_0xa91;
130- /* 0x0A92 */ u8 field_0xa92;
131- /* 0x0A93 */ u8 field_0xa93;
132- /* 0x0A94 */ u8 field_0xa94;
133- /* 0x0A95 */ u8 field_0xa95;
134- /* 0x0A96 */ s16 field_0xa96;
135- /* 0x0A98 */ s16 field_0xa98;
136- /* 0x0A9A */ u8 field_0xa9a;
137- /* 0x0A9B */ u8 field_0xa9b;
178+ /* 0x0A90 */ u8 mUpdateModelTimer ;
179+ /* 0x0A91 */ bool field_0xa91;
180+ /* 0x0A92 */ u8 mNextActionMode2 ;
181+ /* 0x0A93 */ bool mUpdateNeckAngle ;
182+ /* 0x0A94 */ bool mUpdateWaistAngle ;
183+ /* 0x0A96 */ s16 mNeckAngle ;
184+ /* 0x0A98 */ s16 mWaistAngle ;
185+ /* 0x0A9A */ bool field_0xa9a;
186+ /* 0x0A9B */ u8 mActionMode2Copy ;
138187 /* 0x0A9C */ u8 field_0xa9c;
139188 /* 0x0A9D */ u8 field_0xa9d;
140- /* 0x0A9E */ u8 field_0xa9e ;
141- /* 0x0A9F */ u8 field_0xa9f ;
142- /* 0x0AA0 */ u8 field_0xaa0 ;
143- /* 0x0AA1 */ u8 field_0xaa1 ;
189+ /* 0x0A9E */ bool mDisappear ;
190+ /* 0x0A9F */ bool mCutFlag ;
191+ /* 0x0AA0 */ bool mSphCSmallFlag ;
192+ /* 0x0AA1 */ bool mChkCoHitOK ;
144193 /* 0x0AA2 */ u8 field_0xaa2;
145- /* 0x0AA3 */ u8 field_0xaa3;
146- /* 0x0AA4 */ u8 field_0xaa4;
147- /* 0x0AA5 */ u8 field_0xaa5;
148- /* 0x0AA6 */ u8 field_0xaa6;
149- /* 0x0AA7 */ u8 field_0xaa7;
150- /* 0x0AA8 */ u8 field_0xaa8;
151- /* 0x0AA9 */ u8 field_0xaa9;
152- /* 0x0AAA */ u8 field_0xaaa;
153- /* 0x0AAB */ u8 field_0xaab;
154- /* 0x0AAC */ u8 field_0xaac;
155- /* 0x0AAD */ u8 field_0xaad;
156- /* 0x0AAE */ u8 field_0xaae;
157- /* 0x0AAF */ u8 field_0xaaf;
194+ /* 0x0AA3 */ u8 mBrkAnmFrame ;
195+ /* 0x0AA4 */ u8 mSwitchNo ;
196+ /* 0x0AA5 */ u8 mType ;
197+ /* 0x0AA6 */ u8 mType2 ;
198+ /* 0x0AA7 */ u8 mTimer10 ;
199+ /* 0x0AA8 */ bool field_0xaa8;
200+ /* 0x0AA9 */ u8 mTimer12 ;
201+ /* 0x0AAA */ u8 mTimer13 ;
202+ /* 0x0AAB */ u8 mCutJumpStatus ;
203+ /* 0x0AAC */ bool mInactive ;
204+ /* 0x0AAD */ bool mStayNo2Flag ;
205+ /* 0x0AAE */ u8 mBlendStatus ;
158206 /* 0x0AB0 */ f32 mBlend ;
159- /* 0x0AB4 */ char * field_0xab4 ;
207+ /* 0x0AB4 */ char * mArcName ;
160208 /* 0x0AB8 */ dBgS_AcchCir mAcchCir ;
161209 /* 0x0AF8 */ dBgS_ObjAcch mAcch ;
162- /* 0x0CD0 */ u8 field_0xcd0[0x10d0 - 0xcd0 ];
163- /* 0x10D0 */ dBgS_Acch field_0x10d0[16 ];
164- /* 0x2E50 */ cXyz field_0x2e50;
165- /* 0x2E5C */ u8 field_0x2e5c[0x2e6c - 0x2e5c ];
166- /* 0x2E6C */ dCcD_GStts mGStts ;
167- /* 0x2E8C */ dCcD_Stts field_0x2e8c;
168- /* 0x2EC8 */ dCcD_Sph field_0x2ec8[3 ];
169- /* 0x3270 */ dCcD_Sph field_0x3270[3 ];
170- /* 0x3618 */ dCcD_Sph field_0x3618;
210+ /* 0x0CD0 */ dBgS_AcchCir mAcchCirArr [16 ];
211+ /* 0x10D0 */ dBgS_ObjAcch mAcchArr [16 ];
212+ /* 0x2E50 */ dCcD_Stts mStts1 ;
213+ /* 0x2E8C */ dCcD_Stts mStts2 ;
214+ /* 0x2EC8 */ dCcD_Sph mSphA [3 ];
215+ /* 0x3270 */ dCcD_Sph mSphB [3 ];
216+ /* 0x3618 */ dCcD_Sph mSphC ;
171217 /* 0x3750 */ dCcD_Sph mSwordSphs [4 ];
172218 /* 0x3C30 */ dCcD_Cps mCps ;
173- /* 0x3D74 */ dCcD_Sph field_0x3d74 ;
174- /* 0x3EAC */ cXyz field_0x3eac ;
219+ /* 0x3D74 */ dCcD_Sph mSphD ;
220+ /* 0x3EAC */ cXyz mCpsPos ;
175221 /* 0x3EB8 */ dCcU_AtInfo mAtInfo ;
176- /* 0x3EDC */ dCcD_Stts field_0x3edc [16 ];
177- /* 0x429C */ dCcD_Sph field_0x429c [16 ];
178- /* 0x561C */ u32 field_0x561c [4 ];
179- /* 0x562C */ u8 field_0x562c ;
222+ /* 0x3EDC */ dCcD_Stts mSttsArr [16 ];
223+ /* 0x429C */ dCcD_Sph mSphArr [16 ];
224+ /* 0x561C */ u32 mParticleKeys [4 ];
225+ /* 0x562C */ u8 mHioInit ;
180226};
181227
182228STATIC_ASSERT (sizeof (daB_TN_c) == 0x5630);
@@ -186,19 +232,19 @@ class daB_TN_HIO_c {
186232 /* 8061EBEC */ daB_TN_HIO_c();
187233 /* 8062D98C */ virtual ~daB_TN_HIO_c () {};
188234
189- /* 0x04 */ s8 field_0x4 ;
235+ /* 0x04 */ s8 mUnk1 ;
190236 /* 0x08 */ f32 mScale ;
191- /* 0x0C */ f32 field_0xc ;
192- /* 0x10 */ f32 field_0x10 ;
193- /* 0x14 */ f32 field_0x14 ;
194- /* 0x18 */ f32 field_0x18 ;
195- /* 0x1C */ f32 field_0x1c ;
196- /* 0x20 */ f32 field_0x20 ;
237+ /* 0x0C */ f32 mKColorA ;
238+ /* 0x10 */ f32 mTimer3Wolf ;
239+ /* 0x14 */ f32 mTimer3HumanType0 ;
240+ /* 0x18 */ f32 mTimer3HumanType1 ;
241+ /* 0x1C */ f32 mTimer3NormalType0 ;
242+ /* 0x20 */ f32 mTimer3NormalType1 ;
197243 /* 0x24 */ f32 field_0x24;
198- /* 0x28 */ f32 field_0x28;
199- /* 0x2C */ f32 field_0x2c;
200-
201-
244+ /* 0x28 */ f32 mTimer1Action1 ;
245+ /* 0x2C */ f32 mTimer1Action2 ;
202246};
203247
248+ STATIC_ASSERT (sizeof (daB_TN_HIO_c) == 0x30);
249+
204250#endif /* D_A_B_TN_H */
0 commit comments