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
8 /* 0x8C */ f32 field_0x8c; // 16.0f
9 /* 0x90 */ f32 field_0x90; // 1000.0f
10 /* 0x94 */ f32 field_0x94; // 500.0f
11 /* 0x98 */ f32 field_0x98; // -500.0f
12};
13
15public:
16 virtual ~daNpc_Bou_Param_c() {}
17
18 static const daNpc_Bou_HIOParam m;
19 };
20
21#if DEBUG
23public:
25 virtual ~daNpc_Bou_HIO_c() {}
26
28
30
32};
33#define NPC_BOU_HIO_CLASS daNpc_Bou_HIO_c
34#else
35#define NPC_BOU_HIO_CLASS daNpc_Bou_Param_c
36#endif
37
46class daNpc_Bou_c : public daNpcT_c {
47public:
48 typedef int (daNpc_Bou_c::*cutFunc)(int);
49 typedef int (daNpc_Bou_c::*actionFunc)(void*);
50
59
61 int create();
62 int CreateHeap();
63 int Delete();
64 int Execute();
65 int Draw();
66 static int createHeapCallBack(fopAc_ac_c*);
67 static int ctrlJointCallBack(J3DJoint*, int);
68 static void* srchCow(void*, void*);
70 u8 getType();
71 int isDelete();
72 void reset();
73 void srchActors();
74 int selectAction();
75 int chkAction(int (daNpc_Bou_c::*)(void*));
76 int setAction(int (daNpc_Bou_c::*)(void*));
77 int cutWildGoat(int);
78 int cutWildGoatSuccess(int);
79 int cutWildGoatFailure(int);
80 int cutSpeakTo(int);
83 int cutFindWolf(int);
84 int cutMeetingAgain(int);
85 int wait(void*);
86 int talkwithJagar(void*);
87 int talk(void*);
89 daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_3, int param_4,
90 daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_5, int param_6,
91 daNpcT_evtData_c const* param_7, char** param_8) :
92 daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8)
93 {}
94
95 virtual int checkChangeJoint(int param_0) { return param_0 == 4; }
96 virtual int checkRemoveJoint(int param_0) { return param_0 == 8; }
97 virtual s32 getBackboneJointNo() { return 1; }
98 virtual s32 getNeckJointNo() { return 3; }
99 virtual s32 getHeadJointNo() { return 4; }
100 virtual u16 getEyeballMaterialNo() { return 1; }
101 virtual void afterJntAnm(int);
102 virtual void setParam();
103 virtual BOOL checkChangeEvt();
104 virtual BOOL evtTalk();
105 virtual BOOL evtEndProc();
106 virtual BOOL evtCutProc();
107 virtual void setAfterTalkMotion();
108 virtual void action();
109 virtual void beforeMove();
110 virtual void setAttnPos();
111 virtual void setCollision();
112 virtual int drawDbgInfo();
113 virtual void changeAnm(int*, int*);
114
115 static char* mCutNameList[9];
116 static cutFunc mCutList[9];
117
119 u16 nodeNo = home.angle.x;
120 if (nodeNo == 0xffff) {
121 return -1;
122 }
123 return nodeNo;
124 }
125
129 mpHIO->m.common.search_distance, mpHIO->m.common.fov,
130 mpHIO->m.common.search_height, mpHIO->m.common.search_depth, 1);
131 }
132
133 int chkCondition(int i_val) {
134 if (mStagger.checkStagger()) {
135 return false;
136 } else if (i_val != 0) {
137 return true;
138 } else {
139 if (mMotionSeqMngr.getNo() == 3 ||
140 mMotionSeqMngr.getNo() == 2 ||
141 mMotionSeqMngr.getNo() == 4) {
142 if (mMotionSeqMngr.getStepNo() > 0) {
143 return true;
144 }
145 } else if (mMotionSeqMngr.getNo() == 1) {
146 return true;
147 }
148 }
149 return false;
150 }
151
153 if (mType == 4) {
154 if (current.pos.absXZ(daPy_getPlayerActorClass()->current.pos) < 1100.0f && strlen(mpEvtData[5].eventName) != 0) {
155 if (strlen(mpArcNames[mpEvtData[5].num]) != 0) {
158 }
160 mEvtId = dComIfGp_getEventManager().getEventIdx(this, mpEvtData[5].eventName, 0xFF);
161 fopAcM_orderOtherEventId(this, mEvtId, 0xFF, 0xFFFF, 4, 1);
162 return 1;
163 }
164 }
165
166 return 0;
167 }
168
169private:
170 /* 0xE40 */ NPC_BOU_HIO_CLASS* mpHIO;
171 /* 0xE44 */ dCcD_Cyl mCyl1;
172 /* 0xF80 */ u8 mType;
177 /* 0xFDC */ int field_0xfdc;
178 /* 0xFE0 */ int field_0xfe0;
179 /* 0xFE4 */ int field_0xfe4;
180 /* 0xFE8 */ u8 field_0xfe8[0xFF4 - 0xFE8];
181 /* 0xFF4 */ u8 field_0xff4;
182 /* 0xFF5 */ u8 field_0xff5[0xFF8 - 0xFF5];
183 /* 0xFF8 */ u8 field_0xff8;
184};
185
186STATIC_ASSERT(sizeof(daNpc_Bou_c) == 0xffc);
187
188
189#endif /* D_A_NPC_BOU_H */
size_t strlen(const char *str)
Definition string.c:7
Definition J3DJoint.h:66
Definition JORMContext.h:128
Definition d_cc_d.h:472
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:198
void setArchiveName(char *name)
Definition f_op_actor.h:193
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:2357
daNpcT_DmgStagger_c mStagger
Definition d_a_npc.h:550
Definition d_a_npc_bou.h:22
daNpc_Bou_HIO_c()
Definition d_a_npc_bou.cpp:173
virtual ~daNpc_Bou_HIO_c()
Definition d_a_npc_bou.h:25
daNpc_Bou_HIOParam m
Definition d_a_npc_bou.h:31
void genMessage(JORMContext *)
Definition d_a_npc_bou.cpp:181
void listenPropertyEvent(const JORPropertyEvent *)
Definition d_a_npc_bou.cpp:177
Definition d_a_npc_bou.h:14
static const daNpc_Bou_HIOParam m
Definition d_a_npc_bou.h:159
virtual ~daNpc_Bou_Param_c()
Definition d_a_npc_bou.h:16
Mayor Bo.
Definition d_a_npc_bou.h:46
BOOL chkFindWolf()
Definition d_a_npc_bou.h:126
actionFunc field_0xfd0
Definition d_a_npc_bou.h:176
virtual void changeAnm(int *, int *)
Definition d_a_npc_bou.cpp:728
static void * srchCow(void *, void *)
Definition d_a_npc_bou.cpp:314
virtual void setCollision()
Definition d_a_npc_bou.cpp:689
virtual int drawDbgInfo()
Definition d_a_npc_bou.cpp:724
int(daNpc_Bou_c::*) cutFunc(int)
Definition d_a_npc_bou.h:48
actionFunc field_0xfc4
Definition d_a_npc_bou.h:175
int getFlowNodeNo()
Definition d_a_npc_bou.h:118
virtual int checkChangeJoint(int param_0)
Definition d_a_npc_bou.h:95
int selectAction()
Definition d_a_npc_bou.cpp:746
fopAc_ac_c * getCowP()
Definition d_a_npc_bou.cpp:324
virtual s32 getHeadJointNo()
Definition d_a_npc_bou.h:99
daNpcT_Path_c field_0xf9c
Definition d_a_npc_bou.h:174
virtual void afterJntAnm(int)
Definition d_a_npc_bou.cpp:415
static cutFunc mCutList[9]
Definition d_a_npc_bou.h:133
int isDelete()
Definition d_a_npc_bou.cpp:357
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:88
virtual s32 getNeckJointNo()
Definition d_a_npc_bou.h:98
~daNpc_Bou_c()
Definition d_a_npc_bou.cpp:145
int talkwithJagar(void *)
Definition d_a_npc_bou.cpp:1529
int cutWildGoatFailure(int)
Definition d_a_npc_bou.cpp:969
int(daNpc_Bou_c::*) actionFunc(void *)
Definition d_a_npc_bou.h:49
virtual BOOL evtCutProc()
Definition d_a_npc_bou.cpp:591
int CreateHeap()
Definition d_a_npc_bou.cpp:249
int chkCondition(int i_val)
Definition d_a_npc_bou.h:133
virtual BOOL evtEndProc()
Definition d_a_npc_bou.cpp:587
static char * mCutNameList[9]
Definition d_a_npc_bou.h:121
int Delete()
Definition d_a_npc_bou.cpp:280
int talk(void *)
Definition d_a_npc_bou.cpp:1557
virtual int checkRemoveJoint(int param_0)
Definition d_a_npc_bou.h:96
int setAction(int(daNpc_Bou_c::*)(void *))
Definition d_a_npc_bou.cpp:767
virtual s32 getBackboneJointNo()
Definition d_a_npc_bou.h:97
virtual BOOL evtTalk()
Definition d_a_npc_bou.cpp:577
int cutFindWolf(int)
Definition d_a_npc_bou.cpp:1176
u8 field_0xfe8[0xFF4 - 0xFE8]
Definition d_a_npc_bou.h:180
virtual void setAttnPos()
Definition d_a_npc_bou.cpp:664
int chkAction(int(daNpc_Bou_c::*)(void *))
Definition d_a_npc_bou.cpp:763
int field_0xfe4
Definition d_a_npc_bou.h:179
void srchActors()
Definition d_a_npc_bou.cpp:546
virtual u16 getEyeballMaterialNo()
Definition d_a_npc_bou.h:100
int cutWildGoat(int)
Definition d_a_npc_bou.cpp:782
daNpcT_ActorMngr_c mActorMngr[3]
Definition d_a_npc_bou.h:173
int Draw()
Definition d_a_npc_bou.cpp:290
int cutSpeakTo(int)
Definition d_a_npc_bou.cpp:1028
Type
Definition d_a_npc_bou.h:51
@ TYPE_3
Definition d_a_npc_bou.h:55
@ TYPE_1
Definition d_a_npc_bou.h:53
@ TYPE_2
Definition d_a_npc_bou.h:54
@ TYPE_5
Definition d_a_npc_bou.h:57
@ TYPE_0
Definition d_a_npc_bou.h:52
@ TYPE_4
Definition d_a_npc_bou.h:56
u8 field_0xff4
Definition d_a_npc_bou.h:181
virtual BOOL checkChangeEvt()
Definition d_a_npc_bou.cpp:482
int create()
Definition d_a_npc_bou.cpp:186
virtual void setAfterTalkMotion()
Definition d_a_npc_bou.cpp:530
void reset()
Definition d_a_npc_bou.cpp:395
u8 getType()
Definition d_a_npc_bou.cpp:340
virtual void action()
Definition d_a_npc_bou.cpp:606
int cutConfidentialConversation(int)
Definition d_a_npc_bou.cpp:1121
static int ctrlJointCallBack(J3DJoint *, int)
Definition d_a_npc_bou.cpp:302
int wait(void *)
Definition d_a_npc_bou.cpp:1434
dCcD_Cyl mCyl1
Definition d_a_npc_bou.h:171
static int createHeapCallBack(fopAc_ac_c *)
Definition d_a_npc_bou.cpp:298
u8 field_0xff5[0xFF8 - 0xFF5]
Definition d_a_npc_bou.h:182
int cutWildGoatSuccess(int)
Definition d_a_npc_bou.cpp:919
int field_0xfdc
Definition d_a_npc_bou.h:177
int cutMeetingAgain(int)
Definition d_a_npc_bou.cpp:1268
virtual void beforeMove()
Definition d_a_npc_bou.cpp:653
int cutConversationWithBou(int)
Definition d_a_npc_bou.cpp:1084
NPC_BOU_HIO_CLASS * mpHIO
Definition d_a_npc_bou.h:170
u8 mType
Definition d_a_npc_bou.h:172
int field_0xfe0
Definition d_a_npc_bou.h:178
virtual void setParam()
Definition d_a_npc_bou.cpp:425
BOOL speakTo()
Definition d_a_npc_bou.h:152
u8 field_0xff8
Definition d_a_npc_bou.h:183
int Execute()
Definition d_a_npc_bou.cpp:286
Definition f_op_actor.h:243
actor_place home
Definition f_op_actor.h:262
dEvt_info_c eventInfo
Definition f_op_actor.h:251
actor_place current
Definition f_op_actor.h:264
Definition m_Do_hostIO.h:26
u8 daNpcT_getDistTableIdx(int param_0, int param_1)
Definition d_a_npc.cpp:2875
STATIC_ASSERT(sizeof(daNpc_Bou_c)==0xffc)
daPy_py_c * daPy_getPlayerActorClass()
Definition d_a_player.h:1258
dEvent_manager_c & dComIfGp_getEventManager()
Definition d_com_inf_game.h:2634
s32 fopAcM_orderOtherEventId(fopAc_ac_c *i_actor, s16 i_eventID, u8 i_mapToolID, u16 param_3, u16 i_priority, u16 i_flag)
int BOOL
Definition types.h:33
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
Definition JORReflexible.h:10
s16 x
Definition c_sxyz.h:7
s16 y
Definition c_sxyz.h:7
csXyz angle
Definition f_op_actor.h:219
cXyz pos
Definition f_op_actor.h:218
f32 absXZ() const
Definition c_xyz.h:140
Definition d_a_npc.h:842
Definition d_a_npc.h:483
Definition d_a_npc.h:488
Definition d_a_npc.h:503
Definition d_a_npc_bou.h:6
f32 field_0x94
Definition d_a_npc_bou.h:10
f32 field_0x98
Definition d_a_npc_bou.h:11
f32 field_0x8c
Definition d_a_npc_bou.h:8
f32 field_0x90
Definition d_a_npc_bou.h:9
daNpcT_HIOParam common
Definition d_a_npc_bou.h:7