diff --git a/configure.py b/configure.py index bc920fe9cfb..2b40b09bdd6 100755 --- a/configure.py +++ b/configure.py @@ -1829,9 +1829,9 @@ config.libs = [ ActorRel(NonMatching, "d_a_npc_inko"), ActorRel(NonMatching, "d_a_npc_ins"), ActorRel(NonMatching, "d_a_npc_jagar"), - ActorRel(NonMatching, "d_a_npc_kasi_hana"), - ActorRel(NonMatching, "d_a_npc_kasi_kyu"), - ActorRel(NonMatching, "d_a_npc_kasi_mich"), + ActorRel(NonMatching, "d_a_npc_kasi_hana", extra_cflags=[DANPCF_C_HACK]), + ActorRel(NonMatching, "d_a_npc_kasi_kyu", extra_cflags=[DANPCF_C_HACK]), + ActorRel(NonMatching, "d_a_npc_kasi_mich", extra_cflags=[DANPCF_C_HACK]), ActorRel(MatchingFor("GZ2E01"), "d_a_npc_kdk"), ActorRel(NonMatching, "d_a_npc_kn"), ActorRel(NonMatching, "d_a_npc_knj"), diff --git a/include/d/actor/d_a_npc.h b/include/d/actor/d_a_npc.h index 03ab86691ce..f1b44085684 100644 --- a/include/d/actor/d_a_npc.h +++ b/include/d/actor/d_a_npc.h @@ -1298,6 +1298,7 @@ public: void offReverse() { mIsReversed = false; } dPath* getPathInfo() { return mPathInfo; } void setRange(f32 i_range) { mRange = i_range; } + u16 getNumPnts() { return mPathInfo->m_num; } }; // Size: 0x630 class daNpcF_Lookat_c { diff --git a/include/d/actor/d_a_npc_chin.h b/include/d/actor/d_a_npc_chin.h index 11adbcf109c..4b3b1721eda 100644 --- a/include/d/actor/d_a_npc_chin.h +++ b/include/d/actor/d_a_npc_chin.h @@ -81,10 +81,14 @@ public: /* 80990DDC */ void _Evt_SpotLight_Off_CutMain(int const&); /* 80991858 */ void setMtx(); + BOOL isMiniGamePlaying() { return mIsMiniGamePlaying; } + static u8 mEvtSeqList[96]; private: - /* 0x568 */ u8 field_0x568[0xe78 - 0x568]; + /* 0x568 */ u8 field_0x568[0xe08 - 0x568]; + /* 0xE08 */ s8 mIsMiniGamePlaying; + /* 0xE09 */ u8 field_0xe09[0xe78 - 0xe09]; }; STATIC_ASSERT(sizeof(daNpcChin_c) == 0xe78); diff --git a/include/d/actor/d_a_npc_kasi_hana.h b/include/d/actor/d_a_npc_kasi_hana.h index ee790bfb977..d8d0a3747ea 100644 --- a/include/d/actor/d_a_npc_kasi_hana.h +++ b/include/d/actor/d_a_npc_kasi_hana.h @@ -2,6 +2,7 @@ #define D_A_NPC_KASI_HANA_H #include "d/actor/d_a_npc.h" +#include "d/actor/d_a_tag_escape.h" /** * @ingroup actors-npcs @@ -10,109 +11,196 @@ * * @details * - */ -class daNpcKasiHana_c : public fopAc_ac_c { -public: - /* 80A1BE44 */ daNpcKasiHana_c(); - /* 80A1C0A4 */ ~daNpcKasiHana_c(); - /* 80A1C334 */ void Create(); - /* 80A1C5B0 */ void CreateHeap(); - /* 80A1C734 */ void Delete(); - /* 80A1C768 */ void Execute(); - /* 80A1C78C */ void Draw(); - /* 80A1C7D8 */ void ctrlJoint(J3DJoint*, J3DModel*); - /* 80A1C964 */ void createHeapCallBack(fopAc_ac_c*); - /* 80A1C984 */ void ctrlJointCallBack(J3DJoint*, int); - /* 80A1C9D0 */ void setParam(); - /* 80A1CA60 */ void main(); - /* 80A1CD28 */ void setAttnPos(); - /* 80A1CED0 */ bool setMotionAnm(int, f32); - /* 80A1CFA0 */ void setMotion(int, f32, int); - /* 80A1CFE8 */ bool drawDbgInfo(); - /* 80A1CFF0 */ void reset(); - /* 80A1D238 */ void playMotion(); - /* 80A1D604 */ void playMotionAnmLoop(daNpcF_c::daNpcF_anmPlayData***); - /* 80A1D77C */ void setAction(int (daNpcKasiHana_c::*)(int)); - /* 80A1D824 */ void setLookMode(int); - /* 80A1D848 */ void lookat(); - /* 80A1DA28 */ void step(s16, int); - /* 80A1DB1C */ void chkFindPlayer(); - /* 80A1DC00 */ void wait(int); - /* 80A1E184 */ void chace_st(int); - /* 80A1E228 */ void chace(int); - /* 80A1E3AC */ void getChacePos(); - /* 80A1E4AC */ void turn(int); - /* 80A1E578 */ void fear(int); - /* 80A1E78C */ void srchWolfTag(); - /* 80A1E7F4 */ void _srch_escape_tag(void*, void*); - /* 80A1E8C4 */ void getWolfPathNearIdx(); - /* 80A1E9F8 */ void talk(int); - /* 80A1EB5C */ void demo(int); - /* 80A1EE38 */ void escape(int); - /* 80A1EF90 */ void cheer(int); - /* 80A1F198 */ void _turn_to_link(s16); - /* 80A1F1E4 */ void _turn_pos(cXyz const&, s16); - /* 80A1F240 */ void actor_front_check(fopAc_ac_c*); - /* 80A1F318 */ void _getOffset(cXyz const&, cXyz&); - /* 80A1F384 */ void _Evt_Kasi_Appear(int); - /* 80A1F42C */ void _Evt_Kasi_Appear_CutInit(int const&); - /* 80A1F50C */ void _Evt_Kasi_Appear_CutMain(int const&); - /* 80A1F638 */ void _Evt_Kasi_Talk(int); - /* 80A1F740 */ void _Evt_Kasi_Talk_CutInit(int const&); - /* 80A1F860 */ void _Evt_Kasi_Talk_CutMain(int const&, int); - /* 80A1F9F4 */ void _Evt_Kasi(int); - /* 80A1FA9C */ void _Evt_Kasi_CutInit(int const&); - /* 80A1FBC4 */ void _Evt_Kasi_CutMain(int const&); - /* 80A1FD64 */ void _Evt_Kasi_Cheer(int); - /* 80A1FE6C */ void _Evt_Kasi_Cheer_CutInit(int const&); - /* 80A1FF78 */ void _Evt_Kasi_Cheer_CutMain(int const&, int); - /* 80A2016C */ void _Evt_Kasi_Cheer2(int); - /* 80A20244 */ void _Evt_Kasi_Cheer2_CutInit(int const&); - /* 80A20350 */ void _Evt_Kasi_Cheer2_CutMain(int const&, int); - /* 80A20678 */ void adjustShapeAngle(); +*/ - static u8 mEvtSeqList[72]; - static u8 mTargetTag[4]; - static u8 mTargetTagDist[4]; - static u8 mWolfAngle[2 + 2 /* padding */]; - -private: - /* 0x568 */ u8 field_0x568[0x1ac8 - 0x568]; +struct daNpcKasiHana_HIOParam { + /* 0x00 */ daNpcF_HIOParam common; + /* 0x6C */ f32 track_start_dist; // 追跡開始距離 - Track Start Distance + /* 0x70 */ f32 track_stop_dist; // 追跡停止距離 - Track Stop Distance + /* 0x74 */ f32 track_spd; // 追跡速度 - Track Speed + /* 0x78 */ f32 escape_spd; // 逃げる速度 - Escape Speed }; -STATIC_ASSERT(sizeof(daNpcKasiHana_c) == 0x1ac8); - -class daNpcKasiHana_Param_c { -public: - /* 80A2067C */ ~daNpcKasiHana_Param_c(); - - static u8 const m[124]; +class daNpcKasiHana_HIO_c +#ifdef DEBUG +: public mDoHIO_entry_c +#endif +{ + /* 0x8 */ daNpcKasiHana_HIOParam param; }; class daNpcKasi_Mng_c { public: + daNpcKasi_Mng_c() { + mIsPathInit = false; + mCenterPos.set(0.0f, 0.0f, 0.0f); + mSygnal = 0; + } /* 80A1AFAC */ void calcEscapeForm(); - /* 80A1B0D8 */ void calcCenterPos(); - /* 80A1B1C8 */ void getDistFromCenter(); + /* 80A1B0D8 */ BOOL calcCenterPos(); + /* 80A1B1C8 */ f32 getDistFromCenter(); /* 80A1B35C */ void getOffsetFromLeader(cXyz const&, cXyz&); /* 80A1B410 */ void initPath(u8, u16); - /* 80A1B48C */ void getPlNearPoint(); - /* 80A1B5F0 */ void getSygnalInfo(); + /* 80A1B48C */ int getPlNearPoint(); + /* 80A1B5F0 */ int getSygnalInfo(); /* 80A1B628 */ void sendInfo(); /* 80A1B6F8 */ void offTalk(); - /* 80A1B774 */ void chkTalk(); - /* 80A1B810 */ void chkFear(); - /* 80A1B884 */ void chkEscape(); - /* 80A1B920 */ void createHearts(); + /* 80A1B774 */ BOOL chkTalk(); + /* 80A1B810 */ BOOL chkFear(); + /* 80A1B884 */ BOOL chkEscape(); + /* 80A1B920 */ BOOL createHearts(); /* 80A1BAAC */ void allDemoMove(); /* 80A1BB24 */ void allDemoNotMove(); - /* 80A1BB9C */ void isMiniGamePlaying(); + /* 80A1BB9C */ BOOL isMiniGamePlaying(); /* 80A1BBE0 */ void schMemberActor(); /* 80A1BC88 */ void schDanchoActor(); /* 80A1BCF0 */ void deleteAllMember(); /* 80A1BD6C */ void chgWeightHeavy(); /* 80A1BDD8 */ void chgWeightLight(); - /* 80A2065C */ void getCenterPos(); + /* 80A2065C */ cXyz getCenterPos(); + + void setKyuPos(const cXyz& i_pos) { mKyuPos = i_pos; } + void setMichPos(const cXyz& i_pos) { mMichPos = i_pos; } + BOOL chkSygnal(int param_1) { return mSygnal & param_1; } + void SygnalClear() { mSygnal = 0; } + void onSygnal(int param_1) { mSygnal |= param_1; } + void setHanaActor(fopAc_ac_c* a_this) { if (a_this != NULL) mHanaActorMngr.entry(a_this); } + BOOL isPathInit() { return mIsPathInit; } + fopAc_ac_c* getHanaActor() { return mHanaActorMngr.getActorP(); } + fopAc_ac_c* getKyuActor() { return mKyuActorMngr.getActorP(); } + fopAc_ac_c* getMichActor() { return mMichActorMngr.getActorP(); } + + /* 0x00 */ daNpcF_ActorMngr_c mHanaActorMngr; + /* 0x08 */ daNpcF_ActorMngr_c mKyuActorMngr; + /* 0x10 */ daNpcF_ActorMngr_c mMichActorMngr; + /* 0x18 */ daNpcF_ActorMngr_c mDanchoActorMngr; + /* 0x20 */ int mSygnal; + /* 0x24 */ cXyz mKyuPos; + /* 0x30 */ cXyz mMichPos; + /* 0x3C */ cXyz mCenterPos; + /* 0x48 */ int mPlPoint; + /* 0x4C */ bool mIsPathInit; + /* 0x50 */ daNpcF_Path_c mPath; }; +class daNpcKasiHana_c : public daNpcF_c { +public: + typedef int (daNpcKasiHana_c::*actionFunc)(int); + typedef BOOL (daNpcKasiHana_c::*cutFunc)(int); + typedef BOOL (daNpcKasiHana_c::*EventFn)(int); + + /* 80A1BE44 */ daNpcKasiHana_c(); + /* 80A1C0A4 */ ~daNpcKasiHana_c(); + /* 80A1C334 */ cPhs__Step Create(); + /* 80A1C5B0 */ int CreateHeap(); + /* 80A1C734 */ int Delete(); + /* 80A1C768 */ int Execute(); + /* 80A1C78C */ int Draw(); + /* 80A1C7D8 */ int ctrlJoint(J3DJoint*, J3DModel*); + /* 80A1C964 */ static int createHeapCallBack(fopAc_ac_c*); + /* 80A1C984 */ static int ctrlJointCallBack(J3DJoint*, int); + /* 80A1C9D0 */ void setParam(); + /* 80A1CA60 */ BOOL main(); + /* 80A1CD28 */ void setAttnPos(); + /* 80A1CED0 */ void setMotionAnm(int, f32); + /* 80A1CFA0 */ void setMotion(int, f32, int); + /* 80A1CFE8 */ int drawDbgInfo(); + /* 80A1CFF0 */ void reset(); + /* 80A1D238 */ void playMotion(); + /* 80A1D604 */ void playMotionAnmLoop(daNpcF_c::daNpcF_anmPlayData***); + /* 80A1D77C */ BOOL setAction(actionFunc); + /* 80A1D824 */ void setLookMode(int); + /* 80A1D848 */ void lookat(); + /* 80A1DA28 */ BOOL step(s16, int); + /* 80A1DB1C */ BOOL chkFindPlayer(); + /* 80A1DC00 */ int wait(int); + /* 80A1E184 */ int chace_st(int); + /* 80A1E228 */ int chace(int); + /* 80A1E3AC */ cXyz getChacePos(); + /* 80A1E4AC */ int turn(int); + /* 80A1E578 */ int fear(int); + /* 80A1E78C */ daTagEscape_c* srchWolfTag(); + /* 80A1E7F4 */ static void* _srch_escape_tag(void*, void*); + /* 80A1E8C4 */ int getWolfPathNearIdx(); + /* 80A1E9F8 */ int talk(int); + /* 80A1EB5C */ int demo(int); + /* 80A1EE38 */ int escape(int); + /* 80A1EF90 */ int cheer(int); + /* 80A1F198 */ BOOL _turn_to_link(s16); + /* 80A1F1E4 */ BOOL _turn_pos(cXyz const&, s16); + /* 80A1F240 */ BOOL actor_front_check(fopAc_ac_c*); + /* 80A1F318 */ void _getOffset(cXyz const&, cXyz&); + /* 80A1F384 */ BOOL _Evt_Kasi_Appear(int); + /* 80A1F42C */ BOOL _Evt_Kasi_Appear_CutInit(int const&); + /* 80A1F50C */ BOOL _Evt_Kasi_Appear_CutMain(int const&); + /* 80A1F638 */ BOOL _Evt_Kasi_Talk(int); + /* 80A1F740 */ BOOL _Evt_Kasi_Talk_CutInit(int const&); + /* 80A1F860 */ BOOL _Evt_Kasi_Talk_CutMain(int const&, int); + /* 80A1F9F4 */ BOOL _Evt_Kasi(int); + /* 80A1FA9C */ BOOL _Evt_Kasi_CutInit(int const&); + /* 80A1FBC4 */ BOOL _Evt_Kasi_CutMain(int const&); + /* 80A1FD64 */ BOOL _Evt_Kasi_Cheer(int); + /* 80A1FE6C */ BOOL _Evt_Kasi_Cheer_CutInit(int const&); + /* 80A1FF78 */ BOOL _Evt_Kasi_Cheer_CutMain(int const&, int); + /* 80A2016C */ BOOL _Evt_Kasi_Cheer2(int); + /* 80A20244 */ BOOL _Evt_Kasi_Cheer2_CutInit(int const&); + /* 80A20350 */ BOOL _Evt_Kasi_Cheer2_CutMain(int const&, int); + /* 80A20678 */ void adjustShapeAngle(); + + int getMessageNo() { return home.angle.x; } + s8 getType() { + s8 rv = fopAcM_GetParam(this) & 0xFF; + + if (rv == 0xFF) { + rv = 0; + } + + return rv; + } + void off_talked() { mTalked = false; } + BOOL is_talked() { return mTalked; } + BOOL is_escape() { return mEscape; } + void chgWeightHeavy() { mCcStts.SetWeight(0xFE); } + void chgWeightLight() { mCcStts.SetWeight(0xD8); } + u8 getRailNo() { return fopAcM_GetParam(this) >> 8; } + bool chkAction(actionFunc action) { return action == mAction; } + int getSwitchBitNo() { return (fopAcM_GetParam(this) >> 16) & 0xFF; } + BOOL pl_front_check() { return actor_front_check(daPy_getPlayerActorClass()); } + void setEscapePathDir() { if (pl_front_check()) mPath.reverse(); } + + static EventFn mEvtSeqList[6]; + static daTagEscape_c* mTargetTag; + static f32 mTargetTagDist; + static s16 mWolfAngle; + +private: + /* 0x0B48 */ Z2CreatureCitizen mSound; + /* 0x0BEC */ u8 field_0xbec[0xbf0 - 0xbec]; + /* 0x0BF0 */ daNpcF_Lookat_c mLookat; + /* 0x0C8C */ daNpcF_ActorMngr_c mActorMngr[1]; + /* 0x0C94 */ daNpcF_Path_c mPath; + /* 0x12C4 */ daNpcKasiHana_HIO_c* mHIO; + /* 0x12C8 */ dCcD_Cyl mCyl; + /* 0x1404 */ s8 mType; + /* 0x1405 */ u8 field_0x1405; + /* 0x1406 */ s16 mMode; + /* 0x1408 */ actionFunc mAction; + /* 0x1414 */ request_of_phase_process_class mPhases[3]; + /* 0x142C */ fpc_ProcID field_0x142c; + /* 0x1430 */ int field_0x1430; + /* 0x1434 */ int field_0x1434; + /* 0x1438 */ int mMessageNo; + /* 0x143C */ s16 mLookMode; + /* 0x143E */ s16 field_0x143e; + /* 0x1440 */ u8 field_0x1440; + /* 0x1441 */ s8 field_0x1441; + /* 0x1442 */ bool mTalked; + /* 0x1443 */ bool mEscape; + /* 0x1444 */ u8 field_0x1444; + /* 0x1445 */ bool field_0x1445; + /* 0x1448 */ daNpcKasi_Mng_c mKasiMng; +}; + +STATIC_ASSERT(sizeof(daNpcKasiHana_c) == 0x1ac8); + #endif /* D_A_NPC_KASI_HANA_H */ diff --git a/include/d/actor/d_a_npc_kasi_kyu.h b/include/d/actor/d_a_npc_kasi_kyu.h index 0d47ca4d27c..d5dc5393238 100644 --- a/include/d/actor/d_a_npc_kasi_kyu.h +++ b/include/d/actor/d_a_npc_kasi_kyu.h @@ -2,6 +2,7 @@ #define D_A_NPC_KASI_KYU_H #include "d/actor/d_a_npc.h" +#include "d/actor/d_a_tag_escape.h" /** * @ingroup actors-npcs @@ -10,76 +11,143 @@ * * @details * - */ -class daNpcKasiKyu_c : public fopAc_ac_c { +*/ + +struct daNpcKasiKyu_HIOParam { + /* 0x00 */ daNpcF_HIOParam common; + /* 0x6C */ s16 escape_time; // 逃げるまでの時間 - Escape Time + /* 0x70 */ f32 escape_spd; // 逃げる速度 - Escape Speed +}; + +class daNpcKasiKyu_HIO_c +#ifdef DEBUG +: public mDoHIO_entry_c +#endif +{ + /* 0x8 */ daNpcKasiKyu_HIOParam param; +}; + +class daNpcKasiKyu_c : public daNpcF_c { public: + typedef int (daNpcKasiKyu_c::*actionFunc)(int); + typedef BOOL (daNpcKasiKyu_c::*EventFn)(int); + /* 80A219CC */ daNpcKasiKyu_c(); /* 80A21C14 */ ~daNpcKasiKyu_c(); - /* 80A21E24 */ void Create(); - /* 80A220A0 */ void CreateHeap(); - /* 80A22224 */ void Delete(); - /* 80A22258 */ void Execute(); - /* 80A22284 */ void Draw(); - /* 80A222D0 */ void ctrlJoint(J3DJoint*, J3DModel*); - /* 80A2245C */ void createHeapCallBack(fopAc_ac_c*); - /* 80A2247C */ void ctrlJointCallBack(J3DJoint*, int); + /* 80A21E24 */ cPhs__Step Create(); + /* 80A220A0 */ int CreateHeap(); + /* 80A22224 */ int Delete(); + /* 80A22258 */ int Execute(); + /* 80A22284 */ int Draw(); + /* 80A222D0 */ int ctrlJoint(J3DJoint*, J3DModel*); + /* 80A2245C */ static int createHeapCallBack(fopAc_ac_c*); + /* 80A2247C */ static int ctrlJointCallBack(J3DJoint*, int); /* 80A224C8 */ void setParam(); - /* 80A22534 */ void main(); + /* 80A22534 */ BOOL main(); /* 80A227DC */ void setAttnPos(); - /* 80A22984 */ bool setMotionAnm(int, f32); + /* 80A22984 */ void setMotionAnm(int, f32); /* 80A22A54 */ void setMotion(int, f32, int); - /* 80A22A9C */ bool drawDbgInfo(); + /* 80A22A9C */ BOOL drawDbgInfo(); /* 80A22AA4 */ void reset(); /* 80A22CD8 */ void playMotion(); /* 80A2310C */ void playMotionAnmLoop(daNpcF_c::daNpcF_anmPlayData***); - /* 80A23284 */ void setAction(int (daNpcKasiKyu_c::*)(int)); + /* 80A23284 */ BOOL setAction(int (daNpcKasiKyu_c::*)(int)); /* 80A2332C */ void setLookMode(int); /* 80A23350 */ void lookat(); - /* 80A23530 */ void step(s16, int); - /* 80A23624 */ void chkFindPlayer(); - /* 80A23708 */ void wait(int); - /* 80A23AB4 */ void fear(int); - /* 80A23C90 */ void srchWolfTag(); - /* 80A23CF8 */ void _srch_escape_tag(void*, void*); - /* 80A23DC8 */ void getWolfPathNearIdx(); - /* 80A23EFC */ void chace_st(int); - /* 80A23FA0 */ void chace(int); - /* 80A24110 */ void getChacePos(); - /* 80A241CC */ void turn_link(int); - /* 80A2428C */ void turn_home(int); - /* 80A24370 */ void turn_center(int); - /* 80A24440 */ void talk_dummy(int); - /* 80A244B8 */ void kya(int); - /* 80A24590 */ void kya2(int); - /* 80A24628 */ void kya_stop(int); - /* 80A246FC */ void iyan(int); - /* 80A24774 */ void iyan_look(int); - /* 80A2484C */ void turn_hana(int); - /* 80A2493C */ void escape(int); - /* 80A24A54 */ void wait_dummy(int); - /* 80A24AD8 */ void cheer(int); - /* 80A24CC4 */ void _turn_to_link(s16); - /* 80A24D10 */ void _turn_pos(cXyz const&, s16); - /* 80A24D6C */ void actor_front_check(fopAc_ac_c*); + /* 80A23530 */ BOOL step(s16, int); + /* 80A23624 */ BOOL chkFindPlayer(); + /* 80A23708 */ int wait(int); + /* 80A23AB4 */ int fear(int); + /* 80A23C90 */ daTagEscape_c* srchWolfTag(); + /* 80A23CF8 */ static void* _srch_escape_tag(void*, void*); + /* 80A23DC8 */ int getWolfPathNearIdx(); + /* 80A23EFC */ int chace_st(int); + /* 80A23FA0 */ int chace(int); + /* 80A24110 */ cXyz getChacePos(); + /* 80A241CC */ int turn_link(int); + /* 80A2428C */ int turn_home(int); + /* 80A24370 */ int turn_center(int); + /* 80A24440 */ int talk_dummy(int); + /* 80A244B8 */ int kya(int); + /* 80A24590 */ int kya2(int); + /* 80A24628 */ int kya_stop(int); + /* 80A246FC */ int iyan(int); + /* 80A24774 */ int iyan_look(int); + /* 80A2484C */ int turn_hana(int); + /* 80A2493C */ int escape(int); + /* 80A24A54 */ int wait_dummy(int); + /* 80A24AD8 */ int cheer(int); + /* 80A24CC4 */ BOOL _turn_to_link(s16); + /* 80A24D10 */ BOOL _turn_pos(cXyz const&, s16); + /* 80A24D6C */ BOOL actor_front_check(fopAc_ac_c*); /* 80A24E44 */ void _getOffset(cXyz const&, cXyz&); - /* 80A25848 */ void adjustShapeAngle(); + /* 80A25848 */ void adjustShapeAngle() {} - static u8 mEvtSeqList[12]; - static u8 mTargetTag[4]; - static u8 mTargetTagDist[4]; + s8 getType() { + s8 rv = fopAcM_GetParam(this) & 0xFF; + + if (rv == 0xFF) { + rv = 0; + } + + return rv; + } + int getMessageNo() { return home.angle.x; } + u8 getRailNo() { return fopAcM_GetParam(this) >> 8; } + void setSygnal(int i_sygnal) { mSygnal = i_sygnal; } + void setChacePos(cXyz& i_chacePos) { mChacePos = i_chacePos; } + void setCenterPos(cXyz& i_centerPos) { mCenterPos = i_centerPos; } + void setPlPoint(int i_plPoint) { mPlPoint = i_plPoint; } + void off_talked() { mTalked = false; } + BOOL is_talked() { return mTalked; } + BOOL is_fear() { return mFear; } + BOOL is_escape() { return mEscape; } + void chgWeightHeavy() { mCcStts.SetWeight(0xFE); } + void chgWeightLight() { mCcStts.SetWeight(0xD8); } + BOOL pl_front_check() { return actor_front_check(daPy_getPlayerActorClass()); } + + static EventFn mEvtSeqList[1]; + static daTagEscape_c* mTargetTag; + static f32 mTargetTagDist; + static s16 mWolfAngle; private: - /* 0x568 */ u8 field_0x568[0x146c - 0x568]; + /* 0x0B48 */ Z2CreatureCitizen mSound; + /* 0x0BEC */ u8 field_0xbec[0xbf0 - 0xbec]; + /* 0x0BF0 */ daNpcF_Lookat_c mLookat; + /* 0x0C8C */ daNpcF_ActorMngr_c mActorMngr[1]; + /* 0x0C94 */ daNpcF_Path_c mPath; + /* 0x12C4 */ daNpcKasiKyu_HIO_c* mHIO; + /* 0x12C8 */ dCcD_Cyl mCyl; + /* 0x1404 */ s16 mMode; + /* 0x1408 */ actionFunc mAction; + /* 0x1414 */ request_of_phase_process_class mPhases[3]; + /* 0x142C */ fpc_ProcID field_0x142c; + /* 0x1430 */ int field_0x1430; + /* 0x1434 */ int field_0x1434; + /* 0x1438 */ int mMessageNo; + /* 0x143C */ s16 mLookMode; + /* 0x143E */ s16 field_0x143e; + /* 0x1440 */ int mSygnal; + /* 0x1444 */ cXyz mChacePos; + /* 0x1450 */ cXyz mCenterPos; + /* 0x145C */ int mPlPoint; + /* 0x1460 */ int field_0x1460; + /* 0x1464 */ s8 mType; + /* 0x1465 */ s8 field_0x1465; + /* 0x1466 */ bool mTalked; + /* 0x1467 */ bool mFear; + /* 0x1468 */ bool mEscape; + /* 0x1469 */ u8 field_0x1469; }; STATIC_ASSERT(sizeof(daNpcKasiKyu_c) == 0x146c); class daNpcKasiKyu_Param_c { public: - /* 80A2584C */ ~daNpcKasiKyu_Param_c(); + /* 80A2584C */ virtual ~daNpcKasiKyu_Param_c() {} - static u8 const m[116]; + static daNpcKasiKyu_HIOParam const m; }; - #endif /* D_A_NPC_KASI_KYU_H */ diff --git a/include/d/actor/d_a_npc_kasi_mich.h b/include/d/actor/d_a_npc_kasi_mich.h index 60013d5bc18..d40c2a44896 100644 --- a/include/d/actor/d_a_npc_kasi_mich.h +++ b/include/d/actor/d_a_npc_kasi_mich.h @@ -2,6 +2,7 @@ #define D_A_NPC_KASI_MICH_H #include "d/actor/d_a_npc.h" +#include "d/actor/d_a_tag_escape.h" /** * @ingroup actors-npcs @@ -10,76 +11,143 @@ * * @details * - */ -class daNpcKasiMich_c : public fopAc_ac_c { +*/ + +struct daNpcKasiMich_HIOParam { + /* 0x00 */ daNpcF_HIOParam common; + /* 0x6C */ s16 escape_time; // 逃げるまでの時間 - Escape Time + /* 0x70 */ f32 escape_spd; // 逃げる速度 - Escape Speed +}; + +class daNpcKasiMich_HIO_c +#ifdef DEBUG +: public mDoHIO_entry_c +#endif +{ + /* 0x8 */ daNpcKasiMich_HIOParam param; +}; + +class daNpcKasiMich_c : public daNpcF_c { public: + typedef int (daNpcKasiMich_c::*actionFunc)(int); + typedef BOOL (daNpcKasiMich_c::*EventFn)(int); + /* 80A261CC */ daNpcKasiMich_c(); /* 80A26414 */ ~daNpcKasiMich_c(); - /* 80A26624 */ void Create(); - /* 80A268A0 */ void CreateHeap(); - /* 80A26A24 */ void Delete(); - /* 80A26A58 */ void Execute(); - /* 80A26A84 */ void Draw(); - /* 80A26AD0 */ void ctrlJoint(J3DJoint*, J3DModel*); - /* 80A26C5C */ void createHeapCallBack(fopAc_ac_c*); - /* 80A26C7C */ void ctrlJointCallBack(J3DJoint*, int); + /* 80A26624 */ cPhs__Step Create(); + /* 80A268A0 */ int CreateHeap(); + /* 80A26A24 */ int Delete(); + /* 80A26A58 */ int Execute(); + /* 80A26A84 */ int Draw(); + /* 80A26AD0 */ int ctrlJoint(J3DJoint*, J3DModel*); + /* 80A26C5C */ static int createHeapCallBack(fopAc_ac_c*); + /* 80A26C7C */ static int ctrlJointCallBack(J3DJoint*, int); /* 80A26CC8 */ void setParam(); - /* 80A26D34 */ void main(); + /* 80A26D34 */ BOOL main(); /* 80A26FDC */ void setAttnPos(); - /* 80A27184 */ bool setMotionAnm(int, f32); + /* 80A27184 */ void setMotionAnm(int, f32); /* 80A27254 */ void setMotion(int, f32, int); - /* 80A2729C */ bool drawDbgInfo(); + /* 80A2729C */ BOOL drawDbgInfo(); /* 80A272A4 */ void reset(); /* 80A274D8 */ void playMotion(); /* 80A2790C */ void playMotionAnmLoop(daNpcF_c::daNpcF_anmPlayData***); - /* 80A27A84 */ void setAction(int (daNpcKasiMich_c::*)(int)); + /* 80A27A84 */ BOOL setAction(actionFunc); /* 80A27B2C */ void setLookMode(int); /* 80A27B50 */ void lookat(); - /* 80A27D30 */ void step(s16, int); - /* 80A27E24 */ void chkFindPlayer(); - /* 80A27F08 */ void wait(int); - /* 80A282B4 */ void fear(int); - /* 80A28490 */ void srchWolfTag(); - /* 80A284F8 */ void _srch_escape_tag(void*, void*); - /* 80A285C8 */ void getWolfPathNearIdx(); - /* 80A286FC */ void chace_st(int); - /* 80A287A0 */ void chace(int); - /* 80A28910 */ void getChacePos(); - /* 80A289CC */ void turn_link(int); - /* 80A28A8C */ void turn_home(int); - /* 80A28B70 */ void turn_center(int); - /* 80A28C40 */ void talk_dummy(int); - /* 80A28CB8 */ void kya(int); - /* 80A28D90 */ void kya2(int); - /* 80A28E28 */ void kya_stop(int); - /* 80A28EFC */ void iyan(int); - /* 80A28F74 */ void escape(int); - /* 80A2908C */ void iyan_look(int); - /* 80A29164 */ void turn_hana(int); - /* 80A291E8 */ void wait_dummy(int); - /* 80A2926C */ void cheer(int); - /* 80A29458 */ void _turn_to_link(s16); - /* 80A294A4 */ void _turn_pos(cXyz const&, s16); - /* 80A29500 */ void actor_front_check(fopAc_ac_c*); + /* 80A27D30 */ BOOL step(s16, int); + /* 80A27E24 */ BOOL chkFindPlayer(); + /* 80A27F08 */ int wait(int); + /* 80A282B4 */ int fear(int); + /* 80A28490 */ daTagEscape_c* srchWolfTag(); + /* 80A284F8 */ static void* _srch_escape_tag(void*, void*); + /* 80A285C8 */ int getWolfPathNearIdx(); + /* 80A286FC */ int chace_st(int); + /* 80A287A0 */ int chace(int); + /* 80A28910 */ cXyz getChacePos(); + /* 80A289CC */ int turn_link(int); + /* 80A28A8C */ int turn_home(int); + /* 80A28B70 */ int turn_center(int); + /* 80A28C40 */ int talk_dummy(int); + /* 80A28CB8 */ int kya(int); + /* 80A28D90 */ int kya2(int); + /* 80A28E28 */ int kya_stop(int); + /* 80A28EFC */ int iyan(int); + /* 80A28F74 */ int escape(int); + /* 80A2908C */ int iyan_look(int); + /* 80A29164 */ int turn_hana(int); + /* 80A291E8 */ int wait_dummy(int); + /* 80A2926C */ int cheer(int); + /* 80A29458 */ BOOL _turn_to_link(s16); + /* 80A294A4 */ BOOL _turn_pos(cXyz const&, s16); + /* 80A29500 */ BOOL actor_front_check(fopAc_ac_c*); /* 80A295D8 */ void _getOffset(cXyz const&, cXyz&); - /* 80A29FDC */ void adjustShapeAngle(); + /* 80A29FDC */ void adjustShapeAngle() {} - static u8 mEvtSeqList[12]; - static u8 mTargetTag[4]; - static u8 mTargetTagDist[4]; + s8 getType() { + s8 rv = fopAcM_GetParam(this) & 0xFF; + + if (rv == 0xFF) { + rv = 0; + } + + return rv; + } + int getMessageNo() { return home.angle.x; } + u8 getRailNo() { return fopAcM_GetParam(this) >> 8; } + void setSygnal(int i_sygnal) { mSygnal = i_sygnal; } + void setChacePos(cXyz& i_chacePos) { mChacePos = i_chacePos; } + void setCenterPos(cXyz& i_centerPos) { mCenterPos = i_centerPos; } + void setPlPoint(int i_plPoint) { mPlPoint = i_plPoint; } + void off_talked() { mTalked = false; } + BOOL is_talked() { return mTalked; } + BOOL is_fear() { return mFear; } + BOOL is_escape() { return mEscape; } + void chgWeightHeavy() { mCcStts.SetWeight(0xFE); } + void chgWeightLight() { mCcStts.SetWeight(0xD8); } + BOOL pl_front_check() { return actor_front_check(daPy_getPlayerActorClass()); } + + static EventFn mEvtSeqList[1]; + static daTagEscape_c* mTargetTag; + static f32 mTargetTagDist; + static s16 mWolfAngle; private: - /* 0x568 */ u8 field_0x568[0x146c - 0x568]; + /* 0x0B48 */ Z2CreatureCitizen mSound; + /* 0x0BEC */ u8 field_0xbec[0xbf0 - 0xbec]; + /* 0x0BF0 */ daNpcF_Lookat_c mLookat; + /* 0x0C8C */ daNpcF_ActorMngr_c mActorMngr[1]; + /* 0x0C94 */ daNpcF_Path_c mPath; + /* 0x12C4 */ daNpcKasiMich_HIO_c* mHIO; + /* 0x12C8 */ dCcD_Cyl mCyl; + /* 0x1404 */ s16 mMode; + /* 0x1408 */ actionFunc mAction; + /* 0x1414 */ request_of_phase_process_class mPhases[3]; + /* 0x142C */ fpc_ProcID field_0x142c; + /* 0x1430 */ int field_0x1430; + /* 0x1434 */ int field_0x1434; + /* 0x1438 */ int mMessageNo; + /* 0x143C */ s16 mLookMode; + /* 0x143E */ s16 field_0x143e; + /* 0x1440 */ s16 field_0x1440; + /* 0x1444 */ int mSygnal; + /* 0x1448 */ cXyz mChacePos; + /* 0x1454 */ cXyz mCenterPos; + /* 0x1460 */ int mPlPoint; + /* 0x1464 */ s8 mType; + /* 0x1465 */ s8 field_0x1465; + /* 0x1466 */ bool mTalked; + /* 0x1467 */ bool mFear; + /* 0x1468 */ bool mEscape; + /* 0x1469 */ u8 field_0x1469; }; STATIC_ASSERT(sizeof(daNpcKasiMich_c) == 0x146c); class daNpcKasiMich_Param_c { public: - /* 80A29FE0 */ ~daNpcKasiMich_Param_c(); + /* 80A29FE0 */ virtual ~daNpcKasiMich_Param_c() {} - static u8 const m[116]; + static daNpcKasiMich_HIOParam const m; }; - #endif /* D_A_NPC_KASI_MICH_H */ diff --git a/include/d/d_com_inf_game.h b/include/d/d_com_inf_game.h index 4ae8c7100bd..a669fcd58f6 100644 --- a/include/d/d_com_inf_game.h +++ b/include/d/d_com_inf_game.h @@ -871,11 +871,13 @@ int dComIfG_resDelete(request_of_phase_process_class* i_phase, char const* i_res int dComIfG_changeOpeningScene(scene_class* scene, s16 procName); int dComIfG_resLoad(request_of_phase_process_class* i_phase, char const* i_arcName); int dComIfG_resLoad(request_of_phase_process_class* i_phase, char const* i_resName, JKRHeap* heap); +int dComIfG_TimerStop(int); int dComIfG_TimerDeleteRequest(int i_mode); int dComIfG_TimerStart(int i_mode, s16 i_time); u32 dComIfG_getTrigA(u32 i_padNo); bool dComIfGp_isLightDropMapVisible(); +int dComIfG_TimerReStart(int); int dComIfG_TimerEnd(int i_mode, int param_1); void dComIfGs_onStageBossEnemy(int i_stageNo); diff --git a/include/d/d_timer.h b/include/d/d_timer.h index 17742833af5..20c9e0a5592 100644 --- a/include/d/d_timer.h +++ b/include/d/d_timer.h @@ -14,6 +14,8 @@ s32 dTimer_createTimer(s32 i_mode, u32 i_limitMs, u8 i_type, u8 param_3, f32 par u32 dTimer_createGetIn2D(s32 param_0, cXyz i_pos); int dTimer_getRestTimeMs(); u8 dTimer_isStart(); +void dTimer_show(); +void dTimer_hide(); u8 dTimer_isReadyFlag(); class dDlst_TimerScrnDraw_c : public dDlst_base_c { diff --git a/src/d/actor/d_a_b_gg.cpp b/src/d/actor/d_a_b_gg.cpp index dd9bcf3ad2c..6ad20441794 100644 --- a/src/d/actor/d_a_b_gg.cpp +++ b/src/d/actor/d_a_b_gg.cpp @@ -243,7 +243,7 @@ void daB_GG_c::initCc() { } // mSphAttr }; - mCcStts.Init(254, 0xFF, this); + mCcStts.Init(0xFE, 0xFF, this); mCcCyl.Set(ccCylSrc); mCcCyl.SetStts(&mCcStts); mCcCyl.SetC(current.pos); diff --git a/src/d/actor/d_a_b_gnd.cpp b/src/d/actor/d_a_b_gnd.cpp index 7b9a974abdf..90f17ee5c3b 100644 --- a/src/d/actor/d_a_b_gnd.cpp +++ b/src/d/actor/d_a_b_gnd.cpp @@ -4853,7 +4853,7 @@ static int daB_GND_Create(fopAc_ac_c* a_this) { a_this->health = 24; i_this->field_0x560 = 24; - i_this->mGndCcStts.Init(254, 0, a_this); + i_this->mGndCcStts.Init(0xFE, 0, a_this); i_this->mHorseCcStts.Init(150, 0, a_this); static dCcD_SrcSph h_cc_sph_src = { diff --git a/src/d/actor/d_a_e_gi.cpp b/src/d/actor/d_a_e_gi.cpp index 6892e38446c..192a583520d 100644 --- a/src/d/actor/d_a_e_gi.cpp +++ b/src/d/actor/d_a_e_gi.cpp @@ -1099,7 +1099,7 @@ int daE_GI_c::create() { health = 240; field_0x560 = 240; - mCcStts.Init(254, 0, this); + mCcStts.Init(0xFE, 0, this); mCcSph[0].Set(cc_gi_src); mCcSph[0].SetStts(&mCcStts); diff --git a/src/d/actor/d_a_npc_kasi_hana.cpp b/src/d/actor/d_a_npc_kasi_hana.cpp index 5fb330dbb11..ab4efa5e407 100644 --- a/src/d/actor/d_a_npc_kasi_hana.cpp +++ b/src/d/actor/d_a_npc_kasi_hana.cpp @@ -6,893 +6,2375 @@ #include "d/dolzel_rel.h" #include "d/actor/d_a_npc_kasi_hana.h" -#include "dol2asm.h" +#include "d/actor/d_a_npc_chin.h" +#include "d/actor/d_a_npc_kasi_kyu.h" +#include "d/actor/d_a_npc_kasi_mich.h" +#include "d/d_timer.h" +#include "Z2AudioLib/Z2Instances.h" -// -// Forward References: -// +enum kasi_hana_RES_File_ID { + /* BMDR */ + /* 0x5 */ BMDR_HANA = 0x5, -extern "C" void calcEscapeForm__15daNpcKasi_Mng_cFv(); -extern "C" void __dt__4cXyzFv(); -extern "C" void calcCenterPos__15daNpcKasi_Mng_cFv(); -extern "C" void getDistFromCenter__15daNpcKasi_Mng_cFv(); -extern "C" void getOffsetFromLeader__15daNpcKasi_Mng_cFRC4cXyzR4cXyz(); -extern "C" void __dt__5csXyzFv(); -extern "C" void initPath__15daNpcKasi_Mng_cFUcUs(); -extern "C" void getPlNearPoint__15daNpcKasi_Mng_cFv(); -extern "C" void getSygnalInfo__15daNpcKasi_Mng_cFv(); -extern "C" void sendInfo__15daNpcKasi_Mng_cFv(); -extern "C" void offTalk__15daNpcKasi_Mng_cFv(); -extern "C" void chkTalk__15daNpcKasi_Mng_cFv(); -extern "C" void chkFear__15daNpcKasi_Mng_cFv(); -extern "C" void chkEscape__15daNpcKasi_Mng_cFv(); -extern "C" void createHearts__15daNpcKasi_Mng_cFv(); -extern "C" void allDemoMove__15daNpcKasi_Mng_cFv(); -extern "C" void allDemoNotMove__15daNpcKasi_Mng_cFv(); -extern "C" void isMiniGamePlaying__15daNpcKasi_Mng_cFv(); -extern "C" void schMemberActor__15daNpcKasi_Mng_cFv(); -extern "C" void schDanchoActor__15daNpcKasi_Mng_cFv(); -extern "C" void deleteAllMember__15daNpcKasi_Mng_cFv(); -extern "C" void chgWeightHeavy__15daNpcKasi_Mng_cFv(); -extern "C" void chgWeightLight__15daNpcKasi_Mng_cFv(); -extern "C" void __ct__15daNpcKasiHana_cFv(); -extern "C" void __dt__15daNpcKasiHana_cFv(); -extern "C" void Create__15daNpcKasiHana_cFv(); -extern "C" void CreateHeap__15daNpcKasiHana_cFv(); -extern "C" void Delete__15daNpcKasiHana_cFv(); -extern "C" void Execute__15daNpcKasiHana_cFv(); -extern "C" void Draw__15daNpcKasiHana_cFv(); -extern "C" void ctrlJoint__15daNpcKasiHana_cFP8J3DJointP8J3DModel(); -extern "C" void createHeapCallBack__15daNpcKasiHana_cFP10fopAc_ac_c(); -extern "C" void ctrlJointCallBack__15daNpcKasiHana_cFP8J3DJointi(); -extern "C" void setParam__15daNpcKasiHana_cFv(); -extern "C" void main__15daNpcKasiHana_cFv(); -extern "C" void setAttnPos__15daNpcKasiHana_cFv(); -extern "C" void setMotionAnm__15daNpcKasiHana_cFif(); -extern "C" void setMotion__15daNpcKasiHana_cFifi(); -extern "C" bool drawDbgInfo__15daNpcKasiHana_cFv(); -extern "C" void reset__15daNpcKasiHana_cFv(); -extern "C" void playMotion__15daNpcKasiHana_cFv(); -extern "C" void playMotionAnmLoop__15daNpcKasiHana_cFPPPQ28daNpcF_c18daNpcF_anmPlayData(); -extern "C" void setAction__15daNpcKasiHana_cFM15daNpcKasiHana_cFPCvPvi_i(); -extern "C" void setLookMode__15daNpcKasiHana_cFi(); -extern "C" void lookat__15daNpcKasiHana_cFv(); -extern "C" void step__15daNpcKasiHana_cFsi(); -extern "C" void chkFindPlayer__15daNpcKasiHana_cFv(); -extern "C" void wait__15daNpcKasiHana_cFi(); -extern "C" void chace_st__15daNpcKasiHana_cFi(); -extern "C" void chace__15daNpcKasiHana_cFi(); -extern "C" void getChacePos__15daNpcKasiHana_cFv(); -extern "C" void turn__15daNpcKasiHana_cFi(); -extern "C" void fear__15daNpcKasiHana_cFi(); -extern "C" void srchWolfTag__15daNpcKasiHana_cFv(); -extern "C" void _srch_escape_tag__15daNpcKasiHana_cFPvPv(); -extern "C" void getWolfPathNearIdx__15daNpcKasiHana_cFv(); -extern "C" void talk__15daNpcKasiHana_cFi(); -extern "C" void demo__15daNpcKasiHana_cFi(); -extern "C" void escape__15daNpcKasiHana_cFi(); -extern "C" void cheer__15daNpcKasiHana_cFi(); -extern "C" void _turn_to_link__15daNpcKasiHana_cFs(); -extern "C" void _turn_pos__15daNpcKasiHana_cFRC4cXyzs(); -extern "C" void actor_front_check__15daNpcKasiHana_cFP10fopAc_ac_c(); -extern "C" void _getOffset__15daNpcKasiHana_cFRC4cXyzR4cXyz(); -extern "C" void _Evt_Kasi_Appear__15daNpcKasiHana_cFi(); -extern "C" void _Evt_Kasi_Appear_CutInit__15daNpcKasiHana_cFRCi(); -extern "C" void _Evt_Kasi_Appear_CutMain__15daNpcKasiHana_cFRCi(); -extern "C" void _Evt_Kasi_Talk__15daNpcKasiHana_cFi(); -extern "C" void _Evt_Kasi_Talk_CutInit__15daNpcKasiHana_cFRCi(); -extern "C" void _Evt_Kasi_Talk_CutMain__15daNpcKasiHana_cFRCii(); -extern "C" void _Evt_Kasi__15daNpcKasiHana_cFi(); -extern "C" void _Evt_Kasi_CutInit__15daNpcKasiHana_cFRCi(); -extern "C" void _Evt_Kasi_CutMain__15daNpcKasiHana_cFRCi(); -extern "C" void _Evt_Kasi_Cheer__15daNpcKasiHana_cFi(); -extern "C" void _Evt_Kasi_Cheer_CutInit__15daNpcKasiHana_cFRCi(); -extern "C" void _Evt_Kasi_Cheer_CutMain__15daNpcKasiHana_cFRCii(); -extern "C" void _Evt_Kasi_Cheer2__15daNpcKasiHana_cFi(); -extern "C" void _Evt_Kasi_Cheer2_CutInit__15daNpcKasiHana_cFRCi(); -extern "C" void _Evt_Kasi_Cheer2_CutMain__15daNpcKasiHana_cFRCii(); -extern "C" static void daNpcKasiHana_Create__FPv(); -extern "C" static void daNpcKasiHana_Delete__FPv(); -extern "C" static void daNpcKasiHana_Execute__FPv(); -extern "C" static void daNpcKasiHana_Draw__FPv(); -extern "C" static bool daNpcKasiHana_IsDelete__FPv(); -extern "C" void __dt__8cM3dGCylFv(); -extern "C" void __dt__8cM3dGAabFv(); -extern "C" void getCenterPos__15daNpcKasi_Mng_cFv(); -extern "C" void adjustShapeAngle__15daNpcKasiHana_cFv(); -extern "C" void __dt__21daNpcKasiHana_Param_cFv(); -extern "C" static void func_80A206C4(); -extern "C" static void func_80A206CC(); -extern "C" void __dt__13daNpcF_Path_cFv(); -extern "C" void __dt__16daNpcF_SPCurve_cFv(); -extern "C" void __dt__18daNpcF_ActorMngr_cFv(); -extern "C" void __ct__18daNpcF_ActorMngr_cFv(); -extern "C" void __dt__15daNpcF_Lookat_cFv(); -extern "C" void __ct__5csXyzFv(); -extern "C" void __ct__4cXyzFv(); -extern "C" void __dt__8daNpcF_cFv(); -extern "C" void __ct__8daNpcF_cFv(); -extern "C" void __dt__12dBgS_AcchCirFv(); -extern "C" void __dt__10dCcD_GSttsFv(); -extern "C" void __dt__12dBgS_ObjAcchFv(); -extern "C" void __dt__12J3DFrameCtrlFv(); -extern "C" bool ctrlBtk__8daNpcF_cFv(); -extern "C" void setCollisions__8daNpcF_cFv(); -extern "C" bool setExpressionAnm__8daNpcF_cFib(); -extern "C" bool setExpressionBtp__8daNpcF_cFi(); -extern "C" void setExpression__8daNpcF_cFif(); -extern "C" void drawOtherMdls__8daNpcF_cFv(); -extern "C" void __dt__10cCcD_GSttsFv(); -extern "C" void func_80A20F04(void* _this, int, int); -extern "C" void __sinit_d_a_npc_kasi_hana_cpp(); -extern "C" u8 const m__21daNpcKasiHana_Param_c[124]; -extern "C" extern char const* const d_a_npc_kasi_hana__stringBase0; -extern "C" u8 mEvtSeqList__15daNpcKasiHana_c[72]; -extern "C" u8 mTargetTag__15daNpcKasiHana_c[4]; -extern "C" u8 mTargetTagDist__15daNpcKasiHana_c[4]; -extern "C" u8 mWolfAngle__15daNpcKasiHana_c[2 + 2 /* padding */]; + /* BTP */ + /* 0x8 */ BTP_HANA = 0x8, -// -// External References: -// - -extern "C" void ZXYrotS__14mDoMtx_stack_cFRC5csXyz(); -extern "C" void setMorf__13mDoExt_morf_cFf(); -extern "C" void -__ct__16mDoExt_McaMorfSOFP12J3DModelDataP25mDoExt_McaMorfCallBack1_cP25mDoExt_McaMorfCallBack2_cP15J3DAnmTransformifiiP10Z2CreatureUlUl(); -extern "C" void stopZelAnime__16mDoExt_McaMorfSOFv(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void fopAc_IsActor__FPv(); -extern "C" void fopAcM_SearchByName__FsPP10fopAc_ac_c(); -extern "C" void fopAcM_delete__FP10fopAc_ac_c(); -extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); -extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff(); -extern "C" void fopAcM_searchActorAngleY__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void fopAcM_searchActorDistanceXZ__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void fopAcM_searchActorDistanceXZ2__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void fopAcM_fastCreateItem__FPC4cXyziiPC5csXyzPC4cXyzPfPfiiPFPv_i(); -extern "C" void fpcEx_Search__FPFPvPv_PvPv(); -extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_TimerStop__Fi(); -extern "C" void dComIfG_TimerReStart__Fi(); -extern "C" void onSwitch__12dSv_danBit_cFi(); -extern "C" void onSwitch__10dSv_info_cFii(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void reset__14dEvt_control_cFv(); -extern "C" void endCheck__16dEvent_manager_cFs(); -extern "C" void getMyStaffId__16dEvent_manager_cFPCcP10fopAc_ac_ci(); -extern "C" void getIsAddvance__16dEvent_manager_cFi(); -extern "C" void getMySubstanceP__16dEvent_manager_cFiPCci(); -extern "C" void cutEnd__16dEvent_manager_cFi(); -extern "C" void ChkPresentEnd__16dEvent_manager_cFv(); -extern "C" void __ct__12dBgS_AcchCirFv(); -extern "C" void SetWall__12dBgS_AcchCirFff(); -extern "C" void __dt__9dBgS_AcchFv(); -extern "C" void __ct__9dBgS_AcchFv(); -extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz(); -extern "C" void CrrPos__9dBgS_AcchFR4dBgS(); -extern "C" void __ct__11dBgS_GndChkFv(); -extern "C" void __dt__11dBgS_GndChkFv(); -extern "C" void __ct__11dBgS_LinChkFv(); -extern "C" void __dt__11dBgS_LinChkFv(); -extern "C" void SetObj__16dBgS_PolyPassChkFv(); -extern "C" void __ct__10dCcD_GSttsFv(); -extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c(); -extern "C" void __ct__12dCcD_GObjInfFv(); -extern "C" void __dt__12dCcD_GObjInfFv(); -extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl(); -extern "C" void initialize__18daNpcF_ActorMngr_cFv(); -extern "C" void entry__18daNpcF_ActorMngr_cFP10fopAc_ac_c(); -extern "C" void remove__18daNpcF_ActorMngr_cFv(); -extern "C" void getActorP__18daNpcF_ActorMngr_cFv(); -extern "C" void initialize__16daNpcF_SPCurve_cFP5dPathi(); -extern "C" void initialize__13daNpcF_Path_cFv(); -extern "C" void setPathInfo__13daNpcF_Path_cFUcScUc(); -extern "C" void reverse__13daNpcF_Path_cFv(); -extern "C" void getDstPos__13daNpcF_Path_cF4cXyzR4cXyz(); -extern "C" void initialize__15daNpcF_Lookat_cFv(); -extern "C" void setParam__15daNpcF_Lookat_cFffffffffffffsP4cXyz(); -extern "C" void calc__15daNpcF_Lookat_cFP10fopAc_ac_cPA4_fPP5csXyziii(); -extern "C" void execute__8daNpcF_cFv(); -extern "C" void draw__8daNpcF_cFiifP11_GXColorS10i(); -extern "C" void setMtx__8daNpcF_cFv(); -extern "C" void setMtx2__8daNpcF_cFv(); -extern "C" void initialize__8daNpcF_cFv(); -extern "C" void getTrnsfrmKeyAnmP__8daNpcF_cFPci(); -extern "C" void getTexPtrnAnmP__8daNpcF_cFPci(); -extern "C" void setMcaMorfAnm__8daNpcF_cFP18J3DAnmTransformKeyffiii(); -extern "C" void setBtpAnm__8daNpcF_cFP16J3DAnmTexPatternP12J3DModelDatafi(); -extern "C" void setEnvTevColor__8daNpcF_cFv(); -extern "C" void setRoomNo__8daNpcF_cFv(); -extern "C" void playMotionAnm__8daNpcF_cFPPPQ28daNpcF_c18daNpcF_anmPlayData(); -extern "C" void setLookatMtx__8daNpcF_cFiPif(); -extern "C" void ctrlMsgAnm__8daNpcF_cFRiRiP10fopAc_ac_ci(); -extern "C" void orderEvent__8daNpcF_cFiPcUsUsUcUs(); -extern "C" void changeEvent__8daNpcF_cFPcPcUsUs(); -extern "C" void chkActorInSight__8daNpcF_cFP10fopAc_ac_cf(); -extern "C" void chkActorInAttnArea__8daNpcF_cFP10fopAc_ac_cP10fopAc_ac_ci(); -extern "C" void initTalk__8daNpcF_cFiPP10fopAc_ac_c(); -extern "C" void talkProc__8daNpcF_cFPiiPP10fopAc_ac_c(); -extern "C" void turn__8daNpcF_cFsfi(); -extern "C" void getDistTableIdx__8daNpcF_cFii(); -extern "C" void daNpcF_chkEvtBit__FUl(); -extern "C" void dKy_darkworld_check__Fv(); -extern "C" void __ct__10dMsgFlow_cFv(); -extern "C" void __dt__10dMsgFlow_cFv(); -extern "C" void dTimer_show__Fv(); -extern "C" void dTimer_hide__Fv(); -extern "C" void Set__4cCcSFP8cCcD_Obj(); -extern "C" void __pl__4cXyzCFRC3Vec(); -extern "C" void __mi__4cXyzCFRC3Vec(); -extern "C" void __ct__5csXyzFsss(); -extern "C" void cM_rndF__Ff(); -extern "C" void __ct__11cBgS_GndChkFv(); -extern "C" void __dt__11cBgS_GndChkFv(); -extern "C" void __dt__13cBgS_PolyInfoFv(); -extern "C" void __dt__8cM3dGCirFv(); -extern "C" void SetC__8cM3dGCylFRC4cXyz(); -extern "C" void SetH__8cM3dGCylFf(); -extern "C" void SetR__8cM3dGCylFf(); -extern "C" void cLib_chaseAngleS__FPsss(); -extern "C" void cLib_targetAngleY__FPC3VecPC3Vec(); -extern "C" void cLib_targetAngleX__FPC4cXyzPC4cXyz(); -extern "C" void cLib_distanceAngleS__Fss(); -extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void __ct__17Z2CreatureCitizenFv(); -extern "C" void __dt__17Z2CreatureCitizenFv(); -extern "C" void init__17Z2CreatureCitizenFP3VecP3VecUcUc(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void init__12J3DFrameCtrlFs(); -extern "C" void __destroy_arr(); -extern "C" void __construct_array(); -extern "C" void __ptmf_test(); -extern "C" void __ptmf_cmpr(); -extern "C" void __ptmf_scall(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_25(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" extern u8 const __ptmf_null[12 + 4 /* padding */]; -extern "C" extern void* __vt__8dCcD_Cyl[36]; -extern "C" extern void* __vt__9dCcD_Stts[11]; -extern "C" u8 mCcDCyl__8daNpcF_c[68]; -extern "C" extern void* __vt__8daNpcF_c[18]; -extern "C" extern void* __vt__12cCcD_CylAttr[25]; -extern "C" extern void* __vt__14cCcD_ShapeAttr[22]; -extern "C" extern void* __vt__9cCcD_Stts[8]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" u8 mCurrentMtx__6J3DSys[48]; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; -extern "C" void __register_global_object(); - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 80A21080-80A21084 000000 0004+00 26/26 0/0 0/0 .rodata @3908 */ -SECTION_RODATA static u8 const lit_3908[4] = { - 0x00, - 0x00, - 0x00, - 0x00, + /* EVT */ + /* 0xB */ EVT_EVENT_LIST = 0xB, }; -COMPILER_STRIP_GATE(0x80A21080, &lit_3908); -/* 80A21084-80A21088 000004 0004+00 0/1 0/0 0/0 .rodata @3909 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3909 = -70.0f; -COMPILER_STRIP_GATE(0x80A21084, &lit_3909); -#pragma pop +enum girls_RES_File_ID { + /* BCK */ + /* 0x3 */ BCK_MICH_IYAN_WAIT = 0x3, + /* 0x4 */ BCK_MICH_KYA_TALK, + /* 0x5 */ BCK_MICH_OUEN_WAIT_A, + /* 0x6 */ BCK_MICH_OUEN_WAIT_B, +}; -/* 80A21088-80A2108C 000008 0004+00 0/1 0/0 0/0 .rodata @3910 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3910 = -140.0f; -COMPILER_STRIP_GATE(0x80A21088, &lit_3910); -#pragma pop +enum Wgeneral_RES_File_ID { + /* BCK */ + /* 0x03 */ BCK_W_2LADYTALK_A = 0x3, + /* 0x04 */ BCK_W_2LADYTALK_B, + /* 0x05 */ BCK_W_2NORMALTALK_A, + /* 0x06 */ BCK_W_2NORMALTALK_B, + /* 0x07 */ BCK_W_BROWSE_A, + /* 0x08 */ BCK_W_BROWSE_B, + /* 0x09 */ BCK_W_CELLME, + /* 0x0A */ BCK_W_LOOK_A, + /* 0x0B */ BCK_W_LOOK_B, + /* 0x0C */ BCK_W_MARO_DANCE, + /* 0x0D */ BCK_W_RUN_A, + /* 0x0E */ BCK_W_RUN_B, + /* 0x0F */ BCK_W_SING, + /* 0x10 */ BCK_W_SIT_TO_WOLF_A, + /* 0x11 */ BCK_W_SIT_TO_WOLF_B, + /* 0x12 */ BCK_W_SITTALK_A, + /* 0x13 */ BCK_W_SITTALK_A_B, + /* 0x14 */ BCK_W_SITTALK_B, + /* 0x15 */ BCK_W_SITTALK_B_B, + /* 0x16 */ BCK_W_SITWAIT_A, + /* 0x17 */ BCK_W_SITWAIT_B, + /* 0x18 */ BCK_W_SURPRISE, + /* 0x19 */ BCK_W_TALK_A, + /* 0x1A */ BCK_W_TALK_B, + /* 0x1B */ BCK_W_TALK_B_WALL, + /* 0x1C */ BCK_W_TALK_C, + /* 0x1D */ BCK_W_TALK_WALL, + /* 0x1E */ BCK_W_TO_WOLF, + /* 0x1F */ BCK_W_WAIT_A, + /* 0x20 */ BCK_W_WAIT_B, + /* 0x21 */ BCK_W_WAIT_WALL, + /* 0x22 */ BCK_W_WALK_A, + /* 0x23 */ BCK_W_WALK_B, +}; -/* 80A1AFAC-80A1B09C 0000EC 00F0+00 1/1 0/0 0/0 .text calcEscapeForm__15daNpcKasi_Mng_cFv - */ +enum RES_Name { + /* 0x0 */ KASI_HANA, + /* 0x1 */ GIRLS, + /* 0x2 */ WGENERAL, +}; + +enum Animation { + /* 0x0 */ ANM_MICH_IYAN_WAIT, + /* 0x1 */ ANM_MICH_KYA_TALK, + /* 0x2 */ ANM_MICH_OUEN_WAIT_A, + /* 0x3 */ ANM_MICH_OUEN_WAIT_B, + /* 0x4 */ ANM_W_WAIT_A, + /* 0x5 */ ANM_W_TALK_B, + /* 0x6 */ ANM_W_TO_WOLF, + /* 0x7 */ ANM_W_WALK_A, + /* 0x8 */ ANM_W_LOOK_B, + /* 0x9 */ ANM_W_RUN_A, + /* 0xA */ ANM_W_SURPRISE, + /* 0xB */ ANM_W_WAIT_A_2, + /* 0xC */ ANM_W_TALK_A, + /* 0xD */ ANM_W_2LADYTALK_B, + /* 0xE */ ANM_W_2NORMALTALK_B, +}; + +enum Motion { + /* 0x0 */ MOT_MICH_KYA_TALK, + /* 0x1 */ MOT_MICH_IYAN_WAIT, + /* 0x2 */ MOT_MICH_OUEN_WAIT_A, + /* 0x3 */ MOT_MICH_OUEN_WAIT_B, + /* 0x4 */ MOT_W_WAIT_A, + /* 0x5 */ MOT_W_TALK_B, + /* 0x6 */ MOT_W_TO_WOLF, + /* 0x7 */ MOT_W_WALK_A, + /* 0x8 */ MOT_W_LOOK_B, + /* 0x9 */ MOT_W_RUN_A, + /* 0xA */ MOT_W_SURPRISE, + /* 0xB */ MOT_W_WAIT_A_LOOP, +}; + +enum Joint { + /* 0x00 */ JNT_CENTER, + /* 0x01 */ JNT_BACKBONE, + /* 0x02 */ JNT_NECK, + /* 0x03 */ JNT_HEAD, + /* 0x04 */ JNT_SHOULDERL, + /* 0x05 */ JNT_ARML1, + /* 0x06 */ JNT_ARML2, + /* 0x07 */ JNT_HANDL, + /* 0x08 */ JNT_SHOULDERR, + /* 0x09 */ JNT_ARMR1, + /* 0x0A */ JNT_ARMR2, + /* 0x0B */ JNT_HANDR, + /* 0x0C */ JNT_WAIST, + /* 0x0D */ JNT_LEGL1, + /* 0x0E */ JNT_LEGL2, + /* 0x0F */ JNT_FOOTL, + /* 0x10 */ JNT_SKIRTL, + /* 0x11 */ JNT_LEGR1, + /* 0x12 */ JNT_LEGR2, + /* 0x13 */ JNT_FOOTR, + /* 0x14 */ JNT_SKIRTR, +}; + +enum Event_Names { + /* 0x0 */ EVT_NONE, + /* 0x1 */ EVT_APPEAR, + /* 0x2 */ EVT_TALK, + /* 0x3 */ EVT_HEART, + /* 0x4 */ EVT_CHEER, + /* 0x5 */ EVT_CHEER2, +}; + +enum Type { + /* 0x0 */ TYPE_WAIT, + /* 0x1 */ TYPE_CHEER, +}; + +class daNpcKasiHana_Param_c { +public: + /* 80A2067C */ virtual ~daNpcKasiHana_Param_c() {} + + static daNpcKasiHana_HIOParam const m; +}; + +/* 80A21854-80A21858 000054 0004+00 1/1 0/0 0/0 .bss l_HIO */ +static daNpcKasiHana_Param_c l_HIO; + +/* 80A1AFAC-80A1B09C 0000EC 00F0+00 1/1 0/0 0/0 .text calcEscapeForm__15daNpcKasi_Mng_cFv */ void daNpcKasi_Mng_c::calcEscapeForm() { - // NONMATCHING + fopAc_ac_c* hana_p = mHanaActorMngr.getActorP(); + if (hana_p != NULL){ + cXyz sp1c(0.0f, 0.0f, -70.0f); + cXyz sp28(0.0f, 0.0f, -140.0f); + cXyz sp34 = fopAcM_GetPosition(hana_p); + cXyz sp40; + getOffsetFromLeader(sp1c, sp40); + setKyuPos(sp34 + sp40); + getOffsetFromLeader(sp28, sp40); + setMichPos(sp34 + sp40); + } } -/* 80A1B09C-80A1B0D8 0001DC 003C+00 5/5 0/0 0/0 .text __dt__4cXyzFv */ -// cXyz::~cXyz() { -extern "C" void __dt__4cXyzFv() { - // NONMATCHING +/* 80A1B0D8-80A1B1C8 000218 00F0+00 2/2 0/0 0/0 .text calcCenterPos__15daNpcKasi_Mng_cFv */ +BOOL daNpcKasi_Mng_c::calcCenterPos() { + fopAc_ac_c* hana_p = mHanaActorMngr.getActorP(); + fopAc_ac_c* kyu_p = mKyuActorMngr.getActorP(); + fopAc_ac_c* mich_p = mMichActorMngr.getActorP(); + + if (hana_p == NULL || kyu_p == NULL || mich_p == NULL) { + return FALSE; + } + + cXyz hana_pos(*fopAcM_GetPosition_p(hana_p)); + cXyz kyu_pos(*fopAcM_GetPosition_p(kyu_p)); + cXyz mich_pos(*fopAcM_GetPosition_p(mich_p)); + f32 pX = (hana_pos.x + kyu_pos.x + mich_pos.x) / 3.0f; + f32 pY = (hana_pos.y + kyu_pos.y + mich_pos.y) / 3.0f; + f32 pZ = (hana_pos.z + kyu_pos.z + mich_pos.z) / 3.0f; + mCenterPos.set(pX, pY, pZ); + + return TRUE; } -/* ############################################################################################## */ -/* 80A2108C-80A21090 00000C 0004+00 1/1 0/0 0/0 .rodata @3944 */ -SECTION_RODATA static f32 const lit_3944 = 3.0f; -COMPILER_STRIP_GATE(0x80A2108C, &lit_3944); - -/* 80A1B0D8-80A1B1C8 000218 00F0+00 2/2 0/0 0/0 .text calcCenterPos__15daNpcKasi_Mng_cFv - */ -void daNpcKasi_Mng_c::calcCenterPos() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A21090-80A21098 000010 0004+04 9/20 0/0 0/0 .rodata @3998 */ -SECTION_RODATA static f32 const lit_3998[1 + 1 /* padding */] = { - -1.0f, - /* padding */ - 0.0f, -}; -COMPILER_STRIP_GATE(0x80A21090, &lit_3998); - -/* 80A21098-80A210A0 000018 0008+00 0/1 0/0 0/0 .rodata @3999 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3999[8] = { - 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A21098, &lit_3999); -#pragma pop - -/* 80A210A0-80A210A8 000020 0008+00 0/1 0/0 0/0 .rodata @4000 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4000[8] = { - 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A210A0, &lit_4000); -#pragma pop - -/* 80A210A8-80A210B0 000028 0008+00 0/1 0/0 0/0 .rodata @4001 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4001[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A210A8, &lit_4001); -#pragma pop - /* 80A1B1C8-80A1B35C 000308 0194+00 1/1 0/0 0/0 .text getDistFromCenter__15daNpcKasi_Mng_cFv */ -void daNpcKasi_Mng_c::getDistFromCenter() { - // NONMATCHING +f32 daNpcKasi_Mng_c::getDistFromCenter() { + f32 rv; + + if (!calcCenterPos()) { + return -1.0f; + } + + cXyz sp1c = fopAcM_GetPosition(daPy_getPlayerActorClass()); + cXyz sp28 = sp1c - mCenterPos; + return sp28.absXZ(); } -/* 80A1B35C-80A1B3D4 00049C 0078+00 1/1 0/0 0/0 .text - * getOffsetFromLeader__15daNpcKasi_Mng_cFRC4cXyzR4cXyz */ -void daNpcKasi_Mng_c::getOffsetFromLeader(cXyz const& param_0, cXyz& param_1) { - // NONMATCHING -} +/* 80A1B35C-80A1B3D4 00049C 0078+00 1/1 0/0 0/0 .text getOffsetFromLeader__15daNpcKasi_Mng_cFRC4cXyzR4cXyz */ +void daNpcKasi_Mng_c::getOffsetFromLeader(cXyz const& param_1, cXyz& param_2) { + param_2 = param_1; -/* 80A1B3D4-80A1B410 000514 003C+00 5/5 0/0 0/0 .text __dt__5csXyzFv */ -// csXyz::~csXyz() { -extern "C" void __dt__5csXyzFv() { - // NONMATCHING + fopAc_ac_c* hana_p = mHanaActorMngr.getActorP(); + if (hana_p != NULL) { + csXyz angle(*fopAcM_GetShapeAngle_p(hana_p)); + mDoMtx_stack_c::ZXYrotS(angle); + mDoMtx_stack_c::multVec(¶m_2, ¶m_2); + } } /* 80A1B410-80A1B48C 000550 007C+00 1/1 0/0 0/0 .text initPath__15daNpcKasi_Mng_cFUcUs */ -void daNpcKasi_Mng_c::initPath(u8 param_0, u16 param_1) { - // NONMATCHING +void daNpcKasi_Mng_c::initPath(u8 i_pathNo, u16 i_idx) { + if (!mIsPathInit) { + fopAc_ac_c* hana_p = mHanaActorMngr.getActorP(); + if (hana_p != NULL) { + mPath.initialize(); + mPath.setPathInfo(i_pathNo, fopAcM_GetRoomNo(hana_p), 0); + mPath.setIdx(i_idx); + + OS_REPORT("---------------------dpath initialize!!\n"); + + mIsPathInit = true; + } + } } -/* 80A1B48C-80A1B5F0 0005CC 0164+00 1/1 0/0 0/0 .text getPlNearPoint__15daNpcKasi_Mng_cFv - */ -void daNpcKasi_Mng_c::getPlNearPoint() { - // NONMATCHING +/* 80A1B48C-80A1B5F0 0005CC 0164+00 1/1 0/0 0/0 .text getPlNearPoint__15daNpcKasi_Mng_cFv */ +int daNpcKasi_Mng_c::getPlNearPoint() { + daPy_py_c* player = daPy_getPlayerActorClass(); + cXyz sp58(*fopAcM_GetPosition_p(player)); + int rv = 0; + f32 fVar1, fVar2, fVar3; + fVar3 = 0.0f; + cXyz sp64, sp70; + + for (int i = 0; i < 10; i++) { + sp64 = mPath.getPntPos(i); + sp70 = sp64 - sp58; + fVar1 = sp70.abs2XZ(); + + if (i == 0) { + rv = 0; + fVar3 = fVar1; + } else if (fVar3 > fVar1) { + rv = i; + fVar3 = fVar1; + } else if (fVar1 > fVar2) break; + + fVar2 = fVar1; + } + + mPlPoint = rv; + return rv; } -/* 80A1B5F0-80A1B628 000730 0038+00 1/1 0/0 0/0 .text getSygnalInfo__15daNpcKasi_Mng_cFv - */ -void daNpcKasi_Mng_c::getSygnalInfo() { - // NONMATCHING +/* 80A1B5F0-80A1B628 000730 0038+00 1/1 0/0 0/0 .text getSygnalInfo__15daNpcKasi_Mng_cFv */ +int daNpcKasi_Mng_c::getSygnalInfo() { + int iVar1 = 1; + for (int i = 0; i < 20; i++) { + if (chkSygnal(iVar1)) { + return i; + } + + iVar1 <<= 1; + } + + return -1; } /* 80A1B628-80A1B6F8 000768 00D0+00 1/1 0/0 0/0 .text sendInfo__15daNpcKasi_Mng_cFv */ void daNpcKasi_Mng_c::sendInfo() { - // NONMATCHING + int sygnalInfo = getSygnalInfo(); + daNpcKasiKyu_c* kyu_p = (daNpcKasiKyu_c*)mKyuActorMngr.getActorP(); + if (kyu_p != NULL) { + kyu_p->setSygnal(sygnalInfo); + kyu_p->setChacePos(mKyuPos); + kyu_p->setCenterPos(mCenterPos); + kyu_p->setPlPoint(mPlPoint); + } + + daNpcKasiMich_c* michP = (daNpcKasiMich_c*)mMichActorMngr.getActorP(); + if (michP != NULL) { + michP->setSygnal(sygnalInfo); + michP->setChacePos(mMichPos); + michP->setCenterPos(mCenterPos); + michP->setPlPoint(mPlPoint); + } } /* 80A1B6F8-80A1B774 000838 007C+00 1/1 0/0 0/0 .text offTalk__15daNpcKasi_Mng_cFv */ void daNpcKasi_Mng_c::offTalk() { - // NONMATCHING + daNpcKasiHana_c* hana_p = (daNpcKasiHana_c*)mHanaActorMngr.getActorP(); + daNpcKasiKyu_c* kyu_p = (daNpcKasiKyu_c*)mKyuActorMngr.getActorP(); + daNpcKasiMich_c* mich_p = (daNpcKasiMich_c*)mMichActorMngr.getActorP(); + + if (hana_p != NULL) { + hana_p->off_talked(); + } + + if (kyu_p != NULL) { + kyu_p->off_talked(); + } + + if (mich_p != NULL) { + mich_p->off_talked(); + } } /* 80A1B774-80A1B810 0008B4 009C+00 1/1 0/0 0/0 .text chkTalk__15daNpcKasi_Mng_cFv */ -void daNpcKasi_Mng_c::chkTalk() { - // NONMATCHING +BOOL daNpcKasi_Mng_c::chkTalk() { + daNpcKasiHana_c* hana_p = (daNpcKasiHana_c*)mHanaActorMngr.getActorP(); + daNpcKasiKyu_c* kyu_p = (daNpcKasiKyu_c*)mKyuActorMngr.getActorP(); + daNpcKasiMich_c* mich_p = (daNpcKasiMich_c*)mMichActorMngr.getActorP(); + + if (hana_p == NULL || kyu_p == NULL || mich_p == NULL) { + OS_REPORT("---------------------some girl no exist!!\n"); + + return FALSE; + } + + bool rv = true; + bool bVar1 = true; + + if (!hana_p->is_talked() && !kyu_p->is_talked()) { + bVar1 = false; + } + + if (!bVar1 && !mich_p->is_talked()) { + rv = false; + } + + return rv; } /* 80A1B810-80A1B884 000950 0074+00 1/1 0/0 0/0 .text chkFear__15daNpcKasi_Mng_cFv */ -void daNpcKasi_Mng_c::chkFear() { - // NONMATCHING +BOOL daNpcKasi_Mng_c::chkFear() { + daNpcKasiKyu_c* kyu_p = (daNpcKasiKyu_c*)mKyuActorMngr.getActorP(); + if (kyu_p != NULL && kyu_p->is_fear()) { + return TRUE; + } + + daNpcKasiMich_c* mich_p = (daNpcKasiMich_c*)mMichActorMngr.getActorP(); + if (mich_p != NULL && mich_p->is_fear()) { + return TRUE; + } + + return FALSE; } /* 80A1B884-80A1B920 0009C4 009C+00 1/1 0/0 0/0 .text chkEscape__15daNpcKasi_Mng_cFv */ -void daNpcKasi_Mng_c::chkEscape() { - // NONMATCHING +BOOL daNpcKasi_Mng_c::chkEscape() { + daNpcKasiHana_c* hana_p = (daNpcKasiHana_c*)mHanaActorMngr.getActorP(); + daNpcKasiKyu_c* kyu_p = (daNpcKasiKyu_c*)mKyuActorMngr.getActorP(); + daNpcKasiMich_c* mich_p = (daNpcKasiMich_c*)mMichActorMngr.getActorP(); + + if (hana_p == NULL || kyu_p == NULL || mich_p == NULL) { + OS_REPORT("---------------------some girl no exist!!\n"); + + return TRUE; + } + + bool rv = false; + bool bVar1 = false; + + if (hana_p->is_escape() && kyu_p->is_escape()) { + bVar1 = true; + } + + if (bVar1 && mich_p->is_escape()) { + rv = true; + } + + return rv; } -/* ############################################################################################## */ -/* 80A210B0-80A210BC 000030 000C+00 0/1 0/0 0/0 .rodata @4181 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4181[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A210B0, &lit_4181); -#pragma pop +/* 80A1B920-80A1BAAC 000A60 018C+00 1/1 0/0 0/0 .text createHearts__15daNpcKasi_Mng_cFv */ +BOOL daNpcKasi_Mng_c::createHearts() { + fopAc_ac_c* actors[3] = {mHanaActorMngr.getActorP(), mKyuActorMngr.getActorP(), mMichActorMngr.getActorP()}; + f32 i_speedF = 0.0f; + f32 i_speedY = 30.0f; + cXyz i_scale(1.0f, 1.0f, 1.0f); -/* 80A210BC-80A210C0 00003C 0004+00 0/1 0/0 0/0 .rodata @4210 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4210 = 30.0f; -COMPILER_STRIP_GATE(0x80A210BC, &lit_4210); -#pragma pop + for (int i = 0; i < 3; i++) { + fopAc_ac_c* actor_p = actors[i]; + if (actor_p != NULL) { + cXyz i_pos(*fopAcM_GetPosition_p(actor_p)); + i_pos.y += 115.0f; + fopAc_ac_c* heart_p = NULL; + csXyz i_angle(0, cLib_getRndValue(0, 7) << 13, 0); + heart_p = fopAcM_fastCreateItem(&i_pos, fpcNm_ITEM_HEART, fopAcM_GetRoomNo(actor_p), &i_angle, + &i_scale, &i_speedF, &i_speedY, -1, 0, NULL); + if (heart_p != NULL) { + Z2GetAudioMgr()->seStart(Z2SE_GIRLS_HEART, &i_pos, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + fopAcM_OnStatus(heart_p, fopAcM_STATUS_UNK_004000); + } + } + } -/* 80A210C0-80A210C4 000040 0004+00 3/8 0/0 0/0 .rodata @4211 */ -SECTION_RODATA static f32 const lit_4211 = 1.0f; -COMPILER_STRIP_GATE(0x80A210C0, &lit_4211); - -/* 80A210C4-80A210C8 000044 0004+00 0/1 0/0 0/0 .rodata @4212 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4212 = 115.0f; -COMPILER_STRIP_GATE(0x80A210C4, &lit_4212); -#pragma pop - -/* 80A1B920-80A1BAAC 000A60 018C+00 1/1 0/0 0/0 .text createHearts__15daNpcKasi_Mng_cFv - */ -void daNpcKasi_Mng_c::createHearts() { - // NONMATCHING + return TRUE; } /* 80A1BAAC-80A1BB24 000BEC 0078+00 1/1 0/0 0/0 .text allDemoMove__15daNpcKasi_Mng_cFv */ void daNpcKasi_Mng_c::allDemoMove() { - // NONMATCHING + daNpcKasiHana_c* hana_p = (daNpcKasiHana_c*)mHanaActorMngr.getActorP(); + if (hana_p != NULL) { + fopAcM_OnStatus(hana_p, fopAcM_STATUS_UNK_004000); + } + + daNpcKasiKyu_c* kyu_p = (daNpcKasiKyu_c*)mKyuActorMngr.getActorP(); + if (kyu_p != NULL) { + fopAcM_OnStatus(kyu_p, fopAcM_STATUS_UNK_004000); + } + + daNpcKasiMich_c* mich_p = (daNpcKasiMich_c*)mMichActorMngr.getActorP(); + if (mich_p != NULL) { + fopAcM_OnStatus(mich_p, fopAcM_STATUS_UNK_004000); + } } -/* 80A1BB24-80A1BB9C 000C64 0078+00 1/1 0/0 0/0 .text allDemoNotMove__15daNpcKasi_Mng_cFv - */ +/* 80A1BB24-80A1BB9C 000C64 0078+00 1/1 0/0 0/0 .text allDemoNotMove__15daNpcKasi_Mng_cFv */ void daNpcKasi_Mng_c::allDemoNotMove() { - // NONMATCHING + daNpcKasiHana_c* hana_p = (daNpcKasiHana_c*)mHanaActorMngr.getActorP(); + if (hana_p != NULL) { + fopAcM_OffStatus(hana_p, fopAcM_STATUS_UNK_004000); + } + + daNpcKasiKyu_c* kyu_p = (daNpcKasiKyu_c*)mKyuActorMngr.getActorP(); + if (kyu_p != NULL) { + fopAcM_OffStatus(kyu_p, fopAcM_STATUS_UNK_004000); + } + + daNpcKasiMich_c* mich_p = (daNpcKasiMich_c*)mMichActorMngr.getActorP(); + if (mich_p != NULL) { + fopAcM_OffStatus(mich_p, fopAcM_STATUS_UNK_004000); + } } /* 80A1BB9C-80A1BBE0 000CDC 0044+00 2/2 0/0 0/0 .text isMiniGamePlaying__15daNpcKasi_Mng_cFv */ -void daNpcKasi_Mng_c::isMiniGamePlaying() { - // NONMATCHING +BOOL daNpcKasi_Mng_c::isMiniGamePlaying() { + BOOL rv = FALSE; + daNpcChin_c* dancho_p = (daNpcChin_c*)mDanchoActorMngr.getActorP(); + + if (dancho_p != NULL) { + rv = dancho_p->isMiniGamePlaying(); + } + + return rv; } -/* 80A1BBE0-80A1BC88 000D20 00A8+00 1/1 0/0 0/0 .text schMemberActor__15daNpcKasi_Mng_cFv - */ +/* 80A1BBE0-80A1BC88 000D20 00A8+00 1/1 0/0 0/0 .text schMemberActor__15daNpcKasi_Mng_cFv */ void daNpcKasi_Mng_c::schMemberActor() { - // NONMATCHING + if (mKyuActorMngr.getPId() == fpcM_ERROR_PROCESS_ID_e) { + fopAc_ac_c* kyu_p = NULL; + + if (fopAcM_SearchByName(PROC_NPC_KASIKYU, (fopAc_ac_c**)&kyu_p) != 0 && kyu_p != NULL) { + mKyuActorMngr.entry(kyu_p); + } + } + + if (mMichActorMngr.getPId() == fpcM_ERROR_PROCESS_ID_e) { + fopAc_ac_c* mich_p = NULL; + + if (fopAcM_SearchByName(PROC_NPC_KASIMICH, (fopAc_ac_c**)&mich_p) != 0 && mich_p != NULL) { + mMichActorMngr.entry(mich_p); + } + } } -/* 80A1BC88-80A1BCF0 000DC8 0068+00 1/1 0/0 0/0 .text schDanchoActor__15daNpcKasi_Mng_cFv - */ +/* 80A1BC88-80A1BCF0 000DC8 0068+00 1/1 0/0 0/0 .text schDanchoActor__15daNpcKasi_Mng_cFv */ void daNpcKasi_Mng_c::schDanchoActor() { - // NONMATCHING + if (mDanchoActorMngr.getPId() == fpcM_ERROR_PROCESS_ID_e) { + fopAc_ac_c* dancho_p = NULL; + + if (fopAcM_SearchByName(PROC_NPC_CHIN, (fopAc_ac_c**)&dancho_p) != 0 && dancho_p != NULL) { + mDanchoActorMngr.entry(dancho_p); + } + } } /* 80A1BCF0-80A1BD6C 000E30 007C+00 2/2 0/0 0/0 .text deleteAllMember__15daNpcKasi_Mng_cFv */ void daNpcKasi_Mng_c::deleteAllMember() { - // NONMATCHING + fopAc_ac_c* kyu_p = mKyuActorMngr.getActorP(); + if (kyu_p != NULL) { + fopAcM_delete(kyu_p); + mKyuActorMngr.remove(); + } + + fopAc_ac_c* mich_p = mMichActorMngr.getActorP(); + if (mich_p != NULL) { + fopAcM_delete(mich_p); + mMichActorMngr.remove(); + } + + fopAc_ac_c* hana_p = mHanaActorMngr.getActorP(); + if (hana_p != NULL) { + fopAcM_delete(hana_p); + mHanaActorMngr.remove(); + } } -/* 80A1BD6C-80A1BDD8 000EAC 006C+00 1/1 0/0 0/0 .text chgWeightHeavy__15daNpcKasi_Mng_cFv - */ +/* 80A1BD6C-80A1BDD8 000EAC 006C+00 1/1 0/0 0/0 .text chgWeightHeavy__15daNpcKasi_Mng_cFv */ void daNpcKasi_Mng_c::chgWeightHeavy() { - // NONMATCHING + daNpcKasiHana_c* hana_p = (daNpcKasiHana_c*)mHanaActorMngr.getActorP(); + if (hana_p != NULL) { + hana_p->chgWeightHeavy(); + } + + daNpcKasiKyu_c* kyu_p = (daNpcKasiKyu_c*)mKyuActorMngr.getActorP(); + if (kyu_p != NULL) { + kyu_p->chgWeightHeavy(); + } + + daNpcKasiMich_c* mich_p = (daNpcKasiMich_c*)mMichActorMngr.getActorP(); + if (mich_p != NULL) { + mich_p->chgWeightHeavy(); + } } -/* 80A1BDD8-80A1BE44 000F18 006C+00 1/1 0/0 0/0 .text chgWeightLight__15daNpcKasi_Mng_cFv - */ +/* 80A1BDD8-80A1BE44 000F18 006C+00 1/1 0/0 0/0 .text chgWeightLight__15daNpcKasi_Mng_cFv */ void daNpcKasi_Mng_c::chgWeightLight() { - // NONMATCHING -} + daNpcKasiHana_c* hana_p = (daNpcKasiHana_c*)mHanaActorMngr.getActorP(); + if (hana_p != NULL) { + hana_p->chgWeightLight(); + } -/* ############################################################################################## */ -/* 80A21358-80A21358 0002D8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80A21358 = "kasi_hana"; -SECTION_DEAD static char const* const stringBase_80A21362 = "girls"; -SECTION_DEAD static char const* const stringBase_80A21368 = "Wgeneral"; -SECTION_DEAD static char const* const stringBase_80A21371 = "KASIMASI_APPEAR"; -SECTION_DEAD static char const* const stringBase_80A21381 = "KASIMASI_TALK"; -SECTION_DEAD static char const* const stringBase_80A2138F = "KASIMASI_HEART"; -SECTION_DEAD static char const* const stringBase_80A2139E = "KASIMASI_CHEER"; -SECTION_DEAD static char const* const stringBase_80A213AD = "KASIMASI_CHEER2"; -#pragma pop + daNpcKasiKyu_c* kyu_p = (daNpcKasiKyu_c*)mKyuActorMngr.getActorP(); + if (kyu_p != NULL) { + kyu_p->chgWeightLight(); + } + + daNpcKasiMich_c* mich_p = (daNpcKasiMich_c*)mMichActorMngr.getActorP(); + if (mich_p != NULL) { + mich_p->chgWeightLight(); + } +} /* 80A213F4-80A214A8 000020 00B4+00 1/1 0/0 0/0 .data l_bckGetParamList */ -SECTION_DATA static u8 l_bckGetParamList[180] = { - 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, - 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, - 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x1E, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, - 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x02, 0x00, - 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, +static daNpc_GetParam2 l_bckGetParamList[15] = { + {BCK_MICH_IYAN_WAIT, J3DFrameCtrl::EMode_LOOP, GIRLS}, + {BCK_MICH_KYA_TALK, J3DFrameCtrl::EMode_LOOP, GIRLS}, + {BCK_MICH_OUEN_WAIT_A, J3DFrameCtrl::EMode_LOOP, GIRLS}, + {BCK_MICH_OUEN_WAIT_B, J3DFrameCtrl::EMode_LOOP, GIRLS}, + {BCK_W_WAIT_A, J3DFrameCtrl::EMode_LOOP, WGENERAL}, + {BCK_W_TALK_B, J3DFrameCtrl::EMode_NONE, WGENERAL}, + {BCK_W_TO_WOLF, J3DFrameCtrl::EMode_LOOP, WGENERAL}, + {BCK_W_WALK_A, J3DFrameCtrl::EMode_LOOP, WGENERAL}, + {BCK_W_LOOK_B, J3DFrameCtrl::EMode_LOOP, WGENERAL}, + {BCK_W_RUN_A, J3DFrameCtrl::EMode_LOOP, WGENERAL}, + {BCK_W_SURPRISE, J3DFrameCtrl::EMode_NONE, WGENERAL}, + {BCK_W_WAIT_A, J3DFrameCtrl::EMode_NONE, WGENERAL}, + {BCK_W_TALK_A, J3DFrameCtrl::EMode_NONE, WGENERAL}, + {BCK_W_2LADYTALK_B, J3DFrameCtrl::EMode_NONE, WGENERAL}, + {BCK_W_2NORMALTALK_B, J3DFrameCtrl::EMode_NONE, WGENERAL}, }; /* 80A214A8-80A214B4 0000D4 000C+00 0/0 0/0 0/0 .data l_btpGetParamList */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_btpGetParamList[12] = { - 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +static daNpc_GetParam2 l_btpGetParamList[1] = { + {BTP_HANA, J3DFrameCtrl::EMode_LOOP, KASI_HANA}, }; -#pragma pop /* 80A214B4-80A214C0 -00001 000C+00 5/7 0/0 0/0 .data l_arcNames */ -SECTION_DATA static void* l_arcNames[3] = { - (void*)&d_a_npc_kasi_hana__stringBase0, - (void*)(((char*)&d_a_npc_kasi_hana__stringBase0) + 0xA), - (void*)(((char*)&d_a_npc_kasi_hana__stringBase0) + 0x10), +static char* l_arcNames[3] = { + "kasi_hana", + "girls", + "Wgeneral", }; /* 80A214C0-80A214D8 -00001 0018+00 0/3 0/0 0/0 .data l_evtNames */ -#pragma push -#pragma force_active on -SECTION_DATA static void* l_evtNames[6] = { - (void*)NULL, - (void*)(((char*)&d_a_npc_kasi_hana__stringBase0) + 0x19), - (void*)(((char*)&d_a_npc_kasi_hana__stringBase0) + 0x29), - (void*)(((char*)&d_a_npc_kasi_hana__stringBase0) + 0x37), - (void*)(((char*)&d_a_npc_kasi_hana__stringBase0) + 0x46), - (void*)(((char*)&d_a_npc_kasi_hana__stringBase0) + 0x55), +static char* l_evtNames[6] = { + NULL, + "KASIMASI_APPEAR", + "KASIMASI_TALK", + "KASIMASI_HEART", + "KASIMASI_CHEER", + "KASIMASI_CHEER2", }; -#pragma pop /* 80A214D8-80A214DC -00001 0004+00 0/2 0/0 0/0 .data l_myName */ -#pragma push -#pragma force_active on -SECTION_DATA static void* l_myName = (void*)&d_a_npc_kasi_hana__stringBase0; -#pragma pop - -/* 80A214DC-80A214E8 -00001 000C+00 0/1 0/0 0/0 .data @4324 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4324[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)_Evt_Kasi_Appear__15daNpcKasiHana_cFi, -}; -#pragma pop - -/* 80A214E8-80A214F4 -00001 000C+00 0/1 0/0 0/0 .data @4325 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4325[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)_Evt_Kasi_Talk__15daNpcKasiHana_cFi, -}; -#pragma pop - -/* 80A214F4-80A21500 -00001 000C+00 0/1 0/0 0/0 .data @4326 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4326[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)_Evt_Kasi__15daNpcKasiHana_cFi, -}; -#pragma pop - -/* 80A21500-80A2150C -00001 000C+00 0/1 0/0 0/0 .data @4327 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4327[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)_Evt_Kasi_Cheer__15daNpcKasiHana_cFi, -}; -#pragma pop - -/* 80A2150C-80A21518 -00001 000C+00 0/1 0/0 0/0 .data @4328 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4328[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)_Evt_Kasi_Cheer2__15daNpcKasiHana_cFi, -}; -#pragma pop +static char* l_myName = "kasi_hana"; /* 80A21518-80A21560 000144 0048+00 0/2 0/0 0/0 .data mEvtSeqList__15daNpcKasiHana_c */ -#pragma push -#pragma force_active on -SECTION_DATA u8 daNpcKasiHana_c::mEvtSeqList[72] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -#pragma pop - -/* 80A21560-80A2156C -00001 000C+00 0/1 0/0 0/0 .data @4941 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4941[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__15daNpcKasiHana_cFi, -}; -#pragma pop - -/* 80A2156C-80A21578 -00001 000C+00 0/1 0/0 0/0 .data @4947 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4947[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)demo__15daNpcKasiHana_cFi, -}; -#pragma pop - -/* 80A21578-80A21584 -00001 000C+00 0/1 0/0 0/0 .data @4950 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4950[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)demo__15daNpcKasiHana_cFi, -}; -#pragma pop - -/* 80A21584-80A21590 -00001 000C+00 0/1 0/0 0/0 .data @4955 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4955[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cheer__15daNpcKasiHana_cFi, -}; -#pragma pop - -/* 80A21590-80A2159C -00001 000C+00 0/1 0/0 0/0 .data @4962 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4962[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)demo__15daNpcKasiHana_cFi, -}; -#pragma pop - -/* 80A2159C-80A215A8 -00001 000C+00 0/1 0/0 0/0 .data @4966 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4966[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)fear__15daNpcKasiHana_cFi, -}; -#pragma pop - -/* 80A215A8-80A215B4 -00001 000C+00 1/1 0/0 0/0 .data @5084 */ -SECTION_DATA static void* lit_5084[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__15daNpcKasiHana_cFi, +daNpcKasiHana_c::EventFn daNpcKasiHana_c::mEvtSeqList[6] = { + NULL, + &daNpcKasiHana_c::_Evt_Kasi_Appear, + &daNpcKasiHana_c::_Evt_Kasi_Talk, + &daNpcKasiHana_c::_Evt_Kasi, + &daNpcKasiHana_c::_Evt_Kasi_Cheer, + &daNpcKasiHana_c::_Evt_Kasi_Cheer2, }; -/* 80A215B4-80A215C0 -00001 000C+00 0/1 0/0 0/0 .data @5363 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5363[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)chace_st__15daNpcKasiHana_cFi, -}; -#pragma pop +/* 80A1BE44-80A1C0A4 000F84 0260+00 1/1 0/0 0/0 .text __ct__15daNpcKasiHana_cFv */ +daNpcKasiHana_c::daNpcKasiHana_c() {} -/* 80A215C0-80A215CC -00001 000C+00 0/1 0/0 0/0 .data @5369 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5369[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)chace_st__15daNpcKasiHana_cFi, -}; -#pragma pop +/* 80A1C0A4-80A1C334 0011E4 0290+00 1/0 0/0 0/0 .text __dt__15daNpcKasiHana_cFv */ +daNpcKasiHana_c::~daNpcKasiHana_c() { + for (int i = 0; i < 3; i++) { + dComIfG_resDelete(&mPhases[i], l_arcNames[i]); + } + + if (heap != NULL) { + mpMorf->stopZelAnime(); + } +} -/* 80A215CC-80A215D8 -00001 000C+00 0/1 0/0 0/0 .data @5376 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5376[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)chace__15daNpcKasiHana_cFi, -}; -#pragma pop - -/* 80A215D8-80A215E4 -00001 000C+00 0/1 0/0 0/0 .data @5379 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5379[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)turn__15daNpcKasiHana_cFi, -}; -#pragma pop - -/* 80A215E4-80A215F0 -00001 000C+00 0/1 0/0 0/0 .data @5386 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5386[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cheer__15daNpcKasiHana_cFi, -}; -#pragma pop - -/* 80A215F0-80A215FC -00001 000C+00 0/1 0/0 0/0 .data @5395 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5395[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talk__15daNpcKasiHana_cFi, -}; -#pragma pop - -/* 80A215FC-80A21608 -00001 000C+00 0/1 0/0 0/0 .data @5400 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5400[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)demo__15daNpcKasiHana_cFi, -}; -#pragma pop - -/* 80A21608-80A21614 -00001 000C+00 0/1 0/0 0/0 .data @5407 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5407[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)fear__15daNpcKasiHana_cFi, -}; -#pragma pop - -/* 80A21614-80A21620 -00001 000C+00 1/1 0/0 0/0 .data @5485 */ -SECTION_DATA static void* lit_5485[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)chace__15daNpcKasiHana_cFi, +/* 80A210C8-80A21144 000048 007C+00 5/12 0/0 0/0 .rodata m__21daNpcKasiHana_Param_c */ +daNpcKasiHana_HIOParam const daNpcKasiHana_Param_c::m = { + 55.0f, + -3.0f, + 1.0f, + 500.0f, + 216.0f, + 140.0f, + 35.0f, + 30.0f, + 0.0f, + 0.0f, + 10.0f, + -10.0f, + 30.0f, + -10.0f, + 45.0f, + -45.0f, + 0.6f, + 12.0f, + 2, + 6, + 3, + 6, + 60.0f, + 500.0f, + 300.0f, + -300.0f, + 60, + 0, + 0, + 0, + 0, + false, + false, + 800.0f, + 400.0f, + 14.0f, + 16.0f, }; -/* 80A21620-80A2162C -00001 000C+00 1/1 0/0 0/0 .data @5502 */ -SECTION_DATA static void* lit_5502[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__15daNpcKasiHana_cFi, -}; +/* 80A1C334-80A1C5B0 001474 027C+00 1/1 0/0 0/0 .text Create__15daNpcKasiHana_cFv */ +cPhs__Step daNpcKasiHana_c::Create() { + fopAcM_SetupActor(this, daNpcKasiHana_c); -/* 80A2162C-80A21638 -00001 000C+00 1/1 0/0 0/0 .data @5505 */ -SECTION_DATA static void* lit_5505[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)chace_st__15daNpcKasiHana_cFi, -}; + mMessageNo = getMessageNo(); + mType = getType(); -/* 80A21638-80A21644 -00001 000C+00 1/1 0/0 0/0 .data @5577 */ -SECTION_DATA static void* lit_5577[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__15daNpcKasiHana_cFi, -}; + cPhs__Step phase = cPhs_ERROR_e; + for (int i = 0; i < 3; i++) { + phase = (cPhs__Step)dComIfG_resLoad(&mPhases[i], l_arcNames[i]); -/* 80A21644-80A21660 -00001 001C+00 1/1 0/0 0/0 .data @5636 */ -SECTION_DATA static void* lit_5636[7] = { - (void*)(((char*)fear__15daNpcKasiHana_cFi) + 0x1F8), - (void*)(((char*)fear__15daNpcKasiHana_cFi) + 0x48), - (void*)(((char*)fear__15daNpcKasiHana_cFi) + 0xB4), - (void*)(((char*)fear__15daNpcKasiHana_cFi) + 0x1F8), - (void*)(((char*)fear__15daNpcKasiHana_cFi) + 0xF0), - (void*)(((char*)fear__15daNpcKasiHana_cFi) + 0x17C), - (void*)(((char*)fear__15daNpcKasiHana_cFi) + 0x1E0), -}; + if (phase != cPhs_COMPLEATE_e) { + return phase; + } + } -/* 80A21660-80A2166C -00001 000C+00 1/1 0/0 0/0 .data @5717 */ -SECTION_DATA static void* lit_5717[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__15daNpcKasiHana_cFi, -}; + if (phase == cPhs_COMPLEATE_e) { + if (!fopAcM_entrySolidHeap(this, createHeapCallBack, 0x1940)) { + return cPhs_ERROR_e; + } -/* 80A2166C-80A21678 -00001 000C+00 1/1 0/0 0/0 .data @5727 */ -SECTION_DATA static void* lit_5727[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__15daNpcKasiHana_cFi, -}; + J3DModel* model = mpMorf->getModel(); + fopAcM_SetMtx(this, mpMorf->getModel()->getBaseTRMtx()); + fopAcM_setCullSizeBox(this, -60.0f, -10.0f, -60.0f, 60.0f, 160.0f, 60.0f); + mSound.init(¤t.pos, &eyePos, 3, 1); -/* 80A21678-80A21684 -00001 000C+00 0/1 0/0 0/0 .data @5762 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5762[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__15daNpcKasiHana_cFi, -}; -#pragma pop + mAcchCir.SetWall(daNpcKasiHana_Param_c::m.common.width, daNpcKasiHana_Param_c::m.common.knee_length); + mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir, fopAcM_GetSpeed_p(this), + fopAcM_GetAngle_p(this), fopAcM_GetShapeAngle_p(this)); + mAcch.CrrPos(dComIfG_Bgsp()); + mCcStts.Init(0xFE, 0, this); + mCyl.Set(mCcDCyl); + mCyl.SetStts(&mCcStts); + mCyl.SetTgType(0); + mCyl.SetTgSPrm(0); + mCyl.SetH(daNpcKasiHana_Param_c::m.common.height); + mCyl.SetR(daNpcKasiHana_Param_c::m.common.width); + mGndChk = mAcch.m_gnd; + mGroundH = mAcch.GetGroundH(); -/* 80A21684-80A21690 -00001 000C+00 0/1 0/0 0/0 .data @5765 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5765[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)escape__15daNpcKasiHana_cFi, -}; -#pragma pop + setEnvTevColor(); + setRoomNo(); + reset(); + Execute(); + } -/* 80A21690-80A2169C -00001 000C+00 0/1 0/0 0/0 .data @5768 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5768[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__15daNpcKasiHana_cFi, -}; -#pragma pop + return phase; +} -/* 80A2169C-80A216A8 -00001 000C+00 0/1 0/0 0/0 .data @5775 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5775[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__15daNpcKasiHana_cFi, -}; -#pragma pop +/* 80A1C5B0-80A1C734 0016F0 0184+00 1/1 0/0 0/0 .text CreateHeap__15daNpcKasiHana_cFv */ +int daNpcKasiHana_c::CreateHeap() { + J3DModelData* mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_arcNames[0], 5); -/* 80A216A8-80A216B4 -00001 000C+00 0/1 0/0 0/0 .data @5780 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5780[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cheer__15daNpcKasiHana_cFi, -}; -#pragma pop + JUT_ASSERT(950, 0 != mdlData_p); -/* 80A216B4-80A216C0 -00001 000C+00 0/1 0/0 0/0 .data @5860 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5860[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__15daNpcKasiHana_cFi, -}; -#pragma pop + mpMorf = new mDoExt_McaMorfSO(mdlData_p, NULL, NULL, NULL, -1, 1.0f, 0, -1, &mSound, 0x80000, 0x11020084); + if (mpMorf != NULL && mpMorf->getModel() == NULL) { + mpMorf->stopZelAnime(); + mpMorf = NULL; + } + + if (mpMorf == NULL) { + return 0; + } + + cXyz i_scale(1.0f, 0.8630768f, 1.0f); + mpMorf->offTranslate(); + mpMorf->setTranslateScale(i_scale); + + J3DModel* model = mpMorf->getModel(); + for (u16 i = 0; i < mdlData_p->getJointNum(); i++) { + mdlData_p->getJointNodePointer(i)->setCallBack(ctrlJointCallBack); + } + model->setUserArea((u32)this); + + setMotion(MOT_W_WAIT_A, -1.0f, 0); + + return 1; +} + +/* 80A1C734-80A1C768 001874 0034+00 1/1 0/0 0/0 .text Delete__15daNpcKasiHana_cFv */ +int daNpcKasiHana_c::Delete() { + this->~daNpcKasiHana_c(); + return 1; +} + +/* 80A1C768-80A1C78C 0018A8 0024+00 2/2 0/0 0/0 .text Execute__15daNpcKasiHana_cFv */ +int daNpcKasiHana_c::Execute() { + execute(); + return 1; +} + +/* 80A1C78C-80A1C7D8 0018CC 004C+00 1/1 0/0 0/0 .text Draw__15daNpcKasiHana_cFv */ +int daNpcKasiHana_c::Draw() { + if (!mEscape) { + draw(FALSE, FALSE, daNpcKasiHana_Param_c::m.common.real_shadow_size, NULL, FALSE); + } + + return 1; +} + +/* 80A1C7D8-80A1C964 001918 018C+00 1/1 0/0 0/0 .text ctrlJoint__15daNpcKasiHana_cFP8J3DJointP8J3DModel */ +int daNpcKasiHana_c::ctrlJoint(J3DJoint* i_joint, J3DModel* i_model) { + int jntNo = i_joint->getJntNo(); + int i_jointList[3] = {JNT_BACKBONE, JNT_NECK, JNT_HEAD}; + + if (jntNo == JNT_CENTER) { + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(JNT_BACKBONE)); + mDoMtx_stack_c::multVecZero(&mLookatPos[0]); + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(JNT_NECK)); + mDoMtx_stack_c::multVecZero(&mLookatPos[1]); + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(JNT_HEAD)); + mDoMtx_stack_c::multVecZero(&mLookatPos[2]); + } + + mDoMtx_stack_c::copy(i_model->getAnmMtx(jntNo)); + + switch (jntNo) { + case JNT_BACKBONE: + case JNT_NECK: + case JNT_HEAD: + setLookatMtx(jntNo, i_jointList, daNpcKasiHana_Param_c::m.common.neck_rotation_ratio); + break; + } + + i_model->setAnmMtx(jntNo, mDoMtx_stack_c::get()); + MTXCopy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx); + + return 1; +} + +/* 80A1C964-80A1C984 001AA4 0020+00 1/1 0/0 0/0 .text createHeapCallBack__15daNpcKasiHana_cFP10fopAc_ac_c */ +int daNpcKasiHana_c::createHeapCallBack(fopAc_ac_c* a_this) { + daNpcKasiHana_c* i_this = (daNpcKasiHana_c*)a_this; + return i_this->CreateHeap(); +} + +/* 80A1C984-80A1C9D0 001AC4 004C+00 1/1 0/0 0/0 .text ctrlJointCallBack__15daNpcKasiHana_cFP8J3DJointi */ +int daNpcKasiHana_c::ctrlJointCallBack(J3DJoint* i_joint, int param_2) { + if (param_2 == 0) { + J3DModel* model = j3dSys.getModel(); + daNpcKasiHana_c* i_this = (daNpcKasiHana_c*)model->getUserArea(); + + if (i_this != NULL) { + i_this->ctrlJoint(i_joint, model); + } + } + + return 1; +} + +/* 80A1C9D0-80A1CA60 001B10 0090+00 1/0 0/0 0/0 .text setParam__15daNpcKasiHana_cFv */ +void daNpcKasiHana_c::setParam() { + if (mType == TYPE_WAIT) { + mKasiMng.initPath(getRailNo(), 6); + } + + attention_info.distances[fopAc_attn_LOCK_e] = getDistTableIdx(daNpcKasiHana_Param_c::m.common.attention_distance, daNpcKasiHana_Param_c::m.common.attention_angle); + attention_info.distances[fopAc_attn_TALK_e] = attention_info.distances[fopAc_attn_LOCK_e]; + attention_info.distances[fopAc_attn_SPEAK_e] = getDistTableIdx(daNpcKasiHana_Param_c::m.common.talk_distance, daNpcKasiHana_Param_c::m.common.talk_angle); + attention_info.flags = 10; +} + +/* 80A1CA60-80A1CD28 001BA0 02C8+00 1/0 0/0 0/0 .text main__15daNpcKasiHana_cFv */ +BOOL daNpcKasiHana_c::main() { + mKasiMng.SygnalClear(); + mKasiMng.schMemberActor(); + + if (mType == TYPE_CHEER) { + mKasiMng.schDanchoActor(); + } + + if (mKasiMng.chkTalk()) { + mKasiMng.offTalk(); + + if (mType == TYPE_WAIT) { + if (chkAction(&daNpcKasiHana_c::wait)) { + if (fopAcM_isSwitch(this, getSwitchBitNo())) { + mKasiMng.chgWeightHeavy(); + mOrderEvtNo = EVT_HEART; + changeEvent("kasi_hana", l_evtNames[mOrderEvtNo], 2, 0xFFFF); + setAction(&daNpcKasiHana_c::demo); + } else { + mKasiMng.allDemoMove(); + mOrderEvtNo = EVT_TALK; + changeEvent("kasi_hana", l_evtNames[mOrderEvtNo], 2, 0xFFFF); + setAction(&daNpcKasiHana_c::demo); + } + } + } else if (mType == TYPE_CHEER) { + if (chkAction(&daNpcKasiHana_c::cheer)) { + /* dSv_event_flag_c::F_0293 - Castle Town - Star Game 2 cleared */ + if (daNpcF_chkEvtBit(293)) { + mOrderEvtNo = EVT_CHEER2; + } else { + mOrderEvtNo = EVT_CHEER; + } + + dComIfG_TimerStop(6); + dTimer_hide(); + changeEvent("kasi_hana", l_evtNames[mOrderEvtNo], 2, 0xFFFF); + setAction(&daNpcKasiHana_c::demo); + mKasiMng.onSygnal(1); + } + } + } + + if (mKasiMng.chkFear()) { + setAction(&daNpcKasiHana_c::fear); + } + + if (mAction) { + (this->*mAction)(NULL); + } + + mKasiMng.sendInfo(); + playMotion(); + + return TRUE; +} + +/* 80A1CD28-80A1CED0 001E68 01A8+00 1/0 0/0 0/0 .text setAttnPos__15daNpcKasiHana_cFv */ +void daNpcKasiHana_c::setAttnPos() { + if (mLookMode == LOOK_RESET) { + for (int i = 0; i < 3; i++) { + mLookatAngle[i].setall(0); + } + } + + daNpcF_c::setMtx(); + lookat(); + + cXyz sp1c(10.0f, 15.0f, 0.0f); + + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(3)); + mDoMtx_stack_c::multVecZero(&mHeadPos); + mDoMtx_stack_c::multVec(&sp1c, &eyePos); + sp1c.x = 0.0f; + mDoMtx_stack_c::multVec(&sp1c, &sp1c); + + mHeadAngle.x = cLib_targetAngleX(&mHeadPos, &sp1c); + mHeadAngle.y = cLib_targetAngleY(&mHeadPos, &sp1c); + attention_info.position.set(mHeadPos.x, mHeadPos.y + daNpcKasiHana_Param_c::m.common.attention_offset, mHeadPos.z); + + cXyz sp28; + + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(1)); + mDoMtx_stack_c::multVecZero(&sp28); + sp28.y = current.pos.y; + mCyl.SetC(sp28); + #ifdef DEBUG + mCyl.SetH(daNpcKasiHana_Param_c::m.common.height); + mCyl.SetR(daNpcKasiHana_Param_c::m.common.width); + #endif + dComIfG_Ccsp()->Set(&mCyl); +} + +/* 80A1CED0-80A1CFA0 002010 00D0+00 1/0 0/0 0/0 .text setMotionAnm__15daNpcKasiHana_cFif */ +void daNpcKasiHana_c::setMotionAnm(int i_index, f32 i_morf) { + J3DAnmTransformKey* i_anm = getTrnsfrmKeyAnmP(l_arcNames[l_bckGetParamList[i_index].arcIdx], l_bckGetParamList[i_index].fileIdx); + int i_attr = l_bckGetParamList[i_index].attr; + mAnmFlags &= 0xFFFFFFF6; + + if (i_anm != NULL && setMcaMorfAnm(i_anm, 1.0f, i_morf, i_attr, 0, -1)) { + mAnmFlags |= ANM_PLAY_MORF | ANM_PAUSE_MORF; + mMotionLoops = 0; + } +} + +/* 80A1CFA0-80A1CFE8 0020E0 0048+00 1/0 0/0 0/0 .text setMotion__15daNpcKasiHana_cFifi */ +void daNpcKasiHana_c::setMotion(int i_motion, f32 i_morf, int param_3) { + s16 motion = i_motion; + if ((param_3 != 0 || mMotion != motion) && i_motion >= 0 && i_motion < 0xC) { + mMotion = motion; + mMotionMorfOverride = i_morf; + mMotionPrevPhase = -1; + mMotionPhase = 0; + field_0x143e = 0; + } +} + +/* 80A1CFE8-80A1CFF0 002128 0008+00 1/0 0/0 0/0 .text drawDbgInfo__15daNpcKasiHana_cFv */ +int daNpcKasiHana_c::drawDbgInfo() { + return 0; +} + +/* 80A1CFF0-80A1D238 002130 0248+00 1/1 0/0 0/0 .text reset__15daNpcKasiHana_cFv */ +void daNpcKasiHana_c::reset() { + initialize(); + mLookat.initialize(); + + for (int i = 0; i < 1; i++) { + mActorMngr[i].initialize(); + } + + mPath.initialize(); + mKasiMng.setHanaActor(this); + + if (mType == TYPE_WAIT) { + mPath.setPathInfo(getRailNo(), fopAcM_GetRoomNo(this), 0); + mPath.setIdx(6); + } else if (mType == TYPE_CHEER) { + fopAcM_OnStatus(this, fopAcM_STATUS_UNK_004000); + } + + field_0x1441 = 0; + field_0x1430 = 0; + field_0x1434 = 0; + mAction = NULL; + mLookMode = -1; + mMode = 0; + current.pos.set(home.pos); + old.pos.set(current.pos); + current.angle.set(0, home.angle.y, 0); + old.angle = current.angle; + shape_angle = current.angle; + mCurAngle = current.angle; + mOldAngle = mCurAngle; + speedF = 0.0f; + speed.setall(0.0f); + field_0x142c = fpcM_ERROR_PROCESS_ID_e; + mOrderEvtNo = EVT_NONE; + + J3DAnmTexPattern* i_btp = getTexPtrnAnmP(l_arcNames[0], 8); + mAnmFlags &= 0xFFFFF57F; + + if (setBtpAnm(i_btp, mpMorf->getModel()->getModelData(), 1.0f, J3DFrameCtrl::EMode_LOOP)) { + mAnmFlags |= ANM_FLAG_800 | ANM_PLAY_BTP | ANM_PAUSE_BTP; + } + + mTalked = false; + field_0x1445 = false; + mEscape = false; + setAction(&daNpcKasiHana_c::wait); + mMotionMorfOverride = 0.0f; +} + +/* 80A1D238-80A1D604 002378 03CC+00 1/1 0/0 0/0 .text playMotion__15daNpcKasiHana_cFv */ +void daNpcKasiHana_c::playMotion() { + daNpcF_anmPlayData dat0 = {ANM_MICH_KYA_TALK, daNpcKasiHana_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat0[1] = {&dat0}; + daNpcF_anmPlayData dat1 = {ANM_MICH_IYAN_WAIT, daNpcKasiHana_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat1[1] = {&dat1}; + daNpcF_anmPlayData dat2 = {ANM_MICH_OUEN_WAIT_A, daNpcKasiHana_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat2[1] = {&dat2}; + daNpcF_anmPlayData dat3 = {ANM_MICH_OUEN_WAIT_B, daNpcKasiHana_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat3[1] = {&dat3}; + daNpcF_anmPlayData dat4 = {ANM_W_WAIT_A, daNpcKasiHana_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat4[1] = {&dat4}; + daNpcF_anmPlayData dat5 = {ANM_W_TALK_B, daNpcKasiHana_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat5[1] = {&dat5}; + daNpcF_anmPlayData dat6 = {ANM_W_TO_WOLF, daNpcKasiHana_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat6[1] = {&dat6}; + daNpcF_anmPlayData dat7 = {ANM_W_WALK_A, daNpcKasiHana_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat7[1] = {&dat7}; + daNpcF_anmPlayData dat8 = {ANM_W_LOOK_B, daNpcKasiHana_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat8[1] = {&dat8}; + daNpcF_anmPlayData dat9 = {ANM_W_RUN_A, daNpcKasiHana_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat9[1] = {&dat9}; + daNpcF_anmPlayData dat10 = {ANM_W_SURPRISE, daNpcKasiHana_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat10[1] = {&dat10}; + daNpcF_anmPlayData dat11a = {ANM_W_WAIT_A_2, daNpcKasiHana_Param_c::m.common.morf_frame, 1}; + daNpcF_anmPlayData dat11b = {ANM_W_2LADYTALK_B, daNpcKasiHana_Param_c::m.common.morf_frame, 1}; + daNpcF_anmPlayData dat11c = {ANM_W_TALK_A, daNpcKasiHana_Param_c::m.common.morf_frame, 1}; + daNpcF_anmPlayData dat11d = {ANM_W_WAIT_A_2, daNpcKasiHana_Param_c::m.common.morf_frame, 1}; + daNpcF_anmPlayData dat11e = {ANM_W_TALK_B, daNpcKasiHana_Param_c::m.common.morf_frame, 1}; + daNpcF_anmPlayData dat11f = {ANM_W_2NORMALTALK_B, daNpcKasiHana_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat11[6] = {&dat11a, &dat11b, &dat11c, &dat11d, &dat11e, &dat11f}; + + daNpcF_anmPlayData** ppDat[12] = { + pDat0, + pDat1, + pDat2, + pDat3, + pDat4, + pDat5, + pDat6, + pDat7, + pDat8, + pDat9, + pDat10, + pDat11, + }; + + if (mMotion >= 0 && mMotion < 0xC) { + field_0x143e = mMotionPhase; + + if (mMotion == MOT_W_WAIT_A_LOOP) { + playMotionAnmLoop(ppDat); + } else { + playMotionAnm(ppDat); + } + } +} + +/* 80A1D604-80A1D77C 002744 0178+00 1/1 0/0 0/0 .text playMotionAnmLoop__15daNpcKasiHana_cFPPPQ28daNpcF_c18daNpcF_anmPlayData */ +void daNpcKasiHana_c::playMotionAnmLoop(daNpcF_c::daNpcF_anmPlayData*** i_data) { + daNpcF_anmPlayData* playData = NULL; + + if (i_data[mMotion] != NULL) { + playData = i_data[mMotion][mMotionPhase]; + } + + if (playData != NULL) { + if (mMotionPrevPhase == mMotionPhase) { + if (playData->numLoops > 0 && playData->numLoops <= mMotionLoops) { + mMotionPhase++; + playData = i_data[mMotion][mMotionPhase]; + } else if (playData->numLoops == 0 && mMotionLoops >= 1) { + mMotionPhase = 0; + playData = i_data[mMotion][mMotionPhase]; + } + } + + if (playData != NULL && mMotionPrevPhase != mMotionPhase) { + setMotionAnm(playData->idx, 0.0f); + f32 i_morf = playData->morf; + + if (mMotionPhase == 0) { + if (mMotion == MOT_W_WAIT_A_LOOP) { + i_morf = daNpcKasiHana_Param_c::m.common.morf_frame; + } else if (0.0f <= mMotionMorfOverride) { + i_morf = mMotionMorfOverride; + } + } + + mExpressionMorf = 0.0f; + mpMorf->setMorf(i_morf); + } + } + + mMotionPrevPhase = mMotionPhase; +} + +/* 80A1D77C-80A1D824 0028BC 00A8+00 9/9 0/0 0/0 .text setAction__15daNpcKasiHana_cFM15daNpcKasiHana_cFPCvPvi_i */ +BOOL daNpcKasiHana_c::setAction(actionFunc action) { + mMode = -1; + + if (mAction) { + (this->*mAction)(NULL); + } + + mMode = 0; + mAction = action; + + if (mAction) { + (this->*mAction)(NULL); + } + + return TRUE; +} + +/* 80A1D824-80A1D848 002964 0024+00 8/8 0/0 0/0 .text setLookMode__15daNpcKasiHana_cFi */ +void daNpcKasiHana_c::setLookMode(int i_lookMode) { + if (i_lookMode >= 0 && i_lookMode < 4 && i_lookMode != mLookMode) { + mLookMode = i_lookMode; + } +} + +/* 80A1D848-80A1DA28 002988 01E0+00 1/1 0/0 0/0 .text lookat__15daNpcKasiHana_cFv */ +void daNpcKasiHana_c::lookat() { + daPy_py_c* player = NULL; + J3DModel* model = mpMorf->getModel(); + BOOL i_snap = FALSE; + f32 body_angleX_min = daNpcKasiHana_Param_c::m.common.body_angleX_min; + f32 body_angleX_max = daNpcKasiHana_Param_c::m.common.body_angleX_max; + f32 body_angleY_min = daNpcKasiHana_Param_c::m.common.body_angleY_min; + f32 body_angleY_max = daNpcKasiHana_Param_c::m.common.body_angleY_max; + f32 head_angleX_min = daNpcKasiHana_Param_c::m.common.head_angleX_min; + f32 head_angleX_max = daNpcKasiHana_Param_c::m.common.head_angleX_max; + f32 head_angleY_min = daNpcKasiHana_Param_c::m.common.head_angleY_min; + f32 head_angleY_max = daNpcKasiHana_Param_c::m.common.head_angleY_max; + s16 angle_delta = mCurAngle.y - mOldAngle.y; + cXyz lookatPos[3] = {mLookatPos[0], mLookatPos[1], mLookatPos[2]}; + csXyz* lookatAngle[3] = {&mLookatAngle[0], &mLookatAngle[1], &mLookatAngle[2]}; + cXyz spe8; + + switch (mLookMode) { + case LOOK_NONE: + break; + + case LOOK_RESET: + i_snap = TRUE; + break; + + case LOOK_PLAYER: + case LOOK_PLAYER_TALK: + player = daPy_getPlayerActorClass(); + + if (mLookMode != LOOK_PLAYER_TALK) { + break; + } + + head_angleY_min = -80.0f; + head_angleY_max = 80.0f; + break; + } + + if (player != NULL) { + mLookPos = player->attention_info.position; + + if (mLookMode != LOOK_PLAYER && mLookMode != LOOK_PLAYER_TALK) { + mLookPos.y -= 40.0f; + } + + mLookat.setAttnPos(&mLookPos); + } else { + mLookat.setAttnPos(NULL); + } + + mLookat.setParam(body_angleX_min, body_angleX_max, body_angleY_min, body_angleY_max, 0.0f, 0.0f, 0.0f, 0.0f, + head_angleX_min, head_angleX_max, head_angleY_min, head_angleY_max, mCurAngle.y, lookatPos); + mLookat.calc(this, model->getBaseTRMtx(), lookatAngle, i_snap, angle_delta, FALSE); +} + +/* 80A1DA28-80A1DB1C 002B68 00F4+00 1/1 0/0 0/0 .text step__15daNpcKasiHana_cFsi */ +BOOL daNpcKasiHana_c::step(s16 i_targetAngle, int param_2) { + if (mTurnMode == 0) { + mTurnTargetAngle = i_targetAngle; + mTurnAmount = 0; + + if (mCurAngle.y == mTurnTargetAngle) { + mTurnMode++; + } + + current.angle.y = mCurAngle.y; + shape_angle.y = current.angle.y; + mTurnMode++; + } else if (mTurnMode == 1) { + if (daNpcF_c::turn(mTurnTargetAngle, 15.0f, 0)) { + shape_angle.y = current.angle.y; + mCurAngle.y = current.angle.y; + mOldAngle.y = current.angle.y; + mTurnMode++; + } else { + shape_angle.y = current.angle.y; + mCurAngle.y = current.angle.y; + } + } + + return mTurnMode > 1; +} + +/* 80A1DB1C-80A1DC00 002C5C 00E4+00 1/1 0/0 0/0 .text chkFindPlayer__15daNpcKasiHana_cFv */ +BOOL daNpcKasiHana_c::chkFindPlayer() { + if (!chkActorInSight(daPy_getPlayerActorClass(), daNpcKasiHana_Param_c::m.common.fov)) { + mActorMngr[0].remove(); + return FALSE; + } + + bool rv; + if (mActorMngr[0].getActorP() == NULL) { + rv = chkPlayerInSpeakArea(this); + } else { + rv = chkPlayerInTalkArea(this); + } + + if (rv) { + mActorMngr[0].entry(daPy_getPlayerActorClass()); + } else { + mActorMngr[0].remove(); + } + + return rv; +} + +/* 80A1DC00-80A1E184 002D40 0584+00 10/0 0/0 0/0 .text wait__15daNpcKasiHana_cFi */ +int daNpcKasiHana_c::wait(int param_1) { + switch (mMode) { + case -1: + break; + + case 0: + if (mType == TYPE_WAIT && !field_0x1445) { + setMotion(MOT_W_WAIT_A_LOOP, 12.0f, 0); + } else { + setMotion(MOT_W_WAIT_A, -1.0f, 0); + } + + speedF = 0.0f; + mMode = 1; + break; + + case 1: + BOOL bVar1 = FALSE; + chkFindPlayer(); + + if (mActorMngr[0].getActorP() != NULL) { + setLookMode(LOOK_PLAYER); + bVar1 = TRUE; + } else if (!fopAcM_isSwitch(this, getSwitchBitNo())) { + setLookMode(LOOK_NONE); + if (home.angle.y != mCurAngle.y && step(home.angle.y, 1)) { + if (mType == TYPE_WAIT && !field_0x1445) { + setMotion(MOT_W_WAIT_A_LOOP, 12.0f, 0); + } else { + setMotion(MOT_W_WAIT_A, -1.0f, 0); + } + + mTurnMode = 0; + } + } + + if (mType == TYPE_WAIT) { + /* dSv_event_flag_c::F_290 - Castle Town - Star Game 1 cleared */ + if (daNpcF_chkEvtBit(290)) { + f32 actorDistance = fopAcM_searchActorDistanceXZ(this, daPy_getPlayerActorClass()); + + if (!fopAcM_isSwitch(this, getSwitchBitNo())) { + if (actorDistance < 350.0f) { + mOrderEvtNo = EVT_APPEAR; + } + } else if (!daPy_py_c::checkNowWolf()) { + if (field_0x1441 == 0) { + if (bVar1) { + field_0x1441 = 1; + mKasiMng.onSygnal(0x200); + setAction(&daNpcKasiHana_c::chace_st); + return 1; + } + + f32 distFromCenter = mKasiMng.getDistFromCenter(); + if (distFromCenter >= 0.0f && distFromCenter < daNpcKasiHana_Param_c::m.track_start_dist) { + field_0x1441 = 1; + mKasiMng.onSygnal(0x200); + setAction(&daNpcKasiHana_c::chace_st); + return 1; + } + } else if (pl_front_check()) { + if (actorDistance >= daNpcKasiHana_Param_c::m.track_stop_dist + 50.0f) { + setAction(&daNpcKasiHana_c::chace); + return 1; + } + } else { + setAction(&daNpcKasiHana_c::turn); + return 1; + } + } + } + } else if (mType == TYPE_CHEER && mKasiMng.isMiniGamePlaying()) { + setAction(&daNpcKasiHana_c::cheer); + return 1; + } + + mKasiMng.setKyuPos(current.pos); + mKasiMng.setMichPos(current.pos); + + if (dComIfGp_event_runCheck()) { + if (eventInfo.checkCommandTalk()) { + if (!dComIfGp_event_chkTalkXY() || dComIfGp_evmng_ChkPresentEnd()) { + setAction(&daNpcKasiHana_c::talk); + } + } else if (dComIfGp_getEventManager().getMyStaffId(l_myName, NULL, 0) != -1) { + setAction(&daNpcKasiHana_c::demo); + } + } else { + if (!dKy_darkworld_check()) { + if (daPy_py_c::checkNowWolf()) { + f32 fVar1 = pow(500.0, 2.0); + if (fopAcM_searchPlayerDistanceXZ2(this) < fVar1) { + setAction(&daNpcKasiHana_c::fear); + break; + } + } + } + + if (mOrderEvtNo != EVT_NONE) { + eventInfo.setArchiveName(l_arcNames[0]); + } + + orderEvent(field_0x1444, l_evtNames[mOrderEvtNo], 0xFFFF, 4, 0xFF, 2); + } + break; + } + + return 1; +} + +/* 80A1E184-80A1E228 0032C4 00A4+00 3/0 0/0 0/0 .text chace_st__15daNpcKasiHana_cFi */ +int daNpcKasiHana_c::chace_st(int param_1) { + switch (mMode) { + case -1: + break; + + case 0: + field_0x1445 = true; + fopAcM_SetSpeedF(this, 0.0f); + mMode = 1; + break; + + case 1: + if (_turn_to_link(0xC00)) { + setAction(&daNpcKasiHana_c::chace); + } + break; + } + + return 1; +} + +/* 80A1E228-80A1E3AC 003368 0184+00 2/0 0/0 0/0 .text chace__15daNpcKasiHana_cFi */ +int daNpcKasiHana_c::chace(int param_1) { + switch (mMode) { + case -1: + break; + + case 0: + field_0x1445 = true; + setMotion(MOT_W_RUN_A, -1.0f, 0); + setLookMode(LOOK_NONE); + fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f); + fopAcM_SetSpeedF(this, daNpcKasiHana_Param_c::m.track_spd); + mKasiMng.chgWeightLight(); + mMode = 1; + break; + + case 1: + cXyz chacePos = getChacePos(); + _turn_pos(chacePos, 0x800); + + if (pl_front_check()) { + if (fopAcM_searchActorDistanceXZ(this, daPy_getPlayerActorClass()) < daNpcKasiHana_Param_c::m.track_stop_dist) { + setAction(&daNpcKasiHana_c::wait); + } + } else { + setAction(&daNpcKasiHana_c::chace_st); + } + break; + } + + return 1; +} + +/* 80A1E3AC-80A1E4AC 0034EC 0100+00 1/1 0/0 0/0 .text getChacePos__15daNpcKasiHana_cFv */ +cXyz daNpcKasiHana_c::getChacePos() { + cXyz rv(*fopAcM_GetPosition_p(daPy_getPlayerActorClass())); + + if (!mKasiMng.isPathInit()) { + OS_REPORT("-------------------------path not initialize!!\n"); + return rv; + } + + int plNearPoint = mKasiMng.getPlNearPoint(); + int idx = mPath.getIdx(); + + if (idx == plNearPoint) { + return rv; + } + + if (idx < plNearPoint) { + mPath.offReverse(); + } else if (idx > plNearPoint) { + mPath.onReverse(); + } + + cXyz sp3c; + mPath.getDstPos(current.pos, sp3c); + + return sp3c; +} + +/* 80A1E4AC-80A1E578 0035EC 00CC+00 1/0 0/0 0/0 .text turn__15daNpcKasiHana_cFi */ +int daNpcKasiHana_c::turn(int param_1) { + switch (mMode) { + case -1: + break; + + case 0: + setMotion(MOT_W_WAIT_A, -1.0f, 0); + speedF = 0.0f; + mKasiMng.onSygnal(4); + mMode = 1; + break; + + case 1: + if (_turn_to_link(0x1000)) { + setAction(&daNpcKasiHana_c::wait); + } + break; + + default: + JUT_ASSERT(2155, 0); + } + + return 1; +} + +/* 80A1E578-80A1E78C 0036B8 0214+00 3/0 0/0 0/0 .text fear__15daNpcKasiHana_cFi */ +int daNpcKasiHana_c::fear(int param_1) { + switch (mMode) { + case -1: + break; + + case 0: { + mKasiMng.onSygnal(0x80000); + dComIfGs_onSaveDunSwitch(60); + + daTagEscape_c* tagEscape_p = srchWolfTag(); + if (tagEscape_p != NULL) { + mPath.initialize(); + mPath.setPathInfo(tagEscape_p->getPathID(), fopAcM_GetRoomNo(this), 0); + mPath.setIdx(getWolfPathNearIdx()); + mMode = 1; + } + break; + } + + case 1: + if (_turn_to_link(0x1000)) { + setMotion(MOT_W_SURPRISE, -1.0f, 0); + mMode = 3; + } + break; + + case 3: + if (mpMorf->isStop()) { + setMotion(MOT_W_RUN_A, -1.0f, 0); + fopAcM_SetSpeedF(this, 15.0f); + mSound.startCreatureVoice(Z2SE_HANA_V_FEAR, -1); + mMode = 4; + } + break; + + case 4: { + cXyz sp28; + mpMorf->setPlaySpeed(1.5f); + + if (mPath.getDstPos(current.pos, sp28)) { + mEscape = true; + mMode = 5; + } else { + _turn_pos(sp28, 800); + } + break; + } + + case 5: + if (mKasiMng.chkEscape()) { + mKasiMng.deleteAllMember(); + } + break; + } + + return 1; +} + +/* 80A21858-80A2185C 000058 0004+00 1/2 0/0 0/0 .bss mTargetTag__15daNpcKasiHana_c */ +daTagEscape_c* daNpcKasiHana_c::mTargetTag; + +/* 80A2185C-80A21860 00005C 0004+00 0/1 0/0 0/0 .bss mTargetTagDist__15daNpcKasiHana_c */ +f32 daNpcKasiHana_c::mTargetTagDist; + +/* 80A21860-80A21864 000060 0002+02 1/2 0/0 0/0 .bss mWolfAngle__15daNpcKasiHana_c */ +s16 daNpcKasiHana_c::mWolfAngle; + +/* 80A1E78C-80A1E7F4 0038CC 0068+00 1/1 0/0 0/0 .text srchWolfTag__15daNpcKasiHana_cFv */ +daTagEscape_c* daNpcKasiHana_c::srchWolfTag() { + mTargetTag = NULL; + mWolfAngle = fopAcM_searchPlayerAngleY(this); + fpcM_Search(_srch_escape_tag, this); + return mTargetTag; +} + +/* 80A1E7F4-80A1E8C4 003934 00D0+00 1/1 0/0 0/0 .text _srch_escape_tag__15daNpcKasiHana_cFPvPv */ +void* daNpcKasiHana_c::_srch_escape_tag(void* i_actor, void* i_data) { + if (!fopAcM_IsActor(i_actor)) { + return NULL; + } + + if (fopAcM_GetName(i_actor) != PROC_Tag_Escape) { + return NULL; + } + + int iVar1 = cLib_distanceAngleS(mWolfAngle, fopAcM_searchActorAngleY((fopAc_ac_c*)i_data, (fopAc_ac_c*)i_actor)); + + if (mTargetTag == NULL) { + mTargetTagDist = fopAcM_searchActorDistanceXZ2((fopAc_ac_c*)i_data, (fopAc_ac_c*)i_actor); + mTargetTag = (daTagEscape_c*)i_actor; + return NULL; + } + + if (iVar1 > 0x4000) { + f32 fVar1 = fopAcM_searchActorDistanceXZ2((fopAc_ac_c*)i_data, (fopAc_ac_c*)i_actor); + if (fVar1 < mTargetTagDist) { + mTargetTagDist = fVar1; + mTargetTag = (daTagEscape_c*)i_actor; + } + } + + return NULL; +} + +/* 80A1E8C4-80A1E9F8 003A04 0134+00 1/1 0/0 0/0 .text getWolfPathNearIdx__15daNpcKasiHana_cFv */ +int daNpcKasiHana_c::getWolfPathNearIdx() { + int iVar1 = 0; + f32 fVar1 = 0.0f; + u16 numPnts = mPath.getNumPnts(); + cXyz sp44, sp50; + + int rv = 0; + for (; rv < numPnts; rv++) { + sp44 = mPath.getPntPos(rv); + sp50 = sp44 - current.pos; + f32 fVar2 = sp50.abs2XZ(); + + if (rv == 0) { + fVar1 = fVar2; + iVar1 = 0; + } else if (fVar2 < fVar1) { + fVar1 = fVar2; + iVar1 = rv; + } + } + + rv = iVar1 + 1; + + if (iVar1 == numPnts) { + rv = iVar1; + } + + return rv; +} + +/* 80A1E9F8-80A1EB5C 003B38 0164+00 1/0 0/0 0/0 .text talk__15daNpcKasiHana_cFi */ +int daNpcKasiHana_c::talk(int param_1) { + bool rv = false; + + switch (mMode) { + case 0: + mTalked = true; + setAction(&daNpcKasiHana_c::wait); + rv = true; + break; + + case -1: + if (!field_0x9ec) { + dComIfGp_event_reset(); + } + break; + + case 1: + if (talkProc(NULL, TRUE, NULL)) { + mActorMngr[0].entry(daPy_getPlayerActorClass()); + + if (mType == TYPE_WAIT) { + setAction(&daNpcKasiHana_c::wait); + } + + rv = true; + } else { + int iVar1, i_motion; + if (ctrlMsgAnm(iVar1, i_motion, this, FALSE)) { + setMotion(i_motion, -1.0f, 0); + } + } + break; + + case 2: + break; + } + + return rv; +} + +/* 80A1EB5C-80A1EE38 003C9C 02DC+00 4/0 0/0 0/0 .text demo__15daNpcKasiHana_cFi */ +int daNpcKasiHana_c::demo(int param_1) { + switch (mMode) { + case -1: + break; + + case 0: + setMotion(MOT_W_WAIT_A, -1.0f, 0); + mMode = 1; + break; + + case 1: + if (dComIfGp_event_runCheck() != FALSE && !eventInfo.checkCommandTalk()) { + dEvent_manager_c& eventManager = dComIfGp_getEventManager(); + s32 staffId = dComIfGp_getEventManager().getMyStaffId(l_myName, NULL, 0); + if (staffId != -1) { + mStaffID = staffId; + + JUT_ASSERT(2459, 0 != mEvtSeqList[mOrderEvtNo]); + + if ((this->*mEvtSeqList[mOrderEvtNo])(staffId)) { + dComIfGp_getEventManager().cutEnd(staffId); + } + } + + if (eventInfo.checkCommandDemoAccrpt() && mEventIdx != -1 && eventManager.endCheck(mEventIdx)) { + switch (mOrderEvtNo) { + case EVT_APPEAR: + dComIfGp_event_reset(); + mOrderEvtNo = EVT_NONE; + mEventIdx = -1; + fopAcM_onSwitch(this, getSwitchBitNo()); + mKasiMng.onSygnal(1); + setAction(&daNpcKasiHana_c::wait); + break; + + case EVT_HEART: + setAction(&daNpcKasiHana_c::escape); + dComIfGp_event_reset(); + mOrderEvtNo = EVT_NONE; + mEventIdx = -1; + break; + + case EVT_TALK: + mKasiMng.allDemoNotMove(); + dComIfGp_event_reset(); + mOrderEvtNo = EVT_NONE; + mEventIdx = -1; + setAction(&daNpcKasiHana_c::wait); + mKasiMng.onSygnal(1); + break; + + case EVT_CHEER: + case EVT_CHEER2: + dTimer_show(); + // fallthrough + default: + dComIfGp_event_reset(); + mOrderEvtNo = EVT_NONE; + mEventIdx = -1; + + if (mType == TYPE_WAIT) { + setAction(&daNpcKasiHana_c::wait); + } else if (mType == TYPE_CHEER) { + OS_REPORT("-----------demo return!!\n"); + + dComIfG_TimerReStart(6); + setAction(&daNpcKasiHana_c::cheer); + } + break; + } + } + } + break; + } + + return 1; +} + +/* 80A1EE38-80A1EF90 003F78 0158+00 1/0 0/0 0/0 .text escape__15daNpcKasiHana_cFi */ +int daNpcKasiHana_c::escape(int param_1) { + switch (mMode) { + case -1: + break; + + case 0: + setMotion(MOT_W_RUN_A, -1.0f, 0); + fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f); + fopAcM_SetSpeedF(this, daNpcKasiHana_Param_c::m.escape_spd); + setEscapePathDir(); + mKasiMng.onSygnal(0x20); + mSound.startCreatureVoice(Z2SE_HANA_V_FEAR, -1); + mMode = 1; + break; + + case 1: + cXyz sp28; + if (mPath.getDstPos(current.pos, sp28)) { + mKasiMng.deleteAllMember(); + } else { + _turn_pos(sp28, 0x600); + mKasiMng.calcEscapeForm(); + mpMorf->setPlaySpeed(1.75f); + } + break; + } + + return 1; +} + +/* 80A1EF90-80A1F198 0040D0 0208+00 3/0 0/0 0/0 .text cheer__15daNpcKasiHana_cFi */ +int daNpcKasiHana_c::cheer(int param_1) { + // NONMATCHING + switch (mMode) { + case -1: + break; + + case 0: + /* dSv_event_flag_c::F_290 - Castle Town - Star Game 1 cleared */ + if (daNpcF_chkEvtBit(290)) { + setMotion(MOT_MICH_OUEN_WAIT_B, -1.0f, 0); + } else { + setMotion(MOT_MICH_OUEN_WAIT_A, -1.0f, 0); + } + + setLookMode(LOOK_PLAYER); + fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f); + fopAcM_SetSpeedF(this, 0.0f); + mTalked = false; + field_0x1440 = 0; + mMode = 1; + break; + + case 1: + if (!mKasiMng.isMiniGamePlaying()) { + mKasiMng.onSygnal(1); + setAction(&daNpcKasiHana_c::wait); + return 1; + } + + if (field_0x1440 == 0) { + mKasiMng.onSygnal(0x100); + field_0x1440 = 1; + } + + if (dComIfGp_event_runCheck()) { + if (eventInfo.checkCommandTalk()) { + if (!dComIfGp_event_chkTalkXY() || dComIfGp_evmng_ChkPresentEnd()) { + mTalked = true; + dComIfGp_event_reset(); + } + } + } else { + if (mOrderEvtNo != EVT_NONE) { + eventInfo.setArchiveName(l_arcNames[0]); + } + + orderEvent(field_0x1444, l_evtNames[mOrderEvtNo], 0xFFFF, 4, 0xFF, 2); + } + break; + } + + return 1; +} + +/* 80A1F198-80A1F1E4 0042D8 004C+00 5/5 0/0 0/0 .text _turn_to_link__15daNpcKasiHana_cFs */ +BOOL daNpcKasiHana_c::_turn_to_link(s16 param_1) { + cXyz sp20(*fopAcM_GetPosition_p(daPy_getPlayerActorClass())); + return _turn_pos(sp20, param_1); +} + +/* 80A1F1E4-80A1F240 004324 005C+00 5/5 0/0 0/0 .text _turn_pos__15daNpcKasiHana_cFRC4cXyzs */ +BOOL daNpcKasiHana_c::_turn_pos(cXyz const& param_1, s16 param_2) { + BOOL rv = cLib_chaseAngleS(&mCurAngle.y, cLib_targetAngleY(¤t.pos, ¶m_1), param_2); + current.angle.y = mCurAngle.y; + shape_angle.y = mCurAngle.y; + return rv; +} + +/* 80A1F240-80A1F318 004380 00D8+00 3/3 0/0 0/0 .text actor_front_check__15daNpcKasiHana_cFP10fopAc_ac_c */ +BOOL daNpcKasiHana_c::actor_front_check(fopAc_ac_c* actor_p) { + if (actor_p == NULL) { + return TRUE; + } + + cXyz sp24(*fopAcM_GetPosition_p(actor_p)); + cXyz sp30(sp24 - current.pos); + cXyz sp3c(0.0f, 0.0f, 1.0f); + cXyz sp48; + _getOffset(sp3c, sp48); + + return (sp30.x * sp48.x + sp30.z * sp48.z) >= 0.0f; +} + +/* 80A1F318-80A1F384 004458 006C+00 1/1 0/0 0/0 .text _getOffset__15daNpcKasiHana_cFRC4cXyzR4cXyz */ +void daNpcKasiHana_c::_getOffset(cXyz const& param_1, cXyz& param_2) { + param_2 = param_1; + csXyz angle(*fopAcM_GetShapeAngle_p(this)); + mDoMtx_stack_c::ZXYrotS(angle); + mDoMtx_stack_c::multVec(¶m_2, ¶m_2); +} + +/* 80A1F384-80A1F42C 0044C4 00A8+00 1/0 0/0 0/0 .text _Evt_Kasi_Appear__15daNpcKasiHana_cFi */ +BOOL daNpcKasiHana_c::_Evt_Kasi_Appear(int i_index) { + dEvent_manager_c& eventManager = dComIfGp_getEventManager(); + int i_cutIndex = -1; + + int* cutId = dComIfGp_evmng_getMyIntegerP(i_index, "cutId"); + if (cutId != NULL) { + i_cutIndex = *cutId; + } else { + return TRUE; + } + + if (eventManager.getIsAddvance(i_index)) { + _Evt_Kasi_Appear_CutInit(i_cutIndex); + } + + return _Evt_Kasi_Appear_CutMain(i_cutIndex); + +} + +/* 80A1F42C-80A1F50C 00456C 00E0+00 1/1 0/0 0/0 .text _Evt_Kasi_Appear_CutInit__15daNpcKasiHana_cFRCi */ +BOOL daNpcKasiHana_c::_Evt_Kasi_Appear_CutInit(int const& i_cutIndex) { + switch (i_cutIndex) { + case 10: + mKasiMng.onSygnal(4); + setMotion(MOT_W_WAIT_A, -1.0f, 0); + field_0x1430 = 20; + break; + + case 20: + mKasiMng.onSygnal(0x400); + setMotion(MOT_MICH_KYA_TALK, -1.0f, 0); + initTalk(mMessageNo, NULL); + break; + + case 21: + mKasiMng.onSygnal(0x1000); + field_0x1430 = 24; + break; + } + + return TRUE; +} + +/* 80A1F50C-80A1F638 00464C 012C+00 1/1 0/0 0/0 .text _Evt_Kasi_Appear_CutMain__15daNpcKasiHana_cFRCi */ +BOOL daNpcKasiHana_c::_Evt_Kasi_Appear_CutMain(int const& i_cutIndex) { + BOOL rv = FALSE; + + switch (i_cutIndex) { + case 10: + if (_turn_to_link(0x1000)) { + setLookMode(LOOK_PLAYER); + } + + if (--field_0x1430 <= 0) { + rv = TRUE; + } + break; + + case 20: + if (talkProc(NULL, TRUE, NULL)) { + rv = TRUE; + } + break; + + case 21: + if (mMotion == MOT_MICH_KYA_TALK && (mpMorf->getFrame() == 19.0f || mpMorf->getFrame() == 1.0f)) { + setMotion(MOT_W_WAIT_A, -1.0f, 0); + } + + field_0x1430--; + if (field_0x1430 == 0) { + rv = TRUE; + } + break; + + default: + rv = TRUE; + } + + return rv; +} + +/* 80A1F638-80A1F740 004778 0108+00 1/0 0/0 0/0 .text _Evt_Kasi_Talk__15daNpcKasiHana_cFi */ +BOOL daNpcKasiHana_c::_Evt_Kasi_Talk(int i_index) { + dEvent_manager_c& eventManager = dComIfGp_getEventManager(); + int i_cutIndex = -1; + + int* cutID = dComIfGp_evmng_getMyIntegerP(i_index, "cutId"); + if (cutID != NULL) { + i_cutIndex = *cutID; + } else { + return TRUE; + } + + if (eventManager.getIsAddvance(i_index)) { + _Evt_Kasi_Talk_CutInit(i_cutIndex); + } + + int iVar2 = -1; + int* mesNo; + + /* dSv_event_flag_c::F_289 - Castle Town - Heard conversation about entering Star Game 1 */ + if (daNpcF_chkEvtBit(289)) { + mesNo = dComIfGp_evmng_getMyIntegerP(i_index, "mesNo2"); + } else { + mesNo = dComIfGp_evmng_getMyIntegerP(i_index, "mesNo1"); + } + + if (mesNo != NULL) { + iVar2 = *mesNo; + } + + return _Evt_Kasi_Talk_CutMain(i_cutIndex, iVar2); +} + +/* 80A1F740-80A1F860 004880 0120+00 1/1 0/0 0/0 .text _Evt_Kasi_Talk_CutInit__15daNpcKasiHana_cFRCi */ +BOOL daNpcKasiHana_c::_Evt_Kasi_Talk_CutInit(int const& i_cutIndex) { + fopAc_ac_c* actors[3] = {mKasiMng.getHanaActor(), mKasiMng.getKyuActor(), mKasiMng.getMichActor()}; + + switch (i_cutIndex) { + case 10: + setLookMode(LOOK_NONE); + setMotion(MOT_MICH_KYA_TALK, -1.0f, 0); + initTalk(mMessageNo, actors); + break; + + case 20: + mKasiMng.onSygnal(0x20000); + break; + + case 30: + mKasiMng.onSygnal(0x40000); + break; + + case 31: + mKasiMng.onSygnal(0x1000); + break; + } + + return TRUE; +} + +/* 80A1F860-80A1F9F4 0049A0 0194+00 1/1 0/0 0/0 .text _Evt_Kasi_Talk_CutMain__15daNpcKasiHana_cFRCii */ +BOOL daNpcKasiHana_c::_Evt_Kasi_Talk_CutMain(int const& i_cutIndex, int param_2) { + fopAc_ac_c* actors[3] = {mKasiMng.getHanaActor(), mKasiMng.getKyuActor(), mKasiMng.getMichActor()}; + BOOL rv = FALSE; + int iVar1[2] = {-1, -1}; + + switch (i_cutIndex) { + case 10: + iVar1[0] = param_2; + + if (talkProc(iVar1, FALSE, actors)) { + rv = TRUE; + } + break; + + case 20: + if (mMotion == MOT_MICH_KYA_TALK && (mpMorf->getFrame() == 19.0f || mpMorf->getFrame() == 1.0f)) { + setMotion(MOT_W_WAIT_A, -1.0f, 0); + } + + iVar1[0] = param_2; + + if (talkProc(iVar1, FALSE, actors)) { + rv = TRUE; + } + break; + + case 30: + if (talkProc(NULL, FALSE, actors)) { + rv = TRUE; + } + break; + + case 31: + rv = TRUE; + break; + + default: + rv = TRUE; + break; + } + + return rv; +} + +/* 80A1F9F4-80A1FA9C 004B34 00A8+00 1/0 0/0 0/0 .text _Evt_Kasi__15daNpcKasiHana_cFi */ +BOOL daNpcKasiHana_c::_Evt_Kasi(int i_index) { + dEvent_manager_c& eventManager = dComIfGp_getEventManager(); + int i_cutIndex = -1; + + int* cutId = dComIfGp_evmng_getMyIntegerP(i_index, "cutId"); + if (cutId != NULL) { + i_cutIndex = *cutId; + } else { + return TRUE; + } + + if (eventManager.getIsAddvance(i_index) != 0) { + _Evt_Kasi_CutInit(i_cutIndex); + } + + return _Evt_Kasi_CutMain(i_cutIndex); +} + +/* 80A1FA9C-80A1FBC4 004BDC 0128+00 1/1 0/0 0/0 .text _Evt_Kasi_CutInit__15daNpcKasiHana_cFRCi */ +BOOL daNpcKasiHana_c::_Evt_Kasi_CutInit(int const& i_cutIndex) { + switch (i_cutIndex) { + case 10: + mKasiMng.onSygnal(4); + break; + + case 20: + setMotion(MOT_MICH_KYA_TALK, -1.0f, 0); + mKasiMng.onSygnal(0x400); + initTalk(mMessageNo, NULL); + break; + + case 21: + mKasiMng.onSygnal(0x1000); + field_0x1430 = 24; + break; + + case 30: + setLookMode(LOOK_NONE); + mKasiMng.onSygnal(0x40); + mKasiMng.calcCenterPos(); + break; + + case 40: + field_0x1430 = 86; + mKasiMng.onSygnal(0x800); + setMotion(MOT_MICH_IYAN_WAIT, -1.0f, 0); + break; + } + + return TRUE; +} + +/* 80A1FBC4-80A1FD64 004D04 01A0+00 1/1 0/0 0/0 .text _Evt_Kasi_CutMain__15daNpcKasiHana_cFRCi */ +BOOL daNpcKasiHana_c::_Evt_Kasi_CutMain(int const& i_cutIndex) { + BOOL rv = FALSE; + + switch (i_cutIndex) { + case 10: + if (_turn_to_link(0xA00)) { + rv = TRUE; + } + break; + + case 20: + if (talkProc(NULL, TRUE, NULL)) { + rv = TRUE; + } + break; + + case 21: + if (mMotion == MOT_MICH_KYA_TALK && (mpMorf->getFrame() == 19.0f || mpMorf->getFrame() == 1.0f)) { + setMotion(MOT_W_WAIT_A, -1.0f, 0); + } + + field_0x1430--; + if (field_0x1430 == 0) { + rv = TRUE; + } + break; + + case 30: { + cXyz sp38(mKasiMng.getCenterPos()); + + if (_turn_pos(sp38, 0xA00)) { + rv = TRUE; + } + break; + } + + case 40: + field_0x1430--; + if (field_0x1430 <= 0) { + rv = TRUE; + } else if (field_0x1430 == 66) { + mKasiMng.createHearts(); + } + break; + + default: + rv = TRUE; + } + + return rv; +} + +/* 80A1FD64-80A1FE6C 004EA4 0108+00 1/0 0/0 0/0 .text _Evt_Kasi_Cheer__15daNpcKasiHana_cFi */ +BOOL daNpcKasiHana_c::_Evt_Kasi_Cheer(int i_index) { + OS_REPORT("-------------------daNpcKasiHana_c::_Evt_Kasi_Cheer\n"); + + dEvent_manager_c& eventManager = dComIfGp_getEventManager(); + int i_cutIndex = -1; + + int* cutId = dComIfGp_evmng_getMyIntegerP(i_index, "cutId"); + if (cutId != NULL) { + i_cutIndex = *cutId; + } else { + return TRUE; + } + + if (eventManager.getIsAddvance(i_index) != 0) { + _Evt_Kasi_Cheer_CutInit(i_cutIndex); + } + + int iVar2 = -1; + int* mesNo; + + /* dSv_event_flag_c::F_290 - Castle Town - Star Game 1 cleared */ + if (daNpcF_chkEvtBit(290)) { + mesNo = dComIfGp_evmng_getMyIntegerP(i_index, "mesNo2"); + } else { + mesNo = dComIfGp_evmng_getMyIntegerP(i_index, "mesNo1"); + } + + if (mesNo != NULL) { + iVar2 = *mesNo; + } + + return _Evt_Kasi_Cheer_CutMain(i_cutIndex, iVar2); +} + +/* 80A1FE6C-80A1FF78 004FAC 010C+00 1/1 0/0 0/0 .text _Evt_Kasi_Cheer_CutInit__15daNpcKasiHana_cFRCi */ +BOOL daNpcKasiHana_c::_Evt_Kasi_Cheer_CutInit(int const& i_cutIndex) { + fopAc_ac_c* actors[3] = {mKasiMng.getHanaActor(), mKasiMng.getKyuActor(), mKasiMng.getMichActor()}; + + switch (i_cutIndex) { + case 10: + setMotion(MOT_MICH_IYAN_WAIT, -1.0f, 0); + setLookMode(LOOK_NONE); + field_0x1430 = 86; + initTalk(mMessageNo, actors); + break; + + case 20: + mKasiMng.onSygnal(0x8000); + break; + + case 30: + mKasiMng.onSygnal(0x10000); + break; + } + + return TRUE; +} + +/* 80A1FF78-80A2016C 0050B8 01F4+00 1/1 0/0 0/0 .text _Evt_Kasi_Cheer_CutMain__15daNpcKasiHana_cFRCii */ +BOOL daNpcKasiHana_c::_Evt_Kasi_Cheer_CutMain(int const& i_cutIndex, int param_2) { + fopAc_ac_c* actors[3] = {mKasiMng.getHanaActor(), mKasiMng.getKyuActor(), mKasiMng.getMichActor()}; + int iVar1[2] = {-1, -1}; + BOOL rv = FALSE; + + switch (i_cutIndex) { + case 10: + if (field_0x1430 > 0) { + field_0x1430--; + if (field_0x1430 == 0) { + setMotion(MOT_W_WAIT_A, -1.0f, 0); + } + } + + iVar1[0] = param_2; + + if (talkProc(iVar1, FALSE, actors)) { + rv = TRUE; + } + break; + + case 20: + if (field_0x1430 > 0) { + field_0x1430--; + if (field_0x1430 == 0) { + setMotion(MOT_W_WAIT_A, -1.0f, 0); + } + } + + iVar1[0] = param_2; + + if (talkProc(iVar1, FALSE, actors)) { + rv = TRUE; + } + break; + + case 30: + if (field_0x1430 > 0) { + field_0x1430--; + if (field_0x1430 == 0) { + setMotion(MOT_W_WAIT_A, -1.0f, 0); + } + } + + if (talkProc(NULL, FALSE, actors)) { + rv = TRUE; + } + break; + + default: + rv = TRUE; + } + + return rv; +} + +/* 80A2016C-80A20244 0052AC 00D8+00 1/0 0/0 0/0 .text _Evt_Kasi_Cheer2__15daNpcKasiHana_cFi */ +BOOL daNpcKasiHana_c::_Evt_Kasi_Cheer2(int i_index) { + OS_REPORT("-------------------daNpcKasiHana_c::_Evt_Kasi_Cheer2\n"); + + dEvent_manager_c& eventManager = dComIfGp_getEventManager(); + int i_cutIndex = -1; + + int* cutId = dComIfGp_evmng_getMyIntegerP(i_index, "cutId"); + if (cutId != NULL) { + i_cutIndex = *cutId; + } else { + return TRUE; + } + + if (eventManager.getIsAddvance(i_index)) { + _Evt_Kasi_Cheer2_CutInit(i_cutIndex); + } + + int iVar2 = -1; + int* mesNo = dComIfGp_evmng_getMyIntegerP(i_index, "mesNo1"); + if (mesNo != NULL) { + iVar2 = *mesNo; + } + + return _Evt_Kasi_Cheer2_CutMain(i_cutIndex, iVar2); +} + +/* 80A20244-80A20350 005384 010C+00 1/1 0/0 0/0 .text _Evt_Kasi_Cheer2_CutInit__15daNpcKasiHana_cFRCi */ +BOOL daNpcKasiHana_c::_Evt_Kasi_Cheer2_CutInit(int const& i_cutIndex) { + fopAc_ac_c* actors[3] = {mKasiMng.getHanaActor(), mKasiMng.getKyuActor(), mKasiMng.getMichActor()}; + + switch (i_cutIndex) { + case 10: + setMotion(MOT_MICH_IYAN_WAIT, -1.0f, 0); + setLookMode(LOOK_NONE); + field_0x1430 = 86; + initTalk(mMessageNo, actors); + break; + + case 20: + mKasiMng.onSygnal(0x2000); + break; + + case 30: + mKasiMng.onSygnal(0x4000); + break; + } + + return TRUE; +} + +/* 80A20350-80A20544 005490 01F4+00 1/1 0/0 0/0 .text _Evt_Kasi_Cheer2_CutMain__15daNpcKasiHana_cFRCii */ +BOOL daNpcKasiHana_c::_Evt_Kasi_Cheer2_CutMain(int const& i_cutIndex, int param_2) { + fopAc_ac_c* actors[3] = {mKasiMng.getHanaActor(), mKasiMng.getKyuActor(), mKasiMng.getMichActor()}; + int iVar1[2] = {-1, -1}; + BOOL rv = FALSE; + + switch (i_cutIndex) { + case 10: + if (field_0x1430 > 0) { + field_0x1430--; + if (field_0x1430 == 0) { + setMotion(MOT_W_WAIT_A, -1.0f, 0); + } + } + + iVar1[0] = param_2; + + if (talkProc(iVar1, FALSE, actors)) { + rv = TRUE; + } + break; + + case 20: + if (field_0x1430 > 0) { + field_0x1430--; + if (field_0x1430 == 0) { + setMotion(MOT_W_WAIT_A, -1.0f, 0); + } + } + + iVar1[0] = param_2; + + if (talkProc(iVar1, FALSE, actors)) { + rv = TRUE; + } + break; + + case 30: + if (field_0x1430 > 0) { + field_0x1430--; + if (field_0x1430 == 0) { + setMotion(MOT_W_WAIT_A, -1.0f, 0); + } + } + + if (talkProc(NULL, FALSE, actors)) { + rv = TRUE; + } + break; + + default: + rv = TRUE; + } + + return rv; +} + +/* 80A20544-80A20564 005684 0020+00 1/0 0/0 0/0 .text daNpcKasiHana_Create__FPv */ +static int daNpcKasiHana_Create(void* a_this) { + return static_cast(a_this)->Create(); +} + +/* 80A20564-80A20584 0056A4 0020+00 1/0 0/0 0/0 .text daNpcKasiHana_Delete__FPv */ +static int daNpcKasiHana_Delete(void* a_this) { + return static_cast(a_this)->Delete(); +} + +/* 80A20584-80A205A4 0056C4 0020+00 1/0 0/0 0/0 .text daNpcKasiHana_Execute__FPv */ +static int daNpcKasiHana_Execute(void* a_this) { + return static_cast(a_this)->Execute(); +} + +/* 80A205A4-80A205C4 0056E4 0020+00 1/0 0/0 0/0 .text daNpcKasiHana_Draw__FPv */ +static int daNpcKasiHana_Draw(void* a_this) { + return static_cast(a_this)->Draw(); +} + +/* 80A205C4-80A205CC 005704 0008+00 1/0 0/0 0/0 .text daNpcKasiHana_IsDelete__FPv */ +static int daNpcKasiHana_IsDelete(void* a_this) { + return 1; +} + +/* 80A2065C-80A20678 00579C 001C+00 1/1 0/0 0/0 .text getCenterPos__15daNpcKasi_Mng_cFv*/ +cXyz daNpcKasi_Mng_c::getCenterPos() { return mCenterPos; } + +/* 80A20678-80A2067C 0057B8 0004+00 1/0 0/0 0/0 .text adjustShapeAngle__15daNpcKasiHana_cFv */ +void daNpcKasiHana_c::adjustShapeAngle() {} + +AUDIO_INSTANCES; /* 80A216C0-80A216E0 -00001 0020+00 1/0 0/0 0/0 .data daNpcKasiHana_MethodTable */ static actor_method_class daNpcKasiHana_MethodTable = { - (process_method_func)daNpcKasiHana_Create__FPv, - (process_method_func)daNpcKasiHana_Delete__FPv, - (process_method_func)daNpcKasiHana_Execute__FPv, - (process_method_func)daNpcKasiHana_IsDelete__FPv, - (process_method_func)daNpcKasiHana_Draw__FPv, + (process_method_func)daNpcKasiHana_Create, + (process_method_func)daNpcKasiHana_Delete, + (process_method_func)daNpcKasiHana_Execute, + (process_method_func)daNpcKasiHana_IsDelete, + (process_method_func)daNpcKasiHana_Draw, }; /* 80A216E0-80A21710 -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_KASIHANA */ @@ -912,1388 +2394,3 @@ extern actor_process_profile_definition g_profile_NPC_KASIHANA = { fopAc_NPC_e, // mActorType fopAc_CULLBOX_CUSTOM_e, // cullType }; - -/* 80A21710-80A21758 00033C 0048+00 2/2 0/0 0/0 .data __vt__15daNpcKasiHana_c */ -SECTION_DATA extern void* __vt__15daNpcKasiHana_c[18] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__15daNpcKasiHana_cFv, - (void*)setParam__15daNpcKasiHana_cFv, - (void*)main__15daNpcKasiHana_cFv, - (void*)ctrlBtk__8daNpcF_cFv, - (void*)adjustShapeAngle__15daNpcKasiHana_cFv, - (void*)setMtx__8daNpcF_cFv, - (void*)setMtx2__8daNpcF_cFv, - (void*)setAttnPos__15daNpcKasiHana_cFv, - (void*)setCollisions__8daNpcF_cFv, - (void*)setExpressionAnm__8daNpcF_cFib, - (void*)setExpressionBtp__8daNpcF_cFi, - (void*)setExpression__8daNpcF_cFif, - (void*)setMotionAnm__15daNpcKasiHana_cFif, - (void*)setMotion__15daNpcKasiHana_cFifi, - (void*)drawDbgInfo__15daNpcKasiHana_cFv, - (void*)drawOtherMdls__8daNpcF_cFv, -}; - -/* 80A21758-80A21764 000384 000C+00 3/3 0/0 0/0 .data __vt__12J3DFrameCtrl */ -SECTION_DATA extern void* __vt__12J3DFrameCtrl[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12J3DFrameCtrlFv, -}; - -/* 80A21764-80A21788 000390 0024+00 3/3 0/0 0/0 .data __vt__12dBgS_ObjAcch */ -SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12dBgS_ObjAcchFv, - (void*)NULL, - (void*)NULL, - (void*)func_80A206CC, - (void*)NULL, - (void*)NULL, - (void*)func_80A206C4, -}; - -/* 80A21788-80A21794 0003B4 000C+00 3/3 0/0 0/0 .data __vt__10cCcD_GStts */ -SECTION_DATA extern void* __vt__10cCcD_GStts[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10cCcD_GSttsFv, -}; - -/* 80A21794-80A217A0 0003C0 000C+00 2/2 0/0 0/0 .data __vt__10dCcD_GStts */ -SECTION_DATA extern void* __vt__10dCcD_GStts[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10dCcD_GSttsFv, -}; - -/* 80A217A0-80A217AC 0003CC 000C+00 2/2 0/0 0/0 .data __vt__12dBgS_AcchCir */ -SECTION_DATA extern void* __vt__12dBgS_AcchCir[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12dBgS_AcchCirFv, -}; - -/* 80A217AC-80A217B8 0003D8 000C+00 6/6 0/0 0/0 .data __vt__18daNpcF_ActorMngr_c */ -SECTION_DATA extern void* __vt__18daNpcF_ActorMngr_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__18daNpcF_ActorMngr_cFv, -}; - -/* 80A217B8-80A217C4 0003E4 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGCyl */ -SECTION_DATA extern void* __vt__8cM3dGCyl[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGCylFv, -}; - -/* 80A217C4-80A217D0 0003F0 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGAab */ -SECTION_DATA extern void* __vt__8cM3dGAab[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGAabFv, -}; - -/* 80A217D0-80A217DC 0003FC 000C+00 4/4 0/0 0/0 .data __vt__16daNpcF_SPCurve_c */ -SECTION_DATA extern void* __vt__16daNpcF_SPCurve_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__16daNpcF_SPCurve_cFv, -}; - -/* 80A217DC-80A217E8 000408 000C+00 3/3 0/0 0/0 .data __vt__13daNpcF_Path_c */ -SECTION_DATA extern void* __vt__13daNpcF_Path_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__13daNpcF_Path_cFv, -}; - -/* 80A217E8-80A217F4 000414 000C+00 3/3 0/0 0/0 .data __vt__15daNpcF_Lookat_c */ -SECTION_DATA extern void* __vt__15daNpcF_Lookat_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__15daNpcF_Lookat_cFv, -}; - -/* 80A1BE44-80A1C0A4 000F84 0260+00 1/1 0/0 0/0 .text __ct__15daNpcKasiHana_cFv */ -daNpcKasiHana_c::daNpcKasiHana_c() { - // NONMATCHING -} - -/* 80A1C0A4-80A1C334 0011E4 0290+00 1/0 0/0 0/0 .text __dt__15daNpcKasiHana_cFv */ -daNpcKasiHana_c::~daNpcKasiHana_c() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A210C8-80A21144 000048 007C+00 5/12 0/0 0/0 .rodata m__21daNpcKasiHana_Param_c */ -SECTION_RODATA u8 const daNpcKasiHana_Param_c::m[124] = { - 0x42, 0x5C, 0x00, 0x00, 0xC0, 0x40, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, - 0x43, 0x58, 0x00, 0x00, 0x43, 0x0C, 0x00, 0x00, 0x42, 0x0C, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0xC1, 0x20, 0x00, 0x00, - 0x41, 0xF0, 0x00, 0x00, 0xC1, 0x20, 0x00, 0x00, 0x42, 0x34, 0x00, 0x00, 0xC2, 0x34, 0x00, 0x00, - 0x3F, 0x19, 0x99, 0x9A, 0x41, 0x40, 0x00, 0x00, 0x00, 0x02, 0x00, 0x06, 0x00, 0x03, 0x00, 0x06, - 0x42, 0x70, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, - 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x48, 0x00, 0x00, - 0x43, 0xC8, 0x00, 0x00, 0x41, 0x60, 0x00, 0x00, 0x41, 0x80, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A210C8, &daNpcKasiHana_Param_c::m); - -/* 80A21144-80A21148 0000C4 0004+00 0/1 0/0 0/0 .rodata @4768 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4768 = -60.0f; -COMPILER_STRIP_GATE(0x80A21144, &lit_4768); -#pragma pop - -/* 80A21148-80A2114C 0000C8 0004+00 0/1 0/0 0/0 .rodata @4769 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4769 = -10.0f; -COMPILER_STRIP_GATE(0x80A21148, &lit_4769); -#pragma pop - -/* 80A2114C-80A21150 0000CC 0004+00 0/1 0/0 0/0 .rodata @4770 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4770 = 60.0f; -COMPILER_STRIP_GATE(0x80A2114C, &lit_4770); -#pragma pop - -/* 80A21150-80A21154 0000D0 0004+00 0/1 0/0 0/0 .rodata @4771 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4771 = 160.0f; -COMPILER_STRIP_GATE(0x80A21150, &lit_4771); -#pragma pop - -/* 80A1C334-80A1C5B0 001474 027C+00 1/1 0/0 0/0 .text Create__15daNpcKasiHana_cFv */ -void daNpcKasiHana_c::Create() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A21154-80A21158 0000D4 0004+00 0/1 0/0 0/0 .rodata @4818 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_4818 = 0x3F5CF29A; -COMPILER_STRIP_GATE(0x80A21154, &lit_4818); -#pragma pop - -/* 80A1C5B0-80A1C734 0016F0 0184+00 1/1 0/0 0/0 .text CreateHeap__15daNpcKasiHana_cFv */ -void daNpcKasiHana_c::CreateHeap() { - // NONMATCHING -} - -/* 80A1C734-80A1C768 001874 0034+00 1/1 0/0 0/0 .text Delete__15daNpcKasiHana_cFv */ -void daNpcKasiHana_c::Delete() { - // NONMATCHING -} - -/* 80A1C768-80A1C78C 0018A8 0024+00 2/2 0/0 0/0 .text Execute__15daNpcKasiHana_cFv */ -void daNpcKasiHana_c::Execute() { - // NONMATCHING -} - -/* 80A1C78C-80A1C7D8 0018CC 004C+00 1/1 0/0 0/0 .text Draw__15daNpcKasiHana_cFv */ -void daNpcKasiHana_c::Draw() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A21158-80A21164 0000D8 000C+00 1/1 0/0 0/0 .rodata @4839 */ -SECTION_RODATA static u8 const lit_4839[12] = { - 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, -}; -COMPILER_STRIP_GATE(0x80A21158, &lit_4839); - -/* 80A1C7D8-80A1C964 001918 018C+00 1/1 0/0 0/0 .text - * ctrlJoint__15daNpcKasiHana_cFP8J3DJointP8J3DModel */ -void daNpcKasiHana_c::ctrlJoint(J3DJoint* param_0, J3DModel* param_1) { - // NONMATCHING -} - -/* 80A1C964-80A1C984 001AA4 0020+00 1/1 0/0 0/0 .text - * createHeapCallBack__15daNpcKasiHana_cFP10fopAc_ac_c */ -void daNpcKasiHana_c::createHeapCallBack(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* 80A1C984-80A1C9D0 001AC4 004C+00 1/1 0/0 0/0 .text - * ctrlJointCallBack__15daNpcKasiHana_cFP8J3DJointi */ -void daNpcKasiHana_c::ctrlJointCallBack(J3DJoint* param_0, int param_1) { - // NONMATCHING -} - -/* 80A1C9D0-80A1CA60 001B10 0090+00 1/0 0/0 0/0 .text setParam__15daNpcKasiHana_cFv */ -void daNpcKasiHana_c::setParam() { - // NONMATCHING -} - -/* 80A1CA60-80A1CD28 001BA0 02C8+00 1/0 0/0 0/0 .text main__15daNpcKasiHana_cFv */ -void daNpcKasiHana_c::main() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A21164-80A21168 0000E4 0004+00 0/1 0/0 0/0 .rodata @5044 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5044 = 10.0f; -COMPILER_STRIP_GATE(0x80A21164, &lit_5044); -#pragma pop - -/* 80A21168-80A2116C 0000E8 0004+00 1/2 0/0 0/0 .rodata @5045 */ -SECTION_RODATA static f32 const lit_5045 = 15.0f; -COMPILER_STRIP_GATE(0x80A21168, &lit_5045); - -/* 80A1CD28-80A1CED0 001E68 01A8+00 1/0 0/0 0/0 .text setAttnPos__15daNpcKasiHana_cFv */ -void daNpcKasiHana_c::setAttnPos() { - // NONMATCHING -} - -/* 80A1CED0-80A1CFA0 002010 00D0+00 1/0 0/0 0/0 .text setMotionAnm__15daNpcKasiHana_cFif - */ -bool daNpcKasiHana_c::setMotionAnm(int param_0, f32 param_1) { - // NONMATCHING -} - -/* 80A1CFA0-80A1CFE8 0020E0 0048+00 1/0 0/0 0/0 .text setMotion__15daNpcKasiHana_cFifi */ -void daNpcKasiHana_c::setMotion(int param_0, f32 param_1, int param_2) { - // NONMATCHING -} - -/* 80A1CFE8-80A1CFF0 002128 0008+00 1/0 0/0 0/0 .text drawDbgInfo__15daNpcKasiHana_cFv */ -bool daNpcKasiHana_c::drawDbgInfo() { - return false; -} - -/* 80A1CFF0-80A1D238 002130 0248+00 1/1 0/0 0/0 .text reset__15daNpcKasiHana_cFv */ -void daNpcKasiHana_c::reset() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A2116C-80A21178 0000EC 000C+00 0/1 0/0 0/0 .rodata @5120 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5120[12] = { - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A2116C, &lit_5120); -#pragma pop - -/* 80A21178-80A2117C 0000F8 0004+00 0/1 0/0 0/0 .rodata @5121 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5121[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A21178, &lit_5121); -#pragma pop - -/* 80A2117C-80A21188 0000FC 000C+00 0/1 0/0 0/0 .rodata @5122 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5122[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A2117C, &lit_5122); -#pragma pop - -/* 80A21188-80A2118C 000108 0004+00 0/1 0/0 0/0 .rodata @5123 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5123[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A21188, &lit_5123); -#pragma pop - -/* 80A2118C-80A21198 00010C 000C+00 0/1 0/0 0/0 .rodata @5124 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5124[12] = { - 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A2118C, &lit_5124); -#pragma pop - -/* 80A21198-80A2119C 000118 0004+00 0/1 0/0 0/0 .rodata @5125 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5125[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A21198, &lit_5125); -#pragma pop - -/* 80A2119C-80A211A8 00011C 000C+00 0/1 0/0 0/0 .rodata @5126 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5126[12] = { - 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A2119C, &lit_5126); -#pragma pop - -/* 80A211A8-80A211AC 000128 0004+00 0/1 0/0 0/0 .rodata @5127 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5127[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A211A8, &lit_5127); -#pragma pop - -/* 80A211AC-80A211B8 00012C 000C+00 0/1 0/0 0/0 .rodata @5128 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5128[12] = { - 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A211AC, &lit_5128); -#pragma pop - -/* 80A211B8-80A211BC 000138 0004+00 0/1 0/0 0/0 .rodata @5129 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5129[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A211B8, &lit_5129); -#pragma pop - -/* 80A211BC-80A211C8 00013C 000C+00 0/1 0/0 0/0 .rodata @5130 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5130[12] = { - 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A211BC, &lit_5130); -#pragma pop - -/* 80A211C8-80A211CC 000148 0004+00 0/1 0/0 0/0 .rodata @5131 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5131[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A211C8, &lit_5131); -#pragma pop - -/* 80A211CC-80A211D8 00014C 000C+00 0/1 0/0 0/0 .rodata @5132 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5132[12] = { - 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A211CC, &lit_5132); -#pragma pop - -/* 80A211D8-80A211DC 000158 0004+00 0/1 0/0 0/0 .rodata @5133 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5133[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A211D8, &lit_5133); -#pragma pop - -/* 80A211DC-80A211E8 00015C 000C+00 0/1 0/0 0/0 .rodata @5134 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5134[12] = { - 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A211DC, &lit_5134); -#pragma pop - -/* 80A211E8-80A211EC 000168 0004+00 0/1 0/0 0/0 .rodata @5135 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5135[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A211E8, &lit_5135); -#pragma pop - -/* 80A211EC-80A211F8 00016C 000C+00 0/1 0/0 0/0 .rodata @5136 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5136[12] = { - 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A211EC, &lit_5136); -#pragma pop - -/* 80A211F8-80A211FC 000178 0004+00 0/1 0/0 0/0 .rodata @5137 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5137[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A211F8, &lit_5137); -#pragma pop - -/* 80A211FC-80A21208 00017C 000C+00 0/1 0/0 0/0 .rodata @5138 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5138[12] = { - 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A211FC, &lit_5138); -#pragma pop - -/* 80A21208-80A2120C 000188 0004+00 0/1 0/0 0/0 .rodata @5139 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5139[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A21208, &lit_5139); -#pragma pop - -/* 80A2120C-80A21218 00018C 000C+00 0/1 0/0 0/0 .rodata @5140 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5140[12] = { - 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A2120C, &lit_5140); -#pragma pop - -/* 80A21218-80A2121C 000198 0004+00 0/1 0/0 0/0 .rodata @5141 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5141[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A21218, &lit_5141); -#pragma pop - -/* 80A2121C-80A21228 00019C 000C+00 0/1 0/0 0/0 .rodata @5142 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5142[12] = { - 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -}; -COMPILER_STRIP_GATE(0x80A2121C, &lit_5142); -#pragma pop - -/* 80A21228-80A21234 0001A8 000C+00 0/1 0/0 0/0 .rodata @5143 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5143[12] = { - 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -}; -COMPILER_STRIP_GATE(0x80A21228, &lit_5143); -#pragma pop - -/* 80A21234-80A21240 0001B4 000C+00 0/1 0/0 0/0 .rodata @5144 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5144[12] = { - 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -}; -COMPILER_STRIP_GATE(0x80A21234, &lit_5144); -#pragma pop - -/* 80A21240-80A2124C 0001C0 000C+00 0/1 0/0 0/0 .rodata @5145 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5145[12] = { - 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -}; -COMPILER_STRIP_GATE(0x80A21240, &lit_5145); -#pragma pop - -/* 80A2124C-80A21258 0001CC 000C+00 0/1 0/0 0/0 .rodata @5146 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5146[12] = { - 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -}; -COMPILER_STRIP_GATE(0x80A2124C, &lit_5146); -#pragma pop - -/* 80A21258-80A21264 0001D8 000C+00 0/1 0/0 0/0 .rodata @5147 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5147[12] = { - 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A21258, &lit_5147); -#pragma pop - -/* 80A1D238-80A1D604 002378 03CC+00 1/1 0/0 0/0 .text playMotion__15daNpcKasiHana_cFv */ -void daNpcKasiHana_c::playMotion() { - // NONMATCHING -} - -/* 80A1D604-80A1D77C 002744 0178+00 1/1 0/0 0/0 .text - * playMotionAnmLoop__15daNpcKasiHana_cFPPPQ28daNpcF_c18daNpcF_anmPlayData */ -void daNpcKasiHana_c::playMotionAnmLoop(daNpcF_c::daNpcF_anmPlayData*** param_0) { - // NONMATCHING -} - -/* 80A1D77C-80A1D824 0028BC 00A8+00 9/9 0/0 0/0 .text - * setAction__15daNpcKasiHana_cFM15daNpcKasiHana_cFPCvPvi_i */ -void daNpcKasiHana_c::setAction(int (daNpcKasiHana_c::*param_0)(int)) { - // NONMATCHING -} - -/* 80A1D824-80A1D848 002964 0024+00 8/8 0/0 0/0 .text setLookMode__15daNpcKasiHana_cFi */ -void daNpcKasiHana_c::setLookMode(int param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A21264-80A2127C 0001E4 0018+00 0/0 0/0 0/0 .rodata @5148 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5148[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A21264, &lit_5148); -#pragma pop - -/* 80A2127C-80A212AC 0001FC 0030+00 0/0 0/0 0/0 .rodata @5149 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5149[48] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A2127C, &lit_5149); -#pragma pop - -/* 80A212AC-80A212B8 00022C 000C+00 0/1 0/0 0/0 .rodata @5228 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5228[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A212AC, &lit_5228); -#pragma pop - -/* 80A212B8-80A212BC 000238 0004+00 0/1 0/0 0/0 .rodata @5276 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5276 = -80.0f; -COMPILER_STRIP_GATE(0x80A212B8, &lit_5276); -#pragma pop - -/* 80A212BC-80A212C0 00023C 0004+00 0/1 0/0 0/0 .rodata @5277 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5277 = 80.0f; -COMPILER_STRIP_GATE(0x80A212BC, &lit_5277); -#pragma pop - -/* 80A212C0-80A212C4 000240 0004+00 0/1 0/0 0/0 .rodata @5278 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5278 = 40.0f; -COMPILER_STRIP_GATE(0x80A212C0, &lit_5278); -#pragma pop - -/* 80A1D848-80A1DA28 002988 01E0+00 1/1 0/0 0/0 .text lookat__15daNpcKasiHana_cFv */ -void daNpcKasiHana_c::lookat() { - // NONMATCHING -} - -/* 80A1DA28-80A1DB1C 002B68 00F4+00 1/1 0/0 0/0 .text step__15daNpcKasiHana_cFsi */ -void daNpcKasiHana_c::step(s16 param_0, int param_1) { - // NONMATCHING -} - -/* 80A1DB1C-80A1DC00 002C5C 00E4+00 1/1 0/0 0/0 .text chkFindPlayer__15daNpcKasiHana_cFv - */ -void daNpcKasiHana_c::chkFindPlayer() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A212C4-80A212C8 000244 0004+00 0/1 0/0 0/0 .rodata @5471 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5471 = 12.0f; -COMPILER_STRIP_GATE(0x80A212C4, &lit_5471); -#pragma pop - -/* 80A212C8-80A212CC 000248 0004+00 0/1 0/0 0/0 .rodata @5472 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5472 = 350.0f; -COMPILER_STRIP_GATE(0x80A212C8, &lit_5472); -#pragma pop - -/* 80A212CC-80A212D0 00024C 0004+00 0/1 0/0 0/0 .rodata @5473 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5473 = 50.0f; -COMPILER_STRIP_GATE(0x80A212CC, &lit_5473); -#pragma pop - -/* 80A212D0-80A212D8 000250 0008+00 0/1 0/0 0/0 .rodata @5474 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5474[8] = { - 0x40, 0x7F, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A212D0, &lit_5474); -#pragma pop - -/* 80A212D8-80A212E0 000258 0008+00 0/1 0/0 0/0 .rodata @5475 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5475[8] = { - 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A212D8, &lit_5475); -#pragma pop - -/* 80A1DC00-80A1E184 002D40 0584+00 10/0 0/0 0/0 .text wait__15daNpcKasiHana_cFi */ -void daNpcKasiHana_c::wait(int param_0) { - // NONMATCHING -} - -/* 80A1E184-80A1E228 0032C4 00A4+00 3/0 0/0 0/0 .text chace_st__15daNpcKasiHana_cFi */ -void daNpcKasiHana_c::chace_st(int param_0) { - // NONMATCHING -} - -/* 80A1E228-80A1E3AC 003368 0184+00 2/0 0/0 0/0 .text chace__15daNpcKasiHana_cFi */ -void daNpcKasiHana_c::chace(int param_0) { - // NONMATCHING -} - -/* 80A1E3AC-80A1E4AC 0034EC 0100+00 1/1 0/0 0/0 .text getChacePos__15daNpcKasiHana_cFv */ -void daNpcKasiHana_c::getChacePos() { - // NONMATCHING -} - -/* 80A1E4AC-80A1E578 0035EC 00CC+00 1/0 0/0 0/0 .text turn__15daNpcKasiHana_cFi */ -void daNpcKasiHana_c::turn(int param_0) { - // NONMATCHING -} - -/* 80A1E578-80A1E78C 0036B8 0214+00 3/0 0/0 0/0 .text fear__15daNpcKasiHana_cFi */ -void daNpcKasiHana_c::fear(int param_0) { - // NONMATCHING -} - -/* 80A21848-80A21854 000048 000C+00 1/1 0/0 0/0 .bss @4323 */ -static u8 lit_4323[12]; - -/* 80A21854-80A21858 000054 0004+00 1/1 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[4]; - -/* 80A21858-80A2185C 000058 0004+00 1/2 0/0 0/0 .bss mTargetTag__15daNpcKasiHana_c */ -u8 daNpcKasiHana_c::mTargetTag[4]; - -/* 80A2185C-80A21860 00005C 0004+00 0/1 0/0 0/0 .bss mTargetTagDist__15daNpcKasiHana_c - */ -#pragma push -#pragma force_active on -u8 daNpcKasiHana_c::mTargetTagDist[4]; -#pragma pop - -/* 80A21860-80A21864 000060 0002+02 1/2 0/0 0/0 .bss mWolfAngle__15daNpcKasiHana_c */ -u8 daNpcKasiHana_c::mWolfAngle[2 + 2 /* padding */]; - -/* 80A1E78C-80A1E7F4 0038CC 0068+00 1/1 0/0 0/0 .text srchWolfTag__15daNpcKasiHana_cFv */ -void daNpcKasiHana_c::srchWolfTag() { - // NONMATCHING -} - -/* 80A1E7F4-80A1E8C4 003934 00D0+00 1/1 0/0 0/0 .text _srch_escape_tag__15daNpcKasiHana_cFPvPv */ -void daNpcKasiHana_c::_srch_escape_tag(void* param_0, void* param_1) { - // NONMATCHING -} - -/* 80A1E8C4-80A1E9F8 003A04 0134+00 1/1 0/0 0/0 .text getWolfPathNearIdx__15daNpcKasiHana_cFv */ -void daNpcKasiHana_c::getWolfPathNearIdx() { - // NONMATCHING -} - -/* 80A1E9F8-80A1EB5C 003B38 0164+00 1/0 0/0 0/0 .text talk__15daNpcKasiHana_cFi */ -void daNpcKasiHana_c::talk(int param_0) { - // NONMATCHING -} - -/* 80A1EB5C-80A1EE38 003C9C 02DC+00 4/0 0/0 0/0 .text demo__15daNpcKasiHana_cFi */ -void daNpcKasiHana_c::demo(int param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A212E0-80A212E4 000260 0004+00 0/0 0/0 0/0 .rodata @5635 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5635 = 1.5f; -COMPILER_STRIP_GATE(0x80A212E0, &lit_5635); -#pragma pop - -/* 80A212E4-80A212E8 000264 0004+00 0/1 0/0 0/0 .rodata @5847 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5847 = 1.75f; -COMPILER_STRIP_GATE(0x80A212E4, &lit_5847); -#pragma pop - -/* 80A1EE38-80A1EF90 003F78 0158+00 1/0 0/0 0/0 .text escape__15daNpcKasiHana_cFi */ -void daNpcKasiHana_c::escape(int param_0) { - // NONMATCHING -} - -/* 80A1EF90-80A1F198 0040D0 0208+00 3/0 0/0 0/0 .text cheer__15daNpcKasiHana_cFi */ -void daNpcKasiHana_c::cheer(int param_0) { - // NONMATCHING -} - -/* 80A1F198-80A1F1E4 0042D8 004C+00 5/5 0/0 0/0 .text _turn_to_link__15daNpcKasiHana_cFs - */ -void daNpcKasiHana_c::_turn_to_link(s16 param_0) { - // NONMATCHING -} - -/* 80A1F1E4-80A1F240 004324 005C+00 5/5 0/0 0/0 .text _turn_pos__15daNpcKasiHana_cFRC4cXyzs */ -void daNpcKasiHana_c::_turn_pos(cXyz const& param_0, s16 param_1) { - // NONMATCHING -} - -/* 80A1F240-80A1F318 004380 00D8+00 3/3 0/0 0/0 .text - * actor_front_check__15daNpcKasiHana_cFP10fopAc_ac_c */ -void daNpcKasiHana_c::actor_front_check(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* 80A1F318-80A1F384 004458 006C+00 1/1 0/0 0/0 .text _getOffset__15daNpcKasiHana_cFRC4cXyzR4cXyz - */ -void daNpcKasiHana_c::_getOffset(cXyz const& param_0, cXyz& param_1) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A21358-80A21358 0002D8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80A213BD = "cutId"; -#pragma pop - -/* 80A1F384-80A1F42C 0044C4 00A8+00 1/0 0/0 0/0 .text _Evt_Kasi_Appear__15daNpcKasiHana_cFi */ -void daNpcKasiHana_c::_Evt_Kasi_Appear(int param_0) { - // NONMATCHING -} - -/* 80A1F42C-80A1F50C 00456C 00E0+00 1/1 0/0 0/0 .text - * _Evt_Kasi_Appear_CutInit__15daNpcKasiHana_cFRCi */ -void daNpcKasiHana_c::_Evt_Kasi_Appear_CutInit(int const& param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A212E8-80A212EC 000268 0004+00 0/3 0/0 0/0 .rodata @5999 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5999 = 19.0f; -COMPILER_STRIP_GATE(0x80A212E8, &lit_5999); -#pragma pop - -/* 80A1F50C-80A1F638 00464C 012C+00 1/1 0/0 0/0 .text - * _Evt_Kasi_Appear_CutMain__15daNpcKasiHana_cFRCi */ -void daNpcKasiHana_c::_Evt_Kasi_Appear_CutMain(int const& param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A21358-80A21358 0002D8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80A213C3 = "mesNo2"; -SECTION_DEAD static char const* const stringBase_80A213CA = "mesNo1"; -#pragma pop - -/* 80A1F638-80A1F740 004778 0108+00 1/0 0/0 0/0 .text _Evt_Kasi_Talk__15daNpcKasiHana_cFi - */ -void daNpcKasiHana_c::_Evt_Kasi_Talk(int param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A212EC-80A212F8 00026C 000C+00 1/1 0/0 0/0 .rodata @6026 */ -SECTION_RODATA static u8 const lit_6026[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A212EC, &lit_6026); - -/* 80A1F740-80A1F860 004880 0120+00 1/1 0/0 0/0 .text - * _Evt_Kasi_Talk_CutInit__15daNpcKasiHana_cFRCi */ -void daNpcKasiHana_c::_Evt_Kasi_Talk_CutInit(int const& param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A212F8-80A21304 000278 000C+00 0/1 0/0 0/0 .rodata @6044 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_6044[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A212F8, &lit_6044); -#pragma pop - -/* 80A21304-80A2130C 000284 0008+00 0/1 0/0 0/0 .rodata @6045 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_6045[8] = { - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, -}; -COMPILER_STRIP_GATE(0x80A21304, &lit_6045); -#pragma pop - -/* 80A1F860-80A1F9F4 0049A0 0194+00 1/1 0/0 0/0 .text - * _Evt_Kasi_Talk_CutMain__15daNpcKasiHana_cFRCii */ -void daNpcKasiHana_c::_Evt_Kasi_Talk_CutMain(int const& param_0, int param_1) { - // NONMATCHING -} - -/* 80A1F9F4-80A1FA9C 004B34 00A8+00 1/0 0/0 0/0 .text _Evt_Kasi__15daNpcKasiHana_cFi */ -void daNpcKasiHana_c::_Evt_Kasi(int param_0) { - // NONMATCHING -} - -/* 80A1FA9C-80A1FBC4 004BDC 0128+00 1/1 0/0 0/0 .text _Evt_Kasi_CutInit__15daNpcKasiHana_cFRCi */ -void daNpcKasiHana_c::_Evt_Kasi_CutInit(int const& param_0) { - // NONMATCHING -} - -/* 80A1FBC4-80A1FD64 004D04 01A0+00 1/1 0/0 0/0 .text _Evt_Kasi_CutMain__15daNpcKasiHana_cFRCi */ -void daNpcKasiHana_c::_Evt_Kasi_CutMain(int const& param_0) { - // NONMATCHING -} - -/* 80A1FD64-80A1FE6C 004EA4 0108+00 1/0 0/0 0/0 .text _Evt_Kasi_Cheer__15daNpcKasiHana_cFi */ -void daNpcKasiHana_c::_Evt_Kasi_Cheer(int param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A2130C-80A21318 00028C 000C+00 1/1 0/0 0/0 .rodata @6169 */ -SECTION_RODATA static u8 const lit_6169[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A2130C, &lit_6169); - -/* 80A1FE6C-80A1FF78 004FAC 010C+00 1/1 0/0 0/0 .text - * _Evt_Kasi_Cheer_CutInit__15daNpcKasiHana_cFRCi */ -void daNpcKasiHana_c::_Evt_Kasi_Cheer_CutInit(int const& param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A21318-80A21324 000298 000C+00 0/1 0/0 0/0 .rodata @6185 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_6185[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A21318, &lit_6185); -#pragma pop - -/* 80A21324-80A2132C 0002A4 0008+00 0/1 0/0 0/0 .rodata @6186 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_6186[8] = { - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, -}; -COMPILER_STRIP_GATE(0x80A21324, &lit_6186); -#pragma pop - -/* 80A1FF78-80A2016C 0050B8 01F4+00 1/1 0/0 0/0 .text - * _Evt_Kasi_Cheer_CutMain__15daNpcKasiHana_cFRCii */ -void daNpcKasiHana_c::_Evt_Kasi_Cheer_CutMain(int const& param_0, int param_1) { - // NONMATCHING -} - -/* 80A2016C-80A20244 0052AC 00D8+00 1/0 0/0 0/0 .text _Evt_Kasi_Cheer2__15daNpcKasiHana_cFi */ -void daNpcKasiHana_c::_Evt_Kasi_Cheer2(int param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A2132C-80A21338 0002AC 000C+00 1/1 0/0 0/0 .rodata @6235 */ -SECTION_RODATA static u8 const lit_6235[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A2132C, &lit_6235); - -/* 80A20244-80A20350 005384 010C+00 1/1 0/0 0/0 .text - * _Evt_Kasi_Cheer2_CutInit__15daNpcKasiHana_cFRCi */ -void daNpcKasiHana_c::_Evt_Kasi_Cheer2_CutInit(int const& param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A21338-80A21344 0002B8 000C+00 0/1 0/0 0/0 .rodata @6251 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_6251[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A21338, &lit_6251); -#pragma pop - -/* 80A21344-80A21350 0002C4 0008+04 0/1 0/0 0/0 .rodata @6252 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_6252[8 + 4 /* padding */] = { - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - 0xFF, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A21344, &lit_6252); -#pragma pop - -/* 80A20350-80A20544 005490 01F4+00 1/1 0/0 0/0 .text - * _Evt_Kasi_Cheer2_CutMain__15daNpcKasiHana_cFRCii */ -void daNpcKasiHana_c::_Evt_Kasi_Cheer2_CutMain(int const& param_0, int param_1) { - // NONMATCHING -} - -/* 80A20544-80A20564 005684 0020+00 1/0 0/0 0/0 .text daNpcKasiHana_Create__FPv */ -static void daNpcKasiHana_Create(void* param_0) { - // NONMATCHING -} - -/* 80A20564-80A20584 0056A4 0020+00 1/0 0/0 0/0 .text daNpcKasiHana_Delete__FPv */ -static void daNpcKasiHana_Delete(void* param_0) { - // NONMATCHING -} - -/* 80A20584-80A205A4 0056C4 0020+00 1/0 0/0 0/0 .text daNpcKasiHana_Execute__FPv */ -static void daNpcKasiHana_Execute(void* param_0) { - // NONMATCHING -} - -/* 80A205A4-80A205C4 0056E4 0020+00 1/0 0/0 0/0 .text daNpcKasiHana_Draw__FPv */ -static void daNpcKasiHana_Draw(void* param_0) { - // NONMATCHING -} - -/* 80A205C4-80A205CC 005704 0008+00 1/0 0/0 0/0 .text daNpcKasiHana_IsDelete__FPv */ -static bool daNpcKasiHana_IsDelete(void* param_0) { - return true; -} - -/* 80A205CC-80A20614 00570C 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */ -// cM3dGCyl::~cM3dGCyl() { -extern "C" void __dt__8cM3dGCylFv() { - // NONMATCHING -} - -/* 80A20614-80A2065C 005754 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -// cM3dGAab::~cM3dGAab() { -extern "C" void __dt__8cM3dGAabFv() { - // NONMATCHING -} - -/* 80A2065C-80A20678 00579C 001C+00 1/1 0/0 0/0 .text getCenterPos__15daNpcKasi_Mng_cFv - */ -void daNpcKasi_Mng_c::getCenterPos() { - // NONMATCHING -} - -/* 80A20678-80A2067C 0057B8 0004+00 1/0 0/0 0/0 .text adjustShapeAngle__15daNpcKasiHana_cFv */ -void daNpcKasiHana_c::adjustShapeAngle() { - /* empty function */ -} - -/* ############################################################################################## */ -/* 80A217F4-80A21800 000420 000C+00 2/2 0/0 0/0 .data __vt__21daNpcKasiHana_Param_c */ -SECTION_DATA extern void* __vt__21daNpcKasiHana_Param_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__21daNpcKasiHana_Param_cFv, -}; - -/* 80A2067C-80A206C4 0057BC 0048+00 2/1 0/0 0/0 .text __dt__21daNpcKasiHana_Param_cFv */ -daNpcKasiHana_Param_c::~daNpcKasiHana_Param_c() { - // NONMATCHING -} - -/* 80A206C4-80A206CC 005804 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */ -static void func_80A206C4() { - // NONMATCHING -} - -/* 80A206CC-80A206D4 00580C 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */ -static void func_80A206CC() { - // NONMATCHING -} - -/* 80A206D4-80A20734 005814 0060+00 1/0 0/0 0/0 .text __dt__13daNpcF_Path_cFv */ -// daNpcF_Path_c::~daNpcF_Path_c() { -extern "C" void __dt__13daNpcF_Path_cFv() { - // NONMATCHING -} - -/* 80A20734-80A2077C 005874 0048+00 1/0 0/0 0/0 .text __dt__16daNpcF_SPCurve_cFv */ -// daNpcF_SPCurve_c::~daNpcF_SPCurve_c() { -extern "C" void __dt__16daNpcF_SPCurve_cFv() { - // NONMATCHING -} - -/* 80A2077C-80A207C4 0058BC 0048+00 5/4 0/0 0/0 .text __dt__18daNpcF_ActorMngr_cFv */ -// daNpcF_ActorMngr_c::~daNpcF_ActorMngr_c() { -extern "C" void __dt__18daNpcF_ActorMngr_cFv() { - // NONMATCHING -} - -/* 80A207C4-80A20800 005904 003C+00 2/2 0/0 0/0 .text __ct__18daNpcF_ActorMngr_cFv */ -// daNpcF_ActorMngr_c::daNpcF_ActorMngr_c() { -extern "C" void __ct__18daNpcF_ActorMngr_cFv() { - // NONMATCHING -} - -/* 80A20800-80A208D0 005940 00D0+00 1/0 0/0 0/0 .text __dt__15daNpcF_Lookat_cFv */ -// daNpcF_Lookat_c::~daNpcF_Lookat_c() { -extern "C" void __dt__15daNpcF_Lookat_cFv() { - // NONMATCHING -} - -/* 80A208D0-80A208D4 005A10 0004+00 2/2 0/0 0/0 .text __ct__5csXyzFv */ -// csXyz::csXyz() { -extern "C" void __ct__5csXyzFv() { - /* empty function */ -} - -/* 80A208D4-80A208D8 005A14 0004+00 2/2 0/0 0/0 .text __ct__4cXyzFv */ -// cXyz::cXyz() { -extern "C" void __ct__4cXyzFv() { - /* empty function */ -} - -/* 80A208D8-80A20B24 005A18 024C+00 1/1 0/0 0/0 .text __dt__8daNpcF_cFv */ -// daNpcF_c::~daNpcF_c() { -extern "C" void __dt__8daNpcF_cFv() { - // NONMATCHING -} - -/* 80A20B24-80A20D14 005C64 01F0+00 1/1 0/0 0/0 .text __ct__8daNpcF_cFv */ -// daNpcF_c::daNpcF_c() { -extern "C" void __ct__8daNpcF_cFv() { - // NONMATCHING -} - -/* 80A20D14-80A20D84 005E54 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */ -// dBgS_AcchCir::~dBgS_AcchCir() { -extern "C" void __dt__12dBgS_AcchCirFv() { - // NONMATCHING -} - -/* 80A20D84-80A20DE0 005EC4 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */ -// dCcD_GStts::~dCcD_GStts() { -extern "C" void __dt__10dCcD_GSttsFv() { - // NONMATCHING -} - -/* 80A20DE0-80A20E50 005F20 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */ -// dBgS_ObjAcch::~dBgS_ObjAcch() { -extern "C" void __dt__12dBgS_ObjAcchFv() { - // NONMATCHING -} - -/* 80A20E50-80A20E98 005F90 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */ -// J3DFrameCtrl::~J3DFrameCtrl() { -extern "C" void __dt__12J3DFrameCtrlFv() { - // NONMATCHING -} - -/* 80A20E98-80A20EA0 005FD8 0008+00 1/0 0/0 0/0 .text ctrlBtk__8daNpcF_cFv */ -// bool daNpcF_c::ctrlBtk() { -extern "C" bool ctrlBtk__8daNpcF_cFv() { - return false; -} - -/* 80A20EA0-80A20EA4 005FE0 0004+00 1/0 0/0 0/0 .text setCollisions__8daNpcF_cFv */ -// void daNpcF_c::setCollisions() { -extern "C" void setCollisions__8daNpcF_cFv() { - /* empty function */ -} - -/* 80A20EA4-80A20EAC 005FE4 0008+00 1/0 0/0 0/0 .text setExpressionAnm__8daNpcF_cFib */ -// bool daNpcF_c::setExpressionAnm(int param_0, bool param_1) { -extern "C" bool setExpressionAnm__8daNpcF_cFib() { - return true; -} - -/* 80A20EAC-80A20EB4 005FEC 0008+00 1/0 0/0 0/0 .text setExpressionBtp__8daNpcF_cFi */ -// bool daNpcF_c::setExpressionBtp(int param_0) { -extern "C" bool setExpressionBtp__8daNpcF_cFi() { - return true; -} - -/* 80A20EB4-80A20EB8 005FF4 0004+00 1/0 0/0 0/0 .text setExpression__8daNpcF_cFif */ -// void daNpcF_c::setExpression(int param_0, f32 param_1) { -extern "C" void setExpression__8daNpcF_cFif() { - /* empty function */ -} - -/* 80A20EB8-80A20EBC 005FF8 0004+00 1/0 0/0 0/0 .text drawOtherMdls__8daNpcF_cFv */ -// void daNpcF_c::drawOtherMdls() { -extern "C" void drawOtherMdls__8daNpcF_cFv() { - /* empty function */ -} - -/* 80A20EBC-80A20F04 005FFC 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */ -// cCcD_GStts::~cCcD_GStts() { -extern "C" void __dt__10cCcD_GSttsFv() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A21350-80A21358 0002D0 0008+00 1/1 0/0 0/0 .rodata @6323 */ -SECTION_RODATA static u8 const lit_6323[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A21350, &lit_6323); - -/* 80A20F04-80A20F80 006044 007C+00 1/1 0/0 0/0 .text cLib_getRndValue__Fii */ -extern "C" void func_80A20F04(void* _this, int param_0, int param_1) { - // NONMATCHING -} - -/* 80A20F80-80A2106C 0060C0 00EC+00 0/0 1/0 0/0 .text __sinit_d_a_npc_kasi_hana_cpp */ -void __sinit_d_a_npc_kasi_hana_cpp() { - // NONMATCHING -} - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x80A20F80, __sinit_d_a_npc_kasi_hana_cpp); -#pragma pop - -/* ############################################################################################## */ -/* 80A21864-80A21868 000064 0004+00 0/0 0/0 0/0 .bss - * sInstance__40JASGlobalInstance<19JASDefaultBankTable> */ -#pragma push -#pragma force_active on -static u8 data_80A21864[4]; -#pragma pop - -/* 80A21868-80A2186C 000068 0004+00 0/0 0/0 0/0 .bss - * sInstance__35JASGlobalInstance<14JASAudioThread> */ -#pragma push -#pragma force_active on -static u8 data_80A21868[4]; -#pragma pop - -/* 80A2186C-80A21870 00006C 0004+00 0/0 0/0 0/0 .bss sInstance__27JASGlobalInstance<7Z2SeMgr> */ -#pragma push -#pragma force_active on -static u8 data_80A2186C[4]; -#pragma pop - -/* 80A21870-80A21874 000070 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8Z2SeqMgr> */ -#pragma push -#pragma force_active on -static u8 data_80A21870[4]; -#pragma pop - -/* 80A21874-80A21878 000074 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SceneMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80A21874[4]; -#pragma pop - -/* 80A21878-80A2187C 000078 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2StatusMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80A21878[4]; -#pragma pop - -/* 80A2187C-80A21880 00007C 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2DebugSys> - */ -#pragma push -#pragma force_active on -static u8 data_80A2187C[4]; -#pragma pop - -/* 80A21880-80A21884 000080 0004+00 0/0 0/0 0/0 .bss - * sInstance__36JASGlobalInstance<15JAISoundStarter> */ -#pragma push -#pragma force_active on -static u8 data_80A21880[4]; -#pragma pop - -/* 80A21884-80A21888 000084 0004+00 0/0 0/0 0/0 .bss - * sInstance__35JASGlobalInstance<14Z2SoundStarter> */ -#pragma push -#pragma force_active on -static u8 data_80A21884[4]; -#pragma pop - -/* 80A21888-80A2188C 000088 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12Z2SpeechMgr2> */ -#pragma push -#pragma force_active on -static u8 data_80A21888[4]; -#pragma pop - -/* 80A2188C-80A21890 00008C 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8JAISeMgr> */ -#pragma push -#pragma force_active on -static u8 data_80A2188C[4]; -#pragma pop - -/* 80A21890-80A21894 000090 0004+00 0/0 0/0 0/0 .bss sInstance__29JASGlobalInstance<9JAISeqMgr> */ -#pragma push -#pragma force_active on -static u8 data_80A21890[4]; -#pragma pop - -/* 80A21894-80A21898 000094 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAIStreamMgr> */ -#pragma push -#pragma force_active on -static u8 data_80A21894[4]; -#pragma pop - -/* 80A21898-80A2189C 000098 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SoundMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80A21898[4]; -#pragma pop - -/* 80A2189C-80A218A0 00009C 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAISoundInfo> */ -#pragma push -#pragma force_active on -static u8 data_80A2189C[4]; -#pragma pop - -/* 80A218A0-80A218A4 0000A0 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13JAUSoundTable> */ -#pragma push -#pragma force_active on -static u8 data_80A218A0[4]; -#pragma pop - -/* 80A218A4-80A218A8 0000A4 0004+00 0/0 0/0 0/0 .bss - * sInstance__38JASGlobalInstance<17JAUSoundNameTable> */ -#pragma push -#pragma force_active on -static u8 data_80A218A4[4]; -#pragma pop - -/* 80A218A8-80A218AC 0000A8 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAUSoundInfo> */ -#pragma push -#pragma force_active on -static u8 data_80A218A8[4]; -#pragma pop - -/* 80A218AC-80A218B0 0000AC 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SoundInfo> - */ -#pragma push -#pragma force_active on -static u8 data_80A218AC[4]; -#pragma pop - -/* 80A218B0-80A218B4 0000B0 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13Z2SoundObjMgr> */ -#pragma push -#pragma force_active on -static u8 data_80A218B0[4]; -#pragma pop - -/* 80A218B4-80A218B8 0000B4 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2Audience> - */ -#pragma push -#pragma force_active on -static u8 data_80A218B4[4]; -#pragma pop - -/* 80A218B8-80A218BC 0000B8 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2FxLineMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80A218B8[4]; -#pragma pop - -/* 80A218BC-80A218C0 0000BC 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2EnvSeMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80A218BC[4]; -#pragma pop - -/* 80A218C0-80A218C4 0000C0 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SpeechMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80A218C0[4]; -#pragma pop - -/* 80A218C4-80A218C8 0000C4 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13Z2WolfHowlMgr> */ -#pragma push -#pragma force_active on -static u8 data_80A218C4[4]; -#pragma pop - -/* 80A21358-80A21358 0002D8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/src/d/actor/d_a_npc_kasi_kyu.cpp b/src/d/actor/d_a_npc_kasi_kyu.cpp index 35a257e1a80..1df16348ef5 100644 --- a/src/d/actor/d_a_npc_kasi_kyu.cpp +++ b/src/d/actor/d_a_npc_kasi_kyu.cpp @@ -6,631 +6,1460 @@ #include "d/dolzel_rel.h" #include "d/actor/d_a_npc_kasi_kyu.h" -#include "dol2asm.h" +#include "Z2AudioLib/Z2Instances.h" -// -// Forward References: -// +enum kasi_kyu_RES_File_ID { + /* BMDR */ + /* 0x4 */ BMDR_KYU = 0x4, + + /* BTP */ + /* 0x7 */ BTP_KYU = 0x7, +}; -extern "C" void __ct__14daNpcKasiKyu_cFv(); -extern "C" void __dt__8cM3dGCylFv(); -extern "C" void __dt__8cM3dGAabFv(); -extern "C" void __dt__14daNpcKasiKyu_cFv(); -extern "C" void Create__14daNpcKasiKyu_cFv(); -extern "C" void CreateHeap__14daNpcKasiKyu_cFv(); -extern "C" void Delete__14daNpcKasiKyu_cFv(); -extern "C" void Execute__14daNpcKasiKyu_cFv(); -extern "C" void Draw__14daNpcKasiKyu_cFv(); -extern "C" void ctrlJoint__14daNpcKasiKyu_cFP8J3DJointP8J3DModel(); -extern "C" void createHeapCallBack__14daNpcKasiKyu_cFP10fopAc_ac_c(); -extern "C" void ctrlJointCallBack__14daNpcKasiKyu_cFP8J3DJointi(); -extern "C" void setParam__14daNpcKasiKyu_cFv(); -extern "C" void main__14daNpcKasiKyu_cFv(); -extern "C" void setAttnPos__14daNpcKasiKyu_cFv(); -extern "C" void setMotionAnm__14daNpcKasiKyu_cFif(); -extern "C" void setMotion__14daNpcKasiKyu_cFifi(); -extern "C" bool drawDbgInfo__14daNpcKasiKyu_cFv(); -extern "C" void reset__14daNpcKasiKyu_cFv(); -extern "C" void playMotion__14daNpcKasiKyu_cFv(); -extern "C" void playMotionAnmLoop__14daNpcKasiKyu_cFPPPQ28daNpcF_c18daNpcF_anmPlayData(); -extern "C" void setAction__14daNpcKasiKyu_cFM14daNpcKasiKyu_cFPCvPvi_i(); -extern "C" void setLookMode__14daNpcKasiKyu_cFi(); -extern "C" void lookat__14daNpcKasiKyu_cFv(); -extern "C" void step__14daNpcKasiKyu_cFsi(); -extern "C" void chkFindPlayer__14daNpcKasiKyu_cFv(); -extern "C" void wait__14daNpcKasiKyu_cFi(); -extern "C" void fear__14daNpcKasiKyu_cFi(); -extern "C" void srchWolfTag__14daNpcKasiKyu_cFv(); -extern "C" void _srch_escape_tag__14daNpcKasiKyu_cFPvPv(); -extern "C" void getWolfPathNearIdx__14daNpcKasiKyu_cFv(); -extern "C" void chace_st__14daNpcKasiKyu_cFi(); -extern "C" void chace__14daNpcKasiKyu_cFi(); -extern "C" void getChacePos__14daNpcKasiKyu_cFv(); -extern "C" void turn_link__14daNpcKasiKyu_cFi(); -extern "C" void turn_home__14daNpcKasiKyu_cFi(); -extern "C" void turn_center__14daNpcKasiKyu_cFi(); -extern "C" void talk_dummy__14daNpcKasiKyu_cFi(); -extern "C" void kya__14daNpcKasiKyu_cFi(); -extern "C" void kya2__14daNpcKasiKyu_cFi(); -extern "C" void kya_stop__14daNpcKasiKyu_cFi(); -extern "C" void iyan__14daNpcKasiKyu_cFi(); -extern "C" void iyan_look__14daNpcKasiKyu_cFi(); -extern "C" void turn_hana__14daNpcKasiKyu_cFi(); -extern "C" void escape__14daNpcKasiKyu_cFi(); -extern "C" void wait_dummy__14daNpcKasiKyu_cFi(); -extern "C" void cheer__14daNpcKasiKyu_cFi(); -extern "C" void _turn_to_link__14daNpcKasiKyu_cFs(); -extern "C" void _turn_pos__14daNpcKasiKyu_cFRC4cXyzs(); -extern "C" void actor_front_check__14daNpcKasiKyu_cFP10fopAc_ac_c(); -extern "C" void _getOffset__14daNpcKasiKyu_cFRC4cXyzR4cXyz(); -extern "C" static void daNpcKasiKyu_Create__FPv(); -extern "C" static void daNpcKasiKyu_Delete__FPv(); -extern "C" static void daNpcKasiKyu_Execute__FPv(); -extern "C" static void daNpcKasiKyu_Draw__FPv(); -extern "C" static bool daNpcKasiKyu_IsDelete__FPv(); -extern "C" void __dt__13daNpcF_Path_cFv(); -extern "C" void __dt__16daNpcF_SPCurve_cFv(); -extern "C" void __dt__18daNpcF_ActorMngr_cFv(); -extern "C" void __ct__18daNpcF_ActorMngr_cFv(); -extern "C" void __dt__15daNpcF_Lookat_cFv(); -extern "C" void __dt__5csXyzFv(); -extern "C" void __ct__5csXyzFv(); -extern "C" void __dt__4cXyzFv(); -extern "C" void __ct__4cXyzFv(); -extern "C" void __dt__8daNpcF_cFv(); -extern "C" void __ct__8daNpcF_cFv(); -extern "C" void __dt__12dBgS_AcchCirFv(); -extern "C" void __dt__10dCcD_GSttsFv(); -extern "C" void __dt__12dBgS_ObjAcchFv(); -extern "C" void __dt__12J3DFrameCtrlFv(); -extern "C" bool ctrlBtk__8daNpcF_cFv(); -extern "C" void setCollisions__8daNpcF_cFv(); -extern "C" bool setExpressionAnm__8daNpcF_cFib(); -extern "C" bool setExpressionBtp__8daNpcF_cFi(); -extern "C" void setExpression__8daNpcF_cFif(); -extern "C" void drawOtherMdls__8daNpcF_cFv(); -extern "C" void __dt__10cCcD_GSttsFv(); -extern "C" void __sinit_d_a_npc_kasi_kyu_cpp(); -extern "C" void adjustShapeAngle__14daNpcKasiKyu_cFv(); -extern "C" void __dt__20daNpcKasiKyu_Param_cFv(); -extern "C" static void func_80A25894(); -extern "C" static void func_80A2589C(); -extern "C" u8 const m__20daNpcKasiKyu_Param_c[116]; -extern "C" extern char const* const d_a_npc_kasi_kyu__stringBase0; -extern "C" u8 mEvtSeqList__14daNpcKasiKyu_c[12]; -extern "C" u8 mTargetTag__14daNpcKasiKyu_c[4]; -extern "C" u8 mTargetTagDist__14daNpcKasiKyu_c[4]; +enum girls_RES_File_ID { + /* BCK */ + /* 0x3 */ BCK_MICH_IYAN_WAIT = 0x3, + /* 0x4 */ BCK_MICH_KYA_TALK, + /* 0x5 */ BCK_MICH_OUEN_WAIT_A, + /* 0x6 */ BCK_MICH_OUEN_WAIT_B, +}; -// -// External References: -// +enum Wgeneral_RES_File_ID { + /* BCK */ + /* 0x03 */ BCK_W_2LADYTALK_A = 0x3, + /* 0x04 */ BCK_W_2LADYTALK_B, + /* 0x05 */ BCK_W_2NORMALTALK_A, + /* 0x06 */ BCK_W_2NORMALTALK_B, + /* 0x07 */ BCK_W_BROWSE_A, + /* 0x08 */ BCK_W_BROWSE_B, + /* 0x09 */ BCK_W_CELLME, + /* 0x0A */ BCK_W_LOOK_A, + /* 0x0B */ BCK_W_LOOK_B, + /* 0x0C */ BCK_W_MARO_DANCE, + /* 0x0D */ BCK_W_RUN_A, + /* 0x0E */ BCK_W_RUN_B, + /* 0x0F */ BCK_W_SING, + /* 0x10 */ BCK_W_SIT_TO_WOLF_A, + /* 0x11 */ BCK_W_SIT_TO_WOLF_B, + /* 0x12 */ BCK_W_SITTALK_A, + /* 0x13 */ BCK_W_SITTALK_A_B, + /* 0x14 */ BCK_W_SITTALK_B, + /* 0x15 */ BCK_W_SITTALK_B_B, + /* 0x16 */ BCK_W_SITWAIT_A, + /* 0x17 */ BCK_W_SITWAIT_B, + /* 0x18 */ BCK_W_SURPRISE, + /* 0x19 */ BCK_W_TALK_A, + /* 0x1A */ BCK_W_TALK_B, + /* 0x1B */ BCK_W_TALK_B_WALL, + /* 0x1C */ BCK_W_TALK_C, + /* 0x1D */ BCK_W_TALK_WALL, + /* 0x1E */ BCK_W_TO_WOLF, + /* 0x1F */ BCK_W_WAIT_A, + /* 0x20 */ BCK_W_WAIT_B, + /* 0x21 */ BCK_W_WAIT_WALL, + /* 0x22 */ BCK_W_WALK_A, + /* 0x23 */ BCK_W_WALK_B, +}; -extern "C" void ZXYrotS__14mDoMtx_stack_cFRC5csXyz(); -extern "C" void setMorf__13mDoExt_morf_cFf(); -extern "C" void -__ct__16mDoExt_McaMorfSOFP12J3DModelDataP25mDoExt_McaMorfCallBack1_cP25mDoExt_McaMorfCallBack2_cP15J3DAnmTransformifiiP10Z2CreatureUlUl(); -extern "C" void stopZelAnime__16mDoExt_McaMorfSOFv(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void fopAc_IsActor__FPv(); -extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); -extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff(); -extern "C" void fopAcM_searchActorAngleY__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void fopAcM_searchActorDistanceXZ__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void fopAcM_searchActorDistanceXZ2__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void fpcEx_Search__FPFPvPv_PvPv(); -extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void reset__14dEvt_control_cFv(); -extern "C" void ChkPresentEnd__16dEvent_manager_cFv(); -extern "C" void __ct__12dBgS_AcchCirFv(); -extern "C" void SetWall__12dBgS_AcchCirFff(); -extern "C" void __dt__9dBgS_AcchFv(); -extern "C" void __ct__9dBgS_AcchFv(); -extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz(); -extern "C" void CrrPos__9dBgS_AcchFR4dBgS(); -extern "C" void __ct__11dBgS_GndChkFv(); -extern "C" void __dt__11dBgS_GndChkFv(); -extern "C" void __ct__11dBgS_LinChkFv(); -extern "C" void __dt__11dBgS_LinChkFv(); -extern "C" void SetObj__16dBgS_PolyPassChkFv(); -extern "C" void __ct__10dCcD_GSttsFv(); -extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c(); -extern "C" void __ct__12dCcD_GObjInfFv(); -extern "C" void __dt__12dCcD_GObjInfFv(); -extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl(); -extern "C" void initialize__18daNpcF_ActorMngr_cFv(); -extern "C" void entry__18daNpcF_ActorMngr_cFP10fopAc_ac_c(); -extern "C" void remove__18daNpcF_ActorMngr_cFv(); -extern "C" void getActorP__18daNpcF_ActorMngr_cFv(); -extern "C" void initialize__16daNpcF_SPCurve_cFP5dPathi(); -extern "C" void initialize__13daNpcF_Path_cFv(); -extern "C" void setPathInfo__13daNpcF_Path_cFUcScUc(); -extern "C" void getDstPos__13daNpcF_Path_cF4cXyzR4cXyz(); -extern "C" void initialize__15daNpcF_Lookat_cFv(); -extern "C" void setParam__15daNpcF_Lookat_cFffffffffffffsP4cXyz(); -extern "C" void calc__15daNpcF_Lookat_cFP10fopAc_ac_cPA4_fPP5csXyziii(); -extern "C" void execute__8daNpcF_cFv(); -extern "C" void draw__8daNpcF_cFiifP11_GXColorS10i(); -extern "C" void setMtx__8daNpcF_cFv(); -extern "C" void setMtx2__8daNpcF_cFv(); -extern "C" void initialize__8daNpcF_cFv(); -extern "C" void getTrnsfrmKeyAnmP__8daNpcF_cFPci(); -extern "C" void getTexPtrnAnmP__8daNpcF_cFPci(); -extern "C" void setMcaMorfAnm__8daNpcF_cFP18J3DAnmTransformKeyffiii(); -extern "C" void setBtpAnm__8daNpcF_cFP16J3DAnmTexPatternP12J3DModelDatafi(); -extern "C" void setEnvTevColor__8daNpcF_cFv(); -extern "C" void setRoomNo__8daNpcF_cFv(); -extern "C" void playMotionAnm__8daNpcF_cFPPPQ28daNpcF_c18daNpcF_anmPlayData(); -extern "C" void setLookatMtx__8daNpcF_cFiPif(); -extern "C" void orderEvent__8daNpcF_cFiPcUsUsUcUs(); -extern "C" void chkActorInSight__8daNpcF_cFP10fopAc_ac_cf(); -extern "C" void chkActorInAttnArea__8daNpcF_cFP10fopAc_ac_cP10fopAc_ac_ci(); -extern "C" void turn__8daNpcF_cFsfi(); -extern "C" void getDistTableIdx__8daNpcF_cFii(); -extern "C" void daNpcF_chkEvtBit__FUl(); -extern "C" void dKy_darkworld_check__Fv(); -extern "C" void __ct__10dMsgFlow_cFv(); -extern "C" void __dt__10dMsgFlow_cFv(); -extern "C" void Set__4cCcSFP8cCcD_Obj(); -extern "C" void __mi__4cXyzCFRC3Vec(); -extern "C" void __ct__11cBgS_GndChkFv(); -extern "C" void __dt__11cBgS_GndChkFv(); -extern "C" void __dt__13cBgS_PolyInfoFv(); -extern "C" void __dt__8cM3dGCirFv(); -extern "C" void SetC__8cM3dGCylFRC4cXyz(); -extern "C" void SetH__8cM3dGCylFf(); -extern "C" void SetR__8cM3dGCylFf(); -extern "C" void cLib_chaseAngleS__FPsss(); -extern "C" void cLib_targetAngleY__FPC3VecPC3Vec(); -extern "C" void cLib_targetAngleX__FPC4cXyzPC4cXyz(); -extern "C" void cLib_distanceAngleS__Fss(); -extern "C" void __ct__17Z2CreatureCitizenFv(); -extern "C" void __dt__17Z2CreatureCitizenFv(); -extern "C" void init__17Z2CreatureCitizenFP3VecP3VecUcUc(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void init__12J3DFrameCtrlFs(); -extern "C" void __destroy_arr(); -extern "C" void __construct_array(); -extern "C" void __ptmf_test(); -extern "C" void __ptmf_scall(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_25(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" extern u8 const __ptmf_null[12 + 4 /* padding */]; -extern "C" extern void* __vt__8dCcD_Cyl[36]; -extern "C" extern void* __vt__9dCcD_Stts[11]; -extern "C" u8 mCcDCyl__8daNpcF_c[68]; -extern "C" extern void* __vt__8daNpcF_c[18]; -extern "C" extern void* __vt__12cCcD_CylAttr[25]; -extern "C" extern void* __vt__14cCcD_ShapeAttr[22]; -extern "C" extern void* __vt__9cCcD_Stts[8]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" u8 mCurrentMtx__6J3DSys[48]; -extern "C" void __register_global_object(); +enum RES_Name { + /* 0x0 */ KASI_KYU, + /* 0x1 */ GIRLS, + /* 0x2 */ WGENERAL, +}; -// -// Declarations: -// +enum Animation { + /* 0x0 */ ANM_MICH_IYAN_WAIT, + /* 0x1 */ ANM_MICH_KYA_TALK, + /* 0x2 */ ANM_MICH_OUEN_WAIT_A, + /* 0x3 */ ANM_MICH_OUEN_WAIT_B, + /* 0x4 */ ANM_W_WAIT_A, + /* 0x5 */ ANM_W_TALK_B, + /* 0x6 */ ANM_W_WALK_A, + /* 0x7 */ ANM_W_CELLME, + /* 0x8 */ ANM_W_RUN_A, + /* 0x9 */ ANM_W_TO_WOLF, + /* 0xA */ ANM_W_SURPRISE, + /* 0xB */ ANM_W_WAIT_A_2, + /* 0xC */ ANM_W_TALK_B_2, + /* 0xD */ ANM_W_2LADYTALK_B, + /* 0xE */ ANM_W_2NORMALTALK_B, + /* 0xF */ ANM_W_2NORMALTALK_A, +}; -/* ############################################################################################## */ -/* 80A25B0C-80A25B0C 000254 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80A25B0C = "kasi_kyu"; -SECTION_DEAD static char const* const stringBase_80A25B15 = "girls"; -SECTION_DEAD static char const* const stringBase_80A25B1B = "Wgeneral"; -#pragma pop +enum Motion { + /* 0x0 */ MOT_MICH_KYA_TALK, + /* 0x1 */ MOT_MICH_IYAN_WAIT, + /* 0x2 */ MOT_MICH_OUEN_WAIT_A, + /* 0x3 */ MOT_MICH_OUEN_WAIT_B, + /* 0x4 */ MOT_W_WAIT_A, + /* 0x5 */ MOT_W_TALK_B, + /* 0x6 */ MOT_W_WALK_A, + /* 0x7 */ MOT_W_CELLME, + /* 0x8 */ MOT_W_RUN_A, + /* 0x9 */ MOT_W_TO_WOLF, + /* 0xA */ MOT_W_SURPRISE, + /* 0xB */ MOT_W_WAIT_A_LOOP, + /* 0xC */ MOT_W_2NORMALTALK_A, +}; + +/* 80A2605C-80A26060 000054 0004+00 1/1 0/0 0/0 .bss l_HIO */ +static daNpcKasiKyu_Param_c l_HIO; /* 80A25B44-80A25C04 000020 00C0+00 1/1 0/0 0/0 .data l_bckGetParamList */ -SECTION_DATA static u8 l_bckGetParamList[192] = { - 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1A, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1E, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, +static daNpc_GetParam2 l_bckGetParamList[16] = { + {BCK_MICH_IYAN_WAIT, J3DFrameCtrl::EMode_LOOP, GIRLS}, + {BCK_MICH_KYA_TALK, J3DFrameCtrl::EMode_LOOP, GIRLS}, + {BCK_MICH_OUEN_WAIT_A, J3DFrameCtrl::EMode_LOOP, GIRLS}, + {BCK_MICH_OUEN_WAIT_B, J3DFrameCtrl::EMode_LOOP, GIRLS}, + {BCK_W_WAIT_A, J3DFrameCtrl::EMode_LOOP, WGENERAL}, + {BCK_W_TALK_B, J3DFrameCtrl::EMode_NONE, WGENERAL}, + {BCK_W_WALK_A, J3DFrameCtrl::EMode_LOOP, WGENERAL}, + {BCK_W_CELLME, J3DFrameCtrl::EMode_LOOP, WGENERAL}, + {BCK_W_RUN_A, J3DFrameCtrl::EMode_LOOP, WGENERAL}, + {BCK_W_TO_WOLF, J3DFrameCtrl::EMode_LOOP, WGENERAL}, + {BCK_W_SURPRISE, J3DFrameCtrl::EMode_NONE, WGENERAL}, + {BCK_W_WAIT_A, J3DFrameCtrl::EMode_NONE, WGENERAL}, + {BCK_W_TALK_B, J3DFrameCtrl::EMode_NONE, WGENERAL}, + {BCK_W_2LADYTALK_A, J3DFrameCtrl::EMode_NONE, WGENERAL}, + {BCK_W_2NORMALTALK_B, J3DFrameCtrl::EMode_NONE, WGENERAL}, + {BCK_W_2NORMALTALK_A, J3DFrameCtrl::EMode_NONE, WGENERAL}, }; /* 80A25C04-80A25C10 0000E0 000C+00 0/0 0/0 0/0 .data l_btpGetParamList */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_btpGetParamList[12] = { - 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +static daNpc_GetParam2 l_btpGetParamList[1] = { + {BTP_KYU, J3DFrameCtrl::EMode_LOOP, KASI_KYU}, }; -#pragma pop /* 80A25C10-80A25C1C -00001 000C+00 5/6 0/0 0/0 .data l_arcNames */ -SECTION_DATA static void* l_arcNames[3] = { - (void*)&d_a_npc_kasi_kyu__stringBase0, - (void*)(((char*)&d_a_npc_kasi_kyu__stringBase0) + 0x9), - (void*)(((char*)&d_a_npc_kasi_kyu__stringBase0) + 0xF), +static char* l_arcNames[3] = { + "kasi_kyu", + "girls", + "Wgeneral", }; /* 80A25C1C-80A25C20 0000F8 0004+00 1/2 0/0 0/0 .data l_evtNames */ -SECTION_DATA static u8 l_evtNames[4] = { - 0x00, - 0x00, - 0x00, - 0x00, +static char* l_evtNames[1] = { + NULL, }; /* 80A25C20-80A25C24 -00001 0004+00 0/0 0/0 0/0 .data l_myName */ -#pragma push -#pragma force_active on -SECTION_DATA static void* l_myName = (void*)&d_a_npc_kasi_kyu__stringBase0; -#pragma pop +static char* l_myName = "kasi_kyu"; /* 80A25C24-80A25C30 000100 000C+00 1/1 0/0 0/0 .data mEvtSeqList__14daNpcKasiKyu_c */ -SECTION_DATA u8 daNpcKasiKyu_c::mEvtSeqList[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +daNpcKasiKyu_c::EventFn daNpcKasiKyu_c::mEvtSeqList[1] = { + NULL }; -/* 80A25C30-80A25C3C -00001 000C+00 0/1 0/0 0/0 .data @4365 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4365[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__14daNpcKasiKyu_cFi, -}; -#pragma pop +/* 80A219CC-80A21B84 0000EC 01B8+00 1/1 0/0 0/0 .text __ct__14daNpcKasiKyu_cFv */ +daNpcKasiKyu_c::daNpcKasiKyu_c() {} -/* 80A25C3C-80A25C48 -00001 000C+00 0/1 0/0 0/0 .data @4366 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4366[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)chace__14daNpcKasiKyu_cFi, -}; -#pragma pop +/* 80A21C14-80A21E24 000334 0210+00 1/0 0/0 0/0 .text __dt__14daNpcKasiKyu_cFv */ +daNpcKasiKyu_c::~daNpcKasiKyu_c() { + for (int i = 0; i < 3; i ++) { + dComIfG_resDelete(&mPhases[i], l_arcNames[i]); + } -/* 80A25C48-80A25C54 -00001 000C+00 0/1 0/0 0/0 .data @4367 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4367[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)turn_link__14daNpcKasiKyu_cFi, -}; -#pragma pop + if (heap != NULL) { + mpMorf->stopZelAnime(); + } +} -/* 80A25C54-80A25C60 -00001 000C+00 0/1 0/0 0/0 .data @4368 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4368[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)turn_home__14daNpcKasiKyu_cFi, -}; -#pragma pop - -/* 80A25C60-80A25C6C -00001 000C+00 0/1 0/0 0/0 .data @4369 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4369[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talk_dummy__14daNpcKasiKyu_cFi, -}; -#pragma pop - -/* 80A25C6C-80A25C78 -00001 000C+00 0/1 0/0 0/0 .data @4370 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4370[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)escape__14daNpcKasiKyu_cFi, -}; -#pragma pop - -/* 80A25C78-80A25C84 -00001 000C+00 0/1 0/0 0/0 .data @4371 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4371[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)turn_center__14daNpcKasiKyu_cFi, -}; -#pragma pop - -/* 80A25C84-80A25C90 -00001 000C+00 0/1 0/0 0/0 .data @4372 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4372[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait_dummy__14daNpcKasiKyu_cFi, -}; -#pragma pop - -/* 80A25C90-80A25C9C -00001 000C+00 0/1 0/0 0/0 .data @4373 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4373[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cheer__14daNpcKasiKyu_cFi, -}; -#pragma pop - -/* 80A25C9C-80A25CA8 -00001 000C+00 0/1 0/0 0/0 .data @4374 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4374[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)chace_st__14daNpcKasiKyu_cFi, -}; -#pragma pop - -/* 80A25CA8-80A25CB4 -00001 000C+00 0/1 0/0 0/0 .data @4375 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4375[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)kya__14daNpcKasiKyu_cFi, -}; -#pragma pop - -/* 80A25CB4-80A25CC0 -00001 000C+00 0/1 0/0 0/0 .data @4376 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4376[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)iyan__14daNpcKasiKyu_cFi, -}; -#pragma pop - -/* 80A25CC0-80A25CCC -00001 000C+00 0/1 0/0 0/0 .data @4377 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4377[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)kya_stop__14daNpcKasiKyu_cFi, -}; -#pragma pop - -/* 80A25CCC-80A25CD8 -00001 000C+00 0/1 0/0 0/0 .data @4378 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4378[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)iyan_look__14daNpcKasiKyu_cFi, -}; -#pragma pop - -/* 80A25CD8-80A25CE4 -00001 000C+00 0/1 0/0 0/0 .data @4379 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4379[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait_dummy__14daNpcKasiKyu_cFi, -}; -#pragma pop - -/* 80A25CE4-80A25CF0 -00001 000C+00 0/1 0/0 0/0 .data @4380 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4380[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)turn_hana__14daNpcKasiKyu_cFi, -}; -#pragma pop - -/* 80A25CF0-80A25CFC -00001 000C+00 0/1 0/0 0/0 .data @4381 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4381[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)kya2__14daNpcKasiKyu_cFi, -}; -#pragma pop - -/* 80A25CFC-80A25D08 -00001 000C+00 0/1 0/0 0/0 .data @4382 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4382[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)kya_stop__14daNpcKasiKyu_cFi, -}; -#pragma pop - -/* 80A25D08-80A25D14 -00001 000C+00 0/1 0/0 0/0 .data @4383 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4383[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)fear__14daNpcKasiKyu_cFi, -}; -#pragma pop - -/* 80A25D14-80A25E04 0001F0 00F0+00 0/1 0/0 0/0 .data sSygnalAct$4364 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 sSygnalAct[240] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -#pragma pop - -/* 80A25E04-80A25E10 -00001 000C+00 1/1 0/0 0/0 .data @4488 */ -SECTION_DATA static void* lit_4488[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__14daNpcKasiKyu_cFi, +/* 80A258B8-80A2592C 000000 0074+00 18/18 0/0 0/0 .rodata m__20daNpcKasiKyu_Param_c */ +daNpcKasiKyu_HIOParam const daNpcKasiKyu_Param_c::m = { + 55.0f, + -3.0f, + 1.0f, + 500.0f, + 216.0f, + 140.0f, + 35.0f, + 30.0f, + 0.0f, + 0.0f, + 10.0f, + -10.0f, + 30.0f, + -10.0f, + 45.0f, + -45.0f, + 0.6f, + 12.0f, + 2, + 6, + 3, + 6, + 60.0f, + 500.0f, + 300.0f, + -300.0f, + 60, + 0, + 0, + 0, + 0, + false, + false, + 10, + 16.0f, }; -/* 80A25E10-80A25E1C -00001 000C+00 0/1 0/0 0/0 .data @4777 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4777[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)chace__14daNpcKasiKyu_cFi, -}; -#pragma pop +/* 80A21E24-80A220A0 000544 027C+00 1/1 0/0 0/0 .text Create__14daNpcKasiKyu_cFv */ +cPhs__Step daNpcKasiKyu_c::Create() { + fopAcM_SetupActor(this, daNpcKasiKyu_c); -/* 80A25E1C-80A25E28 -00001 000C+00 0/1 0/0 0/0 .data @4780 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4780[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)turn_link__14daNpcKasiKyu_cFi, -}; -#pragma pop + mType = getType(); + mMessageNo = getMessageNo(); -/* 80A25E28-80A25E34 -00001 000C+00 0/0 0/0 0/0 .data @4960 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4960[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__14daNpcKasiKyu_cFi, -}; -#pragma pop + cPhs__Step phase = cPhs_ERROR_e; + for (int i = 0; i < 3; i++) { + phase = (cPhs__Step)dComIfG_resLoad(&mPhases[i], l_arcNames[i]); -/* 80A25E34-80A25E40 -00001 000C+00 0/0 0/0 0/0 .data @4968 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4968[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__14daNpcKasiKyu_cFi, -}; -#pragma pop + if (phase != cPhs_COMPLEATE_e) { + return phase; + } + } -/* 80A25E40-80A25E4C -00001 000C+00 0/0 0/0 0/0 .data @5003 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5003[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__14daNpcKasiKyu_cFi, -}; -#pragma pop + if (phase == cPhs_COMPLEATE_e) { + if (!fopAcM_entrySolidHeap(this, createHeapCallBack, 0x1940)) { + return cPhs_ERROR_e; + } -/* 80A25E4C-80A25E58 -00001 000C+00 1/1 0/0 0/0 .data @5026 */ -SECTION_DATA static void* lit_5026[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)chace__14daNpcKasiKyu_cFi, -}; + J3DModel* model = mpMorf->getModel(); + fopAcM_SetMtx(this, mpMorf->getModel()->getBaseTRMtx()); + fopAcM_setCullSizeBox(this, -60.0f, -10.0f, -60.0f, 60.0f, 220.0f, 60.0f); + mSound.init(¤t.pos, &eyePos, 3, 1); -/* 80A25E58-80A25E64 -00001 000C+00 1/1 0/0 0/0 .data @5043 */ -SECTION_DATA static void* lit_5043[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__14daNpcKasiKyu_cFi, -}; + mAcchCir.SetWall(daNpcKasiKyu_Param_c::m.common.width, daNpcKasiKyu_Param_c::m.common.knee_length); + mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir, fopAcM_GetSpeed_p(this), + fopAcM_GetAngle_p(this), fopAcM_GetShapeAngle_p(this)); + mAcch.CrrPos(dComIfG_Bgsp()); + mCcStts.Init(0xFE, 0, this); + mCyl.Set(mCcDCyl); + mCyl.SetStts(&mCcStts); + mCyl.SetTgType(0); + mCyl.SetTgSPrm(0); + mCyl.SetH(daNpcKasiKyu_Param_c::m.common.height); + mCyl.SetR(daNpcKasiKyu_Param_c::m.common.width); + mGndChk = mAcch.m_gnd; + mGroundH = mAcch.GetGroundH(); -/* 80A25E64-80A25E70 -00001 000C+00 1/1 0/0 0/0 .data @5046 */ -SECTION_DATA static void* lit_5046[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)chace_st__14daNpcKasiKyu_cFi, -}; + setEnvTevColor(); + setRoomNo(); + reset(); + Execute(); + } -/* 80A25E70-80A25E7C -00001 000C+00 0/0 0/0 0/0 .data @5106 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5106[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)chace__14daNpcKasiKyu_cFi, -}; -#pragma pop + return phase; +} -/* 80A25E7C-80A25E88 -00001 000C+00 1/1 0/0 0/0 .data @5120 */ -SECTION_DATA static void* lit_5120[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__14daNpcKasiKyu_cFi, -}; +/* 80A220A0-80A22224 0007C0 0184+00 1/1 0/0 0/0 .text CreateHeap__14daNpcKasiKyu_cFv */ +int daNpcKasiKyu_c::CreateHeap() { + J3DModelData* mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_arcNames[0], BMDR_KYU); -/* 80A25E88-80A25E94 -00001 000C+00 1/1 0/0 0/0 .data @5134 */ -SECTION_DATA static void* lit_5134[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait_dummy__14daNpcKasiKyu_cFi, -}; + JUT_ASSERT(322, 0 != mdlData_p); -/* 80A25E94-80A25EA0 -00001 000C+00 1/1 0/0 0/0 .data @5148 */ -SECTION_DATA static void* lit_5148[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait_dummy__14daNpcKasiKyu_cFi, -}; + mpMorf = new mDoExt_McaMorfSO(mdlData_p, NULL, NULL, NULL, -1, 1.0f, 0, -1, &mSound, 0x80000, 0x11020084); + if (mpMorf != NULL && mpMorf->getModel() == NULL) { + mpMorf->stopZelAnime(); + mpMorf = NULL; + } -/* 80A25EA0-80A25EAC -00001 000C+00 1/1 0/0 0/0 .data @5201 */ -SECTION_DATA static void* lit_5201[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__14daNpcKasiKyu_cFi, -}; + if (mpMorf == NULL) { + return 0; + } -/* 80A25EAC-80A25EB8 -00001 000C+00 1/1 0/0 0/0 .data @5209 */ -SECTION_DATA static void* lit_5209[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait_dummy__14daNpcKasiKyu_cFi, -}; + cXyz i_scale(1.0f, 0.8630768f, 1.0f); + mpMorf->offTranslate(); + mpMorf->setTranslateScale(i_scale); -/* 80A25EB8-80A25EC4 -00001 000C+00 1/1 0/0 0/0 .data @5237 */ -SECTION_DATA static void* lit_5237[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait_dummy__14daNpcKasiKyu_cFi, -}; + J3DModel* model = mpMorf->getModel(); + for (u16 i = 0; i < mdlData_p->getJointNum(); i++) { + mdlData_p->getJointNodePointer(i)->setCallBack(ctrlJointCallBack); + } + model->setUserArea((u32)this); + + setMotion(MOT_W_WAIT_A, -1.0f, 0); + + return 1; +} + +/* 80A22224-80A22258 000944 0034+00 1/1 0/0 0/0 .text Delete__14daNpcKasiKyu_cFv */ +int daNpcKasiKyu_c::Delete() { + this->~daNpcKasiKyu_c(); + return 1; +} + +/* 80A22258-80A22284 000978 002C+00 2/2 0/0 0/0 .text Execute__14daNpcKasiKyu_cFv */ +int daNpcKasiKyu_c::Execute() { + mFear = false; + execute(); + return 1; +} + +/* 80A22284-80A222D0 0009A4 004C+00 1/1 0/0 0/0 .text Draw__14daNpcKasiKyu_cFv */ +int daNpcKasiKyu_c::Draw() { + if (!mEscape) { + draw(FALSE, FALSE, daNpcKasiKyu_Param_c::m.common.real_shadow_size, NULL, FALSE); + } + + return 1; +} + +/* 80A222D0-80A2245C 0009F0 018C+00 1/1 0/0 0/0 .text ctrlJoint__14daNpcKasiKyu_cFP8J3DJointP8J3DModel */ +int daNpcKasiKyu_c::ctrlJoint(J3DJoint* i_joint, J3DModel* i_model) { + int jntNo = i_joint->getJntNo(); + int i_jointList[3] = {1, 2, 3}; + + if (jntNo == 0) { + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(1)); + mDoMtx_stack_c::multVecZero(&mLookatPos[0]); + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(2)); + mDoMtx_stack_c::multVecZero(&mLookatPos[1]); + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(3)); + mDoMtx_stack_c::multVecZero(&mLookatPos[2]); + } + + mDoMtx_stack_c::copy(i_model->getAnmMtx(jntNo)); + + switch (jntNo) { + case 1: + case 2: + case 3: + setLookatMtx(jntNo, i_jointList, daNpcKasiKyu_Param_c::m.common.neck_rotation_ratio); + break; + } + + i_model->setAnmMtx(jntNo, mDoMtx_stack_c::get()); + MTXCopy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx); + + return 1; +} + +/* 80A2245C-80A2247C 000B7C 0020+00 1/1 0/0 0/0 .text createHeapCallBack__14daNpcKasiKyu_cFP10fopAc_ac_ */ +int daNpcKasiKyu_c::createHeapCallBack(fopAc_ac_c* a_this) { + daNpcKasiKyu_c* i_this = (daNpcKasiKyu_c*)a_this; + return i_this->CreateHeap(); +} + +/* 80A2247C-80A224C8 000B9C 004C+00 1/1 0/0 0/0 .text ctrlJointCallBack__14daNpcKasiKyu_cFP8J3DJointi */ +int daNpcKasiKyu_c::ctrlJointCallBack(J3DJoint* i_joint, int param_2) { + if (param_2 == 0) { + J3DModel* model = j3dSys.getModel(); + daNpcKasiKyu_c* i_this = (daNpcKasiKyu_c*)model->getUserArea(); + + if (i_this != NULL) { + i_this->ctrlJoint(i_joint, model); + } + } + + return 1; +} + +/* 80A224C8-80A22534 000BE8 006C+00 1/0 0/0 0/0 .text setParam__14daNpcKasiKyu_cFv */ +void daNpcKasiKyu_c::setParam() { + attention_info.distances[fopAc_attn_LOCK_e] = getDistTableIdx(daNpcKasiKyu_Param_c::m.common.attention_distance, daNpcKasiKyu_Param_c::m.common.attention_angle); + attention_info.distances[fopAc_attn_TALK_e] = attention_info.distances[fopAc_attn_LOCK_e]; + attention_info.distances[fopAc_attn_SPEAK_e] = getDistTableIdx(daNpcKasiKyu_Param_c::m.common.talk_distance, daNpcKasiKyu_Param_c::m.common.talk_angle); + attention_info.flags = 10; +} + +/* 80A26060-80A26064 000058 0004+00 1/2 0/0 0/0 .bss mTargetTag__14daNpcKasiKyu_c */ +daTagEscape_c* daNpcKasiKyu_c::mTargetTag; + +/* 80A26064-80A26068 00005C 0004+00 0/1 0/0 0/0 .bss mTargetTagDist__14daNpcKasiKyu_c */ +f32 daNpcKasiKyu_c::mTargetTagDist; + +/* 80A26068-80A2606C -00001 0004+00 2/3 0/0 0/0 .bss None */ +/* 80A26068 0002+00 data_80A26068 mWolfAngle__14daNpcKasiKyu_c */ +/* 80A2606A 0002+00 data_80A2606A None */ +s16 daNpcKasiKyu_c::mWolfAngle; + +/* 80A22534-80A227DC 000C54 02A8+00 1/0 0/0 0/0 .text main__14daNpcKasiKyu_cFv */ +BOOL daNpcKasiKyu_c::main() { + if (mSygnal >= 0) { + static daNpcKasiKyu_c::actionFunc sSygnalAct[20] = { + &daNpcKasiKyu_c::wait, + &daNpcKasiKyu_c::chace, + &daNpcKasiKyu_c::turn_link, + &daNpcKasiKyu_c::turn_home, + &daNpcKasiKyu_c::talk_dummy, + &daNpcKasiKyu_c::escape, + &daNpcKasiKyu_c::turn_center, + &daNpcKasiKyu_c::wait_dummy, + &daNpcKasiKyu_c::cheer, + &daNpcKasiKyu_c::chace_st, + &daNpcKasiKyu_c::kya, + &daNpcKasiKyu_c::iyan, + &daNpcKasiKyu_c::kya_stop, + &daNpcKasiKyu_c::iyan_look, + &daNpcKasiKyu_c::wait_dummy, + &daNpcKasiKyu_c::turn_hana, + NULL, + &daNpcKasiKyu_c::kya2, + &daNpcKasiKyu_c::kya_stop, + &daNpcKasiKyu_c::fear, + }; + setAction(sSygnalAct[mSygnal]); + } + + if (mAction) { + (this->*mAction)(NULL); + } + + playMotion(); + + return TRUE; +} + +/* 80A227DC-80A22984 000EFC 01A8+00 1/0 0/0 0/0 .text setAttnPos__14daNpcKasiKyu_cFv */ +void daNpcKasiKyu_c::setAttnPos() { + if (mLookMode == LOOK_RESET) { + for (int i = 0; i < 3; i++) { + mLookatAngle[i].setall(0); + } + } + + daNpcF_c::setMtx(); + lookat(); + + cXyz sp1c(10.0f, 15.0f, 0.0f); + + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(3)); + mDoMtx_stack_c::multVecZero(&mHeadPos); + mDoMtx_stack_c::multVec(&sp1c, &eyePos); + sp1c.x = 0.0f; + mDoMtx_stack_c::multVec(&sp1c, &sp1c); + + mHeadAngle.x = cLib_targetAngleX(&mHeadPos, &sp1c); + mHeadAngle.y = cLib_targetAngleY(&mHeadPos, &sp1c); + attention_info.position.set(mHeadPos.x, mHeadPos.y + daNpcKasiKyu_Param_c::m.common.attention_offset, mHeadPos.z); + + cXyz sp28; + + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(1)); + mDoMtx_stack_c::multVecZero(&sp28); + sp28.y = current.pos.y; + mCyl.SetC(sp28); + #ifdef DEBUG + mCyl.SetH(daNpcKasiKyu_Param_c::m.common.height); + mCyl.SetR(daNpcKasiKyu_Param_c::m.common.width); + #endif + dComIfG_Ccsp()->Set(&mCyl); +} + +/* 80A22984-80A22A54 0010A4 00D0+00 1/0 0/0 0/0 .text setMotionAnm__14daNpcKasiKyu_cFif */ +void daNpcKasiKyu_c::setMotionAnm(int i_index, f32 i_morf) { + J3DAnmTransformKey* i_anm = getTrnsfrmKeyAnmP(l_arcNames[l_bckGetParamList[i_index].arcIdx], l_bckGetParamList[i_index].fileIdx); + int i_attr = l_bckGetParamList[i_index].attr; + mAnmFlags &= 0xFFFFFFF6; + + if (i_anm != NULL && setMcaMorfAnm(i_anm, 1.0f, i_morf, i_attr, 0, -1)) { + mAnmFlags |= ANM_PLAY_MORF | ANM_PAUSE_MORF; + mMotionLoops = 0; + } +} + +/* 80A22A54-80A22A9C 001174 0048+00 1/0 0/0 0/0 .text setMotion__14daNpcKasiKyu_cFifi */ +void daNpcKasiKyu_c::setMotion(int i_motion, f32 i_morf, int param_3) { + s16 motion = i_motion; + if ((param_3 != 0 || mMotion != motion) && i_motion >= 0 && i_motion < 0xD) { + mMotion = motion; + mMotionMorfOverride = i_morf; + mMotionPrevPhase = -1; + mMotionPhase = 0; + field_0x143e = 0; + } +} + +/* 80A22A9C-80A22AA4 0011BC 0008+00 1/0 0/0 0/0 .text drawDbgInfo__14daNpcKasiKyu_cFv */ +BOOL daNpcKasiKyu_c::drawDbgInfo() { + return FALSE; +} + +/* 80A22AA4-80A22CD8 0011C4 0234+00 1/1 0/0 0/0 .text reset__14daNpcKasiKyu_cFv */ +void daNpcKasiKyu_c::reset() { + initialize(); + mLookat.initialize(); + + for (int i = 0; i < 1; i++) { + mActorMngr[i].initialize(); + } + + mPath.initialize(); + + if (mType == 0) { + mPath.setPathInfo(getRailNo(), fopAcM_GetRoomNo(this), 0); + mPath.setIdx(6); + } else if (mType == 1) { + fopAcM_OnStatus(this, fopAcM_STATUS_UNK_004000); + } + + field_0x1430 = 0; + field_0x1434 = 0; + mAction = NULL; + mLookMode = -1; + mMode = 0; + current.pos.set(home.pos); + old.pos.set(current.pos); + current.angle.set(0, home.angle.y, 0); + old.angle = current.angle; + shape_angle = current.angle; + mCurAngle = current.angle; + mOldAngle = mCurAngle; + speedF = 0.0f; + speed.setall(0.0f); + field_0x142c = fpcM_ERROR_PROCESS_ID_e; + mOrderEvtNo = 0; + + J3DAnmTexPattern* i_btp = getTexPtrnAnmP(l_arcNames[0], 7); + mAnmFlags &= 0xFFFFF57F; + + if (setBtpAnm(i_btp, mpMorf->getModel()->getModelData(), 1.0f, J3DFrameCtrl::EMode_LOOP)) { + mAnmFlags |= ANM_FLAG_800 | ANM_PLAY_BTP | ANM_PAUSE_BTP; + } + + mTalked = false; + mFear = false; + field_0x1465 = 0; + mEscape = false; + setAction(&daNpcKasiKyu_c::wait); + mMotionMorfOverride = 0.0f; +} + +/* 80A22CD8-80A2310C 0013F8 0434+00 1/1 0/0 0/0 .text playMotion__14daNpcKasiKyu_cFv */ +void daNpcKasiKyu_c::playMotion() { + daNpcF_anmPlayData dat0 = {ANM_MICH_KYA_TALK, daNpcKasiKyu_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat0[1] = {&dat0}; + daNpcF_anmPlayData dat1 = {ANM_MICH_IYAN_WAIT, daNpcKasiKyu_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat1[1] = {&dat1}; + daNpcF_anmPlayData dat2 = {ANM_MICH_OUEN_WAIT_A, daNpcKasiKyu_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat2[1] = {&dat2}; + daNpcF_anmPlayData dat3 = {ANM_MICH_OUEN_WAIT_B, daNpcKasiKyu_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat3[1] = {&dat3}; + daNpcF_anmPlayData dat4 = {ANM_W_WAIT_A, daNpcKasiKyu_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat4[1] = {&dat4}; + daNpcF_anmPlayData dat5 = {ANM_W_TALK_B, daNpcKasiKyu_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat5[1] = {&dat5}; + daNpcF_anmPlayData dat6 = {ANM_W_WALK_A, daNpcKasiKyu_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat6[1] = {&dat6}; + daNpcF_anmPlayData dat7 = {ANM_W_CELLME, daNpcKasiKyu_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat7[1] = {&dat7}; + daNpcF_anmPlayData dat8 = {ANM_W_RUN_A, daNpcKasiKyu_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat8[1] = {&dat8}; + daNpcF_anmPlayData dat9 = {ANM_W_TO_WOLF, daNpcKasiKyu_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat9[1] = {&dat9}; + daNpcF_anmPlayData dat10 = {ANM_W_SURPRISE, daNpcKasiKyu_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat10[1] = {&dat10}; + daNpcF_anmPlayData dat11a = {ANM_W_WAIT_A_2, daNpcKasiKyu_Param_c::m.common.morf_frame, 1}; + daNpcF_anmPlayData dat11b = {ANM_W_2LADYTALK_B, daNpcKasiKyu_Param_c::m.common.morf_frame, 1}; + daNpcF_anmPlayData dat11c = {ANM_W_TALK_B_2, daNpcKasiKyu_Param_c::m.common.morf_frame, 1}; + daNpcF_anmPlayData dat11d = {ANM_W_WAIT_A_2, daNpcKasiKyu_Param_c::m.common.morf_frame, 1}; + daNpcF_anmPlayData dat11e = {ANM_W_TALK_B, daNpcKasiKyu_Param_c::m.common.morf_frame, 1}; + daNpcF_anmPlayData dat11f = {ANM_W_2NORMALTALK_B, daNpcKasiKyu_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat11[6] = {&dat11a, &dat11b, &dat11c, &dat11d, &dat11e, &dat11f}; + daNpcF_anmPlayData dat12a = {ANM_W_2NORMALTALK_A, daNpcKasiKyu_Param_c::m.common.morf_frame, 1}; + daNpcF_anmPlayData dat12b = {ANM_W_WAIT_A, daNpcKasiKyu_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat12[2] = {&dat12a, &dat12b}; + + daNpcF_anmPlayData** ppDat[13] = { + pDat0, + pDat1, + pDat2, + pDat3, + pDat4, + pDat5, + pDat6, + pDat7, + pDat8, + pDat9, + pDat10, + pDat11, + pDat12 + }; + + if (mMotion >= 0 && mMotion < 0xD) { + field_0x143e = mMotionPhase; + + if (mMotion == MOT_W_WAIT_A_LOOP) { + playMotionAnmLoop(ppDat); + } else { + playMotionAnm(ppDat); + } + } +} + +/* 80A2310C-80A23284 00182C 0178+00 1/1 0/0 0/0 .text playMotionAnmLoop__14daNpcKasiKyu_cFPPPQ28daNpcF_c18daNpcF_anmPlayData */ +void daNpcKasiKyu_c::playMotionAnmLoop(daNpcF_c::daNpcF_anmPlayData*** i_data) { + daNpcF_anmPlayData* playData = NULL; + + if (i_data[mMotion] != NULL) { + playData = i_data[mMotion][mMotionPhase]; + } + + if (playData != NULL) { + if (mMotionPrevPhase == mMotionPhase) { + if (playData->numLoops > 0 && playData->numLoops <= mMotionLoops) { + mMotionPhase++; + playData = i_data[mMotion][mMotionPhase]; + } else if (playData->numLoops == 0 && mMotionLoops >= 1) { + mMotionPhase = 0; + playData = i_data[mMotion][mMotionPhase]; + } + } + + if (playData != NULL && mMotionPrevPhase != mMotionPhase) { + setMotionAnm(playData->idx, 0.0f); + f32 i_morf = playData->morf; + + if (mMotionPhase == 0) { + if (mMotion == MOT_W_WAIT_A_LOOP) { + i_morf = daNpcKasiKyu_Param_c::m.common.morf_frame; + } else if (0.0f <= mMotionMorfOverride) { + i_morf = mMotionMorfOverride; + } + } + + mExpressionMorf = 0.0f; + mpMorf->setMorf(i_morf); + } + } + + mMotionPrevPhase = mMotionPhase; +} + +/* 80A23284-80A2332C 0019A4 00A8+00 10/10 0/0 0/0 .text setAction__14daNpcKasiKyu_cFM14daNpcKasiKyu_cFPCvPvi_i */ +BOOL daNpcKasiKyu_c::setAction(actionFunc action) { + mMode = -1; + + if (mAction) { + (this->*mAction)(NULL); + } + + mMode = 0; + mAction = action; + + if (mAction) { + (this->*mAction)(NULL); + } + + return TRUE; +} + +/* 80A2332C-80A23350 001A4C 0024+00 8/8 0/0 0/0 .text setLookMode__14daNpcKasiKyu_cFi */ +void daNpcKasiKyu_c::setLookMode(int i_lookMode) { + if (i_lookMode >= 0 && i_lookMode < 4 && i_lookMode != mLookMode) { + mLookMode = i_lookMode; + } +} + +/* 80A23350-80A23530 001A70 01E0+00 1/1 0/0 0/0 .text lookat__14daNpcKasiKyu_cFv */ +void daNpcKasiKyu_c::lookat() { + daPy_py_c* player = NULL; + J3DModel* model = mpMorf->getModel(); + BOOL i_snap = FALSE; + f32 body_angleX_min = daNpcKasiKyu_Param_c::m.common.body_angleX_min; + f32 body_angleX_max = daNpcKasiKyu_Param_c::m.common.body_angleX_max; + f32 body_angleY_min = daNpcKasiKyu_Param_c::m.common.body_angleY_min; + f32 body_angleY_max = daNpcKasiKyu_Param_c::m.common.body_angleY_max; + f32 head_angleX_min = daNpcKasiKyu_Param_c::m.common.head_angleX_min; + f32 head_angleX_max = daNpcKasiKyu_Param_c::m.common.head_angleX_max; + f32 head_angleY_min = daNpcKasiKyu_Param_c::m.common.head_angleY_min; + f32 head_angleY_max = daNpcKasiKyu_Param_c::m.common.head_angleY_max; + s16 angle_delta = mCurAngle.y - mOldAngle.y; + cXyz lookatPos[3] = {mLookatPos[0], mLookatPos[1], mLookatPos[2]}; + csXyz* lookatAngle[3] = {&mLookatAngle[0], &mLookatAngle[1], &mLookatAngle[2]}; + cXyz spe8; + + switch (mLookMode) { + case LOOK_NONE: + break; + + case LOOK_RESET: + i_snap = TRUE; + break; + + case LOOK_PLAYER: + case LOOK_PLAYER_TALK: + player = daPy_getPlayerActorClass(); + + if (mLookMode != LOOK_PLAYER_TALK) { + break; + } + + head_angleY_min = -80.0f; + head_angleY_max = 80.0f; + break; + } + + if (player != NULL) { + mLookPos = player->attention_info.position; + + if (mLookMode != LOOK_PLAYER && mLookMode != LOOK_PLAYER_TALK) { + mLookPos.y -= 40.0f; + } + + mLookat.setAttnPos(&mLookPos); + } else { + mLookat.setAttnPos(NULL); + } + + mLookat.setParam(body_angleX_min, body_angleX_max, body_angleY_min, body_angleY_max, 0.0f, 0.0f, 0.0f, 0.0f, + head_angleX_min, head_angleX_max, head_angleY_min, head_angleY_max, mCurAngle.y, lookatPos); + mLookat.calc(this, model->getBaseTRMtx(), lookatAngle, i_snap, angle_delta, FALSE); +} + +/* 80A23530-80A23624 001C50 00F4+00 1/1 0/0 0/0 .text step__14daNpcKasiKyu_cFsi */ +BOOL daNpcKasiKyu_c::step(s16 i_targetAngle, int param_2) { + if (mTurnMode == 0) { + mTurnTargetAngle = i_targetAngle; + mTurnAmount = 0; + + if (mCurAngle.y == mTurnTargetAngle) { + mTurnMode++; + } + + current.angle.y = mCurAngle.y; + shape_angle.y = current.angle.y; + mTurnMode++; + } else if (mTurnMode == 1) { + if (daNpcF_c::turn(mTurnTargetAngle, 15.0f, 0)) { + shape_angle.y = current.angle.y; + mCurAngle.y = current.angle.y; + mOldAngle.y = current.angle.y; + mTurnMode++; + } else { + shape_angle.y = current.angle.y; + mCurAngle.y = current.angle.y; + } + } + + return mTurnMode > 1; +} + +/* 80A23624-80A23708 001D44 00E4+00 1/1 0/0 0/0 .text chkFindPlayer__14daNpcKasiKyu_cFv */ +BOOL daNpcKasiKyu_c::chkFindPlayer() { + if (!chkActorInSight(daPy_getPlayerActorClass(), daNpcKasiKyu_Param_c::m.common.fov)) { + mActorMngr[0].remove(); + return FALSE; + } + + bool rv; + if (mActorMngr[0].getActorP() == NULL) { + rv = chkPlayerInSpeakArea(this); + } else { + rv = chkPlayerInTalkArea(this); + } + + if (rv) { + mActorMngr[0].entry(daPy_getPlayerActorClass()); + } else { + mActorMngr[0].remove(); + } + + return rv; +} + +/* 80A23708-80A23AB4 001E28 03AC+00 8/0 0/0 0/0 .text wait__14daNpcKasiKyu_cFi */ +int daNpcKasiKyu_c::wait(int param_1) { + // NONMATCHING + switch (mMode) { + case -1: + break; + + case 0: + if (mType == 0 && !field_0x1465) { + setMotion(MOT_W_WAIT_A_LOOP, -1.0f, 0); + } else { + setMotion(MOT_W_WAIT_A, -1.0f, 0); + } + + speedF = 0.0f; + mMode = 1; + break; + + case 1: + chkFindPlayer(); + + if (mActorMngr[0].getActorP() != NULL) { + setLookMode(LOOK_PLAYER); + } else if (!fopAcM_isSwitch(this, 12) && !dComIfGp_event_runCheck()) { + setLookMode(LOOK_NONE); + if (home.angle.y != mCurAngle.y && step(home.angle.y, 1)) { + if (mType == 0 && !field_0x1465) { + setMotion(MOT_W_WAIT_A_LOOP, -1.0f, 0); + } else { + setMotion(MOT_W_WAIT_A, -1.0f, 0); + } + + mTurnMode = 0; + } + } + + /* dSv_event_flag_c::F_290 - Castle Town - Star Game 1 cleared */ + if (daNpcF_chkEvtBit(290) && field_0x1465 && mType == 0 && fopAcM_isSwitch(this, 12)) { + if (pl_front_check()) { + if (fopAcM_searchActorDistanceXZ(this, daPy_getPlayerActorClass()) >= 450.0f) { + setAction(&daNpcKasiKyu_c::chace); + return 1; + } + } else { + setAction(&daNpcKasiKyu_c::turn_link); + return 1; + } + } + + if (dComIfGp_event_runCheck()) { + if (eventInfo.checkCommandTalk()) { + if (!dComIfGp_event_chkTalkXY() || dComIfGp_evmng_ChkPresentEnd()) { + OS_REPORT("------------------kyu talk reset!!\n"); + + mTalked = true; + dComIfGp_event_reset(); + } + } + } else { + if (!dKy_darkworld_check()) { + if (daPy_py_c::checkNowWolf()) { + f32 fVar1 = pow(500.0, 2.0); + if (fopAcM_searchPlayerDistanceXZ2(this) < fVar1) { + mFear = true; + break; + } + } + } + + if (mOrderEvtNo != 0) { + eventInfo.setArchiveName(l_arcNames[0]); + } + + orderEvent(field_0x1469, l_evtNames[mOrderEvtNo], 0xFFFF, 40, 0xFF, 1); + } + break; + + default: + JUT_ASSERT(1296, 0); + break; + } + + return 1; +} + +/* 80A23AB4-80A23C90 0021D4 01DC+00 1/0 0/0 0/0 .text fear__14daNpcKasiKyu_cFi */ +int daNpcKasiKyu_c::fear(int param_1) { + switch (mMode) { + case -1: + break; + + case 0: { + daTagEscape_c* tagEscape_p = srchWolfTag(); + if (tagEscape_p != NULL) { + mPath.initialize(); + mPath.setPathInfo(tagEscape_p->getPathID(), fopAcM_GetRoomNo(this), 0); + mPath.setIdx(getWolfPathNearIdx()); + mMode = 1; + } + break; + } + + case 1: + if (_turn_to_link(0x1000)) { + setMotion(MOT_W_SURPRISE, -1.0f, 0); + mMode = 3; + } + break; + + case 3: + if (mpMorf->isStop()) { + setMotion(MOT_W_RUN_A, -1.0f, 0); + mSound.startCreatureVoice(Z2SE_KIU_V_FEAR, -1); + fopAcM_SetSpeedF(this, 15.0f); + mMode = 4; + } + break; + + case 4: { + cXyz sp28; + mpMorf->setPlaySpeed(1.5f); + + if (mPath.getDstPos(current.pos, sp28)) { + mEscape = true; + mMode = -1; + } else { + _turn_pos(sp28, 800); + } + break; + } + } + + return 1; +} + +/* 80A23C90-80A23CF8 0023B0 0068+00 1/1 0/0 0/0 .text srchWolfTag__14daNpcKasiKyu_cFv */ +daTagEscape_c* daNpcKasiKyu_c::srchWolfTag() { + mTargetTag = NULL; + mWolfAngle = fopAcM_searchPlayerAngleY(this); + fpcM_Search(_srch_escape_tag, this); + return mTargetTag; +} + +/* 80A23CF8-80A23DC8 002418 00D0+00 1/1 0/0 0/0 .text _srch_escape_tag__14daNpcKasiKyu_cFPvPv */ +void* daNpcKasiKyu_c::_srch_escape_tag(void* i_actor, void* i_data) { + if (!fopAcM_IsActor(i_actor)) { + return NULL; + } + + if (fopAcM_GetName(i_actor) != PROC_Tag_Escape) { + return NULL; + } + + int iVar1 = cLib_distanceAngleS(mWolfAngle, fopAcM_searchActorAngleY((fopAc_ac_c*)i_data, (fopAc_ac_c*)i_actor)); + + if (mTargetTag == NULL) { + mTargetTagDist = fopAcM_searchActorDistanceXZ2((fopAc_ac_c*)i_data, (fopAc_ac_c*)i_actor); + mTargetTag = (daTagEscape_c*)i_actor; + return NULL; + } + + if (iVar1 > 0x4000) { + f32 fVar1 = fopAcM_searchActorDistanceXZ2((fopAc_ac_c*)i_data, (fopAc_ac_c*)i_actor); + if (fVar1 < mTargetTagDist) { + mTargetTagDist = fVar1; + mTargetTag = (daTagEscape_c*)i_actor; + } + } + + return NULL; +} + +/* 80A23DC8-80A23EFC 0024E8 0134+00 1/1 0/0 0/0 .text getWolfPathNearIdx__14daNpcKasiKyu_cFv */ +int daNpcKasiKyu_c::getWolfPathNearIdx() { + int iVar1 = 0; + f32 fVar1 = 0.0f; + u16 numPnts = mPath.getNumPnts(); + cXyz sp44, sp50; + + int rv = 0; + for (; rv < numPnts; rv++) { + sp44 = mPath.getPntPos(rv); + sp50 = sp44 - current.pos; + f32 fVar2 = sp50.abs2XZ(); + + if (rv == 0) { + fVar1 = fVar2; + iVar1 = 0; + } else if (fVar2 < fVar1) { + fVar1 = fVar2; + iVar1 = rv; + } + } + + rv = iVar1 + 1; + + if (iVar1 == numPnts) { + rv = iVar1; + } + + return rv; +} + +/* 80A23EFC-80A23FA0 00261C 00A4+00 2/0 0/0 0/0 .text chace_st__14daNpcKasiKyu_cFi */ +int daNpcKasiKyu_c::chace_st(int param_1) { + // NONMATCHING + switch (mMode) { + case -1: + break; + + case 0: + fopAcM_SetSpeedF(this, 0.0f); + field_0x1465 = true; + mMode = 1; + break; + + case 1: + if (_turn_to_link(0xC00)) { + setAction(&daNpcKasiKyu_c::chace); + } + break; + } + + return 1; +} + +/* 80A23FA0-80A24110 0026C0 0170+00 4/0 0/0 0/0 .text chace__14daNpcKasiKyu_cFi */ +int daNpcKasiKyu_c::chace(int param_1) { + // NONMATCHING + switch (mMode) { + case -1: + break; + + case 0: + setMotion(MOT_W_RUN_A, -1.0f, 0); + setLookMode(LOOK_NONE); + fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f); + fopAcM_SetSpeedF(this, 14.0f); + field_0x1465 = 1; + mMode = 1; + break; + + case 1: + cXyz chacePos = getChacePos(); + _turn_pos(chacePos, 0x800); + + if (pl_front_check()) { + if (fopAcM_searchActorDistanceXZ(this, daPy_getPlayerActorClass()) < 400.0f) { + setAction(&daNpcKasiKyu_c::wait); + } + } else { + setAction(&daNpcKasiKyu_c::chace_st); + } + break; + } + + return 1; +} + +/* 80A24110-80A241CC 002830 00BC+00 1/1 0/0 0/0 .text getChacePos__14daNpcKasiKyu_cFv */ +cXyz daNpcKasiKyu_c::getChacePos() { + int plPoint = mPlPoint; + int idx = mPath.getIdx(); + + if (idx == plPoint) { + return *fopAcM_GetPosition_p(daPy_getPlayerActorClass()); + } + + if (idx < plPoint) { + mPath.offReverse(); + } else if (idx > plPoint) { + mPath.onReverse(); + } + + cXyz chacePos; + mPath.getDstPos(current.pos, chacePos); + + return chacePos; +} + +/* 80A241CC-80A2428C 0028EC 00C0+00 2/0 0/0 0/0 .text turn_link__14daNpcKasiKyu_cFi */ +int daNpcKasiKyu_c::turn_link(int param_1) { + // NONMATCHING + switch (mMode) { + case -1: + break; + + case 0: + setMotion(MOT_W_WAIT_A, -1.0f, 0); + speedF = 0.0f; + mMode = 1; + break; + + case 1: + if (_turn_to_link(0x1000)) { + setAction(&daNpcKasiKyu_c::wait); + break; + } + } + + return 1; +} + +/* 80A2428C-80A24370 0029AC 00E4+00 1/0 0/0 0/0 .text turn_home__14daNpcKasiKyu_cFi */ +int daNpcKasiKyu_c::turn_home(int param_1) { + // NONMATCHING + switch (mMode) { + case -1: + break; + + case 0: + setLookMode(LOOK_NONE); + setMotion(MOT_W_WAIT_A, -1.0f, 0); + speedF = 0.0f; + mMode = 1; + break; + + case 1: + BOOL bVar1 = cLib_chaseAngleS(&mCurAngle.y, home.angle.y, 0x1000); + current.angle.y = mCurAngle.y; + shape_angle.y = current.angle.y; + + if (bVar1) { + setAction(&daNpcKasiKyu_c::wait_dummy); + } + break; + } + + return 1; +} + +/* 80A24370-80A24440 002A90 00D0+00 1/0 0/0 0/0 .text turn_center__14daNpcKasiKyu_cFi */ +int daNpcKasiKyu_c::turn_center(int param_1) { + // NONMATCHING + switch (mMode) { + case -1: + break; + + case 0: + setLookMode(LOOK_NONE); + setMotion(MOT_W_WAIT_A, -1.0f, 0); + speedF = 0.0f; + mMode = 1; + break; + + case 1: + if (_turn_pos(mCenterPos, 0x1000)) { + setAction(&daNpcKasiKyu_c::wait_dummy); + } + break; + } + + return 1; +} + +/* 80A24440-80A244B8 002B60 0078+00 1/0 0/0 0/0 .text talk_dummy__14daNpcKasiKyu_cFi */ +int daNpcKasiKyu_c::talk_dummy(int param_1) { + switch (mMode) { + case -1: + break; + + case 0: + setMotion(MOT_MICH_KYA_TALK, -1.0f, 0); + speedF = 0.0f; + mMode = 1; + break; + + case 1: + break; + } + + return 1; +} + +/* 80A244B8-80A24590 002BD8 00D8+00 1/0 0/0 0/0 .text kya__14daNpcKasiKyu_cFi */ +int daNpcKasiKyu_c::kya(int param_1) { + switch (mMode) { + case -1: + break; + + case 0: + setMotion(MOT_MICH_KYA_TALK, -1.0f, 0); + speedF = 0.0f; + mpMorf->setPlaySpeed(0.0f); + field_0x1460 = 8; + mMode = 1; + break; + + case 1: + if (field_0x1460 > 0) { + field_0x1460--; + + if (field_0x1460 == 0) { + mpMorf->setPlaySpeed(1.0f); + } else { + mpMorf->setPlaySpeed(0.0f); + } + } + break; + } + + return 1; +} + +/* 80A24590-80A24628 002CB0 0098+00 1/0 0/0 0/0 .text kya2__14daNpcKasiKyu_cFi */ +int daNpcKasiKyu_c::kya2(int param_1) { + switch (mMode) { + case -1: + break; + + case 0: + setMotion(MOT_MICH_KYA_TALK, -1.0f, 0); + setLookMode(LOOK_NONE); + speedF = 0.0f; + mpMorf->setPlaySpeed(1.0f); + mMode = 1; + break; + + case 1: + break; + } + + return 1; +} + +/* 80A24628-80A246FC 002D48 00D4+00 2/0 0/0 0/0 .text kya_stop__14daNpcKasiKyu_cFi */ +int daNpcKasiKyu_c::kya_stop(int param_1) { + // NONMATCHING + switch (mMode) { + case -1: + break; + + case 0: + if (mMotion != MOT_MICH_KYA_TALK) { + setAction(&daNpcKasiKyu_c::wait); + } else { + mMode = 1; + } + break; + + case 1: + if (mpMorf->getFrame() == 19.0f || mpMorf->getFrame() == 1.0f) { + setAction(&daNpcKasiKyu_c::wait_dummy); + } + break; + } + + return 1; +} + +/* 80A246FC-80A24774 002E1C 0078+00 1/0 0/0 0/0 .text iyan__14daNpcKasiKyu_cFi */ +int daNpcKasiKyu_c::iyan(int param_1) { + switch (mMode) { + case -1: + break; + + case 0: + setMotion(MOT_MICH_IYAN_WAIT, -1.0f, 0); + speedF = 0.0f; + mMode = 1; + break; + + case 1: + break; + } + + return 1; +} + +/* 80A24774-80A2484C 002E94 00D8+00 1/0 0/0 0/0 .text iyan_look__14daNpcKasiKyu_cFi */ +int daNpcKasiKyu_c::iyan_look(int param_1) { + // NONMATCHING + switch (mMode) { + case -1: + break; + + case 0: + setMotion(MOT_MICH_IYAN_WAIT, -1.0f, 0); + speedF = 0.0f; + setLookMode(LOOK_NONE); + field_0x1460 = 86; + mMode = 1; + break; + + case 1: + field_0x1460--; + if (field_0x1460 == 0) { + setAction(&daNpcKasiKyu_c::wait_dummy); + } + break; + } + + return 1; +} + +/* 80A2484C-80A2493C 002F6C 00F0+00 1/0 0/0 0/0 .text turn_hana__14daNpcKasiKyu_cFi */ +int daNpcKasiKyu_c::turn_hana(int param_1) { + switch (mMode) { + case -1: + break; + + case 0: + setMotion(MOT_W_WAIT_A, -1.0f, 0); + speedF = 0.0f; + setLookMode(LOOK_NONE); + mMode = 1; + break; + + case 1: { + cXyz pos(-3200.0f, 0.0f, 1500.0f); + if (_turn_pos(pos, 0x800)) { + setMotion(MOT_W_2NORMALTALK_A, -1.0f, 0); + mMode = 2; + } + break; + } + + case 2: + break; + } + + return 1; +} + +/* 80A2493C-80A24A54 00305C 0118+00 1/0 0/0 0/0 .text escape__14daNpcKasiKyu_cFi */ +int daNpcKasiKyu_c::escape(int param_1) { + switch (mMode) { + case -1: + break; + + case 0: + setMotion(MOT_W_RUN_A, -1.0f, 0); + fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f); + fopAcM_SetSpeedF(this, 0.0f); + field_0x1430 = daNpcKasiKyu_Param_c::m.escape_time; + mMode = 1; + break; + + case 1: + if (--field_0x1430 <= 0) { + fopAcM_SetSpeedF(this, daNpcKasiKyu_Param_c::m.escape_spd); + mSound.startCreatureVoice(Z2SE_KIU_V_FEAR, -1); + mMode = 2; + } + break; + + case 2: + _turn_pos(mChacePos, 0x1000); + mpMorf->setPlaySpeed(1.75f); + break; + } + + return 1; +} + +/* 80A24A54-80A24AD8 003174 0084+00 6/0 0/0 0/0 .text wait_dummy__14daNpcKasiKyu_cFi */ +int daNpcKasiKyu_c::wait_dummy(int param_1) { + switch (mMode) { + case -1: + break; + + case 0: + setMotion(MOT_W_WAIT_A, -1.0f, 0); + fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f); + fopAcM_SetSpeedF(this, 0.0f); + mMode = 1; + break; + + case 1: + break; + } + + return 1; +} + +/* 80A24AD8-80A24CC4 0031F8 01EC+00 1/0 0/0 0/0 .text cheer__14daNpcKasiKyu_cFi */ +int daNpcKasiKyu_c::cheer(int param_1) { + // NONMATCHING + switch (mMode) { + case -1: + break; + + case 0: + /* dSv_event_flag_c::F_290 - Castle Town - Star Game 1 cleared */ + if (daNpcF_chkEvtBit(290)) { + setMotion(MOT_MICH_OUEN_WAIT_B, -1.0f, 0); + } else { + setMotion(MOT_MICH_OUEN_WAIT_A, -1.0f, 0); + } + + setLookMode(LOOK_PLAYER); + fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f); + fopAcM_SetSpeedF(this, 0.0f); + mpMorf->setPlaySpeed(0.0f); + mTalked = false; + field_0x1460 = 20; + mMode = 1; + break; + + case 1: + if (field_0x1460 > 0) { + field_0x1460--; + + if (field_0x1460 == 0) { + mpMorf->setPlaySpeed(1.0f); + } else { + mpMorf->setPlaySpeed(0.0f); + } + } + + cLib_chaseAngleS(&mCurAngle.y, home.angle.y, 0x400); + current.angle.y = mCurAngle.y; + shape_angle.y = mCurAngle.y; + + if (dComIfGp_event_runCheck()) { + if (eventInfo.checkCommandTalk()) { + if (!dComIfGp_event_chkTalkXY() || dComIfGp_evmng_ChkPresentEnd()) { + mTalked = true; + dComIfGp_event_reset(); + } + } + } else { + orderEvent(field_0x1469, l_evtNames[mOrderEvtNo], 0xFFFF, 4, 0xFF, 2); + } + break; + } + + return 1; +} + +/* 80A24CC4-80A24D10 0033E4 004C+00 3/3 0/0 0/0 .text _turn_to_link__14daNpcKasiKyu_cFs */ +BOOL daNpcKasiKyu_c::_turn_to_link(s16 param_1) { + cXyz pos(*fopAcM_GetPosition_p(daPy_getPlayerActorClass())); + return _turn_pos(pos, param_1); +} + +/* 80A24D10-80A24D6C 003430 005C+00 6/6 0/0 0/0 .text _turn_pos__14daNpcKasiKyu_cFRC4cXyzs */ +BOOL daNpcKasiKyu_c::_turn_pos(cXyz const& param_1, s16 param_2) { + BOOL rv = cLib_chaseAngleS(&mCurAngle.y, cLib_targetAngleY(¤t.pos, ¶m_1), param_2); + current.angle.y = mCurAngle.y; + shape_angle.y = mCurAngle.y; + return rv; +} + +/* 80A24D6C-80A24E44 00348C 00D8+00 2/2 0/0 0/0 .text actor_front_check__14daNpcKasiKyu_cFP10fopAc_ac_c */ +BOOL daNpcKasiKyu_c::actor_front_check(fopAc_ac_c* actor_p) { + if (actor_p == NULL) { + return TRUE; + } + + cXyz sp24(*fopAcM_GetPosition_p(actor_p)); + cXyz sp30(sp24 - current.pos); + cXyz sp3c(0.0f, 0.0f, 1.0f); + cXyz sp48; + _getOffset(sp3c, sp48); + + return (sp30.x * sp48.x + sp30.z * sp48.z) >= 0.0f; +} + +/* 80A24E44-80A24EB0 003564 006C+00 1/1 0/0 0/0 .text _getOffset__14daNpcKasiKyu_cFRC4cXyzR4cXyz */ +void daNpcKasiKyu_c::_getOffset(cXyz const& param_1, cXyz& param_2) { + param_2 = param_1; + csXyz angle(*fopAcM_GetShapeAngle_p(this)); + mDoMtx_stack_c::ZXYrotS(angle); + mDoMtx_stack_c::multVec(¶m_2, ¶m_2); +} + +/* 80A24EB0-80A24ED0 0035D0 0020+00 1/0 0/0 0/0 .text daNpcKasiKyu_Create__FPv */ +static int daNpcKasiKyu_Create(void* a_this) { + return static_cast(a_this)->Create(); +} + +/* 80A24ED0-80A24EF0 0035F0 0020+00 1/0 0/0 0/0 .text daNpcKasiKyu_Delete__FPv */ +static int daNpcKasiKyu_Delete(void* a_this) { + return static_cast(a_this)->Delete(); +} + +/* 80A24EF0-80A24F10 003610 0020+00 1/0 0/0 0/0 .text daNpcKasiKyu_Execute__FPv */ +static int daNpcKasiKyu_Execute(void* a_this) { + return static_cast(a_this)->Execute(); +} + +/* 80A24F10-80A24F30 003630 0020+00 1/0 0/0 0/0 .text daNpcKasiKyu_Draw__FPv */ +static int daNpcKasiKyu_Draw(void* a_this) { + return static_cast(a_this)->Draw(); +} + +/* 80A24F30-80A24F38 003650 0008+00 1/0 0/0 0/0 .text daNpcKasiKyu_IsDelete__FPv */ +static int daNpcKasiKyu_IsDelete(void* a_this) { + return 1; +} + +AUDIO_INSTANCES; /* 80A25EC4-80A25EE4 -00001 0020+00 1/0 0/0 0/0 .data daNpcKasiKyu_MethodTable */ static actor_method_class daNpcKasiKyu_MethodTable = { - (process_method_func)daNpcKasiKyu_Create__FPv, - (process_method_func)daNpcKasiKyu_Delete__FPv, - (process_method_func)daNpcKasiKyu_Execute__FPv, - (process_method_func)daNpcKasiKyu_IsDelete__FPv, - (process_method_func)daNpcKasiKyu_Draw__FPv, + (process_method_func)daNpcKasiKyu_Create, + (process_method_func)daNpcKasiKyu_Delete, + (process_method_func)daNpcKasiKyu_Execute, + (process_method_func)daNpcKasiKyu_IsDelete, + (process_method_func)daNpcKasiKyu_Draw, }; /* 80A25EE4-80A25F14 -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_KASIKYU */ @@ -650,1293 +1479,3 @@ extern actor_process_profile_definition g_profile_NPC_KASIKYU = { fopAc_NPC_e, // mActorType fopAc_CULLBOX_CUSTOM_e, // cullType }; - -/* 80A25F14-80A25F5C 0003F0 0048+00 2/2 0/0 0/0 .data __vt__14daNpcKasiKyu_c */ -SECTION_DATA extern void* __vt__14daNpcKasiKyu_c[18] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__14daNpcKasiKyu_cFv, - (void*)setParam__14daNpcKasiKyu_cFv, - (void*)main__14daNpcKasiKyu_cFv, - (void*)ctrlBtk__8daNpcF_cFv, - (void*)adjustShapeAngle__14daNpcKasiKyu_cFv, - (void*)setMtx__8daNpcF_cFv, - (void*)setMtx2__8daNpcF_cFv, - (void*)setAttnPos__14daNpcKasiKyu_cFv, - (void*)setCollisions__8daNpcF_cFv, - (void*)setExpressionAnm__8daNpcF_cFib, - (void*)setExpressionBtp__8daNpcF_cFi, - (void*)setExpression__8daNpcF_cFif, - (void*)setMotionAnm__14daNpcKasiKyu_cFif, - (void*)setMotion__14daNpcKasiKyu_cFifi, - (void*)drawDbgInfo__14daNpcKasiKyu_cFv, - (void*)drawOtherMdls__8daNpcF_cFv, -}; - -/* 80A25F5C-80A25F68 000438 000C+00 3/3 0/0 0/0 .data __vt__12J3DFrameCtrl */ -SECTION_DATA extern void* __vt__12J3DFrameCtrl[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12J3DFrameCtrlFv, -}; - -/* 80A25F68-80A25F8C 000444 0024+00 3/3 0/0 0/0 .data __vt__12dBgS_ObjAcch */ -SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12dBgS_ObjAcchFv, - (void*)NULL, - (void*)NULL, - (void*)func_80A2589C, - (void*)NULL, - (void*)NULL, - (void*)func_80A25894, -}; - -/* 80A25F8C-80A25F98 000468 000C+00 3/3 0/0 0/0 .data __vt__10cCcD_GStts */ -SECTION_DATA extern void* __vt__10cCcD_GStts[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10cCcD_GSttsFv, -}; - -/* 80A25F98-80A25FA4 000474 000C+00 2/2 0/0 0/0 .data __vt__10dCcD_GStts */ -SECTION_DATA extern void* __vt__10dCcD_GStts[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10dCcD_GSttsFv, -}; - -/* 80A25FA4-80A25FB0 000480 000C+00 2/2 0/0 0/0 .data __vt__12dBgS_AcchCir */ -SECTION_DATA extern void* __vt__12dBgS_AcchCir[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12dBgS_AcchCirFv, -}; - -/* 80A25FB0-80A25FBC 00048C 000C+00 4/4 0/0 0/0 .data __vt__18daNpcF_ActorMngr_c */ -SECTION_DATA extern void* __vt__18daNpcF_ActorMngr_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__18daNpcF_ActorMngr_cFv, -}; - -/* 80A25FBC-80A25FC8 000498 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGCyl */ -SECTION_DATA extern void* __vt__8cM3dGCyl[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGCylFv, -}; - -/* 80A25FC8-80A25FD4 0004A4 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGAab */ -SECTION_DATA extern void* __vt__8cM3dGAab[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGAabFv, -}; - -/* 80A25FD4-80A25FE0 0004B0 000C+00 4/4 0/0 0/0 .data __vt__16daNpcF_SPCurve_c */ -SECTION_DATA extern void* __vt__16daNpcF_SPCurve_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__16daNpcF_SPCurve_cFv, -}; - -/* 80A25FE0-80A25FEC 0004BC 000C+00 3/3 0/0 0/0 .data __vt__13daNpcF_Path_c */ -SECTION_DATA extern void* __vt__13daNpcF_Path_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__13daNpcF_Path_cFv, -}; - -/* 80A25FEC-80A25FF8 0004C8 000C+00 3/3 0/0 0/0 .data __vt__15daNpcF_Lookat_c */ -SECTION_DATA extern void* __vt__15daNpcF_Lookat_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__15daNpcF_Lookat_cFv, -}; - -/* 80A219CC-80A21B84 0000EC 01B8+00 1/1 0/0 0/0 .text __ct__14daNpcKasiKyu_cFv */ -daNpcKasiKyu_c::daNpcKasiKyu_c() { - // NONMATCHING -} - -/* 80A21B84-80A21BCC 0002A4 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */ -// cM3dGCyl::~cM3dGCyl() { -extern "C" void __dt__8cM3dGCylFv() { - // NONMATCHING -} - -/* 80A21BCC-80A21C14 0002EC 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -// cM3dGAab::~cM3dGAab() { -extern "C" void __dt__8cM3dGAabFv() { - // NONMATCHING -} - -/* 80A21C14-80A21E24 000334 0210+00 1/0 0/0 0/0 .text __dt__14daNpcKasiKyu_cFv */ -daNpcKasiKyu_c::~daNpcKasiKyu_c() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A258B8-80A2592C 000000 0074+00 18/18 0/0 0/0 .rodata m__20daNpcKasiKyu_Param_c */ -SECTION_RODATA u8 const daNpcKasiKyu_Param_c::m[116] = { - 0x42, 0x5C, 0x00, 0x00, 0xC0, 0x40, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x43, 0xFA, 0x00, - 0x00, 0x43, 0x58, 0x00, 0x00, 0x43, 0x0C, 0x00, 0x00, 0x42, 0x0C, 0x00, 0x00, 0x41, 0xF0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0xC1, - 0x20, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00, 0xC1, 0x20, 0x00, 0x00, 0x42, 0x34, 0x00, 0x00, - 0xC2, 0x34, 0x00, 0x00, 0x3F, 0x19, 0x99, 0x9A, 0x41, 0x40, 0x00, 0x00, 0x00, 0x02, 0x00, - 0x06, 0x00, 0x03, 0x00, 0x06, 0x42, 0x70, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, 0x43, 0x96, - 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x41, 0x80, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A258B8, &daNpcKasiKyu_Param_c::m); - -/* 80A2592C-80A25930 000074 0004+00 0/1 0/0 0/0 .rodata @4197 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4197 = -60.0f; -COMPILER_STRIP_GATE(0x80A2592C, &lit_4197); -#pragma pop - -/* 80A25930-80A25934 000078 0004+00 0/1 0/0 0/0 .rodata @4198 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4198 = -10.0f; -COMPILER_STRIP_GATE(0x80A25930, &lit_4198); -#pragma pop - -/* 80A25934-80A25938 00007C 0004+00 0/1 0/0 0/0 .rodata @4199 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4199 = 60.0f; -COMPILER_STRIP_GATE(0x80A25934, &lit_4199); -#pragma pop - -/* 80A25938-80A2593C 000080 0004+00 0/1 0/0 0/0 .rodata @4200 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4200 = 220.0f; -COMPILER_STRIP_GATE(0x80A25938, &lit_4200); -#pragma pop - -/* 80A21E24-80A220A0 000544 027C+00 1/1 0/0 0/0 .text Create__14daNpcKasiKyu_cFv */ -void daNpcKasiKyu_c::Create() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A2593C-80A25940 000084 0004+00 4/8 0/0 0/0 .rodata @4247 */ -SECTION_RODATA static f32 const lit_4247 = 1.0f; -COMPILER_STRIP_GATE(0x80A2593C, &lit_4247); - -/* 80A25940-80A25944 000088 0004+00 0/1 0/0 0/0 .rodata @4248 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_4248 = 0x3F5CF29A; -COMPILER_STRIP_GATE(0x80A25940, &lit_4248); -#pragma pop - -/* 80A25944-80A25948 00008C 0004+00 7/16 0/0 0/0 .rodata @4249 */ -SECTION_RODATA static f32 const lit_4249 = -1.0f; -COMPILER_STRIP_GATE(0x80A25944, &lit_4249); - -/* 80A220A0-80A22224 0007C0 0184+00 1/1 0/0 0/0 .text CreateHeap__14daNpcKasiKyu_cFv */ -void daNpcKasiKyu_c::CreateHeap() { - // NONMATCHING -} - -/* 80A22224-80A22258 000944 0034+00 1/1 0/0 0/0 .text Delete__14daNpcKasiKyu_cFv */ -void daNpcKasiKyu_c::Delete() { - // NONMATCHING -} - -/* 80A22258-80A22284 000978 002C+00 2/2 0/0 0/0 .text Execute__14daNpcKasiKyu_cFv */ -void daNpcKasiKyu_c::Execute() { - // NONMATCHING -} - -/* 80A22284-80A222D0 0009A4 004C+00 1/1 0/0 0/0 .text Draw__14daNpcKasiKyu_cFv */ -void daNpcKasiKyu_c::Draw() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A25948-80A25954 000090 000C+00 1/1 0/0 0/0 .rodata @4270 */ -SECTION_RODATA static u8 const lit_4270[12] = { - 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, -}; -COMPILER_STRIP_GATE(0x80A25948, &lit_4270); - -/* 80A222D0-80A2245C 0009F0 018C+00 1/1 0/0 0/0 .text - * ctrlJoint__14daNpcKasiKyu_cFP8J3DJointP8J3DModel */ -void daNpcKasiKyu_c::ctrlJoint(J3DJoint* param_0, J3DModel* param_1) { - // NONMATCHING -} - -/* 80A2245C-80A2247C 000B7C 0020+00 1/1 0/0 0/0 .text - * createHeapCallBack__14daNpcKasiKyu_cFP10fopAc_ac_c */ -void daNpcKasiKyu_c::createHeapCallBack(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* 80A2247C-80A224C8 000B9C 004C+00 1/1 0/0 0/0 .text - * ctrlJointCallBack__14daNpcKasiKyu_cFP8J3DJointi */ -void daNpcKasiKyu_c::ctrlJointCallBack(J3DJoint* param_0, int param_1) { - // NONMATCHING -} - -/* 80A224C8-80A22534 000BE8 006C+00 1/0 0/0 0/0 .text setParam__14daNpcKasiKyu_cFv */ -void daNpcKasiKyu_c::setParam() { - // NONMATCHING -} - -/* 80A26050-80A2605C 000048 000C+00 1/1 0/0 0/0 .bss @3807 */ -static u8 lit_3807[12]; - -/* 80A2605C-80A26060 000054 0004+00 1/1 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[4]; - -/* 80A26060-80A26064 000058 0004+00 1/2 0/0 0/0 .bss mTargetTag__14daNpcKasiKyu_c */ -u8 daNpcKasiKyu_c::mTargetTag[4]; - -/* 80A26064-80A26068 00005C 0004+00 0/1 0/0 0/0 .bss mTargetTagDist__14daNpcKasiKyu_c */ -#pragma push -#pragma force_active on -u8 daNpcKasiKyu_c::mTargetTagDist[4]; -#pragma pop - -/* 80A26068-80A2606C -00001 0004+00 2/3 0/0 0/0 .bss None */ -/* 80A26068 0002+00 data_80A26068 mWolfAngle__14daNpcKasiKyu_c */ -/* 80A2606A 0002+00 data_80A2606A None */ -static u8 struct_80A26068[4]; - -/* 80A22534-80A227DC 000C54 02A8+00 1/0 0/0 0/0 .text main__14daNpcKasiKyu_cFv */ -void daNpcKasiKyu_c::main() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A25954-80A25958 00009C 0004+00 0/1 0/0 0/0 .rodata @4447 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4447 = 10.0f; -COMPILER_STRIP_GATE(0x80A25954, &lit_4447); -#pragma pop - -/* 80A25958-80A2595C 0000A0 0004+00 1/3 0/0 0/0 .rodata @4448 */ -SECTION_RODATA static f32 const lit_4448 = 15.0f; -COMPILER_STRIP_GATE(0x80A25958, &lit_4448); - -/* 80A2595C-80A25960 0000A4 0004+00 12/22 0/0 0/0 .rodata @4449 */ -SECTION_RODATA static u8 const lit_4449[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A2595C, &lit_4449); - -/* 80A227DC-80A22984 000EFC 01A8+00 1/0 0/0 0/0 .text setAttnPos__14daNpcKasiKyu_cFv */ -void daNpcKasiKyu_c::setAttnPos() { - // NONMATCHING -} - -/* 80A22984-80A22A54 0010A4 00D0+00 1/0 0/0 0/0 .text setMotionAnm__14daNpcKasiKyu_cFif - */ -bool daNpcKasiKyu_c::setMotionAnm(int param_0, f32 param_1) { - // NONMATCHING -} - -/* 80A22A54-80A22A9C 001174 0048+00 1/0 0/0 0/0 .text setMotion__14daNpcKasiKyu_cFifi */ -void daNpcKasiKyu_c::setMotion(int param_0, f32 param_1, int param_2) { - // NONMATCHING -} - -/* 80A22A9C-80A22AA4 0011BC 0008+00 1/0 0/0 0/0 .text drawDbgInfo__14daNpcKasiKyu_cFv */ -bool daNpcKasiKyu_c::drawDbgInfo() { - return false; -} - -/* 80A22AA4-80A22CD8 0011C4 0234+00 1/1 0/0 0/0 .text reset__14daNpcKasiKyu_cFv */ -void daNpcKasiKyu_c::reset() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A25960-80A2596C 0000A8 000C+00 0/1 0/0 0/0 .rodata @4534 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4534[12] = { - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A25960, &lit_4534); -#pragma pop - -/* 80A2596C-80A25970 0000B4 0004+00 0/1 0/0 0/0 .rodata @4535 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4535[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A2596C, &lit_4535); -#pragma pop - -/* 80A25970-80A2597C 0000B8 000C+00 0/1 0/0 0/0 .rodata @4536 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4536[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A25970, &lit_4536); -#pragma pop - -/* 80A2597C-80A25980 0000C4 0004+00 0/1 0/0 0/0 .rodata @4537 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4537[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A2597C, &lit_4537); -#pragma pop - -/* 80A25980-80A2598C 0000C8 000C+00 0/1 0/0 0/0 .rodata @4538 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4538[12] = { - 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A25980, &lit_4538); -#pragma pop - -/* 80A2598C-80A25990 0000D4 0004+00 0/1 0/0 0/0 .rodata @4539 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4539[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A2598C, &lit_4539); -#pragma pop - -/* 80A25990-80A2599C 0000D8 000C+00 0/1 0/0 0/0 .rodata @4540 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4540[12] = { - 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A25990, &lit_4540); -#pragma pop - -/* 80A2599C-80A259A0 0000E4 0004+00 0/1 0/0 0/0 .rodata @4541 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4541[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A2599C, &lit_4541); -#pragma pop - -/* 80A259A0-80A259AC 0000E8 000C+00 0/1 0/0 0/0 .rodata @4542 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4542[12] = { - 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A259A0, &lit_4542); -#pragma pop - -/* 80A259AC-80A259B0 0000F4 0004+00 0/1 0/0 0/0 .rodata @4543 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4543[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A259AC, &lit_4543); -#pragma pop - -/* 80A259B0-80A259BC 0000F8 000C+00 0/1 0/0 0/0 .rodata @4544 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4544[12] = { - 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A259B0, &lit_4544); -#pragma pop - -/* 80A259BC-80A259C0 000104 0004+00 0/1 0/0 0/0 .rodata @4545 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4545[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A259BC, &lit_4545); -#pragma pop - -/* 80A259C0-80A259CC 000108 000C+00 0/1 0/0 0/0 .rodata @4546 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4546[12] = { - 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A259C0, &lit_4546); -#pragma pop - -/* 80A259CC-80A259D0 000114 0004+00 0/1 0/0 0/0 .rodata @4547 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4547[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A259CC, &lit_4547); -#pragma pop - -/* 80A259D0-80A259DC 000118 000C+00 0/1 0/0 0/0 .rodata @4548 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4548[12] = { - 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A259D0, &lit_4548); -#pragma pop - -/* 80A259DC-80A259E0 000124 0004+00 0/1 0/0 0/0 .rodata @4549 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4549[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A259DC, &lit_4549); -#pragma pop - -/* 80A259E0-80A259EC 000128 000C+00 0/1 0/0 0/0 .rodata @4550 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4550[12] = { - 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A259E0, &lit_4550); -#pragma pop - -/* 80A259EC-80A259F0 000134 0004+00 0/1 0/0 0/0 .rodata @4551 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4551[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A259EC, &lit_4551); -#pragma pop - -/* 80A259F0-80A259FC 000138 000C+00 0/1 0/0 0/0 .rodata @4552 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4552[12] = { - 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A259F0, &lit_4552); -#pragma pop - -/* 80A259FC-80A25A00 000144 0004+00 0/1 0/0 0/0 .rodata @4553 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4553[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A259FC, &lit_4553); -#pragma pop - -/* 80A25A00-80A25A0C 000148 000C+00 0/1 0/0 0/0 .rodata @4554 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4554[12] = { - 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A25A00, &lit_4554); -#pragma pop - -/* 80A25A0C-80A25A10 000154 0004+00 0/1 0/0 0/0 .rodata @4555 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4555[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A25A0C, &lit_4555); -#pragma pop - -/* 80A25A10-80A25A1C 000158 000C+00 0/1 0/0 0/0 .rodata @4556 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4556[12] = { - 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -}; -COMPILER_STRIP_GATE(0x80A25A10, &lit_4556); -#pragma pop - -/* 80A25A1C-80A25A28 000164 000C+00 0/1 0/0 0/0 .rodata @4557 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4557[12] = { - 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -}; -COMPILER_STRIP_GATE(0x80A25A1C, &lit_4557); -#pragma pop - -/* 80A25A28-80A25A34 000170 000C+00 0/1 0/0 0/0 .rodata @4558 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4558[12] = { - 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -}; -COMPILER_STRIP_GATE(0x80A25A28, &lit_4558); -#pragma pop - -/* 80A25A34-80A25A40 00017C 000C+00 0/1 0/0 0/0 .rodata @4559 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4559[12] = { - 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -}; -COMPILER_STRIP_GATE(0x80A25A34, &lit_4559); -#pragma pop - -/* 80A25A40-80A25A4C 000188 000C+00 0/1 0/0 0/0 .rodata @4560 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4560[12] = { - 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -}; -COMPILER_STRIP_GATE(0x80A25A40, &lit_4560); -#pragma pop - -/* 80A25A4C-80A25A58 000194 000C+00 0/1 0/0 0/0 .rodata @4561 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4561[12] = { - 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A25A4C, &lit_4561); -#pragma pop - -/* 80A25A58-80A25A70 0001A0 0018+00 0/0 0/0 0/0 .rodata @4562 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4562[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A25A58, &lit_4562); -#pragma pop - -/* 80A25A70-80A25A7C 0001B8 000C+00 0/1 0/0 0/0 .rodata @4563 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4563[12] = { - 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -}; -COMPILER_STRIP_GATE(0x80A25A70, &lit_4563); -#pragma pop - -/* 80A25A7C-80A25A88 0001C4 000C+00 0/1 0/0 0/0 .rodata @4564 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4564[12] = { - 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A25A7C, &lit_4564); -#pragma pop - -/* 80A25A88-80A25A90 0001D0 0008+00 0/1 0/0 0/0 .rodata @4565 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4565[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A25A88, &lit_4565); -#pragma pop - -/* 80A22CD8-80A2310C 0013F8 0434+00 1/1 0/0 0/0 .text playMotion__14daNpcKasiKyu_cFv */ -void daNpcKasiKyu_c::playMotion() { - // NONMATCHING -} - -/* 80A2310C-80A23284 00182C 0178+00 1/1 0/0 0/0 .text - * playMotionAnmLoop__14daNpcKasiKyu_cFPPPQ28daNpcF_c18daNpcF_anmPlayData */ -void daNpcKasiKyu_c::playMotionAnmLoop(daNpcF_c::daNpcF_anmPlayData*** param_0) { - // NONMATCHING -} - -/* 80A23284-80A2332C 0019A4 00A8+00 10/10 0/0 0/0 .text - * setAction__14daNpcKasiKyu_cFM14daNpcKasiKyu_cFPCvPvi_i */ -void daNpcKasiKyu_c::setAction(int (daNpcKasiKyu_c::*param_0)(int)) { - // NONMATCHING -} - -/* 80A2332C-80A23350 001A4C 0024+00 8/8 0/0 0/0 .text setLookMode__14daNpcKasiKyu_cFi */ -void daNpcKasiKyu_c::setLookMode(int param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A25A90-80A25AC4 0001D8 0034+00 0/0 0/0 0/0 .rodata @4566 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4566[52] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A25A90, &lit_4566); -#pragma pop - -/* 80A25AC4-80A25AD0 00020C 000C+00 0/1 0/0 0/0 .rodata @4647 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4647[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A25AC4, &lit_4647); -#pragma pop - -/* 80A25AD0-80A25AD4 000218 0004+00 0/1 0/0 0/0 .rodata @4695 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4695 = -80.0f; -COMPILER_STRIP_GATE(0x80A25AD0, &lit_4695); -#pragma pop - -/* 80A25AD4-80A25AD8 00021C 0004+00 0/1 0/0 0/0 .rodata @4696 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4696 = 80.0f; -COMPILER_STRIP_GATE(0x80A25AD4, &lit_4696); -#pragma pop - -/* 80A25AD8-80A25ADC 000220 0004+00 0/1 0/0 0/0 .rodata @4697 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4697 = 40.0f; -COMPILER_STRIP_GATE(0x80A25AD8, &lit_4697); -#pragma pop - -/* 80A23350-80A23530 001A70 01E0+00 1/1 0/0 0/0 .text lookat__14daNpcKasiKyu_cFv */ -void daNpcKasiKyu_c::lookat() { - // NONMATCHING -} - -/* 80A23530-80A23624 001C50 00F4+00 1/1 0/0 0/0 .text step__14daNpcKasiKyu_cFsi */ -void daNpcKasiKyu_c::step(s16 param_0, int param_1) { - // NONMATCHING -} - -/* 80A23624-80A23708 001D44 00E4+00 1/1 0/0 0/0 .text chkFindPlayer__14daNpcKasiKyu_cFv - */ -void daNpcKasiKyu_c::chkFindPlayer() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A25ADC-80A25AE0 000224 0004+00 0/1 0/0 0/0 .rodata @4830 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4830 = 450.0f; -COMPILER_STRIP_GATE(0x80A25ADC, &lit_4830); -#pragma pop - -/* 80A25AE0-80A25AE8 000228 0008+00 0/1 0/0 0/0 .rodata @4831 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4831[8] = { - 0x40, 0x7F, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A25AE0, &lit_4831); -#pragma pop - -/* 80A25AE8-80A25AF0 000230 0008+00 0/1 0/0 0/0 .rodata @4832 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4832[8] = { - 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A25AE8, &lit_4832); -#pragma pop - -/* 80A23708-80A23AB4 001E28 03AC+00 8/0 0/0 0/0 .text wait__14daNpcKasiKyu_cFi */ -void daNpcKasiKyu_c::wait(int param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A25AF0-80A25AF4 000238 0004+00 0/1 0/0 0/0 .rodata @4879 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4879 = 1.5f; -COMPILER_STRIP_GATE(0x80A25AF0, &lit_4879); -#pragma pop - -/* 80A23AB4-80A23C90 0021D4 01DC+00 1/0 0/0 0/0 .text fear__14daNpcKasiKyu_cFi */ -void daNpcKasiKyu_c::fear(int param_0) { - // NONMATCHING -} - -/* 80A23C90-80A23CF8 0023B0 0068+00 1/1 0/0 0/0 .text srchWolfTag__14daNpcKasiKyu_cFv */ -void daNpcKasiKyu_c::srchWolfTag() { - // NONMATCHING -} - -/* 80A23CF8-80A23DC8 002418 00D0+00 1/1 0/0 0/0 .text _srch_escape_tag__14daNpcKasiKyu_cFPvPv */ -void daNpcKasiKyu_c::_srch_escape_tag(void* param_0, void* param_1) { - // NONMATCHING -} - -/* 80A23DC8-80A23EFC 0024E8 0134+00 1/1 0/0 0/0 .text getWolfPathNearIdx__14daNpcKasiKyu_cFv */ -void daNpcKasiKyu_c::getWolfPathNearIdx() { - // NONMATCHING -} - -/* 80A23EFC-80A23FA0 00261C 00A4+00 2/0 0/0 0/0 .text chace_st__14daNpcKasiKyu_cFi */ -void daNpcKasiKyu_c::chace_st(int param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A25AF4-80A25AF8 00023C 0004+00 0/1 0/0 0/0 .rodata @5067 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5067 = 14.0f; -COMPILER_STRIP_GATE(0x80A25AF4, &lit_5067); -#pragma pop - -/* 80A25AF8-80A25AFC 000240 0004+00 0/1 0/0 0/0 .rodata @5068 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5068 = 400.0f; -COMPILER_STRIP_GATE(0x80A25AF8, &lit_5068); -#pragma pop - -/* 80A23FA0-80A24110 0026C0 0170+00 4/0 0/0 0/0 .text chace__14daNpcKasiKyu_cFi */ -void daNpcKasiKyu_c::chace(int param_0) { - // NONMATCHING -} - -/* 80A24110-80A241CC 002830 00BC+00 1/1 0/0 0/0 .text getChacePos__14daNpcKasiKyu_cFv */ -void daNpcKasiKyu_c::getChacePos() { - // NONMATCHING -} - -/* 80A241CC-80A2428C 0028EC 00C0+00 2/0 0/0 0/0 .text turn_link__14daNpcKasiKyu_cFi */ -void daNpcKasiKyu_c::turn_link(int param_0) { - // NONMATCHING -} - -/* 80A2428C-80A24370 0029AC 00E4+00 1/0 0/0 0/0 .text turn_home__14daNpcKasiKyu_cFi */ -void daNpcKasiKyu_c::turn_home(int param_0) { - // NONMATCHING -} - -/* 80A24370-80A24440 002A90 00D0+00 1/0 0/0 0/0 .text turn_center__14daNpcKasiKyu_cFi */ -void daNpcKasiKyu_c::turn_center(int param_0) { - // NONMATCHING -} - -/* 80A24440-80A244B8 002B60 0078+00 1/0 0/0 0/0 .text talk_dummy__14daNpcKasiKyu_cFi */ -void daNpcKasiKyu_c::talk_dummy(int param_0) { - // NONMATCHING -} - -/* 80A244B8-80A24590 002BD8 00D8+00 1/0 0/0 0/0 .text kya__14daNpcKasiKyu_cFi */ -void daNpcKasiKyu_c::kya(int param_0) { - // NONMATCHING -} - -/* 80A24590-80A24628 002CB0 0098+00 1/0 0/0 0/0 .text kya2__14daNpcKasiKyu_cFi */ -void daNpcKasiKyu_c::kya2(int param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A25AFC-80A25B00 000244 0004+00 1/1 0/0 0/0 .rodata @5219 */ -SECTION_RODATA static f32 const lit_5219 = 19.0f; -COMPILER_STRIP_GATE(0x80A25AFC, &lit_5219); - -/* 80A24628-80A246FC 002D48 00D4+00 2/0 0/0 0/0 .text kya_stop__14daNpcKasiKyu_cFi */ -void daNpcKasiKyu_c::kya_stop(int param_0) { - // NONMATCHING -} - -/* 80A246FC-80A24774 002E1C 0078+00 1/0 0/0 0/0 .text iyan__14daNpcKasiKyu_cFi */ -void daNpcKasiKyu_c::iyan(int param_0) { - // NONMATCHING -} - -/* 80A24774-80A2484C 002E94 00D8+00 1/0 0/0 0/0 .text iyan_look__14daNpcKasiKyu_cFi */ -void daNpcKasiKyu_c::iyan_look(int param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A25B00-80A25B04 000248 0004+00 0/1 0/0 0/0 .rodata @5256 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5256 = -3200.0f; -COMPILER_STRIP_GATE(0x80A25B00, &lit_5256); -#pragma pop - -/* 80A25B04-80A25B08 00024C 0004+00 0/1 0/0 0/0 .rodata @5257 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5257 = 1500.0f; -COMPILER_STRIP_GATE(0x80A25B04, &lit_5257); -#pragma pop - -/* 80A2484C-80A2493C 002F6C 00F0+00 1/0 0/0 0/0 .text turn_hana__14daNpcKasiKyu_cFi */ -void daNpcKasiKyu_c::turn_hana(int param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A25B08-80A25B0C 000250 0004+00 0/1 0/0 0/0 .rodata @5281 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5281 = 1.75f; -COMPILER_STRIP_GATE(0x80A25B08, &lit_5281); -#pragma pop - -/* 80A2493C-80A24A54 00305C 0118+00 1/0 0/0 0/0 .text escape__14daNpcKasiKyu_cFi */ -void daNpcKasiKyu_c::escape(int param_0) { - // NONMATCHING -} - -/* 80A24A54-80A24AD8 003174 0084+00 6/0 0/0 0/0 .text wait_dummy__14daNpcKasiKyu_cFi */ -void daNpcKasiKyu_c::wait_dummy(int param_0) { - // NONMATCHING -} - -/* 80A24AD8-80A24CC4 0031F8 01EC+00 1/0 0/0 0/0 .text cheer__14daNpcKasiKyu_cFi */ -void daNpcKasiKyu_c::cheer(int param_0) { - // NONMATCHING -} - -/* 80A24CC4-80A24D10 0033E4 004C+00 3/3 0/0 0/0 .text _turn_to_link__14daNpcKasiKyu_cFs - */ -void daNpcKasiKyu_c::_turn_to_link(s16 param_0) { - // NONMATCHING -} - -/* 80A24D10-80A24D6C 003430 005C+00 6/6 0/0 0/0 .text _turn_pos__14daNpcKasiKyu_cFRC4cXyzs */ -void daNpcKasiKyu_c::_turn_pos(cXyz const& param_0, s16 param_1) { - // NONMATCHING -} - -/* 80A24D6C-80A24E44 00348C 00D8+00 2/2 0/0 0/0 .text - * actor_front_check__14daNpcKasiKyu_cFP10fopAc_ac_c */ -void daNpcKasiKyu_c::actor_front_check(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* 80A24E44-80A24EB0 003564 006C+00 1/1 0/0 0/0 .text _getOffset__14daNpcKasiKyu_cFRC4cXyzR4cXyz - */ -void daNpcKasiKyu_c::_getOffset(cXyz const& param_0, cXyz& param_1) { - // NONMATCHING -} - -/* 80A24EB0-80A24ED0 0035D0 0020+00 1/0 0/0 0/0 .text daNpcKasiKyu_Create__FPv */ -static void daNpcKasiKyu_Create(void* param_0) { - // NONMATCHING -} - -/* 80A24ED0-80A24EF0 0035F0 0020+00 1/0 0/0 0/0 .text daNpcKasiKyu_Delete__FPv */ -static void daNpcKasiKyu_Delete(void* param_0) { - // NONMATCHING -} - -/* 80A24EF0-80A24F10 003610 0020+00 1/0 0/0 0/0 .text daNpcKasiKyu_Execute__FPv */ -static void daNpcKasiKyu_Execute(void* param_0) { - // NONMATCHING -} - -/* 80A24F10-80A24F30 003630 0020+00 1/0 0/0 0/0 .text daNpcKasiKyu_Draw__FPv */ -static void daNpcKasiKyu_Draw(void* param_0) { - // NONMATCHING -} - -/* 80A24F30-80A24F38 003650 0008+00 1/0 0/0 0/0 .text daNpcKasiKyu_IsDelete__FPv */ -static bool daNpcKasiKyu_IsDelete(void* param_0) { - return true; -} - -/* 80A24F38-80A24F98 003658 0060+00 1/0 0/0 0/0 .text __dt__13daNpcF_Path_cFv */ -// daNpcF_Path_c::~daNpcF_Path_c() { -extern "C" void __dt__13daNpcF_Path_cFv() { - // NONMATCHING -} - -/* 80A24F98-80A24FE0 0036B8 0048+00 1/0 0/0 0/0 .text __dt__16daNpcF_SPCurve_cFv */ -// daNpcF_SPCurve_c::~daNpcF_SPCurve_c() { -extern "C" void __dt__16daNpcF_SPCurve_cFv() { - // NONMATCHING -} - -/* 80A24FE0-80A25028 003700 0048+00 5/4 0/0 0/0 .text __dt__18daNpcF_ActorMngr_cFv */ -// daNpcF_ActorMngr_c::~daNpcF_ActorMngr_c() { -extern "C" void __dt__18daNpcF_ActorMngr_cFv() { - // NONMATCHING -} - -/* 80A25028-80A25064 003748 003C+00 2/2 0/0 0/0 .text __ct__18daNpcF_ActorMngr_cFv */ -// daNpcF_ActorMngr_c::daNpcF_ActorMngr_c() { -extern "C" void __ct__18daNpcF_ActorMngr_cFv() { - // NONMATCHING -} - -/* 80A25064-80A25134 003784 00D0+00 1/0 0/0 0/0 .text __dt__15daNpcF_Lookat_cFv */ -// daNpcF_Lookat_c::~daNpcF_Lookat_c() { -extern "C" void __dt__15daNpcF_Lookat_cFv() { - // NONMATCHING -} - -/* 80A25134-80A25170 003854 003C+00 5/5 0/0 0/0 .text __dt__5csXyzFv */ -// csXyz::~csXyz() { -extern "C" void __dt__5csXyzFv() { - // NONMATCHING -} - -/* 80A25170-80A25174 003890 0004+00 2/2 0/0 0/0 .text __ct__5csXyzFv */ -// csXyz::csXyz() { -extern "C" void __ct__5csXyzFv() { - /* empty function */ -} - -/* 80A25174-80A251B0 003894 003C+00 5/5 0/0 0/0 .text __dt__4cXyzFv */ -// cXyz::~cXyz() { -extern "C" void __dt__4cXyzFv() { - // NONMATCHING -} - -/* 80A251B0-80A251B4 0038D0 0004+00 2/2 0/0 0/0 .text __ct__4cXyzFv */ -// cXyz::cXyz() { -extern "C" void __ct__4cXyzFv() { - /* empty function */ -} - -/* 80A251B4-80A25400 0038D4 024C+00 1/1 0/0 0/0 .text __dt__8daNpcF_cFv */ -// daNpcF_c::~daNpcF_c() { -extern "C" void __dt__8daNpcF_cFv() { - // NONMATCHING -} - -/* 80A25400-80A255F0 003B20 01F0+00 1/1 0/0 0/0 .text __ct__8daNpcF_cFv */ -// daNpcF_c::daNpcF_c() { -extern "C" void __ct__8daNpcF_cFv() { - // NONMATCHING -} - -/* 80A255F0-80A25660 003D10 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */ -// dBgS_AcchCir::~dBgS_AcchCir() { -extern "C" void __dt__12dBgS_AcchCirFv() { - // NONMATCHING -} - -/* 80A25660-80A256BC 003D80 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */ -// dCcD_GStts::~dCcD_GStts() { -extern "C" void __dt__10dCcD_GSttsFv() { - // NONMATCHING -} - -/* 80A256BC-80A2572C 003DDC 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */ -// dBgS_ObjAcch::~dBgS_ObjAcch() { -extern "C" void __dt__12dBgS_ObjAcchFv() { - // NONMATCHING -} - -/* 80A2572C-80A25774 003E4C 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */ -// J3DFrameCtrl::~J3DFrameCtrl() { -extern "C" void __dt__12J3DFrameCtrlFv() { - // NONMATCHING -} - -/* 80A25774-80A2577C 003E94 0008+00 1/0 0/0 0/0 .text ctrlBtk__8daNpcF_cFv */ -// bool daNpcF_c::ctrlBtk() { -extern "C" bool ctrlBtk__8daNpcF_cFv() { - return false; -} - -/* 80A2577C-80A25780 003E9C 0004+00 1/0 0/0 0/0 .text setCollisions__8daNpcF_cFv */ -// void daNpcF_c::setCollisions() { -extern "C" void setCollisions__8daNpcF_cFv() { - /* empty function */ -} - -/* 80A25780-80A25788 003EA0 0008+00 1/0 0/0 0/0 .text setExpressionAnm__8daNpcF_cFib */ -// bool daNpcF_c::setExpressionAnm(int param_0, bool param_1) { -extern "C" bool setExpressionAnm__8daNpcF_cFib() { - return true; -} - -/* 80A25788-80A25790 003EA8 0008+00 1/0 0/0 0/0 .text setExpressionBtp__8daNpcF_cFi */ -// bool daNpcF_c::setExpressionBtp(int param_0) { -extern "C" bool setExpressionBtp__8daNpcF_cFi() { - return true; -} - -/* 80A25790-80A25794 003EB0 0004+00 1/0 0/0 0/0 .text setExpression__8daNpcF_cFif */ -// void daNpcF_c::setExpression(int param_0, f32 param_1) { -extern "C" void setExpression__8daNpcF_cFif() { - /* empty function */ -} - -/* 80A25794-80A25798 003EB4 0004+00 1/0 0/0 0/0 .text drawOtherMdls__8daNpcF_cFv */ -// void daNpcF_c::drawOtherMdls() { -extern "C" void drawOtherMdls__8daNpcF_cFv() { - /* empty function */ -} - -/* 80A25798-80A257E0 003EB8 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */ -// cCcD_GStts::~cCcD_GStts() { -extern "C" void __dt__10cCcD_GSttsFv() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A25FF8-80A26004 0004D4 000C+00 2/2 0/0 0/0 .data __vt__20daNpcKasiKyu_Param_c */ -SECTION_DATA extern void* __vt__20daNpcKasiKyu_Param_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__20daNpcKasiKyu_Param_cFv, -}; - -/* 80A257E0-80A25848 003F00 0068+00 0/0 1/0 0/0 .text __sinit_d_a_npc_kasi_kyu_cpp */ -void __sinit_d_a_npc_kasi_kyu_cpp() { - // NONMATCHING -} - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x80A257E0, __sinit_d_a_npc_kasi_kyu_cpp); -#pragma pop - -/* 80A25848-80A2584C 003F68 0004+00 1/0 0/0 0/0 .text adjustShapeAngle__14daNpcKasiKyu_cFv */ -void daNpcKasiKyu_c::adjustShapeAngle() { - /* empty function */ -} - -/* 80A2584C-80A25894 003F6C 0048+00 2/1 0/0 0/0 .text __dt__20daNpcKasiKyu_Param_cFv */ -daNpcKasiKyu_Param_c::~daNpcKasiKyu_Param_c() { - // NONMATCHING -} - -/* 80A25894-80A2589C 003FB4 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */ -static void func_80A25894() { - // NONMATCHING -} - -/* 80A2589C-80A258A4 003FBC 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */ -static void func_80A2589C() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A2606C-80A26070 000064 0004+00 0/0 0/0 0/0 .bss - * sInstance__40JASGlobalInstance<19JASDefaultBankTable> */ -#pragma push -#pragma force_active on -static u8 data_80A2606C[4]; -#pragma pop - -/* 80A26070-80A26074 000068 0004+00 0/0 0/0 0/0 .bss - * sInstance__35JASGlobalInstance<14JASAudioThread> */ -#pragma push -#pragma force_active on -static u8 data_80A26070[4]; -#pragma pop - -/* 80A26074-80A26078 00006C 0004+00 0/0 0/0 0/0 .bss sInstance__27JASGlobalInstance<7Z2SeMgr> */ -#pragma push -#pragma force_active on -static u8 data_80A26074[4]; -#pragma pop - -/* 80A26078-80A2607C 000070 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8Z2SeqMgr> */ -#pragma push -#pragma force_active on -static u8 data_80A26078[4]; -#pragma pop - -/* 80A2607C-80A26080 000074 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SceneMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80A2607C[4]; -#pragma pop - -/* 80A26080-80A26084 000078 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2StatusMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80A26080[4]; -#pragma pop - -/* 80A26084-80A26088 00007C 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2DebugSys> - */ -#pragma push -#pragma force_active on -static u8 data_80A26084[4]; -#pragma pop - -/* 80A26088-80A2608C 000080 0004+00 0/0 0/0 0/0 .bss - * sInstance__36JASGlobalInstance<15JAISoundStarter> */ -#pragma push -#pragma force_active on -static u8 data_80A26088[4]; -#pragma pop - -/* 80A2608C-80A26090 000084 0004+00 0/0 0/0 0/0 .bss - * sInstance__35JASGlobalInstance<14Z2SoundStarter> */ -#pragma push -#pragma force_active on -static u8 data_80A2608C[4]; -#pragma pop - -/* 80A26090-80A26094 000088 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12Z2SpeechMgr2> */ -#pragma push -#pragma force_active on -static u8 data_80A26090[4]; -#pragma pop - -/* 80A26094-80A26098 00008C 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8JAISeMgr> */ -#pragma push -#pragma force_active on -static u8 data_80A26094[4]; -#pragma pop - -/* 80A26098-80A2609C 000090 0004+00 0/0 0/0 0/0 .bss sInstance__29JASGlobalInstance<9JAISeqMgr> */ -#pragma push -#pragma force_active on -static u8 data_80A26098[4]; -#pragma pop - -/* 80A2609C-80A260A0 000094 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAIStreamMgr> */ -#pragma push -#pragma force_active on -static u8 data_80A2609C[4]; -#pragma pop - -/* 80A260A0-80A260A4 000098 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SoundMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80A260A0[4]; -#pragma pop - -/* 80A260A4-80A260A8 00009C 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAISoundInfo> */ -#pragma push -#pragma force_active on -static u8 data_80A260A4[4]; -#pragma pop - -/* 80A260A8-80A260AC 0000A0 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13JAUSoundTable> */ -#pragma push -#pragma force_active on -static u8 data_80A260A8[4]; -#pragma pop - -/* 80A260AC-80A260B0 0000A4 0004+00 0/0 0/0 0/0 .bss - * sInstance__38JASGlobalInstance<17JAUSoundNameTable> */ -#pragma push -#pragma force_active on -static u8 data_80A260AC[4]; -#pragma pop - -/* 80A260B0-80A260B4 0000A8 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAUSoundInfo> */ -#pragma push -#pragma force_active on -static u8 data_80A260B0[4]; -#pragma pop - -/* 80A260B4-80A260B8 0000AC 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SoundInfo> - */ -#pragma push -#pragma force_active on -static u8 data_80A260B4[4]; -#pragma pop - -/* 80A260B8-80A260BC 0000B0 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13Z2SoundObjMgr> */ -#pragma push -#pragma force_active on -static u8 data_80A260B8[4]; -#pragma pop - -/* 80A260BC-80A260C0 0000B4 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2Audience> - */ -#pragma push -#pragma force_active on -static u8 data_80A260BC[4]; -#pragma pop - -/* 80A260C0-80A260C4 0000B8 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2FxLineMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80A260C0[4]; -#pragma pop - -/* 80A260C4-80A260C8 0000BC 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2EnvSeMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80A260C4[4]; -#pragma pop - -/* 80A260C8-80A260CC 0000C0 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SpeechMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80A260C8[4]; -#pragma pop - -/* 80A260CC-80A260D0 0000C4 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13Z2WolfHowlMgr> */ -#pragma push -#pragma force_active on -static u8 data_80A260CC[4]; -#pragma pop - -/* 80A25B0C-80A25B0C 000254 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/src/d/actor/d_a_npc_kasi_mich.cpp b/src/d/actor/d_a_npc_kasi_mich.cpp index 1f229bd7bdc..fbade0d8c58 100644 --- a/src/d/actor/d_a_npc_kasi_mich.cpp +++ b/src/d/actor/d_a_npc_kasi_mich.cpp @@ -6,631 +6,1452 @@ #include "d/dolzel_rel.h" #include "d/actor/d_a_npc_kasi_mich.h" -#include "dol2asm.h" +#include "Z2AudioLib/Z2Instances.h" -// -// Forward References: -// +enum kasi_mich_RES_File_ID { + /* BMDR */ + /* 0x4 */ BMDR_MICH = 0x4, -extern "C" void __ct__15daNpcKasiMich_cFv(); -extern "C" void __dt__8cM3dGCylFv(); -extern "C" void __dt__8cM3dGAabFv(); -extern "C" void __dt__15daNpcKasiMich_cFv(); -extern "C" void Create__15daNpcKasiMich_cFv(); -extern "C" void CreateHeap__15daNpcKasiMich_cFv(); -extern "C" void Delete__15daNpcKasiMich_cFv(); -extern "C" void Execute__15daNpcKasiMich_cFv(); -extern "C" void Draw__15daNpcKasiMich_cFv(); -extern "C" void ctrlJoint__15daNpcKasiMich_cFP8J3DJointP8J3DModel(); -extern "C" void createHeapCallBack__15daNpcKasiMich_cFP10fopAc_ac_c(); -extern "C" void ctrlJointCallBack__15daNpcKasiMich_cFP8J3DJointi(); -extern "C" void setParam__15daNpcKasiMich_cFv(); -extern "C" void main__15daNpcKasiMich_cFv(); -extern "C" void setAttnPos__15daNpcKasiMich_cFv(); -extern "C" void setMotionAnm__15daNpcKasiMich_cFif(); -extern "C" void setMotion__15daNpcKasiMich_cFifi(); -extern "C" bool drawDbgInfo__15daNpcKasiMich_cFv(); -extern "C" void reset__15daNpcKasiMich_cFv(); -extern "C" void playMotion__15daNpcKasiMich_cFv(); -extern "C" void playMotionAnmLoop__15daNpcKasiMich_cFPPPQ28daNpcF_c18daNpcF_anmPlayData(); -extern "C" void setAction__15daNpcKasiMich_cFM15daNpcKasiMich_cFPCvPvi_i(); -extern "C" void setLookMode__15daNpcKasiMich_cFi(); -extern "C" void lookat__15daNpcKasiMich_cFv(); -extern "C" void step__15daNpcKasiMich_cFsi(); -extern "C" void chkFindPlayer__15daNpcKasiMich_cFv(); -extern "C" void wait__15daNpcKasiMich_cFi(); -extern "C" void fear__15daNpcKasiMich_cFi(); -extern "C" void srchWolfTag__15daNpcKasiMich_cFv(); -extern "C" void _srch_escape_tag__15daNpcKasiMich_cFPvPv(); -extern "C" void getWolfPathNearIdx__15daNpcKasiMich_cFv(); -extern "C" void chace_st__15daNpcKasiMich_cFi(); -extern "C" void chace__15daNpcKasiMich_cFi(); -extern "C" void getChacePos__15daNpcKasiMich_cFv(); -extern "C" void turn_link__15daNpcKasiMich_cFi(); -extern "C" void turn_home__15daNpcKasiMich_cFi(); -extern "C" void turn_center__15daNpcKasiMich_cFi(); -extern "C" void talk_dummy__15daNpcKasiMich_cFi(); -extern "C" void kya__15daNpcKasiMich_cFi(); -extern "C" void kya2__15daNpcKasiMich_cFi(); -extern "C" void kya_stop__15daNpcKasiMich_cFi(); -extern "C" void iyan__15daNpcKasiMich_cFi(); -extern "C" void escape__15daNpcKasiMich_cFi(); -extern "C" void iyan_look__15daNpcKasiMich_cFi(); -extern "C" void turn_hana__15daNpcKasiMich_cFi(); -extern "C" void wait_dummy__15daNpcKasiMich_cFi(); -extern "C" void cheer__15daNpcKasiMich_cFi(); -extern "C" void _turn_to_link__15daNpcKasiMich_cFs(); -extern "C" void _turn_pos__15daNpcKasiMich_cFRC4cXyzs(); -extern "C" void actor_front_check__15daNpcKasiMich_cFP10fopAc_ac_c(); -extern "C" void _getOffset__15daNpcKasiMich_cFRC4cXyzR4cXyz(); -extern "C" static void daNpcKasiMich_Create__FPv(); -extern "C" static void daNpcKasiMich_Delete__FPv(); -extern "C" static void daNpcKasiMich_Execute__FPv(); -extern "C" static void daNpcKasiMich_Draw__FPv(); -extern "C" static bool daNpcKasiMich_IsDelete__FPv(); -extern "C" void __dt__13daNpcF_Path_cFv(); -extern "C" void __dt__16daNpcF_SPCurve_cFv(); -extern "C" void __dt__18daNpcF_ActorMngr_cFv(); -extern "C" void __ct__18daNpcF_ActorMngr_cFv(); -extern "C" void __dt__15daNpcF_Lookat_cFv(); -extern "C" void __dt__5csXyzFv(); -extern "C" void __ct__5csXyzFv(); -extern "C" void __dt__4cXyzFv(); -extern "C" void __ct__4cXyzFv(); -extern "C" void __dt__8daNpcF_cFv(); -extern "C" void __ct__8daNpcF_cFv(); -extern "C" void __dt__12dBgS_AcchCirFv(); -extern "C" void __dt__10dCcD_GSttsFv(); -extern "C" void __dt__12dBgS_ObjAcchFv(); -extern "C" void __dt__12J3DFrameCtrlFv(); -extern "C" bool ctrlBtk__8daNpcF_cFv(); -extern "C" void setCollisions__8daNpcF_cFv(); -extern "C" bool setExpressionAnm__8daNpcF_cFib(); -extern "C" bool setExpressionBtp__8daNpcF_cFi(); -extern "C" void setExpression__8daNpcF_cFif(); -extern "C" void drawOtherMdls__8daNpcF_cFv(); -extern "C" void __dt__10cCcD_GSttsFv(); -extern "C" void __sinit_d_a_npc_kasi_mich_cpp(); -extern "C" void adjustShapeAngle__15daNpcKasiMich_cFv(); -extern "C" void __dt__21daNpcKasiMich_Param_cFv(); -extern "C" static void func_80A2A028(); -extern "C" static void func_80A2A030(); -extern "C" u8 const m__21daNpcKasiMich_Param_c[116]; -extern "C" extern char const* const d_a_npc_kasi_mich__stringBase0; -extern "C" u8 mEvtSeqList__15daNpcKasiMich_c[12]; -extern "C" u8 mTargetTag__15daNpcKasiMich_c[4]; -extern "C" u8 mTargetTagDist__15daNpcKasiMich_c[4]; + /* BTP */ + /* 0x7 */ BTP_MICH = 0x7, +}; -// -// External References: -// +enum girls_RES_File_ID { + /* BCK */ + /* 0x3 */ BCK_MICH_IYAN_WAIT = 0x3, + /* 0x4 */ BCK_MICH_KYA_TALK, + /* 0x5 */ BCK_MICH_OUEN_WAIT_A, + /* 0x6 */ BCK_MICH_OUEN_WAIT_B, +}; -extern "C" void ZXYrotS__14mDoMtx_stack_cFRC5csXyz(); -extern "C" void setMorf__13mDoExt_morf_cFf(); -extern "C" void -__ct__16mDoExt_McaMorfSOFP12J3DModelDataP25mDoExt_McaMorfCallBack1_cP25mDoExt_McaMorfCallBack2_cP15J3DAnmTransformifiiP10Z2CreatureUlUl(); -extern "C" void stopZelAnime__16mDoExt_McaMorfSOFv(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void fopAc_IsActor__FPv(); -extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); -extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff(); -extern "C" void fopAcM_searchActorAngleY__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void fopAcM_searchActorDistanceXZ__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void fopAcM_searchActorDistanceXZ2__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void fpcEx_Search__FPFPvPv_PvPv(); -extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); -extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); -extern "C" void isSwitch__10dSv_info_cCFii(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void reset__14dEvt_control_cFv(); -extern "C" void ChkPresentEnd__16dEvent_manager_cFv(); -extern "C" void __ct__12dBgS_AcchCirFv(); -extern "C" void SetWall__12dBgS_AcchCirFff(); -extern "C" void __dt__9dBgS_AcchFv(); -extern "C" void __ct__9dBgS_AcchFv(); -extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz(); -extern "C" void CrrPos__9dBgS_AcchFR4dBgS(); -extern "C" void __ct__11dBgS_GndChkFv(); -extern "C" void __dt__11dBgS_GndChkFv(); -extern "C" void __ct__11dBgS_LinChkFv(); -extern "C" void __dt__11dBgS_LinChkFv(); -extern "C" void SetObj__16dBgS_PolyPassChkFv(); -extern "C" void __ct__10dCcD_GSttsFv(); -extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c(); -extern "C" void __ct__12dCcD_GObjInfFv(); -extern "C" void __dt__12dCcD_GObjInfFv(); -extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl(); -extern "C" void initialize__18daNpcF_ActorMngr_cFv(); -extern "C" void entry__18daNpcF_ActorMngr_cFP10fopAc_ac_c(); -extern "C" void remove__18daNpcF_ActorMngr_cFv(); -extern "C" void getActorP__18daNpcF_ActorMngr_cFv(); -extern "C" void initialize__16daNpcF_SPCurve_cFP5dPathi(); -extern "C" void initialize__13daNpcF_Path_cFv(); -extern "C" void setPathInfo__13daNpcF_Path_cFUcScUc(); -extern "C" void getDstPos__13daNpcF_Path_cF4cXyzR4cXyz(); -extern "C" void initialize__15daNpcF_Lookat_cFv(); -extern "C" void setParam__15daNpcF_Lookat_cFffffffffffffsP4cXyz(); -extern "C" void calc__15daNpcF_Lookat_cFP10fopAc_ac_cPA4_fPP5csXyziii(); -extern "C" void execute__8daNpcF_cFv(); -extern "C" void draw__8daNpcF_cFiifP11_GXColorS10i(); -extern "C" void setMtx__8daNpcF_cFv(); -extern "C" void setMtx2__8daNpcF_cFv(); -extern "C" void initialize__8daNpcF_cFv(); -extern "C" void getTrnsfrmKeyAnmP__8daNpcF_cFPci(); -extern "C" void getTexPtrnAnmP__8daNpcF_cFPci(); -extern "C" void setMcaMorfAnm__8daNpcF_cFP18J3DAnmTransformKeyffiii(); -extern "C" void setBtpAnm__8daNpcF_cFP16J3DAnmTexPatternP12J3DModelDatafi(); -extern "C" void setEnvTevColor__8daNpcF_cFv(); -extern "C" void setRoomNo__8daNpcF_cFv(); -extern "C" void playMotionAnm__8daNpcF_cFPPPQ28daNpcF_c18daNpcF_anmPlayData(); -extern "C" void setLookatMtx__8daNpcF_cFiPif(); -extern "C" void orderEvent__8daNpcF_cFiPcUsUsUcUs(); -extern "C" void chkActorInSight__8daNpcF_cFP10fopAc_ac_cf(); -extern "C" void chkActorInAttnArea__8daNpcF_cFP10fopAc_ac_cP10fopAc_ac_ci(); -extern "C" void turn__8daNpcF_cFsfi(); -extern "C" void getDistTableIdx__8daNpcF_cFii(); -extern "C" void daNpcF_chkEvtBit__FUl(); -extern "C" void dKy_darkworld_check__Fv(); -extern "C" void __ct__10dMsgFlow_cFv(); -extern "C" void __dt__10dMsgFlow_cFv(); -extern "C" void Set__4cCcSFP8cCcD_Obj(); -extern "C" void __mi__4cXyzCFRC3Vec(); -extern "C" void __ct__11cBgS_GndChkFv(); -extern "C" void __dt__11cBgS_GndChkFv(); -extern "C" void __dt__13cBgS_PolyInfoFv(); -extern "C" void __dt__8cM3dGCirFv(); -extern "C" void SetC__8cM3dGCylFRC4cXyz(); -extern "C" void SetH__8cM3dGCylFf(); -extern "C" void SetR__8cM3dGCylFf(); -extern "C" void cLib_chaseAngleS__FPsss(); -extern "C" void cLib_targetAngleY__FPC3VecPC3Vec(); -extern "C" void cLib_targetAngleX__FPC4cXyzPC4cXyz(); -extern "C" void cLib_distanceAngleS__Fss(); -extern "C" void __ct__17Z2CreatureCitizenFv(); -extern "C" void __dt__17Z2CreatureCitizenFv(); -extern "C" void init__17Z2CreatureCitizenFP3VecP3VecUcUc(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void init__12J3DFrameCtrlFs(); -extern "C" void __destroy_arr(); -extern "C" void __construct_array(); -extern "C" void __ptmf_test(); -extern "C" void __ptmf_scall(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_26(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_25(); -extern "C" void _restgpr_26(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" extern u8 const __ptmf_null[12 + 4 /* padding */]; -extern "C" extern void* __vt__8dCcD_Cyl[36]; -extern "C" extern void* __vt__9dCcD_Stts[11]; -extern "C" u8 mCcDCyl__8daNpcF_c[68]; -extern "C" extern void* __vt__8daNpcF_c[18]; -extern "C" extern void* __vt__12cCcD_CylAttr[25]; -extern "C" extern void* __vt__14cCcD_ShapeAttr[22]; -extern "C" extern void* __vt__9cCcD_Stts[8]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" u8 mCurrentMtx__6J3DSys[48]; -extern "C" void __register_global_object(); +enum Wgeneral_RES_File_ID { + /* BCK */ + /* 0x03 */ BCK_W_2LADYTALK_A = 0x3, + /* 0x04 */ BCK_W_2LADYTALK_B, + /* 0x05 */ BCK_W_2NORMALTALK_A, + /* 0x06 */ BCK_W_2NORMALTALK_B, + /* 0x07 */ BCK_W_BROWSE_A, + /* 0x08 */ BCK_W_BROWSE_B, + /* 0x09 */ BCK_W_CELLME, + /* 0x0A */ BCK_W_LOOK_A, + /* 0x0B */ BCK_W_LOOK_B, + /* 0x0C */ BCK_W_MARO_DANCE, + /* 0x0D */ BCK_W_RUN_A, + /* 0x0E */ BCK_W_RUN_B, + /* 0x0F */ BCK_W_SING, + /* 0x10 */ BCK_W_SIT_TO_WOLF_A, + /* 0x11 */ BCK_W_SIT_TO_WOLF_B, + /* 0x12 */ BCK_W_SITTALK_A, + /* 0x13 */ BCK_W_SITTALK_A_B, + /* 0x14 */ BCK_W_SITTALK_B, + /* 0x15 */ BCK_W_SITTALK_B_B, + /* 0x16 */ BCK_W_SITWAIT_A, + /* 0x17 */ BCK_W_SITWAIT_B, + /* 0x18 */ BCK_W_SURPRISE, + /* 0x19 */ BCK_W_TALK_A, + /* 0x1A */ BCK_W_TALK_B, + /* 0x1B */ BCK_W_TALK_B_WALL, + /* 0x1C */ BCK_W_TALK_C, + /* 0x1D */ BCK_W_TALK_WALL, + /* 0x1E */ BCK_W_TO_WOLF, + /* 0x1F */ BCK_W_WAIT_A, + /* 0x20 */ BCK_W_WAIT_B, + /* 0x21 */ BCK_W_WAIT_WALL, + /* 0x22 */ BCK_W_WALK_A, + /* 0x23 */ BCK_W_WALK_B, +}; -// -// Declarations: -// +enum RES_Name { + /* 0x0 */ KASI_MICH, + /* 0x1 */ GIRLS, + /* 0x2 */ WGENERAL, +}; -/* ############################################################################################## */ -/* 80A2A298-80A2A298 00024C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80A2A298 = "kasi_mich"; -SECTION_DEAD static char const* const stringBase_80A2A2A2 = "girls"; -SECTION_DEAD static char const* const stringBase_80A2A2A8 = "Wgeneral"; -#pragma pop +enum Animation { + /* 0x0 */ ANM_MICH_IYAN_WAIT, + /* 0x1 */ ANM_MICH_KYA_TALK, + /* 0x2 */ ANM_MICH_OUEN_WAIT_A, + /* 0x3 */ ANM_MICH_OUEN_WAIT_B, + /* 0x4 */ ANM_W_WAIT_A, + /* 0x5 */ ANM_W_TALK_B, + /* 0x6 */ ANM_W_WALK_A, + /* 0x7 */ ANM_W_LOOK_B, + /* 0x8 */ ANM_W_RUN_A, + /* 0x9 */ ANM_W_TO_WOLF, + /* 0xA */ ANM_W_SURPRISE, + /* 0xB */ ANM_W_WAIT_A_2, + /* 0xC */ ANM_W_TALK_A, + /* 0xD */ ANM_W_2LADYTALK_A, + /* 0xE */ ANM_W_2NORMALTALK_A, + /* 0xF */ ANM_W_2NORMALTALK_B, +}; + +enum Motion { + /* 0x0 */ MOT_MICH_KYA_TALK, + /* 0x1 */ MOT_MICH_IYAN_WAIT, + /* 0x2 */ MOT_MICH_OUEN_WAIT_A, + /* 0x3 */ MOT_MICH_OUEN_WAIT_B, + /* 0x4 */ MOT_W_WAIT_A, + /* 0x5 */ MOT_W_TALK_B, + /* 0x6 */ MOT_W_WALK_A, + /* 0x7 */ MOT_W_LOOK_B, + /* 0x8 */ MOT_W_RUN_A, + /* 0x9 */ MOT_W_TO_WOLF, + /* 0xA */ MOT_W_SURPRISE, + /* 0xB */ MOT_W_TALK_A, + /* 0xC */ MOT_W_2NORMALTALK_B +}; + +/* 80A2A7EC-80A2A7F0 000054 0004+00 1/1 0/0 0/0 .bss l_HIO */ +static daNpcKasiMich_Param_c l_HIO; /* 80A2A2D4-80A2A394 000020 00C0+00 1/1 0/0 0/0 .data l_bckGetParamList */ -SECTION_DATA static u8 l_bckGetParamList[192] = { - 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1A, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1E, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, +static daNpc_GetParam2 l_bckGetParamList[16] = { + {BCK_MICH_IYAN_WAIT, J3DFrameCtrl::EMode_LOOP, GIRLS}, + {BCK_MICH_KYA_TALK, J3DFrameCtrl::EMode_LOOP, GIRLS}, + {BCK_MICH_OUEN_WAIT_A, J3DFrameCtrl::EMode_LOOP, GIRLS}, + {BCK_MICH_OUEN_WAIT_B, J3DFrameCtrl::EMode_LOOP, GIRLS}, + {BCK_W_WAIT_A, J3DFrameCtrl::EMode_LOOP, WGENERAL}, + {BCK_W_TALK_B, J3DFrameCtrl::EMode_NONE, WGENERAL}, + {BCK_W_WALK_A, J3DFrameCtrl::EMode_LOOP, WGENERAL}, + {BCK_W_LOOK_B, J3DFrameCtrl::EMode_LOOP, WGENERAL}, + {BCK_W_RUN_A, J3DFrameCtrl::EMode_LOOP, WGENERAL}, + {BCK_W_TO_WOLF, J3DFrameCtrl::EMode_LOOP, WGENERAL}, + {BCK_W_SURPRISE, J3DFrameCtrl::EMode_NONE, WGENERAL}, + {BCK_W_WAIT_A, J3DFrameCtrl::EMode_NONE, WGENERAL}, + {BCK_W_TALK_A, J3DFrameCtrl::EMode_NONE, WGENERAL}, + {BCK_W_2LADYTALK_A, J3DFrameCtrl::EMode_NONE, WGENERAL}, + {BCK_W_2NORMALTALK_A, J3DFrameCtrl::EMode_NONE, WGENERAL}, + {BCK_W_2NORMALTALK_B, J3DFrameCtrl::EMode_NONE, WGENERAL}, }; /* 80A2A394-80A2A3A0 0000E0 000C+00 0/0 0/0 0/0 .data l_btpGetParamList */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_btpGetParamList[12] = { - 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, +static daNpc_GetParam2 l_btpGetParamList[1] = { + {BTP_MICH, J3DFrameCtrl::EMode_LOOP, KASI_MICH}, }; -#pragma pop /* 80A2A3A0-80A2A3AC -00001 000C+00 5/6 0/0 0/0 .data l_arcNames */ -SECTION_DATA static void* l_arcNames[3] = { - (void*)&d_a_npc_kasi_mich__stringBase0, - (void*)(((char*)&d_a_npc_kasi_mich__stringBase0) + 0xA), - (void*)(((char*)&d_a_npc_kasi_mich__stringBase0) + 0x10), +static char* l_arcNames[3] = { + "kasi_mich", + "girls", + "Wgeneral", }; /* 80A2A3AC-80A2A3B0 0000F8 0004+00 1/2 0/0 0/0 .data l_evtNames */ -SECTION_DATA static u8 l_evtNames[4] = { - 0x00, - 0x00, - 0x00, - 0x00, +static char* l_evtNames[1] = { + NULL }; /* 80A2A3B0-80A2A3B4 -00001 0004+00 0/0 0/0 0/0 .data l_myName */ -#pragma push -#pragma force_active on -SECTION_DATA static void* l_myName = (void*)&d_a_npc_kasi_mich__stringBase0; -#pragma pop +static char* l_myName = "kasi_mich"; /* 80A2A3B4-80A2A3C0 000100 000C+00 1/1 0/0 0/0 .data mEvtSeqList__15daNpcKasiMich_c */ -SECTION_DATA u8 daNpcKasiMich_c::mEvtSeqList[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +daNpcKasiMich_c::EventFn daNpcKasiMich_c::mEvtSeqList[1] = { + NULL }; -/* 80A2A3C0-80A2A3CC -00001 000C+00 0/1 0/0 0/0 .data @4365 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4365[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__15daNpcKasiMich_cFi, -}; -#pragma pop +/* 80A261CC-80A26384 0000EC 01B8+00 1/1 0/0 0/0 .text __ct__15daNpcKasiMich_cFv */ +daNpcKasiMich_c::daNpcKasiMich_c() {} -/* 80A2A3CC-80A2A3D8 -00001 000C+00 0/1 0/0 0/0 .data @4366 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4366[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)chace__15daNpcKasiMich_cFi, -}; -#pragma pop +/* 80A26414-80A26624 000334 0210+00 1/0 0/0 0/0 .text __dt__15daNpcKasiMich_cFv */ +daNpcKasiMich_c::~daNpcKasiMich_c() { + for (int i = 0; i < 3; i ++) { + dComIfG_resDelete(&mPhases[i], l_arcNames[i]); + } -/* 80A2A3D8-80A2A3E4 -00001 000C+00 0/1 0/0 0/0 .data @4367 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4367[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)turn_link__15daNpcKasiMich_cFi, -}; -#pragma pop + if (heap != NULL) { + mpMorf->stopZelAnime(); + } +} -/* 80A2A3E4-80A2A3F0 -00001 000C+00 0/1 0/0 0/0 .data @4368 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4368[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)turn_home__15daNpcKasiMich_cFi, -}; -#pragma pop - -/* 80A2A3F0-80A2A3FC -00001 000C+00 0/1 0/0 0/0 .data @4369 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4369[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talk_dummy__15daNpcKasiMich_cFi, -}; -#pragma pop - -/* 80A2A3FC-80A2A408 -00001 000C+00 0/1 0/0 0/0 .data @4370 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4370[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)escape__15daNpcKasiMich_cFi, -}; -#pragma pop - -/* 80A2A408-80A2A414 -00001 000C+00 0/1 0/0 0/0 .data @4371 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4371[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)turn_center__15daNpcKasiMich_cFi, -}; -#pragma pop - -/* 80A2A414-80A2A420 -00001 000C+00 0/1 0/0 0/0 .data @4372 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4372[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait_dummy__15daNpcKasiMich_cFi, -}; -#pragma pop - -/* 80A2A420-80A2A42C -00001 000C+00 0/1 0/0 0/0 .data @4373 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4373[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cheer__15daNpcKasiMich_cFi, -}; -#pragma pop - -/* 80A2A42C-80A2A438 -00001 000C+00 0/1 0/0 0/0 .data @4374 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4374[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)chace_st__15daNpcKasiMich_cFi, -}; -#pragma pop - -/* 80A2A438-80A2A444 -00001 000C+00 0/1 0/0 0/0 .data @4375 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4375[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)kya__15daNpcKasiMich_cFi, -}; -#pragma pop - -/* 80A2A444-80A2A450 -00001 000C+00 0/1 0/0 0/0 .data @4376 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4376[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)iyan__15daNpcKasiMich_cFi, -}; -#pragma pop - -/* 80A2A450-80A2A45C -00001 000C+00 0/1 0/0 0/0 .data @4377 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4377[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)kya_stop__15daNpcKasiMich_cFi, -}; -#pragma pop - -/* 80A2A45C-80A2A468 -00001 000C+00 0/1 0/0 0/0 .data @4378 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4378[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait_dummy__15daNpcKasiMich_cFi, -}; -#pragma pop - -/* 80A2A468-80A2A474 -00001 000C+00 0/1 0/0 0/0 .data @4379 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4379[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)iyan_look__15daNpcKasiMich_cFi, -}; -#pragma pop - -/* 80A2A474-80A2A480 -00001 000C+00 0/1 0/0 0/0 .data @4380 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4380[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)turn_hana__15daNpcKasiMich_cFi, -}; -#pragma pop - -/* 80A2A480-80A2A48C -00001 000C+00 0/1 0/0 0/0 .data @4381 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4381[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait_dummy__15daNpcKasiMich_cFi, -}; -#pragma pop - -/* 80A2A48C-80A2A498 -00001 000C+00 0/1 0/0 0/0 .data @4382 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4382[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)kya2__15daNpcKasiMich_cFi, -}; -#pragma pop - -/* 80A2A498-80A2A4A4 -00001 000C+00 0/1 0/0 0/0 .data @4383 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4383[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)fear__15daNpcKasiMich_cFi, -}; -#pragma pop - -/* 80A2A4A4-80A2A594 0001F0 00F0+00 0/1 0/0 0/0 .data sSygnalAct$4364 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 sSygnalAct[240] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -#pragma pop - -/* 80A2A594-80A2A5A0 -00001 000C+00 1/1 0/0 0/0 .data @4488 */ -SECTION_DATA static void* lit_4488[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__15daNpcKasiMich_cFi, +/* 80A2A04C-80A2A0C0 000000 0074+00 17/17 0/0 0/0 .rodata m__21daNpcKasiMich_Param_c */ +daNpcKasiMich_HIOParam const daNpcKasiMich_Param_c::m = { + 55.0f, + -3.0f, + 1.0f, + 500.0f, + 216.0f, + 140.0f, + 35.0f, + 30.0f, + 0.0f, + 0.0f, + 10.0f, + -10.0f, + 30.0f, + -10.0f, + 45.0f, + -45.0f, + 0.6f, + 12.0f, + 2, + 6, + 3, + 6, + 60.0f, + 500.0f, + 300.0f, + -300.0f, + 60, + 0, + 0, + 0, + 0, + false, + false, + 10, + 16.0f, }; -/* 80A2A5A0-80A2A5AC -00001 000C+00 0/1 0/0 0/0 .data @4777 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4777[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)chace__15daNpcKasiMich_cFi, -}; -#pragma pop +/* 80A26624-80A268A0 000544 027C+00 1/1 0/0 0/0 .text Create__15daNpcKasiMich_cFv */ +cPhs__Step daNpcKasiMich_c::Create() { + fopAcM_SetupActor(this, daNpcKasiMich_c); -/* 80A2A5AC-80A2A5B8 -00001 000C+00 0/1 0/0 0/0 .data @4780 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4780[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)turn_link__15daNpcKasiMich_cFi, -}; -#pragma pop + mType = getType(); + mMessageNo = getMessageNo(); -/* 80A2A5B8-80A2A5C4 -00001 000C+00 0/0 0/0 0/0 .data @4960 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4960[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__15daNpcKasiMich_cFi, -}; -#pragma pop + cPhs__Step phase = cPhs_ERROR_e; + for (int i = 0; i < 3; i++) { + phase = (cPhs__Step)dComIfG_resLoad(&mPhases[i], l_arcNames[i]); -/* 80A2A5C4-80A2A5D0 -00001 000C+00 0/0 0/0 0/0 .data @4968 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_4968[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__15daNpcKasiMich_cFi, -}; -#pragma pop + if (phase != cPhs_COMPLEATE_e) { + return phase; + } + } -/* 80A2A5D0-80A2A5DC -00001 000C+00 0/0 0/0 0/0 .data @5003 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5003[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__15daNpcKasiMich_cFi, -}; -#pragma pop + if (phase == cPhs_COMPLEATE_e) { + if (!fopAcM_entrySolidHeap(this, createHeapCallBack, 0x1940)) { + return cPhs_ERROR_e; + } -/* 80A2A5DC-80A2A5E8 -00001 000C+00 1/1 0/0 0/0 .data @5026 */ -SECTION_DATA static void* lit_5026[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)chace__15daNpcKasiMich_cFi, -}; + J3DModel* model = mpMorf->getModel(); + fopAcM_SetMtx(this, mpMorf->getModel()->getBaseTRMtx()); + fopAcM_setCullSizeBox(this, -60.0f, -10.0f, -60.0f, 60.0f, 220.0f, 60.0f); + mSound.init(¤t.pos, &eyePos, 3, 1); -/* 80A2A5E8-80A2A5F4 -00001 000C+00 1/1 0/0 0/0 .data @5043 */ -SECTION_DATA static void* lit_5043[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__15daNpcKasiMich_cFi, -}; + mAcchCir.SetWall(daNpcKasiMich_Param_c::m.common.width, daNpcKasiMich_Param_c::m.common.knee_length); + mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir, fopAcM_GetSpeed_p(this), + fopAcM_GetAngle_p(this), fopAcM_GetShapeAngle_p(this)); + mAcch.CrrPos(dComIfG_Bgsp()); + mCcStts.Init(0xFE, 0, this); + mCyl.Set(mCcDCyl); + mCyl.SetStts(&mCcStts); + mCyl.SetTgType(0); + mCyl.SetTgSPrm(0); + mCyl.SetH(daNpcKasiMich_Param_c::m.common.height); + mCyl.SetR(daNpcKasiMich_Param_c::m.common.width); + mGndChk = mAcch.m_gnd; + mGroundH = mAcch.GetGroundH(); -/* 80A2A5F4-80A2A600 -00001 000C+00 1/1 0/0 0/0 .data @5046 */ -SECTION_DATA static void* lit_5046[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)chace_st__15daNpcKasiMich_cFi, -}; + setEnvTevColor(); + setRoomNo(); + reset(); + Execute(); + } -/* 80A2A600-80A2A60C -00001 000C+00 0/0 0/0 0/0 .data @5106 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5106[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)chace__15daNpcKasiMich_cFi, -}; -#pragma pop + return phase; +} -/* 80A2A60C-80A2A618 -00001 000C+00 1/1 0/0 0/0 .data @5120 */ -SECTION_DATA static void* lit_5120[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__15daNpcKasiMich_cFi, -}; +/* 80A268A0-80A26A24 0007C0 0184+00 1/1 0/0 0/0 .text CreateHeap__15daNpcKasiMich_cFv */ +int daNpcKasiMich_c::CreateHeap() { + J3DModelData* mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_arcNames[0], BMDR_MICH); -/* 80A2A618-80A2A624 -00001 000C+00 1/1 0/0 0/0 .data @5134 */ -SECTION_DATA static void* lit_5134[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait_dummy__15daNpcKasiMich_cFi, -}; + JUT_ASSERT(314, 0 != mdlData_p); -/* 80A2A624-80A2A630 -00001 000C+00 1/1 0/0 0/0 .data @5148 */ -SECTION_DATA static void* lit_5148[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait_dummy__15daNpcKasiMich_cFi, -}; + mpMorf = new mDoExt_McaMorfSO(mdlData_p, NULL, NULL, NULL, -1, 1.0f, 0, -1, &mSound, 0x80000, 0x11020084); + if (mpMorf != NULL && mpMorf->getModel() == NULL) { + mpMorf->stopZelAnime(); + mpMorf = NULL; + } -/* 80A2A630-80A2A63C -00001 000C+00 1/1 0/0 0/0 .data @5201 */ -SECTION_DATA static void* lit_5201[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__15daNpcKasiMich_cFi, -}; + if (mpMorf == NULL) { + return 0; + } -/* 80A2A63C-80A2A648 -00001 000C+00 1/1 0/0 0/0 .data @5209 */ -SECTION_DATA static void* lit_5209[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait_dummy__15daNpcKasiMich_cFi, -}; + cXyz i_scale(1.0f, 0.8630768f, 1.0f); + mpMorf->offTranslate(); + mpMorf->setTranslateScale(i_scale); -/* 80A2A648-80A2A654 -00001 000C+00 1/1 0/0 0/0 .data @5261 */ -SECTION_DATA static void* lit_5261[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait_dummy__15daNpcKasiMich_cFi, -}; + J3DModel* model = mpMorf->getModel(); + for (u16 i = 0; i < mdlData_p->getJointNum(); i++) { + mdlData_p->getJointNodePointer(i)->setCallBack(ctrlJointCallBack); + } + model->setUserArea((u32)this); + + setMotion(MOT_W_WAIT_A, -1.0f, 0); + + return 1; +} + +/* 80A26A24-80A26A58 000944 0034+00 1/1 0/0 0/0 .text Delete__15daNpcKasiMich_cFv */ +int daNpcKasiMich_c::Delete() { + this->~daNpcKasiMich_c(); + return 1; +} + +/* 80A26A58-80A26A84 000978 002C+00 2/2 0/0 0/0 .text Execute__15daNpcKasiMich_cFv */ +int daNpcKasiMich_c::Execute() { + mFear = false; + execute(); + return 1; +} + +/* 80A26A84-80A26AD0 0009A4 004C+00 1/1 0/0 0/0 .text Draw__15daNpcKasiMich_cFv */ +int daNpcKasiMich_c::Draw() { + if (!mEscape) { + draw(FALSE, FALSE, daNpcKasiMich_Param_c::m.common.real_shadow_size, NULL, FALSE); + } + + return 1; +} + +/* 80A26AD0-80A26C5C 0009F0 018C+00 1/1 0/0 0/0 .text ctrlJoint__15daNpcKasiMich_cFP8J3DJointP8J3DModel */ +int daNpcKasiMich_c::ctrlJoint(J3DJoint* i_joint, J3DModel* i_model) { + int jntNo = i_joint->getJntNo(); + int i_jointList[3] = {1, 2, 3}; + + if (jntNo == 0) { + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(1)); + mDoMtx_stack_c::multVecZero(&mLookatPos[0]); + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(2)); + mDoMtx_stack_c::multVecZero(&mLookatPos[1]); + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(3)); + mDoMtx_stack_c::multVecZero(&mLookatPos[2]); + } + + mDoMtx_stack_c::copy(i_model->getAnmMtx(jntNo)); + + switch (jntNo) { + case 1: + case 2: + case 3: + setLookatMtx(jntNo, i_jointList, daNpcKasiMich_Param_c::m.common.neck_rotation_ratio); + break; + } + + i_model->setAnmMtx(jntNo, mDoMtx_stack_c::get()); + MTXCopy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx); + + return 1; +} + +/* 80A26C5C-80A26C7C 000B7C 0020+00 1/1 0/0 0/0 .text createHeapCallBack__15daNpcKasiMich_cFP10fopAc_ac_c */ +int daNpcKasiMich_c::createHeapCallBack(fopAc_ac_c* a_this) { + daNpcKasiMich_c* i_this = (daNpcKasiMich_c*)a_this; + return i_this->CreateHeap(); +} + +/* 80A26C7C-80A26CC8 000B9C 004C+00 1/1 0/0 0/0 .text ctrlJointCallBack__15daNpcKasiMich_cFP8J3DJointi */ +int daNpcKasiMich_c::ctrlJointCallBack(J3DJoint* i_joint, int param_2) { + if (param_2 == 0) { + J3DModel* model = j3dSys.getModel(); + daNpcKasiMich_c* i_this = (daNpcKasiMich_c*)model->getUserArea(); + + if (i_this != NULL) { + i_this->ctrlJoint(i_joint, model); + } + } + + return 1; +} + +/* 80A26CC8-80A26D34 000BE8 006C+00 1/0 0/0 0/0 .text setParam__15daNpcKasiMich_cFv */ +void daNpcKasiMich_c::setParam() { + attention_info.distances[fopAc_attn_LOCK_e] = getDistTableIdx(daNpcKasiMich_Param_c::m.common.attention_distance, daNpcKasiMich_Param_c::m.common.attention_angle); + attention_info.distances[fopAc_attn_TALK_e] = attention_info.distances[fopAc_attn_LOCK_e]; + attention_info.distances[fopAc_attn_SPEAK_e] = getDistTableIdx(daNpcKasiMich_Param_c::m.common.talk_distance, daNpcKasiMich_Param_c::m.common.talk_angle); + attention_info.flags = 10; +} + +/* 80A2A7F0-80A2A7F4 000058 0004+00 1/2 0/0 0/0 .bss mTargetTag__15daNpcKasiMich_c */ +daTagEscape_c* daNpcKasiMich_c::mTargetTag; + +/* 80A2A7F4-80A2A7F8 00005C 0004+00 0/1 0/0 0/0 .bss mTargetTagDist__15daNpcKasiMich_c */ +f32 daNpcKasiMich_c::mTargetTagDist; + +/* 80A2A7F8-80A2A7FC -00001 0004+00 2/3 0/0 0/0 .bss None */ +/* 80A2A7F8 0002+00 data_80A2A7F8 mWolfAngle__15daNpcKasiMich_c */ +/* 80A2A7FA 0002+00 data_80A2A7FA None */ +s16 daNpcKasiMich_c::mWolfAngle; + +/* 80A26D34-80A26FDC 000C54 02A8+00 1/0 0/0 0/0 .text main__15daNpcKasiMich_cFv */ +BOOL daNpcKasiMich_c::main() { + if (mSygnal >= 0) { + static daNpcKasiMich_c::actionFunc sSygnalAct[20] = { + &daNpcKasiMich_c::wait, + &daNpcKasiMich_c::chace, + &daNpcKasiMich_c::turn_link, + &daNpcKasiMich_c::turn_home, + &daNpcKasiMich_c::talk_dummy, + &daNpcKasiMich_c::escape, + &daNpcKasiMich_c::turn_center, + &daNpcKasiMich_c::wait_dummy, + &daNpcKasiMich_c::cheer, + &daNpcKasiMich_c::chace_st, + &daNpcKasiMich_c::kya, + &daNpcKasiMich_c::iyan, + &daNpcKasiMich_c::kya_stop, + &daNpcKasiMich_c::wait_dummy, + &daNpcKasiMich_c::iyan_look, + NULL, + &daNpcKasiMich_c::turn_hana, + &daNpcKasiMich_c::wait_dummy, + &daNpcKasiMich_c::kya2, + &daNpcKasiMich_c::fear, + }; + setAction(sSygnalAct[mSygnal]); + } + + if (mAction) { + (this->*mAction)(NULL); + } + + playMotion(); + + return TRUE; +} + +/* 80A26FDC-80A27184 000EFC 01A8+00 1/0 0/0 0/0 .text setAttnPos__15daNpcKasiMich_cFv */ +void daNpcKasiMich_c::setAttnPos() { + if (mLookMode == LOOK_RESET) { + for (int i = 0; i < 3; i++) { + mLookatAngle[i].setall(0); + } + } + + daNpcF_c::setMtx(); + lookat(); + + cXyz sp1c(10.0f, 15.0f, 0.0f); + + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(3)); + mDoMtx_stack_c::multVecZero(&mHeadPos); + mDoMtx_stack_c::multVec(&sp1c, &eyePos); + sp1c.x = 0.0f; + mDoMtx_stack_c::multVec(&sp1c, &sp1c); + + mHeadAngle.x = cLib_targetAngleX(&mHeadPos, &sp1c); + mHeadAngle.y = cLib_targetAngleY(&mHeadPos, &sp1c); + attention_info.position.set(mHeadPos.x, mHeadPos.y + daNpcKasiMich_Param_c::m.common.attention_offset, mHeadPos.z); + + cXyz sp28; + + mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(1)); + mDoMtx_stack_c::multVecZero(&sp28); + sp28.y = current.pos.y; + mCyl.SetC(sp28); + #ifdef DEBUG + mCyl.SetH(daNpcKasiMich_Param_c::m.common.height); + mCyl.SetR(daNpcKasiMich_Param_c::m.common.width); + #endif + dComIfG_Ccsp()->Set(&mCyl); +} + +/* 80A27184-80A27254 0010A4 00D0+00 1/0 0/0 0/0 .text setMotionAnm__15daNpcKasiMich_cFif */ +void daNpcKasiMich_c::setMotionAnm(int i_index, f32 i_morf) { + J3DAnmTransformKey* i_anm = getTrnsfrmKeyAnmP(l_arcNames[l_bckGetParamList[i_index].arcIdx], l_bckGetParamList[i_index].fileIdx); + int i_attr = l_bckGetParamList[i_index].attr; + mAnmFlags &= 0xFFFFFFF6; + + if (i_anm != NULL && setMcaMorfAnm(i_anm, 1.0f, i_morf, i_attr, 0, -1)) { + mAnmFlags |= ANM_PLAY_MORF | ANM_PAUSE_MORF; + mMotionLoops = 0; + } +} + +/* 80A27254-80A2729C 001174 0048+00 1/0 0/0 0/0 .text setMotion__15daNpcKasiMich_cFifi */ +void daNpcKasiMich_c::setMotion(int i_motion, f32 i_morf, int param_3) { + s16 motion = i_motion; + if ((param_3 != 0 || mMotion != motion) && i_motion >= 0 && i_motion < 0xD) { + mMotion = motion; + mMotionMorfOverride = i_morf; + mMotionPrevPhase = -1; + mMotionPhase = 0; + field_0x143e = 0; + } +} + +/* 80A2729C-80A272A4 0011BC 0008+00 1/0 0/0 0/0 .text drawDbgInfo__15daNpcKasiMich_cFv */ +BOOL daNpcKasiMich_c::drawDbgInfo() { + return FALSE; +} + +/* 80A272A4-80A274D8 0011C4 0234+00 1/1 0/0 0/0 .text reset__15daNpcKasiMich_cFv */ +void daNpcKasiMich_c::reset() { + initialize(); + mLookat.initialize(); + + for (int i = 0; i < 1; i++) { + mActorMngr[i].initialize(); + } + + mPath.initialize(); + + if (mType == 0) { + mPath.setPathInfo(getRailNo(), fopAcM_GetRoomNo(this), 0); + mPath.setIdx(6); + } else if (mType == 1) { + fopAcM_OnStatus(this, fopAcM_STATUS_UNK_004000); + } + + field_0x1430 = 0; + field_0x1434 = 0; + mAction = NULL; + mLookMode = -1; + mMode = 0; + current.pos.set(home.pos); + old.pos.set(current.pos); + current.angle.set(0, home.angle.y, 0); + old.angle = current.angle; + shape_angle = current.angle; + mCurAngle = current.angle; + mOldAngle = mCurAngle; + speedF = 0.0f; + speed.setall(0.0f); + field_0x142c = fpcM_ERROR_PROCESS_ID_e; + mOrderEvtNo = 0; + + J3DAnmTexPattern* i_btp = getTexPtrnAnmP(l_arcNames[0], 7); + mAnmFlags &= 0xFFFFF57F; + + if (setBtpAnm(i_btp, mpMorf->getModel()->getModelData(), 1.0f, J3DFrameCtrl::EMode_LOOP)) { + mAnmFlags |= ANM_FLAG_800 | ANM_PLAY_BTP | ANM_PAUSE_BTP; + } + + mTalked = false; + mFear = false; + mEscape = false; + field_0x1465 = 0; + setAction(&daNpcKasiMich_c::wait); + mMotionMorfOverride = 0.0f; +} + +/* 80A274D8-80A2790C 0013F8 0434+00 1/1 0/0 0/0 .text playMotion__15daNpcKasiMich_cFv */ +void daNpcKasiMich_c::playMotion() { + daNpcF_anmPlayData dat0 = {ANM_MICH_KYA_TALK, daNpcKasiMich_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat0[1] = {&dat0}; + daNpcF_anmPlayData dat1 = {ANM_MICH_IYAN_WAIT, daNpcKasiMich_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat1[1] = {&dat1}; + daNpcF_anmPlayData dat2 = {ANM_MICH_OUEN_WAIT_A, daNpcKasiMich_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat2[1] = {&dat2}; + daNpcF_anmPlayData dat3 = {ANM_MICH_OUEN_WAIT_B, daNpcKasiMich_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat3[1] = {&dat3}; + daNpcF_anmPlayData dat4 = {ANM_W_WAIT_A, daNpcKasiMich_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat4[1] = {&dat4}; + daNpcF_anmPlayData dat5 = {ANM_W_TALK_B, daNpcKasiMich_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat5[1] = {&dat5}; + daNpcF_anmPlayData dat6 = {ANM_W_WALK_A, daNpcKasiMich_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat6[1] = {&dat6}; + daNpcF_anmPlayData dat7 = {ANM_W_LOOK_B, daNpcKasiMich_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat7[1] = {&dat7}; + daNpcF_anmPlayData dat8 = {ANM_W_RUN_A, daNpcKasiMich_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat8[1] = {&dat8}; + daNpcF_anmPlayData dat9 = {ANM_W_TO_WOLF, daNpcKasiMich_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat9[1] = {&dat9}; + daNpcF_anmPlayData dat10 = {ANM_W_SURPRISE, daNpcKasiMich_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat10[1] = {&dat10}; + daNpcF_anmPlayData dat11a = {ANM_W_TALK_A, daNpcKasiMich_Param_c::m.common.morf_frame, 1}; + daNpcF_anmPlayData dat11b = {ANM_W_2LADYTALK_A, daNpcKasiMich_Param_c::m.common.morf_frame, 1}; + daNpcF_anmPlayData dat11c = {ANM_W_WAIT_A_2, daNpcKasiMich_Param_c::m.common.morf_frame, 1}; + daNpcF_anmPlayData dat11d = {ANM_W_TALK_B, daNpcKasiMich_Param_c::m.common.morf_frame, 1}; + daNpcF_anmPlayData dat11e = {ANM_W_WAIT_A_2, daNpcKasiMich_Param_c::m.common.morf_frame, 1}; + daNpcF_anmPlayData dat11f = {ANM_W_2NORMALTALK_A, daNpcKasiMich_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat11[6] = {&dat11a, &dat11b, &dat11c, &dat11d, &dat11e, &dat11f}; + daNpcF_anmPlayData dat12a = {ANM_W_2NORMALTALK_B, daNpcKasiMich_Param_c::m.common.morf_frame, 1}; + daNpcF_anmPlayData dat12b = {ANM_W_WAIT_A, daNpcKasiMich_Param_c::m.common.morf_frame, 0}; + daNpcF_anmPlayData* pDat12[2] = {&dat12a, &dat12b}; + + daNpcF_anmPlayData** ppDat[13] = { + pDat0, + pDat1, + pDat2, + pDat3, + pDat4, + pDat5, + pDat6, + pDat7, + pDat8, + pDat9, + pDat10, + pDat11, + pDat12 + }; + + if (mMotion >= 0 && mMotion < 0xD) { + field_0x143e = mMotionPhase; + + if (mMotion == MOT_W_TALK_A) { + playMotionAnmLoop(ppDat); + } else { + playMotionAnm(ppDat); + } + } +} + +/* 80A2790C-80A27A84 00182C 0178+00 1/1 0/0 0/0 .text playMotionAnmLoop__15daNpcKasiMich_cFPPPQ28daNpcF_c18daNpcF_anmPlayData */ +void daNpcKasiMich_c::playMotionAnmLoop(daNpcF_c::daNpcF_anmPlayData*** i_data) { + daNpcF_anmPlayData* playData = NULL; + + if (i_data[mMotion] != NULL) { + playData = i_data[mMotion][mMotionPhase]; + } + + if (playData != NULL) { + if (mMotionPrevPhase == mMotionPhase) { + if (playData->numLoops > 0 && playData->numLoops <= mMotionLoops) { + mMotionPhase++; + playData = i_data[mMotion][mMotionPhase]; + } else if (playData->numLoops == 0 && mMotionLoops >= 1) { + mMotionPhase = 0; + playData = i_data[mMotion][mMotionPhase]; + } + } + + if (playData != NULL && mMotionPrevPhase != mMotionPhase) { + setMotionAnm(playData->idx, 0.0f); + f32 i_morf = playData->morf; + + if (mMotionPhase == 0) { + if (mMotion == MOT_W_TALK_A) { + i_morf = daNpcKasiMich_Param_c::m.common.morf_frame; + } else if (0.0f <= mMotionMorfOverride) { + i_morf = mMotionMorfOverride; + } + } + + mExpressionMorf = 0.0f; + mpMorf->setMorf(i_morf); + } + } + + mMotionPrevPhase = mMotionPhase; +} + +/* 80A27A84-80A27B2C 0019A4 00A8+00 10/10 0/0 0/0 .text setAction__15daNpcKasiMich_cFM15daNpcKasiMich_cFPCvPvi_i */ +BOOL daNpcKasiMich_c::setAction(actionFunc action) { + mMode = -1; + + if (mAction) { + (this->*mAction)(NULL); + } + + mMode = 0; + mAction = action; + + if (mAction) { + (this->*mAction)(NULL); + } + + return TRUE; +} + +/* 80A27B2C-80A27B50 001A4C 0024+00 8/8 0/0 0/0 .text setLookMode__15daNpcKasiMich_cFi */ +void daNpcKasiMich_c::setLookMode(int i_lookMode) { + if (i_lookMode >= 0 && i_lookMode < 4 && i_lookMode != mLookMode) { + mLookMode = i_lookMode; + } +} + +/* 80A27B50-80A27D30 001A70 01E0+00 1/1 0/0 0/0 .text lookat__15daNpcKasiMich_cFv */ +void daNpcKasiMich_c::lookat() { + daPy_py_c* player = NULL; + J3DModel* model = mpMorf->getModel(); + BOOL i_snap = FALSE; + f32 body_angleX_min = daNpcKasiMich_Param_c::m.common.body_angleX_min; + f32 body_angleX_max = daNpcKasiMich_Param_c::m.common.body_angleX_max; + f32 body_angleY_min = daNpcKasiMich_Param_c::m.common.body_angleY_min; + f32 body_angleY_max = daNpcKasiMich_Param_c::m.common.body_angleY_max; + f32 head_angleX_min = daNpcKasiMich_Param_c::m.common.head_angleX_min; + f32 head_angleX_max = daNpcKasiMich_Param_c::m.common.head_angleX_max; + f32 head_angleY_min = daNpcKasiMich_Param_c::m.common.head_angleY_min; + f32 head_angleY_max = daNpcKasiMich_Param_c::m.common.head_angleY_max; + s16 angle_delta = mCurAngle.y - mOldAngle.y; + cXyz lookatPos[3] = {mLookatPos[0], mLookatPos[1], mLookatPos[2]}; + csXyz* lookatAngle[3] = {&mLookatAngle[0], &mLookatAngle[1], &mLookatAngle[2]}; + cXyz spe8; + + switch (mLookMode) { + case LOOK_NONE: + break; + + case LOOK_RESET: + i_snap = TRUE; + break; + + case LOOK_PLAYER: + case LOOK_PLAYER_TALK: + player = daPy_getPlayerActorClass(); + + if (mLookMode != LOOK_PLAYER_TALK) { + break; + } + + head_angleY_min = -80.0f; + head_angleY_max = 80.0f; + break; + } + + if (player != NULL) { + mLookPos = player->attention_info.position; + + if (mLookMode != LOOK_PLAYER && mLookMode != LOOK_PLAYER_TALK) { + mLookPos.y -= 40.0f; + } + + mLookat.setAttnPos(&mLookPos); + } else { + mLookat.setAttnPos(NULL); + } + + mLookat.setParam(body_angleX_min, body_angleX_max, body_angleY_min, body_angleY_max, 0.0f, 0.0f, 0.0f, 0.0f, + head_angleX_min, head_angleX_max, head_angleY_min, head_angleY_max, mCurAngle.y, lookatPos); + mLookat.calc(this, model->getBaseTRMtx(), lookatAngle, i_snap, angle_delta, FALSE); +} + +/* 80A27D30-80A27E24 001C50 00F4+00 1/1 0/0 0/0 .text step__15daNpcKasiMich_cFsi */ +BOOL daNpcKasiMich_c::step(s16 i_targetAngle, int param_2) { + if (mTurnMode == 0) { + mTurnTargetAngle = i_targetAngle; + mTurnAmount = 0; + + if (mCurAngle.y == mTurnTargetAngle) { + mTurnMode++; + } + + current.angle.y = mCurAngle.y; + shape_angle.y = current.angle.y; + mTurnMode++; + } else if (mTurnMode == 1) { + if (daNpcF_c::turn(mTurnTargetAngle, 15.0f, 0)) { + shape_angle.y = current.angle.y; + mCurAngle.y = current.angle.y; + mOldAngle.y = current.angle.y; + mTurnMode++; + } else { + shape_angle.y = current.angle.y; + mCurAngle.y = current.angle.y; + } + } + + return mTurnMode > 1; +} + +/* 80A27E24-80A27F08 001D44 00E4+00 1/1 0/0 0/0 .text chkFindPlayer__15daNpcKasiMich_cFv */ +BOOL daNpcKasiMich_c::chkFindPlayer() { + if (!chkActorInSight(daPy_getPlayerActorClass(), daNpcKasiMich_Param_c::m.common.fov)) { + mActorMngr[0].remove(); + return FALSE; + } + + bool rv; + if (mActorMngr[0].getActorP() == NULL) { + rv = chkPlayerInSpeakArea(this); + } else { + rv = chkPlayerInTalkArea(this); + } + + if (rv) { + mActorMngr[0].entry(daPy_getPlayerActorClass()); + } else { + mActorMngr[0].remove(); + } + + return rv; +} + +/* 80A27F08-80A282B4 001E28 03AC+00 8/0 0/0 0/0 .text wait__15daNpcKasiMich_cFi */ +int daNpcKasiMich_c::wait(int param_1) { + // NONMATCHING + switch (mMode) { + case -1: + break; + + case 0: + if (mType == 0 && !field_0x1465) { + setMotion(MOT_W_TALK_A, -1.0f, 0); + } else { + setMotion(MOT_W_WAIT_A, -1.0f, 0); + } + + speedF = 0.0f; + mMode = 1; + break; + + case 1: + chkFindPlayer(); + + if (mActorMngr[0].getActorP() != NULL) { + setLookMode(LOOK_PLAYER); + } else if (!fopAcM_isSwitch(this, 12) && !dComIfGp_event_runCheck()) { + setLookMode(LOOK_NONE); + if (home.angle.y != mCurAngle.y && step(home.angle.y, 1)) { + if (mType == 0 && !field_0x1465) { + setMotion(MOT_W_TALK_A, -1.0f, 0); + } else { + setMotion(MOT_W_WAIT_A, -1.0f, 0); + } + + mTurnMode = 0; + } + } + + /* dSv_event_flag_c::F_290 - Castle Town - Star Game 1 cleared */ + if (daNpcF_chkEvtBit(290) && field_0x1465 && mType == 0 && fopAcM_isSwitch(this, 12)) { + if (pl_front_check()) { + if (fopAcM_searchActorDistanceXZ(this, daPy_getPlayerActorClass()) >= 450.0f) { + setAction(&daNpcKasiMich_c::chace); + return 1; + } + } else { + setAction(&daNpcKasiMich_c::turn_link); + return 1; + } + } + + if (dComIfGp_event_runCheck()) { + if (eventInfo.checkCommandTalk()) { + if (!dComIfGp_event_chkTalkXY() || dComIfGp_evmng_ChkPresentEnd()) { + OS_REPORT("------------------mich talk reset!!\n"); + + mTalked = true; + dComIfGp_event_reset(); + } + } + } else { + if (!dKy_darkworld_check()) { + if (daPy_py_c::checkNowWolf()) { + f32 fVar1 = pow(500.0, 2.0); + if (fopAcM_searchPlayerDistanceXZ2(this) < fVar1) { + mFear = true; + break; + } + } + } + + if (mOrderEvtNo != 0) { + eventInfo.setArchiveName(l_arcNames[0]); + } + + orderEvent(field_0x1469, l_evtNames[mOrderEvtNo], 0xFFFF, 40, 0xFF, 1); + } + break; + + default: + JUT_ASSERT(1301, 0); + break; + } + + return 1; +} + +/* 80A282B4-80A28490 0021D4 01DC+00 1/0 0/0 0/0 .text fear__15daNpcKasiMich_cFi */ +int daNpcKasiMich_c::fear(int param_1) { + switch (mMode) { + case -1: + break; + + case 0: { + daTagEscape_c* tagEscape_p = srchWolfTag(); + if (tagEscape_p != NULL) { + mPath.initialize(); + mPath.setPathInfo(tagEscape_p->getPathID(), fopAcM_GetRoomNo(this), 0); + mPath.setIdx(getWolfPathNearIdx()); + mMode = 1; + } + break; + } + + case 1: + if (_turn_to_link(0x1000)) { + setMotion(MOT_W_SURPRISE, -1.0f, 0); + mMode = 3; + } + break; + + case 3: + if (mpMorf->isStop()) { + setMotion(MOT_W_RUN_A, -1.0f, 0); + fopAcM_SetSpeedF(this, 15.0f); + mSound.startCreatureVoice(Z2SE_MICH_V_FEAR, -1); + mMode = 4; + } + break; + + case 4: { + cXyz sp28; + mpMorf->setPlaySpeed(1.5f); + + if (mPath.getDstPos(current.pos, sp28)) { + mEscape = true; + mMode = -1; + } else { + _turn_pos(sp28, 800); + } + break; + } + } + + return 1; +} + +/* 80A28490-80A284F8 0023B0 0068+00 1/1 0/0 0/0 .text srchWolfTag__15daNpcKasiMich_cFv */ +daTagEscape_c* daNpcKasiMich_c::srchWolfTag() { + mTargetTag = NULL; + mWolfAngle = fopAcM_searchPlayerAngleY(this); + fpcM_Search(_srch_escape_tag, this); + return mTargetTag; +} + +/* 80A284F8-80A285C8 002418 00D0+00 1/1 0/0 0/0 .text _srch_escape_tag__15daNpcKasiMich_cFPvPv */ +void* daNpcKasiMich_c::_srch_escape_tag(void* i_actor, void* i_data) { + if (!fopAcM_IsActor(i_actor)) { + return NULL; + } + + if (fopAcM_GetName(i_actor) != PROC_Tag_Escape) { + return NULL; + } + + int iVar1 = cLib_distanceAngleS(mWolfAngle, fopAcM_searchActorAngleY((fopAc_ac_c*)i_data, (fopAc_ac_c*)i_actor)); + + if (mTargetTag == NULL) { + mTargetTagDist = fopAcM_searchActorDistanceXZ2((fopAc_ac_c*)i_data, (fopAc_ac_c*)i_actor); + mTargetTag = (daTagEscape_c*)i_actor; + return NULL; + } + + if (iVar1 > 0x4000) { + f32 fVar1 = fopAcM_searchActorDistanceXZ2((fopAc_ac_c*)i_data, (fopAc_ac_c*)i_actor); + if (fVar1 < mTargetTagDist) { + mTargetTagDist = fVar1; + mTargetTag = (daTagEscape_c*)i_actor; + } + } + + return NULL; +} + +/* 80A285C8-80A286FC 0024E8 0134+00 1/1 0/0 0/0 .text getWolfPathNearIdx__15daNpcKasiMich_cFv */ +int daNpcKasiMich_c::getWolfPathNearIdx() { + int iVar1 = 0; + f32 fVar1 = 0.0f; + u16 numPnts = mPath.getNumPnts(); + cXyz sp44, sp50; + + int rv = 0; + for (; rv < numPnts; rv++) { + sp44 = mPath.getPntPos(rv); + sp50 = sp44 - current.pos; + f32 fVar2 = sp50.abs2XZ(); + + if (rv == 0) { + fVar1 = fVar2; + iVar1 = 0; + } else if (fVar2 < fVar1) { + fVar1 = fVar2; + iVar1 = rv; + } + } + + rv = iVar1 + 1; + + if (iVar1 == numPnts) { + rv = iVar1; + } + + return rv; +} + +/* 80A286FC-80A287A0 00261C 00A4+00 2/0 0/0 0/0 .text chace_st__15daNpcKasiMich_cFi */ +int daNpcKasiMich_c::chace_st(int param_1) { + // NONMATCHING + switch (mMode) { + case -1: + break; + + case 0: + field_0x1465 = true; + fopAcM_SetSpeedF(this, 0.0f); + mMode = 1; + break; + + case 1: + if (_turn_to_link(0xC00)) { + setAction(&daNpcKasiMich_c::chace); + } + break; + } + + return 1; +} + +/* 80A287A0-80A28910 0026C0 0170+00 4/0 0/0 0/0 .text chace__15daNpcKasiMich_cFi */ +int daNpcKasiMich_c::chace(int param_1) { + // NONMATCHING + switch (mMode) { + case -1: + break; + + case 0: + setMotion(MOT_W_RUN_A, -1.0f, 0); + setLookMode(LOOK_NONE); + fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f); + fopAcM_SetSpeedF(this, 14.0f); + field_0x1465 = 1; + mMode = 1; + break; + + case 1: + cXyz chacePos = getChacePos(); + _turn_pos(chacePos, 0x800); + + if (pl_front_check()) { + if (fopAcM_searchActorDistanceXZ(this, daPy_getPlayerActorClass()) < 400.0f) { + setAction(&daNpcKasiMich_c::wait); + } + } else { + setAction(&daNpcKasiMich_c::chace_st); + } + break; + } + + return 1; +} + +/* 80A28910-80A289CC 002830 00BC+00 1/1 0/0 0/0 .text getChacePos__15daNpcKasiMich_cFv */ +cXyz daNpcKasiMich_c::getChacePos() { + int plPoint = mPlPoint; + int idx = mPath.getIdx(); + + if (idx == plPoint) { + return *fopAcM_GetPosition_p(daPy_getPlayerActorClass()); + } + + if (idx < plPoint) { + mPath.offReverse(); + } else if (idx > plPoint) { + mPath.onReverse(); + } + + cXyz chacePos; + mPath.getDstPos(current.pos, chacePos); + + return chacePos; +} + +/* 80A289CC-80A28A8C 0028EC 00C0+00 2/0 0/0 0/0 .text turn_link__15daNpcKasiMich_cFi */ +int daNpcKasiMich_c::turn_link(int param_1) { + // NONMATCHING + switch (mMode) { + case -1: + break; + + case 0: + setMotion(MOT_W_WAIT_A, -1.0f, 0); + speedF = 0.0f; + mMode = 1; + break; + + case 1: + if (_turn_to_link(0x1000)) { + setAction(&daNpcKasiMich_c::wait); + break; + } + } + + return 1; +} + +/* 80A28A8C-80A28B70 0029AC 00E4+00 1/0 0/0 0/0 .text turn_home__15daNpcKasiMich_cFi */ +int daNpcKasiMich_c::turn_home(int param_1) { + // NONMATCHING + switch (mMode) { + case -1: + break; + + case 0: + setLookMode(LOOK_NONE); + setMotion(MOT_W_WAIT_A, -1.0f, 0); + speedF = 0.0f; + mMode = 1; + break; + + case 1: + BOOL bVar1 = cLib_chaseAngleS(&mCurAngle.y, home.angle.y, 0x1000); + current.angle.y = mCurAngle.y; + shape_angle.y = current.angle.y; + + if (bVar1) { + setAction(&daNpcKasiMich_c::wait_dummy); + } + break; + } + + return 1; +} + +/* 80A28B70-80A28C40 002A90 00D0+00 1/0 0/0 0/0 .text turn_center__15daNpcKasiMich_cFi */ +int daNpcKasiMich_c::turn_center(int param_1) { + // NONMATCHING + switch (mMode) { + case -1: + break; + + case 0: + setLookMode(LOOK_NONE); + setMotion(MOT_W_WAIT_A, -1.0f, 0); + speedF = 0.0f; + mMode = 1; + break; + + case 1: + if (_turn_pos(mCenterPos, 0x1000)) { + setAction(&daNpcKasiMich_c::wait_dummy); + } + break; + } + + return 1; +} + +/* 80A28C40-80A28CB8 002B60 0078+00 1/0 0/0 0/0 .text talk_dummy__15daNpcKasiMich_cFi */ +int daNpcKasiMich_c::talk_dummy(int param_1) { + switch (mMode) { + case -1: + break; + + case 0: + setMotion(MOT_MICH_KYA_TALK, -1.0f, 0); + speedF = 0.0f; + mMode = 1; + break; + + case 1: + break; + } + + return 1; +} + +/* 80A28CB8-80A28D90 002BD8 00D8+00 1/0 0/0 0/0 .text kya__15daNpcKasiMich_cFi */ +int daNpcKasiMich_c::kya(int param_1) { + switch (mMode) { + case -1: + break; + + case 0: + setMotion(MOT_MICH_KYA_TALK, -1.0f, 0); + speedF = 0.0f; + mpMorf->setPlaySpeed(0.0f); + field_0x1440 = 16; + mMode = 1; + break; + + case 1: + if (field_0x1440 > 0) { + field_0x1440--; + + if (field_0x1440 == 0) { + mpMorf->setPlaySpeed(1.0f); + } else { + mpMorf->setPlaySpeed(0.0f); + } + } + break; + } + + return 1; +} + +/* 80A28D90-80A28E28 002CB0 0098+00 1/0 0/0 0/0 .text kya2__15daNpcKasiMich_cFi */ +int daNpcKasiMich_c::kya2(int param_1) { + switch (mMode) { + case -1: + break; + + case 0: + setMotion(MOT_MICH_KYA_TALK, -1.0f, 0); + setLookMode(LOOK_NONE); + speedF = 0.0f; + mpMorf->setPlaySpeed(1.0f); + mMode = 1; + break; + + case 1: + break; + } + + return 1; +} + +/* 80A28E28-80A28EFC 002D48 00D4+00 1/0 0/0 0/0 .text kya_stop__15daNpcKasiMich_cFi */ +int daNpcKasiMich_c::kya_stop(int param_1) { + // NONMATCHING + switch (mMode) { + case -1: + break; + + case 0: + if (mMotion != MOT_MICH_KYA_TALK) { + setAction(&daNpcKasiMich_c::wait); + } else { + mMode = 1; + } + break; + + case 1: + if (mpMorf->getFrame() == 19.0f || mpMorf->getFrame() == 1.0f) { + setAction(&daNpcKasiMich_c::wait_dummy); + } + break; + } + + return 1; +} + +/* 80A28EFC-80A28F74 002E1C 0078+00 1/0 0/0 0/0 .text iyan__15daNpcKasiMich_cFi */ +int daNpcKasiMich_c::iyan(int param_1) { + switch (mMode) { + case -1: + break; + + case 0: + setMotion(MOT_MICH_IYAN_WAIT, -1.0f, 0); + speedF = 0.0f; + mMode = 1; + break; + + case 1: + break; + } + + return 1; +} + +/* 80A28F74-80A2908C 002E94 0118+00 1/0 0/0 0/0 .text escape__15daNpcKasiMich_cFi */ +int daNpcKasiMich_c::escape(int param_1) { + switch (mMode) { + case -1: + break; + + case 0: + setMotion(MOT_W_RUN_A, -1.0f, 0); + fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f); + fopAcM_SetSpeedF(this, 0.0f); + field_0x1430 = daNpcKasiMich_Param_c::m.escape_time; + mMode = 1; + break; + + case 1: + if (--field_0x1430 <= 0) { + fopAcM_SetSpeedF(this, daNpcKasiMich_Param_c::m.escape_spd); + mSound.startCreatureVoice(Z2SE_MICH_V_FEAR, -1); + mMode = 2; + } + break; + + case 2: + _turn_pos(mChacePos, 0x1000); + mpMorf->setPlaySpeed(1.75f); + break; + } + + return 1; +} + +/* 80A2908C-80A29164 002FAC 00D8+00 1/0 0/0 0/0 .text iyan_look__15daNpcKasiMich_cFi */ +int daNpcKasiMich_c::iyan_look(int param_1) { + // NONMATCHING + switch (mMode) { + case -1: + break; + + case 0: + setMotion(MOT_MICH_IYAN_WAIT, -1.0f, 0); + speedF = 0.0f; + field_0x1440 = 86; + setLookMode(LOOK_NONE); + mMode = 1; + break; + + case 1: + field_0x1440--; + if (field_0x1440 == 0) { + setAction(&daNpcKasiMich_c::wait_dummy); + } + break; + } + + return 1; +} + +/* 80A29164-80A291E8 003084 0084+00 1/0 0/0 0/0 .text turn_hana__15daNpcKasiMich_cFi */ +int daNpcKasiMich_c::turn_hana(int param_1) { + switch (mMode) { + case -1: + break; + + case 0: + speedF = 0.0f; + setLookMode(LOOK_NONE); + setMotion(MOT_W_2NORMALTALK_B, -1.0f, 0); + mMode = 1; + break; + + case 1: + break; + } + + return 1; +} + +/* 80A291E8-80A2926C 003108 0084+00 7/0 0/0 0/0 .text wait_dummy__15daNpcKasiMich_cFi */ +int daNpcKasiMich_c::wait_dummy(int param_1) { + switch (mMode) { + case -1: + break; + + case 0: + setMotion(MOT_W_WAIT_A, -1.0f, 0); + fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f); + fopAcM_SetSpeedF(this, 0.0f); + mMode = 1; + break; + + case 1: + break; + } + + return 1; +} + +/* 80A2926C-80A29458 00318C 01EC+00 1/0 0/0 0/0 .text cheer__15daNpcKasiMich_cFi */ +int daNpcKasiMich_c::cheer(int param_1) { + // NONMATCHING + switch (mMode) { + case -1: + break; + + case 0: + /* dSv_event_flag_c::F_290 - Castle Town - Star Game 1 cleared */ + if (daNpcF_chkEvtBit(290)) { + setMotion(MOT_MICH_OUEN_WAIT_B, -1.0f, 0); + } else { + setMotion(MOT_MICH_OUEN_WAIT_A, -1.0f, 0); + } + + setLookMode(LOOK_PLAYER); + fopAcM_SetSpeed(this, 0.0f, 0.0f, 0.0f); + fopAcM_SetSpeedF(this, 0.0f); + mpMorf->setPlaySpeed(0.0f); + mTalked = false; + field_0x1440 = 20; + mMode = 1; + break; + + case 1: + if (field_0x1440 > 0) { + field_0x1440--; + + if (field_0x1440 == 0) { + mpMorf->setPlaySpeed(1.0f); + } else { + mpMorf->setPlaySpeed(0.0f); + } + } + + cLib_chaseAngleS(&mCurAngle.y, home.angle.y, 0x400); + current.angle.y = mCurAngle.y; + shape_angle.y = mCurAngle.y; + + if (dComIfGp_event_runCheck()) { + if (eventInfo.checkCommandTalk()) { + if (!dComIfGp_event_chkTalkXY() || dComIfGp_evmng_ChkPresentEnd()) { + mTalked = true; + dComIfGp_event_reset(); + } + } + } else { + orderEvent(field_0x1469, l_evtNames[mOrderEvtNo], 0xFFFF, 4, 0xFF, 2); + } + break; + } + + return 1; +} + +/* 80A29458-80A294A4 003378 004C+00 3/3 0/0 0/0 .text _turn_to_link__15daNpcKasiMich_cFs */ +BOOL daNpcKasiMich_c::_turn_to_link(s16 param_1) { + cXyz pos(*fopAcM_GetPosition_p(daPy_getPlayerActorClass())); + return _turn_pos(pos, param_1); + +} + +/* 80A294A4-80A29500 0033C4 005C+00 5/5 0/0 0/0 .text _turn_pos__15daNpcKasiMich_cFRC4cXyzs */ +BOOL daNpcKasiMich_c::_turn_pos(cXyz const& param_1, s16 param_2) { + BOOL rv = cLib_chaseAngleS(&mCurAngle.y, cLib_targetAngleY(¤t.pos, ¶m_1), param_2); + current.angle.y = mCurAngle.y; + shape_angle.y = mCurAngle.y; + return rv; +} + +/* 80A29500-80A295D8 003420 00D8+00 2/2 0/0 0/0 .text actor_front_check__15daNpcKasiMich_cFP10fopAc_ac_c */ +BOOL daNpcKasiMich_c::actor_front_check(fopAc_ac_c* actor_p) { + if (actor_p == NULL) { + return TRUE; + } + + cXyz sp24(*fopAcM_GetPosition_p(actor_p)); + cXyz sp30(sp24 - current.pos); + cXyz sp3c(0.0f, 0.0f, 1.0f); + cXyz sp48; + _getOffset(sp3c, sp48); + + return (sp30.x * sp48.x + sp30.z * sp48.z) >= 0.0f; +} + +/* 80A295D8-80A29644 0034F8 006C+00 1/1 0/0 0/0 .text _getOffset__15daNpcKasiMich_cFRC4cXyzR4cXyz */ +void daNpcKasiMich_c::_getOffset(cXyz const& param_1, cXyz& param_2) { + param_2 = param_1; + csXyz angle(*fopAcM_GetShapeAngle_p(this)); + mDoMtx_stack_c::ZXYrotS(angle); + mDoMtx_stack_c::multVec(¶m_2, ¶m_2); +} + +/* 80A29644-80A29664 003564 0020+00 1/0 0/0 0/0 .text daNpcKasiMich_Create__FPv */ +static int daNpcKasiMich_Create(void* a_this) { + return static_cast(a_this)->Create(); +} + +/* 80A29664-80A29684 003584 0020+00 1/0 0/0 0/0 .text daNpcKasiMich_Delete__FPv */ +static int daNpcKasiMich_Delete(void* a_this) { + return static_cast(a_this)->Delete(); +} + +/* 80A29684-80A296A4 0035A4 0020+00 1/0 0/0 0/0 .text daNpcKasiMich_Execute__FPv */ +static int daNpcKasiMich_Execute(void* a_this) { + return static_cast(a_this)->Execute(); +} + +/* 80A296A4-80A296C4 0035C4 0020+00 1/0 0/0 0/0 .text daNpcKasiMich_Draw__FPv */ +static int daNpcKasiMich_Draw(void* a_this) { + return static_cast(a_this)->Draw(); +} + +/* 80A296C4-80A296CC 0035E4 0008+00 1/0 0/0 0/0 .text daNpcKasiMich_IsDelete__FPv */ +static int daNpcKasiMich_IsDelete(void* a_this) { + return 1; +} + +AUDIO_INSTANCES; /* 80A2A654-80A2A674 -00001 0020+00 1/0 0/0 0/0 .data daNpcKasiMich_MethodTable */ static actor_method_class daNpcKasiMich_MethodTable = { - (process_method_func)daNpcKasiMich_Create__FPv, - (process_method_func)daNpcKasiMich_Delete__FPv, - (process_method_func)daNpcKasiMich_Execute__FPv, - (process_method_func)daNpcKasiMich_IsDelete__FPv, - (process_method_func)daNpcKasiMich_Draw__FPv, + (process_method_func)daNpcKasiMich_Create, + (process_method_func)daNpcKasiMich_Delete, + (process_method_func)daNpcKasiMich_Execute, + (process_method_func)daNpcKasiMich_IsDelete, + (process_method_func)daNpcKasiMich_Draw, }; /* 80A2A674-80A2A6A4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_KASIMICH */ @@ -650,1279 +1471,3 @@ extern actor_process_profile_definition g_profile_NPC_KASIMICH = { fopAc_NPC_e, // mActorType fopAc_CULLBOX_CUSTOM_e, // cullType }; - -/* 80A2A6A4-80A2A6EC 0003F0 0048+00 2/2 0/0 0/0 .data __vt__15daNpcKasiMich_c */ -SECTION_DATA extern void* __vt__15daNpcKasiMich_c[18] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__15daNpcKasiMich_cFv, - (void*)setParam__15daNpcKasiMich_cFv, - (void*)main__15daNpcKasiMich_cFv, - (void*)ctrlBtk__8daNpcF_cFv, - (void*)adjustShapeAngle__15daNpcKasiMich_cFv, - (void*)setMtx__8daNpcF_cFv, - (void*)setMtx2__8daNpcF_cFv, - (void*)setAttnPos__15daNpcKasiMich_cFv, - (void*)setCollisions__8daNpcF_cFv, - (void*)setExpressionAnm__8daNpcF_cFib, - (void*)setExpressionBtp__8daNpcF_cFi, - (void*)setExpression__8daNpcF_cFif, - (void*)setMotionAnm__15daNpcKasiMich_cFif, - (void*)setMotion__15daNpcKasiMich_cFifi, - (void*)drawDbgInfo__15daNpcKasiMich_cFv, - (void*)drawOtherMdls__8daNpcF_cFv, -}; - -/* 80A2A6EC-80A2A6F8 000438 000C+00 3/3 0/0 0/0 .data __vt__12J3DFrameCtrl */ -SECTION_DATA extern void* __vt__12J3DFrameCtrl[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12J3DFrameCtrlFv, -}; - -/* 80A2A6F8-80A2A71C 000444 0024+00 3/3 0/0 0/0 .data __vt__12dBgS_ObjAcch */ -SECTION_DATA extern void* __vt__12dBgS_ObjAcch[9] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12dBgS_ObjAcchFv, - (void*)NULL, - (void*)NULL, - (void*)func_80A2A030, - (void*)NULL, - (void*)NULL, - (void*)func_80A2A028, -}; - -/* 80A2A71C-80A2A728 000468 000C+00 3/3 0/0 0/0 .data __vt__10cCcD_GStts */ -SECTION_DATA extern void* __vt__10cCcD_GStts[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10cCcD_GSttsFv, -}; - -/* 80A2A728-80A2A734 000474 000C+00 2/2 0/0 0/0 .data __vt__10dCcD_GStts */ -SECTION_DATA extern void* __vt__10dCcD_GStts[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__10dCcD_GSttsFv, -}; - -/* 80A2A734-80A2A740 000480 000C+00 2/2 0/0 0/0 .data __vt__12dBgS_AcchCir */ -SECTION_DATA extern void* __vt__12dBgS_AcchCir[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12dBgS_AcchCirFv, -}; - -/* 80A2A740-80A2A74C 00048C 000C+00 4/4 0/0 0/0 .data __vt__18daNpcF_ActorMngr_c */ -SECTION_DATA extern void* __vt__18daNpcF_ActorMngr_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__18daNpcF_ActorMngr_cFv, -}; - -/* 80A2A74C-80A2A758 000498 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGCyl */ -SECTION_DATA extern void* __vt__8cM3dGCyl[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGCylFv, -}; - -/* 80A2A758-80A2A764 0004A4 000C+00 3/3 0/0 0/0 .data __vt__8cM3dGAab */ -SECTION_DATA extern void* __vt__8cM3dGAab[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__8cM3dGAabFv, -}; - -/* 80A2A764-80A2A770 0004B0 000C+00 4/4 0/0 0/0 .data __vt__16daNpcF_SPCurve_c */ -SECTION_DATA extern void* __vt__16daNpcF_SPCurve_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__16daNpcF_SPCurve_cFv, -}; - -/* 80A2A770-80A2A77C 0004BC 000C+00 3/3 0/0 0/0 .data __vt__13daNpcF_Path_c */ -SECTION_DATA extern void* __vt__13daNpcF_Path_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__13daNpcF_Path_cFv, -}; - -/* 80A2A77C-80A2A788 0004C8 000C+00 3/3 0/0 0/0 .data __vt__15daNpcF_Lookat_c */ -SECTION_DATA extern void* __vt__15daNpcF_Lookat_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__15daNpcF_Lookat_cFv, -}; - -/* 80A261CC-80A26384 0000EC 01B8+00 1/1 0/0 0/0 .text __ct__15daNpcKasiMich_cFv */ -daNpcKasiMich_c::daNpcKasiMich_c() { - // NONMATCHING -} - -/* 80A26384-80A263CC 0002A4 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */ -// cM3dGCyl::~cM3dGCyl() { -extern "C" void __dt__8cM3dGCylFv() { - // NONMATCHING -} - -/* 80A263CC-80A26414 0002EC 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -// cM3dGAab::~cM3dGAab() { -extern "C" void __dt__8cM3dGAabFv() { - // NONMATCHING -} - -/* 80A26414-80A26624 000334 0210+00 1/0 0/0 0/0 .text __dt__15daNpcKasiMich_cFv */ -daNpcKasiMich_c::~daNpcKasiMich_c() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A2A04C-80A2A0C0 000000 0074+00 17/17 0/0 0/0 .rodata m__21daNpcKasiMich_Param_c */ -SECTION_RODATA u8 const daNpcKasiMich_Param_c::m[116] = { - 0x42, 0x5C, 0x00, 0x00, 0xC0, 0x40, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x43, 0xFA, 0x00, - 0x00, 0x43, 0x58, 0x00, 0x00, 0x43, 0x0C, 0x00, 0x00, 0x42, 0x0C, 0x00, 0x00, 0x41, 0xF0, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0xC1, - 0x20, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00, 0xC1, 0x20, 0x00, 0x00, 0x42, 0x34, 0x00, 0x00, - 0xC2, 0x34, 0x00, 0x00, 0x3F, 0x19, 0x99, 0x9A, 0x41, 0x40, 0x00, 0x00, 0x00, 0x02, 0x00, - 0x06, 0x00, 0x03, 0x00, 0x06, 0x42, 0x70, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, 0x43, 0x96, - 0x00, 0x00, 0xC3, 0x96, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x41, 0x80, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A2A04C, &daNpcKasiMich_Param_c::m); - -/* 80A2A0C0-80A2A0C4 000074 0004+00 0/1 0/0 0/0 .rodata @4197 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4197 = -60.0f; -COMPILER_STRIP_GATE(0x80A2A0C0, &lit_4197); -#pragma pop - -/* 80A2A0C4-80A2A0C8 000078 0004+00 0/1 0/0 0/0 .rodata @4198 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4198 = -10.0f; -COMPILER_STRIP_GATE(0x80A2A0C4, &lit_4198); -#pragma pop - -/* 80A2A0C8-80A2A0CC 00007C 0004+00 0/1 0/0 0/0 .rodata @4199 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4199 = 60.0f; -COMPILER_STRIP_GATE(0x80A2A0C8, &lit_4199); -#pragma pop - -/* 80A2A0CC-80A2A0D0 000080 0004+00 0/1 0/0 0/0 .rodata @4200 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4200 = 220.0f; -COMPILER_STRIP_GATE(0x80A2A0CC, &lit_4200); -#pragma pop - -/* 80A26624-80A268A0 000544 027C+00 1/1 0/0 0/0 .text Create__15daNpcKasiMich_cFv */ -void daNpcKasiMich_c::Create() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A2A0D0-80A2A0D4 000084 0004+00 4/8 0/0 0/0 .rodata @4247 */ -SECTION_RODATA static f32 const lit_4247 = 1.0f; -COMPILER_STRIP_GATE(0x80A2A0D0, &lit_4247); - -/* 80A2A0D4-80A2A0D8 000088 0004+00 0/1 0/0 0/0 .rodata @4248 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_4248 = 0x3F5CF29A; -COMPILER_STRIP_GATE(0x80A2A0D4, &lit_4248); -#pragma pop - -/* 80A2A0D8-80A2A0DC 00008C 0004+00 8/16 0/0 0/0 .rodata @4249 */ -SECTION_RODATA static f32 const lit_4249 = -1.0f; -COMPILER_STRIP_GATE(0x80A2A0D8, &lit_4249); - -/* 80A268A0-80A26A24 0007C0 0184+00 1/1 0/0 0/0 .text CreateHeap__15daNpcKasiMich_cFv */ -void daNpcKasiMich_c::CreateHeap() { - // NONMATCHING -} - -/* 80A26A24-80A26A58 000944 0034+00 1/1 0/0 0/0 .text Delete__15daNpcKasiMich_cFv */ -void daNpcKasiMich_c::Delete() { - // NONMATCHING -} - -/* 80A26A58-80A26A84 000978 002C+00 2/2 0/0 0/0 .text Execute__15daNpcKasiMich_cFv */ -void daNpcKasiMich_c::Execute() { - // NONMATCHING -} - -/* 80A26A84-80A26AD0 0009A4 004C+00 1/1 0/0 0/0 .text Draw__15daNpcKasiMich_cFv */ -void daNpcKasiMich_c::Draw() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A2A0DC-80A2A0E8 000090 000C+00 1/1 0/0 0/0 .rodata @4270 */ -SECTION_RODATA static u8 const lit_4270[12] = { - 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, -}; -COMPILER_STRIP_GATE(0x80A2A0DC, &lit_4270); - -/* 80A26AD0-80A26C5C 0009F0 018C+00 1/1 0/0 0/0 .text - * ctrlJoint__15daNpcKasiMich_cFP8J3DJointP8J3DModel */ -void daNpcKasiMich_c::ctrlJoint(J3DJoint* param_0, J3DModel* param_1) { - // NONMATCHING -} - -/* 80A26C5C-80A26C7C 000B7C 0020+00 1/1 0/0 0/0 .text - * createHeapCallBack__15daNpcKasiMich_cFP10fopAc_ac_c */ -void daNpcKasiMich_c::createHeapCallBack(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* 80A26C7C-80A26CC8 000B9C 004C+00 1/1 0/0 0/0 .text - * ctrlJointCallBack__15daNpcKasiMich_cFP8J3DJointi */ -void daNpcKasiMich_c::ctrlJointCallBack(J3DJoint* param_0, int param_1) { - // NONMATCHING -} - -/* 80A26CC8-80A26D34 000BE8 006C+00 1/0 0/0 0/0 .text setParam__15daNpcKasiMich_cFv */ -void daNpcKasiMich_c::setParam() { - // NONMATCHING -} - -/* 80A2A7E0-80A2A7EC 000048 000C+00 1/1 0/0 0/0 .bss @3807 */ -static u8 lit_3807[12]; - -/* 80A2A7EC-80A2A7F0 000054 0004+00 1/1 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[4]; - -/* 80A2A7F0-80A2A7F4 000058 0004+00 1/2 0/0 0/0 .bss mTargetTag__15daNpcKasiMich_c */ -u8 daNpcKasiMich_c::mTargetTag[4]; - -/* 80A2A7F4-80A2A7F8 00005C 0004+00 0/1 0/0 0/0 .bss mTargetTagDist__15daNpcKasiMich_c - */ -#pragma push -#pragma force_active on -u8 daNpcKasiMich_c::mTargetTagDist[4]; -#pragma pop - -/* 80A2A7F8-80A2A7FC -00001 0004+00 2/3 0/0 0/0 .bss None */ -/* 80A2A7F8 0002+00 data_80A2A7F8 mWolfAngle__15daNpcKasiMich_c */ -/* 80A2A7FA 0002+00 data_80A2A7FA None */ -static u8 struct_80A2A7F8[4]; - -/* 80A26D34-80A26FDC 000C54 02A8+00 1/0 0/0 0/0 .text main__15daNpcKasiMich_cFv */ -void daNpcKasiMich_c::main() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A2A0E8-80A2A0EC 00009C 0004+00 0/1 0/0 0/0 .rodata @4447 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4447 = 10.0f; -COMPILER_STRIP_GATE(0x80A2A0E8, &lit_4447); -#pragma pop - -/* 80A2A0EC-80A2A0F0 0000A0 0004+00 1/3 0/0 0/0 .rodata @4448 */ -SECTION_RODATA static f32 const lit_4448 = 15.0f; -COMPILER_STRIP_GATE(0x80A2A0EC, &lit_4448); - -/* 80A2A0F0-80A2A0F4 0000A4 0004+00 13/22 0/0 0/0 .rodata @4449 */ -SECTION_RODATA static u8 const lit_4449[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A2A0F0, &lit_4449); - -/* 80A26FDC-80A27184 000EFC 01A8+00 1/0 0/0 0/0 .text setAttnPos__15daNpcKasiMich_cFv */ -void daNpcKasiMich_c::setAttnPos() { - // NONMATCHING -} - -/* 80A27184-80A27254 0010A4 00D0+00 1/0 0/0 0/0 .text setMotionAnm__15daNpcKasiMich_cFif - */ -bool daNpcKasiMich_c::setMotionAnm(int param_0, f32 param_1) { - // NONMATCHING -} - -/* 80A27254-80A2729C 001174 0048+00 1/0 0/0 0/0 .text setMotion__15daNpcKasiMich_cFifi */ -void daNpcKasiMich_c::setMotion(int param_0, f32 param_1, int param_2) { - // NONMATCHING -} - -/* 80A2729C-80A272A4 0011BC 0008+00 1/0 0/0 0/0 .text drawDbgInfo__15daNpcKasiMich_cFv */ -bool daNpcKasiMich_c::drawDbgInfo() { - return false; -} - -/* 80A272A4-80A274D8 0011C4 0234+00 1/1 0/0 0/0 .text reset__15daNpcKasiMich_cFv */ -void daNpcKasiMich_c::reset() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A2A0F4-80A2A100 0000A8 000C+00 0/1 0/0 0/0 .rodata @4534 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4534[12] = { - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A2A0F4, &lit_4534); -#pragma pop - -/* 80A2A100-80A2A104 0000B4 0004+00 0/1 0/0 0/0 .rodata @4535 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4535[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A2A100, &lit_4535); -#pragma pop - -/* 80A2A104-80A2A110 0000B8 000C+00 0/1 0/0 0/0 .rodata @4536 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4536[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A2A104, &lit_4536); -#pragma pop - -/* 80A2A110-80A2A114 0000C4 0004+00 0/1 0/0 0/0 .rodata @4537 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4537[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A2A110, &lit_4537); -#pragma pop - -/* 80A2A114-80A2A120 0000C8 000C+00 0/1 0/0 0/0 .rodata @4538 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4538[12] = { - 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A2A114, &lit_4538); -#pragma pop - -/* 80A2A120-80A2A124 0000D4 0004+00 0/1 0/0 0/0 .rodata @4539 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4539[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A2A120, &lit_4539); -#pragma pop - -/* 80A2A124-80A2A130 0000D8 000C+00 0/1 0/0 0/0 .rodata @4540 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4540[12] = { - 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A2A124, &lit_4540); -#pragma pop - -/* 80A2A130-80A2A134 0000E4 0004+00 0/1 0/0 0/0 .rodata @4541 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4541[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A2A130, &lit_4541); -#pragma pop - -/* 80A2A134-80A2A140 0000E8 000C+00 0/1 0/0 0/0 .rodata @4542 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4542[12] = { - 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A2A134, &lit_4542); -#pragma pop - -/* 80A2A140-80A2A144 0000F4 0004+00 0/1 0/0 0/0 .rodata @4543 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4543[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A2A140, &lit_4543); -#pragma pop - -/* 80A2A144-80A2A150 0000F8 000C+00 0/1 0/0 0/0 .rodata @4544 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4544[12] = { - 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A2A144, &lit_4544); -#pragma pop - -/* 80A2A150-80A2A154 000104 0004+00 0/1 0/0 0/0 .rodata @4545 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4545[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A2A150, &lit_4545); -#pragma pop - -/* 80A2A154-80A2A160 000108 000C+00 0/1 0/0 0/0 .rodata @4546 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4546[12] = { - 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A2A154, &lit_4546); -#pragma pop - -/* 80A2A160-80A2A164 000114 0004+00 0/1 0/0 0/0 .rodata @4547 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4547[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A2A160, &lit_4547); -#pragma pop - -/* 80A2A164-80A2A170 000118 000C+00 0/1 0/0 0/0 .rodata @4548 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4548[12] = { - 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A2A164, &lit_4548); -#pragma pop - -/* 80A2A170-80A2A174 000124 0004+00 0/1 0/0 0/0 .rodata @4549 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4549[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A2A170, &lit_4549); -#pragma pop - -/* 80A2A174-80A2A180 000128 000C+00 0/1 0/0 0/0 .rodata @4550 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4550[12] = { - 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A2A174, &lit_4550); -#pragma pop - -/* 80A2A180-80A2A184 000134 0004+00 0/1 0/0 0/0 .rodata @4551 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4551[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A2A180, &lit_4551); -#pragma pop - -/* 80A2A184-80A2A190 000138 000C+00 0/1 0/0 0/0 .rodata @4552 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4552[12] = { - 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A2A184, &lit_4552); -#pragma pop - -/* 80A2A190-80A2A194 000144 0004+00 0/1 0/0 0/0 .rodata @4553 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4553[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A2A190, &lit_4553); -#pragma pop - -/* 80A2A194-80A2A1A0 000148 000C+00 0/1 0/0 0/0 .rodata @4554 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4554[12] = { - 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A2A194, &lit_4554); -#pragma pop - -/* 80A2A1A0-80A2A1A4 000154 0004+00 0/1 0/0 0/0 .rodata @4555 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4555[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A2A1A0, &lit_4555); -#pragma pop - -/* 80A2A1A4-80A2A1B0 000158 000C+00 0/1 0/0 0/0 .rodata @4556 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4556[12] = { - 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -}; -COMPILER_STRIP_GATE(0x80A2A1A4, &lit_4556); -#pragma pop - -/* 80A2A1B0-80A2A1BC 000164 000C+00 0/1 0/0 0/0 .rodata @4557 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4557[12] = { - 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -}; -COMPILER_STRIP_GATE(0x80A2A1B0, &lit_4557); -#pragma pop - -/* 80A2A1BC-80A2A1C8 000170 000C+00 0/1 0/0 0/0 .rodata @4558 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4558[12] = { - 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -}; -COMPILER_STRIP_GATE(0x80A2A1BC, &lit_4558); -#pragma pop - -/* 80A2A1C8-80A2A1D4 00017C 000C+00 0/1 0/0 0/0 .rodata @4559 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4559[12] = { - 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -}; -COMPILER_STRIP_GATE(0x80A2A1C8, &lit_4559); -#pragma pop - -/* 80A2A1D4-80A2A1E0 000188 000C+00 0/1 0/0 0/0 .rodata @4560 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4560[12] = { - 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -}; -COMPILER_STRIP_GATE(0x80A2A1D4, &lit_4560); -#pragma pop - -/* 80A2A1E0-80A2A1EC 000194 000C+00 0/1 0/0 0/0 .rodata @4561 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4561[12] = { - 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A2A1E0, &lit_4561); -#pragma pop - -/* 80A2A1EC-80A2A204 0001A0 0018+00 0/0 0/0 0/0 .rodata @4562 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4562[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A2A1EC, &lit_4562); -#pragma pop - -/* 80A2A204-80A2A210 0001B8 000C+00 0/1 0/0 0/0 .rodata @4563 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4563[12] = { - 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, -}; -COMPILER_STRIP_GATE(0x80A2A204, &lit_4563); -#pragma pop - -/* 80A2A210-80A2A21C 0001C4 000C+00 0/1 0/0 0/0 .rodata @4564 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4564[12] = { - 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A2A210, &lit_4564); -#pragma pop - -/* 80A2A21C-80A2A224 0001D0 0008+00 0/1 0/0 0/0 .rodata @4565 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4565[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A2A21C, &lit_4565); -#pragma pop - -/* 80A274D8-80A2790C 0013F8 0434+00 1/1 0/0 0/0 .text playMotion__15daNpcKasiMich_cFv */ -void daNpcKasiMich_c::playMotion() { - // NONMATCHING -} - -/* 80A2790C-80A27A84 00182C 0178+00 1/1 0/0 0/0 .text - * playMotionAnmLoop__15daNpcKasiMich_cFPPPQ28daNpcF_c18daNpcF_anmPlayData */ -void daNpcKasiMich_c::playMotionAnmLoop(daNpcF_c::daNpcF_anmPlayData*** param_0) { - // NONMATCHING -} - -/* 80A27A84-80A27B2C 0019A4 00A8+00 10/10 0/0 0/0 .text - * setAction__15daNpcKasiMich_cFM15daNpcKasiMich_cFPCvPvi_i */ -void daNpcKasiMich_c::setAction(int (daNpcKasiMich_c::*param_0)(int)) { - // NONMATCHING -} - -/* 80A27B2C-80A27B50 001A4C 0024+00 8/8 0/0 0/0 .text setLookMode__15daNpcKasiMich_cFi */ -void daNpcKasiMich_c::setLookMode(int param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A2A224-80A2A258 0001D8 0034+00 0/0 0/0 0/0 .rodata @4566 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4566[52] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A2A224, &lit_4566); -#pragma pop - -/* 80A2A258-80A2A264 00020C 000C+00 0/1 0/0 0/0 .rodata @4647 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4647[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A2A258, &lit_4647); -#pragma pop - -/* 80A2A264-80A2A268 000218 0004+00 0/1 0/0 0/0 .rodata @4695 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4695 = -80.0f; -COMPILER_STRIP_GATE(0x80A2A264, &lit_4695); -#pragma pop - -/* 80A2A268-80A2A26C 00021C 0004+00 0/1 0/0 0/0 .rodata @4696 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4696 = 80.0f; -COMPILER_STRIP_GATE(0x80A2A268, &lit_4696); -#pragma pop - -/* 80A2A26C-80A2A270 000220 0004+00 0/1 0/0 0/0 .rodata @4697 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4697 = 40.0f; -COMPILER_STRIP_GATE(0x80A2A26C, &lit_4697); -#pragma pop - -/* 80A27B50-80A27D30 001A70 01E0+00 1/1 0/0 0/0 .text lookat__15daNpcKasiMich_cFv */ -void daNpcKasiMich_c::lookat() { - // NONMATCHING -} - -/* 80A27D30-80A27E24 001C50 00F4+00 1/1 0/0 0/0 .text step__15daNpcKasiMich_cFsi */ -void daNpcKasiMich_c::step(s16 param_0, int param_1) { - // NONMATCHING -} - -/* 80A27E24-80A27F08 001D44 00E4+00 1/1 0/0 0/0 .text chkFindPlayer__15daNpcKasiMich_cFv - */ -void daNpcKasiMich_c::chkFindPlayer() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A2A270-80A2A274 000224 0004+00 0/1 0/0 0/0 .rodata @4830 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4830 = 450.0f; -COMPILER_STRIP_GATE(0x80A2A270, &lit_4830); -#pragma pop - -/* 80A2A274-80A2A27C 000228 0008+00 0/1 0/0 0/0 .rodata @4831 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4831[8] = { - 0x40, 0x7F, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A2A274, &lit_4831); -#pragma pop - -/* 80A2A27C-80A2A284 000230 0008+00 0/1 0/0 0/0 .rodata @4832 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4832[8] = { - 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80A2A27C, &lit_4832); -#pragma pop - -/* 80A27F08-80A282B4 001E28 03AC+00 8/0 0/0 0/0 .text wait__15daNpcKasiMich_cFi */ -void daNpcKasiMich_c::wait(int param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A2A284-80A2A288 000238 0004+00 0/1 0/0 0/0 .rodata @4879 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4879 = 1.5f; -COMPILER_STRIP_GATE(0x80A2A284, &lit_4879); -#pragma pop - -/* 80A282B4-80A28490 0021D4 01DC+00 1/0 0/0 0/0 .text fear__15daNpcKasiMich_cFi */ -void daNpcKasiMich_c::fear(int param_0) { - // NONMATCHING -} - -/* 80A28490-80A284F8 0023B0 0068+00 1/1 0/0 0/0 .text srchWolfTag__15daNpcKasiMich_cFv */ -void daNpcKasiMich_c::srchWolfTag() { - // NONMATCHING -} - -/* 80A284F8-80A285C8 002418 00D0+00 1/1 0/0 0/0 .text _srch_escape_tag__15daNpcKasiMich_cFPvPv */ -void daNpcKasiMich_c::_srch_escape_tag(void* param_0, void* param_1) { - // NONMATCHING -} - -/* 80A285C8-80A286FC 0024E8 0134+00 1/1 0/0 0/0 .text getWolfPathNearIdx__15daNpcKasiMich_cFv */ -void daNpcKasiMich_c::getWolfPathNearIdx() { - // NONMATCHING -} - -/* 80A286FC-80A287A0 00261C 00A4+00 2/0 0/0 0/0 .text chace_st__15daNpcKasiMich_cFi */ -void daNpcKasiMich_c::chace_st(int param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A2A288-80A2A28C 00023C 0004+00 0/1 0/0 0/0 .rodata @5067 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5067 = 14.0f; -COMPILER_STRIP_GATE(0x80A2A288, &lit_5067); -#pragma pop - -/* 80A2A28C-80A2A290 000240 0004+00 0/1 0/0 0/0 .rodata @5068 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5068 = 400.0f; -COMPILER_STRIP_GATE(0x80A2A28C, &lit_5068); -#pragma pop - -/* 80A287A0-80A28910 0026C0 0170+00 4/0 0/0 0/0 .text chace__15daNpcKasiMich_cFi */ -void daNpcKasiMich_c::chace(int param_0) { - // NONMATCHING -} - -/* 80A28910-80A289CC 002830 00BC+00 1/1 0/0 0/0 .text getChacePos__15daNpcKasiMich_cFv */ -void daNpcKasiMich_c::getChacePos() { - // NONMATCHING -} - -/* 80A289CC-80A28A8C 0028EC 00C0+00 2/0 0/0 0/0 .text turn_link__15daNpcKasiMich_cFi */ -void daNpcKasiMich_c::turn_link(int param_0) { - // NONMATCHING -} - -/* 80A28A8C-80A28B70 0029AC 00E4+00 1/0 0/0 0/0 .text turn_home__15daNpcKasiMich_cFi */ -void daNpcKasiMich_c::turn_home(int param_0) { - // NONMATCHING -} - -/* 80A28B70-80A28C40 002A90 00D0+00 1/0 0/0 0/0 .text turn_center__15daNpcKasiMich_cFi */ -void daNpcKasiMich_c::turn_center(int param_0) { - // NONMATCHING -} - -/* 80A28C40-80A28CB8 002B60 0078+00 1/0 0/0 0/0 .text talk_dummy__15daNpcKasiMich_cFi */ -void daNpcKasiMich_c::talk_dummy(int param_0) { - // NONMATCHING -} - -/* 80A28CB8-80A28D90 002BD8 00D8+00 1/0 0/0 0/0 .text kya__15daNpcKasiMich_cFi */ -void daNpcKasiMich_c::kya(int param_0) { - // NONMATCHING -} - -/* 80A28D90-80A28E28 002CB0 0098+00 1/0 0/0 0/0 .text kya2__15daNpcKasiMich_cFi */ -void daNpcKasiMich_c::kya2(int param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A2A290-80A2A294 000244 0004+00 1/1 0/0 0/0 .rodata @5219 */ -SECTION_RODATA static f32 const lit_5219 = 19.0f; -COMPILER_STRIP_GATE(0x80A2A290, &lit_5219); - -/* 80A28E28-80A28EFC 002D48 00D4+00 1/0 0/0 0/0 .text kya_stop__15daNpcKasiMich_cFi */ -void daNpcKasiMich_c::kya_stop(int param_0) { - // NONMATCHING -} - -/* 80A28EFC-80A28F74 002E1C 0078+00 1/0 0/0 0/0 .text iyan__15daNpcKasiMich_cFi */ -void daNpcKasiMich_c::iyan(int param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A2A294-80A2A298 000248 0004+00 0/1 0/0 0/0 .rodata @5251 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5251 = 1.75f; -COMPILER_STRIP_GATE(0x80A2A294, &lit_5251); -#pragma pop - -/* 80A28F74-80A2908C 002E94 0118+00 1/0 0/0 0/0 .text escape__15daNpcKasiMich_cFi */ -void daNpcKasiMich_c::escape(int param_0) { - // NONMATCHING -} - -/* 80A2908C-80A29164 002FAC 00D8+00 1/0 0/0 0/0 .text iyan_look__15daNpcKasiMich_cFi */ -void daNpcKasiMich_c::iyan_look(int param_0) { - // NONMATCHING -} - -/* 80A29164-80A291E8 003084 0084+00 1/0 0/0 0/0 .text turn_hana__15daNpcKasiMich_cFi */ -void daNpcKasiMich_c::turn_hana(int param_0) { - // NONMATCHING -} - -/* 80A291E8-80A2926C 003108 0084+00 7/0 0/0 0/0 .text wait_dummy__15daNpcKasiMich_cFi */ -void daNpcKasiMich_c::wait_dummy(int param_0) { - // NONMATCHING -} - -/* 80A2926C-80A29458 00318C 01EC+00 1/0 0/0 0/0 .text cheer__15daNpcKasiMich_cFi */ -void daNpcKasiMich_c::cheer(int param_0) { - // NONMATCHING -} - -/* 80A29458-80A294A4 003378 004C+00 3/3 0/0 0/0 .text _turn_to_link__15daNpcKasiMich_cFs - */ -void daNpcKasiMich_c::_turn_to_link(s16 param_0) { - // NONMATCHING -} - -/* 80A294A4-80A29500 0033C4 005C+00 5/5 0/0 0/0 .text _turn_pos__15daNpcKasiMich_cFRC4cXyzs */ -void daNpcKasiMich_c::_turn_pos(cXyz const& param_0, s16 param_1) { - // NONMATCHING -} - -/* 80A29500-80A295D8 003420 00D8+00 2/2 0/0 0/0 .text - * actor_front_check__15daNpcKasiMich_cFP10fopAc_ac_c */ -void daNpcKasiMich_c::actor_front_check(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* 80A295D8-80A29644 0034F8 006C+00 1/1 0/0 0/0 .text _getOffset__15daNpcKasiMich_cFRC4cXyzR4cXyz - */ -void daNpcKasiMich_c::_getOffset(cXyz const& param_0, cXyz& param_1) { - // NONMATCHING -} - -/* 80A29644-80A29664 003564 0020+00 1/0 0/0 0/0 .text daNpcKasiMich_Create__FPv */ -static void daNpcKasiMich_Create(void* param_0) { - // NONMATCHING -} - -/* 80A29664-80A29684 003584 0020+00 1/0 0/0 0/0 .text daNpcKasiMich_Delete__FPv */ -static void daNpcKasiMich_Delete(void* param_0) { - // NONMATCHING -} - -/* 80A29684-80A296A4 0035A4 0020+00 1/0 0/0 0/0 .text daNpcKasiMich_Execute__FPv */ -static void daNpcKasiMich_Execute(void* param_0) { - // NONMATCHING -} - -/* 80A296A4-80A296C4 0035C4 0020+00 1/0 0/0 0/0 .text daNpcKasiMich_Draw__FPv */ -static void daNpcKasiMich_Draw(void* param_0) { - // NONMATCHING -} - -/* 80A296C4-80A296CC 0035E4 0008+00 1/0 0/0 0/0 .text daNpcKasiMich_IsDelete__FPv */ -static bool daNpcKasiMich_IsDelete(void* param_0) { - return true; -} - -/* 80A296CC-80A2972C 0035EC 0060+00 1/0 0/0 0/0 .text __dt__13daNpcF_Path_cFv */ -// daNpcF_Path_c::~daNpcF_Path_c() { -extern "C" void __dt__13daNpcF_Path_cFv() { - // NONMATCHING -} - -/* 80A2972C-80A29774 00364C 0048+00 1/0 0/0 0/0 .text __dt__16daNpcF_SPCurve_cFv */ -// daNpcF_SPCurve_c::~daNpcF_SPCurve_c() { -extern "C" void __dt__16daNpcF_SPCurve_cFv() { - // NONMATCHING -} - -/* 80A29774-80A297BC 003694 0048+00 5/4 0/0 0/0 .text __dt__18daNpcF_ActorMngr_cFv */ -// daNpcF_ActorMngr_c::~daNpcF_ActorMngr_c() { -extern "C" void __dt__18daNpcF_ActorMngr_cFv() { - // NONMATCHING -} - -/* 80A297BC-80A297F8 0036DC 003C+00 2/2 0/0 0/0 .text __ct__18daNpcF_ActorMngr_cFv */ -// daNpcF_ActorMngr_c::daNpcF_ActorMngr_c() { -extern "C" void __ct__18daNpcF_ActorMngr_cFv() { - // NONMATCHING -} - -/* 80A297F8-80A298C8 003718 00D0+00 1/0 0/0 0/0 .text __dt__15daNpcF_Lookat_cFv */ -// daNpcF_Lookat_c::~daNpcF_Lookat_c() { -extern "C" void __dt__15daNpcF_Lookat_cFv() { - // NONMATCHING -} - -/* 80A298C8-80A29904 0037E8 003C+00 5/5 0/0 0/0 .text __dt__5csXyzFv */ -// csXyz::~csXyz() { -extern "C" void __dt__5csXyzFv() { - // NONMATCHING -} - -/* 80A29904-80A29908 003824 0004+00 2/2 0/0 0/0 .text __ct__5csXyzFv */ -// csXyz::csXyz() { -extern "C" void __ct__5csXyzFv() { - /* empty function */ -} - -/* 80A29908-80A29944 003828 003C+00 5/5 0/0 0/0 .text __dt__4cXyzFv */ -// cXyz::~cXyz() { -extern "C" void __dt__4cXyzFv() { - // NONMATCHING -} - -/* 80A29944-80A29948 003864 0004+00 2/2 0/0 0/0 .text __ct__4cXyzFv */ -// cXyz::cXyz() { -extern "C" void __ct__4cXyzFv() { - /* empty function */ -} - -/* 80A29948-80A29B94 003868 024C+00 1/1 0/0 0/0 .text __dt__8daNpcF_cFv */ -// daNpcF_c::~daNpcF_c() { -extern "C" void __dt__8daNpcF_cFv() { - // NONMATCHING -} - -/* 80A29B94-80A29D84 003AB4 01F0+00 1/1 0/0 0/0 .text __ct__8daNpcF_cFv */ -// daNpcF_c::daNpcF_c() { -extern "C" void __ct__8daNpcF_cFv() { - // NONMATCHING -} - -/* 80A29D84-80A29DF4 003CA4 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */ -// dBgS_AcchCir::~dBgS_AcchCir() { -extern "C" void __dt__12dBgS_AcchCirFv() { - // NONMATCHING -} - -/* 80A29DF4-80A29E50 003D14 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */ -// dCcD_GStts::~dCcD_GStts() { -extern "C" void __dt__10dCcD_GSttsFv() { - // NONMATCHING -} - -/* 80A29E50-80A29EC0 003D70 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */ -// dBgS_ObjAcch::~dBgS_ObjAcch() { -extern "C" void __dt__12dBgS_ObjAcchFv() { - // NONMATCHING -} - -/* 80A29EC0-80A29F08 003DE0 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */ -// J3DFrameCtrl::~J3DFrameCtrl() { -extern "C" void __dt__12J3DFrameCtrlFv() { - // NONMATCHING -} - -/* 80A29F08-80A29F10 003E28 0008+00 1/0 0/0 0/0 .text ctrlBtk__8daNpcF_cFv */ -// bool daNpcF_c::ctrlBtk() { -extern "C" bool ctrlBtk__8daNpcF_cFv() { - return false; -} - -/* 80A29F10-80A29F14 003E30 0004+00 1/0 0/0 0/0 .text setCollisions__8daNpcF_cFv */ -// void daNpcF_c::setCollisions() { -extern "C" void setCollisions__8daNpcF_cFv() { - /* empty function */ -} - -/* 80A29F14-80A29F1C 003E34 0008+00 1/0 0/0 0/0 .text setExpressionAnm__8daNpcF_cFib */ -// bool daNpcF_c::setExpressionAnm(int param_0, bool param_1) { -extern "C" bool setExpressionAnm__8daNpcF_cFib() { - return true; -} - -/* 80A29F1C-80A29F24 003E3C 0008+00 1/0 0/0 0/0 .text setExpressionBtp__8daNpcF_cFi */ -// bool daNpcF_c::setExpressionBtp(int param_0) { -extern "C" bool setExpressionBtp__8daNpcF_cFi() { - return true; -} - -/* 80A29F24-80A29F28 003E44 0004+00 1/0 0/0 0/0 .text setExpression__8daNpcF_cFif */ -// void daNpcF_c::setExpression(int param_0, f32 param_1) { -extern "C" void setExpression__8daNpcF_cFif() { - /* empty function */ -} - -/* 80A29F28-80A29F2C 003E48 0004+00 1/0 0/0 0/0 .text drawOtherMdls__8daNpcF_cFv */ -// void daNpcF_c::drawOtherMdls() { -extern "C" void drawOtherMdls__8daNpcF_cFv() { - /* empty function */ -} - -/* 80A29F2C-80A29F74 003E4C 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */ -// cCcD_GStts::~cCcD_GStts() { -extern "C" void __dt__10cCcD_GSttsFv() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A2A788-80A2A794 0004D4 000C+00 2/2 0/0 0/0 .data __vt__21daNpcKasiMich_Param_c */ -SECTION_DATA extern void* __vt__21daNpcKasiMich_Param_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__21daNpcKasiMich_Param_cFv, -}; - -/* 80A29F74-80A29FDC 003E94 0068+00 0/0 1/0 0/0 .text __sinit_d_a_npc_kasi_mich_cpp */ -void __sinit_d_a_npc_kasi_mich_cpp() { - // NONMATCHING -} - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x80A29F74, __sinit_d_a_npc_kasi_mich_cpp); -#pragma pop - -/* 80A29FDC-80A29FE0 003EFC 0004+00 1/0 0/0 0/0 .text adjustShapeAngle__15daNpcKasiMich_cFv */ -void daNpcKasiMich_c::adjustShapeAngle() { - /* empty function */ -} - -/* 80A29FE0-80A2A028 003F00 0048+00 2/1 0/0 0/0 .text __dt__21daNpcKasiMich_Param_cFv */ -daNpcKasiMich_Param_c::~daNpcKasiMich_Param_c() { - // NONMATCHING -} - -/* 80A2A028-80A2A030 003F48 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */ -static void func_80A2A028() { - // NONMATCHING -} - -/* 80A2A030-80A2A038 003F50 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */ -static void func_80A2A030() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80A2A7FC-80A2A800 000064 0004+00 0/0 0/0 0/0 .bss - * sInstance__40JASGlobalInstance<19JASDefaultBankTable> */ -#pragma push -#pragma force_active on -static u8 data_80A2A7FC[4]; -#pragma pop - -/* 80A2A800-80A2A804 000068 0004+00 0/0 0/0 0/0 .bss - * sInstance__35JASGlobalInstance<14JASAudioThread> */ -#pragma push -#pragma force_active on -static u8 data_80A2A800[4]; -#pragma pop - -/* 80A2A804-80A2A808 00006C 0004+00 0/0 0/0 0/0 .bss sInstance__27JASGlobalInstance<7Z2SeMgr> */ -#pragma push -#pragma force_active on -static u8 data_80A2A804[4]; -#pragma pop - -/* 80A2A808-80A2A80C 000070 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8Z2SeqMgr> */ -#pragma push -#pragma force_active on -static u8 data_80A2A808[4]; -#pragma pop - -/* 80A2A80C-80A2A810 000074 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SceneMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80A2A80C[4]; -#pragma pop - -/* 80A2A810-80A2A814 000078 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2StatusMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80A2A810[4]; -#pragma pop - -/* 80A2A814-80A2A818 00007C 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2DebugSys> - */ -#pragma push -#pragma force_active on -static u8 data_80A2A814[4]; -#pragma pop - -/* 80A2A818-80A2A81C 000080 0004+00 0/0 0/0 0/0 .bss - * sInstance__36JASGlobalInstance<15JAISoundStarter> */ -#pragma push -#pragma force_active on -static u8 data_80A2A818[4]; -#pragma pop - -/* 80A2A81C-80A2A820 000084 0004+00 0/0 0/0 0/0 .bss - * sInstance__35JASGlobalInstance<14Z2SoundStarter> */ -#pragma push -#pragma force_active on -static u8 data_80A2A81C[4]; -#pragma pop - -/* 80A2A820-80A2A824 000088 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12Z2SpeechMgr2> */ -#pragma push -#pragma force_active on -static u8 data_80A2A820[4]; -#pragma pop - -/* 80A2A824-80A2A828 00008C 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8JAISeMgr> */ -#pragma push -#pragma force_active on -static u8 data_80A2A824[4]; -#pragma pop - -/* 80A2A828-80A2A82C 000090 0004+00 0/0 0/0 0/0 .bss sInstance__29JASGlobalInstance<9JAISeqMgr> */ -#pragma push -#pragma force_active on -static u8 data_80A2A828[4]; -#pragma pop - -/* 80A2A82C-80A2A830 000094 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAIStreamMgr> */ -#pragma push -#pragma force_active on -static u8 data_80A2A82C[4]; -#pragma pop - -/* 80A2A830-80A2A834 000098 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SoundMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80A2A830[4]; -#pragma pop - -/* 80A2A834-80A2A838 00009C 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAISoundInfo> */ -#pragma push -#pragma force_active on -static u8 data_80A2A834[4]; -#pragma pop - -/* 80A2A838-80A2A83C 0000A0 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13JAUSoundTable> */ -#pragma push -#pragma force_active on -static u8 data_80A2A838[4]; -#pragma pop - -/* 80A2A83C-80A2A840 0000A4 0004+00 0/0 0/0 0/0 .bss - * sInstance__38JASGlobalInstance<17JAUSoundNameTable> */ -#pragma push -#pragma force_active on -static u8 data_80A2A83C[4]; -#pragma pop - -/* 80A2A840-80A2A844 0000A8 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAUSoundInfo> */ -#pragma push -#pragma force_active on -static u8 data_80A2A840[4]; -#pragma pop - -/* 80A2A844-80A2A848 0000AC 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SoundInfo> - */ -#pragma push -#pragma force_active on -static u8 data_80A2A844[4]; -#pragma pop - -/* 80A2A848-80A2A84C 0000B0 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13Z2SoundObjMgr> */ -#pragma push -#pragma force_active on -static u8 data_80A2A848[4]; -#pragma pop - -/* 80A2A84C-80A2A850 0000B4 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2Audience> - */ -#pragma push -#pragma force_active on -static u8 data_80A2A84C[4]; -#pragma pop - -/* 80A2A850-80A2A854 0000B8 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2FxLineMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80A2A850[4]; -#pragma pop - -/* 80A2A854-80A2A858 0000BC 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2EnvSeMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80A2A854[4]; -#pragma pop - -/* 80A2A858-80A2A85C 0000C0 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SpeechMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80A2A858[4]; -#pragma pop - -/* 80A2A85C-80A2A860 0000C4 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13Z2WolfHowlMgr> */ -#pragma push -#pragma force_active on -static u8 data_80A2A85C[4]; -#pragma pop - -/* 80A2A298-80A2A298 00024C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/src/d/actor/d_a_obj_kwheel00.cpp b/src/d/actor/d_a_obj_kwheel00.cpp index ec03c2583a2..82344c013cc 100644 --- a/src/d/actor/d_a_obj_kwheel00.cpp +++ b/src/d/actor/d_a_obj_kwheel00.cpp @@ -169,7 +169,7 @@ int daObjKWheel00_c::Create() { if(m_type == TYPE_SMALL_PLATINUM) fopAcM_SetStatus(this, 0); - mStts.Init(254, 0, this); + mStts.Init(0xFE, 0, this); for(int i = 0; i < 4; i++) { mLargeGearTeethSphereColliders[i].SetStts(&mStts);