Skip to content

Commit 52fd6e2

Browse files
committed
e_fm equivalent
1 parent f891887 commit 52fd6e2

File tree

5 files changed

+3844
-2447
lines changed

5 files changed

+3844
-2447
lines changed

configure.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1502,7 +1502,7 @@ def MatchingFor(*versions):
15021502
ActorRel(NonMatching, "d_a_demo_item"),
15031503
ActorRel(MatchingFor("GZ2E01"), "d_a_door_bossL1"),
15041504
ActorRel(NonMatching, "d_a_e_dn"),
1505-
ActorRel(NonMatching, "d_a_e_fm"),
1505+
ActorRel(Equivalent, "d_a_e_fm"),
15061506
ActorRel(NonMatching, "d_a_e_ga"),
15071507
ActorRel(NonMatching, "d_a_e_hb"),
15081508
ActorRel(MatchingFor("GZ2E01"), "d_a_e_nest"),

include/d/actor/d_a_e_fm.h

Lines changed: 211 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,39 @@
22
#define D_A_E_FM_H
33

44
#include "f_op/f_op_actor_mng.h"
5+
#include "d/d_cc_d.h"
6+
#include "d/d_cc_uty.h"
7+
#include "d/d_bg_s_acch.h"
58
#include "Z2AudioLib/Z2Creature.h"
69

10+
struct chain_s {
11+
/* 0x0000 */ J3DModel* model[26];
12+
/* 0x0068 */ cXyz field_0x68;
13+
/* 0x0074 */ cXyz pos[26];
14+
/* 0x01AC */ cXyz field_0x1ac[26];
15+
/* 0x02E4 */ cXyz field_0x2e4[26];
16+
/* 0x041C */ csXyz rot[26];
17+
/* 0x04B8 */ dKy_tevstr_c tevstr[26];
18+
/* 0x6088 */ cXyz sound_pos;
19+
/* 0x6094 */ cXyz field_0x6094;
20+
/* 0x60A0 */ u8 field_0x60A0[0x6170 - 0x60A0];
21+
/* 0x6170 */ int field_0x6170;
22+
/* 0x6174 */ f32 field_0x6174;
23+
/* 0x6178 */ f32 field_0x6178;
24+
/* 0x617C */ s8 field_0x617c;
25+
/* 0x617D */ s8 field_0x617d;
26+
/* 0x617E */ s8 field_0x617e;
27+
/* 0x6180 */ cXyz field_0x6180;
28+
/* 0x618C */ cXyz field_0x618c;
29+
/* 0x6198 */ f32 field_0x6198;
30+
/* 0x619C */ s8 field_0x619c;
31+
/* 0x619E */ s16 field_0x619e;
32+
/* 0x61A0 */ f32 field_0x61a0;
33+
/* 0x61A4 */ f32 field_0x61a4;
34+
/* 0x61A8 */ u8 field_0x61A8[0x61D0 - 0x61A8];
35+
/* 0x61D0 */ int field_0x61d0;
36+
};
37+
738
/**
839
* @ingroup actors-enemies
940
* @class e_fm_class
@@ -15,23 +46,192 @@
1546
class e_fm_class : public fopEn_enemy_c {
1647
public:
1748
/* 804F9B64 */ e_fm_class();
18-
/* 0x005AC */ u8 field_0x5ac[0x63c - 0x5ac];
19-
/* 0x0063C */ Z2CreatureFM field_0x63c;
20-
/* 0x00760 */ u8 field_0x760[0x1828 - 0x760];
21-
/* 0x01828 */ u8 field_0x1828;
22-
/* 0x01829 */ u8 field_0x1829[0x1b084 - 0x1829];
49+
50+
BOOL checkCameraFree() { return field_0x1b07c; }
51+
52+
/* 0x005AC */ request_of_phase_process_class mPhase;
53+
/* 0x005B4 */ u8 arg0;
54+
/* 0x005B5 */ u8 arg1;
55+
/* 0x005B6 */ u8 arg3;
56+
/* 0x005B7 */ u8 field_0x5B7[0x005C4 - 0x005B7];
57+
/* 0x005C4 */ s16 field_0x5c4;
58+
/* 0x005C6 */ s16 mAngleToPlayer;
59+
/* 0x005C8 */ int field_0x5c8;
60+
/* 0x005CC */ f32 mKankyoBlend;
61+
/* 0x005D0 */ mDoExt_McaMorf* mpFmModelMorf;
62+
/* 0x005D4 */ mDoExt_btkAnm* mpFmBtk[9];
63+
/* 0x005F8 */ mDoExt_brkAnm* mpFmBrk[9];
64+
/* 0x0061C */ int mPlayTexAnmNo;
65+
/* 0x00620 */ int mAnm;
66+
/* 0x00624 */ s8 mDrawDemoModel;
67+
/* 0x00628 */ mDoExt_McaMorf* mpDemoFmModelMorf;
68+
/* 0x0062C */ u8 field_0x62C[0x00630 - 0x0062C];
69+
/* 0x00630 */ mDoExt_brkAnm* mpDemoFmBrk;
70+
/* 0x00634 */ f32 mDemoModelSize;
71+
/* 0x00638 */ f32 mDemoModelSizeStep;
72+
/* 0x0063C */ Z2CreatureFM mSound;
73+
/* 0x00760 */ J3DModel* mpCoreModel;
74+
/* 0x00764 */ mDoExt_btkAnm* mpCoreBtk;
75+
/* 0x00768 */ mDoExt_brkAnm* mpCoreBrk;
76+
/* 0x0076C */ f32 mCoreBrkFrame;
77+
/* 0x00770 */ s16 field_0x770;
78+
/* 0x00772 */ s8 mDoCreateBa;
79+
/* 0x00773 */ u8 field_0x773;
80+
/* 0x00774 */ f32 mChainColorR;
81+
/* 0x00778 */ f32 field_0x778;
82+
/* 0x0077C */ mDoExt_McaMorf* mpAttackEfModelMorf[2];
83+
/* 0x00784 */ mDoExt_btkAnm* mpAttackEfBtk[2];
84+
/* 0x0078C */ mDoExt_brkAnm* mpAttackEfBrk;
85+
/* 0x00790 */ s16 field_0x790;
86+
/* 0x00792 */ s8 field_0x792;
87+
/* 0x00794 */ f32 field_0x794;
88+
/* 0x00798 */ f32 field_0x798;
89+
/* 0x0079C */ f32 field_0x79c;
90+
/* 0x007A0 */ s16 mCounter;
91+
/* 0x007A2 */ s16 mAction;
92+
/* 0x007A4 */ s16 mMode;
93+
/* 0x007A8 */ u32 mShadowKey;
94+
/* 0x007AC */ s16 mTimers[4];
95+
/* 0x007B4 */ s16 mDamageInvulnerabilityTimer;
96+
/* 0x007B6 */ s8 field_0x7b6;
97+
/* 0x007B8 */ f32 field_0x7b8;
98+
/* 0x007BC */ u8 field_0x7BC[0x007C0 - 0x007BC];
99+
/* 0x007C0 */ s8 field_0x7c0;
100+
/* 0x007C2 */ s16 mBodyRotX;
101+
/* 0x007C4 */ s16 mHeadRotZ;
102+
/* 0x007C8 */ cXyz mFootPos[2];
103+
/* 0x007E0 */ int field_0x7e0;
104+
/* 0x007E4 */ cXyz field_0x7e4[2];
105+
/* 0x007FC */ f32 field_0x7fc;
106+
/* 0x00800 */ s16 field_0x800;
107+
/* 0x00802 */ s8 mDownCnt;
108+
/* 0x00804 */ s16 field_0x804;
109+
/* 0x00806 */ s16 field_0x806;
110+
/* 0x00808 */ s8 field_0x808;
111+
/* 0x00809 */ s8 field_0x809;
112+
/* 0x0080C */ dBgS_AcchCir mAcchCir;
113+
/* 0x0084C */ dBgS_ObjAcch mAcch;
114+
/* 0x00A24 */ dCcD_Stts field_0xa24;
115+
/* 0x00A60 */ dCcD_Stts field_0xa60;
116+
/* 0x00A9C */ dCcD_Sph mCcSph[8];
117+
/* 0x0145C */ dCcD_Sph mAtSph;
118+
/* 0x01594 */ dCcD_Sph mCoreSph;
119+
/* 0x016CC */ dCcD_Sph mEffAtSph;
120+
/* 0x01804 */ dCcU_AtInfo mAtInfo;
121+
/* 0x01828 */ s8 field_0x1828;
122+
/* 0x01829 */ s8 field_0x1829;
123+
/* 0x0182A */ s8 field_0x182a;
124+
/* 0x0182B */ s8 field_0x182b;
125+
/* 0x0182C */ s8 field_0x182c;
126+
/* 0x0182D */ s8 mHideCore;
127+
/* 0x01830 */ f32 field_0x1830;
128+
/* 0x01834 */ f32 field_0x1834;
129+
/* 0x01838 */ u32 field_0x1838[14];
130+
/* 0x01870 */ u32 field_0x1870;
131+
/* 0x01874 */ u32 field_0x1874;
132+
/* 0x01878 */ u32 field_0x1878;
133+
/* 0x0187C */ u32 field_0x187c[2];
134+
/* 0x01884 */ u32 field_0x1884;
135+
/* 0x01888 */ u32 field_0x1888[4];
136+
/* 0x01898 */ fopAc_ac_c* mHashiraActors[10];
137+
/* 0x018C0 */ u8 field_0x18c0[0x018D0 - 0x018C0];
138+
/* 0x018D0 */ cXyz field_0x18d0[8];
139+
/* 0x01930 */ u8 field_0x1930[0x1990 - 0x01930];
140+
/* 0x01990 */ dCcD_Sph mFEffAtSph[8];
141+
/* 0x02350 */ u32 field_0x2350;
142+
/* 0x02354 */ u32 field_0x2354[8];
143+
/* 0x02374 */ u32 field_0x2374[6];
144+
/* 0x0238C */ u32 field_0x238c[3];
145+
/* 0x02398 */ s8 field_0x2398;
146+
/* 0x02399 */ s8 field_0x2399;
147+
/* 0x0239C */ LIGHT_INFLUENCE mPlight;
148+
/* 0x023BC */ chain_s mChain[4];
149+
/* 0x1AB0C */ s8 field_0x1ab0c[4];
150+
/* 0x1AB10 */ dCcD_Sph mChainAtSph[4];
151+
/* 0x1AFF0 */ u8 field_0x1aff0;
152+
/* 0x1AFF2 */ s16 mDemoCamMode;
153+
/* 0x1AFF4 */ s16 mDemoCamTimer;
154+
/* 0x1AFF6 */ s16 field_0x1aff6;
155+
/* 0x1AFF8 */ cXyz mDemoCamEye;
156+
/* 0x1B004 */ cXyz mDemoCamCenter;
157+
/* 0x1B010 */ cXyz mDemoCamEyeTarget;
158+
/* 0x1B01C */ cXyz mDemoCamCenterTarget;
159+
/* 0x1B028 */ cXyz mDemoCamEyeSpd;
160+
/* 0x1B034 */ cXyz mDemoCamCenterSpd;
161+
/* 0x1B040 */ cXyz field_0x1b040;
162+
/* 0x1B04C */ f32 mDemoCamFovy;
163+
/* 0x1B050 */ f32 field_0x1b050;
164+
/* 0x1B054 */ f32 field_0x1b054;
165+
/* 0x1B058 */ u8 field_0x1B058[0x1B05C - 0x1B058];
166+
/* 0x1B05C */ f32 field_0x1b05c;
167+
/* 0x1B060 */ u8 field_0x1B060[0x1B064 - 0x1B060];
168+
/* 0x1B064 */ f32 field_0x1b064;
169+
/* 0x1B068 */ f32 field_0x1b068;
170+
/* 0x1B06C */ f32 field_0x1b06c;
171+
/* 0x1B070 */ f32 field_0x1b070;
172+
/* 0x1B074 */ f32 field_0x1b074;
173+
/* 0x1B078 */ s8 field_0x1b078;
174+
/* 0x1B07C */ int field_0x1b07c;
175+
/* 0x1B080 */ s8 field_0x1b080;
176+
/* 0x1B081 */ u8 mInitHIO;
23177
};
24178

25179
STATIC_ASSERT(sizeof(e_fm_class) == 0x1b084);
26180

27-
class daE_FM_HIO_c {
181+
class daE_FM_HIO_c : public JORReflexible {
182+
public:
28183
/* 804EF0EC */ daE_FM_HIO_c();
29-
/* 804FA3D8 */ ~daE_FM_HIO_c();
30-
};
31184

32-
struct chain_s {
33-
/* 804F9E14 */ ~chain_s();
34-
/* 804F9F14 */ chain_s();
185+
void genMessage(JORMContext*);
186+
/* 804FA3D8 */ virtual ~daE_FM_HIO_c() {}
187+
188+
/* 0x04 */ s8 no;
189+
/* 0x08 */ f32 base_size;
190+
/* 0x0C */ f32 field_0xc;
191+
/* 0x10 */ f32 field_0x10;
192+
/* 0x14 */ f32 field_0x14;
193+
/* 0x18 */ f32 field_0x18;
194+
/* 0x1C */ f32 field_0x1c;
195+
/* 0x20 */ f32 field_0x20;
196+
/* 0x24 */ f32 field_0x24;
197+
/* 0x28 */ f32 field_0x28;
198+
/* 0x2C */ f32 field_0x2c;
199+
/* 0x30 */ f32 field_0x30;
200+
/* 0x34 */ s16 field_0x34;
201+
/* 0x36 */ s16 field_0x36;
202+
/* 0x38 */ s16 field_0x38;
203+
/* 0x3C */ f32 field_0x3c;
204+
/* 0x40 */ f32 field_0x40;
205+
/* 0x44 */ f32 field_0x44;
206+
/* 0x48 */ f32 chain_size;
207+
/* 0x4C */ f32 field_0x4c;
208+
/* 0x50 */ f32 field_0x50;
209+
/* 0x54 */ f32 field_0x54;
210+
/* 0x58 */ f32 field_0x58;
211+
/* 0x5C */ f32 field_0x5c;
212+
/* 0x60 */ u8 field_0x60;
213+
/* 0x61 */ u8 field_0x61;
214+
/* 0x64 */ f32 field_0x64;
215+
/* 0x68 */ f32 field_0x68;
216+
/* 0x6C */ f32 field_0x6c;
217+
/* 0x70 */ f32 field_0x70;
218+
/* 0x74 */ f32 field_0x74;
219+
/* 0x78 */ f32 field_0x78;
220+
/* 0x7C */ f32 field_0x7c;
221+
/* 0x80 */ f32 field_0x80;
222+
/* 0x84 */ f32 field_0x84;
223+
/* 0x88 */ f32 field_0x88;
224+
/* 0x8C */ f32 field_0x8c;
225+
/* 0x90 */ f32 field_0x90;
226+
/* 0x94 */ s16 field_0x94;
227+
/* 0x96 */ s16 field_0x96;
228+
/* 0x98 */ s16 field_0x98;
229+
/* 0x9A */ s16 field_0x9a;
230+
/* 0x9C */ s16 field_0x9c;
231+
/* 0xA0 */ f32 field_0xa0;
232+
/* 0xA4 */ f32 field_0xa4;
233+
/* 0xA8 */ f32 field_0xa8;
234+
/* 0xAC */ u8 field_0xac;
35235
};
36236

37237

include/d/actor/d_a_obj_hhashi.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ class daObjHHASHI_c : public dBgS_MoveBgActor {
3434
/* 805812BC */ int Draw();
3535
/* 8058140C */ int Delete();
3636

37-
private:
3837
/* 0x05A0 */ int field_0x5a0;
3938
/* 0x05A4 */ int field_0x5a4;
4039
/* 0x05A8 */ s8 field_0x5a8;

0 commit comments

Comments
 (0)