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
|
#ifndef A_NPC_D_A_NPC_CD_H
#define A_NPC_D_A_NPC_CD_H
#include "Z2AudioLib/Z2Creature.h"
#include "d/actor/d_a_npc.h"
class daNpcCd_c : public fopAc_ac_c {
public:
int NpcCreate(int);
J3DModel* ObjCreate(int);
BOOL isM_();
J3DAnmTransform* getAnmP(int, int);
int setAttention(int);
int loadResrc(int, int);
int removeResrc(int, int);
void setEnvTevCol();
void setRoomNo();
void animation();
void setAnm(J3DAnmTransformKey*, f32, f32, int, int, int);
int drawObj(int, J3DModel*, f32);
int drawNpc();
int jntNodeCB(J3DJoint*, J3DModel*);
void setHitodamaParticle();
J3DModelData* getNpcMdlDataP(int);
J3DModelData* getObjMdlDataP(int);
virtual ~daNpcCd_c() {}
static dCcD_SrcCyl const m_cylDat;
/* 0x56C */ request_of_phase_process_class mPhase1;
/* 0x574 */ request_of_phase_process_class mPhase2;
/* 0x57C */ request_of_phase_process_class mPhase3;
/* 0x584 */ request_of_phase_process_class mPhase4;
/* 0x58C */ mDoExt_McaMorfSO* mpMorf;
/* 0x590 */ Z2CreatureCitizen mCreature;
/* 0x634 */ dBgS_ObjAcch mAcch;
/* 0x80C */ dBgS_AcchCir mAcchCir;
/* 0x84C */ dCcD_Stts mStts;
/* 0x888 */ dCcD_Cyl mCyl;
/* 0x9C4 */ int m_type;
/* 0x9C8 */ int field_0x9c8;
/* 0x9CC */ int mHitodamaEmitters[2];
/* 0x9D4 */ int field_0x9d4;
/* 0x9D8 */ cXyz field_0x9d8;
/* 0x9E4 */ s16 field_0x9e4;
/* 0x9E6 */ s16 field_0x9e6;
/* 0x9E8 */ u8 mIsDarkWorld;
};
STATIC_ASSERT(sizeof(daNpcCd_c) == 0x9EC);
struct daNpcCd_HIO_Jnt_c : public JORReflexible {
virtual ~daNpcCd_HIO_Jnt_c() {}
daNpcCd_HIO_Jnt_c() {}
#if DEBUG
void genMessage(JORMContext*);
#endif
/* 0x04 */ Vec jntT;
/* 0x10 */ SVec jntR;
};
struct daNpcCd_HIO_Child_c : public JORReflexible {
virtual ~daNpcCd_HIO_Child_c() {}
daNpcCd_HIO_Child_c() {}
#if DEBUG
void genMessage(JORMContext*);
#endif
/* 0x004 */ daNpcCd_HIO_Jnt_c field_0x4[12];
/* 0x124 */ s16 field_0x124[0x0C];
/* 0x13C */ f32 mObjScale;
/* 0x140 */ s16 mAtn;
/* 0x144 */ f32 mAnmPlaySpeed;
/* 0x148 */ f32 mWalkAnmPlaySpeed;
/* 0x14C */ f32 mMaxSpeed;
/* 0x150 */ f32 mWalkMaxSpeed;
/* 0x154 */ f32 mCylH;
/* 0x158 */ f32 mCylR;
/* 0x15C */ f32 mChkWallH;
/* 0x160 */ f32 mChkWallR;
};
STATIC_ASSERT(sizeof(daNpcCd_HIO_Child_c) == 0x164);
class daNpcCd_HIO_c : public fOpAcm_HIO_entry_c {
public:
daNpcCd_HIO_c();
virtual ~daNpcCd_HIO_c() {}
#if DEBUG
void genMessage(JORMContext*);
#endif
/* 0x0004 */ daNpcCd_HIO_Child_c field_0x0004[16];
/* 0x1648 */ daNpcCd_HIO_Child_c field_0x1648[14];
};
STATIC_ASSERT(sizeof(daNpcCd_HIO_c) == 0x29BC);
extern daNpcCd_HIO_c l_Cd_HIO;
inline f32 HIO_atnOfs(int param_1) {
s16 rv;
if (param_1 < 16) {
rv = l_Cd_HIO.field_0x0004[param_1].mAtn;
} else {
rv = l_Cd_HIO.field_0x1648[param_1 - 16].mAtn;
}
return rv;
}
inline s16 HIO_jntRX(int param_1, int param_2) {
s16 rv;
if (param_1 < 16) {
rv = l_Cd_HIO.field_0x0004[param_1].field_0x4[param_2].jntR.x;
} else {
rv = l_Cd_HIO.field_0x1648[param_1 - 16].field_0x4[param_2].jntR.x;
}
return DEG2S(rv);
}
inline s16 HIO_jntRY(int param_1, int param_2) {
s16 rv;
if (param_1 < 16) {
rv = l_Cd_HIO.field_0x0004[param_1].field_0x4[param_2].jntR.y;
} else {
rv = l_Cd_HIO.field_0x1648[param_1 - 16].field_0x4[param_2].jntR.y;
}
return DEG2S(rv);
}
inline s16 HIO_jntRZ(int param_1, int param_2) {
s16 rv;
if (param_1 < 16) {
rv = l_Cd_HIO.field_0x0004[param_1].field_0x4[param_2].jntR.z;
} else {
rv = l_Cd_HIO.field_0x1648[param_1 - 16].field_0x4[param_2].jntR.z;
}
return DEG2S(rv);
}
static inline f32 HIO_jntTX(int param_1, int param_2) {
f32 rv;
if (param_1 < 16) {
rv = l_Cd_HIO.field_0x0004[param_1].field_0x4[param_2].jntT.x;
} else {
rv = l_Cd_HIO.field_0x1648[param_1 - 16].field_0x4[param_2].jntT.x;
}
return 10.0f * rv;
}
static inline f32 HIO_jntTY(int param_1, int param_2) {
f32 rv;
if (param_1 < 16) {
rv = l_Cd_HIO.field_0x0004[param_1].field_0x4[param_2].jntT.y;
} else {
rv = l_Cd_HIO.field_0x1648[param_1 - 16].field_0x4[param_2].jntT.y;
}
return 10.0f * rv;
}
static inline f32 HIO_jntTZ(int param_1, int param_2) {
f32 rv;
if (param_1 < 16) {
rv = l_Cd_HIO.field_0x0004[param_1].field_0x4[param_2].jntT.z;
} else {
rv = l_Cd_HIO.field_0x1648[param_1 - 16].field_0x4[param_2].jntT.z;
}
return 10.0f * rv;
}
static inline f32 HIO_maxSpeed(int param_1) { return (f32)(param_1 < 16 ? l_Cd_HIO.field_0x0004[param_1].mMaxSpeed : l_Cd_HIO.field_0x0004[param_1].mMaxSpeed); }
static inline f32 HIO_anmPlaySpeed(int param_1) { return (f32)(param_1 < 16 ? l_Cd_HIO.field_0x0004[param_1].mAnmPlaySpeed : l_Cd_HIO.field_0x0004[param_1].mAnmPlaySpeed); }
static inline f32 HIO_walkMaxSpeed(int param_1) { return (f32)(param_1 < 16 ? l_Cd_HIO.field_0x0004[param_1].mWalkMaxSpeed : l_Cd_HIO.field_0x0004[param_1].mWalkMaxSpeed); }
static inline f32 HIO_walkAnmPlaySpeed(int param_1) { return (f32)(param_1 < 16 ? l_Cd_HIO.field_0x0004[param_1].mWalkAnmPlaySpeed : l_Cd_HIO.field_0x0004[param_1].mWalkAnmPlaySpeed); }
static inline f32 HIO_chkWallR(int param_1) { return (param_1 < 16 ? l_Cd_HIO.field_0x0004[param_1].mChkWallR : l_Cd_HIO.field_0x0004[param_1].mChkWallR); }
static inline f32 HIO_chkWallH(int param_1) { return (param_1 < 16 ? l_Cd_HIO.field_0x0004[param_1].mChkWallH : l_Cd_HIO.field_0x0004[param_1].mChkWallH); }
static inline f32 HIO_cylR(int param_1) { return (param_1 < 16 ? l_Cd_HIO.field_0x0004[param_1].mCylR : l_Cd_HIO.field_0x0004[param_1].mCylR); }
static inline f32 HIO_cylH(int param_1) { return (param_1 < 16 ? l_Cd_HIO.field_0x0004[param_1].mCylH : l_Cd_HIO.field_0x0004[param_1].mCylH); }
static inline f32 HIO_objScale(int param_1) { return (f32)(param_1 < 16 ? l_Cd_HIO.field_0x0004[param_1].mObjScale : l_Cd_HIO.field_0x0004[param_1].mObjScale); }
#endif /* A_NPC_D_A_NPC_CD_H */
|