Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
d_a_npc_jagar.h
Go to the documentation of this file.
1#ifndef D_A_NPC_JAGAR_H
2#define D_A_NPC_JAGAR_H
3
4#include "d/actor/d_a_npc.h"
5
16 public:
17 /* 80A1A2C4 */ virtual ~daNpc_Jagar_Param_c() {}
18
19 struct Data {
20 /* 0x00 */ f32 field_0x00; // 170.0f
21 /* 0x04 */ f32 field_0x04; // -3.0f
22 /* 0x08 */ f32 field_0x08; // 1.0f
23 /* 0x0C */ f32 field_0x0c; // 400.0f
24 /* 0x10 */ f32 field_0x10; // 255.0f
25 /* 0x14 */ f32 field_0x14; // 160.0f
26 /* 0x18 */ f32 field_0x18; // 35.0f
27 /* 0x1C */ f32 field_0x1c; // 30.0f
28 /* 0x20 */ f32 field_0x20; // 0.0f
29 /* 0x24 */ f32 field_0x24; // 0.0f
30 /* 0x28 */ f32 field_0x28; // 10.0f
31 /* 0x2C */ f32 field_0x2c; // -10.0f
32 /* 0x30 */ f32 field_0x30; // 30.0f
33 /* 0x34 */ f32 field_0x34; // -10.0f
34 /* 0x38 */ f32 field_0x38; // 45.0f
35 /* 0x3C */ f32 field_0x3c; // -45.0f
36 /* 0x40 */ f32 field_0x40; // 0.6f
37 /* 0x44 */ f32 field_0x44; // 12.0f
38 /* 0x48 */ s16 field_0x48;
39 /* 0x4A */ s16 field_0x4a;
40 /* 0x4C */ s16 field_0x4c;
41 /* 0x4E */ s16 field_0x4e;
42 /* 0x50 */ f32 field_0x50; // 110.0f
43 /* 0x54 */ f32 field_0x54; // 500.0f
44 /* 0x58 */ f32 field_0x58; // 300.0f
45 /* 0x5C */ f32 field_0x5c; // -300.0f
46 /* 0x60 */ s16 field_0x60; // 60
47 /* 0x62 */ s16 field_0x62; // 8
48 /* 0x64 */ f32 field_0x64; // 0.0f
49 /* 0x68 */ f32 field_0x68; // 0.0f
50 /* 0x6C */ f32 field_0x6c; // 4.0f
51 /* 0x70 */ f32 field_0x70; // 0.0f
52 /* 0x74 */ f32 field_0x74; // 0.0f
53 /* 0x78 */ f32 field_0x78; // 0.0f
54 /* 0x7C */ f32 field_0x7c; // 0.0f
55 /* 0x80 */ f32 field_0x80; // 0.0f
56 /* 0x84 */ f32 field_0x84; // 0.0f
57 /* 0x88 */ f32 field_0x88; // 0.0f
58 /* 0x8C */ f32 field_0x8c; // 1400.0f
59 /* 0x90 */ f32 field_0x90; // 200.0f
60 /* 0x94 */ f32 field_0x94; // -800.0f
61 /* 0x98 */ f32 field_0x98; // 16.0f
62 /* 0x9C */ f32 field_0x9c; // 1800.0f
63 };
64
65 static const Data m;
66 };
67
68class daNpc_Jagar_c : public daNpcT_c {
69public:
70 typedef int (daNpc_Jagar_c::*cutFunc)(int);
71 typedef int (daNpc_Jagar_c::*actionFunc)(void*);
72
79
80 /* 80A1470C */ ~daNpc_Jagar_c();
81 /* 80A14858 */ int create();
82 /* 80A14B20 */ int CreateHeap();
83 /* 80A14F4C */ int Delete();
84 /* 80A14F80 */ int Execute();
85 /* 80A14FA0 */ int Draw();
86 /* 80A15034 */ static int createHeapCallBack(fopAc_ac_c*);
87 /* 80A15054 */ static int ctrlJointCallBack(J3DJoint*, int);
88 /* 80A150AC */ u8 getType();
89 /* 80A150F8 */ int isDelete();
90 /* 80A15198 */ void reset();
91 /* 80A15364 */ void afterJntAnm(int);
92 /* 80A153E8 */ void setParam();
93 /* 80A155E4 */ BOOL checkChangeEvt();
94 /* 80A15714 */ void setAfterTalkMotion();
95 /* 80A157B4 */ void srchActors();
96 /* 80A158A0 */ BOOL evtTalk();
97 /* 80A15940 */ BOOL evtCutProc();
98 /* 80A15A08 */ void action();
99 /* 80A15CA4 */ void beforeMove();
100 /* 80A15D68 */ void setAttnPos();
101 /* 80A1607C */ void setCollision();
102 /* 80A161EC */ int drawDbgInfo();
103 /* 80A161F4 */ void changeBtp(int*, int*);
104 /* 80A16234 */ int selectAction();
105 /* 80A162B0 */ int chkAction(int (daNpc_Jagar_c::*)(void*));
106 /* 80A162DC */ int setAction(int (daNpc_Jagar_c::*)(void*));
107 /* 80A16384 */ int cutClimbUp(int);
108 /* 80A16544 */ int cutNeedYourHelp(int);
109 /* 80A16CD8 */ int cutAnger(int);
110 /* 80A16EFC */ int cutConversationWithBou(int);
111 /* 80A1705C */ int cutConfidentialConversation(int);
112 /* 80A173D8 */ int cutFindWolf(int);
113 /* 80A17898 */ int chkSitMotion();
114 /* 80A17924 */ int chkSitMotion2();
115 /* 80A17984 */ int chkChuMotion();
116 /* 80A179F8 */ int chkToMotion();
117 /* 80A17A2C */ int wait(void*);
118 /* 80A1856C */ int talkwithBou(void*);
119 /* 80A18B74 */ int talk(void*);
120 /* 80A1A194 */ daNpc_Jagar_c(daNpcT_faceMotionAnmData_c const* param_1, daNpcT_motionAnmData_c const* param_2,
121 daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_3, int param_4,
122 daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_5, int param_6,
123 daNpcT_evtData_c const* param_7, char** param_8) :
124 daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8)
125 {}
126 /* 80A1A274 */ s32 getEyeballMaterialNo() { return 1; }
127 /* 80A1A27C */ s32 getHeadJointNo() { return 4; }
128 /* 80A1A284 */ s32 getNeckJointNo() { return 3; }
129 /* 80A1A28C */ s32 getBackboneJointNo() { return 1; }
130 /* 80A1A294 */ BOOL checkChangeJoint(int param_1) { return param_1 == 4; }
131 /* 80A1A2A4 */ BOOL checkRemoveJoint(int param_1) { return param_1 == 8; }
132 /* 80A1A2B4 */ s32 getFootLJointNo() { return 22; }
133 /* 80A1A2BC */ s32 getFootRJointNo() { return 26; }
134
136 u16 nodeNo = home.angle.x;
137 if (nodeNo == 0xffff) {
138 return -1;
139 }
140 return nodeNo;
141 }
142
150 int chkCondition(int i_val) {
151 if (mStagger.checkStagger()) {
152 return false;
153 } else if (i_val != 0) {
154 return true;
155 } else {
156 if (mMotionSeqMngr.getNo() == 7 ||
157 mMotionSeqMngr.getNo() == 6 ||
158 mMotionSeqMngr.getNo() == 8) {
159 if (mMotionSeqMngr.getStepNo() > 0) {
160 return true;
161 }
162 } else if (mMotionSeqMngr.getNo() == 5) {
163 return true;
164 }
165 }
166 return false;
167 }
168
169 u8 getPathID() { return (fopAcM_GetParam(this) & 0xff00) >> 8; }
170
171 static char* mCutNameList[7];
172 static cutFunc mCutList[7];
173private:
174 /* 0x0E40 */ int field_0xe40;
175 /* 0x0E44 */ dCcD_Cyl mCyl1;
176 /* 0x0F80 */ u8 mType;
181 /* 0x0FEC */ int field_0xfec;
182 /* 0x0FF0 */ int field_0xff0;
183 /* 0x0FF4 */ int field_0xff4;
184 /* 0x0FF8 */ int field_0xff8;
185 /* 0x0FFC */ u8 field_0xffc[0x1000 - 0xffc];
186 /* 0x1000 */ u8 field_0x1000;
187 /* 0x1001 */ u8 field_0x1001;
188 /* 0x1002 */ u8 field_0x1002;
189 /* 0x1003 */ u8 field_0x1003;
190 /* 0x1004 */ u8 field_0x1004;
191 /* 0x1005 */ u8 field_0x1005;
192 /* 0x1008 */ int field_0x1008;
193};
194
195STATIC_ASSERT(sizeof(daNpc_Jagar_c) == 0x100c);
196
197#endif /* D_A_NPC_JAGAR_H */
Definition d_a_npc.h:24
int checkStagger()
Definition d_a_npc.h:305
int getStepNo()
Definition d_a_npc.h:82
int getNo()
Definition d_a_npc.h:80
Definition d_a_npc.h:376
Definition d_a_npc.h:422
csXyz mCurAngle
Definition d_a_npc.h:464
daNpcT_MotionSeqMngr_c mMotionSeqMngr
Definition d_a_npc.h:452
BOOL chkFindWolf(s16, int, int, f32, f32, f32, f32, BOOL)
Definition d_a_npc.cpp:2144
daNpcT_DmgStagger_c mStagger
Definition d_a_npc.h:456
Definition d_a_npc_jagar.h:15
static const Data m
Definition d_a_npc_jagar.h:180
virtual ~daNpc_Jagar_Param_c()
Definition d_a_npc_jagar.h:17
Jaggle.
Definition d_a_npc_jagar.h:68
void setAfterTalkMotion()
Definition d_a_npc_jagar.cpp:479
int(daNpc_Jagar_c::*) cutFunc(int)
Definition d_a_npc_jagar.h:70
int wait(void *)
Definition d_a_npc_jagar.cpp:1179
actionFunc field_0xfe0
Definition d_a_npc_jagar.h:180
static int createHeapCallBack(fopAc_ac_c *)
Definition d_a_npc_jagar.cpp:287
int chkCondition(int i_val)
Definition d_a_npc_jagar.h:150
void beforeMove()
Definition d_a_npc_jagar.cpp:597
actionFunc field_0xfd4
Definition d_a_npc_jagar.h:179
int setAction(int(daNpc_Jagar_c::*)(void *))
Definition d_a_npc_jagar.cpp:720
BOOL checkRemoveJoint(int param_1)
Definition d_a_npc_jagar.h:131
dCcD_Cyl mCyl1
Definition d_a_npc_jagar.h:175
u8 getPathID()
Definition d_a_npc_jagar.h:169
int cutAnger(int)
Definition d_a_npc_jagar.cpp:898
s32 getFootRJointNo()
Definition d_a_npc_jagar.h:133
int drawDbgInfo()
Definition d_a_npc_jagar.cpp:685
int chkToMotion()
Definition d_a_npc_jagar.cpp:1174
int field_0x1008
Definition d_a_npc_jagar.h:192
u8 field_0x1001
Definition d_a_npc_jagar.h:187
Type
Definition d_a_npc_jagar.h:73
@ TYPE_1
Definition d_a_npc_jagar.h:75
@ TYPE_2
Definition d_a_npc_jagar.h:76
@ TYPE_0
Definition d_a_npc_jagar.h:74
@ TYPE_3
Definition d_a_npc_jagar.h:77
int isDelete()
Definition d_a_npc_jagar.cpp:319
int cutConfidentialConversation(int)
Definition d_a_npc_jagar.cpp:969
~daNpc_Jagar_c()
Definition d_a_npc_jagar.cpp:171
void action()
Definition d_a_npc_jagar.cpp:547
int field_0xe40
Definition d_a_npc_jagar.h:174
daNpcT_Path_c field_0xfac
Definition d_a_npc_jagar.h:178
u8 field_0xffc[0x1000 - 0xffc]
Definition d_a_npc_jagar.h:185
s32 getHeadJointNo()
Definition d_a_npc_jagar.h:127
void reset()
Definition d_a_npc_jagar.cpp:338
BOOL chkFindWolf()
Definition d_a_npc_jagar.h:143
int chkAction(int(daNpc_Jagar_c::*)(void *))
Definition d_a_npc_jagar.cpp:714
int Execute()
Definition d_a_npc_jagar.cpp:272
int talk(void *)
Definition d_a_npc_jagar.cpp:1474
u8 mType
Definition d_a_npc_jagar.h:176
u8 field_0x1005
Definition d_a_npc_jagar.h:191
u8 field_0x1000
Definition d_a_npc_jagar.h:186
int Draw()
Definition d_a_npc_jagar.cpp:277
int(daNpc_Jagar_c::*) actionFunc(void *)
Definition d_a_npc_jagar.h:71
u8 getType()
Definition d_a_npc_jagar.cpp:305
int cutFindWolf(int)
Definition d_a_npc_jagar.cpp:1030
int talkwithBou(void *)
Definition d_a_npc_jagar.cpp:1389
s32 getEyeballMaterialNo()
Definition d_a_npc_jagar.h:126
u8 field_0x1004
Definition d_a_npc_jagar.h:190
void setCollision()
Definition d_a_npc_jagar.cpp:647
int getFlowNodeNo()
Definition d_a_npc_jagar.h:135
int chkSitMotion2()
Definition d_a_npc_jagar.cpp:1148
u8 field_0x1003
Definition d_a_npc_jagar.h:189
void srchActors()
Definition d_a_npc_jagar.cpp:498
int cutNeedYourHelp(int)
Definition d_a_npc_jagar.cpp:770
void setAttnPos()
Definition d_a_npc_jagar.cpp:614
static char * mCutNameList[7]
Definition d_a_npc_jagar.h:149
int field_0xff0
Definition d_a_npc_jagar.h:182
s32 getNeckJointNo()
Definition d_a_npc_jagar.h:128
s32 getFootLJointNo()
Definition d_a_npc_jagar.h:132
int field_0xff4
Definition d_a_npc_jagar.h:183
int create()
Definition d_a_npc_jagar.cpp:191
int chkSitMotion()
Definition d_a_npc_jagar.cpp:1132
int field_0xff8
Definition d_a_npc_jagar.h:184
int cutClimbUp(int)
Definition d_a_npc_jagar.cpp:734
int chkChuMotion()
Definition d_a_npc_jagar.cpp:1162
void setParam()
Definition d_a_npc_jagar.cpp:382
BOOL evtTalk()
Definition d_a_npc_jagar.cpp:523
daNpc_Jagar_c(daNpcT_faceMotionAnmData_c const *param_1, daNpcT_motionAnmData_c const *param_2, daNpcT_MotionSeqMngr_c::sequenceStepData_c const *param_3, int param_4, daNpcT_MotionSeqMngr_c::sequenceStepData_c const *param_5, int param_6, daNpcT_evtData_c const *param_7, char **param_8)
Definition d_a_npc_jagar.h:120
static int ctrlJointCallBack(J3DJoint *, int)
Definition d_a_npc_jagar.cpp:293
BOOL checkChangeJoint(int param_1)
Definition d_a_npc_jagar.h:130
int selectAction()
Definition d_a_npc_jagar.cpp:699
void afterJntAnm(int)
Definition d_a_npc_jagar.cpp:371
s32 getBackboneJointNo()
Definition d_a_npc_jagar.h:129
void changeBtp(int *, int *)
Definition d_a_npc_jagar.cpp:690
u8 field_0x1002
Definition d_a_npc_jagar.h:188
BOOL evtCutProc()
Definition d_a_npc_jagar.cpp:533
int field_0xfec
Definition d_a_npc_jagar.h:181
int cutConversationWithBou(int)
Definition d_a_npc_jagar.cpp:941
static cutFunc mCutList[7]
Definition d_a_npc_jagar.h:160
BOOL checkChangeEvt()
Definition d_a_npc_jagar.cpp:447
int Delete()
Definition d_a_npc_jagar.cpp:265
daNpcT_ActorMngr_c mActorMngr[5]
Definition d_a_npc_jagar.h:177
int CreateHeap()
Definition d_a_npc_jagar.cpp:236
u8 daNpcT_getDistTableIdx(int param_0, int param_1)
Definition d_a_npc.cpp:2658
STATIC_ASSERT(sizeof(daNpc_Jagar_c)==0x100c)
u32 fopAcM_GetParam(const void *i_actor)
Definition f_op_actor_mng.h:186
Definition d_a_hozelda.cpp:239
s16 x
Definition c_sxyz.h:7
s16 y
Definition c_sxyz.h:7
csXyz angle
Definition f_op_actor.h:172
Definition d_a_npc_fguard.cpp:86
Definition d_a_npc.h:323
Definition d_a_npc.h:328
Definition d_a_npc.h:343
Definition d_a_npc_jagar.h:19
f32 field_0x94
Definition d_a_npc_jagar.h:60
s16 field_0x48
Definition d_a_npc_jagar.h:38
f32 field_0x74
Definition d_a_npc_jagar.h:52
f32 field_0x70
Definition d_a_npc_jagar.h:51
f32 field_0x30
Definition d_a_npc_jagar.h:32
f32 field_0x7c
Definition d_a_npc_jagar.h:54
f32 field_0x24
Definition d_a_npc_jagar.h:29
f32 field_0x0c
Definition d_a_npc_jagar.h:23
f32 field_0x14
Definition d_a_npc_jagar.h:25
f32 field_0x3c
Definition d_a_npc_jagar.h:35
f32 field_0x68
Definition d_a_npc_jagar.h:49
f32 field_0x40
Definition d_a_npc_jagar.h:36
f32 field_0x78
Definition d_a_npc_jagar.h:53
f32 field_0x54
Definition d_a_npc_jagar.h:43
f32 field_0x18
Definition d_a_npc_jagar.h:26
f32 field_0x28
Definition d_a_npc_jagar.h:30
f32 field_0x90
Definition d_a_npc_jagar.h:59
s16 field_0x62
Definition d_a_npc_jagar.h:47
f32 field_0x04
Definition d_a_npc_jagar.h:21
f32 field_0x64
Definition d_a_npc_jagar.h:48
f32 field_0x00
Definition d_a_npc_jagar.h:20
f32 field_0x10
Definition d_a_npc_jagar.h:24
f32 field_0x2c
Definition d_a_npc_jagar.h:31
f32 field_0x20
Definition d_a_npc_jagar.h:28
f32 field_0x84
Definition d_a_npc_jagar.h:56
f32 field_0x88
Definition d_a_npc_jagar.h:57
f32 field_0x34
Definition d_a_npc_jagar.h:33
f32 field_0x44
Definition d_a_npc_jagar.h:37
f32 field_0x9c
Definition d_a_npc_jagar.h:62
f32 field_0x8c
Definition d_a_npc_jagar.h:58
f32 field_0x6c
Definition d_a_npc_jagar.h:50
f32 field_0x1c
Definition d_a_npc_jagar.h:27
s16 field_0x4e
Definition d_a_npc_jagar.h:41
f32 field_0x98
Definition d_a_npc_jagar.h:61
f32 field_0x38
Definition d_a_npc_jagar.h:34
f32 field_0x58
Definition d_a_npc_jagar.h:44
s16 field_0x60
Definition d_a_npc_jagar.h:46
s16 field_0x4a
Definition d_a_npc_jagar.h:39
f32 field_0x5c
Definition d_a_npc_jagar.h:45
f32 field_0x80
Definition d_a_npc_jagar.h:55
f32 field_0x50
Definition d_a_npc_jagar.h:42
s16 field_0x4c
Definition d_a_npc_jagar.h:40
f32 field_0x08
Definition d_a_npc_jagar.h:22
Definition d_a_hozelda.cpp:74
actor_place home
Definition f_op_actor.h:219
int BOOL
Definition types.h:30
signed short int s16
Definition types.h:6
float f32
Definition types.h:22
unsigned short int u16
Definition types.h:7
signed long s32
Definition types.h:8
unsigned char u8
Definition types.h:5