Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_a_npc_zrz.h
Go to the documentation of this file.
1#ifndef D_A_NPC_ZRZ_H
2#define D_A_NPC_ZRZ_H
3
4#include "d/actor/d_a_npc.h"
5
8
17class daNpc_zrZ_c : public daNpcF_c {
18public:
21
22 /* 80B93DCC */ daNpc_zrZ_c();
23 /* 80B94014 */ ~daNpc_zrZ_c();
24 /* 80B9423C */ cPhs__Step create();
25 /* 80B9453C */ int CreateHeap();
26 /* 80B949F4 */ int Delete();
27 /* 80B94A28 */ int Execute();
28 /* 80B94A48 */ int Draw();
29 /* 80B94B34 */ int draw(BOOL, BOOL, f32, _GXColorS10*, BOOL);
30 /* 80B94E18 */ int ctrlJoint(J3DJoint*, J3DModel*);
31 /* 80B950F4 */ static int createHeapCallBack(fopAc_ac_c*);
32 /* 80B95114 */ static int ctrlJointCallBack(J3DJoint*, int);
33 /* 80B95244 */ void setParam();
34 /* 80B953CC */ BOOL main();
35 /* 80B95598 */ BOOL ctrlBtk();
36 /* 80B956B4 */ void setAttnPos();
37 /* 80B95BB8 */ void setMtx();
38 /* 80B95C6C */ bool setExpressionAnm(int, bool);
39 /* 80B95DD0 */ bool setExpressionBtp(int);
40 /* 80B95F10 */ void setExpression(int, f32);
41 /* 80B95F3C */ bool setMotionAnm(int, f32);
42 /* 80B9612C */ void setMotion(int, f32, int);
43 /* 80B96170 */ BOOL drawDbgInfo();
44 /* 80B96178 */ void drawOtherMdls();
45 /* 80B9617C */ u8 getTypeFromParam();
46 /* inline */ u8 getPathNoFromParam() { return (fopAcM_GetParam(this) >> 8) & 0xff; }
47 /* inline */ u8 getDemoMode() { return (fopAcM_GetParam(this) >> 0x10) & 0xf; }
48 /* 80B961B4 */ BOOL isDelete();
49 /* 80B96268 */ void reset();
50 /* 80B9652C */ void playExpression();
51 /* 80B96618 */ void playMotion();
52 /* 80B96740 */ BOOL chkAction(ActionFn);
53 /* 80B9676C */ BOOL setAction(ActionFn);
54 /* 80B96814 */ BOOL selectAction();
55 /* 80B968E0 */ void doNormalAction(BOOL);
56 /* 80B969F4 */ BOOL doEvent();
57 /* 80B96DF0 */ BOOL setSkipZev(int, int);
58 /* 80B96E7C */ void setLookMode(int);
59 /* 80B96EA0 */ void lookat();
60 /* 80B97128 */ void setExpressionTalkAfter();
61 /* 80B97160 */ void lightReady();
62 /* 80B971BC */ void setLightPos();
63 /* 80B9723C */ void lightPowerCalc(int);
64 /* 80B972EC */ void lightColorProc();
65 /* 80B974BC */ BOOL ECut_helpPrince(int);
66 /* 80B97B78 */ BOOL ECut_comeHere(int);
67 /* 80B97D7C */ BOOL ECut_restoreLink(int);
68 /* 80B97EB4 */ BOOL ECut_clothesGet(int);
69 /* 80B98540 */ BOOL ECut_getAfter(int);
70 /* 80B9877C */ BOOL ECut_sealRelease(int);
71 /* 80B98ACC */ BOOL ECut_srSkip(int);
72 /* 80B98C34 */ void pullbackPlayer(f32);
73 /* 80B98D04 */ BOOL wait(void*);
74 /* 80B98F84 */ BOOL comeHere(void*);
75 /* 80B998BC */ BOOL comeHere2(void*);
76 /* 80B9A0EC */ BOOL talk(void*);
77 /* 80B9A29C */ BOOL test(void*);
78 /* 80B9A380 */ void himoCalc();
79 /* 80B9AF7C */ void adjustShapeAngle() {}
80
81private:
87 /* 0x0C90 */ daNpcF_Path_c mPath;
88 /* 0x12C0 */ u8 field_0x12c0[4];
89 /* 0x12C4 */ dCcD_Cyl mCcCyl;
91 /* 0x140C */ ActionFn mpActionFn;
93 /* 0x1428 */ u8 field_0x1428[8];
94 /* 0x1430 */ u32 mItemID;
95 /* 0x1434 */ int field_0x1434;
96 /* 0x1438 */ int field_0x1438;
97 /* 0x143C */ int field_0x143c;
98 /* 0x1440 */ int field_0x1440;
99 /* 0x1444 */ int mFlowID;
100 /* 0x1448 */ s16 mLookMode;
101 /* 0x144A */ u16 mMode;
102 /* 0x144C */ u8 mType;
103 /* 0x144D */ bool mIsLeading;
104 /* 0x144E */ u8 mDemoMode;
105 /* 0x144F */ bool mIsMoving;
106 /* 0x1450 */ f32 mSpeed;
107 /* 0x1454 */ u8 mSwitch1;
108 /* 0x1455 */ u8 mSwitch2;
109 /* 0x1456 */ u8 mSwitch3;
110 /* 0x1458 */ csXyz mMoveAngle;
111 /* 0x1460 */ int mModulationParam;
112 /* 0x1464 */ f32 mModulationOffset;
114 /* 0x1488 */ f32 mAllcolRatio;
115 /* 0x148C */ int mLightEffectFrame;
116 /* 0x1490 */ bool mUseLightEffect;
117 /* 0x1491 */ bool mClothesObtained;
121 /* 0x14A0 */ cXyz mLimbCalcPos;
122 /* 0x14AC */ cXyz mLimbCalcRelPos;
123 /* 0x14B8 */ csXyz mLimbAngle;
124 /* 0x14C0 */ BOOL mMusicSet;
125 /* 0x14C4 */ bool mSealReleased;
126
127 static char* mEvtCutNameList[8];
128 static EventFn mEvtCutList[8];
129
131 /* 0x0 */ ANM_NONE,
132 /* 0x1 */ ANM_F_TALK_A,
133 /* 0x2 */ ANM_WAIT_GT_A,
134 /* 0x3 */ ANM_LEAD,
135 /* 0x4 */ ANM_COMEON,
136 };
137
139 /* 0x0 */ EXPR_TALK_A,
140 /* 0x1 */ EXPR_NONE,
141 };
142
143 enum Motion {
144 /* 0x0 */ MOT_WAIT_GT_A,
145 /* 0x1 */ MOT_COMEON,
146 /* 0x2 */ MOT_LEAD,
147 };
148
149 enum DemoMode {
150 /* 0x1 */ DEMO_WAIT = 1,
151 /* 0x2 */ DEMO_COME_HERE,
153 };
154
155 enum Event {
156 /* 0x0 */ EVT_NONE,
158 /* 0x2 */ EVT_COME_HERE,
161 /* 0x5 */ EVT_GET_AFTER,
163 /* 0x7 */ EVT_SR_SKIP,
164 };
165};
166
167STATIC_ASSERT(sizeof(daNpc_zrZ_c) == 0x14c8);
168
170public:
171 struct param {
172 /* 0x00 */ f32 mAttnOffsetY;
173 /* 0x04 */ f32 mGravity;
174 /* 0x08 */ f32 mScale;
175 /* 0x0C */ f32 mShadowDepth;
176 /* 0x10 */ f32 mCcWeight;
177 /* 0x14 */ f32 mCylH;
178 /* 0x18 */ f32 mWallH;
179 /* 0x1C */ f32 mWallR;
180 /* 0x20 */ f32 mBodyUpAngle;
181 /* 0x24 */ f32 mBodyDownAngle;
182 /* 0x28 */ f32 mBodyLeftAngle;
184 /* 0x30 */ f32 mHeadUpAngle;
185 /* 0x34 */ f32 mHeadDownAngle;
186 /* 0x38 */ f32 mHeadLeftAngle;
188 /* 0x40 */ f32 mNeckAngleScl;
189 /* 0x44 */ f32 mMorfFrames;
190 /* 0x48 */ s16 mSpeakDistIdx;
191 /* 0x4A */ s16 mSpeakAngleIdx;
192 /* 0x4C */ s16 mTalkDistIdx;
193 /* 0x4E */ s16 mTalkAngleIdx;
194 /* 0x50 */ f32 mAttnFovY;
195 /* 0x54 */ f32 mAttnRadius;
196 /* 0x58 */ f32 mAttnUpperY;
197 /* 0x5C */ f32 mAttnLowerY;
198 /* 0x60 */ s16 field_0x60;
199 /* 0x62 */ s16 mDamageTimer;
201 /* 0x66 */ s16 mTestMotion;
202 /* 0x68 */ s16 mTestLookMode;
203 /* 0x6A */ bool mTest;
204 /* 0x6C */ f32 field_0x6c;
205 /* 0x70 */ f32 mFollowDst;
206 /* 0x74 */ f32 mRestoreDst;
207 /* 0x78 */ f32 mMaxSpeed;
208 /* 0x7C */ f32 mClothesGetDst;
209 /* 0x80 */ f32 field_0x80;
210 };
211
212 /* 80B9AF80 */ virtual ~daNpc_zrZ_Param_c() {}
213
214 static param const m;
215};
216
218
219#endif /* D_A_NPC_ZRZ_H */
T cLib_calcTimer(T *value)
Definition c_lib.h:74
cPhs__Step
Definition c_phase.h:8
Zora Gravestone.
Definition d_a_obj_grave_stone.h:16
Definition d_a_npc.h:756
Definition d_a_npc.h:1099
Definition d_a_npc.h:1017
Definition d_a_npc.h:1055
Definition d_a_npc.h:772
Definition d_a_npc_zrz.h:169
virtual ~daNpc_zrZ_Param_c()
Definition d_a_npc_zrz.h:212
static param const m
Definition d_a_npc_zrz.h:124
Rutela.
Definition d_a_npc_zrz.h:17
void drawOtherMdls()
Definition d_a_npc_zrz.cpp:1001
void setAttnPos()
Definition d_a_npc_zrz.cpp:735
BOOL talk(void *)
Definition d_a_npc_zrz.cpp:2487
void lightPowerCalc(int)
Definition d_a_npc_zrz.cpp:1405
dCcD_Cyl mCcCyl
Definition d_a_npc_zrz.h:89
BOOL ctrlBtk()
Definition d_a_npc_zrz.cpp:707
bool mIsMoving
Definition d_a_npc_zrz.h:105
void lightReady()
Definition d_a_npc_zrz.cpp:1382
csXyz mLimbAngle
Definition d_a_npc_zrz.h:123
u8 getDemoMode()
Definition d_a_npc_zrz.h:47
u8 getPathNoFromParam()
Definition d_a_npc_zrz.h:46
void adjustShapeAngle()
Definition d_a_npc_zrz.h:79
void setMtx()
Definition d_a_npc_zrz.cpp:811
bool setExpressionAnm(int, bool)
Definition d_a_npc_zrz.cpp:831
void setExpression(int, f32)
Definition d_a_npc_zrz.cpp:919
u8 mSwitch1
Definition d_a_npc_zrz.h:107
BOOL drawDbgInfo()
Definition d_a_npc_zrz.cpp:996
cXyz mLimbCalcRelPos
Definition d_a_npc_zrz.h:122
BOOL(daNpc_zrZ_c::* EventFn)(int)
Definition d_a_npc_zrz.h:20
u8 field_0x1428[8]
Definition d_a_npc_zrz.h:93
u8 mDemoMode
Definition d_a_npc_zrz.h:104
~daNpc_zrZ_c()
Definition d_a_npc_zrz.cpp:293
bool mSealReleased
Definition d_a_npc_zrz.h:125
request_of_phase_process_class mPhase[2]
Definition d_a_npc_zrz.h:92
mDoExt_invisibleModel mInvisibleModel
Definition d_a_npc_zrz.h:84
DemoMode
Definition d_a_npc_zrz.h:149
@ DEMO_WAIT
Definition d_a_npc_zrz.h:150
@ DEMO_COME_HERE_2
Definition d_a_npc_zrz.h:152
@ DEMO_COME_HERE
Definition d_a_npc_zrz.h:151
bool setMotionAnm(int, f32)
Definition d_a_npc_zrz.cpp:929
int draw(BOOL, BOOL, f32, _GXColorS10 *, BOOL)
Definition d_a_npc_zrz.cpp:438
int CreateHeap()
Definition d_a_npc_zrz.cpp:366
BOOL selectAction()
Definition d_a_npc_zrz.cpp:1150
bool setExpressionBtp(int)
Definition d_a_npc_zrz.cpp:877
void himoCalc()
Definition d_a_npc_zrz.cpp:2564
f32 mSpeed
Definition d_a_npc_zrz.h:106
static int ctrlJointCallBack(J3DJoint *, int)
Definition d_a_npc_zrz.cpp:593
int field_0x1438
Definition d_a_npc_zrz.h:96
int field_0x143c
Definition d_a_npc_zrz.h:97
f32 mAllcolRatio
Definition d_a_npc_zrz.h:114
cPhs__Step create()
Definition d_a_npc_zrz.cpp:304
BOOL(daNpc_zrZ_c::* ActionFn)(void *)
Definition d_a_npc_zrz.h:19
BOOL ECut_helpPrince(int)
Definition d_a_npc_zrz.cpp:1458
BOOL ECut_srSkip(int)
Definition d_a_npc_zrz.cpp:2179
int field_0x1440
Definition d_a_npc_zrz.h:98
daNpc_zrZ_c()
Definition d_a_npc_zrz.cpp:288
Event
Definition d_a_npc_zrz.h:155
@ EVT_RESTORE_LINK
Definition d_a_npc_zrz.h:159
@ EVT_NONE
Definition d_a_npc_zrz.h:156
@ EVT_COME_HERE
Definition d_a_npc_zrz.h:158
@ EVT_CLOTHES_GET
Definition d_a_npc_zrz.h:160
@ EVT_GET_AFTER
Definition d_a_npc_zrz.h:161
@ EVT_SEAL_RELEASE
Definition d_a_npc_zrz.h:162
@ EVT_HELP_PRINCE
Definition d_a_npc_zrz.h:157
@ EVT_SR_SKIP
Definition d_a_npc_zrz.h:163
void lightColorProc()
Definition d_a_npc_zrz.cpp:1417
u8 mSwitch3
Definition d_a_npc_zrz.h:109
BOOL comeHere2(void *)
Definition d_a_npc_zrz.cpp:2386
void setParam()
Definition d_a_npc_zrz.cpp:628
void playMotion()
Definition d_a_npc_zrz.cpp:1112
static EventFn mEvtCutList[8]
Definition d_a_npc_zrz.h:275
cXyz mLimbCalcPos
Definition d_a_npc_zrz.h:121
LIGHT_INFLUENCE mLight
Definition d_a_npc_zrz.h:113
BOOL mMusicSet
Definition d_a_npc_zrz.h:124
int Delete()
Definition d_a_npc_zrz.cpp:416
u8 field_0x12c0[4]
Definition d_a_npc_zrz.h:88
daNpcF_ActorMngr_c mActorMngr[2]
Definition d_a_npc_zrz.h:86
u32 mItemID
Definition d_a_npc_zrz.h:94
static int createHeapCallBack(fopAc_ac_c *)
Definition d_a_npc_zrz.cpp:587
void reset()
Definition d_a_npc_zrz.cpp:1032
bool mUseLightEffect
Definition d_a_npc_zrz.h:116
int mModulationParam
Definition d_a_npc_zrz.h:111
int mLightEffectFrame
Definition d_a_npc_zrz.h:115
void setExpressionTalkAfter()
Definition d_a_npc_zrz.cpp:1377
BOOL ECut_clothesGet(int)
Definition d_a_npc_zrz.cpp:1815
u16 mMode
Definition d_a_npc_zrz.h:101
u8 mType
Definition d_a_npc_zrz.h:102
BOOL isDelete()
Definition d_a_npc_zrz.cpp:1019
s16 mLookMode
Definition d_a_npc_zrz.h:100
void pullbackPlayer(f32)
Definition d_a_npc_zrz.cpp:2210
BOOL setAction(ActionFn)
Definition d_a_npc_zrz.cpp:1136
ActionFn mpNextActionFn
Definition d_a_npc_zrz.h:90
u8 mSwitch2
Definition d_a_npc_zrz.h:108
csXyz mMoveAngle
Definition d_a_npc_zrz.h:110
bool mIsLeading
Definition d_a_npc_zrz.h:103
int Execute()
Definition d_a_npc_zrz.cpp:422
int field_0x1434
Definition d_a_npc_zrz.h:95
daNpcF_Path_c mPath
Definition d_a_npc_zrz.h:87
BOOL ECut_restoreLink(int)
Definition d_a_npc_zrz.cpp:1773
daGraveStone_c * mpGravestoneActor
Definition d_a_npc_zrz.h:118
Expression
Definition d_a_npc_zrz.h:138
@ EXPR_TALK_A
Definition d_a_npc_zrz.h:139
@ EXPR_NONE
Definition d_a_npc_zrz.h:140
BOOL comeHere(void *)
Definition d_a_npc_zrz.cpp:2290
daObjZraRock_c * mpRockActor
Definition d_a_npc_zrz.h:120
void setMotion(int, f32, int)
Definition d_a_npc_zrz.cpp:983
BOOL doEvent()
Definition d_a_npc_zrz.cpp:1199
Z2Creature mCreatureSound
Definition d_a_npc_zrz.h:82
u8 getTypeFromParam()
Definition d_a_npc_zrz.cpp:1007
BOOL ECut_sealRelease(int)
Definition d_a_npc_zrz.cpp:2095
int mFlowID
Definition d_a_npc_zrz.h:99
BOOL ECut_getAfter(int)
Definition d_a_npc_zrz.cpp:2022
BOOL setSkipZev(int, int)
Definition d_a_npc_zrz.cpp:1308
BOOL ECut_comeHere(int)
Definition d_a_npc_zrz.cpp:1717
void lookat()
Definition d_a_npc_zrz.cpp:1324
BOOL main()
Definition d_a_npc_zrz.cpp:664
BOOL wait(void *)
Definition d_a_npc_zrz.cpp:2221
daNpcF_MatAnm_c * mpMatAnm
Definition d_a_npc_zrz.h:83
ActionFn mpActionFn
Definition d_a_npc_zrz.h:91
BOOL chkAction(ActionFn)
Definition d_a_npc_zrz.cpp:1130
void playExpression()
Definition d_a_npc_zrz.cpp:1097
void setLookMode(int)
Definition d_a_npc_zrz.cpp:1317
void setLightPos()
Definition d_a_npc_zrz.cpp:1394
BOOL test(void *)
Definition d_a_npc_zrz.cpp:2538
f32 mModulationOffset
Definition d_a_npc_zrz.h:112
int Draw()
Definition d_a_npc_zrz.cpp:427
void doNormalAction(BOOL)
Definition d_a_npc_zrz.cpp:1171
Motion
Definition d_a_npc_zrz.h:143
@ MOT_WAIT_GT_A
Definition d_a_npc_zrz.h:144
@ MOT_LEAD
Definition d_a_npc_zrz.h:146
@ MOT_COMEON
Definition d_a_npc_zrz.h:145
Animation
Definition d_a_npc_zrz.h:130
@ ANM_NONE
Definition d_a_npc_zrz.h:131
@ ANM_LEAD
Definition d_a_npc_zrz.h:134
@ ANM_F_TALK_A
Definition d_a_npc_zrz.h:132
@ ANM_WAIT_GT_A
Definition d_a_npc_zrz.h:133
@ ANM_COMEON
Definition d_a_npc_zrz.h:135
daNpcF_Lookat_c mLookat
Definition d_a_npc_zrz.h:85
fopAc_ac_c * mpClothActor
Definition d_a_npc_zrz.h:119
static char * mEvtCutNameList[8]
Definition d_a_npc_zrz.h:263
int ctrlJoint(J3DJoint *, J3DModel *)
Definition d_a_npc_zrz.cpp:518
bool mClothesObtained
Definition d_a_npc_zrz.h:117
Zora Rock.
Definition d_a_obj_zra_rock.h:16
STATIC_ASSERT(sizeof(daNpc_zrZ_c)==0x14c8)
u32 fopAcM_GetParam(const void *pActor)
Definition f_op_actor_mng.h:224
Definition d_a_hozelda.cpp:239
Definition d_a_ep.cpp:155
Definition d_a_ep.cpp:149
Definition d_a_hozelda.cpp:163
Definition d_a_obj_sekizoa.cpp:191
Definition d_a_hozelda.cpp:20
Definition d_a_ep.cpp:66
Definition d_a_npc_fguard.cpp:86
Definition d_a_npc_zrz.h:171
f32 mHeadUpAngle
Definition d_a_npc_zrz.h:184
s16 mTalkAngleIdx
Definition d_a_npc_zrz.h:193
s16 mTestMotion
Definition d_a_npc_zrz.h:201
f32 mWallH
Definition d_a_npc_zrz.h:178
f32 field_0x6c
Definition d_a_npc_zrz.h:204
s16 mSpeakDistIdx
Definition d_a_npc_zrz.h:190
f32 mMaxSpeed
Definition d_a_npc_zrz.h:207
f32 mScale
Definition d_a_npc_zrz.h:174
f32 field_0x80
Definition d_a_npc_zrz.h:209
s16 mSpeakAngleIdx
Definition d_a_npc_zrz.h:191
s16 field_0x60
Definition d_a_npc_zrz.h:198
f32 mCylH
Definition d_a_npc_zrz.h:177
s16 mTalkDistIdx
Definition d_a_npc_zrz.h:192
f32 mAttnOffsetY
Definition d_a_npc_zrz.h:172
f32 mHeadDownAngle
Definition d_a_npc_zrz.h:185
f32 mGravity
Definition d_a_npc_zrz.h:173
f32 mFollowDst
Definition d_a_npc_zrz.h:205
f32 mAttnFovY
Definition d_a_npc_zrz.h:194
s16 mTestLookMode
Definition d_a_npc_zrz.h:202
f32 mBodyRightAngle
Definition d_a_npc_zrz.h:183
f32 mBodyUpAngle
Definition d_a_npc_zrz.h:180
f32 mAttnLowerY
Definition d_a_npc_zrz.h:197
s16 mDamageTimer
Definition d_a_npc_zrz.h:199
f32 mShadowDepth
Definition d_a_npc_zrz.h:175
bool mTest
Definition d_a_npc_zrz.h:203
f32 mBodyDownAngle
Definition d_a_npc_zrz.h:181
s16 mTestExpression
Definition d_a_npc_zrz.h:200
f32 mMorfFrames
Definition d_a_npc_zrz.h:189
f32 mWallR
Definition d_a_npc_zrz.h:179
f32 mRestoreDst
Definition d_a_npc_zrz.h:206
f32 mHeadRightAngle
Definition d_a_npc_zrz.h:187
f32 mAttnRadius
Definition d_a_npc_zrz.h:195
f32 mNeckAngleScl
Definition d_a_npc_zrz.h:188
f32 mAttnUpperY
Definition d_a_npc_zrz.h:196
f32 mHeadLeftAngle
Definition d_a_npc_zrz.h:186
f32 mBodyLeftAngle
Definition d_a_npc_zrz.h:182
f32 mCcWeight
Definition d_a_npc_zrz.h:176
f32 mClothesGetDst
Definition d_a_npc_zrz.h:208
Definition d_a_ep.cpp:19
Definition d_a_obj_sekizoa.cpp:38
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