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
8 /* 0x8C */ f32 start_distance; // 走りはじめ距離 - Start Distance
9 /* 0x90 */ f32 follow_distance; // 追従距離 - Follow Distance
10 /* 0x94 */ f32 run_speed; // 走る速度 - Run Speed
11 /* 0x98 */ s16 shy_walk_time; // いじけ歩き時間 - Shy Walk Time
12 /* 0x9A */ s16 sulk_time; // いじけ時間 - Sulk Time
13 /* 0x9C */ f32 yeah_yeah; // ハイハイ - Yeah Yeah (Likely a sarcastic connotation)
14};
15
17public:
19
20 static daNpc_Kolin_HIOParam const m;
21};
22
23#if DEBUG
34
35#define NPC_KOLIN_HIO_CLASS daNpc_Kolin_HIO_c
36#else
37#define NPC_KOLIN_HIO_CLASS daNpc_Kolin_Param_c
38#endif
39
48class daNpc_Kolin_c : public daNpcT_c {
49public:
50 typedef int (daNpc_Kolin_c::*cutFunc)(int);
51 typedef int (daNpc_Kolin_c::*actionFunc)(void*);
52
55 int CreateHeap();
56 int Delete();
57 int Execute();
58 int Draw();
59 static int createHeapCallBack(fopAc_ac_c*);
60 static int ctrlJointCallBack(J3DJoint*, int);
61 u8 getType();
62 BOOL isDelete();
63 void reset();
64 void srchActors();
65 int selectAction();
68 void calcFollowSpeedAndAngle(fopAc_ac_c*, int, int);
69 void followPlayer(int);
70 void lookup(u8);
71 int cutNoRide(int);
72 int cutHail(int);
73 int cutGiveMeWoodSwd(int);
74 int cutGetWoodSwd(int);
79 int cutClothTry(int);
80 int cutThankYou(int);
81 int wait(void*);
82 int timidWalk(void*);
83 int follow(void*);
84 int clothWait(void*);
85 int talk(void*);
86 int test(void*);
88 daNpcT_faceMotionAnmData_c const* i_faceMotionAnmData,
89 daNpcT_motionAnmData_c const* i_motionAnmData,
90 daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
91 int i_faceMotionStepNum,
92 daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData,
93 int i_motionStepNum,
94 daNpcT_evtData_c const* i_evtData,
95 char** i_arcNames)
96 : daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
97 i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
98 i_arcNames) {}
99 virtual int checkChangeJoint(int i_joint) { return i_joint == 4; }
100 virtual int checkRemoveJoint(int i_joint) { return i_joint == 8; }
101 virtual s32 getBackboneJointNo() { return 1; }
102 virtual s32 getNeckJointNo() { return 3; }
103 virtual s32 getHeadJointNo() { return 4; }
104 virtual s32 getFootLJointNo() { return 22; }
105 virtual s32 getFootRJointNo() { return 25; }
106 virtual u16 getEyeballMaterialNo() { return 2; }
107 virtual void afterJntAnm(int);
108 virtual void setParam();
109 virtual BOOL checkChangeEvt();
110 virtual BOOL evtTalk();
111 virtual BOOL evtCutProc();
112 virtual void setAfterTalkMotion();
113 virtual void action();
114 virtual void beforeMove();
115 virtual void setAttnPos();
116 virtual void setCollision();
117 virtual int drawDbgInfo();
118 virtual void drawOtherMdl();
119 virtual void changeAnm(int*, int*);
120 virtual void changeBck(int*, int*);
121
122 static char* mCutNameList[11];
123 static cutFunc mCutList[11];
124
126 u16 nodeNo = home.angle.x;
127 u32 rv;
128 if (nodeNo == 0xffff) {
129 rv = -1;
130 } else {
131 rv = nodeNo;
132 }
133 return rv;
134 }
135
136 u32 getPathID() { return (fopAcM_GetParam(this) & 0xFF00) >> 8; }
137 u32 getBitSW() { return (fopAcM_GetParam(this) & 0xFF0000) >> 16; }
138
140 if (mType == 11) {
141 s16 var_r28 = (s16)(fopAcM_searchPlayerAngleY(this) - home.angle.y);
142 int var_r29 = 3;
143
144 if (var_r28 < 0) {
145 var_r29 = 2;
146 }
147
148 if (strlen(mpEvtData[var_r29].eventName) != 0) {
149 if (strlen(mpArcNames[mpEvtData[var_r29].num]) != 0) {
152 }
153
154 mEvtId = dComIfGp_getEventManager().getEventIdx(this, mpEvtData[var_r29].eventName, 0xFF);
155 fopAcM_orderOtherEventId(this, mEvtId, 0xFF, 0xFFFF, 4, 1);
156 return 1;
157 }
158 }
159
160 return 0;
161 }
162
163private:
164 /* 0x0E40 */ NPC_KOLIN_HIO_CLASS* mpHIO;
165 /* 0x0E44 */ J3DModel* mpClothModel;
166 /* 0x0E48 */ dCcD_Cyl field_0xe48;
167 /* 0x0F84 */ u8 mType;
169 /* 0x0FB0 */ daNpcT_Path_c mPath;
171 /* 0x0FE4 */ actionFunc mAction;
172 /* 0x0FF0 */ u8 field_0xff0[0xffc - 0xff0];
173 /* 0x0FFC */ int field_0xffc;
174 /* 0x1000 */ int field_0x1000;
175 /* 0x1004 */ int field_0x1004;
176 /* 0x1008 */ int field_0x1008;
177 /* 0x100C */ u8 field_0x100c[0x1010 - 0x100c];
178 /* 0x1010 */ f32 field_0x1010;
179 /* 0x1014 */ u8 field_0x1014;
180 /* 0x1015 */ u8 field_0x1015;
181 /* 0x1016 */ u8 field_0x1016;
182 /* 0x1017 */ u8 field_0x1017;
183 /* 0x1018 */ u8 field_0x1018;
184 /* 0x1019 */ u8 field_0x1019[0x101c - 0x1019];
185 /* 0x101C */ u8 field_0x101c;
186};
187
188STATIC_ASSERT(sizeof(daNpc_Kolin_c) == 0x1020);
189
190#endif /* D_A_NPC_KOLIN_H */
size_t strlen(const char *str)
Definition string.c:7
int cPhs_Step
Definition c_phase.h:8
Definition J3DJoint.h:66
Definition J3DModel.h:43
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
Definition d_a_npc.h:145
Definition d_a_npc.h:516
char ** mpArcNames
Definition d_a_npc.h:521
s16 mEvtId
Definition d_a_npc.h:598
daNpcT_evtData_c const * mpEvtData
Definition d_a_npc.h:520
Definition d_a_npc_kolin.h:24
daNpc_Kolin_HIOParam m
Definition d_a_npc_kolin.h:32
void listenPropertyEvent(const JORPropertyEvent *)
Definition d_a_npc_kolin.cpp:395
daNpc_Kolin_HIO_c()
Definition d_a_npc_kolin.cpp:391
void genMessage(JORMContext *)
Definition d_a_npc_kolin.cpp:399
Definition d_a_npc_kolin.h:16
virtual ~daNpc_Kolin_Param_c()
Definition d_a_npc_kolin.h:18
static daNpc_Kolin_HIOParam const m
Definition d_a_npc_kolin.h:338
Colin.
Definition d_a_npc_kolin.h:48
int talk(void *)
Definition d_a_npc_kolin.cpp:2178
dCcD_Cyl field_0xe48
Definition d_a_npc_kolin.h:166
int CreateHeap()
Definition d_a_npc_kolin.cpp:488
int Execute()
Definition d_a_npc_kolin.cpp:554
int field_0x1008
Definition d_a_npc_kolin.h:176
void srchActors()
Definition d_a_npc_kolin.cpp:878
virtual void setCollision()
Definition d_a_npc_kolin.cpp:1027
virtual int checkChangeJoint(int i_joint)
Definition d_a_npc_kolin.h:99
virtual int drawDbgInfo()
Definition d_a_npc_kolin.cpp:1071
daNpcT_Path_c mPath
Definition d_a_npc_kolin.h:169
int cutThankYou(int)
Definition d_a_npc_kolin.cpp:1814
BOOL orderNoRideEvt()
Definition d_a_npc_kolin.h:139
void reset()
Definition d_a_npc_kolin.cpp:699
virtual void setAfterTalkMotion()
Definition d_a_npc_kolin.cpp:859
u8 field_0xff0[0xffc - 0xff0]
Definition d_a_npc_kolin.h:172
u8 field_0x1016
Definition d_a_npc_kolin.h:181
int cutConversationAboutGoron(int)
Definition d_a_npc_kolin.cpp:1758
static cutFunc mCutList[11]
Definition d_a_npc_kolin.h:324
virtual void drawOtherMdl()
Definition d_a_npc_kolin.cpp:1075
virtual int checkRemoveJoint(int i_joint)
Definition d_a_npc_kolin.h:100
int cutHail(int)
Definition d_a_npc_kolin.cpp:1324
static char * mCutNameList[11]
Definition d_a_npc_kolin.h:310
int setAction(actionFunc)
Definition d_a_npc_kolin.cpp:1150
actionFunc mAction
Definition d_a_npc_kolin.h:171
int cutGiveMeWoodSwd(int)
Definition d_a_npc_kolin.cpp:1406
int field_0xffc
Definition d_a_npc_kolin.h:173
virtual BOOL checkChangeEvt()
Definition d_a_npc_kolin.cpp:818
int cutConversationAboutLoopHole(int)
Definition d_a_npc_kolin.cpp:1604
u32 getFlowNodeNo()
Definition d_a_npc_kolin.h:125
J3DModel * mpClothModel
Definition d_a_npc_kolin.h:165
virtual void changeBck(int *, int *)
Definition d_a_npc_kolin.cpp:1099
int cutCacaricoConversation(int)
Definition d_a_npc_kolin.cpp:1692
u8 field_0x1014
Definition d_a_npc_kolin.h:179
virtual s32 getFootLJointNo()
Definition d_a_npc_kolin.h:104
u8 mType
Definition d_a_npc_kolin.h:167
int field_0x1000
Definition d_a_npc_kolin.h:174
BOOL chkAction(actionFunc)
Definition d_a_npc_kolin.cpp:1146
virtual void changeAnm(int *, int *)
Definition d_a_npc_kolin.cpp:1092
virtual void beforeMove()
Definition d_a_npc_kolin.cpp:974
NPC_KOLIN_HIO_CLASS * mpHIO
Definition d_a_npc_kolin.h:164
actionFunc mNextAction
Definition d_a_npc_kolin.h:170
virtual void afterJntAnm(int)
Definition d_a_npc_kolin.cpp:748
daNpcT_ActorMngr_c mActorMngr[5]
Definition d_a_npc_kolin.h:168
int cutNoRide(int)
Definition d_a_npc_kolin.cpp:1285
static int ctrlJointCallBack(J3DJoint *, int)
Definition d_a_npc_kolin.cpp:572
int timidWalk(void *)
Definition d_a_npc_kolin.cpp:2005
virtual void action()
Definition d_a_npc_kolin.cpp:949
u8 field_0x101c
Definition d_a_npc_kolin.h:185
u8 field_0x1018
Definition d_a_npc_kolin.h:183
u8 field_0x1019[0x101c - 0x1019]
Definition d_a_npc_kolin.h:184
u8 field_0x1015
Definition d_a_npc_kolin.h:180
void followPlayer(int)
Definition d_a_npc_kolin.cpp:1205
virtual BOOL evtTalk()
Definition d_a_npc_kolin.cpp:924
int clothWait(void *)
Definition d_a_npc_kolin.cpp:2134
virtual u16 getEyeballMaterialNo()
Definition d_a_npc_kolin.h:106
void calcFollowSpeedAndAngle(fopAc_ac_c *, int, int)
Definition d_a_npc_kolin.cpp:1167
cPhs_Step create()
Definition d_a_npc_kolin.cpp:418
void lookup(u8)
Definition d_a_npc_kolin.cpp:1276
int Draw()
Definition d_a_npc_kolin.cpp:558
int(daNpc_Kolin_c::*) cutFunc(int)
Definition d_a_npc_kolin.h:50
int field_0x1004
Definition d_a_npc_kolin.h:175
int wait(void *)
Definition d_a_npc_kolin.cpp:1835
int test(void *)
BOOL isDelete()
Definition d_a_npc_kolin.cpp:632
static int createHeapCallBack(fopAc_ac_c *)
Definition d_a_npc_kolin.cpp:567
int Delete()
Definition d_a_npc_kolin.cpp:549
u8 field_0x1017
Definition d_a_npc_kolin.h:182
u32 getPathID()
Definition d_a_npc_kolin.h:136
virtual BOOL evtCutProc()
Definition d_a_npc_kolin.cpp:934
int follow(void *)
Definition d_a_npc_kolin.cpp:2100
int cutGetWoodSwd(int)
Definition d_a_npc_kolin.cpp:1459
u32 getBitSW()
Definition d_a_npc_kolin.h:137
virtual s32 getNeckJointNo()
Definition d_a_npc_kolin.h:102
u8 field_0x100c[0x1010 - 0x100c]
Definition d_a_npc_kolin.h:177
virtual s32 getHeadJointNo()
Definition d_a_npc_kolin.h:103
int selectAction()
Definition d_a_npc_kolin.cpp:1115
virtual void setAttnPos()
Definition d_a_npc_kolin.cpp:986
f32 field_0x1010
Definition d_a_npc_kolin.h:178
virtual s32 getBackboneJointNo()
Definition d_a_npc_kolin.h:101
int cutClothTry(int)
Definition d_a_npc_kolin.cpp:1777
~daNpc_Kolin_c()
Definition d_a_npc_kolin.cpp:404
int cutConversationAboutDeathMt(int)
Definition d_a_npc_kolin.cpp:1739
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:87
virtual s32 getFootRJointNo()
Definition d_a_npc_kolin.h:105
int(daNpc_Kolin_c::*) actionFunc(void *)
Definition d_a_npc_kolin.h:51
u8 getType()
Definition d_a_npc_kolin.cpp:583
virtual void setParam()
Definition d_a_npc_kolin.cpp:758
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
Definition m_Do_hostIO.h:26
STATIC_ASSERT(sizeof(daNpc_Kolin_c)==0x1020)
dEvent_manager_c & dComIfGp_getEventManager()
Definition d_com_inf_game.h:2634
u32 fopAcM_GetParam(const void *i_actor)
Definition f_op_actor_mng.h:204
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:734
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
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
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_kolin.h:6
daNpcT_HIOParam common
Definition d_a_npc_kolin.h:7
f32 yeah_yeah
Definition d_a_npc_kolin.h:13
f32 follow_distance
Definition d_a_npc_kolin.h:9
s16 shy_walk_time
Definition d_a_npc_kolin.h:11
f32 run_speed
Definition d_a_npc_kolin.h:10
s16 sulk_time
Definition d_a_npc_kolin.h:12
f32 start_distance
Definition d_a_npc_kolin.h:8