blob: 0a2162ab36da82ec7ecf9fb93781bf863afedfd5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
|
#ifndef C_DAMAGEREACTION_H
#define C_DAMAGEREACTION_H
#include "f_op/f_op_actor.h"
#include "d/d_cc_d.h"
#include "d/d_bg_s_acch.h"
#include "d/d_particle.h"
class mDoExt_McaMorf;
class JPABaseEmitter;
struct enemyice {
public:
/* 0x000 */ fopAc_ac_c* mpActor;
/* 0x004 */ s16 mFreezeDuration;
/* 0x006 */ s8 mLightShrinkTimer;
/* 0x007 */ u8 m007[0x008 - 0x007];
/* 0x008 */ f32 mYOffset;
/* 0x00C */ s8 m00C;
/* 0x00D */ s8 mMode;
/* 0x00E */ s16 mFreezeTimer;
/* 0x010 */ s16 mMoveDelayTimer;
/* 0x012 */ s16 mAngleY;
/* 0x014 */ s16 mAngularVelY;
/* 0x016 */ u8 m016[0x018 - 0x016];
/* 0x018 */ cXyz mSpeed;
/* 0x024 */ f32 mSpeedF;
/* 0x028 */ f32 m028;
/* 0x02C */ f32 m02C;
/* 0x030 */ dCcD_Stts mStts;
/* 0x06C */ dCcD_Cyl mCyl;
/* 0x19C */ f32 mCylHeight;
/* 0x1A0 */ f32 mWallRadius;
/* 0x1A4 */ f32 mScaleXZ;
/* 0x1A8 */ f32 mScaleY;
/* 0x1AC */ f32 mParticleScale;
/* 0x1B0 */ u8 m1B0;
/* 0x1B1 */ u8 mDeathSwitch;
/* 0x1B2 */ u8 m1B2[0x1B4 - 0x1B2];
/* 0x1B4 */ dBgS_AcchCir mBgAcchCir;
/* 0x1F4 */ dBgS_ObjAcch mBgAcch;
};
STATIC_ASSERT(sizeof(enemyice) == 0x3B8);
struct enemyfire {
public:
/* 0x000 */ fopAc_ac_c* mpActor;
/* 0x004 */ s16 mFireDuration;
/* 0x006 */ s8 mMode;
/* 0x007 */ u8 m007[0x008 - 0x007];
/* 0x008 */ s16 mFireTimer;
/* 0x00A */ u8 m00A[0x00C - 0x00A];
/* 0x00C */ mDoExt_McaMorf* mpMcaMorf;
/* 0x010 */ s8 mFlameJntIdxs[10];
/* 0x01A */ u8 m01A[0x01C - 0x01A];
/* 0x01C */ f32 mParticleScale[10];
/* 0x044 */ s16 mFlameTimers[10];
/* 0x058 */ JPABaseEmitter* mpFlameEmitters[10];
/* 0x080 */ cXyz mPrevPos;
/* 0x08C */ JGeometry::TVec3<f32> mDirection;
/* 0x098 */ f32 mFlameScaleY;
/* 0x09C */ u8 m09C[0x09D - 0x09C];
/* 0x09D */ u8 mHitboxFlameIdx;
/* 0x09E */ u8 m09E[0x0A0 - 0x09E];
/* 0x0A0 */ dCcD_Stts mStts;
/* 0x0DC */ dCcD_Sph mSph;
/* 0x208 */ LIGHT_INFLUENCE mLight;
};
STATIC_ASSERT(sizeof(enemyfire) == 0x228);
struct damagereaction {
public:
enum EnemyType {
TYPE_MOBLIN = 1,
TYPE_BOKOBLIN = 2,
TYPE_DARKNUT = 3,
};
/* 0x000 */ fopEn_enemy_c* mpEnemy;
/* 0x004 */ s16 mMode;
/* 0x006 */ s16 mAction;
/* 0x008 */ s16 mEnemyType;
/* 0x00A */ u8 m00A[0x00C - 0x00A];
/* 0x00C */ int mTimer;
/* 0x010 */ csXyz m010[20];
/* 0x088 */ csXyz m088[20];
/* 0x100 */ cXyz m100[20];
/* 0x1F0 */ cXyz m1F0[20];
/* 0x2E0 */ cXyz m2E0[20];
/* 0x3D0 */ int m3D0[14];
/* 0x408 */ int m408;
/* 0x40C */ int m40C;
/* 0x410 */ int m410;
/* 0x414 */ int m414;
/* 0x418 */ int m418;
/* 0x41C */ u8 m41C[0x420 - 0x41C];
/* 0x420 */ int m420;
/* 0x424 */ int m424;
/* 0x428 */ f32 m428;
/* 0x42C */ cXyz m42C;
/* 0x438 */ int m438;
/* 0x43C */ u8 m43C[0x440 - 0x43C];
/* 0x440 */ s16 m440;
/* 0x442 */ s16 m442;
/* 0x444 */ s16 m444;
/* 0x446 */ s16 m446;
/* 0x448 */ s16 m448;
/* 0x44A */ u8 m44A[0x44C - 0x44A];
/* 0x44C */ cXyz m44C;
/* 0x458 */ cXyz m458;
/* 0x464 */ u8 m464[0x468 - 0x464];
/* 0x468 */ f32 m468;
/* 0x46C */ f32 m46C;
/* 0x470 */ f32 m470;
/* 0x474 */ f32 m474;
/* 0x478 */ f32 m478;
/* 0x47C */ int m47C;
/* 0x480 */ s16 m480;
/* 0x482 */ s16 m482;
/* 0x484 */ s16 m484;
/* 0x486 */ s16 m486;
/* 0x488 */ s16 m488;
/* 0x48A */ s16 m48A;
/* 0x48C */ csXyz m48C;
/* 0x492 */ s16 m492;
/* 0x492 */ s16 m494;
/* 0x496 */ s16 m496;
/* 0x498 */ s16 m498;
/* 0x49A */ s16 m49A;
/* 0x49C */ s16 m49C;
/* 0x49E */ s16 m49E;
/* 0x4A0 */ s16 m4A0;
/* 0x4A2 */ s16 m4A2;
/* 0x4A4 */ s16 m4A4;
/* 0x4A6 */ s16 m4A6;
/* 0x4A8 */ s16 m4A8;
/* 0x4AA */ s16 m4AA;
/* 0x4AC */ s16 m4AC;
/* 0x4AE */ s16 m4AE;
/* 0x4B0 */ s16 m4B0;
/* 0x4B2 */ s16 m4B2;
/* 0x4B4 */ s16 m4B4;
/* 0x4B6 */ s16 m4B6;
/* 0x4B8 */ s16 m4B8;
/* 0x4BA */ s16 m4BA;
/* 0x4BC */ s16 m4BC;
/* 0x4BE */ s16 m4BE;
/* 0x4C0 */ s16 m4C0;
/* 0x4C2 */ u8 m4C2[0x4C8 - 0x4C2];
/* 0x4C8 */ s16 m4C8[3];
/* 0x4CE */ s16 mInvincibleTimer;
/* 0x4D0 */ s16 m4D0;
/* 0x4D2 */ u8 m4D2[0x4D4 - 0x4D2];
/* 0x4D4 */ f32 m4D4;
/* 0x4D8 */ u8 m4D8[0x4DC - 0x4D8];
/* 0x4DC */ dBgS_AcchCir mAcchCir;
/* 0x51C */ dBgS_ObjAcch mAcch;
/* 0x6E0 */ int m6E0;
/* 0x6E4 */ f32 mSpawnY;
/* 0x6E8 */ cXyz m6E8;
/* 0x6F4 */ cXyz m6F4[2];
/* 0x70C */ u8 m70C;
/* 0x70D */ u8 m70D;
/* 0x70E */ u8 m70E;
/* 0x70F */ u8 m70F[0x710 - 0x70F];
/* 0x710 */ u8 m710;
/* 0x711 */ u8 m711;
/* 0x712 */ u8 m712;
/* 0x713 */ u8 m713;
/* 0x714 */ fopAc_ac_c* m714;
/* 0x718 */ s16 m718;
/* 0x71A */ s16 m71A;
/* 0x71C */ u8 m71C[0x71E - 0x71C];
/* 0x71E */ s16 m71E;
/* 0x720 */ f32 mMaxFallDistance;
/* 0x724 */ dCcD_Stts mStts;
/* 0x760 */ cXyz mParticlePos;
/* 0x76C */ csXyz mParticleAngle;
/* 0x772 */ u8 m772[0x774 - 0x772];
/* 0x774 */ dPa_smokeEcallBack mParticleCallBack;
/* 0x794 */ s16 m794;
/* 0x796 */ u8 m796[0x798 - 0x796];
/* 0x798 */ f32 m798;
/* 0x79C */ cXyz* m79C;
/* 0x7A0 */ cXyz m7A0;
/* 0x7AC */ csXyz m7AC;
/* 0x7B2 */ s16 m7B2;
/* 0x7B4 */ s16 m7B4;
/* 0x7B6 */ u8 m7B6;
/* 0x7B7 */ u8 m7B7[0x7B8 - 0x7B7];
/* 0x7B8 */ fpc_ProcID m7B8;
}; // Size: 0x7BC
STATIC_ASSERT(sizeof(damagereaction) == 0x7BC);
BOOL ice_bg_check(enemyice*);
BOOL enemy_ice(enemyice*);
void enemy_fire(enemyfire*);
void enemy_fire_remove(enemyfire*);
void enemy_piyo_set(fopAc_ac_c*);
s16 wall_angle_get(fopAc_ac_c*, s16);
void dr_body_bg_check(damagereaction*);
int dr_joint_bg_check(damagereaction*);
int kado_check(damagereaction*);
s16 hang_ang_get(damagereaction*);
int dr_damage_set(damagereaction*);
void dr_damage_anime(damagereaction*);
void dr_matrix_set(damagereaction*);
int damage_reaction(damagereaction*);
#endif /* C_DAMAGEREACTION_H */
|