Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_a_npc_kolin.h
Go to the documentation of this file.
1#ifndef D_A_NPC_KOLIN_H
2#define D_A_NPC_KOLIN_H
3
4#include "d/actor/d_a_npc.h"
5#include <cstring>
6
9 /* 0x8C */ f32 start_distance; // 走りはじめ距離 - Start Distance
10 /* 0x90 */ f32 follow_distance; // 追従距離 - Follow Distance
11 /* 0x94 */ f32 run_speed; // 走る速度 - Run Speed
12 /* 0x98 */ s16 shy_walk_time; // いじけ歩き時間 - Shy Walk Time
13 /* 0x9A */ s16 sulk_time; // いじけ時間 - Sulk Time
14 /* 0x9C */ f32 yeah_yeah; // ハイハイ - Yeah Yeah (Likely a sarcastic connotation)
15};
16
18public:
20
21 static daNpc_Kolin_HIOParam const m;
22};
23
24#if DEBUG
26public:
28
29 void listenPropertyEvent(const JORPropertyEvent*);
30
31 void genMessage(JORMContext*);
32
34};
35
36#define NPC_KOLIN_HIO_CLASS daNpc_Kolin_HIO_c
37#else
38#define NPC_KOLIN_HIO_CLASS daNpc_Kolin_Param_c
39#endif
40
49class daNpc_Kolin_c : public daNpcT_c {
50public:
51 typedef int (daNpc_Kolin_c::*cutFunc)(int);
52 typedef int (daNpc_Kolin_c::*actionFunc)(void*);
53
56 int CreateHeap();
57 int Delete();
58 int Execute();
59 int Draw();
60 static int createHeapCallBack(fopAc_ac_c*);
61 static int ctrlJointCallBack(J3DJoint*, int);
62 u8 getType();
63 BOOL isDelete();
64 void reset();
65 void srchActors();
66 int selectAction();
69 void calcFollowSpeedAndAngle(fopAc_ac_c*, int, int);
70 void followPlayer(int);
71 void lookup(u8);
72 int cutNoRide(int);
73 int cutHail(int);
74 int cutGiveMeWoodSwd(int);
75 int cutGetWoodSwd(int);
80 int cutClothTry(int);
81 int cutThankYou(int);
82 int wait(void*);
83 int timidWalk(void*);
84 int follow(void*);
85 int clothWait(void*);
86 int talk(void*);
87 int test(void*);
89 daNpcT_faceMotionAnmData_c const* i_faceMotionAnmData,
90 daNpcT_motionAnmData_c const* i_motionAnmData,
91 daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
92 int i_faceMotionStepNum,
93 daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData,
94 int i_motionStepNum,
95 daNpcT_evtData_c const* i_evtData,
96 char** i_arcNames)
97 : daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
98 i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
99 i_arcNames) {}
100 virtual int checkChangeJoint(int i_joint) { return i_joint == 4; }
101 virtual int checkRemoveJoint(int i_joint) { return i_joint == 8; }
102 virtual s32 getBackboneJointNo() { return 1; }
103 virtual s32 getNeckJointNo() { return 3; }
104 virtual s32 getHeadJointNo() { return 4; }
105 virtual s32 getFootLJointNo() { return 22; }
106 virtual s32 getFootRJointNo() { return 25; }
107 virtual u16 getEyeballMaterialNo() { return 2; }
108 virtual void afterJntAnm(int);
109 virtual void setParam();
110 virtual BOOL checkChangeEvt();
111 virtual BOOL evtTalk();
112 virtual BOOL evtCutProc();
113 virtual void setAfterTalkMotion();
114 virtual void action();
115 virtual void beforeMove();
116 virtual void setAttnPos();
117 virtual void setCollision();
118 virtual int drawDbgInfo();
119 virtual void drawOtherMdl();
120 virtual void changeAnm(int*, int*);
121 virtual void changeBck(int*, int*);
122
123 static char* mCutNameList[11];
124 static cutFunc mCutList[11];
125
127 u16 nodeNo = home.angle.x;
128 u32 rv;
129 if (nodeNo == 0xffff) {
130 rv = -1;
131 } else {
132 rv = nodeNo;
133 }
134 return rv;
135 }
136
137 u32 getPathID() { return (fopAcM_GetParam(this) & 0xFF00) >> 8; }
138 u32 getBitSW() { return (fopAcM_GetParam(this) & 0xFF0000) >> 16; }
139
141 if (mType == 11) {
142 s16 var_r28 = (s16)(fopAcM_searchPlayerAngleY(this) - home.angle.y);
143 int var_r29 = 3;
144
145 if (var_r28 < 0) {
146 var_r29 = 2;
147 }
148
149 if (strlen(mpEvtData[var_r29].eventName) != 0) {
150 if (strlen(mpArcNames[mpEvtData[var_r29].num]) != 0) {
153 }
154
155 mEvtId = dComIfGp_getEventManager().getEventIdx(this, mpEvtData[var_r29].eventName, 0xFF);
156 fopAcM_orderOtherEventId(this, mEvtId, 0xFF, 0xFFFF, 4, 1);
157 return 1;
158 }
159 }
160
161 return 0;
162 }
163
164private:
165 /* 0x0E40 */ NPC_KOLIN_HIO_CLASS* mpHIO;
166 /* 0x0E44 */ J3DModel* mpClothModel;
167 /* 0x0E48 */ dCcD_Cyl field_0xe48;
168 /* 0x0F84 */ u8 mType;
170 /* 0x0FB0 */ daNpcT_Path_c mPath;
172 /* 0x0FE4 */ actionFunc mAction;
173 /* 0x0FF0 */ u8 field_0xff0[0xffc - 0xff0];
174 /* 0x0FFC */ int field_0xffc;
175 /* 0x1000 */ int field_0x1000;
176 /* 0x1004 */ int field_0x1004;
177 /* 0x1008 */ int field_0x1008;
178 /* 0x100C */ u8 field_0x100c[0x1010 - 0x100c];
179 /* 0x1010 */ f32 field_0x1010;
180 /* 0x1014 */ u8 field_0x1014;
181 /* 0x1015 */ u8 field_0x1015;
182 /* 0x1016 */ u8 field_0x1016;
183 /* 0x1017 */ u8 field_0x1017;
184 /* 0x1018 */ u8 field_0x1018;
185 /* 0x1019 */ u8 field_0x1019[0x101c - 0x1019];
186 /* 0x101C */ u8 field_0x101c;
187};
188
189STATIC_ASSERT(sizeof(daNpc_Kolin_c) == 0x1020);
190
191#endif /* D_A_NPC_KOLIN_H */
int cPhs_Step
Definition c_phase.h:8
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:226
void setArchiveName(char *name)
Definition f_op_actor.h:221
Definition d_a_npc.h:31
Definition d_a_npc.h:146
Definition d_a_npc.h:517
char ** mpArcNames
Definition d_a_npc.h:522
s16 mEvtId
Definition d_a_npc.h:599
daNpcT_evtData_c const * mpEvtData
Definition d_a_npc.h:521
Definition d_a_npc_kolin.h:25
daNpc_Kolin_HIOParam m
Definition d_a_npc_kolin.h:33
void listenPropertyEvent(const JORPropertyEvent *)
Definition d_a_npc_kolin.cpp:396
daNpc_Kolin_HIO_c()
Definition d_a_npc_kolin.cpp:392
void genMessage(JORMContext *)
Definition d_a_npc_kolin.cpp:400
Definition d_a_npc_kolin.h:17
virtual ~daNpc_Kolin_Param_c()
Definition d_a_npc_kolin.h:19
static daNpc_Kolin_HIOParam const m
Definition d_a_npc_kolin.h:339
Colin.
Definition d_a_npc_kolin.h:49
int talk(void *)
Definition d_a_npc_kolin.cpp:2179
dCcD_Cyl field_0xe48
Definition d_a_npc_kolin.h:167
int CreateHeap()
Definition d_a_npc_kolin.cpp:489
int Execute()
Definition d_a_npc_kolin.cpp:555
int field_0x1008
Definition d_a_npc_kolin.h:177
void srchActors()
Definition d_a_npc_kolin.cpp:879
virtual void setCollision()
Definition d_a_npc_kolin.cpp:1028
virtual int checkChangeJoint(int i_joint)
Definition d_a_npc_kolin.h:100
virtual int drawDbgInfo()
Definition d_a_npc_kolin.cpp:1072
daNpcT_Path_c mPath
Definition d_a_npc_kolin.h:170
int cutThankYou(int)
Definition d_a_npc_kolin.cpp:1815
BOOL orderNoRideEvt()
Definition d_a_npc_kolin.h:140
void reset()
Definition d_a_npc_kolin.cpp:700
virtual void setAfterTalkMotion()
Definition d_a_npc_kolin.cpp:860
u8 field_0xff0[0xffc - 0xff0]
Definition d_a_npc_kolin.h:173
u8 field_0x1016
Definition d_a_npc_kolin.h:182
int cutConversationAboutGoron(int)
Definition d_a_npc_kolin.cpp:1759
static cutFunc mCutList[11]
Definition d_a_npc_kolin.h:325
virtual void drawOtherMdl()
Definition d_a_npc_kolin.cpp:1076
virtual int checkRemoveJoint(int i_joint)
Definition d_a_npc_kolin.h:101
int cutHail(int)
Definition d_a_npc_kolin.cpp:1325
static char * mCutNameList[11]
Definition d_a_npc_kolin.h:311
int setAction(actionFunc)
Definition d_a_npc_kolin.cpp:1151
actionFunc mAction
Definition d_a_npc_kolin.h:172
int cutGiveMeWoodSwd(int)
Definition d_a_npc_kolin.cpp:1407
int field_0xffc
Definition d_a_npc_kolin.h:174
virtual BOOL checkChangeEvt()
Definition d_a_npc_kolin.cpp:819
int cutConversationAboutLoopHole(int)
Definition d_a_npc_kolin.cpp:1605
u32 getFlowNodeNo()
Definition d_a_npc_kolin.h:126
J3DModel * mpClothModel
Definition d_a_npc_kolin.h:166
virtual void changeBck(int *, int *)
Definition d_a_npc_kolin.cpp:1100
int cutCacaricoConversation(int)
Definition d_a_npc_kolin.cpp:1693
u8 field_0x1014
Definition d_a_npc_kolin.h:180
virtual s32 getFootLJointNo()
Definition d_a_npc_kolin.h:105
u8 mType
Definition d_a_npc_kolin.h:168
int field_0x1000
Definition d_a_npc_kolin.h:175
BOOL chkAction(actionFunc)
Definition d_a_npc_kolin.cpp:1147
virtual void changeAnm(int *, int *)
Definition d_a_npc_kolin.cpp:1093
virtual void beforeMove()
Definition d_a_npc_kolin.cpp:975
NPC_KOLIN_HIO_CLASS * mpHIO
Definition d_a_npc_kolin.h:165
actionFunc mNextAction
Definition d_a_npc_kolin.h:171
virtual void afterJntAnm(int)
Definition d_a_npc_kolin.cpp:749
daNpcT_ActorMngr_c mActorMngr[5]
Definition d_a_npc_kolin.h:169
int cutNoRide(int)
Definition d_a_npc_kolin.cpp:1286
static int ctrlJointCallBack(J3DJoint *, int)
Definition d_a_npc_kolin.cpp:573
int timidWalk(void *)
Definition d_a_npc_kolin.cpp:2006
virtual void action()
Definition d_a_npc_kolin.cpp:950
u8 field_0x101c
Definition d_a_npc_kolin.h:186
u8 field_0x1018
Definition d_a_npc_kolin.h:184
u8 field_0x1019[0x101c - 0x1019]
Definition d_a_npc_kolin.h:185
u8 field_0x1015
Definition d_a_npc_kolin.h:181
void followPlayer(int)
Definition d_a_npc_kolin.cpp:1206
virtual BOOL evtTalk()
Definition d_a_npc_kolin.cpp:925
int clothWait(void *)
Definition d_a_npc_kolin.cpp:2135
virtual u16 getEyeballMaterialNo()
Definition d_a_npc_kolin.h:107
void calcFollowSpeedAndAngle(fopAc_ac_c *, int, int)
Definition d_a_npc_kolin.cpp:1168
cPhs_Step create()
Definition d_a_npc_kolin.cpp:419
void lookup(u8)
Definition d_a_npc_kolin.cpp:1277
int Draw()
Definition d_a_npc_kolin.cpp:559
int(daNpc_Kolin_c::*) cutFunc(int)
Definition d_a_npc_kolin.h:51
int field_0x1004
Definition d_a_npc_kolin.h:176
int wait(void *)
Definition d_a_npc_kolin.cpp:1836
int test(void *)
BOOL isDelete()
Definition d_a_npc_kolin.cpp:633
static int createHeapCallBack(fopAc_ac_c *)
Definition d_a_npc_kolin.cpp:568
int Delete()
Definition d_a_npc_kolin.cpp:550
u8 field_0x1017
Definition d_a_npc_kolin.h:183
u32 getPathID()
Definition d_a_npc_kolin.h:137
virtual BOOL evtCutProc()
Definition d_a_npc_kolin.cpp:935
int follow(void *)
Definition d_a_npc_kolin.cpp:2101
int cutGetWoodSwd(int)
Definition d_a_npc_kolin.cpp:1460
u32 getBitSW()
Definition d_a_npc_kolin.h:138
virtual s32 getNeckJointNo()
Definition d_a_npc_kolin.h:103
u8 field_0x100c[0x1010 - 0x100c]
Definition d_a_npc_kolin.h:178
virtual s32 getHeadJointNo()
Definition d_a_npc_kolin.h:104
int selectAction()
Definition d_a_npc_kolin.cpp:1116
virtual void setAttnPos()
Definition d_a_npc_kolin.cpp:987
f32 field_0x1010
Definition d_a_npc_kolin.h:179
virtual s32 getBackboneJointNo()
Definition d_a_npc_kolin.h:102
int cutClothTry(int)
Definition d_a_npc_kolin.cpp:1778
~daNpc_Kolin_c()
Definition d_a_npc_kolin.cpp:405
int cutConversationAboutDeathMt(int)
Definition d_a_npc_kolin.cpp:1740
daNpc_Kolin_c(daNpcT_faceMotionAnmData_c const *i_faceMotionAnmData, daNpcT_motionAnmData_c const *i_motionAnmData, daNpcT_MotionSeqMngr_c::sequenceStepData_c const *i_faceMotionSequenceData, int i_faceMotionStepNum, daNpcT_MotionSeqMngr_c::sequenceStepData_c const *i_motionSequenceData, int i_motionStepNum, daNpcT_evtData_c const *i_evtData, char **i_arcNames)
Definition d_a_npc_kolin.h:88
virtual s32 getFootRJointNo()
Definition d_a_npc_kolin.h:106
int(daNpc_Kolin_c::*) actionFunc(void *)
Definition d_a_npc_kolin.h:52
u8 getType()
Definition d_a_npc_kolin.cpp:584
virtual void setParam()
Definition d_a_npc_kolin.cpp:759
Definition f_op_actor.h:271
actor_place home
Definition f_op_actor.h:290
dEvt_info_c eventInfo
Definition f_op_actor.h:279
Definition m_Do_hostIO.h:26
STATIC_ASSERT(sizeof(daNpc_Kolin_c)==0x1020)
dEvent_manager_c & dComIfGp_getEventManager()
Definition d_com_inf_game.h:2679
u32 fopAcM_GetParam(const void *i_actor)
Definition f_op_actor_mng.h:172
s32 fopAcM_orderOtherEventId(fopAc_ac_c *i_actor, s16 i_eventID, u8 i_mapToolID, u16 param_3, u16 i_priority, u16 i_flag)
s16 fopAcM_searchPlayerAngleY(const fopAc_ac_c *actor)
Definition f_op_actor_mng.h:709
s16 x
Definition c_sxyz.h:7
s16 y
Definition c_sxyz.h:7
csXyz angle
Definition f_op_actor.h:247
Definition d_a_npc.h:843
Definition d_a_npc.h:484
Definition d_a_npc.h:489
Definition d_a_npc.h:504
Definition d_a_npc_kolin.h:7
daNpcT_HIOParam common
Definition d_a_npc_kolin.h:8
f32 yeah_yeah
Definition d_a_npc_kolin.h:14
f32 follow_distance
Definition d_a_npc_kolin.h:10
s16 shy_walk_time
Definition d_a_npc_kolin.h:12
f32 run_speed
Definition d_a_npc_kolin.h:11
s16 sulk_time
Definition d_a_npc_kolin.h:13
f32 start_distance
Definition d_a_npc_kolin.h:9