Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_a_npc_bou.h
Go to the documentation of this file.
1#ifndef D_A_NPC_BOU_H
2#define D_A_NPC_BOU_H
3
4#include "d/actor/d_a_npc.h"
5
15 public:
16 virtual ~daNpc_Bou_Param_c() {}
17
18 struct Data {
19 /* 0x00 */ f32 field_0x00; // 255.0f
20 /* 0x04 */ f32 field_0x04; // 3.0f
21 /* 0x08 */ f32 field_0x08; // 1.0f
22 /* 0x0C */ f32 field_0x0c; // 600.0f
23 /* 0x10 */ f32 field_0x10; // 255.0f
24 /* 0x14 */ f32 field_0x14; // 200.0f
25 /* 0x18 */ f32 field_0x18; // 35.0f
26 /* 0x1C */ f32 field_0x1c; // 40.0f
27 /* 0x20 */ f32 field_0x20; // 0.0f
28 /* 0x24 */ f32 field_0x24; // 0.0f
29 /* 0x28 */ f32 field_0x28; // 10.0f
30 /* 0x2C */ f32 field_0x2c; // -10.0f
31 /* 0x30 */ f32 field_0x30; // 30.0f
32 /* 0x34 */ f32 field_0x34; // -10.0f
33 /* 0x38 */ f32 field_0x38; // 45.0f
34 /* 0x3C */ f32 field_0x3c; // -45.0f
35 /* 0x40 */ f32 field_0x40; // 0.6f
36 /* 0x44 */ f32 field_0x44; // 12.0f
37 /* 0x48 */ s16 field_0x48; // 3
38 /* 0x4a */ s16 field_0x4a; // 6
39 /* 0x4c */ s16 field_0x4c; // 5
40 /* 0x4e */ s16 field_0x4e; // 6
41 /* 0x50 */ f32 field_0x50; // 110.0f
42 /* 0x54 */ f32 field_0x54; // 500.0f
43 /* 0x58 */ f32 field_0x58; // 300.0f
44 /* 0x5c */ f32 field_0x5c; // -300.0f
45 /* 0x60 */ s16 field_0x60; // 60
46 /* 0x62 */ s16 field_0x62; // 8
47 /* 0x64 */ f32 field_0x64; // 0.0f
48 /* 0x68 */ f32 field_0x68; // 0.0f
49 /* 0x6c */ f32 field_0x6c; // 4.0f
50 /* 0x70 */ f32 field_0x70; // 0.0f
51 /* 0x74 */ f32 field_0x74; // 0.0f
52 /* 0x78 */ f32 field_0x78; // 0.0f
53 /* 0x7c */ f32 field_0x7c; // 0.0f
54 /* 0x80 */ f32 field_0x80; // 0.0f
55 /* 0x84 */ f32 field_0x84; // 0.0f
56 /* 0x88 */ f32 field_0x88; // 0.0f
57 /* 0x8c */ f32 field_0x8c; // 16.0f
58 /* 0x90 */ f32 field_0x90; // 1000.0f
59 /* 0x94 */ f32 field_0x94; // 500.0f
60 /* 0x98 */ f32 field_0x98; // -500.0f
61 };
62
63 static const Data m;
64};
65
66class daNpc_Bou_c : public daNpcT_c {
67public:
68 typedef int (daNpc_Bou_c::*cutFunc)(int);
69 typedef int (daNpc_Bou_c::*actionFunc)(void*);
70
79
81 int create();
82 int CreateHeap();
83 int Delete();
84 int Execute();
85 int Draw();
86 static int createHeapCallBack(fopAc_ac_c*);
87 static int ctrlJointCallBack(J3DJoint*, int);
88 static void* srchCow(void*, void*);
90 u8 getType();
91 int isDelete();
92 void reset();
93 void srchActors();
94 int selectAction();
95 int chkAction(int (daNpc_Bou_c::*)(void*));
96 int setAction(int (daNpc_Bou_c::*)(void*));
97 int cutWildGoat(int);
98 int cutWildGoatSuccess(int);
99 int cutWildGoatFailure(int);
100 int cutSpeakTo(int);
101 int cutConversationWithBou(int);
103 int cutFindWolf(int);
104 int cutMeetingAgain(int);
105 int wait(void*);
106 int talkwithJagar(void*);
107 int talk(void*);
109 daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_3, int param_4,
110 daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_5, int param_6,
111 daNpcT_evtData_c const* param_7, char** param_8) :
112 daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8)
113 {}
114
115 virtual int checkChangeJoint(int param_0) { return param_0 == 4; }
116 virtual int checkRemoveJoint(int param_0) { return param_0 == 8; }
117 virtual s32 getBackboneJointNo() { return 1; }
118 virtual s32 getNeckJointNo() { return 3; }
119 virtual s32 getHeadJointNo() { return 4; }
120 virtual u16 getEyeballMaterialNo() { return 1; }
121 virtual void afterJntAnm(int);
122 virtual void setParam();
123 virtual BOOL checkChangeEvt();
124 virtual BOOL evtTalk();
125 virtual BOOL evtEndProc();
126 virtual BOOL evtCutProc();
127 virtual void setAfterTalkMotion();
128 virtual void action();
129 virtual void beforeMove();
130 virtual void setAttnPos();
131 virtual void setCollision();
132 virtual int drawDbgInfo();
133 virtual void changeAnm(int*, int*);
134
135 static char* mCutNameList[9];
136 static cutFunc mCutList[9];
137
139 u16 nodeNo = home.angle.x;
140 if (nodeNo == 0xffff) {
141 return -1;
142 }
143 return nodeNo;
144 }
145
151
152 int chkCondition(int i_val) {
153 if (mStagger.checkStagger()) {
154 return false;
155 } else if (i_val != 0) {
156 return true;
157 } else {
158 if (mMotionSeqMngr.getNo() == 3 ||
159 mMotionSeqMngr.getNo() == 2 ||
160 mMotionSeqMngr.getNo() == 4) {
161 if (mMotionSeqMngr.getStepNo() > 0) {
162 return true;
163 }
164 } else if (mMotionSeqMngr.getNo() == 1) {
165 return true;
166 }
167 }
168 return false;
169 }
170
172 if (mType == 4) {
173 if (current.pos.absXZ(daPy_getPlayerActorClass()->current.pos) < 1100.0f && strlen(mpEvtData[5].eventName) != 0) {
174 u32 len = strlen(mpArcNames[mpEvtData[5].num]);
175 if (len != 0) {
178 }
179
180 mEvtId = dComIfGp_getEventManager().getEventIdx(this, mpEvtData[5].eventName, 0xFF);
181 fopAcM_orderOtherEventId(this, mEvtId, 0xFF, 0xFFFF, 4, 1);
182 return 1;
183 }
184 }
185
186 return 0;
187 }
188
189private:
190 /* 0xE40 */ int field_0xe40;
191 /* 0xE44 */ dCcD_Cyl mCyl1;
192 /* 0xF80 */ u8 mType;
197 /* 0xFDC */ int field_0xfdc;
198 /* 0xFE0 */ int field_0xfe0;
199 /* 0xFE4 */ int field_0xfe4;
200 /* 0xFE8 */ u8 field_0xfe8[0xFF4 - 0xFE8];
201 /* 0xFF4 */ u8 field_0xff4;
202 /* 0xFF5 */ u8 field_0xff5[0xFF8 - 0xFF5];
203 /* 0xFF8 */ u8 field_0xff8;
204};
205
206STATIC_ASSERT(sizeof(daNpc_Bou_c) == 0xffc);
207
208
209#endif /* D_A_NPC_BOU_H */
Definition J3DJoint.h:63
Definition d_cc_d.h:461
bool setObjectArchive(char *arcname)
Definition d_event_manager.cpp:331
s16 getEventIdx(const char *eventName, u8 mapToolID, s32 roomNo)
Definition d_event_manager.cpp:822
char * getArchiveName()
Definition f_op_actor.h:185
void setArchiveName(char *name)
Definition f_op_actor.h:180
Definition d_a_npc.h:30
int checkStagger()
Definition d_a_npc.h:462
int getStepNo()
Definition d_a_npc.h:89
int getNo()
Definition d_a_npc.h:87
Definition d_a_npc.h:145
Definition d_a_npc.h:516
char ** mpArcNames
Definition d_a_npc.h:521
csXyz mCurAngle
Definition d_a_npc.h:558
daNpcT_MotionSeqMngr_c mMotionSeqMngr
Definition d_a_npc.h:546
s16 mEvtId
Definition d_a_npc.h:598
daNpcT_evtData_c const * mpEvtData
Definition d_a_npc.h:520
BOOL chkFindWolf(s16, int, int, f32, f32, f32, f32, BOOL)
Definition d_a_npc.cpp:2377
daNpcT_DmgStagger_c mStagger
Definition d_a_npc.h:550
Definition d_a_npc_bou.h:14
virtual ~daNpc_Bou_Param_c()
Definition d_a_npc_bou.h:16
static const Data m
Definition d_a_npc_bou.h:152
Mayor Bo.
Definition d_a_npc_bou.h:66
BOOL chkFindWolf()
Definition d_a_npc_bou.h:146
actionFunc field_0xfd0
Definition d_a_npc_bou.h:196
virtual void changeAnm(int *, int *)
Definition d_a_npc_bou.cpp:695
static void * srchCow(void *, void *)
Definition d_a_npc_bou.cpp:282
virtual void setCollision()
Definition d_a_npc_bou.cpp:656
virtual int drawDbgInfo()
Definition d_a_npc_bou.cpp:691
int(daNpc_Bou_c::*) cutFunc(int)
Definition d_a_npc_bou.h:68
actionFunc field_0xfc4
Definition d_a_npc_bou.h:195
int getFlowNodeNo()
Definition d_a_npc_bou.h:138
virtual int checkChangeJoint(int param_0)
Definition d_a_npc_bou.h:115
int selectAction()
Definition d_a_npc_bou.cpp:713
fopAc_ac_c * getCowP()
Definition d_a_npc_bou.cpp:292
virtual s32 getHeadJointNo()
Definition d_a_npc_bou.h:119
daNpcT_Path_c field_0xf9c
Definition d_a_npc_bou.h:194
virtual void afterJntAnm(int)
Definition d_a_npc_bou.cpp:383
static cutFunc mCutList[9]
Definition d_a_npc_bou.h:133
int isDelete()
Definition d_a_npc_bou.cpp:325
daNpc_Bou_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_bou.h:108
virtual s32 getNeckJointNo()
Definition d_a_npc_bou.h:118
~daNpc_Bou_c()
Definition d_a_npc_bou.cpp:145
int talkwithJagar(void *)
Definition d_a_npc_bou.cpp:1496
int cutWildGoatFailure(int)
Definition d_a_npc_bou.cpp:936
int(daNpc_Bou_c::*) actionFunc(void *)
Definition d_a_npc_bou.h:69
virtual BOOL evtCutProc()
Definition d_a_npc_bou.cpp:559
int CreateHeap()
Definition d_a_npc_bou.cpp:217
int field_0xe40
Definition d_a_npc_bou.h:190
int chkCondition(int i_val)
Definition d_a_npc_bou.h:152
virtual BOOL evtEndProc()
Definition d_a_npc_bou.cpp:555
static char * mCutNameList[9]
Definition d_a_npc_bou.h:121
int Delete()
Definition d_a_npc_bou.cpp:248
int talk(void *)
Definition d_a_npc_bou.cpp:1524
virtual int checkRemoveJoint(int param_0)
Definition d_a_npc_bou.h:116
int setAction(int(daNpc_Bou_c::*)(void *))
Definition d_a_npc_bou.cpp:734
virtual s32 getBackboneJointNo()
Definition d_a_npc_bou.h:117
virtual BOOL evtTalk()
Definition d_a_npc_bou.cpp:545
int cutFindWolf(int)
Definition d_a_npc_bou.cpp:1143
u8 field_0xfe8[0xFF4 - 0xFE8]
Definition d_a_npc_bou.h:200
virtual void setAttnPos()
Definition d_a_npc_bou.cpp:632
int chkAction(int(daNpc_Bou_c::*)(void *))
Definition d_a_npc_bou.cpp:730
int field_0xfe4
Definition d_a_npc_bou.h:199
void srchActors()
Definition d_a_npc_bou.cpp:514
virtual u16 getEyeballMaterialNo()
Definition d_a_npc_bou.h:120
int cutWildGoat(int)
Definition d_a_npc_bou.cpp:749
daNpcT_ActorMngr_c mActorMngr[3]
Definition d_a_npc_bou.h:193
int Draw()
Definition d_a_npc_bou.cpp:258
int cutSpeakTo(int)
Definition d_a_npc_bou.cpp:995
Type
Definition d_a_npc_bou.h:71
@ TYPE_3
Definition d_a_npc_bou.h:75
@ TYPE_1
Definition d_a_npc_bou.h:73
@ TYPE_2
Definition d_a_npc_bou.h:74
@ TYPE_5
Definition d_a_npc_bou.h:77
@ TYPE_0
Definition d_a_npc_bou.h:72
@ TYPE_4
Definition d_a_npc_bou.h:76
u8 field_0xff4
Definition d_a_npc_bou.h:201
virtual BOOL checkChangeEvt()
Definition d_a_npc_bou.cpp:450
int create()
Definition d_a_npc_bou.cpp:160
virtual void setAfterTalkMotion()
Definition d_a_npc_bou.cpp:498
void reset()
Definition d_a_npc_bou.cpp:363
u8 getType()
Definition d_a_npc_bou.cpp:308
virtual void action()
Definition d_a_npc_bou.cpp:574
int cutConfidentialConversation(int)
Definition d_a_npc_bou.cpp:1088
static int ctrlJointCallBack(J3DJoint *, int)
Definition d_a_npc_bou.cpp:270
int wait(void *)
Definition d_a_npc_bou.cpp:1401
dCcD_Cyl mCyl1
Definition d_a_npc_bou.h:191
static int createHeapCallBack(fopAc_ac_c *)
Definition d_a_npc_bou.cpp:266
u8 field_0xff5[0xFF8 - 0xFF5]
Definition d_a_npc_bou.h:202
int cutWildGoatSuccess(int)
Definition d_a_npc_bou.cpp:886
int field_0xfdc
Definition d_a_npc_bou.h:197
int cutMeetingAgain(int)
Definition d_a_npc_bou.cpp:1235
virtual void beforeMove()
Definition d_a_npc_bou.cpp:621
int cutConversationWithBou(int)
Definition d_a_npc_bou.cpp:1051
u8 mType
Definition d_a_npc_bou.h:192
int field_0xfe0
Definition d_a_npc_bou.h:198
virtual void setParam()
Definition d_a_npc_bou.cpp:393
BOOL speakTo()
Definition d_a_npc_bou.h:171
u8 field_0xff8
Definition d_a_npc_bou.h:203
int Execute()
Definition d_a_npc_bou.cpp:254
Definition f_op_actor.h:230
actor_place home
Definition f_op_actor.h:249
dEvt_info_c eventInfo
Definition f_op_actor.h:238
actor_place current
Definition f_op_actor.h:251
u8 daNpcT_getDistTableIdx(int param_0, int param_1)
Definition d_a_npc.cpp:2895
STATIC_ASSERT(sizeof(daNpc_Bou_c)==0xffc)
daPy_py_c * daPy_getPlayerActorClass()
Definition d_a_player.h:1260
dEvent_manager_c & dComIfGp_getEventManager()
Definition d_com_inf_game.h:3589
int BOOL
Definition types.h:33
unsigned long u32
Definition types.h:12
signed short int s16
Definition types.h:9
float f32
Definition types.h:25
unsigned short int u16
Definition types.h:10
signed long s32
Definition types.h:11
unsigned char u8
Definition types.h:8
s32 fopAcM_orderOtherEventId(fopAc_ac_c *i_actor, s16 i_eventID, u8 i_mapToolID, u16 param_3, u16 i_priority, u16 i_flag)
Definition f_op_actor_mng.cpp:969
size_t strlen(const char *str)
Definition string.c:6
s16 x
Definition c_sxyz.h:7
s16 y
Definition c_sxyz.h:7
csXyz angle
Definition f_op_actor.h:206
cXyz pos
Definition f_op_actor.h:205
f32 absXZ() const
Definition c_xyz.h:139
Definition d_a_npc.h:483
Definition d_a_npc.h:488
Definition d_a_npc.h:503
Definition d_a_npc_bou.h:18
f32 field_0x44
Definition d_a_npc_bou.h:36
f32 field_0x54
Definition d_a_npc_bou.h:42
s16 field_0x4c
Definition d_a_npc_bou.h:39
f32 field_0x98
Definition d_a_npc_bou.h:60
f32 field_0x68
Definition d_a_npc_bou.h:48
f32 field_0x14
Definition d_a_npc_bou.h:24
s16 field_0x48
Definition d_a_npc_bou.h:37
f32 field_0x28
Definition d_a_npc_bou.h:29
f32 field_0x18
Definition d_a_npc_bou.h:25
s16 field_0x60
Definition d_a_npc_bou.h:45
f32 field_0x5c
Definition d_a_npc_bou.h:44
f32 field_0x94
Definition d_a_npc_bou.h:59
f32 field_0x88
Definition d_a_npc_bou.h:56
f32 field_0x50
Definition d_a_npc_bou.h:41
f32 field_0x64
Definition d_a_npc_bou.h:47
f32 field_0x8c
Definition d_a_npc_bou.h:57
f32 field_0x0c
Definition d_a_npc_bou.h:22
f32 field_0x04
Definition d_a_npc_bou.h:20
f32 field_0x6c
Definition d_a_npc_bou.h:49
f32 field_0x10
Definition d_a_npc_bou.h:23
f32 field_0x58
Definition d_a_npc_bou.h:43
f32 field_0x90
Definition d_a_npc_bou.h:58
s16 field_0x4a
Definition d_a_npc_bou.h:38
f32 field_0x00
Definition d_a_npc_bou.h:19
f32 field_0x24
Definition d_a_npc_bou.h:28
f32 field_0x30
Definition d_a_npc_bou.h:31
f32 field_0x2c
Definition d_a_npc_bou.h:30
f32 field_0x08
Definition d_a_npc_bou.h:21
f32 field_0x1c
Definition d_a_npc_bou.h:26
f32 field_0x40
Definition d_a_npc_bou.h:35
f32 field_0x20
Definition d_a_npc_bou.h:27
f32 field_0x38
Definition d_a_npc_bou.h:33
f32 field_0x70
Definition d_a_npc_bou.h:50
f32 field_0x3c
Definition d_a_npc_bou.h:34
f32 field_0x80
Definition d_a_npc_bou.h:54
s16 field_0x62
Definition d_a_npc_bou.h:46
f32 field_0x78
Definition d_a_npc_bou.h:52
f32 field_0x74
Definition d_a_npc_bou.h:51
f32 field_0x84
Definition d_a_npc_bou.h:55
f32 field_0x34
Definition d_a_npc_bou.h:32
s16 field_0x4e
Definition d_a_npc_bou.h:40
f32 field_0x7c
Definition d_a_npc_bou.h:53