blob: 236755aba70f2a32937d20b856cf2227da12a4d7 (
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
|
#ifndef D_A_NPC_GRA_H
#define D_A_NPC_GRA_H
#include "d/actor/d_a_npc4.h"
#include "d/d_particle_copoly.h"
class daNpc_grA_HIOParam {
public:
/* 0x00 */ daNpcF_HIOParam common;
/* 0x6C */ s16 mBowTimer;
/* 0x70 */ f32 mRotationalSpeed;
/* 0x74 */ f32 mWalkingSpeed;
/* 0x78 */ f32 mWalkingAnimationSpeed;
/* 0x7C */ s16 mWalkingRotationSpeed;
/* 0x7A */ s16 mWalkingRotationDivisions;
/* 0x80 */ f32 mParticleSize;
};
class daNpc_grA_Param_c {
public:
virtual ~daNpc_grA_Param_c() {}
static daNpc_grA_HIOParam const m;
};
#if DEBUG
class daNpc_grA_HIO_c : public mDoHIO_entry_c {
public:
daNpc_grA_HIO_c();
void listenPropertyEvent(const JORPropertyEvent*);
void genMessage(JORMContext*);
daNpc_grA_HIOParam m;
};
#define NPC_GRA_HIO_CLASS daNpc_grA_HIO_c
#else
#define NPC_GRA_HIO_CLASS daNpc_grA_Param_c
#endif
/**
* @ingroup actors-npcs
* @class daNpc_grA_c
* @brief Goron (Adult)
*
* @details
*
*/
class daNpc_grA_c : public daNpcF_c {
public:
class daNpc_GrA_prtclMngr_c {
public:
/* 0x00 */ u8 field_0x0;
/* 0x04 */ cXyz mPos;
/* 0x10 */ csXyz mAngle;
/* 0x18 */ cXyz mScale;
/* 0x24 */ dPaPo_c mManager;
};
daNpc_grA_c();
~daNpc_grA_c();
BOOL create();
BOOL CreateHeap();
BOOL Delete();
BOOL Execute();
BOOL Draw();
BOOL ctrlJoint(J3DJoint*, J3DModel*);
static BOOL createHeapCallBack(fopAc_ac_c*);
static BOOL ctrlJointCallBack(J3DJoint*, int);
BOOL setTagJump();
BOOL setTagJump2();
BOOL setHomeJump();
bool checkTagGraSub(fopAc_ac_c*);
bool checkTagGraSub2(fopAc_ac_c*);
bool checkTagGraSubCrashed(fopAc_ac_c*);
void setParam();
BOOL main();
BOOL ctrlBtk();
void setAttnPos();
bool setExpressionAnm(int, bool);
bool setExpressionBtp(int);
void setExpression(int, f32);
void setMotionAnm(int, f32);
void setMotion(int, f32, int);
BOOL drawDbgInfo();
void drawOtherMdls();
u8 getMode();
u8 getMode1();
u8 getTypeFromParam();
u8 getSwBit();
BOOL isDelete();
void reset();
void playExpression();
void playMotion();
BOOL chkAction(int (daNpc_grA_c::*)(void*));
BOOL setAction(int (daNpc_grA_c::*)(void*));
BOOL selectAction();
BOOL doEvent();
void setLookMode(int);
void lookat();
BOOL chkFindPlayer();
void setExpressionTalkAfter();
BOOL setPrtcl();
void setRollPrtcl(cXyz const&, f32);
void setOtherObjMtx();
BOOL ECut_talkSpa(int);
BOOL ECut_grDSRoll(int);
BOOL ECut_grDSGate(int);
BOOL ECut_teachElevator(int);
BOOL ECut_kickOut(int);
BOOL ECut_noneLook(int);
BOOL ECut_rescueRock(int);
BOOL ECut_carrySpaWater(int);
BOOL ECut_carrySpaWaterFailure(int);
BOOL ECut_rollRockCrash(int);
BOOL ECut_talkSpaWater(int);
BOOL wait(void*);
BOOL waitTW(void*);
BOOL waitCheer(void*);
BOOL waitGate(void*);
BOOL waitKickOut(void*);
BOOL moveRock(void*);
BOOL spaWarm(void*);
BOOL waitSpaWater(void*);
BOOL waitSpaBuyer(void*);
BOOL waitSpaBuyerTW(void*);
BOOL beforeCrashWait(void*);
BOOL crashRoll(void*);
BOOL crashRollWait(void*);
BOOL crashedWait(void*);
BOOL waitBuyer(void*);
BOOL talk(void*);
BOOL test(void*);
virtual void adjustShapeAngle() {}
int getType() { return mType; }
s16 getGraNo() { return 0; }
void addCarryNum() { field_0x1692++; }
u8 getPathNoFromParam() { return home.angle.z; }
void setGateWalk() { field_0x14D0 = 1; }
static char* mEvtCutNameList[12];
typedef BOOL (daNpc_grA_c::*cut_type)(int);
static cut_type mEvtCutList[];
private:
typedef BOOL (daNpc_grA_c::*daNpc_grA_c_Action)(void*);
/* 0x0B48 */ Z2Creature mCreature;
/* 0x0BD8 */ J3DModel* mpModel;
/* 0x0BDC */ int field_0xBDC;
/* 0x0BE0 */ daNpcF_Lookat_c mNpcfLookAt;
/* 0x0C7C */ daNpcF_ActorMngr_c mNpcfActorManager[3];
/* 0x0C94 */ NPC_GRA_HIO_CLASS* mpHIO;
/* 0x0C98 */ dCcD_Cyl field_0xC98;
/* 0x0DD4 */ daNpcF_Path_c field_0xDD4;
/* 0x1404 */ daNpc_grA_c_Action mAction2;
/* 0x1410 */ daNpc_grA_c_Action mAction;
/* 0x141C */ request_of_phase_process_class mPhase[8];
/* 0x145C */ int field_0x145C;
/* 0x14B0 */ int field_0x1460;
/* 0x1464 */ int field_0x1464;
/* 0x1468 */ int field_0x1468;
/* 0x146C */ int mFlowID;
/* 0x1470 */ s16 mLookMode;
/* 0x1472 */ u16 field_0x1472;
/* 0x1474 */ u8 mType;
/* 0x1478 */ int field_0x1478;
/* 0x147C */ const char* mName;
/* 0x1480 */ fpc_ProcID field_0x1480;
/* 0x1484 */ s16 field_0x1484;
/* 0x1486 */ u8 field_0x1486;
/* 0x1487 */ u8 field_0x1487;
/* 0x1488 */ u8 field_0x1488;
/* 0x1489 */ u8 field_0x1489;
/* 0x148C */ cXyz field_0x148C;
/* 0x1498 */ csXyz field_0x1498;
/* 0x149E */ u8 field_0x149E;
/* 0x14A0 */ cXyz field_0x14A0;
/* 0x14AC */ csXyz field_0x14AC;
/* 0x14B4 */ f32 field_0x14B4;
/* 0x14B8 */ f32 field_0x14B8;
/* 0x14BC */ cXyz field_0x14BC;
/* 0x14C8 */ csXyz field_0x14C8;
/* 0x14CE */ u8 mMode;
/* 0x14CF */ u8 mSwBit;
/* 0x14D0 */ u8 field_0x14D0;
/* 0x14D1 */ u8 field_0x14D1;
/* 0x14D4 */ f32 field_0x14D4;
/* 0x14D8 */ int field_0x14D8;
/* 0x14DC */ Mtx field_0x14DC;
/* 0x150C */ u8 field_0x150C;
/* 0x1510 */ int mParticleID[3];
/* 0x151C */ int field_0x151C;
/* 0x1520 */ daNpc_GrA_prtclMngr_c mParticleManager[4];
/* 0x1690 */ u8 field_0x1690;
/* 0x1691 */ u8 field_0x1691;
/* 0x1692 */ u8 field_0x1692;
/* 0x1692 */ u8 field_0x1693;
/* 0x1692 */ s16 field_0x1694;
};
STATIC_ASSERT(sizeof(daNpc_grA_c) == 0x1698);
#endif /* D_A_NPC_GRA_H */
|