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
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
|
#ifndef D_A_NPC_PEOPLE_H
#define D_A_NPC_PEOPLE_H
#include "f_op/f_op_actor.h"
#include "d/d_cc_d.h"
#include "m_Do/m_Do_ext.h"
#include "SSystem/SComponent/c_phase.h"
#include "d/d_npc.h"
struct sUbMsgDat {
/* 0x00 */ u32 field_0x00;
/* 0x04 */ u8 field_0x04;
/* 0x05 */ u8 field_0x05;
/* 0x06 */ u8 field_0x06;
/* 0x06 */ u8 field_0x07;
}; // Size: 0x07
struct sPeopleAnmDat {
/* 0x00 */ u8 field_0x00;
/* 0x01 */ u8 field_0x01;
/* 0x02 */ u8 field_0x02;
}; // Size: 0x03
struct daNpcPeople_c__l_npc_dat {
/* 0x00 */ s16 field_0x00;
/* 0x02 */ s16 field_0x02;
/* 0x04 */ s16 field_0x04;
/* 0x06 */ s16 field_0x06;
/* 0x08 */ s16 field_0x08;
/* 0x0A */ s16 field_0x0A;
/* 0x0C */ s16 field_0x0C;
/* 0x0E */ s16 field_0x0E;
/* 0x10 */ s16 field_0x10;
/* 0x12 */ s16 field_0x12;
/* 0x14 */ f32 field_0x14;
/* 0x18 */ f32 field_0x18;
/* 0x1C */ f32 field_0x1C;
/* 0x20 */ f32 field_0x20;
/* 0x24 */ f32 field_0x24;
/* 0x28 */ f32 field_0x28;
/* 0x2C */ f32 field_0x2C;
/* 0x30 */ f32 field_0x30;
/* 0x34 */ s16 field_0x34;
/* 0x36 */ s16 field_0x36;
/* 0x38 */ s16 field_0x38;
/* 0x3A */ s16 field_0x3A;
/* 0x3C */ f32 field_0x3C;
/* 0x40 */ f32 field_0x40;
/* 0x44 */ f32 field_0x44;
/* 0x48 */ f32 field_0x48;
/* 0x4C */ s16 field_0x4C;
/* 0x4E */ s16 field_0x4E;
/* 0x50 */ s16 field_0x50;
/* 0x52 */ s16 field_0x52;
/* 0x54 */ s16 field_0x54;
/* 0x56 */ s16 field_0x56;
/* 0x58 */ s16 field_0x58;
/* 0x5A */ u8 field_0x5A;
/* 0x5B */ u8 field_0x5B;
/* 0x5C */ u8 field_0x5C;
/* 0x5D */ u8 field_0x5D;
/* 0x5E */ u8 field_0x5E;
/* 0x5F */ u8 field_0x5F;
}; // Size: 0x60
class daNpcPeople_c : public fopNpc_npc_c {
public:
enum Prm_e {
PRM_RAIL_ID_W = 0x8,
PRM_RAIL_ID_S = 0x10,
PRM_ARG0_W = 0x8,
PRM_ARG0_S = 0x0,
};
u8 getNpcNo() { return mNpcNo; }
request_of_phase_process_class* getPhaseP() { return &mPhase; }
void setEtcFlag(u32 flags) { mEtcFlag |= flags; }
void setResFlag(u8 flag) { mResFlag = flag; }
void setAnmFlag(u8 flags) { mAnmFlag |= flags; }
void setTalk(u8 value) { mTalk = value; }
void setNoTalk(u8 value) { mNoTalk = value; }
void setOrderEventNum(u8 value) { mOrderEventNum = value; }
daNpcPeople_c();
cPhs_State _create();
BOOL createHeap();
cPhs_State createInit();
bool _delete();
bool _draw();
bool _execute();
bool executeCommon();
void executeSetMode(u8);
s32 executeWaitInit();
void executeWait();
s32 executeTalkInit();
void executeTalk();
s32 executeWalkInit();
void executeWalk();
s32 executeTurnInit();
void executeTurn();
s32 executeBikkuriInit();
void executeBikkuri();
s32 executeFurueInit();
void executeFurue();
s32 executeKyoroInit();
void executeKyoro();
s32 executeLetterInit();
void executeLetter();
s32 executeLookInit();
void executeLook();
s32 executeLook2Init();
void executeLook2();
s32 executeUgWalkInit();
void executeUgWalk();
s32 executeUgTurnInit();
void executeUgTurn();
s32 executeUgLookInit();
void executeUgLook();
s32 executeUgLook2Init();
void executeUgLook2();
s32 executeUgSitInit();
void executeUgSit();
void checkOrder();
void eventOrder();
void eventMove();
void privateCut();
void eventMesSetTpInit(int);
void eventMesSetInit(int);
bool eventMesSet();
bool eventMesSet2();
void eventFlagSetInit(int);
void eventGetItemInit(int);
bool eventGetItem();
void eventTurnToPlayerInit();
bool eventTurnToPlayer();
void eventUb1TalkInit(int);
bool eventUb1Talk();
void eventUb1TalkXyInit(int);
bool eventUb1TalkXy();
bool eventUb2Talk();
bool eventUbSetAnm();
void eventAreaMaxInit();
void eventCameraStopInit();
bool eventCameraStop();
void eventCameraStartInit();
void eventCoCylRInit(int);
bool eventLookPo();
void eventMesSetPoInit(int);
bool eventMesSetPo();
u16 talk2(int, fopAc_ac_c*);
u16 talk3(int);
u16 next_msgStatus(u32*);
u32 getMsg();
u32 getMsg3();
void chkMsg();
void setMessage(u32);
void setMessageUb(sUbMsgDat*);
void setAnmFromMsgTag();
void setAnmFromMsgTagUo(int);
void setAnmFromMsgTagUb(int);
void setAnmFromMsgTagUw(int);
void setAnmFromMsgTagUm(int);
void setAnmFromMsgTagSa(int);
void setAnmFromMsgTagUg(int);
u8 getPrmNpcNo();
u8 getPrmRailID();
u8 getPrmArg0();
void setMtx();
void chkAttention();
void lookBack();
BOOL initTexPatternAnm(bool);
void playTexPatternAnm();
void playAnm();
int getBck(u8);
int getHeadBck(u8);
void setAnm(u8, int, f32, f32);
bool setAnmTbl(sPeopleAnmDat*, int);
void setWaitAnm();
s16 XyCheckCB(int);
s16 XyEventCB(int);
s16 photoCB(int);
int getRand(int max);
BOOL isPhoto(u8);
BOOL isColor();
void setCollision(dCcD_Cyl*, cXyz, f32, f32);
BOOL chkSurprise();
BOOL chkEndEvent();
BOOL is1GetMap20();
BOOL is1DayGetMap20();
int getWindDir();
BOOL isUo1FdaiAll();
BOOL isUo1FdaiOne();
s32 chkDaiza();
BOOL checkPig();
BOOL isPigOk();
s16 getPigTimer();
void resetPig();
void initUgSearchArea();
cXyz getDirDistToPos(s16, f32);
void warp();
private:
/* 0x6C4 */ request_of_phase_process_class mPhase;
/* 0x6CC */ request_of_phase_process_class mPhase2;
/* 0x6D4 */ J3DModel* mpHeadModel;
/* 0x6D8 */ J3DModel* mpEtcModel;
/* 0x6DC */ mDoExt_McaMorf* mpHeadMorf;
/* 0x6E0 */ J3DAnmTexPattern* m_head_tex_pattern;
/* 0x6E4 */ mDoExt_btpAnm mBtpAnm;
/* 0x6F8 */ u32 mShadowId;
/* 0x6FC */ dNpc_PathRun_c mPathRun;
/* 0x704 */ u8 m704[0x710 - 0x704];
/* 0x710 */ cXyz mLookAtPos;
/* 0x71C */ cXyz m71C;
/* 0x728 */ sPeopleAnmDat* m728;
/* 0x72C */ daNpcPeople_c__l_npc_dat* mpNpcDat;
/* 0x730 */ daNpcPeople_c* m730;
/* 0x734 */ u32* m734;
/* 0x738 */ sUbMsgDat* m738;
/* 0x73C */ sUbMsgDat** m73C;
/* 0x740 */ f32 m740;
/* 0x744 */ f32 m744;
/* 0x748 */ f32 m748;
/* 0x74C */ f32 m74C;
/* 0x750 */ f32 m750;
/* 0x754 */ u8 m754[0x758 - 0x754];
/* 0x758 */ u32 mEtcFlag;
/* 0x75C */ int m75C;
/* 0x760 */ int m760;
/* 0x764 */ bool m764;
/* 0x765 */ u8 m765;
/* 0x766 */ s16 m766[4];
/* 0x76E */ s16 m76E;
/* 0x770 */ s16 m770;
/* 0x772 */ s16 m772;
/* 0x774 */ s16 m774;
/* 0x776 */ s16 m776;
/* 0x778 */ s16 m778;
/* 0x77A */ s16 m77A;
/* 0x77C */ u16 m77C;
/* 0x77E */ u16 m77E;
/* 0x780 */ s16 m780;
/* 0x782 */ s16 m782;
/* 0x784 */ s16 m784;
/* 0x786 */ s16 m786;
/* 0x788 */ u8 mTalk;
/* 0x789 */ u8 m789;
/* 0x78A */ u8 m78A;
/* 0x78B */ u8 m78B;
/* 0x78C */ u8 mNoTalk;
/* 0x78D */ u8 mOrderEventNum;
/* 0x78E */ u8 m78E;
/* 0x78F */ u8 m78F;
/* 0x790 */ u8 mResFlag;
/* 0x791 */ u8 mNpcNo;
/* 0x792 */ u8 m792;
/* 0x793 */ u8 m793;
/* 0x794 */ u8 m794;
/* 0x795 */ u8 mAnmFlag;
/* 0x796 */ s8 m796;
/* 0x797 */ s8 m797;
/* 0x798 */ u8 m798;
/* 0x799 */ s8 m799;
/* 0x79A */ u8 m79A;
/* 0x79B */ u8 mbIsNight;
/* 0x79C */ u8 m79C;
/* 0x79D */ u8 m79D;
/* 0x79E */ u8 m79E;
/* 0x79F */ u8 m79F;
/* 0x7A0 */ u8 m7A0;
/* 0x7A1 */ u8 m7A1;
/* 0x7A2 */ u8 m7A2;
/* 0x7A3 */ s8 m7A3;
/* 0x7A4 */ u8 m7A4;
/* 0x7A5 */ u8 m7A5;
/* 0x7A6 */ u8 m7A6;
/* 0x7A7 */ u8 m7A7;
/* 0x7A8 */ u8 m7A8;
static const char m_arcname[];
}; // Size: 0x7A9
#endif /* D_A_NPC_PEOPLE_H */
|