Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_a_npc_zrc.h
Go to the documentation of this file.
1#ifndef D_A_NPC_ZRC_H
2#define D_A_NPC_ZRC_H
3
4#include "d/actor/d_a_npc.h"
5
14class daNpc_zrC_c : public daNpcF_c {
15public:
18
19 /* 80B8DC0C */ daNpc_zrC_c();
20 /* 80B8DE20 */ ~daNpc_zrC_c();
21 /* 80B8E03C */ cPhs__Step create();
22 /* 80B8E338 */ int CreateHeap();
23 /* 80B8E830 */ int Delete();
24 /* 80B8E864 */ int Execute();
25 /* 80B8E884 */ int Draw();
26 /* 80B8E914 */ int ctrlJoint(J3DJoint*, J3DModel*);
27 /* 80B8EB48 */ static int createHeapCallBack(fopAc_ac_c*);
28 /* 80B8EB68 */ static int ctrlJointCallBack(J3DJoint*, int);
29 /* 80B8EBB4 */ void setParam();
30 /* 80B8ED94 */ BOOL main();
31 /* 80B8EF2C */ BOOL ctrlBtk();
32 /* 80B8F00C */ void setAttnPos();
33 /* 80B8F56C */ bool setExpressionAnm(int, bool);
34 /* 80B8F898 */ bool setExpressionBtp(int);
35 /* 80B8F9CC */ void setExpression(int, f32);
36 /* 80B8F9F8 */ bool setMotionAnm(int, f32);
37 /* 80B8FBE4 */ void setMotion(int, f32, int);
38 /* 80B8FC28 */ BOOL drawDbgInfo();
39 /* 80B8FC30 */ void drawOtherMdls();
40 /* 80B8FC34 */ u8 getTypeFromParam();
41 /* 80B8FC8C */ int isDelete();
42 /* 80B8FD10 */ void reset();
43 /* 80B8FF14 */ void playExpression();
44 /* 80B904DC */ void playMotion();
45 /* 80B90940 */ void playMotionAnm2(daNpcF_c::daNpcF_anmPlayData***);
46 /* 80B90A6C */ BOOL chkAction(ActionFn);
47 /* 80B90A98 */ BOOL setAction(ActionFn);
48 /* 80B90B40 */ BOOL selectAction();
49 /* 80B90C34 */ void doNormalAction(BOOL);
50 /* 80B90D48 */ BOOL doEvent();
51 /* 80B9113C */ void setLookMode(int);
52 /* 80B91160 */ void lookat();
53 /* 80B91418 */ void setExpressionTalkAfter();
54 /* 80B914F4 */ BOOL wait(void*);
55 /* 80B916FC */ BOOL waitSick(void*);
56 /* 80B91808 */ BOOL waitPray(void*);
57 /* 80B91F78 */ BOOL waitThrone(void*);
58 /* 80B920EC */ BOOL talk(void*);
59 /* 80B922D8 */ BOOL test(void*);
60 /* 80B923BC */ BOOL ECut_earringGet(int);
61 /* 80B9318C */ void adjustShapeAngle() {}
62
63 static char* mEvtCutNameList[2];
64 static EventFn mEvtCutList[2];
65
66private:
71 /* 0xC90 */ u8 field_0xc90[4];
72 /* 0xC94 */ dCcD_Cyl mCcCyl;
74 /* 0xDDC */ ActionFn mpActionFn;
76 /* 0xE10 */ int field_0xe10;
77 /* 0xE14 */ int field_0xe14;
78 /* 0xE18 */ int field_0xe18;
79 /* 0xE1C */ int field_0xe1c;
80 /* 0xE20 */ int mFlowID;
81 /* 0xE24 */ s16 mLookMode;
82 /* 0xE26 */ u16 mMode;
83 /* 0xE28 */ u8 mType;
84 /* 0xE2C */ int mMotionAnm;
85 /* 0xE30 */ bool field_0xe30;
86 /* 0xE34 */ u32 mItemID;
87 /* 0xE38 */ bool mSpeakEvent;
88
89 enum Animation {
90 /* 0x00 */ ANM_F_WAIT_A,
91 /* 0x01 */ ANM_F_SIT_TALK,
92 /* 0x02 */ ANM_F_TALK_A,
93 /* 0x03 */ ANM_F_TOPRAY,
94 /* 0x04 */ ANM_F_SAD,
95 /* 0x05 */ ANM_F_SMILE,
96 /* 0x06 */ ANM_F_KIZUKU,
97 /* 0x07 */ ANM_F_SAD_WAIT,
100 /* 0x0A */ ANM_F_PRAY,
101 /* 0x0B */ ANM_F_GETUP,
102 /* 0x0C */ ANM_F_SIT,
103 /* 0x0D */ ANM_F_STEP,
104 /* 0x0E */ ANM_FH_SAD,
105 /* 0x0F */ ANM_FH_SMILE,
106 /* 0x10 */ ANM_FH_KIZUKU,
108 /* 0x12 */ ANM_WAIT_A,
109 /* 0x13 */ ANM_TOPRAY,
110 /* 0x14 */ ANM_PRAY,
111 /* 0x15 */ ANM_GETUP,
112 /* 0x16 */ ANM_STEP,
113 /* 0x17 */ ANM_SIT,
114 /* 0x18 */ ANM_SIT_TALK,
115 /* 0x19 */ ANM_SAD_TALK,
116 /* 0x1A */ ANM_SAD_WAIT,
117 /* 0x1B */ ANM_TALK_A,
118 /* 0x1C */ ANM_KIZUKU,
119 /* 0x1D */ ANM_KIZUKU_WAIT,
120 /* 0x1E */ ANM_SMILE_TALK,
122 };
123
125 /* 0x00 */ EXPR_TALK_A,
126 /* 0x01 */ EXPR_SIT_TALK,
127 /* 0x02 */ EXPR_PRAY,
128 /* 0x03 */ EXPR_SAD,
129 /* 0x04 */ EXPR_SMILE,
130 /* 0x05 */ EXPR_KIZUKU,
131 /* 0x06 */ EXPR_SAD_WAIT,
134 /* 0x09 */ EXPR_H_KIZUKU,
135 /* 0x0A */ EXPR_H_SAD,
136 /* 0x0B */ EXPR_H_SMILE,
137 /* 0x0C */ EXPR_STEP,
138 /* 0x0D */ EXPR_TOPRAY,
139 /* 0x0E */ EXPR_GETUP,
140 /* 0x0F */ EXPR_SIT,
142 /* 0x11 */ EXPR_WAIT_A,
143 };
144
145 enum Motion {
146 /* 0x0 */ MOT_WAIT_A,
147 /* 0x1 */ MOT_SIT_TALK,
148 /* 0x2 */ MOT_PRAY,
149 /* 0x3 */ MOT_SIT,
150 /* 0x4 */ MOT_SAD_TALK,
151 /* 0x5 */ MOT_SAD_WAIT,
152 /* 0x6 */ MOT_TALK_A,
153 /* 0x7 */ MOT_KIZUKU,
155 /* 0x9 */ MOT_SMILE_TALK,
156 /* 0xA */ MOT_TOPRAY,
157 /* 0xB */ MOT_GETUP,
158 /* 0xC */ MOT_STEP,
160 };
161
162 enum Event {
163 /* 0 */ EVT_NONE,
165 };
166};
167
168STATIC_ASSERT(sizeof(daNpc_zrC_c) == 0xe3c);
169
171public:
172 struct param {
173 /* 0x00 */ f32 mAttnOffsetY;
174 /* 0x04 */ f32 mGravity;
175 /* 0x08 */ f32 mScale;
176 /* 0x0C */ f32 mShadowDepth;
177 /* 0x10 */ f32 mCcWeight;
178 /* 0x14 */ f32 mCylH;
179 /* 0x18 */ f32 mWallH;
180 /* 0x1C */ f32 mWallR;
181 /* 0x20 */ f32 mBodyUpAngle;
182 /* 0x24 */ f32 mBodyDownAngle;
183 /* 0x28 */ f32 mBodyLeftAngle;
185 /* 0x30 */ f32 mHeadUpAngle;
186 /* 0x34 */ f32 mHeadDownAngle;
187 /* 0x38 */ f32 mHeadLeftAngle;
189 /* 0x40 */ f32 mNeckAngleScl;
190 /* 0x44 */ f32 mMorfFrames;
191 /* 0x48 */ s16 mSpeakDistIdx;
192 /* 0x4A */ s16 mSpeakAngleIdx;
193 /* 0x4C */ s16 mTalkDistIdx;
194 /* 0x4E */ s16 mTalkAngleIdx;
195 /* 0x50 */ f32 mAttnFovY;
196 /* 0x54 */ f32 mAttnRadius;
197 /* 0x58 */ f32 mAttnUpperY;
198 /* 0x5C */ f32 mAttnLowerY;
199 /* 0x60 */ s16 field_0x60;
200 /* 0x62 */ s16 mDamageTimer;
202 /* 0x66 */ s16 mTestMotion;
203 /* 0x68 */ s16 mTestLookMode;
204 /* 0x6A */ bool mTest;
205 /* 0x6C */ f32 field_0x6c;
206 /* 0x70 */ f32 field_0x70;
207 };
209 /* 80B93190 */ virtual ~daNpc_zrC_Param_c() {}
210
211 static param const m;
212};
213
215
216#endif /* D_A_NPC_ZRC_H */
T cLib_calcTimer(T *value)
Definition c_lib.h:74
cPhs__Step
Definition c_phase.h:8
Definition d_a_npc.h:756
Definition d_a_npc.h:1099
Definition d_a_npc.h:1017
Definition d_a_npc.h:772
Definition d_a_npc_zrc.h:170
static param const m
Definition d_a_npc_zrc.h:34
virtual ~daNpc_zrC_Param_c()
Definition d_a_npc_zrc.h:209
Ralis.
Definition d_a_npc_zrc.h:14
int CreateHeap()
Definition d_a_npc_zrc.cpp:297
BOOL waitPray(void *)
Definition d_a_npc_zrc.cpp:1438
void setParam()
Definition d_a_npc_zrc.cpp:434
void setAttnPos()
Definition d_a_npc_zrc.cpp:546
daNpcF_Lookat_c mLookat
Definition d_a_npc_zrc.h:69
bool setExpressionAnm(int, bool)
Definition d_a_npc_zrc.cpp:629
void setExpressionTalkAfter()
Definition d_a_npc_zrc.cpp:1326
u32 mItemID
Definition d_a_npc_zrc.h:86
void drawOtherMdls()
Definition d_a_npc_zrc.cpp:892
bool mSpeakEvent
Definition d_a_npc_zrc.h:87
BOOL wait(void *)
Definition d_a_npc_zrc.cpp:1351
int field_0xe14
Definition d_a_npc_zrc.h:77
void lookat()
Definition d_a_npc_zrc.cpp:1267
Motion
Definition d_a_npc_zrc.h:145
@ MOT_WAIT_A
Definition d_a_npc_zrc.h:146
@ MOT_KIZUKU_WAIT
Definition d_a_npc_zrc.h:154
@ MOT_GETUP
Definition d_a_npc_zrc.h:157
@ MOT_KIZUKU
Definition d_a_npc_zrc.h:153
@ MOT_SICK_DEMO_WAIT
Definition d_a_npc_zrc.h:159
@ MOT_SIT
Definition d_a_npc_zrc.h:149
@ MOT_SMILE_TALK
Definition d_a_npc_zrc.h:155
@ MOT_PRAY
Definition d_a_npc_zrc.h:148
@ MOT_TOPRAY
Definition d_a_npc_zrc.h:156
@ MOT_TALK_A
Definition d_a_npc_zrc.h:152
@ MOT_SAD_WAIT
Definition d_a_npc_zrc.h:151
@ MOT_SAD_TALK
Definition d_a_npc_zrc.h:150
@ MOT_STEP
Definition d_a_npc_zrc.h:158
@ MOT_SIT_TALK
Definition d_a_npc_zrc.h:147
static EventFn mEvtCutList[2]
Definition d_a_npc_zrc.h:208
int ctrlJoint(J3DJoint *, J3DModel *)
Definition d_a_npc_zrc.cpp:372
int Execute()
Definition d_a_npc_zrc.cpp:359
BOOL waitThrone(void *)
Definition d_a_npc_zrc.cpp:1556
void playMotion()
Definition d_a_npc_zrc.cpp:1019
daNpcF_MatAnm_c * mpMatAnm
Definition d_a_npc_zrc.h:68
BOOL doEvent()
Definition d_a_npc_zrc.cpp:1167
ActionFn mpActionFn
Definition d_a_npc_zrc.h:74
static char * mEvtCutNameList[2]
Definition d_a_npc_zrc.h:202
s16 mLookMode
Definition d_a_npc_zrc.h:81
int Draw()
Definition d_a_npc_zrc.cpp:364
u8 getTypeFromParam()
Definition d_a_npc_zrc.cpp:898
int isDelete()
Definition d_a_npc_zrc.cpp:914
Animation
Definition d_a_npc_zrc.h:89
@ ANM_KIZUKU_WAIT
Definition d_a_npc_zrc.h:119
@ ANM_GETUP
Definition d_a_npc_zrc.h:111
@ ANM_F_SMILE
Definition d_a_npc_zrc.h:95
@ ANM_F_TOPRAY
Definition d_a_npc_zrc.h:93
@ ANM_F_SICK_DEMO_WAIT
Definition d_a_npc_zrc.h:107
@ ANM_F_SAD
Definition d_a_npc_zrc.h:94
@ ANM_F_KIZUKU
Definition d_a_npc_zrc.h:96
@ ANM_F_STEP
Definition d_a_npc_zrc.h:103
@ ANM_F_PRAY
Definition d_a_npc_zrc.h:100
@ ANM_WAIT_A
Definition d_a_npc_zrc.h:108
@ ANM_F_GETUP
Definition d_a_npc_zrc.h:101
@ ANM_F_TALK_A
Definition d_a_npc_zrc.h:92
@ ANM_TOPRAY
Definition d_a_npc_zrc.h:109
@ ANM_F_SAD_WAIT
Definition d_a_npc_zrc.h:97
@ ANM_SAD_TALK
Definition d_a_npc_zrc.h:115
@ ANM_SAD_WAIT
Definition d_a_npc_zrc.h:116
@ ANM_SMILE_TALK
Definition d_a_npc_zrc.h:120
@ ANM_TALK_A
Definition d_a_npc_zrc.h:117
@ ANM_SIT_TALK
Definition d_a_npc_zrc.h:114
@ ANM_FH_SMILE
Definition d_a_npc_zrc.h:105
@ ANM_SICK_DEMO_WAIT
Definition d_a_npc_zrc.h:121
@ ANM_STEP
Definition d_a_npc_zrc.h:112
@ ANM_SIT
Definition d_a_npc_zrc.h:113
@ ANM_PRAY
Definition d_a_npc_zrc.h:110
@ ANM_F_TALK_NORMAL
Definition d_a_npc_zrc.h:99
@ ANM_F_KIZUKU_WAIT
Definition d_a_npc_zrc.h:98
@ ANM_F_SIT_TALK
Definition d_a_npc_zrc.h:91
@ ANM_FH_KIZUKU
Definition d_a_npc_zrc.h:106
@ ANM_F_WAIT_A
Definition d_a_npc_zrc.h:90
@ ANM_F_SIT
Definition d_a_npc_zrc.h:102
@ ANM_KIZUKU
Definition d_a_npc_zrc.h:118
@ ANM_FH_SAD
Definition d_a_npc_zrc.h:104
int Delete()
Definition d_a_npc_zrc.cpp:353
void doNormalAction(BOOL)
Definition d_a_npc_zrc.cpp:1140
BOOL talk(void *)
Definition d_a_npc_zrc.cpp:1603
BOOL main()
Definition d_a_npc_zrc.cpp:490
BOOL selectAction()
Definition d_a_npc_zrc.cpp:1116
Z2Creature mCreatureSound
Definition d_a_npc_zrc.h:67
dCcD_Cyl mCcCyl
Definition d_a_npc_zrc.h:72
bool field_0xe30
Definition d_a_npc_zrc.h:85
Event
Definition d_a_npc_zrc.h:162
@ EVT_NONE
Definition d_a_npc_zrc.h:163
@ EVT_EARRING_GET
Definition d_a_npc_zrc.h:164
~daNpc_zrC_c()
Definition d_a_npc_zrc.cpp:219
cPhs__Step create()
Definition d_a_npc_zrc.cpp:234
BOOL waitSick(void *)
Definition d_a_npc_zrc.cpp:1412
BOOL ctrlBtk()
Definition d_a_npc_zrc.cpp:525
void playExpression()
Definition d_a_npc_zrc.cpp:962
BOOL(daNpc_zrC_c::* EventFn)(int)
Definition d_a_npc_zrc.h:17
static int ctrlJointCallBack(J3DJoint *, int)
Definition d_a_npc_zrc.cpp:423
BOOL chkAction(ActionFn)
Definition d_a_npc_zrc.cpp:1096
int mMotionAnm
Definition d_a_npc_zrc.h:84
void reset()
Definition d_a_npc_zrc.cpp:924
int mFlowID
Definition d_a_npc_zrc.h:80
u16 mMode
Definition d_a_npc_zrc.h:82
void setExpression(int, f32)
Definition d_a_npc_zrc.cpp:784
BOOL setAction(ActionFn)
Definition d_a_npc_zrc.cpp:1102
BOOL drawDbgInfo()
Definition d_a_npc_zrc.cpp:887
daNpc_zrC_c()
Definition d_a_npc_zrc.cpp:214
BOOL test(void *)
Definition d_a_npc_zrc.cpp:1660
u8 field_0xc90[4]
Definition d_a_npc_zrc.h:71
static int createHeapCallBack(fopAc_ac_c *)
Definition d_a_npc_zrc.cpp:417
BOOL(daNpc_zrC_c::* ActionFn)(void *)
Definition d_a_npc_zrc.h:16
int field_0xe18
Definition d_a_npc_zrc.h:78
void playMotionAnm2(daNpcF_c::daNpcF_anmPlayData ***)
Definition d_a_npc_zrc.cpp:1067
bool setMotionAnm(int, f32)
Definition d_a_npc_zrc.cpp:795
request_of_phase_process_class mPhase[5]
Definition d_a_npc_zrc.h:75
void setLookMode(int)
Definition d_a_npc_zrc.cpp:1260
Expression
Definition d_a_npc_zrc.h:124
@ EXPR_SICK_DEMO_WAIT
Definition d_a_npc_zrc.h:141
@ EXPR_TOPRAY
Definition d_a_npc_zrc.h:138
@ EXPR_STEP
Definition d_a_npc_zrc.h:137
@ EXPR_WAIT_A
Definition d_a_npc_zrc.h:142
@ EXPR_TALK_NORMAL
Definition d_a_npc_zrc.h:132
@ EXPR_SAD_WAIT
Definition d_a_npc_zrc.h:131
@ EXPR_KIZUKU_WAIT
Definition d_a_npc_zrc.h:133
@ EXPR_SAD
Definition d_a_npc_zrc.h:128
@ EXPR_SMILE
Definition d_a_npc_zrc.h:129
@ EXPR_GETUP
Definition d_a_npc_zrc.h:139
@ EXPR_H_SMILE
Definition d_a_npc_zrc.h:136
@ EXPR_TALK_A
Definition d_a_npc_zrc.h:125
@ EXPR_SIT_TALK
Definition d_a_npc_zrc.h:126
@ EXPR_KIZUKU
Definition d_a_npc_zrc.h:130
@ EXPR_PRAY
Definition d_a_npc_zrc.h:127
@ EXPR_SIT
Definition d_a_npc_zrc.h:140
@ EXPR_H_SAD
Definition d_a_npc_zrc.h:135
@ EXPR_H_KIZUKU
Definition d_a_npc_zrc.h:134
void adjustShapeAngle()
Definition d_a_npc_zrc.h:61
int field_0xe1c
Definition d_a_npc_zrc.h:79
BOOL ECut_earringGet(int)
Definition d_a_npc_zrc.cpp:1686
u8 mType
Definition d_a_npc_zrc.h:83
ActionFn mpNextActionFn
Definition d_a_npc_zrc.h:73
daNpcF_ActorMngr_c mActorMngr[3]
Definition d_a_npc_zrc.h:70
bool setExpressionBtp(int)
Definition d_a_npc_zrc.cpp:726
int field_0xe10
Definition d_a_npc_zrc.h:76
void setMotion(int, f32, int)
Definition d_a_npc_zrc.cpp:874
STATIC_ASSERT(sizeof(daNpc_zrC_c)==0xe3c)
Definition d_a_hozelda.cpp:239
Definition d_a_ep.cpp:155
Definition d_a_hozelda.cpp:163
Definition d_a_npc_fguard.cpp:86
Definition d_a_npc.h:866
Definition d_a_npc_zrc.h:172
s16 field_0x60
Definition d_a_npc_zrc.h:199
s16 mSpeakDistIdx
Definition d_a_npc_zrc.h:191
f32 mGravity
Definition d_a_npc_zrc.h:174
s16 mTalkAngleIdx
Definition d_a_npc_zrc.h:194
f32 mCylH
Definition d_a_npc_zrc.h:178
s16 mTestExpression
Definition d_a_npc_zrc.h:201
f32 field_0x70
Definition d_a_npc_zrc.h:206
f32 mHeadDownAngle
Definition d_a_npc_zrc.h:186
s16 mDamageTimer
Definition d_a_npc_zrc.h:200
s16 mTalkDistIdx
Definition d_a_npc_zrc.h:193
f32 mAttnLowerY
Definition d_a_npc_zrc.h:198
f32 mAttnUpperY
Definition d_a_npc_zrc.h:197
f32 mHeadRightAngle
Definition d_a_npc_zrc.h:188
bool mTest
Definition d_a_npc_zrc.h:204
f32 mBodyLeftAngle
Definition d_a_npc_zrc.h:183
s16 mSpeakAngleIdx
Definition d_a_npc_zrc.h:192
f32 field_0x6c
Definition d_a_npc_zrc.h:205
f32 mWallH
Definition d_a_npc_zrc.h:179
f32 mBodyDownAngle
Definition d_a_npc_zrc.h:182
f32 mWallR
Definition d_a_npc_zrc.h:180
f32 mAttnOffsetY
Definition d_a_npc_zrc.h:173
f32 mNeckAngleScl
Definition d_a_npc_zrc.h:189
f32 mAttnRadius
Definition d_a_npc_zrc.h:196
f32 mCcWeight
Definition d_a_npc_zrc.h:177
f32 mAttnFovY
Definition d_a_npc_zrc.h:195
f32 mScale
Definition d_a_npc_zrc.h:175
s16 mTestLookMode
Definition d_a_npc_zrc.h:203
f32 mBodyUpAngle
Definition d_a_npc_zrc.h:181
s16 mTestMotion
Definition d_a_npc_zrc.h:202
f32 mBodyRightAngle
Definition d_a_npc_zrc.h:184
f32 mMorfFrames
Definition d_a_npc_zrc.h:190
f32 mHeadLeftAngle
Definition d_a_npc_zrc.h:187
f32 mShadowDepth
Definition d_a_npc_zrc.h:176
f32 mHeadUpAngle
Definition d_a_npc_zrc.h:185
Definition d_a_ep.cpp:19
Definition d_a_hozelda.cpp:14
int BOOL
Definition types.h:27
unsigned long u32
Definition types.h:10
float f32
Definition types.h:22
signed short s16
Definition types.h:5
unsigned short u16
Definition types.h:9
unsigned char u8
Definition types.h:8