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
17 /* 0x8C */ f32 start_distance; // 走りはじめ距離 - Start Distance
18 /* 0x90 */ f32 follow_distance; // 追従距離 - Follow Distance
19 /* 0x94 */ f32 run_speed; // 走る速度 - Run Speed
20 /* 0x98 */ s16 shy_walk_time; // いじけ歩き時間 - Shy Walk Time
21 /* 0x9A */ s16 sulk_time; // いじけ時間 - Sulk Time
22 /* 0x9C */ f32 yeah_yeah; // ハイハイ - Yeah Yeah (Likely a sarcastic connotation)
23};
24
26public:
28
29 static daNpc_Kolin_HIOParam const m;
30};
31
32class daNpc_Kolin_c : public daNpcT_c {
33public:
34 typedef int (daNpc_Kolin_c::*cutFunc)(int);
35 typedef int (daNpc_Kolin_c::*actionFunc)(void*);
36
39 int CreateHeap();
40 int Delete();
41 int Execute();
42 int Draw();
43 static int createHeapCallBack(fopAc_ac_c*);
44 static int ctrlJointCallBack(J3DJoint*, int);
45 u8 getType();
46 BOOL isDelete();
47 void reset();
48 void srchActors();
49 int selectAction();
52 void calcFollowSpeedAndAngle(fopAc_ac_c*, int, int);
53 void followPlayer(int);
54 void lookup(u8);
55 int cutNoRide(int);
56 int cutHail(int);
57 int cutGiveMeWoodSwd(int);
58 int cutGetWoodSwd(int);
63 int cutClothTry(int);
64 int cutThankYou(int);
65 int wait(void*);
66 int timidWalk(void*);
67 int follow(void*);
68 int clothWait(void*);
69 int talk(void*);
70 int test(void*);
72 daNpcT_faceMotionAnmData_c const* i_faceMotionAnmData,
73 daNpcT_motionAnmData_c const* i_motionAnmData,
74 daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData,
75 int i_faceMotionStepNum,
76 daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData,
77 int i_motionStepNum,
78 daNpcT_evtData_c const* i_evtData,
79 char** i_arcNames)
80 : daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData,
81 i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData,
82 i_arcNames) {}
83 virtual int checkChangeJoint(int i_joint) { return i_joint == 4; }
84 virtual int checkRemoveJoint(int i_joint) { return i_joint == 8; }
85 virtual s32 getBackboneJointNo() { return 1; }
86 virtual s32 getNeckJointNo() { return 3; }
87 virtual s32 getHeadJointNo() { return 4; }
88 virtual s32 getFootLJointNo() { return 22; }
89 virtual s32 getFootRJointNo() { return 25; }
90 virtual u16 getEyeballMaterialNo() { return 2; }
91 virtual void afterJntAnm(int);
92 virtual void setParam();
93 virtual BOOL checkChangeEvt();
94 virtual BOOL evtTalk();
95 virtual BOOL evtCutProc();
96 virtual void setAfterTalkMotion();
97 virtual void action();
98 virtual void beforeMove();
99 virtual void setAttnPos();
100 virtual void setCollision();
101 virtual int drawDbgInfo();
102 virtual void drawOtherMdl();
103 virtual void changeAnm(int*, int*);
104 virtual void changeBck(int*, int*);
105
106 static char* mCutNameList[11];
107 static cutFunc mCutList[11];
108
110 u16 nodeNo = home.angle.x;
111 u32 rv;
112 if (nodeNo == 0xffff) {
113 rv = -1;
114 } else {
115 rv = nodeNo;
116 }
117 return rv;
118 }
119
120 u32 getPathID() { return (fopAcM_GetParam(this) & 0xFF00) >> 8; }
121 u32 getBitSW() { return (fopAcM_GetParam(this) & 0xFF0000) >> 16; }
122
124 if (mType == 11) {
125 s16 var_r28 = (s16)(fopAcM_searchPlayerAngleY(this) - home.angle.y);
126 int var_r29 = 3;
127
128 if (var_r28 < 0) {
129 var_r29 = 2;
130 }
131
132 if (strlen(mpEvtData[var_r29].eventName) != 0) {
133 u32 len = strlen(mpArcNames[mpEvtData[var_r29].num]);
134 if (len != 0) {
137 }
138
139 mEvtId = dComIfGp_getEventManager().getEventIdx(this, mpEvtData[var_r29].eventName, 0xFF);
140 fopAcM_orderOtherEventId(this, mEvtId, 0xFF, 0xFFFF, 4, 1);
141 return 1;
142 }
143 }
144
145 return 0;
146 }
147
148private:
149 /* 0x0E40 */ u8 field_0xe40[0xe44 - 0xe40];
150 /* 0x0E44 */ J3DModel* mpClothModel;
151 /* 0x0E48 */ dCcD_Cyl field_0xe48;
152 /* 0x0F84 */ u8 mType;
154 /* 0x0FB0 */ daNpcT_Path_c mPath;
156 /* 0x0FE4 */ actionFunc mAction;
157 /* 0x0FF0 */ u8 field_0xff0[0xffc - 0xff0];
158 /* 0x0FFC */ int field_0xffc;
159 /* 0x1000 */ int field_0x1000;
160 /* 0x1004 */ int field_0x1004;
161 /* 0x1008 */ int field_0x1008;
162 /* 0x100C */ u8 field_0x100c[0x1010 - 0x100c];
163 /* 0x1010 */ f32 field_0x1010;
164 /* 0x1014 */ u8 field_0x1014;
165 /* 0x1015 */ u8 field_0x1015;
166 /* 0x1016 */ u8 field_0x1016;
167 /* 0x1017 */ u8 field_0x1017;
168 /* 0x1018 */ u8 field_0x1018;
169 /* 0x1019 */ u8 field_0x1019[0x101c - 0x1019];
170 /* 0x101C */ u8 field_0x101c;
171};
172
173STATIC_ASSERT(sizeof(daNpc_Kolin_c) == 0x1020);
174
175#endif /* D_A_NPC_KOLIN_H */
cPhs__Step
Definition c_phase.h:8
Definition J3DJoint.h:63
Definition J3DModel.h:43
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
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:25
virtual ~daNpc_Kolin_Param_c()
Definition d_a_npc_kolin.h:27
static daNpc_Kolin_HIOParam const m
Definition d_a_npc_kolin.h:346
Colin.
Definition d_a_npc_kolin.h:32
int talk(void *)
Definition d_a_npc_kolin.cpp:2153
dCcD_Cyl field_0xe48
Definition d_a_npc_kolin.h:151
int CreateHeap()
Definition d_a_npc_kolin.cpp:461
int Execute()
Definition d_a_npc_kolin.cpp:527
int field_0x1008
Definition d_a_npc_kolin.h:161
void srchActors()
Definition d_a_npc_kolin.cpp:851
virtual void setCollision()
Definition d_a_npc_kolin.cpp:1002
virtual int checkChangeJoint(int i_joint)
Definition d_a_npc_kolin.h:83
virtual int drawDbgInfo()
Definition d_a_npc_kolin.cpp:1046
daNpcT_Path_c mPath
Definition d_a_npc_kolin.h:154
int cutThankYou(int)
Definition d_a_npc_kolin.cpp:1789
BOOL orderNoRideEvt()
Definition d_a_npc_kolin.h:123
void reset()
Definition d_a_npc_kolin.cpp:672
virtual void setAfterTalkMotion()
Definition d_a_npc_kolin.cpp:832
u8 field_0xff0[0xffc - 0xff0]
Definition d_a_npc_kolin.h:157
u8 field_0x1016
Definition d_a_npc_kolin.h:166
int cutConversationAboutGoron(int)
Definition d_a_npc_kolin.cpp:1733
static cutFunc mCutList[11]
Definition d_a_npc_kolin.h:324
virtual void drawOtherMdl()
Definition d_a_npc_kolin.cpp:1050
virtual int checkRemoveJoint(int i_joint)
Definition d_a_npc_kolin.h:84
int cutHail(int)
Definition d_a_npc_kolin.cpp:1299
static char * mCutNameList[11]
Definition d_a_npc_kolin.h:310
int setAction(actionFunc)
Definition d_a_npc_kolin.cpp:1125
actionFunc mAction
Definition d_a_npc_kolin.h:156
int cutGiveMeWoodSwd(int)
Definition d_a_npc_kolin.cpp:1381
int field_0xffc
Definition d_a_npc_kolin.h:158
virtual BOOL checkChangeEvt()
Definition d_a_npc_kolin.cpp:791
int cutConversationAboutLoopHole(int)
Definition d_a_npc_kolin.cpp:1579
u32 getFlowNodeNo()
Definition d_a_npc_kolin.h:109
J3DModel * mpClothModel
Definition d_a_npc_kolin.h:150
virtual void changeBck(int *, int *)
Definition d_a_npc_kolin.cpp:1074
u8 field_0xe40[0xe44 - 0xe40]
Definition d_a_npc_kolin.h:149
int cutCacaricoConversation(int)
Definition d_a_npc_kolin.cpp:1667
u8 field_0x1014
Definition d_a_npc_kolin.h:164
virtual s32 getFootLJointNo()
Definition d_a_npc_kolin.h:88
u8 mType
Definition d_a_npc_kolin.h:152
int field_0x1000
Definition d_a_npc_kolin.h:159
BOOL chkAction(actionFunc)
Definition d_a_npc_kolin.cpp:1121
virtual void changeAnm(int *, int *)
Definition d_a_npc_kolin.cpp:1067
virtual void beforeMove()
Definition d_a_npc_kolin.cpp:947
actionFunc mNextAction
Definition d_a_npc_kolin.h:155
virtual void afterJntAnm(int)
Definition d_a_npc_kolin.cpp:721
daNpcT_ActorMngr_c mActorMngr[5]
Definition d_a_npc_kolin.h:153
int cutNoRide(int)
Definition d_a_npc_kolin.cpp:1260
static int ctrlJointCallBack(J3DJoint *, int)
Definition d_a_npc_kolin.cpp:545
int timidWalk(void *)
Definition d_a_npc_kolin.cpp:1980
virtual void action()
Definition d_a_npc_kolin.cpp:922
u8 field_0x101c
Definition d_a_npc_kolin.h:170
u8 field_0x1018
Definition d_a_npc_kolin.h:168
u8 field_0x1019[0x101c - 0x1019]
Definition d_a_npc_kolin.h:169
u8 field_0x1015
Definition d_a_npc_kolin.h:165
void followPlayer(int)
Definition d_a_npc_kolin.cpp:1180
virtual BOOL evtTalk()
Definition d_a_npc_kolin.cpp:897
int clothWait(void *)
Definition d_a_npc_kolin.cpp:2109
virtual u16 getEyeballMaterialNo()
Definition d_a_npc_kolin.h:90
void calcFollowSpeedAndAngle(fopAc_ac_c *, int, int)
Definition d_a_npc_kolin.cpp:1142
void lookup(u8)
Definition d_a_npc_kolin.cpp:1251
int Draw()
Definition d_a_npc_kolin.cpp:531
int(daNpc_Kolin_c::*) cutFunc(int)
Definition d_a_npc_kolin.h:34
int field_0x1004
Definition d_a_npc_kolin.h:160
int wait(void *)
Definition d_a_npc_kolin.cpp:1810
int test(void *)
cPhs__Step create()
Definition d_a_npc_kolin.cpp:396
BOOL isDelete()
Definition d_a_npc_kolin.cpp:605
static int createHeapCallBack(fopAc_ac_c *)
Definition d_a_npc_kolin.cpp:540
int Delete()
Definition d_a_npc_kolin.cpp:522
u8 field_0x1017
Definition d_a_npc_kolin.h:167
u32 getPathID()
Definition d_a_npc_kolin.h:120
virtual BOOL evtCutProc()
Definition d_a_npc_kolin.cpp:907
int follow(void *)
Definition d_a_npc_kolin.cpp:2075
int cutGetWoodSwd(int)
Definition d_a_npc_kolin.cpp:1434
u32 getBitSW()
Definition d_a_npc_kolin.h:121
virtual s32 getNeckJointNo()
Definition d_a_npc_kolin.h:86
u8 field_0x100c[0x1010 - 0x100c]
Definition d_a_npc_kolin.h:162
virtual s32 getHeadJointNo()
Definition d_a_npc_kolin.h:87
int selectAction()
Definition d_a_npc_kolin.cpp:1090
virtual void setAttnPos()
Definition d_a_npc_kolin.cpp:961
f32 field_0x1010
Definition d_a_npc_kolin.h:163
virtual s32 getBackboneJointNo()
Definition d_a_npc_kolin.h:85
int cutClothTry(int)
Definition d_a_npc_kolin.cpp:1752
~daNpc_Kolin_c()
Definition d_a_npc_kolin.cpp:338
int cutConversationAboutDeathMt(int)
Definition d_a_npc_kolin.cpp:1714
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:71
virtual s32 getFootRJointNo()
Definition d_a_npc_kolin.h:89
int(daNpc_Kolin_c::*) actionFunc(void *)
Definition d_a_npc_kolin.h:35
u8 getType()
Definition d_a_npc_kolin.cpp:556
virtual void setParam()
Definition d_a_npc_kolin.cpp:731
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
STATIC_ASSERT(sizeof(daNpc_Kolin_c)==0x1020)
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
u32 fopAcM_GetParam(const void *i_actor)
Definition f_op_actor_mng.h:192
s16 fopAcM_searchPlayerAngleY(const fopAc_ac_c *actor)
Definition f_op_actor_mng.h:727
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
Definition d_a_npc.h:836
Definition d_a_npc.h:483
Definition d_a_npc.h:488
Definition d_a_npc.h:503
Definition d_a_npc_kolin.h:15
daNpcT_HIOParam common
Definition d_a_npc_kolin.h:16
f32 yeah_yeah
Definition d_a_npc_kolin.h:22
f32 follow_distance
Definition d_a_npc_kolin.h:18
s16 shy_walk_time
Definition d_a_npc_kolin.h:20
f32 run_speed
Definition d_a_npc_kolin.h:19
s16 sulk_time
Definition d_a_npc_kolin.h:21
f32 start_distance
Definition d_a_npc_kolin.h:17