Skip to content

Commit a7d2807

Browse files
d_a_b_tn Equivalent (func order) (#2428)
* d_a_b_tn fmt * d_a_b_tn first pass * d_a_b_tn second pass * d_a_b_tn minor cleanup * d_a_b_tn equivalent * d_a_b_tn cleanup --------- Co-authored-by: YunataSavior <yunatasavior@gmail.com>
1 parent a9c9781 commit a7d2807

File tree

3 files changed

+3415
-3434
lines changed

3 files changed

+3415
-3434
lines changed

configure.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1615,7 +1615,7 @@ def MatchingFor(*versions) -> bool:
16151615
ActorRel(NonMatching, "d_a_b_ob"),
16161616
ActorRel(NonMatching, "d_a_b_oh"),
16171617
ActorRel(MatchingFor("GZ2E01"), "d_a_b_oh2"),
1618-
ActorRel(NonMatching, "d_a_b_tn"),
1618+
ActorRel(Equivalent, "d_a_b_tn"), # weak func order
16191619
ActorRel(Equivalent, "d_a_b_yo"), # weak func order
16201620
ActorRel(Equivalent, "d_a_b_yo_ice"), # weak func order
16211621
ActorRel(MatchingFor("GZ2E01"), "d_a_b_zant"),

include/d/actor/d_a_b_tn.h

Lines changed: 126 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
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
/**
@@ -14,8 +14,61 @@
1414
* @details Temple of Time dungeon mini-boss.
1515
*
1616
*/
17+
1718
class daB_TN_c : public fopEn_enemy_c {
1819
public:
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

82135
private:
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

182228
STATIC_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

Comments
 (0)