|
2 | 2 | #define D_A_E_FM_H |
3 | 3 |
|
4 | 4 | #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" |
5 | 8 | #include "Z2AudioLib/Z2Creature.h" |
6 | 9 |
|
| 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 | + |
7 | 38 | /** |
8 | 39 | * @ingroup actors-enemies |
9 | 40 | * @class e_fm_class |
|
15 | 46 | class e_fm_class : public fopEn_enemy_c { |
16 | 47 | public: |
17 | 48 | /* 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; |
23 | 177 | }; |
24 | 178 |
|
25 | 179 | STATIC_ASSERT(sizeof(e_fm_class) == 0x1b084); |
26 | 180 |
|
27 | | -class daE_FM_HIO_c { |
| 181 | +class daE_FM_HIO_c : public JORReflexible { |
| 182 | +public: |
28 | 183 | /* 804EF0EC */ daE_FM_HIO_c(); |
29 | | - /* 804FA3D8 */ ~daE_FM_HIO_c(); |
30 | | -}; |
31 | 184 |
|
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; |
35 | 235 | }; |
36 | 236 |
|
37 | 237 |
|
|
0 commit comments