Twilight Princess
Decompilation of The Legend of Zelda: Twilight Princess
Loading...
Searching...
No Matches
d_a_npc_kasi_hana.h
Go to the documentation of this file.
1#ifndef D_A_NPC_KASI_HANA_H
2#define D_A_NPC_KASI_HANA_H
3
4#include "d/actor/d_a_npc4.h"
6
18 /* 0x6C */ f32 track_start_dist; // 追跡開始距離 - Track Start Distance
19 /* 0x70 */ f32 track_stop_dist; // 追跡停止距離 - Track Stop Distance
20 /* 0x74 */ f32 track_spd; // 追跡速度 - Track Speed
21 /* 0x78 */ f32 escape_spd; // 逃げる速度 - Escape Speed
22};
23
25public:
27
28 static daNpcKasiHana_HIOParam const m;
29};
30
31#if DEBUG
39
40#define NPC_KASI_HANA_HIO_CLASS daNpcKasiHana_HIO_c
41#else
42#define NPC_KASI_HANA_HIO_CLASS daNpcKasiHana_Param_c
43#endif
44
46public:
48 mIsPathInit = false;
49 mCenterPos.set(0.0f, 0.0f, 0.0f);
50 mSygnal = 0;
51 }
53 void calcEscapeForm();
56 void getOffsetFromLeader(cXyz const&, cXyz&);
57 void initPath(u8, u16);
58 int getPlNearPoint();
59 int getSygnalInfo();
60 void sendInfo();
61 void offTalk();
62 BOOL chkTalk();
63 BOOL chkFear();
66 void allDemoMove();
67 void allDemoNotMove();
69 void schMemberActor();
70 void schDanchoActor();
71 void deleteAllMember();
72 void chgWeightHeavy();
73 void chgWeightLight();
75
76 void setKyuPos(const cXyz& i_pos) { mKyuPos = i_pos; }
77 void setMichPos(const cXyz& i_pos) { mMichPos = i_pos; }
78 BOOL chkSygnal(int param_1) { return mSygnal & param_1; }
79 void SygnalClear() { mSygnal = 0; }
80 void onSygnal(int param_1) { mSygnal |= param_1; }
81 void setHanaActor(fopAc_ac_c* a_this) { if (a_this != NULL) mHanaActorMngr.entry(a_this); }
86
87 void setKyuActor(fopAc_ac_c* kyu_p) {
88 if (kyu_p != NULL) {
89 mKyuActorMngr.entry(kyu_p);
90 }
91 }
92
93 void setMichActor(fopAc_ac_c* mich_p) {
94 if (mich_p != NULL) {
95 mMichActorMngr.entry(mich_p);
96 }
97 }
98
99 void setDanchoActor(fopAc_ac_c* dancho_p) {
100 if (dancho_p != NULL) {
101 mDanchoActorMngr.entry(dancho_p);
102 }
103 }
104
109 /* 0x20 */ int mSygnal;
110 /* 0x24 */ cXyz mKyuPos;
111 /* 0x30 */ cXyz mMichPos;
112 /* 0x3C */ cXyz mCenterPos;
113 /* 0x48 */ int mPlPoint;
114 /* 0x4C */ bool mIsPathInit;
116};
117
118class daNpcKasiHana_c : public daNpcF_c {
119public:
120 typedef int (daNpcKasiHana_c::*actionFunc)(int);
121 typedef BOOL (daNpcKasiHana_c::*cutFunc)(int);
122 typedef BOOL (daNpcKasiHana_c::*EventFn)(int);
123
127 int CreateHeap();
128 int Delete();
129 int Execute();
130 int Draw();
132 static int createHeapCallBack(fopAc_ac_c*);
133 static int ctrlJointCallBack(J3DJoint*, int);
134 void setParam();
135 BOOL main();
136 void setAttnPos();
137 void setMotionAnm(int, f32);
138 void setMotion(int, f32, int);
139 int drawDbgInfo();
140 void reset();
141 void playMotion();
144 void setLookMode(int);
145 void lookat();
146 BOOL step(s16, int);
148 int wait(int);
149 int chace_st(int);
150 int chace(int);
152 int turn(int);
153 int fear(int);
155 static void* _srch_escape_tag(void*, void*);
156 int getWolfPathNearIdx();
157 int talk(int);
158 int demo(int);
159 int escape(int);
160 int cheer(int);
162 BOOL _turn_pos(cXyz const&, s16);
164 void _getOffset(cXyz const&, cXyz&);
166 BOOL _Evt_Kasi_Appear_CutInit(int const&);
167 BOOL _Evt_Kasi_Appear_CutMain(int const&);
168 BOOL _Evt_Kasi_Talk(int);
169 BOOL _Evt_Kasi_Talk_CutInit(int const&);
170 BOOL _Evt_Kasi_Talk_CutMain(int const&, int);
171 BOOL _Evt_Kasi(int);
172 BOOL _Evt_Kasi_CutInit(int const&);
173 BOOL _Evt_Kasi_CutMain(int const&);
175 BOOL _Evt_Kasi_Cheer_CutInit(int const&);
176 BOOL _Evt_Kasi_Cheer_CutMain(int const&, int);
178 BOOL _Evt_Kasi_Cheer2_CutInit(int const&);
179 BOOL _Evt_Kasi_Cheer2_CutMain(int const&, int);
181
184 s8 rv = fopAcM_GetParam(this) & 0xFF;
185
186 if (rv == 0xFF) {
187 rv = 0;
188 }
189
190 return rv;
191 }
192 void off_talked() { mTalked = false; }
193 BOOL is_talked() { return mTalked; }
194 BOOL is_escape() { return mEscape; }
197 int getRailNo() { return s8((fopAcM_GetParam(this) >> 8) & 0xFF); }
199 int getSwitchBitNo() { return (fopAcM_GetParam(this) >> 16) & 0xFF; }
202
203 static EventFn mEvtSeqList[6];
207
208private:
210 /* 0x0BEC */ u8 field_0xbec[0xbf0 - 0xbec];
213 /* 0x0C94 */ daNpcF_Path_c mPath;
214 /* 0x12C4 */ NPC_KASI_HANA_HIO_CLASS* mHIO;
215 /* 0x12C8 */ dCcD_Cyl mCyl;
216 /* 0x1404 */ s8 mType;
217 /* 0x1405 */ u8 field_0x1405;
218 /* 0x1406 */ s16 mMode;
219 /* 0x1408 */ actionFunc mAction;
222 /* 0x1430 */ int field_0x1430;
223 /* 0x1434 */ int field_0x1434;
224 /* 0x1438 */ int mMessageNo;
225 /* 0x143C */ s16 mLookMode;
226 /* 0x143E */ s16 field_0x143e;
227 /* 0x1440 */ u8 field_0x1440;
228 /* 0x1441 */ s8 field_0x1441;
229 /* 0x1442 */ bool mTalked;
230 /* 0x1443 */ bool mEscape;
231 /* 0x1444 */ u8 field_0x1444;
232 /* 0x1445 */ bool field_0x1445;
234};
235
237
238#endif /* D_A_NPC_KASI_HANA_H */
cPhs__Step
Definition c_phase.h:8
Definition J3DJoint.h:63
Definition J3DModel.h:43
Definition JORMContext.h:120
Definition Z2Creature.h:60
void SetWeight(u8 weight)
Definition c_cc_d.h:180
Definition d_cc_d.h:461
Definition d_a_npc4.h:14
void entry(unsigned int)
Definition d_a_npc4.cpp:75
fopAc_ac_c * getActorP()
Definition d_a_npc4.cpp:83
Definition d_a_npc4.h:379
Definition d_a_npc4.h:330
void reverse()
Definition d_a_npc4.cpp:223
Definition d_a_npc4.h:54
dCcD_Stts mCcStts
Definition d_a_npc4.h:62
Definition d_a_npc_kasi_hana.h:32
void genMessage(JORMContext *)
Definition d_a_npc_kasi_hana.cpp:605
daNpcKasiHana_HIOParam m
Definition d_a_npc_kasi_hana.h:37
daNpcKasiHana_HIO_c()
Definition d_a_npc_kasi_hana.cpp:601
Definition d_a_npc_kasi_hana.h:24
virtual ~daNpcKasiHana_Param_c()
Definition d_a_npc_kasi_hana.h:26
static daNpcKasiHana_HIOParam const m
Definition d_a_npc_kasi_hana.h:560
Hannah.
Definition d_a_npc_kasi_hana.h:118
BOOL _Evt_Kasi_Cheer2(int)
Definition d_a_npc_kasi_hana.cpp:2186
bool mEscape
Definition d_a_npc_kasi_hana.h:230
BOOL step(s16, int)
Definition d_a_npc_kasi_hana.cpp:1149
int(daNpcKasiHana_c::*) actionFunc(int)
Definition d_a_npc_kasi_hana.h:120
u8 field_0x1444
Definition d_a_npc_kasi_hana.h:231
void playMotion()
Definition d_a_npc_kasi_hana.cpp:976
NPC_KASI_HANA_HIO_CLASS * mHIO
Definition d_a_npc_kasi_hana.h:214
BOOL _Evt_Kasi_Cheer_CutInit(int const &)
Definition d_a_npc_kasi_hana.cpp:2107
void setLookMode(int)
Definition d_a_npc_kasi_hana.cpp:1088
BOOL main()
Definition d_a_npc_kasi_hana.cpp:808
BOOL _Evt_Kasi_Cheer2_CutMain(int const &, int)
Definition d_a_npc_kasi_hana.cpp:2237
int getSwitchBitNo()
Definition d_a_npc_kasi_hana.h:199
s16 mLookMode
Definition d_a_npc_kasi_hana.h:225
int field_0x1434
Definition d_a_npc_kasi_hana.h:223
int turn(int)
Definition d_a_npc_kasi_hana.cpp:1389
BOOL _Evt_Kasi_Appear_CutMain(int const &)
Definition d_a_npc_kasi_hana.cpp:1830
void playMotionAnmLoop(daNpcF_c::daNpcF_anmPlayData ***)
Definition d_a_npc_kasi_hana.cpp:1033
s8 mType
Definition d_a_npc_kasi_hana.h:216
int demo(int)
Definition d_a_npc_kasi_hana.cpp:1583
cPhs__Step Create()
Definition d_a_npc_kasi_hana.cpp:641
daTagEscape_c * srchWolfTag()
Definition d_a_npc_kasi_hana.cpp:1478
static void * _srch_escape_tag(void *, void *)
Definition d_a_npc_kasi_hana.cpp:1485
int Delete()
Definition d_a_npc_kasi_hana.cpp:725
daNpcKasi_Mng_c mKasiMng
Definition d_a_npc_kasi_hana.h:233
int Execute()
Definition d_a_npc_kasi_hana.cpp:730
void setAttnPos()
Definition d_a_npc_kasi_hana.cpp:865
static int createHeapCallBack(fopAc_ac_c *)
Definition d_a_npc_kasi_hana.cpp:772
int CreateHeap()
Definition d_a_npc_kasi_hana.cpp:694
BOOL is_talked()
Definition d_a_npc_kasi_hana.h:193
static EventFn mEvtSeqList[6]
Definition d_a_npc_kasi_hana.h:614
BOOL(daNpcKasiHana_c::*) cutFunc(int)
Definition d_a_npc_kasi_hana.h:121
int Draw()
Definition d_a_npc_kasi_hana.cpp:735
Z2CreatureCitizen mSound
Definition d_a_npc_kasi_hana.h:209
int getRailNo()
Definition d_a_npc_kasi_hana.h:197
BOOL pl_front_check()
Definition d_a_npc_kasi_hana.h:200
BOOL _Evt_Kasi_Talk_CutMain(int const &, int)
Definition d_a_npc_kasi_hana.cpp:1926
BOOL is_escape()
Definition d_a_npc_kasi_hana.h:194
BOOL _turn_to_link(s16)
Definition d_a_npc_kasi_hana.cpp:1755
static f32 mTargetTagDist
Definition d_a_npc_kasi_hana.h:205
cXyz getChacePos()
Definition d_a_npc_kasi_hana.cpp:1362
int ctrlJoint(J3DJoint *, J3DModel *)
Definition d_a_npc_kasi_hana.cpp:743
int chace(int)
Definition d_a_npc_kasi_hana.cpp:1330
int getWolfPathNearIdx()
Definition d_a_npc_kasi_hana.cpp:1513
s16 field_0x143e
Definition d_a_npc_kasi_hana.h:226
request_of_phase_process_class mPhases[3]
Definition d_a_npc_kasi_hana.h:220
BOOL _Evt_Kasi_CutInit(int const &)
Definition d_a_npc_kasi_hana.cpp:1988
int escape(int)
Definition d_a_npc_kasi_hana.cpp:1661
bool field_0x1445
Definition d_a_npc_kasi_hana.h:232
int mMessageNo
Definition d_a_npc_kasi_hana.h:224
~daNpcKasiHana_c()
Definition d_a_npc_kasi_hana.cpp:625
BOOL _Evt_Kasi_Cheer2_CutInit(int const &)
Definition d_a_npc_kasi_hana.cpp:2214
daNpcKasiHana_c()
Definition d_a_npc_kasi_hana.cpp:623
void chgWeightHeavy()
Definition d_a_npc_kasi_hana.h:195
u8 field_0x1440
Definition d_a_npc_kasi_hana.h:227
daNpcF_Lookat_c mLookat
Definition d_a_npc_kasi_hana.h:211
u8 field_0xbec[0xbf0 - 0xbec]
Definition d_a_npc_kasi_hana.h:210
BOOL(daNpcKasiHana_c::*) EventFn(int)
Definition d_a_npc_kasi_hana.h:122
BOOL _turn_pos(cXyz const &, s16)
Definition d_a_npc_kasi_hana.cpp:1760
int field_0x1430
Definition d_a_npc_kasi_hana.h:222
void adjustShapeAngle()
Definition d_a_npc_kasi_hana.h:180
bool chkAction(actionFunc action)
Definition d_a_npc_kasi_hana.h:198
BOOL _Evt_Kasi_Appear_CutInit(int const &)
Definition d_a_npc_kasi_hana.cpp:1807
int fear(int)
Definition d_a_npc_kasi_hana.cpp:1414
BOOL actor_front_check(fopAc_ac_c *)
Definition d_a_npc_kasi_hana.cpp:1767
int cheer(int)
Definition d_a_npc_kasi_hana.cpp:1691
void setMotion(int, f32, int)
Definition d_a_npc_kasi_hana.cpp:911
s8 getType()
Definition d_a_npc_kasi_hana.h:183
s16 mMode
Definition d_a_npc_kasi_hana.h:218
BOOL _Evt_Kasi_Cheer_CutMain(int const &, int)
Definition d_a_npc_kasi_hana.cpp:2130
int talk(int)
Definition d_a_npc_kasi_hana.cpp:1543
bool mTalked
Definition d_a_npc_kasi_hana.h:229
actionFunc mAction
Definition d_a_npc_kasi_hana.h:219
BOOL _Evt_Kasi_Talk_CutInit(int const &)
Definition d_a_npc_kasi_hana.cpp:1900
dCcD_Cyl mCyl
Definition d_a_npc_kasi_hana.h:215
void setParam()
Definition d_a_npc_kasi_hana.cpp:790
s16 getMessageNo()
Definition d_a_npc_kasi_hana.h:182
u8 field_0x1405
Definition d_a_npc_kasi_hana.h:217
BOOL _Evt_Kasi(int)
Definition d_a_npc_kasi_hana.cpp:1970
void setMotionAnm(int, f32)
Definition d_a_npc_kasi_hana.cpp:900
BOOL _Evt_Kasi_Talk(int)
Definition d_a_npc_kasi_hana.cpp:1868
fpc_ProcID field_0x142c
Definition d_a_npc_kasi_hana.h:221
BOOL _Evt_Kasi_CutMain(int const &)
Definition d_a_npc_kasi_hana.cpp:2021
static daTagEscape_c * mTargetTag
Definition d_a_npc_kasi_hana.h:204
int drawDbgInfo()
Definition d_a_npc_kasi_hana.cpp:922
daNpcF_Path_c mPath
Definition d_a_npc_kasi_hana.h:213
BOOL chkFindPlayer()
Definition d_a_npc_kasi_hana.cpp:1176
void lookat()
Definition d_a_npc_kasi_hana.cpp:1094
static s16 mWolfAngle
Definition d_a_npc_kasi_hana.h:206
s8 field_0x1441
Definition d_a_npc_kasi_hana.h:228
int chace_st(int)
Definition d_a_npc_kasi_hana.cpp:1309
static int ctrlJointCallBack(J3DJoint *, int)
Definition d_a_npc_kasi_hana.cpp:777
void _getOffset(cXyz const &, cXyz &)
Definition d_a_npc_kasi_hana.cpp:1781
int wait(int)
Definition d_a_npc_kasi_hana.cpp:1198
daNpcF_ActorMngr_c mActorMngr[1]
Definition d_a_npc_kasi_hana.h:212
void off_talked()
Definition d_a_npc_kasi_hana.h:192
BOOL setAction(actionFunc)
Definition d_a_npc_kasi_hana.cpp:1071
void setEscapePathDir()
Definition d_a_npc_kasi_hana.h:201
BOOL _Evt_Kasi_Cheer(int)
Definition d_a_npc_kasi_hana.cpp:2073
BOOL _Evt_Kasi_Appear(int)
Definition d_a_npc_kasi_hana.cpp:1788
void reset()
Definition d_a_npc_kasi_hana.cpp:926
void chgWeightLight()
Definition d_a_npc_kasi_hana.h:196
Definition d_a_npc_kasi_hana.h:45
cXyz getCenterPos()
Definition d_a_npc_kasi_hana.h:74
~daNpcKasi_Mng_c()
Definition d_a_npc_kasi_hana.h:52
void allDemoNotMove()
Definition d_a_npc_kasi_hana.cpp:410
void SygnalClear()
Definition d_a_npc_kasi_hana.h:79
void schMemberActor()
Definition d_a_npc_kasi_hana.cpp:438
void setMichActor(fopAc_ac_c *mich_p)
Definition d_a_npc_kasi_hana.h:93
daNpcF_ActorMngr_c mDanchoActorMngr
Definition d_a_npc_kasi_hana.h:108
int mPlPoint
Definition d_a_npc_kasi_hana.h:113
void setHanaActor(fopAc_ac_c *a_this)
Definition d_a_npc_kasi_hana.h:81
void chgWeightHeavy()
Definition d_a_npc_kasi_hana.cpp:487
BOOL chkFear()
Definition d_a_npc_kasi_hana.cpp:326
bool mIsPathInit
Definition d_a_npc_kasi_hana.h:114
f32 getDistFromCenter()
Definition d_a_npc_kasi_hana.cpp:185
cXyz mKyuPos
Definition d_a_npc_kasi_hana.h:110
void setDanchoActor(fopAc_ac_c *dancho_p)
Definition d_a_npc_kasi_hana.h:99
void getOffsetFromLeader(cXyz const &, cXyz &)
Definition d_a_npc_kasi_hana.cpp:197
BOOL isPathInit()
Definition d_a_npc_kasi_hana.h:82
BOOL chkTalk()
Definition d_a_npc_kasi_hana.cpp:301
daNpcKasi_Mng_c()
Definition d_a_npc_kasi_hana.h:47
BOOL chkEscape()
Definition d_a_npc_kasi_hana.cpp:340
cXyz mCenterPos
Definition d_a_npc_kasi_hana.h:112
void onSygnal(int param_1)
Definition d_a_npc_kasi_hana.h:80
BOOL chkSygnal(int param_1)
Definition d_a_npc_kasi_hana.h:78
void sendInfo()
Definition d_a_npc_kasi_hana.cpp:264
int getPlNearPoint()
Definition d_a_npc_kasi_hana.cpp:223
daNpcF_ActorMngr_c mKyuActorMngr
Definition d_a_npc_kasi_hana.h:106
fopAc_ac_c * getKyuActor()
Definition d_a_npc_kasi_hana.h:84
void setMichPos(const cXyz &i_pos)
Definition d_a_npc_kasi_hana.h:77
daNpcF_Path_c mPath
Definition d_a_npc_kasi_hana.h:115
void initPath(u8, u16)
Definition d_a_npc_kasi_hana.cpp:208
cXyz mMichPos
Definition d_a_npc_kasi_hana.h:111
void setKyuActor(fopAc_ac_c *kyu_p)
Definition d_a_npc_kasi_hana.h:87
void chgWeightLight()
Definition d_a_npc_kasi_hana.cpp:504
BOOL isMiniGamePlaying()
Definition d_a_npc_kasi_hana.cpp:427
void schDanchoActor()
Definition d_a_npc_kasi_hana.cpp:455
void setKyuPos(const cXyz &i_pos)
Definition d_a_npc_kasi_hana.h:76
void deleteAllMember()
Definition d_a_npc_kasi_hana.cpp:465
fopAc_ac_c * getHanaActor()
Definition d_a_npc_kasi_hana.h:83
fopAc_ac_c * getMichActor()
Definition d_a_npc_kasi_hana.h:85
void allDemoMove()
Definition d_a_npc_kasi_hana.cpp:393
void offTalk()
Definition d_a_npc_kasi_hana.cpp:283
int mSygnal
Definition d_a_npc_kasi_hana.h:109
BOOL createHearts()
Definition d_a_npc_kasi_hana.cpp:365
daNpcF_ActorMngr_c mHanaActorMngr
Definition d_a_npc_kasi_hana.h:105
daNpcF_ActorMngr_c mMichActorMngr
Definition d_a_npc_kasi_hana.h:107
int getSygnalInfo()
Definition d_a_npc_kasi_hana.cpp:251
BOOL calcCenterPos()
Definition d_a_npc_kasi_hana.cpp:165
void calcEscapeForm()
Definition d_a_npc_kasi_hana.cpp:151
Definition d_a_tag_escape.h:6
Definition f_op_actor.h:230
actor_place home
Definition f_op_actor.h:249
Definition m_Do_hostIO.h:27
static void action(b_bh_class *i_this)
Definition d_a_b_bh.cpp:1017
STATIC_ASSERT(sizeof(daNpcKasiHana_c)==0x1ac8)
daPy_py_c * daPy_getPlayerActorClass()
Definition d_a_player.h:1260
int BOOL
Definition types.h:33
signed char s8
Definition types.h:7
signed short int s16
Definition types.h:9
float f32
Definition types.h:25
unsigned short int u16
Definition types.h:10
unsigned char u8
Definition types.h:8
u32 fopAcM_GetParam(const void *i_actor)
Definition f_op_actor_mng.h:192
unsigned int fpc_ProcID
Definition f_pc_base.h:10
s16 x
Definition c_sxyz.h:7
csXyz angle
Definition f_op_actor.h:206
Definition c_xyz.h:7
void set(f32 pX, f32 pY, f32 pZ)
Definition c_xyz.h:97
Definition d_a_npc4.h:423
Definition d_a_npc4.h:148
Definition d_a_npc_kasi_hana.h:16
daNpcF_HIOParam common
Definition d_a_npc_kasi_hana.h:17
f32 track_stop_dist
Definition d_a_npc_kasi_hana.h:19
f32 track_start_dist
Definition d_a_npc_kasi_hana.h:18
f32 track_spd
Definition d_a_npc_kasi_hana.h:20
f32 escape_spd
Definition d_a_npc_kasi_hana.h:21
Definition c_phase.h:17