From 43bf8abf483dca508f0c0ec24e4c50afc4190895 Mon Sep 17 00:00:00 2001 From: YunataSavior <58997725+YunataSavior@users.noreply.github.com> Date: Thu, 16 Oct 2025 20:21:57 -0700 Subject: [PATCH] npc_toby OK (#2733) * npc_toby 68% done * address ykm ykw regressions * All npc_toby cut done + chkPassed1 fakematch * npc_toby OK * npc_toby some hio var rename * npc_gnd cleanup * npc_gnd CreateHeap and reset * Add fakematch comment fo get_u16_Idx --- config/GZ2E01/rels/d_a_npc_toby/symbols.txt | 28 +- configure.py | 2 +- include/d/actor/d_a_npc.h | 12 +- include/d/actor/d_a_npc_gnd.h | 117 +- include/d/actor/d_a_npc_toby.h | 180 +- include/d/actor/d_a_obj_automata.h | 10 +- src/d/actor/d_a_npc.cpp | 26 +- src/d/actor/d_a_npc_gnd.cpp | 1096 +---- src/d/actor/d_a_npc_moi.cpp | 14 +- src/d/actor/d_a_npc_toby.cpp | 4270 ++++++++++--------- src/d/actor/d_a_npc_ykm.cpp | 2 +- src/d/actor/d_a_npc_ykw.cpp | 2 +- src/d/actor/d_a_obj_automata.cpp | 4 +- 13 files changed, 2665 insertions(+), 3098 deletions(-) diff --git a/config/GZ2E01/rels/d_a_npc_toby/symbols.txt b/config/GZ2E01/rels/d_a_npc_toby/symbols.txt index b1f76dd6bc8..bc0e485f09a 100644 --- a/config/GZ2E01/rels/d_a_npc_toby/symbols.txt +++ b/config/GZ2E01/rels/d_a_npc_toby/symbols.txt @@ -55,11 +55,11 @@ wait__12daNpc_Toby_cFPv = .text:0x00004150; // type:function size:0x6E8 scope:gl walk__12daNpc_Toby_cFPv = .text:0x00004838; // type:function size:0x214 scope:global play__12daNpc_Toby_cFPv = .text:0x00004A4C; // type:function size:0x398 scope:global talk__12daNpc_Toby_cFPv = .text:0x00004DE4; // type:function size:0x2E4 scope:global -daNpc_Toby_Create__FPv = .text:0x000050C8; // type:function size:0x20 scope:global -daNpc_Toby_Delete__FPv = .text:0x000050E8; // type:function size:0x20 scope:global -daNpc_Toby_Execute__FPv = .text:0x00005108; // type:function size:0x20 scope:global -daNpc_Toby_Draw__FPv = .text:0x00005128; // type:function size:0x20 scope:global -daNpc_Toby_IsDelete__FPv = .text:0x00005148; // type:function size:0x8 scope:global +daNpc_Toby_Create__FPv = .text:0x000050C8; // type:function size:0x20 scope:local +daNpc_Toby_Delete__FPv = .text:0x000050E8; // type:function size:0x20 scope:local +daNpc_Toby_Execute__FPv = .text:0x00005108; // type:function size:0x20 scope:local +daNpc_Toby_Draw__FPv = .text:0x00005128; // type:function size:0x20 scope:local +daNpc_Toby_IsDelete__FPv = .text:0x00005148; // type:function size:0x8 scope:local calc__11J3DTexNoAnmCFPUs = .text:0x00005150; // type:function size:0x30 scope:global __dt__10cCcD_GSttsFv = .text:0x00005180; // type:function size:0x48 scope:global __dt__8daNpcT_cFv = .text:0x000051C8; // type:function size:0x388 scope:global @@ -164,17 +164,17 @@ jointNo$5107 = .rodata:0x00000138; // type:object size:0x4 scope:local data:4byt @6541 = .rodata:0x0000019C; // type:object size:0xC scope:local @stringBase0 = .rodata:0x000001A8; // type:object size:0xBB scope:local data:string_table ...data.0 = .data:0x00000000; // type:label scope:local -cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global +cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:local @1787 = .data:0x0000000C; // type:object size:0x4 scope:local lbl_374_data_10 = .data:0x00000010; // type:object size:0x10 -l_bmdData = .data:0x00000020; // type:object size:0x18 scope:global +l_bmdData = .data:0x00000020; // type:object size:0x18 scope:local l_evtList = .data:0x00000038; // type:object size:0x38 scope:global -l_resNameList = .data:0x00000070; // type:object size:0x24 scope:global -l_loadResPtrn0 = .data:0x00000094; // type:object size:0x6 scope:global -l_loadResPtrn1 = .data:0x0000009C; // type:object size:0x6 scope:global -l_loadResPtrn2 = .data:0x000000A4; // type:object size:0x5 scope:global -l_loadResPtrn3 = .data:0x000000AC; // type:object size:0x8 scope:global -l_loadResPtrnList = .data:0x000000B4; // type:object size:0x1C scope:global +l_resNameList = .data:0x00000070; // type:object size:0x24 scope:local +l_loadResPtrn0 = .data:0x00000094; // type:object size:0x6 scope:local +l_loadResPtrn1 = .data:0x0000009C; // type:object size:0x6 scope:local +l_loadResPtrn2 = .data:0x000000A4; // type:object size:0x5 scope:local +l_loadResPtrn3 = .data:0x000000AC; // type:object size:0x8 scope:local +l_loadResPtrnList = .data:0x000000B4; // type:object size:0x1C scope:local l_faceMotionAnmData = .data:0x000000D0; // type:object size:0x1C0 scope:global l_motionAnmData = .data:0x00000290; // type:object size:0x2BC scope:global l_faceMotionSequenceData = .data:0x0000054C; // type:object size:0x110 scope:global @@ -200,7 +200,7 @@ mCutList__12daNpc_Toby_c = .data:0x00000850; // type:object size:0x54 scope:glob @5477 = .data:0x00000948; // type:object size:0x38 scope:local @6040 = .data:0x00000980; // type:object size:0x54 scope:local @6039 = .data:0x000009D4; // type:object size:0x54 scope:local -daNpc_Toby_MethodTable = .data:0x00000A28; // type:object size:0x20 scope:global +daNpc_Toby_MethodTable = .data:0x00000A28; // type:object size:0x20 scope:local g_profile_NPC_TOBY = .data:0x00000A48; // type:object size:0x30 scope:global __vt__11J3DTexNoAnm = .data:0x00000A78; // type:object size:0xC scope:global __vt__12J3DFrameCtrl = .data:0x00000A84; // type:object size:0xC scope:global diff --git a/configure.py b/configure.py index 4ee8a896f9c..590b2b9a868 100755 --- a/configure.py +++ b/configure.py @@ -1913,7 +1913,7 @@ config.libs = [ ActorRel(NonMatching, "d_a_npc_tkc"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_tkj2"), ActorRel(NonMatching, "d_a_npc_tks", extra_cflags=[DANPCF_C_HACK]), - ActorRel(NonMatching, "d_a_npc_toby"), + ActorRel(MatchingFor("GZ2E01"), "d_a_npc_toby"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_tr"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_uri"), ActorRel(MatchingFor("GZ2E01", "GZ2P01", "GZ2J01"), "d_a_npc_worm"), diff --git a/include/d/actor/d_a_npc.h b/include/d/actor/d_a_npc.h index 2abb1e1ea9a..f0cfcc579d8 100644 --- a/include/d/actor/d_a_npc.h +++ b/include/d/actor/d_a_npc.h @@ -440,6 +440,7 @@ public: /* 80145C74 */ int setPathInfo(u8, s8, u8); /* 80145D2C */ int setNextPathInfo(s8, u8); /* 80145DA0 */ void reverse(); + void setNextIdx() { setNextIdx(getNumPnts()); } /* 80145DD0 */ int setNextIdx(int); int getDstPos(cXyz i_pnt, cXyz* o_pos_p) { return getDstPos(i_pnt, o_pos_p, getNumPnts()); @@ -460,7 +461,9 @@ public: Vec getPntPos(int i_idx) { return mPathInfo->m_points[i_idx].m_position; } - u8 getArg0() { return mPathInfo->m_points[mIdx].mArg0; } + int getArg0() { return mPathInfo->m_points[mIdx].mArg0; } + int getArg1() { return mPathInfo->m_points[mIdx].mArg1; } + int getArg2() { return mPathInfo->m_points[mIdx].mArg2; } int chkClose() { BOOL rt = dPath_ChkClose(mPathInfo); @@ -473,7 +476,11 @@ public: void setIdx(int i_idx) { mIdx = i_idx; } - const u16 getIdx() { return mIdx; } + const int getIdx() { return mIdx; } +#if VERSION != VERSION_SHIELD_DEBUG + // fakematch inline to fix daNpcT_Path_c::chkPassed1 + const u16 get_u16_Idx() { return mIdx; } +#endif dPath* getPathInfo() { return mPathInfo; } @@ -791,6 +798,7 @@ void daNpcT_offTmpBit(u32 i_idx); void daNpcT_onTmpBit(u32 i_idx); BOOL daNpcT_chkTmpBit(u32 i_idx); void daNpcT_onEvtBit(u32 i_idx); +void daNpcT_offEvtBit(u32 i_idx); BOOL daNpcT_chkTmpBit(u32 i_idx); BOOL daNpcT_getPlayerInfoFromPlayerList(int param_0, int i_roomNo, cXyz* o_spawnPos, csXyz* o_angle); diff --git a/include/d/actor/d_a_npc_gnd.h b/include/d/actor/d_a_npc_gnd.h index 8dc52c40618..5a3a4365096 100644 --- a/include/d/actor/d_a_npc_gnd.h +++ b/include/d/actor/d_a_npc_gnd.h @@ -3,6 +3,33 @@ #include "d/actor/d_a_npc.h" +struct daNpc_Gnd_HIOParam { + /* 0x00 */ daNpcT_HIOParam common; +}; + +class daNpc_Gnd_Param_c { +public: + /* 809BE434 */ virtual ~daNpc_Gnd_Param_c() {} + + static const daNpc_Gnd_HIOParam m; +}; + +#if DEBUG +class daNpc_Gnd_HIO_c : public mDoHIO_entry_c { +public: + daNpc_Gnd_HIO_c(); + + void listenPropertyEvent(const JORPropertyEvent*); + void genMessage(JORMContext*); + + daNpc_Gnd_HIOParam m; +}; + +#define NPC_GND_HIO_CLASS daNpc_Gnd_HIO_c +#else +#define NPC_GND_HIO_CLASS daNpc_Gnd_Param_c +#endif + /** * @ingroup actors-npcs * @class daNpc_Gnd_c @@ -27,7 +54,7 @@ public: /* 809BBE60 */ int Execute(); /* 809BBE80 */ int Draw(); /* 809BBF44 */ static int createHeapCallBack(fopAc_ac_c*); - /* 809BBF64 */ int ctrlJointCallBack(J3DJoint*, int); + /* 809BBF64 */ static int ctrlJointCallBack(J3DJoint*, int); /* 809BBFBC */ u8 getType(); /* 809BBFDC */ int getFlowNodeNo(); /* 809BBFF8 */ int isDelete(); @@ -50,76 +77,38 @@ public: /* 809BCD5C */ void setAction(int (daNpc_Gnd_c::*)(void*)); /* 809BCE04 */ void wait(void*); /* 809BD050 */ void talk(void*); - /* 809BE2D0 */ daNpc_Gnd_c(daNpcT_faceMotionAnmData_c const* param_1, daNpcT_motionAnmData_c const* param_2, - daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_3, int param_4, - daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_5, int param_6, - daNpcT_evtData_c const* param_7, char** param_8) : - daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8) - {} - /* 809BE40C */ u16 getEyeballRMaterialNo(); - /* 809BE414 */ u16 getEyeballLMaterialNo(); - /* 809BE41C */ s32 getHeadJointNo(); - /* 809BE424 */ s32 getNeckJointNo(); - /* 809BE42C */ s32 getBackboneJointNo(); + /* 809BE2D0 */ daNpc_Gnd_c( + daNpcT_faceMotionAnmData_c const* i_faceMotionAnmData, + daNpcT_motionAnmData_c const* i_motionAnmData, + daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData, + int i_faceMotionStepNum, + daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData, int i_motionStepNum, + daNpcT_evtData_c const* i_evtData, char** i_arcNames) + : daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData, + i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData, + i_arcNames) { + // "|%06d:%x|daNpc_Gnd_c -> Construct\n" + OS_REPORT("|%06d:%x|daNpc_Gnd_c -> コンストラクト\n", g_Counter.mCounter0, this); + } + /* 809BE40C */ u16 getEyeballRMaterialNo() { return 3; } + /* 809BE414 */ u16 getEyeballLMaterialNo() { return 2; } + /* 809BE41C */ s32 getHeadJointNo() { return 4; } + /* 809BE424 */ s32 getNeckJointNo() { return 3; } + /* 809BE42C */ s32 getBackboneJointNo() { return 1; } static char* mCutNameList; static cutFunc mCutList[1]; private: - /* 0xE40 */ u8 field_0xe40[0xf80 - 0xe40]; + /* 0xE40 */ NPC_GND_HIO_CLASS* mpHIO; + /* 0xE44 */ dCcD_Cyl mCyl1; /* 0xF80 */ u8 mType; - /* 0xF81 */ u8 field_0xf81[0xfa0 - 0xf81]; -}; - -STATIC_ASSERT(sizeof(daNpc_Gnd_c) == 0xfa0); - -class daNpc_Gnd_Param_c { -public: - /* 809BE434 */ ~daNpc_Gnd_Param_c(); - - struct Data { - /* 0x00 */ f32 field_0x00; - /* 0x04 */ f32 field_0x04; - /* 0x08 */ f32 field_0x08; - /* 0x0C */ f32 field_0x0c; - /* 0x10 */ f32 field_0x10; - /* 0x14 */ f32 field_0x14; - /* 0x18 */ f32 field_0x18; - /* 0x1C */ f32 field_0x1c; - /* 0x20 */ f32 field_0x20; - /* 0x24 */ f32 field_0x24; - /* 0x28 */ f32 field_0x28; - /* 0x2C */ f32 field_0x2c; - /* 0x30 */ f32 field_0x30; - /* 0x34 */ f32 field_0x34; - /* 0x38 */ f32 field_0x38; - /* 0x3C */ f32 field_0x3c; - /* 0x40 */ f32 field_0x40; - /* 0x44 */ f32 field_0x44; - /* 0x48 */ s16 field_0x48; - /* 0x4A */ s16 field_0x4a; - /* 0x4C */ s16 field_0x4c; - /* 0x4E */ s16 field_0x4e; - /* 0x50 */ f32 field_0x50; - /* 0x54 */ f32 field_0x54; - /* 0x58 */ f32 field_0x58; - /* 0x5C */ f32 field_0x5c; - /* 0x60 */ s16 field_0x60; - /* 0x62 */ s16 field_0x62; - /* 0x64 */ f32 field_0x64; - /* 0x68 */ f32 field_0x68; - /* 0x6C */ f32 field_0x6c; - /* 0x70 */ f32 field_0x70; - /* 0x74 */ f32 field_0x74; - /* 0x78 */ f32 field_0x78; - /* 0x7C */ f32 field_0x7c; - /* 0x80 */ f32 field_0x80; - /* 0x84 */ f32 field_0x84; - /* 0x88 */ f32 field_0x88; - }; - - static const Data m; + /* 0xF81 */ u8 field_0xf81[0xF84 - 0xF81]; + /* 0xF84 */ u8 field_0xF84; + /* 0xF85 */ u8 field_0xF85[0xF9C - 0xF85]; + /* 0xF9C */ u8 field_0xF9C; }; +STATIC_ASSERT(sizeof(daNpc_Gnd_c) == 0xFA0); #endif /* D_A_NPC_GND_H */ diff --git a/include/d/actor/d_a_npc_toby.h b/include/d/actor/d_a_npc_toby.h index d2cc7ea278a..48503f091a7 100644 --- a/include/d/actor/d_a_npc_toby.h +++ b/include/d/actor/d_a_npc_toby.h @@ -4,6 +4,37 @@ #include "dolphin/types.h" #include "d/actor/d_a_npc.h" +struct daNpc_Toby_HIOParam { + /* 0x00 */ daNpcT_HIOParam common; + /* 0x8C */ f32 performance_speed; + /* 0x90 */ f32 speedup_performance; + /* 0x94 */ f32 init_play_speed; + /* 0x98 */ f32 switching_speed; +}; + +class daNpc_Toby_Param_c { +public: + /* 80B24978 */ virtual ~daNpc_Toby_Param_c() {} + + static const daNpc_Toby_HIOParam m; +}; + +#if DEBUG +class daNpc_Toby_HIO_c : public mDoHIO_entry_c { +public: + daNpc_Toby_HIO_c(); + + void listenPropertyEvent(const JORPropertyEvent*); + void genMessage(JORMContext*); + + daNpc_Toby_HIOParam m; +}; + +#define NPC_TOBY_HIO_CLASS daNpc_Toby_HIO_c +#else +#define NPC_TOBY_HIO_CLASS daNpc_Toby_Param_c +#endif + /** * @ingroup actors-npcs * @class daNpc_Toby_c @@ -12,78 +43,119 @@ * @details * */ -class daNpc_Toby_c : public fopAc_ac_c { +class daNpc_Toby_c : public daNpcT_c { public: + typedef int (daNpc_Toby_c::*cutFunc)(int); + typedef int (daNpc_Toby_c::*actionFunc)(void*); + /* 80B1E64C */ ~daNpc_Toby_c(); - /* 80B1E798 */ void create(); - /* 80B1EA60 */ void CreateHeap(); - /* 80B1EF28 */ void Delete(); - /* 80B1EF5C */ void Execute(); - /* 80B1EF7C */ void Draw(); - /* 80B1F010 */ void createHeapCallBack(fopAc_ac_c*); - /* 80B1F030 */ void ctrlJointCallBack(J3DJoint*, int); - /* 80B1F088 */ void srchToby(void*, void*); - /* 80B1F124 */ void getOtherTobyP(int); - /* 80B1F200 */ void getType(); - /* 80B1F274 */ void isDelete(); + /* 80B1E798 */ int create(); + /* 80B1EA60 */ int CreateHeap(); + /* 80B1EF28 */ int Delete(); + /* 80B1EF5C */ int Execute(); + /* 80B1EF7C */ int Draw(); + /* 80B1F010 */ static int createHeapCallBack(fopAc_ac_c*); + /* 80B1F030 */ static int ctrlJointCallBack(J3DJoint*, int); + /* 80B1F088 */ static void* srchToby(void*, void*); + /* 80B1F124 */ fopAc_ac_c* getOtherTobyP(int); + /* 80B1F200 */ u8 getType(); + /* 80B1F274 */ int isDelete(); /* 80B1F384 */ void reset(); /* 80B1F5AC */ void afterJntAnm(int); /* 80B1F638 */ void setParam(); - /* 80B1F784 */ void checkChangeEvt(); + /* 80B1F784 */ BOOL checkChangeEvt(); /* 80B1F950 */ void setAfterTalkMotion(); /* 80B1FA08 */ void srchActors(); - /* 80B1FB34 */ void evtTalk(); - /* 80B1FBD4 */ void evtCutProc(); + /* 80B1FB34 */ BOOL evtTalk(); + /* 80B1FBD4 */ BOOL evtCutProc(); /* 80B1FC9C */ void action(); /* 80B1FE68 */ void beforeMove(); /* 80B1FF2C */ void setAttnPos(); /* 80B20278 */ void setCollision(); - /* 80B2042C */ bool drawDbgInfo(); + /* 80B2042C */ int drawDbgInfo(); /* 80B20434 */ void drawOtherMdl(); - /* 80B2050C */ void afterSetFaceMotionAnm(int, int, f32, int); - /* 80B20568 */ void afterSetMotionAnm(int, int, f32, int); - /* 80B205F4 */ void selectAction(); - /* 80B20710 */ void chkAction(int (daNpc_Toby_c::*)(void*)); - /* 80B2073C */ void setAction(int (daNpc_Toby_c::*)(void*)); - /* 80B207E4 */ void cutTobyHouseFire(int); - /* 80B20AB0 */ void cutTalkToOneself(int); - /* 80B20FC0 */ void cutRepairSCannon(int); - /* 80B215B4 */ void cutSCannon(int); - /* 80B219F4 */ void cutConversationAboutSCannon(int); - /* 80B22434 */ void cutConversationAboutZra(int); - /* 80B22614 */ void chkAttnZra(); - /* 80B226B0 */ void wait(void*); - /* 80B22D98 */ void walk(void*); - /* 80B22FAC */ void play(void*); - /* 80B23344 */ void talk(void*); - /* 80B24840 */ daNpc_Toby_c(daNpcT_faceMotionAnmData_c const*, daNpcT_motionAnmData_c const*, - daNpcT_MotionSeqMngr_c::sequenceStepData_c const*, int, - daNpcT_MotionSeqMngr_c::sequenceStepData_c const*, int, - daNpcT_evtData_c const*, char**); - /* 80B24920 */ u16 getEyeballMaterialNo(); - /* 80B24928 */ s32 getHeadJointNo(); - /* 80B24930 */ s32 getNeckJointNo(); - /* 80B24938 */ bool getBackboneJointNo(); - /* 80B24940 */ void checkChangeJoint(int); - /* 80B24950 */ void checkRemoveJoint(int); - /* 80B24960 */ s32 getFootLJointNo(); - /* 80B24968 */ s32 getFootRJointNo(); - /* 80B24970 */ bool chkXYItems(); + /* 80B2050C */ bool afterSetFaceMotionAnm(int, int, f32, int); + /* 80B20568 */ bool afterSetMotionAnm(int, int, f32, int); + /* 80B205F4 */ int selectAction(); + /* 80B20710 */ int chkAction(actionFunc); + /* 80B2073C */ int setAction(actionFunc); + /* 80B207E4 */ int cutTobyHouseFire(int); + /* 80B20AB0 */ int cutTalkToOneself(int); + /* 80B20FC0 */ int cutRepairSCannon(int); + /* 80B215B4 */ int cutSCannon(int); + /* 80B219F4 */ int cutConversationAboutSCannon(int); + /* 80B22434 */ int cutConversationAboutZra(int); + /* 80B22614 */ int chkAttnZra(); + /* 80B226B0 */ int wait(void*); + /* 80B22D98 */ int walk(void*); + /* 80B22FAC */ int play(void*); + /* 80B23344 */ int talk(void*); +#if DEBUG + int test(void*); +#endif + /* 80B24840 */ daNpc_Toby_c( + daNpcT_faceMotionAnmData_c const* i_faceMotionAnmData, + daNpcT_motionAnmData_c const* i_motionAnmData, + daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_faceMotionSequenceData, + int i_faceMotionStepNum, + daNpcT_MotionSeqMngr_c::sequenceStepData_c const* i_motionSequenceData, int i_motionStepNum, + daNpcT_evtData_c const* i_evtData, char** i_arcNames) + : daNpcT_c(i_faceMotionAnmData, i_motionAnmData, i_faceMotionSequenceData, + i_faceMotionStepNum, i_motionSequenceData, i_motionStepNum, i_evtData, + i_arcNames) { + // "|%06d:%x|daNpc_Toby_c -> Construct\n" + OS_REPORT("|%06d:%x|daNpc_Toby_c -> コンストラクト\n", g_Counter.mCounter0, this); + } + /* 80B24920 */ u16 getEyeballMaterialNo() { return 2; } + /* 80B24928 */ s32 getHeadJointNo() { return 4; } + /* 80B24930 */ s32 getNeckJointNo() { return 3; } + /* 80B24938 */ s32 getBackboneJointNo() { return 1; } + /* 80B24940 */ BOOL checkChangeJoint(int arg0) { return arg0 == 4; } + /* 80B24950 */ BOOL checkRemoveJoint(int arg0) { return arg0 == 8; } + /* 80B24960 */ s32 getFootLJointNo() { return 24; } + /* 80B24968 */ s32 getFootRJointNo() { return 27; } + /* 80B24970 */ BOOL chkXYItems() { return TRUE; } + + int getFlowNodeNo() { + u16 nodeNo = home.angle.x; + u32 rv; + if (nodeNo == 0xffff) { + rv = -1; + } else { + rv = nodeNo; + } + + return rv; + } + + u8 getPathID() { return (fopAcM_GetParam(this) & 0xFF00) >> 8; } + u8 getBitSW() { return (fopAcM_GetParam(this) & 0xFF0000) >> 16; } static char* mCutNameList[7]; - static u8 mCutList[84]; + static cutFunc mCutList[7]; private: - /* 0x568 */ u8 field_0x568[0x1008 - 0x568]; + /* 0x0E40 */ NPC_TOBY_HIO_CLASS* mpHIO; + /* 0x0E44 */ J3DModel* mpTobyModels[1]; + /* 0x0E48 */ dCcD_Cyl mCyl1; + /* 0x0F84 */ u8 mType; + /* 0x0F88 */ daNpcT_ActorMngr_c mActorMngr[4]; + /* 0x0FA8 */ actionFunc mActFunc_0; + /* 0x0FB4 */ actionFunc mActFunc_1; + /* 0x0FC0 */ daNpcT_Path_c mPath; + /* 0x0FE8 */ cXyz field_0x0FE8; + /* 0x0FF4 */ int field_0x0FF4; + /* 0x0FF8 */ f32 mPlaySpeed; + /* 0x0FFC */ u16 field_0x0FFC; + /* 0x0FFE */ u8 field_0x0FFE; + /* 0x0FFF */ u8 field_0x0FFF; + /* 0x1000 */ u8 field_0x1000; + /* 0x1001 */ bool field_0x1001; + /* 0x1002 */ bool field_0x1002; + /* 0x1003 */ u8 field_0x1003; + /* 0x1004 */ u8 field_0x1004; }; STATIC_ASSERT(sizeof(daNpc_Toby_c) == 0x1008); -class daNpc_Toby_Param_c { -public: - /* 80B24978 */ ~daNpc_Toby_Param_c(); - - static u8 const m[156]; -}; - #endif /* D_A_NPC_TOBY_H */ diff --git a/include/d/actor/d_a_obj_automata.h b/include/d/actor/d_a_obj_automata.h index 46b28b43960..6a1939ee0f9 100644 --- a/include/d/actor/d_a_obj_automata.h +++ b/include/d/actor/d_a_obj_automata.h @@ -30,7 +30,7 @@ private: /* 0xB28 */ f32 mGroundH; /* 0xB2C */ f32 mAnmPlaySpeed; /* 0xB30 */ u8 field_0xb30; - /* 0xB31 */ u8 field_0xb31; + /* 0xB31 */ u8 mCoNone; public: /* 80BA56EC */ virtual ~daObj_AutoMata_c(); @@ -46,6 +46,14 @@ public: /* 80BA6690 */ void setRoomNo(); /* 80BA66D4 */ void setMtx(); /* 80BA674C */ void setSe(); + + void setAnmPlaySpeed(f32 i_playspeed) { + mAnmPlaySpeed = i_playspeed; + } + + void setCoNone() { + mCoNone = true; + } }; STATIC_ASSERT(sizeof(daObj_AutoMata_c) == 0xb38); diff --git a/src/d/actor/d_a_npc.cpp b/src/d/actor/d_a_npc.cpp index dfc8b8d8753..3e0835750c8 100644 --- a/src/d/actor/d_a_npc.cpp +++ b/src/d/actor/d_a_npc.cpp @@ -461,12 +461,18 @@ int daNpcT_Path_c::getDstPosH(cXyz i_pnt, cXyz* o_pos_p, int i_idx, int param_3) /* 80146188-801464D8 140AC8 0350+00 2/2 0/0 2/2 .text chkPassed1__13daNpcT_Path_cF4cXyzi */ -// NONMATCHING one instruction order swap int daNpcT_Path_c::chkPassed1(cXyz i_pnt, int i_num) { - cXyz prev_pos, cur_pos, next_pos; + cXyz prev_pos; + cXyz cur_pos; + cXyz next_pos; cXyz sp5C; +#if VERSION != VERSION_SHIELD_DEBUG + // FIXME: fakematch. I literally don't know how else to get this to match.... + u16 cur_idx = get_u16_Idx(); +#else u16 cur_idx = getIdx(); +#endif u16 prev_idx, next_idx; prev_idx = next_idx = cur_idx; @@ -543,7 +549,7 @@ int daNpcT_Path_c::chkPassed2(cXyz i_pnt, cXyz* param_2, int i_num, int param_4) cXyz h_startTan; cXyz h_endTan; - u16 cur_idx = (u16)getIdx(); + u16 cur_idx = getIdx(); u16 sp10; u16 prev_idx; u16 next_idx; @@ -1794,11 +1800,17 @@ int daNpcT_c::ctrlJoint(J3DJoint* i_joint, J3DModel* i_model) { } /* 8014997C-80149BB4 1442BC 0238+00 1/0 1/0 58/0 .text evtProc__8daNpcT_cFv */ -// NONMATCHING loads dComIfG_gameInfo twice BOOL daNpcT_c::evtProc() { BOOL ret = FALSE; - if (dComIfGp_event_runCheck() != 0) { +#if VERSION != VERSION_SHIELD_DEBUG + // TODO: gameInfo fake match to force reuse of pointer + dComIfG_play_c* play = &g_dComIfG_gameInfo.play; + if (play->getEvent().runCheck()) +#else + if (dComIfGp_event_runCheck()) +#endif + { if (eventInfo.checkCommandTalk()) { if (!checkChangeEvt()) { evtTalk(); @@ -1807,7 +1819,11 @@ BOOL daNpcT_c::evtProc() { } else if (eventInfo.checkCommandDemoAccrpt() && dComIfGp_getEventManager().endCheck(mEvtId)) { if (evtEndProc()) { +#if VERSION != VERSION_SHIELD_DEBUG + play->getEvent().reset(); +#else dComIfGp_event_reset(); +#endif mEvtId = -1; } } else { diff --git a/src/d/actor/d_a_npc_gnd.cpp b/src/d/actor/d_a_npc_gnd.cpp index eefbc8a53ad..7c700c1f0fd 100644 --- a/src/d/actor/d_a_npc_gnd.cpp +++ b/src/d/actor/d_a_npc_gnd.cpp @@ -8,258 +8,14 @@ #include "d/actor/d_a_npc_gnd.h" #include "dol2asm.h" -// -// Forward References: -// - -extern "C" void __dt__11daNpc_Gnd_cFv(); -extern "C" void create__11daNpc_Gnd_cFv(); -extern "C" void CreateHeap__11daNpc_Gnd_cFv(); -extern "C" void __dt__15J3DTevKColorAnmFv(); -extern "C" void __ct__15J3DTevKColorAnmFv(); -extern "C" void __dt__14J3DTevColorAnmFv(); -extern "C" void __ct__14J3DTevColorAnmFv(); -extern "C" void __dt__11J3DTexNoAnmFv(); -extern "C" void __ct__11J3DTexNoAnmFv(); -extern "C" void __dt__12J3DTexMtxAnmFv(); -extern "C" void __ct__12J3DTexMtxAnmFv(); -extern "C" void __dt__14J3DMatColorAnmFv(); -extern "C" void __ct__14J3DMatColorAnmFv(); -extern "C" void Delete__11daNpc_Gnd_cFv(); -extern "C" void Execute__11daNpc_Gnd_cFv(); -extern "C" void Draw__11daNpc_Gnd_cFv(); -extern "C" void createHeapCallBack__11daNpc_Gnd_cFP10fopAc_ac_c(); -extern "C" void ctrlJointCallBack__11daNpc_Gnd_cFP8J3DJointi(); -extern "C" void getType__11daNpc_Gnd_cFv(); -extern "C" void getFlowNodeNo__11daNpc_Gnd_cFv(); -extern "C" void isDelete__11daNpc_Gnd_cFv(); -extern "C" void reset__11daNpc_Gnd_cFv(); -extern "C" void afterJntAnm__11daNpc_Gnd_cFi(); -extern "C" void ctrlBtk__11daNpc_Gnd_cFv(); -extern "C" void setParam__11daNpc_Gnd_cFv(); -extern "C" void setAfterTalkMotion__11daNpc_Gnd_cFv(); -extern "C" void srchActors__11daNpc_Gnd_cFv(); -extern "C" void evtTalk__11daNpc_Gnd_cFv(); -extern "C" void evtCutProc__11daNpc_Gnd_cFv(); -extern "C" void action__11daNpc_Gnd_cFv(); -extern "C" void beforeMove__11daNpc_Gnd_cFv(); -extern "C" void setAttnPos__11daNpc_Gnd_cFv(); -extern "C" void setCollision__11daNpc_Gnd_cFv(); -extern "C" bool drawDbgInfo__11daNpc_Gnd_cFv(); -extern "C" void afterSetMotionAnm__11daNpc_Gnd_cFiifi(); -extern "C" void selectAction__11daNpc_Gnd_cFv(); -extern "C" void chkAction__11daNpc_Gnd_cFM11daNpc_Gnd_cFPCvPvPv_i(); -extern "C" void setAction__11daNpc_Gnd_cFM11daNpc_Gnd_cFPCvPvPv_i(); -extern "C" void wait__11daNpc_Gnd_cFPv(); -extern "C" void talk__11daNpc_Gnd_cFPv(); -extern "C" static void daNpc_Gnd_Create__FPv(); -extern "C" static void daNpc_Gnd_Delete__FPv(); -extern "C" static void daNpc_Gnd_Execute__FPv(); -extern "C" static void daNpc_Gnd_Draw__FPv(); -extern "C" static bool daNpc_Gnd_IsDelete__FPv(); -extern "C" void calc__11J3DTexNoAnmCFPUs(); -extern "C" void __dt__10cCcD_GSttsFv(); -extern "C" void __dt__8daNpcT_cFv(); -extern "C" void __dt__4cXyzFv(); -extern "C" void __dt__5csXyzFv(); -extern "C" void -__ct__8daNpcT_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc(); -extern "C" void __ct__5csXyzFv(); -extern "C" void __dt__15daNpcT_JntAnm_cFv(); -extern "C" void __ct__4cXyzFv(); -extern "C" void __dt__18daNpcT_ActorMngr_cFv(); -extern "C" void __dt__22daNpcT_MotionSeqMngr_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" void setEyeAngleY__15daNpcT_JntAnm_cF4cXyzsifs(); -extern "C" void setEyeAngleX__15daNpcT_JntAnm_cF4cXyzfs(); -extern "C" void ctrlSubFaceMotion__8daNpcT_cFi(); -extern "C" bool checkChangeJoint__8daNpcT_cFi(); -extern "C" bool checkRemoveJoint__8daNpcT_cFi(); -extern "C" s32 getFootLJointNo__8daNpcT_cFv(); -extern "C" s32 getFootRJointNo__8daNpcT_cFv(); -extern "C" u16 getEyeballMaterialNo__8daNpcT_cFv(); -extern "C" bool checkChangeEvt__8daNpcT_cFv(); -extern "C" bool evtEndProc__8daNpcT_cFv(); -extern "C" void afterMoved__8daNpcT_cFv(); -extern "C" bool chkXYItems__8daNpcT_cFv(); -extern "C" void decTmr__8daNpcT_cFv(); -extern "C" void drawOtherMdl__8daNpcT_cFv(); -extern "C" void drawGhost__8daNpcT_cFv(); -extern "C" bool afterSetFaceMotionAnm__8daNpcT_cFiifi(); -extern "C" void getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c(); -extern "C" void getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c(); -extern "C" void changeAnm__8daNpcT_cFPiPi(); -extern "C" void changeBck__8daNpcT_cFPiPi(); -extern "C" void changeBtp__8daNpcT_cFPiPi(); -extern "C" void changeBtk__8daNpcT_cFPiPi(); -extern "C" void __sinit_d_a_npc_gnd_cpp(); -extern "C" void -__ct__11daNpc_Gnd_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc(); -extern "C" void __dt__8cM3dGCylFv(); -extern "C" void __dt__8cM3dGAabFv(); -extern "C" u16 getEyeballRMaterialNo__11daNpc_Gnd_cFv(); -extern "C" u16 getEyeballLMaterialNo__11daNpc_Gnd_cFv(); -extern "C" s32 getHeadJointNo__11daNpc_Gnd_cFv(); -extern "C" s32 getNeckJointNo__11daNpc_Gnd_cFv(); -extern "C" bool getBackboneJointNo__11daNpc_Gnd_cFv(); -extern "C" void __dt__17daNpc_Gnd_Param_cFv(); -extern "C" static void func_809BE47C(); -extern "C" static void func_809BE484(); -extern "C" u8 const m__17daNpc_Gnd_Param_c[140]; -extern "C" extern char const* const d_a_npc_gnd__stringBase0; -extern "C" void* mCutNameList__11daNpc_Gnd_c; -extern "C" u8 mCutList__11daNpc_Gnd_c[12]; - -// -// External References: -// - -extern "C" void mDoMtx_YrotM__FPA4_fs(); -extern "C" void mDoMtx_ZrotM__FPA4_fs(); -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 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 dComIfGs_wolfeye_effect_check__Fv(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void reset__14dEvt_control_cFv(); -extern "C" void getMyStaffId__16dEvent_manager_cFPCcP10fopAc_ac_ci(); -extern "C" void getMyActIdx__16dEvent_manager_cFiPCPCciii(); -extern "C" void cutEnd__16dEvent_manager_cFi(); -extern "C" void ChkPresentEnd__16dEvent_manager_cFv(); -extern "C" void __ct__12dBgS_AcchCirFv(); -extern "C" void SetWallR__12dBgS_AcchCirFf(); -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__18daNpcT_ActorMngr_cFv(); -extern "C" void entry__18daNpcT_ActorMngr_cFP10fopAc_ac_c(); -extern "C" void remove__18daNpcT_ActorMngr_cFv(); -extern "C" void getActorP__18daNpcT_ActorMngr_cFv(); -extern "C" void initialize__15daNpcT_MatAnm_cFv(); -extern "C" void initialize__22daNpcT_MotionSeqMngr_cFv(); -extern "C" void initialize__15daNpcT_JntAnm_cFv(); -extern "C" void setParam__15daNpcT_JntAnm_cFP10fopAc_ac_cP8J3DModelP4cXyziiiffffffffffP4cXyz(); -extern "C" void calcJntRad__15daNpcT_JntAnm_cFfff(); -extern "C" void calc__19daNpcT_DmgStagger_cFi(); -extern "C" void tgHitCallBack__8daNpcT_cFP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf(); -extern "C" void getTevRegKeyAnmP__8daNpcT_cFPCci(); -extern "C" void getColorAnmP__8daNpcT_cFPCci(); -extern "C" void setBrkAnm__8daNpcT_cFP15J3DAnmTevRegKeyP12J3DModelDatafi(); -extern "C" void setBpkAnm__8daNpcT_cFP11J3DAnmColorP12J3DModelDatafi(); -extern "C" void loadRes__8daNpcT_cFPCScPPCc(); -extern "C" void deleteRes__8daNpcT_cFPCScPPCc(); -extern "C" void execute__8daNpcT_cFv(); -extern "C" void draw__8daNpcT_cFiifP11_GXColorS10fiii(); -extern "C" void setEnvTevColor__8daNpcT_cFv(); -extern "C" void setRoomNo__8daNpcT_cFv(); -extern "C" void setMtx__8daNpcT_cFv(); -extern "C" void ctrlJoint__8daNpcT_cFP8J3DJointP8J3DModel(); -extern "C" void evtProc__8daNpcT_cFv(); -extern "C" void setFootPos__8daNpcT_cFv(); -extern "C" void setFootPrtcl__8daNpcT_cFP4cXyzff(); -extern "C" bool checkCullDraw__8daNpcT_cFv(); -extern "C" void twilight__8daNpcT_cFv(); -extern "C" void evtOrder__8daNpcT_cFv(); -extern "C" void evtChange__8daNpcT_cFv(); -extern "C" void clrParam__8daNpcT_cFv(); -extern "C" void setFaceMotionAnm__8daNpcT_cFib(); -extern "C" void setMotionAnm__8daNpcT_cFifi(); -extern "C" void setAngle__8daNpcT_cFs(); -extern "C" void chkActorInSight__8daNpcT_cFP10fopAc_ac_cfs(); -extern "C" void srchPlayerActor__8daNpcT_cFv(); -extern "C" void step__8daNpcT_cFsiiii(); -extern "C" void initTalk__8daNpcT_cFiPP10fopAc_ac_c(); -extern "C" void talkProc__8daNpcT_cFPiiPP10fopAc_ac_ci(); -extern "C" void daNpcT_getDistTableIdx__Fii(); -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 cM_atan2s__Fff(); -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 __ct__10Z2CreatureFv(); -extern "C" void __dt__10Z2CreatureFv(); -extern "C" void init__10Z2CreatureFP3VecP3VecUcUc(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void init__12J3DFrameCtrlFs(); -extern "C" void getTexNo__16J3DAnmTexPatternCFUsPUs(); -extern "C" void initialize__14J3DMaterialAnmFv(); -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_22(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_22(); -extern "C" void _restgpr_25(); -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__8daNpcT_c[68]; -extern "C" extern void* __vt__8daNpcT_c[49]; -extern "C" extern void* __vt__15daNpcT_MatAnm_c[4 + 1 /* padding */]; -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" extern void* __vt__14J3DMaterialAnm[4]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" u8 sincosTable___5JMath[65536]; -extern "C" void __register_global_object(); - -// -// Declarations: -// - -// /* ############################################################################################## */ -// /* 809BE588-809BE588 0000E8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -// #pragma push -// #pragma force_active on -// SECTION_DEAD static char const* const stringBase_809BE588 = ""; -// SECTION_DEAD static char const* const stringBase_809BE589 = "NO_RESPONSE"; -// SECTION_DEAD static char const* const stringBase_809BE595 = "Gnd"; -// #pragma pop /* 809BE5BC-809BE5C4 000020 0008+00 1/1 0/0 0/0 .data l_bmdData */ -SECTION_DATA static u8 l_bmdData[8] = { - 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x01, +static int l_bmdData[1][2] = { + {11, 1}, }; /* 809BE5C4-809BE5D4 -00001 0010+00 0/1 0/0 0/0 .data l_evtList */ -SECTION_DATA static daNpcT_evtData_c l_evtList[2] = { +static daNpcT_evtData_c l_evtList[2] = { {"", 0}, {"NO_RESPONSE", 0}, }; @@ -286,23 +42,17 @@ static daNpcT_faceMotionAnmData_c l_faceMotionAnmData[1] = { }; /* 809BE604-809BE620 000068 001C+00 0/1 0/0 0/0 .data l_motionAnmData */ -#pragma push -#pragma force_active on -SECTION_DATA static int l_motionAnmData[7] = { - 8, 2, 1, 20, 0, 1, 65536 +static daNpcT_motionAnmData_c l_motionAnmData[1] = { + {8, 2, 1, 20, 0, 1, 1, 0}, }; -#pragma pop /* 809BE620-809BE630 000084 0010+00 0/1 0/0 0/0 .data l_faceMotionSequenceData */ -#pragma push -#pragma force_active on -SECTION_DATA static daNpcT_MotionSeqMngr_c::sequenceStepData_c l_faceMotionSequenceData[4] = { +static daNpcT_MotionSeqMngr_c::sequenceStepData_c l_faceMotionSequenceData[4] = { {0, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, }; -#pragma pop /* 809BE630-809BE640 000094 0010+00 0/1 0/0 0/0 .data l_motionSequenceData */ static daNpcT_MotionSeqMngr_c::sequenceStepData_c l_motionSequenceData[4] = { @@ -313,369 +63,170 @@ static daNpcT_MotionSeqMngr_c::sequenceStepData_c l_motionSequenceData[4] = { SECTION_DATA char* daNpc_Gnd_c::mCutNameList = ""; /* 809BE644-809BE650 0000A8 000C+00 2/2 0/0 0/0 .data mCutList__11daNpc_Gnd_c */ -daNpc_Gnd_c::cutFunc daNpc_Gnd_c::mCutList[1] = { - 0, -}; - -/* 809BE650-809BE65C -00001 000C+00 1/1 0/0 0/0 .data @4607 */ -SECTION_DATA static void* lit_4607[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talk__11daNpc_Gnd_cFPv, -}; - -/* 809BE65C-809BE668 -00001 000C+00 1/1 0/0 0/0 .data @4617 */ -SECTION_DATA static void* lit_4617[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talk__11daNpc_Gnd_cFPv, -}; - -/* 809BE668-809BE670 0000CC 0008+00 0/1 0/0 0/0 .data brkAnmData$4830 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 brkAnmData[8] = { - 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x01, -}; -#pragma pop - -/* 809BE670-809BE678 0000D4 0008+00 0/1 0/0 0/0 .data bpkAnmData$4831 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 bpkAnmData[8] = { - 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x01, -}; -#pragma pop - -/* 809BE678-809BE684 -00001 000C+00 1/1 0/0 0/0 .data @4881 */ -SECTION_DATA static void* lit_4881[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__11daNpc_Gnd_cFPv, -}; - -/* 809BE684-809BE6A4 -00001 0020+00 1/0 0/0 0/0 .data daNpc_Gnd_MethodTable */ -static actor_method_class daNpc_Gnd_MethodTable = { - (process_method_func)daNpc_Gnd_Create__FPv, - (process_method_func)daNpc_Gnd_Delete__FPv, - (process_method_func)daNpc_Gnd_Execute__FPv, - (process_method_func)daNpc_Gnd_IsDelete__FPv, - (process_method_func)daNpc_Gnd_Draw__FPv, -}; - -/* 809BE6A4-809BE6D4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_GND */ -extern actor_process_profile_definition g_profile_NPC_GND = { - fpcLy_CURRENT_e, // mLayerID - 7, // mListID - fpcPi_CURRENT_e, // mListPrio - PROC_NPC_GND, // mProcName - &g_fpcLf_Method.base, // sub_method - sizeof(daNpc_Gnd_c), // mSize - 0, // mSizeOther - 0, // mParameters - &g_fopAc_Method.base, // sub_method - 305, // mPriority - &daNpc_Gnd_MethodTable, // sub_method - 0x00044107, // mStatus - fopAc_NPC_e, // mActorType - fopAc_CULLBOX_CUSTOM_e, // cullType -}; - -/* 809BE6D4-809BE6E0 000138 000C+00 2/2 0/0 0/0 .data __vt__11J3DTexNoAnm */ -SECTION_DATA extern void* __vt__11J3DTexNoAnm[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)calc__11J3DTexNoAnmCFPUs, -}; - -/* 809BE6E0-809BE6EC 000144 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, -}; - -// /* 809BE6EC-809BE710 000150 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_809BE484, -// (void*)NULL, -// (void*)NULL, -// (void*)func_809BE47C, -// }; - -// /* 809BE710-809BE71C 000174 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, -// }; - -// /* 809BE71C-809BE728 000180 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, -// }; - -// /* 809BE728-809BE734 00018C 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, -// }; - -// /* 809BE734-809BE740 000198 000C+00 3/3 0/0 0/0 .data __vt__22daNpcT_MotionSeqMngr_c */ -// SECTION_DATA extern void* __vt__22daNpcT_MotionSeqMngr_c[3] = { -// (void*)NULL /* RTTI */, -// (void*)NULL, -// (void*)__dt__22daNpcT_MotionSeqMngr_cFv, -// }; - -// /* 809BE740-809BE74C 0001A4 000C+00 4/4 0/0 0/0 .data __vt__18daNpcT_ActorMngr_c */ -// SECTION_DATA extern void* __vt__18daNpcT_ActorMngr_c[3] = { -// (void*)NULL /* RTTI */, -// (void*)NULL, -// (void*)__dt__18daNpcT_ActorMngr_cFv, -// }; - -// /* 809BE74C-809BE758 0001B0 000C+00 3/3 0/0 0/0 .data __vt__15daNpcT_JntAnm_c */ -// SECTION_DATA extern void* __vt__15daNpcT_JntAnm_c[3] = { -// (void*)NULL /* RTTI */, -// (void*)NULL, -// (void*)__dt__15daNpcT_JntAnm_cFv, -// }; - -/* 809BE758-809BE764 0001BC 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, -}; - -/* 809BE764-809BE770 0001C8 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, -}; - -// /* 809BE770-809BE834 0001D4 00C4+00 2/2 0/0 0/0 .data __vt__11daNpc_Gnd_c */ -// SECTION_DATA extern void* __vt__11daNpc_Gnd_c[49] = { -// (void*)NULL /* RTTI */, -// (void*)NULL, -// (void*)__dt__11daNpc_Gnd_cFv, -// (void*)ctrlBtk__11daNpc_Gnd_cFv, -// (void*)ctrlSubFaceMotion__8daNpcT_cFi, -// (void*)checkChangeJoint__8daNpcT_cFi, -// (void*)checkRemoveJoint__8daNpcT_cFi, -// (void*)getBackboneJointNo__11daNpc_Gnd_cFv, -// (void*)getNeckJointNo__11daNpc_Gnd_cFv, -// (void*)getHeadJointNo__11daNpc_Gnd_cFv, -// (void*)getFootLJointNo__8daNpcT_cFv, -// (void*)getFootRJointNo__8daNpcT_cFv, -// (void*)getEyeballLMaterialNo__11daNpc_Gnd_cFv, -// (void*)getEyeballRMaterialNo__11daNpc_Gnd_cFv, -// (void*)getEyeballMaterialNo__8daNpcT_cFv, -// (void*)ctrlJoint__8daNpcT_cFP8J3DJointP8J3DModel, -// (void*)afterJntAnm__11daNpc_Gnd_cFi, -// (void*)setParam__11daNpc_Gnd_cFv, -// (void*)checkChangeEvt__8daNpcT_cFv, -// (void*)evtTalk__11daNpc_Gnd_cFv, -// (void*)evtEndProc__8daNpcT_cFv, -// (void*)evtCutProc__11daNpc_Gnd_cFv, -// (void*)setAfterTalkMotion__11daNpc_Gnd_cFv, -// (void*)evtProc__8daNpcT_cFv, -// (void*)action__11daNpc_Gnd_cFv, -// (void*)beforeMove__11daNpc_Gnd_cFv, -// (void*)afterMoved__8daNpcT_cFv, -// (void*)setAttnPos__11daNpc_Gnd_cFv, -// (void*)setFootPos__8daNpcT_cFv, -// (void*)setCollision__11daNpc_Gnd_cFv, -// (void*)setFootPrtcl__8daNpcT_cFP4cXyzff, -// (void*)checkCullDraw__8daNpcT_cFv, -// (void*)twilight__8daNpcT_cFv, -// (void*)chkXYItems__8daNpcT_cFv, -// (void*)evtOrder__8daNpcT_cFv, -// (void*)decTmr__8daNpcT_cFv, -// (void*)clrParam__8daNpcT_cFv, -// (void*)drawDbgInfo__11daNpc_Gnd_cFv, -// (void*)drawOtherMdl__8daNpcT_cFv, -// (void*)drawGhost__8daNpcT_cFv, -// (void*)afterSetFaceMotionAnm__8daNpcT_cFiifi, -// (void*)afterSetMotionAnm__11daNpc_Gnd_cFiifi, -// (void*)getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c, -// (void*)getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c, -// (void*)changeAnm__8daNpcT_cFPiPi, -// (void*)changeBck__8daNpcT_cFPiPi, -// (void*)changeBtp__8daNpcT_cFPiPi, -// (void*)changeBtk__8daNpcT_cFPiPi, -// (void*)setMotionAnm__8daNpcT_cFifi, -// }; - -/* 809BB60C-809BB730 0000EC 0124+00 1/0 0/0 0/0 .text __dt__11daNpc_Gnd_cFv */ -daNpc_Gnd_c::~daNpc_Gnd_c() { - // NONMATCHING -} +daNpc_Gnd_c::cutFunc daNpc_Gnd_c::mCutList[1] = {NULL}; /* ############################################################################################## */ /* 809BE4A0-809BE52C 000000 008C+00 6/6 0/0 0/0 .rodata m__17daNpc_Gnd_Param_c */ -daNpc_Gnd_Param_c::Data const daNpc_Gnd_Param_c::m = { - 280.0f, -3.0f, 1.0f, 500.0f, 255.0f, 260.0f, - 35.0f, 50.0f, 0.0f, 0.0f, 10.0f, -10.0f, - 30.0f, -10.0f, 45.0f, -45.0f, 0.6f, 12.0f, - 3, 6, 5, 6, 110.0f, 0, 0, 0, 60, 8, 0.0f, 0.0f, - 4.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f +const daNpc_Gnd_HIOParam daNpc_Gnd_Param_c::m = { + 280.0f, + -3.0f, + 1.0f, + 500.0f, + 255.0f, + 260.0f, + 35.0f, + 50.0f, + 0.0f, + 0.0f, + 10.0f, + -10.0f, + 30.0f, + -10.0f, + 45.0f, + -45.0f, + 0.6f, + 12.0f, + 3, + 6, + 5, + 6, + 110.0f, + 0.0f, + 0.0f, + 0.0f, + 60, + 8, + 0, + 0, + 0, + 0, + 0, + 4.0f, + 0.0f, + 0.0f, + 0.0f, + 0.0f, + 0.0f, + 0.0f, + 0.0f, }; -/* 809BE52C-809BE530 00008C 0004+00 0/1 0/0 0/0 .rodata @4020 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4020 = -300.0f; -COMPILER_STRIP_GATE(0x809BE52C, &lit_4020); -#pragma pop +NPC_GND_HIO_CLASS l_HIO; -/* 809BE530-809BE534 000090 0004+00 0/1 0/0 0/0 .rodata @4021 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4021 = -50.0f; -COMPILER_STRIP_GATE(0x809BE530, &lit_4021); -#pragma pop +/* 809BB60C-809BB730 0000EC 0124+00 1/0 0/0 0/0 .text __dt__11daNpc_Gnd_cFv */ +daNpc_Gnd_c::~daNpc_Gnd_c() { + OS_REPORT("|%06d:%x|daNpc_Gnd_c -> デストラクト\n", g_Counter.mCounter0, this); + if (heap != NULL) { + mpMorf[0]->stopZelAnime(); + } -/* 809BE534-809BE538 000094 0004+00 0/1 0/0 0/0 .rodata @4022 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4022 = 300.0f; -COMPILER_STRIP_GATE(0x809BE534, &lit_4022); -#pragma pop +#if DEBUG + if (mpHIO != NULL) { + mpHIO->removeHIO(); + } +#endif -/* 809BE538-809BE53C 000098 0004+00 0/1 0/0 0/0 .rodata @4023 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4023 = 450.0f; -COMPILER_STRIP_GATE(0x809BE538, &lit_4023); -#pragma pop - -/* 809BE53C-809BE540 00009C 0004+00 0/1 0/0 0/0 .rodata @4024 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4024 = -G_CM3D_F_INF; -COMPILER_STRIP_GATE(0x809BE53C, &lit_4024); -#pragma pop + deleteRes(l_loadResPtrnList[mType], (const char**)l_resNameList); +} /* 809BB730-809BB9D4 000210 02A4+00 1/1 0/0 0/0 .text create__11daNpc_Gnd_cFv */ int daNpc_Gnd_c::create() { fopAcM_SetupActor2(this, daNpc_Gnd_c, l_faceMotionAnmData, - (const daNpcT_motionAnmData_c *)l_motionAnmData, l_faceMotionSequenceData, 4, - l_motionSequenceData, 4, l_evtList, l_resNameList - ); + l_motionAnmData, l_faceMotionSequenceData, 4, + l_motionSequenceData, 4, l_evtList, l_resNameList); + mType = getType(); mFlowNodeNo = getFlowNodeNo(); mTwilight = false; int rv = loadRes(l_loadResPtrnList[mType], (const char**)l_resNameList); - if (rv == 4) { + if (rv == cPhs_COMPLEATE_e) { if (!fopAcM_entrySolidHeap(this, createHeapCallBack, 0)) { - + return cPhs_ERROR_e; } + + OS_REPORT("\t(%s:%d) flowNo:%d<%08x> ", fopAcM_getProcNameString(this), + mType, mFlowNodeNo, fopAcM_GetParam(this)); + if (isDelete()) { + OS_REPORT("===>isDelete:TRUE\n"); + return cPhs_ERROR_e; + } + + OS_REPORT("\n"); + J3DModelData* modelData = mpMorf[0]->getModel()->getModelData(); + fopAcM_SetMtx(this, mpMorf[0]->getModel()->getBaseTRMtx()); + fopAcM_setCullSizeBox(this, -300.0f, -50.0f, -300.0f, 300.0f, 450.0f, 300.0f); + fopAcM_OnStatus(this, fopAcM_STATUS_UNK_0x8000000); + mSound.init(¤t.pos, &eyePos, 3, 1); +#if DEBUG + mpHIO = &l_HIO; + // Ganondorf: + mpHIO->entryHIO("ガノンドロフ"); +#endif + 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)); + mCcStts.Init(mpHIO->m.common.weight, 0, this); + mCyl1.Set(mCcDCyl); + mCyl1.SetStts(&mCcStts); + mCyl1.SetTgHitCallback(tgHitCallBack); + mAcch.CrrPos(dComIfG_Bgsp()); + mGndChk = mAcch.m_gnd; + mGroundH = mAcch.GetGroundH(); + if (mGroundH != -G_CM3D_F_INF) { + setEnvTevColor(); + setRoomNo(); + } + + reset(); + mCreating = 1; + Execute(); + mCreating = 0; } - return 0; // Placeholder + + return rv; } -/* ############################################################################################## */ -/* 809BE540-809BE544 0000A0 0004+00 5/9 0/0 0/0 .rodata @4178 */ -SECTION_RODATA static u8 const lit_4178[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x809BE540, &lit_4178); - -/* 809BE544-809BE548 0000A4 0004+00 0/2 0/0 0/0 .rodata @4179 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4179 = 65536.0f; -COMPILER_STRIP_GATE(0x809BE544, &lit_4179); -#pragma pop - -/* 809BE548-809BE54C 0000A8 0004+00 1/4 0/0 0/0 .rodata @4180 */ -SECTION_RODATA static f32 const lit_4180 = 1.0f / 5.0f; -COMPILER_STRIP_GATE(0x809BE548, &lit_4180); - -/* 809BE54C-809BE550 0000AC 0004+00 3/5 0/0 0/0 .rodata @4331 */ -SECTION_RODATA static f32 const lit_4331 = 1.0f; -COMPILER_STRIP_GATE(0x809BE54C, &lit_4331); - /* 809BB9D4-809BBC70 0004B4 029C+00 1/1 0/0 0/0 .text CreateHeap__11daNpc_Gnd_cFv */ int daNpc_Gnd_c::CreateHeap() { - + J3DModelData* mdlData_p = NULL; + J3DModel* model = NULL; + int bmdIdx = 0; + int res_name_idx = l_bmdData[bmdIdx][1]; + int my_bmd = l_bmdData[bmdIdx][0]; + mdlData_p = static_cast(dComIfG_getObjectRes(l_resNameList[res_name_idx], my_bmd)); + JUT_ASSERT(433, 0 != mdlData_p); + + u32 sp_0x24 = 0x11020285; + mpMorf[0] = new mDoExt_McaMorfSO(mdlData_p, NULL, NULL, NULL, -1, 1.0f, 0, -1, &mSound, 0x80000, sp_0x24); + if (mpMorf[0] != NULL && mpMorf[0]->getModel() == NULL) { + mpMorf[0]->stopZelAnime(); + mpMorf[0] = NULL; + } + + if (mpMorf[0] == NULL) { + return 0; + } + + model = mpMorf[0]->getModel(); + for (u16 i = 0; i < mdlData_p->getJointNum(); i++) { + mdlData_p->getJointNodePointer(i)->setCallBack(ctrlJointCallBack); + } + + model->setUserArea((uintptr_t)this); + for (int idx = 0; idx < 2; ++idx) { + mpMatAnm[idx] = new daNpcT_MatAnm_c(); + if (mpMatAnm[idx] == NULL) { + return 0; + } + } + + if (setFaceMotionAnm(0, false) && setMotionAnm(0, 0.0f, FALSE)) { + return 1; + } + return 0; } -// /* 809BBC70-809BBCAC 000750 003C+00 1/1 0/0 0/0 .text __dt__15J3DTevKColorAnmFv */ -// // J3DTevKColorAnm::~J3DTevKColorAnm() { -// extern "C" void __dt__15J3DTevKColorAnmFv() { -// // NONMATCHING -// } - -// /* 809BBCAC-809BBCC4 00078C 0018+00 1/1 0/0 0/0 .text __ct__15J3DTevKColorAnmFv */ -// // J3DTevKColorAnm::J3DTevKColorAnm() { -// extern "C" void __ct__15J3DTevKColorAnmFv() { -// // NONMATCHING -// } - -// /* 809BBCC4-809BBD00 0007A4 003C+00 1/1 0/0 0/0 .text __dt__14J3DTevColorAnmFv */ -// // J3DTevColorAnm::~J3DTevColorAnm() { -// extern "C" void __dt__14J3DTevColorAnmFv() { -// // NONMATCHING -// } - -// /* 809BBD00-809BBD18 0007E0 0018+00 1/1 0/0 0/0 .text __ct__14J3DTevColorAnmFv */ -// // J3DTevColorAnm::J3DTevColorAnm() { -// extern "C" void __ct__14J3DTevColorAnmFv() { -// // NONMATCHING -// } - -// /* 809BBD18-809BBD60 0007F8 0048+00 1/1 0/0 0/0 .text __dt__11J3DTexNoAnmFv */ -// // J3DTexNoAnm::~J3DTexNoAnm() { -// extern "C" void __dt__11J3DTexNoAnmFv() { -// // NONMATCHING -// } - -// /* 809BBD60-809BBD84 000840 0024+00 1/1 0/0 0/0 .text __ct__11J3DTexNoAnmFv */ -// // J3DTexNoAnm::J3DTexNoAnm() { -// extern "C" void __ct__11J3DTexNoAnmFv() { -// // NONMATCHING -// } - -// /* 809BBD84-809BBDC0 000864 003C+00 1/1 0/0 0/0 .text __dt__12J3DTexMtxAnmFv */ -// // J3DTexMtxAnm::~J3DTexMtxAnm() { -// extern "C" void __dt__12J3DTexMtxAnmFv() { -// // NONMATCHING -// } - -// /* 809BBDC0-809BBDD8 0008A0 0018+00 1/1 0/0 0/0 .text __ct__12J3DTexMtxAnmFv */ -// // J3DTexMtxAnm::J3DTexMtxAnm() { -// extern "C" void __ct__12J3DTexMtxAnmFv() { -// // NONMATCHING -// } - -// /* 809BBDD8-809BBE14 0008B8 003C+00 1/1 0/0 0/0 .text __dt__14J3DMatColorAnmFv */ -// // J3DMatColorAnm::~J3DMatColorAnm() { -// extern "C" void __dt__14J3DMatColorAnmFv() { -// // NONMATCHING -// } - -// /* 809BBE14-809BBE2C 0008F4 0018+00 1/1 0/0 0/0 .text __ct__14J3DMatColorAnmFv */ -// // J3DMatColorAnm::J3DMatColorAnm() { -// extern "C" void __ct__14J3DMatColorAnmFv() { -// // NONMATCHING -// } - /* 809BBE2C-809BBE60 00090C 0034+00 1/1 0/0 0/0 .text Delete__11daNpc_Gnd_cFv */ int daNpc_Gnd_c::Delete() { fopAcM_GetID(this); @@ -688,18 +239,18 @@ int daNpc_Gnd_c::Execute() { return daNpcT_c::execute(); } -/* ############################################################################################## */ -/* 809BE550-809BE554 0000B0 0004+00 1/1 0/0 0/0 .rodata @4391 */ -SECTION_RODATA static f32 const lit_4391 = 100.0f; -COMPILER_STRIP_GATE(0x809BE550, &lit_4391); - /* 809BBE80-809BBF44 000960 00C4+00 1/1 0/0 0/0 .text Draw__11daNpc_Gnd_cFv */ int daNpc_Gnd_c::Draw() { + J3DModelData* modelData = mpMorf[0]->getModel()->getModelData(); if (mpMatAnm[0] != NULL) { - J3DModelData* modelData = mpMorf[0]->getModel()->getModelData(); - modelData->getMaterialNodePointer(getEyeballMaterialNo())->setMaterialAnm(mpMatAnm[0]); + modelData->getMaterialNodePointer(getEyeballLMaterialNo())->setMaterialAnm(mpMatAnm[0]); } - return daNpcT_c::draw(0, 0, mRealShadowSize, NULL, 100.0f, 0, 0, 0); + + if (mpMatAnm[1] != NULL) { + modelData->getMaterialNodePointer(getEyeballRMaterialNo())->setMaterialAnm(mpMatAnm[1]); + } + + return daNpcT_c::draw(0, 1, mRealShadowSize, NULL, 100.0f, 0, 0, 0); } /* 809BBF44-809BBF64 000A24 0020+00 1/1 0/0 0/0 .text @@ -710,14 +261,15 @@ int daNpc_Gnd_c::createHeapCallBack(fopAc_ac_c* i_this) { /* 809BBF64-809BBFBC 000A44 0058+00 1/1 0/0 0/0 .text ctrlJointCallBack__11daNpc_Gnd_cFP8J3DJointi */ -int daNpc_Gnd_c::ctrlJointCallBack(J3DJoint* param_1, int param_2) { - if (param_2 == 0) { +int daNpc_Gnd_c::ctrlJointCallBack(J3DJoint* i_joint, int arg1) { + if (arg1 == 0) { J3DModel* model = j3dSys.getModel(); daNpc_Gnd_c* i_this = reinterpret_cast(model->getUserArea()); if (i_this != 0) { - i_this->ctrlJoint(param_1, model); + i_this->ctrlJoint(i_joint, model); } } + return 1; } @@ -745,6 +297,7 @@ int daNpc_Gnd_c::isDelete() { if (mType == TYPE_1) { return 0; } + switch (mType) { case TYPE_0: return 0; @@ -756,7 +309,15 @@ int daNpc_Gnd_c::isDelete() { /* 809BC028-809BC168 000B08 0140+00 1/1 0/0 0/0 .text reset__11daNpc_Gnd_cFv */ void daNpc_Gnd_c::reset() { - // NONMATCHING + initialize(); + memset(&field_0xF84, 0, (u8*)&field_0xF9C - (u8*)&field_0xF84); + for (int idx = 0; idx < 2; ++idx) { + if (mpMatAnm[idx] != NULL) { + mpMatAnm[idx]->initialize(); + } + } + + setAngle(home.angle.y); } /* 809BC168-809BC1F4 000C48 008C+00 1/0 0/0 0/0 .text afterJntAnm__11daNpc_Gnd_cFi */ @@ -924,109 +485,6 @@ static int daNpc_Gnd_IsDelete(void* i_this) { return 1; } -// /* 809BD2D0-809BD300 001DB0 0030+00 1/0 0/0 0/0 .text calc__11J3DTexNoAnmCFPUs */ -// // void J3DTexNoAnm::calc(u16* param_0) const { -// extern "C" void calc__11J3DTexNoAnmCFPUs() { -// // NONMATCHING -// } - -// /* 809BD300-809BD348 001DE0 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */ -// // cCcD_GStts::~cCcD_GStts() { -// extern "C" void __dt__10cCcD_GSttsFv() { -// // NONMATCHING -// } - -// /* 809BD348-809BD6D0 001E28 0388+00 1/1 0/0 0/0 .text __dt__8daNpcT_cFv */ -// // daNpcT_c::~daNpcT_c() { -// extern "C" void __dt__8daNpcT_cFv() { -// // NONMATCHING -// } - -// /* 809BD6D0-809BD70C 0021B0 003C+00 3/3 0/0 0/0 .text __dt__4cXyzFv */ -// // cXyz::~cXyz() { -// extern "C" void __dt__4cXyzFv() { -// // NONMATCHING -// } - -// /* 809BD70C-809BD748 0021EC 003C+00 2/2 0/0 0/0 .text __dt__5csXyzFv */ -// // csXyz::~csXyz() { -// extern "C" void __dt__5csXyzFv() { -// // NONMATCHING -// } - -// /* 809BD748-809BDB4C 002228 0404+00 1/1 0/0 0/0 .text -// * __ct__8daNpcT_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc -// */ -// // daNpcT_c::daNpcT_c(daNpcT_faceMotionAnmData_c const* param_0, -// // daNpcT_motionAnmData_c const* param_1, -// // daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_2, int param_3, -// // daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_4, int param_5, -// // daNpcT_evtData_c const* param_6, char** param_7) { -// extern "C" void __ct__8daNpcT_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc() { -// // NONMATCHING -// } - -// /* 809BDB4C-809BDB50 00262C 0004+00 1/1 0/0 0/0 .text __ct__5csXyzFv */ -// // csXyz::csXyz() { -// extern "C" void __ct__5csXyzFv() { -// /* empty function */ -// } - -// /* 809BDB50-809BDC4C 002630 00FC+00 1/0 0/0 0/0 .text __dt__15daNpcT_JntAnm_cFv */ -// // daNpcT_JntAnm_c::~daNpcT_JntAnm_c() { -// extern "C" void __dt__15daNpcT_JntAnm_cFv() { -// // NONMATCHING -// } - -// /* 809BDC4C-809BDC50 00272C 0004+00 1/1 0/0 0/0 .text __ct__4cXyzFv */ -// // cXyz::cXyz() { -// extern "C" void __ct__4cXyzFv() { -// /* empty function */ -// } - -// /* 809BDC50-809BDC98 002730 0048+00 1/0 0/0 0/0 .text __dt__18daNpcT_ActorMngr_cFv */ -// // daNpcT_ActorMngr_c::~daNpcT_ActorMngr_c() { -// extern "C" void __dt__18daNpcT_ActorMngr_cFv() { -// // NONMATCHING -// } - -// /* 809BDC98-809BDCE0 002778 0048+00 1/0 0/0 0/0 .text __dt__22daNpcT_MotionSeqMngr_cFv */ -// // daNpcT_MotionSeqMngr_c::~daNpcT_MotionSeqMngr_c() { -// extern "C" void __dt__22daNpcT_MotionSeqMngr_cFv() { -// // NONMATCHING -// } - -// /* 809BDCE0-809BDD50 0027C0 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */ -// // dBgS_AcchCir::~dBgS_AcchCir() { -// extern "C" void __dt__12dBgS_AcchCirFv() { -// // NONMATCHING -// } - -// /* 809BDD50-809BDDAC 002830 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */ -// // dCcD_GStts::~dCcD_GStts() { -// extern "C" void __dt__10dCcD_GSttsFv() { -// // NONMATCHING -// } - -// /* 809BDDAC-809BDE1C 00288C 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */ -// // dBgS_ObjAcch::~dBgS_ObjAcch() { -// extern "C" void __dt__12dBgS_ObjAcchFv() { -// // NONMATCHING -// } - -// /* 809BDE1C-809BDE64 0028FC 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */ -// // J3DFrameCtrl::~J3DFrameCtrl() { -// extern "C" void __dt__12J3DFrameCtrlFv() { -// // NONMATCHING -// } - -// /* 809BDE64-809BDF80 002944 011C+00 1/1 0/0 0/0 .text setEyeAngleY__15daNpcT_JntAnm_cF4cXyzsifs */ -// // void daNpcT_JntAnm_c::setEyeAngleY(cXyz param_0, s16 param_1, int param_2, f32 param_3, -// // s16 param_4) { -// extern "C" void setEyeAngleY__15daNpcT_JntAnm_cF4cXyzsifs() { -// // NONMATCHING -// } - /* ############################################################################################## */ /* 809BE570-809BE578 0000D0 0008+00 0/1 0/0 0/0 .rodata @4785 */ #pragma push @@ -1055,178 +513,68 @@ SECTION_RODATA static u8 const lit_4787[8] = { COMPILER_STRIP_GATE(0x809BE580, &lit_4787); #pragma pop -// /* 809BDF80-809BE188 002A60 0208+00 1/1 0/0 0/0 .text setEyeAngleX__15daNpcT_JntAnm_cF4cXyzfs */ -// // void daNpcT_JntAnm_c::setEyeAngleX(cXyz param_0, f32 param_1, s16 param_2) { -// extern "C" void setEyeAngleX__15daNpcT_JntAnm_cF4cXyzfs() { -// // NONMATCHING -// } +extern "C" void talk__11daNpc_Gnd_cFPv(); +/* 809BE650-809BE65C -00001 000C+00 1/1 0/0 0/0 .data @4607 */ +SECTION_DATA static void* lit_4607[3] = { + (void*)NULL, + (void*)0xFFFFFFFF, + (void*)talk__11daNpc_Gnd_cFPv, +}; -// /* 809BE188-809BE18C 002C68 0004+00 1/0 0/0 0/0 .text ctrlSubFaceMotion__8daNpcT_cFi */ -// // void daNpcT_c::ctrlSubFaceMotion(int param_0) { -// extern "C" void ctrlSubFaceMotion__8daNpcT_cFi() { -// /* empty function */ -// } - -// /* 809BE1BC-809BE1C4 002C9C 0008+00 1/0 0/0 0/0 .text evtEndProc__8daNpcT_cFv */ -// // bool daNpcT_c::evtEndProc() { -// extern "C" bool evtEndProc__8daNpcT_cFv() { -// return true; -// } - -// /* 809BE1C8-809BE1D0 002CA8 0008+00 1/0 0/0 0/0 .text chkXYItems__8daNpcT_cFv */ -// // bool daNpcT_c::chkXYItems() { -// extern "C" bool chkXYItems__8daNpcT_cFv() { -// return false; -// } - -// /* 809BE1D0-809BE1E8 002CB0 0018+00 1/0 0/0 0/0 .text decTmr__8daNpcT_cFv */ -// // void daNpcT_c::decTmr() { -// extern "C" void decTmr__8daNpcT_cFv() { -// // NONMATCHING -// } - -// /* 809BE1E8-809BE1EC 002CC8 0004+00 1/0 0/0 0/0 .text drawOtherMdl__8daNpcT_cFv */ -// // void daNpcT_c::drawOtherMdl() { -// extern "C" void drawOtherMdl__8daNpcT_cFv() { -// /* empty function */ -// } - -// /* 809BE1EC-809BE1F0 002CCC 0004+00 1/0 0/0 0/0 .text drawGhost__8daNpcT_cFv */ -// // void daNpcT_c::drawGhost() { -// extern "C" void drawGhost__8daNpcT_cFv() { -// /* empty function */ -// } - -// /* 809BE1F0-809BE1F8 002CD0 0008+00 1/0 0/0 0/0 .text afterSetFaceMotionAnm__8daNpcT_cFiifi */ -// // bool daNpcT_c::afterSetFaceMotionAnm(int param_0, int param_1, f32 param_2, int param_3) { -// extern "C" bool afterSetFaceMotionAnm__8daNpcT_cFiifi() { -// return true; -// } - -// /* 809BE1F8-809BE228 002CD8 0030+00 1/0 0/0 0/0 .text -// * getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c */ -// // void daNpcT_c::getFaceMotionAnm(daNpcT_faceMotionAnmData_c param_0) { -// extern "C" void getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c() { -// // NONMATCHING -// } - -// /* 809BE228-809BE258 002D08 0030+00 1/0 0/0 0/0 .text -// * getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c */ -// // void daNpcT_c::getMotionAnm(daNpcT_motionAnmData_c param_0) { -// extern "C" void getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c() { -// // NONMATCHING -// } - -// /* 809BE258-809BE25C 002D38 0004+00 1/0 0/0 0/0 .text changeAnm__8daNpcT_cFPiPi */ -// // void daNpcT_c::changeAnm(int* param_0, int* param_1) { -// extern "C" void changeAnm__8daNpcT_cFPiPi() { -// /* empty function */ -// } - -// /* 809BE25C-809BE260 002D3C 0004+00 1/0 0/0 0/0 .text changeBck__8daNpcT_cFPiPi */ -// // void daNpcT_c::changeBck(int* param_0, int* param_1) { -// extern "C" void changeBck__8daNpcT_cFPiPi() { -// /* empty function */ -// } - -// /* 809BE260-809BE264 002D40 0004+00 1/0 0/0 0/0 .text changeBtp__8daNpcT_cFPiPi */ -// // void daNpcT_c::changeBtp(int* param_0, int* param_1) { -// extern "C" void changeBtp__8daNpcT_cFPiPi() { -// /* empty function */ -// } - -// /* 809BE264-809BE268 002D44 0004+00 1/0 0/0 0/0 .text changeBtk__8daNpcT_cFPiPi */ -// // void daNpcT_c::changeBtk(int* param_0, int* param_1) { -// extern "C" void changeBtk__8daNpcT_cFPiPi() { -// /* empty function */ -// } - -// /* ############################################################################################## */ -// /* 809BE834-809BE840 000298 000C+00 2/2 0/0 0/0 .data __vt__17daNpc_Gnd_Param_c */ -// SECTION_DATA extern void* __vt__17daNpc_Gnd_Param_c[3] = { -// (void*)NULL /* RTTI */, -// (void*)NULL, -// (void*)__dt__17daNpc_Gnd_Param_cFv, -// }; - -/* 809BE848-809BE854 000008 000C+00 1/1 0/0 0/0 .bss @3813 */ -static u8 lit_3813[12]; - -/* 809BE854-809BE858 000014 0004+00 1/1 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[4]; - -/* 809BE268-809BE2D0 002D48 0068+00 0/0 1/0 0/0 .text __sinit_d_a_npc_gnd_cpp */ -void __sinit_d_a_npc_gnd_cpp() { - // NONMATCHING -} +/* 809BE65C-809BE668 -00001 000C+00 1/1 0/0 0/0 .data @4617 */ +SECTION_DATA static void* lit_4617[3] = { + (void*)NULL, + (void*)0xFFFFFFFF, + (void*)talk__11daNpc_Gnd_cFPv, +}; +/* 809BE668-809BE670 0000CC 0008+00 0/1 0/0 0/0 .data brkAnmData$4830 */ #pragma push #pragma force_active on -REGISTER_CTORS(0x809BE268, __sinit_d_a_npc_gnd_cpp); +SECTION_DATA static u8 brkAnmData[8] = { + 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x01, +}; #pragma pop -/* 809BE2D0-809BE37C 002DB0 00AC+00 1/1 0/0 0/0 .text - * __ct__11daNpc_Gnd_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc -// */ -// daNpc_Gnd_c::daNpc_Gnd_c(daNpcT_faceMotionAnmData_c const* param_0, -// daNpcT_motionAnmData_c const* param_1, -// daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_2, int param_3, -// daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_4, int param_5, -// daNpcT_evtData_c const* param_6, char** param_7) { -// // NONMATCHING -// } +/* 809BE670-809BE678 0000D4 0008+00 0/1 0/0 0/0 .data bpkAnmData$4831 */ +#pragma push +#pragma force_active on +SECTION_DATA static u8 bpkAnmData[8] = { + 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x01, +}; +#pragma pop -// /* 809BE37C-809BE3C4 002E5C 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */ -// // cM3dGCyl::~cM3dGCyl() { -// extern "C" void __dt__8cM3dGCylFv() { -// // NONMATCHING -// } +extern "C" void wait__11daNpc_Gnd_cFPv(); +/* 809BE678-809BE684 -00001 000C+00 1/1 0/0 0/0 .data @4881 */ +SECTION_DATA static void* lit_4881[3] = { + (void*)NULL, + (void*)0xFFFFFFFF, + (void*)wait__11daNpc_Gnd_cFPv, +}; -// /* 809BE3C4-809BE40C 002EA4 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -// // cM3dGAab::~cM3dGAab() { -// extern "C" void __dt__8cM3dGAabFv() { -// // NONMATCHING -// } +/* 809BE684-809BE6A4 -00001 0020+00 1/0 0/0 0/0 .data daNpc_Gnd_MethodTable */ +static actor_method_class daNpc_Gnd_MethodTable = { + (process_method_func)daNpc_Gnd_Create, + (process_method_func)daNpc_Gnd_Delete, + (process_method_func)daNpc_Gnd_Execute, + (process_method_func)daNpc_Gnd_IsDelete, + (process_method_func)daNpc_Gnd_Draw, +}; -/* 809BE40C-809BE414 002EEC 0008+00 1/0 0/0 0/0 .text getEyeballRMaterialNo__11daNpc_Gnd_cFv */ -u16 daNpc_Gnd_c::getEyeballRMaterialNo() { - return 3; -} - -/* 809BE414-809BE41C 002EF4 0008+00 1/0 0/0 0/0 .text getEyeballLMaterialNo__11daNpc_Gnd_cFv */ -u16 daNpc_Gnd_c::getEyeballLMaterialNo() { - return 2; -} - -/* 809BE41C-809BE424 002EFC 0008+00 1/0 0/0 0/0 .text getHeadJointNo__11daNpc_Gnd_cFv */ -s32 daNpc_Gnd_c::getHeadJointNo() { - return 4; -} - -/* 809BE424-809BE42C 002F04 0008+00 1/0 0/0 0/0 .text getNeckJointNo__11daNpc_Gnd_cFv */ -s32 daNpc_Gnd_c::getNeckJointNo() { - return 3; -} - -/* 809BE42C-809BE434 002F0C 0008+00 1/0 0/0 0/0 .text getBackboneJointNo__11daNpc_Gnd_cFv - */ -s32 daNpc_Gnd_c::getBackboneJointNo() { - return 1; -} - -// /* 809BE434-809BE47C 002F14 0048+00 2/1 0/0 0/0 .text __dt__17daNpc_Gnd_Param_cFv */ -// daNpc_Gnd_Param_c::~daNpc_Gnd_Param_c() { -// // NONMATCHING -// } - -/* 809BE47C-809BE484 002F5C 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */ -static void func_809BE47C() { - // NONMATCHING -} - -/* 809BE484-809BE48C 002F64 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */ -static void func_809BE484() { - // NONMATCHING -} - -/* 809BE588-809BE588 0000E8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ +/* 809BE6A4-809BE6D4 -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_GND */ +extern actor_process_profile_definition g_profile_NPC_GND = { + fpcLy_CURRENT_e, // mLayerID + 7, // mListID + fpcPi_CURRENT_e, // mListPrio + PROC_NPC_GND, // mProcName + &g_fpcLf_Method.base, // sub_method + sizeof(daNpc_Gnd_c), // mSize + 0, // mSizeOther + 0, // mParameters + &g_fopAc_Method.base, // sub_method + 305, // mPriority + &daNpc_Gnd_MethodTable, // sub_method + 0x00044107, // mStatus + fopAc_NPC_e, // mActorType + fopAc_CULLBOX_CUSTOM_e, // cullType +}; diff --git a/src/d/actor/d_a_npc_moi.cpp b/src/d/actor/d_a_npc_moi.cpp index 27605f53fb4..900bd1a11ec 100644 --- a/src/d/actor/d_a_npc_moi.cpp +++ b/src/d/actor/d_a_npc_moi.cpp @@ -454,8 +454,8 @@ BOOL daNpc_Moi_c::isDelete() { /* 80A74D8C-80A7513C 000F2C 03B0+00 1/1 0/0 0/0 .text reset__11daNpc_Moi_cFv */ void daNpc_Moi_c::reset() { int iVar8; - csXyz cStack_80; cXyz cStack_30; + csXyz cStack_80; int iVar1 = (u8*)&field_0x1670 - (u8*)&field_0x1610; if (mpMatAnm[0] != NULL) { @@ -489,13 +489,13 @@ void daNpc_Moi_c::reset() { break; case TYPE_2: if (daNpcT_chkEvtBit(0xcd)) { + JUT_ASSERT(1932, 0 != mPath.getPathInfo()); iVar8 = g_Counter.mCounter0 % mPath.getNumPnts(); cStack_30 = mPath.getPntPos(iVar8); setPos(cStack_30); mPath.setIdx(iVar8); - mPath.setNextIdx(mPath.getNumPnts()); - u16 path_idx = mPath.getIdx(); - cStack_30 = mPath.getPntPos(path_idx); + mPath.setNextIdx(); + cStack_30 = mPath.getPntPos(mPath.getIdx()); cStack_80.y = cLib_targetAngleY(¤t.pos, &cStack_30); } field_0x1666 = 1; @@ -1576,8 +1576,7 @@ int daNpc_Moi_c::cutConversationWithUri(int param_1) { setPos(cStack_34); mPath.setIdx(0); mPath.setNextIdx(mPath.getNumPnts()); - u16 path_idx = mPath.getIdx(); - cStack_34 = mPath.getPntPos(path_idx); + cStack_34 = mPath.getPntPos(mPath.getIdx()); setAngle(cLib_targetAngleY(¤t.pos, &cStack_34)); break; case 2: @@ -1638,8 +1637,7 @@ int daNpc_Moi_c::cutFindWolf(int param_1) { mPath.offReverse(); mPath.setIdx(0); mPath.setNextIdx(mPath.getNumPnts()); - u16 path_idx = mPath.getIdx(); - cStack_30 = mPath.getPntPos(path_idx); + cStack_30 = mPath.getPntPos(mPath.getIdx()); field_0x1664 = fopAcM_searchPlayerAngleY(this); setAngle(field_0x1664); mPlayerActorMngr.entry(daPy_getPlayerActorClass()); diff --git a/src/d/actor/d_a_npc_toby.cpp b/src/d/actor/d_a_npc_toby.cpp index 67c121e5b52..ec43a90683e 100644 --- a/src/d/actor/d_a_npc_toby.cpp +++ b/src/d/actor/d_a_npc_toby.cpp @@ -6,342 +6,125 @@ #include "d/dolzel_rel.h" // IWYU pragma: keep #include "d/actor/d_a_npc_toby.h" -#include "dol2asm.h" - -// -// Forward References: -// - -extern "C" void __dt__12daNpc_Toby_cFv(); -extern "C" void create__12daNpc_Toby_cFv(); -extern "C" void CreateHeap__12daNpc_Toby_cFv(); -extern "C" void __dt__15J3DTevKColorAnmFv(); -extern "C" void __ct__15J3DTevKColorAnmFv(); -extern "C" void __dt__14J3DTevColorAnmFv(); -extern "C" void __ct__14J3DTevColorAnmFv(); -extern "C" void __dt__11J3DTexNoAnmFv(); -extern "C" void __ct__11J3DTexNoAnmFv(); -extern "C" void __dt__12J3DTexMtxAnmFv(); -extern "C" void __ct__12J3DTexMtxAnmFv(); -extern "C" void __dt__14J3DMatColorAnmFv(); -extern "C" void __ct__14J3DMatColorAnmFv(); -extern "C" void Delete__12daNpc_Toby_cFv(); -extern "C" void Execute__12daNpc_Toby_cFv(); -extern "C" void Draw__12daNpc_Toby_cFv(); -extern "C" void createHeapCallBack__12daNpc_Toby_cFP10fopAc_ac_c(); -extern "C" void ctrlJointCallBack__12daNpc_Toby_cFP8J3DJointi(); -extern "C" void srchToby__12daNpc_Toby_cFPvPv(); -extern "C" void getOtherTobyP__12daNpc_Toby_cFi(); -extern "C" void getType__12daNpc_Toby_cFv(); -extern "C" void isDelete__12daNpc_Toby_cFv(); -extern "C" void reset__12daNpc_Toby_cFv(); -extern "C" void afterJntAnm__12daNpc_Toby_cFi(); -extern "C" void setParam__12daNpc_Toby_cFv(); -extern "C" void checkChangeEvt__12daNpc_Toby_cFv(); -extern "C" void setAfterTalkMotion__12daNpc_Toby_cFv(); -extern "C" void srchActors__12daNpc_Toby_cFv(); -extern "C" void evtTalk__12daNpc_Toby_cFv(); -extern "C" void evtCutProc__12daNpc_Toby_cFv(); -extern "C" void action__12daNpc_Toby_cFv(); -extern "C" void beforeMove__12daNpc_Toby_cFv(); -extern "C" void setAttnPos__12daNpc_Toby_cFv(); -extern "C" void setCollision__12daNpc_Toby_cFv(); -extern "C" bool drawDbgInfo__12daNpc_Toby_cFv(); -extern "C" void drawOtherMdl__12daNpc_Toby_cFv(); -extern "C" void afterSetFaceMotionAnm__12daNpc_Toby_cFiifi(); -extern "C" void afterSetMotionAnm__12daNpc_Toby_cFiifi(); -extern "C" void selectAction__12daNpc_Toby_cFv(); -extern "C" void chkAction__12daNpc_Toby_cFM12daNpc_Toby_cFPCvPvPv_i(); -extern "C" void setAction__12daNpc_Toby_cFM12daNpc_Toby_cFPCvPvPv_i(); -extern "C" void cutTobyHouseFire__12daNpc_Toby_cFi(); -extern "C" void cutTalkToOneself__12daNpc_Toby_cFi(); -extern "C" void cutRepairSCannon__12daNpc_Toby_cFi(); -extern "C" void cutSCannon__12daNpc_Toby_cFi(); -extern "C" void cutConversationAboutSCannon__12daNpc_Toby_cFi(); -extern "C" void cutConversationAboutZra__12daNpc_Toby_cFi(); -extern "C" void chkAttnZra__12daNpc_Toby_cFv(); -extern "C" void wait__12daNpc_Toby_cFPv(); -extern "C" void walk__12daNpc_Toby_cFPv(); -extern "C" void play__12daNpc_Toby_cFPv(); -extern "C" void talk__12daNpc_Toby_cFPv(); -extern "C" static void daNpc_Toby_Create__FPv(); -extern "C" static void daNpc_Toby_Delete__FPv(); -extern "C" static void daNpc_Toby_Execute__FPv(); -extern "C" static void daNpc_Toby_Draw__FPv(); -extern "C" static bool daNpc_Toby_IsDelete__FPv(); -extern "C" void calc__11J3DTexNoAnmCFPUs(); -extern "C" void __dt__10cCcD_GSttsFv(); -extern "C" void __dt__8daNpcT_cFv(); -extern "C" void __dt__4cXyzFv(); -extern "C" void __dt__5csXyzFv(); -extern "C" void __dt__18daNpcT_ActorMngr_cFv(); -extern "C" void __dt__13daNpcT_Path_cFv(); -extern "C" void __ct__18daNpcT_ActorMngr_cFv(); -extern "C" void __dt__8cM3dGCylFv(); -extern "C" void __dt__8cM3dGAabFv(); -extern "C" void -__ct__8daNpcT_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc(); -extern "C" void __ct__5csXyzFv(); -extern "C" void __dt__15daNpcT_JntAnm_cFv(); -extern "C" void __ct__4cXyzFv(); -extern "C" void __dt__22daNpcT_MotionSeqMngr_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" void setEyeAngleY__15daNpcT_JntAnm_cF4cXyzsifs(); -extern "C" void setEyeAngleX__15daNpcT_JntAnm_cF4cXyzfs(); -extern "C" void ctrlSubFaceMotion__8daNpcT_cFi(); -extern "C" bool getEyeballLMaterialNo__8daNpcT_cFv(); -extern "C" bool getEyeballRMaterialNo__8daNpcT_cFv(); -extern "C" bool evtEndProc__8daNpcT_cFv(); -extern "C" void afterMoved__8daNpcT_cFv(); -extern "C" void decTmr__8daNpcT_cFv(); -extern "C" void drawGhost__8daNpcT_cFv(); -extern "C" void getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c(); -extern "C" void getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c(); -extern "C" void changeAnm__8daNpcT_cFPiPi(); -extern "C" void changeBck__8daNpcT_cFPiPi(); -extern "C" void changeBtp__8daNpcT_cFPiPi(); -extern "C" void changeBtk__8daNpcT_cFPiPi(); -extern "C" void func_80B24728(void* _this, int*); -extern "C" void __sinit_d_a_npc_toby_cpp(); -extern "C" void -__ct__12daNpc_Toby_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc(); -extern "C" u16 getEyeballMaterialNo__12daNpc_Toby_cFv(); -extern "C" s32 getHeadJointNo__12daNpc_Toby_cFv(); -extern "C" s32 getNeckJointNo__12daNpc_Toby_cFv(); -extern "C" bool getBackboneJointNo__12daNpc_Toby_cFv(); -extern "C" void checkChangeJoint__12daNpc_Toby_cFi(); -extern "C" void checkRemoveJoint__12daNpc_Toby_cFi(); -extern "C" s32 getFootLJointNo__12daNpc_Toby_cFv(); -extern "C" s32 getFootRJointNo__12daNpc_Toby_cFv(); -extern "C" bool chkXYItems__12daNpc_Toby_cFv(); -extern "C" void __dt__18daNpc_Toby_Param_cFv(); -extern "C" static void func_80B249C0(); -extern "C" static void func_80B249C8(); -extern "C" u8 const m__18daNpc_Toby_Param_c[156]; -extern "C" extern char const* const d_a_npc_toby__stringBase0; -extern "C" void* mCutNameList__12daNpc_Toby_c[7]; -extern "C" u8 mCutList__12daNpc_Toby_c[84]; - -// -// External References: -// - -extern "C" void mDoMtx_YrotS__FPA4_fs(); -extern "C" void mDoMtx_YrotM__FPA4_fs(); -extern "C" void mDoMtx_ZrotM__FPA4_fs(); -extern "C" void mDoExt_modelUpdateDL__FP8J3DModel(); -extern "C" void -__ct__16mDoExt_McaMorfSOFP12J3DModelDataP25mDoExt_McaMorfCallBack1_cP25mDoExt_McaMorfCallBack2_cP15J3DAnmTransformifiiP10Z2CreatureUlUl(); -extern "C" void stopZelAnime__16mDoExt_McaMorfSOFv(); -extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void fopAcIt_Judge__FPFPvPv_PvPv(); -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_searchActorDistance__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void fpcEx_IsExist__FUi(); -extern "C" void dStage_changeScene__FifUlScsi(); -extern "C" void getLayerNo__14dComIfG_play_cFi(); -extern "C" void dComIfGs_sense_type_change_Set__FSc(); -extern "C" void dComIfGs_wolfeye_effect_check__Fv(); -extern "C" void isSwitch__12dSv_memBit_cCFi(); -extern "C" void offSwitch__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 setPt2__14dEvt_control_cFPv(); -extern "C" void getMyStaffId__16dEvent_manager_cFPCcP10fopAc_ac_ci(); -extern "C" void getIsAddvance__16dEvent_manager_cFi(); -extern "C" void getMyActIdx__16dEvent_manager_cFiPCPCciii(); -extern "C" void getMySubstanceP__16dEvent_manager_cFiPCci(); -extern "C" void cutEnd__16dEvent_manager_cFi(); -extern "C" void setGoal__16dEvent_manager_cFP4cXyz(); -extern "C" void ChkPresentEnd__16dEvent_manager_cFv(); -extern "C" void init__7dPaPo_cFP9dBgS_Acchff(); -extern "C" void addReal__21dDlst_shadowControl_cFUlP8J3DModel(); -extern "C" void GroundCross__4cBgSFP11cBgS_GndChk(); -extern "C" void __ct__12dBgS_AcchCirFv(); -extern "C" void SetWallR__12dBgS_AcchCirFf(); -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 GetTgHitObj__12dCcD_GObjInfFv(); -extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl(); -extern "C" void initialize__18daNpcT_ActorMngr_cFv(); -extern "C" void entry__18daNpcT_ActorMngr_cFP10fopAc_ac_c(); -extern "C" void remove__18daNpcT_ActorMngr_cFv(); -extern "C" void getActorP__18daNpcT_ActorMngr_cFv(); -extern "C" void initialize__15daNpcT_MatAnm_cFv(); -extern "C" void initialize__22daNpcT_MotionSeqMngr_cFv(); -extern "C" void checkEndSequence__22daNpcT_MotionSeqMngr_cFv(); -extern "C" void initialize__13daNpcT_Path_cFv(); -extern "C" void setPathInfo__13daNpcT_Path_cFUcScUc(); -extern "C" void setNextIdx__13daNpcT_Path_cFi(); -extern "C" void getDstPosH__13daNpcT_Path_cF4cXyzP4cXyzii(); -extern "C" void initialize__15daNpcT_JntAnm_cFv(); -extern "C" void setParam__15daNpcT_JntAnm_cFP10fopAc_ac_cP8J3DModelP4cXyziiiffffffffffP4cXyz(); -extern "C" void calcJntRad__15daNpcT_JntAnm_cFfff(); -extern "C" void setParam__19daNpcT_DmgStagger_cFP10fopAc_ac_cP10fopAc_ac_cs(); -extern "C" void calc__19daNpcT_DmgStagger_cFi(); -extern "C" void tgHitCallBack__8daNpcT_cFP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf(); -extern "C" void loadRes__8daNpcT_cFPCScPPCc(); -extern "C" void deleteRes__8daNpcT_cFPCScPPCc(); -extern "C" void execute__8daNpcT_cFv(); -extern "C" void draw__8daNpcT_cFiifP11_GXColorS10fiii(); -extern "C" void setEnvTevColor__8daNpcT_cFv(); -extern "C" void setRoomNo__8daNpcT_cFv(); -extern "C" void ctrlBtk__8daNpcT_cFv(); -extern "C" void setMtx__8daNpcT_cFv(); -extern "C" void ctrlJoint__8daNpcT_cFP8J3DJointP8J3DModel(); -extern "C" void evtProc__8daNpcT_cFv(); -extern "C" void setFootPos__8daNpcT_cFv(); -extern "C" void setFootPrtcl__8daNpcT_cFP4cXyzff(); -extern "C" bool checkCullDraw__8daNpcT_cFv(); -extern "C" void twilight__8daNpcT_cFv(); -extern "C" void evtOrder__8daNpcT_cFv(); -extern "C" void evtChange__8daNpcT_cFv(); -extern "C" void clrParam__8daNpcT_cFv(); -extern "C" void setFaceMotionAnm__8daNpcT_cFib(); -extern "C" void setMotionAnm__8daNpcT_cFifi(); -extern "C" void setPos__8daNpcT_cF4cXyz(); -extern "C" void setAngle__8daNpcT_cF5csXyz(); -extern "C" void setAngle__8daNpcT_cFs(); -extern "C" void hitChk__8daNpcT_cFP12dCcD_GObjInfUl(); -extern "C" void setDamage__8daNpcT_cFiii(); -extern "C" void chkActorInSight__8daNpcT_cFP10fopAc_ac_cfs(); -extern "C" void chkPointInArea__8daNpcT_cF4cXyz4cXyzfffs(); -extern "C" void srchPlayerActor__8daNpcT_cFv(); -extern "C" void getAttnPos__8daNpcT_cFP10fopAc_ac_c(); -extern "C" void step__8daNpcT_cFsiiii(); -extern "C" void calcSpeedAndAngle__8daNpcT_cF4cXyziss(); -extern "C" void initTalk__8daNpcT_cFiPP10fopAc_ac_c(); -extern "C" void talkProc__8daNpcT_cFPiiPP10fopAc_ac_ci(); -extern "C" void getNearestActorP__8daNpcT_cFs(); -extern "C" void daNpcT_getPlayerInfoFromPlayerList__FiiP4cXyzP5csXyz(); -extern "C" void daNpcT_getDistTableIdx__Fii(); -extern "C" void daNpcT_onEvtBit__FUl(); -extern "C" void daNpcT_offEvtBit__FUl(); -extern "C" void daNpcT_chkEvtBit__FUl(); -extern "C" void daNpcT_offTmpBit__FUl(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void dKy_darkworld_check__Fv(); -extern "C" void getStatus__12dMsgObject_cFv(); -extern "C" void isMsgSendControl__12dMsgObject_cFv(); -extern "C" void onMsgSend__12dMsgObject_cFv(); -extern "C" void __ct__10dMsgFlow_cFv(); -extern "C" void __dt__10dMsgFlow_cFv(); -extern "C" void getEventId__10dMsgFlow_cFPi(); -extern "C" void Set__4cCcSFP8cCcD_Obj(); -extern "C" void __pl__4cXyzCFRC3Vec(); -extern "C" void __mi__4cXyzCFRC3Vec(); -extern "C" void cM_atan2s__Fff(); -extern "C" void cM_rndF__Ff(); -extern "C" void __ct__11cBgS_GndChkFv(); -extern "C" void __dt__11cBgS_GndChkFv(); -extern "C" void SetPos__11cBgS_GndChkFPC4cXyz(); -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_addCalcAngleS2__FPssss(); -extern "C" void cLib_chaseS__FPsss(); -extern "C" void cLib_chaseF__FPfff(); -extern "C" void cLib_targetAngleY__FPC3VecPC3Vec(); -extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc(); -extern "C" void bgmStreamPrepare__8Z2SeqMgrFUl(); -extern "C" void bgmStreamPlay__8Z2SeqMgrFv(); -extern "C" void bgmStreamStop__8Z2SeqMgrFUl(); -extern "C" void __ct__10Z2CreatureFv(); -extern "C" void __dt__10Z2CreatureFv(); -extern "C" void init__10Z2CreatureFP3VecP3VecUcUc(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void init__12J3DFrameCtrlFs(); -extern "C" void getTexNo__16J3DAnmTexPatternCFUsPUs(); -extern "C" void initialize__14J3DMaterialAnmFv(); -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 __cvt_fp2unsigned(); -extern "C" void _savegpr_22(); -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_22(); -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__8daNpcT_c[68]; -extern "C" extern void* __vt__8daNpcT_c[49]; -extern "C" extern void* __vt__15daNpcT_MatAnm_c[4 + 1 /* padding */]; -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" extern void* __vt__14J3DMaterialAnm[4]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" u8 mFindActorPtrs__8daNpcT_c[200]; -extern "C" u8 mFindCount__8daNpcT_c[4]; -extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; -extern "C" void __register_global_object(); -extern "C" void setAnm__16daObj_AutoMata_cFib(); -extern "C" void setCannonRepair__11daSCannon_cFv(); - -// -// Declarations: -// +#include "Z2AudioLib/Z2Instances.h" +#if DEBUG +#include "JSystem/JHostIO/JORFile.h" +#endif +#include "d/actor/d_a_obj_automata.h" +#include "d/d_msg_object.h" +#include "d/actor/d_a_obj_scannon.h" /* ############################################################################################## */ -/* 80B24B8C-80B24B8C 0001A8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80B24B8C = ""; -SECTION_DEAD static char const* const stringBase_80B24B8D = "NO_RESPONSE"; -SECTION_DEAD static char const* const stringBase_80B24B99 = "TALKTO_ONESELF"; -SECTION_DEAD static char const* const stringBase_80B24BA8 = "REPAIR_SCANNON"; -SECTION_DEAD static char const* const stringBase_80B24BB7 = "SCANNON"; -SECTION_DEAD static char const* const stringBase_80B24BBF = "CONVERSATION_ABOUT_SCANNON"; -SECTION_DEAD static char const* const stringBase_80B24BDA = "CONVERSATION_ABOUT_ZRA"; -SECTION_DEAD static char const* const stringBase_80B24BF1 = "Toby"; -SECTION_DEAD static char const* const stringBase_80B24BF6 = "Toby_TW"; -SECTION_DEAD static char const* const stringBase_80B24BFE = "Toby0"; -SECTION_DEAD static char const* const stringBase_80B24C04 = "Toby1"; -SECTION_DEAD static char const* const stringBase_80B24C0A = "Toby2"; -SECTION_DEAD static char const* const stringBase_80B24C10 = "Toby3"; -SECTION_DEAD static char const* const stringBase_80B24C16 = "Toby4"; -SECTION_DEAD static char const* const stringBase_80B24C1C = "Toby5"; -SECTION_DEAD static char const* const stringBase_80B24C22 = "TOBY_HOUSE_FIRE"; -#pragma pop +/* 80B249E4-80B24A80 000000 009C+00 15/15 0/0 0/0 .rodata m__18daNpc_Toby_Param_c */ +const daNpc_Toby_HIOParam daNpc_Toby_Param_c::m = { + 160.0f, + -3.0f, + 1.0f, + 400.0f, + 255.0f, + 150.0f, + 35.0f, + 40.0f, + 0.0f, + 0.0f, + 10.0f, + -10.0f, + 30.0f, + -10.0f, + 45.0f, + -45.0f, + 0.6f, + 12.0f, + 3, + 6, + 5, + 6, + 110.0f, + 0.0f, + 0.0f, + 0.0f, + 60, + 8, + 0, + 0, + 0, + 0, + 0, + 4.0f, + 0.0f, + 0.0f, + 0.0f, + 0.0f, + 0.0f, + 0.0f, + 0.0f, + // actor-specific: + 4.0f, + 2.0f, + 2.0f, + 4.0f, +}; + +#if DEBUG +daNpc_Toby_HIO_c::daNpc_Toby_HIO_c() { + m = daNpc_Toby_Param_c::m; +} + +void daNpc_Toby_HIO_c::listenPropertyEvent(const JORPropertyEvent* event) { + char msg_buffer[1988]; + + JORReflexible::listenPropertyEvent(event); + + JORFile aJStack_910; + int len; + switch (reinterpret_cast(event->id)) { + case 0x40000002: + if (aJStack_910.open(6, "すべてのファイル(*.*)\0*.*\0", NULL, NULL, NULL) != 0) { + memset(msg_buffer, 0, 2000); + len = 0; + daNpcT_cmnListenPropertyEvent(msg_buffer, &len, &m.common); + // performance speed: + sprintf(msg_buffer + len, "%d, \t// 演奏速度\n", m.performance_speed); + len = strlen(msg_buffer); + // performance speed up: + sprintf(msg_buffer + len, "%d, \t// 演奏加速\n", m.speedup_performance); + len = strlen(msg_buffer); + // initial speed of performance: + sprintf(msg_buffer + len, "%d, \t// 演奏初速\n", m.init_play_speed); + len = strlen(msg_buffer); + // switching speed: + sprintf(msg_buffer + len, "%d, \t// 切り替え速度\n", m.switching_speed); + len = strlen(msg_buffer); + aJStack_910.writeData(msg_buffer, len); + aJStack_910.close(); + OS_REPORT("write append success!::%6d\n", len); + } else { + OS_REPORT("write append failure!\n"); + } + break; + } +} + +void daNpc_Toby_HIO_c::genMessage(JORMContext* ctext) { + daNpcT_cmnGenMessage(ctext, &m.common); + // Performance speed: + ctext->genSlider("演奏速度 ", &m.performance_speed, 1.0f, 16.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24); + // playing speed up: + ctext->genSlider("演奏加速 ", &m.speedup_performance, 0.0f, 16.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24); + // playing initial velocity: + ctext->genSlider("演奏初速 ", &m.init_play_speed, 1.0f, 16.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24); + // switching speed: + ctext->genSlider("切り替え速度 ", &m.switching_speed, 0.0f, 16.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 24); + // export file: + ctext->genButton("ファイル書き出し", 0x40000002, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); +} +#endif /* 80B24C68-80B24C80 000020 0018+00 1/1 0/0 0/0 .data l_bmdData */ -SECTION_DATA static u8 l_bmdData[24] = { - 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x06, +static int l_bmdData[3][2] = { + {3, 1}, + {3, 2}, + {9, 6}, }; /* 80B24C80-80B24CB8 -00001 0038+00 0/1 0/0 0/0 .data l_evtList */ @@ -369,196 +152,111 @@ static char* l_resNameList[9] = { }; /* 80B24CDC-80B24CE4 000094 0006+02 1/0 0/0 0/0 .data l_loadResPtrn0 */ -SECTION_DATA static u8 l_loadResPtrn0[6 + 2 /* padding */] = { - 0x01, - 0x03, - 0x04, - 0x07, - 0x08, - 0xFF, - /* padding */ - 0x00, - 0x00, -}; +static s8 l_loadResPtrn0[6] = {1, 3, 4, 7, 8, -1}; /* 80B24CE4-80B24CEC 00009C 0006+02 1/0 0/0 0/0 .data l_loadResPtrn1 */ -SECTION_DATA static u8 l_loadResPtrn1[6 + 2 /* padding */] = { - 0x02, - 0x03, - 0x05, - 0x07, - 0x08, - 0xFF, - /* padding */ - 0x00, - 0x00, -}; +static s8 l_loadResPtrn1[6] = {2, 3, 5, 7, 8, -1}; /* 80B24CEC-80B24CF4 0000A4 0005+03 1/0 0/0 0/0 .data l_loadResPtrn2 */ -SECTION_DATA static u8 l_loadResPtrn2[5 + 3 /* padding */] = { - 0x01, - 0x03, - 0x06, - 0x07, - 0xFF, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +static s8 l_loadResPtrn2[5] = {1, 3, 6, 7, -1}; /* 80B24CF4-80B24CFC 0000AC 0008+00 1/0 0/0 0/0 .data l_loadResPtrn3 */ -SECTION_DATA static u8 l_loadResPtrn3[8] = { - 0x01, 0x02, 0x03, 0x04, 0x05, 0x07, 0x08, 0xFF, -}; +static s8 l_loadResPtrn3[8] = {1, 2, 3, 4, 5, 7, 8, -1}; /* 80B24CFC-80B24D18 -00001 001C+00 1/2 0/0 0/0 .data l_loadResPtrnList */ -SECTION_DATA static void* l_loadResPtrnList[7] = { - (void*)&l_loadResPtrn0, (void*)&l_loadResPtrn1, (void*)&l_loadResPtrn1, (void*)&l_loadResPtrn2, - (void*)&l_loadResPtrn2, (void*)&l_loadResPtrn0, (void*)&l_loadResPtrn3, +static s8* l_loadResPtrnList[7] = { + l_loadResPtrn0, l_loadResPtrn1, l_loadResPtrn1, l_loadResPtrn2, + l_loadResPtrn2, l_loadResPtrn0, l_loadResPtrn3, }; /* 80B24D18-80B24ED8 0000D0 01C0+00 0/1 0/0 0/0 .data l_faceMotionAnmData */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_faceMotionAnmData[448] = { - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x05, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1E, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x15, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, - 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0D, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x05, - 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, +static daNpcT_faceMotionAnmData_c l_faceMotionAnmData[16] = { + {-1, 0, 0, 13, 2, 3, 1}, + {5, 0, 3, 14, 0, 3, 0}, + {12, 0, 4, 29, 0, 4, 0}, + {14, 0, 4, 31, 0, 4, 0}, + {13, 0, 4, 30, 0, 4, 0}, + {6, 0, 4, 26, 0, 4, 0}, + {7, 2, 4, 27, 2, 4, 0}, + {8, 2, 4, 28, 2, 4, 0}, + {7, 0, 5, 21, 0, 5, 0}, + {5, 0, 7, 19, 0, 7, 0}, + {5, 0, 8, 18, 0, 8, 0}, + {6, 0, 5, 20, 0, 5, 0}, + {9, 2, 5, 13, 2, 3, 1}, + {6, 2, 7, 13, 2, 3, 1}, + {6, 2, 8, 19, 2, 8, 0}, + {8, 2, 5, 22, 2, 5, 0}, }; -#pragma pop /* 80B24ED8-80B25194 000290 02BC+00 0/1 0/0 0/0 .data l_motionAnmData */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_motionAnmData[700] = { - 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0A, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, - 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0A, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0A, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x05, - 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x10, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, - 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x10, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, - 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0A, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, - 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06, - 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0A, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, +static daNpcT_motionAnmData_c l_motionAnmData[25] = { + {7, 2, 3, 10, 0, 3, 1, 0}, + {15, 2, 4, 10, 0, 3, 1, 0}, + {20, 2, 4, 10, 0, 3, 1, 0}, + {16, 0, 4, 10, 0, 3, 1, 0}, + {17, 0, 4, 10, 0, 3, 1, 0}, + {19, 0, 4, 10, 0, 3, 1, 0}, + {18, 0, 4, 23, 0, 4, 0, 0}, + {9, 0, 4, 10, 0, 3, 1, 0}, + {10, 2, 4, 10, 0, 3, 1, 0}, + {11, 2, 4, 10, 0, 3, 1, 0}, + {10, 0, 5, 15, 0, 5, 0, 0}, + {12, 2, 5, 17, 2, 5, 0, 0}, + {10, 2, 7, 16, 2, 7, 0, 0}, + {9, 2, 7, 15, 2, 7, 0, 0}, + {7, 0, 7, 13, 0, 7, 0, 0}, + {8, 2, 7, 14, 2, 7, 0, 0}, + {11, 0, 5, 16, 0, 5, 0, 0}, + {9, 2, 8, 15, 2, 8, 0, 0}, + {7, 0, 8, 13, 0, 8, 0, 0}, + {8, 2, 8, 14, 2, 8, 0, 0}, + {6, 0, 3, 10, 0, 3, 1, 0}, + {4, 2, 6, 10, 0, 3, 0, 0}, + {5, 2, 6, 10, 0, 3, 0, 0}, + {6, 2, 6, 10, 0, 3, 0, 0}, + {10, 0, 8, 10, 0, 3, 0, 0}, }; -#pragma pop /* 80B25194-80B252A4 00054C 0110+00 0/1 0/0 0/0 .data l_faceMotionSequenceData */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_faceMotionSequenceData[272] = { - 0x00, 0x01, 0xFF, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x08, 0xFF, 0x01, 0x00, 0x0F, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x09, 0xFF, 0x01, 0x00, 0x0D, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x0A, 0xFF, 0x01, 0x00, 0x0C, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x0B, 0xFF, 0x01, 0x00, 0x0E, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x02, 0xFF, 0x01, 0x00, 0x03, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x05, 0xFF, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x06, 0x00, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x07, 0x00, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x04, 0x00, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x0D, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x0C, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x0E, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x0F, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x03, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x0A, 0xFF, 0x01, 0x00, 0x0E, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, +static daNpcT_MotionSeqMngr_c::sequenceStepData_c l_faceMotionSequenceData[68] = { + {1, -1, 1}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {8, -1, 1}, {15, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, + {9, -1, 1}, {13, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {10, -1, 1}, {12, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, + {11, -1, 1}, {14, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {2, -1, 1}, {3, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, + {5, -1, 1}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {6, 0, 1}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, + {7, 0, 1}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {4, 0, 1}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, + {13, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {12, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, + {14, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {15, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, + {3, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {10, -1, 1}, {14, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, + {0, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, }; -#pragma pop /* 80B252A4-80B25434 00065C 0190+00 0/1 0/0 0/0 .data l_motionSequenceData */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_motionSequenceData[400] = { - 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x01, 0xFF, 0x01, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x0A, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x0B, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x0C, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x0D, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x0E, 0xFF, 0x01, 0x00, 0x0F, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x10, 0xFF, 0x01, 0x00, 0x11, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x12, 0xFF, 0x01, 0x00, 0x13, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x0F, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x11, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x13, 0xF7, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x03, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x04, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x05, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x02, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x07, 0xFF, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x08, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x09, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x06, 0x00, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x14, 0x04, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x15, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x16, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x17, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x18, 0x02, 0x01, 0x00, 0x11, 0xFF, 0x01, 0x00, 0x12, 0xFF, 0x01, 0x00, 0x13, 0x00, 0x00, +static daNpcT_MotionSeqMngr_c::sequenceStepData_c l_motionSequenceData[100] = { + {0, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {1, -1, 1}, {0, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, + {10, -1, 1}, {0, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {11, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, + {12, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {13, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, + {14, -1, 1}, {15, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {16, -1, 1}, {17, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, + {18, -1, 1}, {19, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {15, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, + {17, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {19, -9, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, + {3, -1, 1}, {0, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {4, -1, 1}, {0, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, + {5, -1, 1}, {0, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {2, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, + {7, -1, 1}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {8, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, + {9, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {6, 0, 1}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, + {20, 4, 1}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {21, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, + {22, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {23, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, + {24, 2, 1}, {17, -1, 1}, {18, -1, 1}, {19, 0, 0}, +}; + +enum NPC_TOBY_CUTS { + CUT_NONE = 0, + CUT_TOBY_HOUSE_FIRE = 1, + CUT_TALKTO_ONESELF = 2, + CUT_REPAIR_SCANNON = 3, + CUT_SCANNON = 4, + CUT_CONVERSATION_ABOUT_SCANNON = 5, + CUT_CONVERSATION_ABOUT_ZRA = 6, }; -#pragma pop /* 80B25434-80B25450 -00001 001C+00 1/1 0/0 0/0 .data mCutNameList__12daNpc_Toby_c */ char* daNpc_Toby_c::mCutNameList[7] = { @@ -571,244 +269,2023 @@ char* daNpc_Toby_c::mCutNameList[7] = { "CONVERSATION_ABOUT_ZRA", }; -/* 80B25450-80B2545C -00001 000C+00 0/1 0/0 0/0 .data @3927 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3927[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cutTobyHouseFire__12daNpc_Toby_cFi, -}; -#pragma pop - -/* 80B2545C-80B25468 -00001 000C+00 0/1 0/0 0/0 .data @3928 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3928[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cutTalkToOneself__12daNpc_Toby_cFi, -}; -#pragma pop - -/* 80B25468-80B25474 -00001 000C+00 0/1 0/0 0/0 .data @3929 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3929[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cutRepairSCannon__12daNpc_Toby_cFi, -}; -#pragma pop - -/* 80B25474-80B25480 -00001 000C+00 0/1 0/0 0/0 .data @3930 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3930[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cutSCannon__12daNpc_Toby_cFi, -}; -#pragma pop - -/* 80B25480-80B2548C -00001 000C+00 0/1 0/0 0/0 .data @3931 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3931[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cutConversationAboutSCannon__12daNpc_Toby_cFi, -}; -#pragma pop - -/* 80B2548C-80B25498 -00001 000C+00 0/1 0/0 0/0 .data @3932 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3932[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cutConversationAboutZra__12daNpc_Toby_cFi, -}; -#pragma pop - /* 80B25498-80B254EC 000850 0054+00 1/2 0/0 0/0 .data mCutList__12daNpc_Toby_c */ -SECTION_DATA u8 daNpc_Toby_c::mCutList[84] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +daNpc_Toby_c::cutFunc daNpc_Toby_c::mCutList[7] = { + NULL, + &daNpc_Toby_c::cutTobyHouseFire, + &daNpc_Toby_c::cutTalkToOneself, + &daNpc_Toby_c::cutRepairSCannon, + &daNpc_Toby_c::cutSCannon, + &daNpc_Toby_c::cutConversationAboutSCannon, + &daNpc_Toby_c::cutConversationAboutZra, }; -/* 80B254EC-80B254F8 -00001 000C+00 1/1 0/0 0/0 .data @4706 */ -SECTION_DATA static void* lit_4706[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)play__12daNpc_Toby_cFPv, -}; +NPC_TOBY_HIO_CLASS l_HIO; -/* 80B254F8-80B25504 -00001 000C+00 1/1 0/0 0/0 .data @4740 */ -SECTION_DATA static void* lit_4740[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talk__12daNpc_Toby_cFPv, -}; +/* 80B1E64C-80B1E798 0000EC 014C+00 1/0 0/0 0/0 .text __dt__12daNpc_Toby_cFv */ +daNpc_Toby_c::~daNpc_Toby_c() { + OS_REPORT("|%06d:%x|daNpc_Toby_c -> デストラクト\n", g_Counter.mCounter0, this); + if (mpMorf[0] != NULL) { + mpMorf[0]->stopZelAnime(); + } -/* 80B25504-80B25510 -00001 000C+00 1/1 0/0 0/0 .data @4828 */ -SECTION_DATA static void* lit_4828[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talk__12daNpc_Toby_cFPv, -}; +#if DEBUG + if (mpHIO != NULL) { + mpHIO->removeHIO(); + } +#endif -/* 80B25510-80B2551C -00001 000C+00 1/1 0/0 0/0 .data @4833 */ -SECTION_DATA static void* lit_4833[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talk__12daNpc_Toby_cFPv, -}; + deleteRes(l_loadResPtrnList[mType], (const char**)l_resNameList); +} -/* 80B2551C-80B25528 -00001 000C+00 1/1 0/0 0/0 .data @5075 */ -SECTION_DATA static void* lit_5075[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)play__12daNpc_Toby_cFPv, -}; +/* 80B1E798-80B1EA60 000238 02C8+00 1/1 0/0 0/0 .text create__12daNpc_Toby_cFv */ +int daNpc_Toby_c::create() { + static int const heapSize[7] = { + 0x3BC0, 0x3B10, 0x3B10, 0x43C0, + 0x0, 0x3BD0, 0x0, + }; + fopAcM_SetupActor2(this, daNpc_Toby_c, l_faceMotionAnmData, l_motionAnmData, + l_faceMotionSequenceData, 4, l_motionSequenceData, 4, + l_evtList, l_resNameList + ); -/* 80B25528-80B25534 -00001 000C+00 0/1 0/0 0/0 .data @5198 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5198[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)play__12daNpc_Toby_cFPv, -}; -#pragma pop + mType = getType(); + mFlowNodeNo = getFlowNodeNo(); + mTwilight = dKy_darkworld_check(); + int rv = loadRes(l_loadResPtrnList[mType], (const char**)l_resNameList); + if (rv == cPhs_COMPLEATE_e) { + OS_REPORT("\t(%s:%d) flowNo:%d, PathID:%02x, BitSW:%02x<%08x> ", + fopAcM_getProcNameString(this), mType, mFlowNodeNo, getPathID(), + getBitSW(), fopAcM_GetParam(this)); + if (isDelete()) { + OS_REPORT("===>isDelete:TRUE\n"); + return cPhs_ERROR_e; + } -/* 80B25534-80B25540 -00001 000C+00 0/1 0/0 0/0 .data @5204 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5204[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)walk__12daNpc_Toby_cFPv, -}; -#pragma pop + OS_REPORT("\n"); + if (!fopAcM_entrySolidHeap(this, createHeapCallBack, heapSize[mType])) { + return cPhs_ERROR_e; + } -/* 80B25540-80B2554C -00001 000C+00 0/1 0/0 0/0 .data @5206 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5206[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__12daNpc_Toby_cFPv, -}; -#pragma pop + J3DModelData* modelData = mpMorf[0]->getModel()->getModelData(); + fopAcM_SetMtx(this, mpMorf[0]->getModel()->getBaseTRMtx()); + fopAcM_setCullSizeBox(this, -200.0f, -100.0f, -200.0f, 200.0f, 300.0f, 200.0f); + mSound.init(¤t.pos, &eyePos, 3, 1); + field_0x9c0.init(&mAcch, 0.0f, 0.0f); +#if DEBUG + mpHIO = &l_HIO; + // Toby: + mpHIO->entryHIO("トビ-"); +#endif + reset(); + 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)); + mCcStts.Init(mpHIO->m.common.weight, 0, this); + mCyl1.Set(mCcDCyl); + mCyl1.SetStts(&mCcStts); + mCyl1.SetTgHitCallback(tgHitCallBack); + mAcch.CrrPos(dComIfG_Bgsp()); + mGndChk = mAcch.m_gnd; + mGroundH = mAcch.GetGroundH(); + if (mGroundH != -G_CM3D_F_INF) { + setEnvTevColor(); + setRoomNo(); + } -/* 80B2554C-80B25558 -00001 000C+00 0/1 0/0 0/0 .data @5208 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5208[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__12daNpc_Toby_cFPv, -}; -#pragma pop + mCreating = 1; + Execute(); + mCreating = 0; + } -/* 80B25558-80B25590 -00001 0038+00 1/1 0/0 0/0 .data @5478 */ -SECTION_DATA static void* lit_5478[14] = { - (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x258), - (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x294), - (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x2AC), - (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x2F4), - (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x2F4), - (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x384), - (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x3EC), - (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x3EC), - (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x2F4), - (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x49C), - (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x4D0), - (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x384), - (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x384), - (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x4F0), -}; + return rv; +} -/* 80B25590-80B255C8 -00001 0038+00 1/1 0/0 0/0 .data @5477 */ -SECTION_DATA static void* lit_5477[14] = { - (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0xEC), - (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x110), - (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x170), - (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x18C), - (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x228), - (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x194), - (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x19C), - (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x1B4), - (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x228), - (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x228), - (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x228), - (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x1C0), - (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x194), - (void*)(((char*)cutTalkToOneself__12daNpc_Toby_cFi) + 0x220), -}; +/* 80B1EA60-80B1ED6C 000500 030C+00 1/1 0/0 0/0 .text CreateHeap__12daNpc_Toby_cFv */ +int daNpc_Toby_c::CreateHeap() { + static int const bmdTypeList[1] = {2}; -/* 80B255C8-80B2561C -00001 0054+00 1/1 0/0 0/0 .data @6040 */ -SECTION_DATA static void* lit_6040[21] = { - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x498), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x504), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x5E0), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x660), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x6CC), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x8F4), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x8F4), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x944), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x7B8), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0xA24), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x7B8), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0xA24), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0xA24), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0xA24), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0xA24), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0xA24), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0xA24), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0xA24), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0xA24), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0xA24), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0xA10), -}; + J3DModelData* modelData = NULL; + J3DModel* model = NULL; + int bmdIdx = mTwilight == true ? TRUE : FALSE; + int res_name_idx = l_bmdData[bmdIdx][1]; + int my_bmd = l_bmdData[bmdIdx][0]; + modelData = static_cast(dComIfG_getObjectRes(l_resNameList[res_name_idx], my_bmd)); + if (modelData == NULL) { + return 0; + } -/* 80B2561C-80B25670 -00001 0054+00 1/1 0/0 0/0 .data @6039 */ -SECTION_DATA static void* lit_6039[21] = { - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x118), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x13C), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x144), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x468), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x158), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x468), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x468), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x30C), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x328), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x3D0), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x458), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x468), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x468), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x468), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x468), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x468), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x468), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x468), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x468), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x468), - (void*)(((char*)cutConversationAboutSCannon__12daNpc_Toby_cFi) + 0x464), -}; + u32 sp_0x24 = 0x11020284; + mpMorf[0] = new mDoExt_McaMorfSO(modelData, NULL, NULL, NULL, -1, 1.0f, 0, -1, &mSound, 0x80000, sp_0x24); + if (mpMorf[0] == NULL || mpMorf[0]->getModel() == NULL) { + return 0; + } + + model = mpMorf[0]->getModel(); + for (u16 i = 0; i < modelData->getJointNum(); i++) { + modelData->getJointNodePointer(i)->setCallBack(ctrlJointCallBack); + } + + model->setUserArea((uintptr_t)this); + mpMatAnm[0] = new daNpcT_MatAnm_c(); + if (mpMatAnm[0] == NULL) { + return 0; + } + + if (mType == 3 || mType == 4) { + for (int idx = 0; idx < 1; ++idx) { + if (l_bmdData[bmdTypeList[idx]][0] >= 0) { + modelData = (J3DModelData*)dComIfG_getObjectRes(l_resNameList[l_bmdData[bmdTypeList[idx]][1]], + l_bmdData[bmdTypeList[idx]][0]); + } else { + modelData = NULL; + } + + if (modelData != NULL) { + mpTobyModels[idx] = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); + } else { + mpTobyModels[idx] = NULL; + } + } + } + + if (setFaceMotionAnm(1, false) && setMotionAnm(0, 0.0f, FALSE)) { + return 1; + } + + return 0; +} + +/* 80B1EF28-80B1EF5C 0009C8 0034+00 1/1 0/0 0/0 .text Delete__12daNpc_Toby_cFv */ +int daNpc_Toby_c::Delete() { + OS_REPORT("|%06d:%x|daNpc_Toby_c -> Delete\n", g_Counter.mCounter0, this); + fopAcM_RegisterDeleteID(this, "NPC_TOBY"); + this->~daNpc_Toby_c(); + return 1; +} + +/* 80B1EF5C-80B1EF7C 0009FC 0020+00 2/2 0/0 0/0 .text Execute__12daNpc_Toby_cFv */ +int daNpc_Toby_c::Execute() { + return daNpcT_c::execute(); +} + +/* 80B1EF7C-80B1F010 000A1C 0094+00 1/1 0/0 0/0 .text Draw__12daNpc_Toby_cFv */ +int daNpc_Toby_c::Draw() { + if (mpMatAnm[0] != NULL) { + J3DModelData* modelData = mpMorf[0]->getModel()->getModelData(); + modelData->getMaterialNodePointer(getEyeballMaterialNo())->setMaterialAnm(mpMatAnm[0]); + } + + return daNpcT_c::draw( +#if DEBUG + chkAction(&daNpc_Toby_c::test), +#else + 0, +#endif + 0, mRealShadowSize, NULL, 100.0f, 0, 0, 0); +} + +/* 80B1F010-80B1F030 000AB0 0020+00 1/1 0/0 0/0 .text + * createHeapCallBack__12daNpc_Toby_cFP10fopAc_ac_c */ +int daNpc_Toby_c::createHeapCallBack(fopAc_ac_c* i_this) { + daNpc_Toby_c* a_this = static_cast(i_this); + return a_this->CreateHeap(); +} + +/* 80B1F030-80B1F088 000AD0 0058+00 1/1 0/0 0/0 .text + * ctrlJointCallBack__12daNpc_Toby_cFP8J3DJointi */ +int daNpc_Toby_c::ctrlJointCallBack(J3DJoint* i_joint, int i_int) { + if (i_int == 0) { + J3DModel* model = j3dSys.getModel(); + daNpc_Toby_c* i_this = reinterpret_cast(model->getUserArea()); + if (i_this != NULL) { + i_this->ctrlJoint(i_joint, model); + } + } + + return 1; +} + +/* 80B1F088-80B1F124 000B28 009C+00 1/1 0/0 0/0 .text srchToby__12daNpc_Toby_cFPvPv */ +void* daNpc_Toby_c::srchToby(void* i_actor, void* i_data) { + if (mFindCount < 50) { + fopAc_ac_c* actor_p = (fopAc_ac_c*)i_actor; + if (actor_p != NULL && actor_p != i_data) { + if (fopAcM_IsExecuting(fopAcM_GetID(actor_p)) && fopAcM_GetName(actor_p) == PROC_NPC_TOBY) { + mFindActorPtrs[mFindCount] = actor_p; + mFindCount++; + } + } + } + + return NULL; +} + +/* 80B1F124-80B1F200 000BC4 00DC+00 1/1 0/0 0/0 .text getOtherTobyP__12daNpc_Toby_cFi */ +fopAc_ac_c* daNpc_Toby_c::getOtherTobyP(int i_int) { + fopAc_ac_c* actor = NULL; + f32 fVar1 = G_CM3D_F_INF; + mFindCount = 0; + + fopAcM_Search(srchToby, this); + + for (int i = 0; i < mFindCount; i++) { + if (i_int == (((daNpc_Toby_c*)mFindActorPtrs[i])->getType()) + && fopAcM_searchActorDistance(this, mFindActorPtrs[i]) < fVar1) { + fVar1 = fopAcM_searchActorDistance(this, mFindActorPtrs[i]); + actor = mFindActorPtrs[i]; + } + } + + return actor; +} + +/* 80B1F200-80B1F274 000CA0 0074+00 2/2 0/0 0/0 .text getType__12daNpc_Toby_cFv */ +u8 daNpc_Toby_c::getType() { + u8 prm = fopAcM_GetParam(this); + switch (prm & 0xFF) { + case 0: + return 0; + case 1: + return 1; + case 2: + return 2; + case 3: + return 3; + case 4: + return 4; + case 5: + return 5; + default: + return 6; + } +} + +/* 80B1F274-80B1F384 000D14 0110+00 1/1 0/0 0/0 .text isDelete__12daNpc_Toby_cFv */ +int daNpc_Toby_c::isDelete() { + // 0x054 - M_051 - Fought the Shadow Bulbin riding the Shadow Kargorok (?) + // 0x136 - F_0310 - Handed Auru's note to Fyer + // 0x190 - F_0400 - Warped sky cannon to Lake Hylia + // 0x1E4 - F_0484 - Completed sky canon repairs! + // 0x1E5 - F_0485 - Heard Fyer talk about repairs 1 time + switch (mType) { + case 0: + return FALSE; + case 1: + return daNpcT_chkEvtBit(0x54); + case 2: + return !daNpcT_chkEvtBit(0x54); + case 3: + case 4: + return !daNpcT_chkEvtBit(0x136) || !daNpcT_chkEvtBit(0x190) + || daNpcT_chkEvtBit(0x1E4); + case 5: + return !daNpcT_chkEvtBit(0x136) || !daNpcT_chkEvtBit(0x190) + || daNpcT_chkEvtBit(0x1E4) || daNpcT_chkEvtBit(0x1E5); + default: + return FALSE; + } +} + +/* 80B1F384-80B1F5AC 000E24 0228+00 1/1 0/0 0/0 .text reset__12daNpc_Toby_cFv */ +void daNpc_Toby_c::reset() { + csXyz sp_0x10; + int num_bytes = (u8*)&field_0x1004 - (u8*)&mActFunc_0; + if (mpMatAnm[0] != NULL) { + mpMatAnm[0]->initialize(); + } + + initialize(); + for (int i = 0; i < 4; i++) { + mActorMngr[i].initialize(); + } + + memset(&mActFunc_0, 0, num_bytes); + if (getPathID() != 0xFF) { + mPath.initialize(); + mPath.setPathInfo(getPathID(), fopAcM_GetRoomNo(this), 0); + } + + sp_0x10.setall(0); + sp_0x10.y = home.angle.y; + switch (mType) { + case 0: + eventInfo.setIdx(0); + break; + case 1: + eventInfo.setIdx(0); + break; + case 2: + eventInfo.setIdx(0); + break; + case 3: + mHide = 1; + eventInfo.setIdx(1); + break; + case 4: + eventInfo.setIdx(2); + break; + case 5: + mHide = 1; + eventInfo.setIdx(3); + break; + } + + setAngle(sp_0x10); +} + +/* 80B1F5AC-80B1F638 00104C 008C+00 1/0 0/0 0/0 .text afterJntAnm__12daNpc_Toby_cFi */ +void daNpc_Toby_c::afterJntAnm(int arg0) { + if (arg0 == 1) { + mDoMtx_stack_c::YrotM(mStagger.getAngleZ(1)); + mDoMtx_stack_c::ZrotM(-mStagger.getAngleX(1)); + } else if (arg0 == 4) { + mDoMtx_stack_c::YrotM(-mStagger.getAngleZ(0)); + mDoMtx_stack_c::ZrotM(mStagger.getAngleX(0)); + } +} + +/* 80B1F638-80B1F784 0010D8 014C+00 1/0 0/0 0/0 .text setParam__12daNpc_Toby_cFv */ +void daNpc_Toby_c::setParam() { + selectAction(); + srchActors(); + u32 uVar7 = (fopAc_AttnFlag_SPEAK_e | fopAc_AttnFlag_TALK_e); + s16 talk_dist = mpHIO->m.common.talk_distance; + s16 talk_ang = mpHIO->m.common.talk_angle; + s16 att_dist = mpHIO->m.common.attention_distance; + s16 att_ang = mpHIO->m.common.attention_angle; + + if (mType == 0) { + talk_dist = 2; + talk_ang = 3; + att_dist = 3; + att_ang = 3; + } + + attention_info.distances[fopAc_attn_LOCK_e] = daNpcT_getDistTableIdx(att_dist, att_ang); + attention_info.distances[fopAc_attn_TALK_e] = attention_info.distances[fopAc_attn_LOCK_e]; + attention_info.distances[fopAc_attn_SPEAK_e] = daNpcT_getDistTableIdx(talk_dist, talk_ang); + + attention_info.flags = uVar7; + scale.set(mpHIO->m.common.scale, mpHIO->m.common.scale, + mpHIO->m.common.scale); + mCcStts.SetWeight(mpHIO->m.common.weight); + mCylH = mpHIO->m.common.height; + mWallR = mpHIO->m.common.width; + mAttnFovY = mpHIO->m.common.fov; + mAcchCir.SetWallR(mWallR); + mAcchCir.SetWallH(mpHIO->m.common.knee_length); + mRealShadowSize = mpHIO->m.common.real_shadow_size; + if (&daNpc_Toby_c::play == mActFunc_0) { + mRealShadowSize = 600.0f; + } + + mExpressionMorfFrame = mpHIO->m.common.expression_morf_frame; + mMorfFrames = mpHIO->m.common.morf_frame; + gravity = mpHIO->m.common.gravity; +} + +/* 80B1F784-80B1F950 001224 01CC+00 1/0 0/0 0/0 .text checkChangeEvt__12daNpc_Toby_cFv */ +int daNpc_Toby_c::checkChangeEvt() { + if (!chkAction(&daNpc_Toby_c::talk)) { + mPreItemNo = 0; + if (dComIfGp_event_chkTalkXY()) { + if (dComIfGp_evmng_ChkPresentEnd()) { + mPreItemNo = dComIfGp_event_getPreItemNo(); + if (mPreItemNo == fpcNm_ITEM_RAFRELS_MEMO) { + return FALSE; + } + + mEvtNo = CUT_TOBY_HOUSE_FIRE; + evtChange(); + } + + return TRUE; + } + + switch (mType) { + case 0: + if (daNpcT_chkEvtBit(0x136)) { + // Gave note to Fyer. + if (daNpcT_chkEvtBit(0x190) && !daNpcT_chkEvtBit(0x1E5) && !daNpcT_chkEvtBit(0x1E4)) { + // Warped cannon but did not talk to Fyer. + mEvtNo = CUT_CONVERSATION_ABOUT_SCANNON; + evtChange(); + return TRUE; + } + + break; + } + +#if VERSION == VERSION_SHIELD_DEBUG + if (chkAttnZra() && !dComIfGs_isSaveSwitch(0x51)) +#else + // 0x31E - F_0798 - Heard about Zora from Fyer + if (chkAttnZra() && !daNpcT_chkEvtBit(0x31E) && !dComIfGs_isSaveSwitch(0x51)) +#endif + { + mEvtNo = CUT_CONVERSATION_ABOUT_ZRA; + evtChange(); + return TRUE; + } + + break; + + case 1: + // 0x0EF - T_0239 - Spoke with Fyer (start dark carge?) + if (!daNpcT_chkEvtBit(0xEF)) { + mEvtNo = CUT_TALKTO_ONESELF; + evtChange(); + return TRUE; + } + + break; + + case 2: + case 3: + case 4: + case 5: + break; + } + } + + return FALSE; +} + +/* 80B1F950-80B1FA08 0013F0 00B8+00 1/0 0/0 0/0 .text setAfterTalkMotion__12daNpc_Toby_cFv */ +void daNpc_Toby_c::setAfterTalkMotion() { + int iVar2 = 16; + switch(mFaceMotionSeqMngr.getNo()) { + case 1: + iVar2 = 13; + break; + case 2: + iVar2 = 10; + break; + case 3: + iVar2 = 11; + break; + case 4: + iVar2 = 12; + break; + case 5: + iVar2 = 14; + break; + } + + mFaceMotionSeqMngr.setNo(iVar2, -1.0f, 0, 0); +} + +/* 80B1FA08-80B1FB34 0014A8 012C+00 1/1 0/0 0/0 .text srchActors__12daNpc_Toby_cFv */ +void daNpc_Toby_c::srchActors() { + switch (mType) { + case 0: + if (mActorMngr[0].getActorP() == NULL) { + mActorMngr[0].entry(getNearestActorP(PROC_Obj_TobyHouse)); + } + + if (mActorMngr[1].getActorP() == NULL) { + // Fyer's music box that he plays when Link gets shot from the cannon. + mActorMngr[1].entry(getNearestActorP(PROC_OBJ_AUTOMATA)); + } + + if (mActorMngr[2].getActorP() == NULL) { + mActorMngr[2].entry(getNearestActorP(PROC_Obj_SCannon)); + } + + break; + + case 1: + if (mActorMngr[3].getActorP() == NULL) { + // Shadow Bulbin (drained Lake Hylia Kargorok fight): + mActorMngr[3].entry(getNearestActorP(PROC_E_RDY)); + } + + break; + + case 2: + break; + + case 3: + if (mActorMngr[2].getActorP() == NULL) { + mActorMngr[2].entry(getNearestActorP(PROC_Obj_SCannon)); + } + + break; + + case 4: + case 5: + break; + } +} + +/* 80B1FB34-80B1FBD4 0015D4 00A0+00 1/0 0/0 0/0 .text evtTalk__12daNpc_Toby_cFv */ +int daNpc_Toby_c::evtTalk() { + if (chkAction(&daNpc_Toby_c::talk)) { + (this->*mActFunc_1)(NULL); + } else { + setAction(&daNpc_Toby_c::talk); + } + + return 1; +} + +/* 80B1FBD4-80B1FC9C 001674 00C8+00 1/0 0/0 0/0 .text evtCutProc__12daNpc_Toby_cFv */ +int daNpc_Toby_c::evtCutProc() { + int staffId = dComIfGp_getEventManager().getMyStaffId("Toby", this, -1); + if (staffId != -1) { + mStaffId = staffId; + int actIdx = dComIfGp_getEventManager().getMyActIdx(mStaffId, mCutNameList, 7, 0, 0); + if ((this->*(mCutList[actIdx]))(mStaffId) != 0) { + dComIfGp_getEventManager().cutEnd(mStaffId); + } + + return TRUE; + } + + return FALSE; +} + +/* 80B1FC9C-80B1FE68 00173C 01CC+00 1/0 0/0 0/0 .text action__12daNpc_Toby_cFv */ +void daNpc_Toby_c::action() { + fopAc_ac_c* actor_p = NULL; + if (!mTwilight) { + actor_p = hitChk(&mCyl1, -1); + } + + if (actor_p != NULL && mCyl1.GetTgHitObj()->ChkAtType(AT_TYPE_THROW_OBJ)) { + mStagger.setParam(this, actor_p, mCurAngle.y); + setDamage(0, 16, 0); + mDamageTimerStart = 0; + mJntAnm.lookNone(1); + } + + if (mStagger.checkRebirth()) { + mStagger.initialize(); + mMode = 1; + } + + if (mActFunc_0 != NULL) { + if (mActFunc_1 == mActFunc_0) { + (this->*mActFunc_1)(NULL); + } else { + setAction(mActFunc_0); + } + } + + if (dComIfGp_event_runCheck() == FALSE && field_0x1001) { + fopAcM_delete(this); + } +} + +/* 80B1FE68-80B1FF2C 001908 00C4+00 1/0 0/0 0/0 .text beforeMove__12daNpc_Toby_cFv */ +void daNpc_Toby_c::beforeMove() { + fopAcM_OffStatus(this, fopAcM_STATUS_UNK_0x8000000); + if (checkHide()) { + fopAcM_OnStatus(this, fopAcM_STATUS_UNK_0x8000000); + } + + if (checkHide() || mNoDraw) { + attention_info.flags = 0; + } +} + +/* 80B1FF2C-80B20278 0019CC 034C+00 1/0 0/0 0/0 .text setAttnPos__12daNpc_Toby_cFv */ +void daNpc_Toby_c::setAttnPos() { + cXyz cStack_3c(0.0f, 30.0f, 0.0f); + mStagger.calc(0); + f32 dVar8 = cM_s2rad(mCurAngle.y - field_0xd7e.y); + mJntAnm.setParam(this, mpMorf[0]->getModel(), &cStack_3c, getBackboneJointNo(), getNeckJointNo(), + getHeadJointNo(), mpHIO->m.common.body_angleX_min, mpHIO->m.common.body_angleX_max, + mpHIO->m.common.body_angleY_min, mpHIO->m.common.body_angleY_max, + mpHIO->m.common.head_angleX_min, mpHIO->m.common.head_angleX_max, + mpHIO->m.common.head_angleY_min, mpHIO->m.common.head_angleY_max, + mpHIO->m.common.neck_rotation_ratio, dVar8, NULL); + mJntAnm.calcJntRad(0.2f, 1.0f, dVar8); + setMtx(); + mDoMtx_stack_c::copy(mpMorf[0]->getModel()->getAnmMtx(getHeadJointNo())); + mDoMtx_stack_c::multVec(&cStack_3c, &eyePos); + mJntAnm.setEyeAngleX(eyePos, 1.0f, 0); + mJntAnm.setEyeAngleY(eyePos, mCurAngle.y, 1, 1.0f, 0); + cStack_3c.set(0.0f, 0.0f, 20.0f); + cStack_3c.y = mpHIO->m.common.attention_offset; + if (chkAttnZra()) { + cStack_3c.set(0.0f, 140.0f, 20.0f); + } else if (mType == 1 && mMotionSeqMngr.getNo() == 11) { + cStack_3c.set(0.0f, 120.0f, 40.0f); + } + + mDoMtx_stack_c::YrotS(mCurAngle.y); + mDoMtx_stack_c::multVec(&cStack_3c, &cStack_3c); + attention_info.position = cStack_3c + current.pos; + static cXyz prtclScl(1.0f, 1.0f, 1.0f); + setFootPos(); + if (3.0f < speedF) { + setFootPrtcl(&prtclScl, 10.0f, 0); + } +} + +/* 80B20278-80B2042C 001D18 01B4+00 1/0 0/0 0/0 .text setCollision__12daNpc_Toby_cFv */ +void daNpc_Toby_c::setCollision() { + cXyz cyl_center; + if (mHide == 0) { + int reg_r26 = 0x79; + u32 tgType = 0xD8FBFDFF; + u32 tgSPrm = 0x1f; + if (mTwilight) { + tgType = 0; + tgSPrm = 0; + } else if (mStagger.checkStagger()) { + tgType = 0; + tgSPrm = 0; + } + + mCyl1.SetCoSPrm(reg_r26); + mCyl1.SetTgType(tgType); + mCyl1.SetTgSPrm(tgSPrm); + mCyl1.OnTgNoHitMark(); + cyl_center.set(0.0f, 0.0f, 10.0f); + f32 cylHeight = mCylH; + f32 cylRadius = 20.0f + mWallR; + if (chkAttnZra()) { + cyl_center.set(0.0f, 0.0f, 30.0f); + cylHeight = 110.0f; + cylRadius = 64.0f; + } + + mDoMtx_stack_c::YrotS(mCurAngle.y); + mDoMtx_stack_c::multVec(&cyl_center, &cyl_center); + cyl_center += current.pos; + mCyl1.SetH(cylHeight); + mCyl1.SetR(cylRadius); + mCyl1.SetC(cyl_center); + if (&daNpc_Toby_c::play != mActFunc_0) { + dComIfG_Ccsp()->Set(&mCyl1); + } + } + + mCyl1.ClrCoHit(); + mCyl1.ClrTgHit(); +} + +/* 80B2042C-80B20434 001ECC 0008+00 1/0 0/0 0/0 .text drawDbgInfo__12daNpc_Toby_cFv */ +int daNpc_Toby_c::drawDbgInfo() { + return FALSE; +} + +#if DEBUG +// I have 0 clue what these are about, but I saw them in npc_moir as well. +static s16 dummy_lit_122993(int sel) { + const s16 arr[2] = {0x00C8, 0x00FF}; + return arr[sel]; +} + +static s16 dummy_lit_122996(int sel) { + const s16 arr[2] = {0xC800, 0x00FF}; + return arr[sel]; +} + +static s16 dummy_lit_122999(int sel) { + const s16 arr[2] = {0x8080, 0x80A0}; + return arr[sel]; +} + +static s16 dummy_lit_123002(int sel) { + const s16 arr[2] = {0x8080, 0x80A0}; + return arr[sel]; +} + +static s16 dummy_lit_123016(int sel) { + const s16 arr[2] = {0x4190, 0x0000}; + return arr[sel]; +} + +static s16 dummy_lit_123017(int sel) { + const s16 arr[2] = {0x4110, 0x0000}; + return arr[sel]; +} +#endif + +/* 80B20434-80B2050C 001ED4 00D8+00 1/0 0/0 0/0 .text drawOtherMdl__12daNpc_Toby_cFv */ +void daNpc_Toby_c::drawOtherMdl() { + J3DModel* model = mpMorf[0]->getModel(); + for (int i = 0; i < 1; i++) { + if (mpTobyModels[i] != NULL && i == 0 && field_0x1002) { + g_env_light.setLightTevColorType_MAJI(mpTobyModels[i], &tevStr); + static int const jointNo[1] = {18}; + mDoMtx_stack_c::copy(model->getAnmMtx(jointNo[i])); + Mtx jointAnmMtx; + cMtx_copy(mDoMtx_stack_c::get(), jointAnmMtx); + mpTobyModels[i]->setBaseTRMtx(jointAnmMtx); + mDoExt_modelUpdateDL(mpTobyModels[i]); + dComIfGd_addRealShadow(mShadowKey, mpTobyModels[i]); + } + } +} + +/* 80B2050C-80B20568 001FAC 005C+00 1/0 0/0 0/0 .text afterSetFaceMotionAnm__12daNpc_Toby_cFiifi + */ +bool daNpc_Toby_c::afterSetFaceMotionAnm(int arg0, int, f32, int) { + // Amongst all the daNpcTs, seems like this is the only one that creates a + // non-trivial definition for this func? + switch (arg0) { + case 4: + case 5: + mBckAnm.setPlaySpeed(0.0f); + mBtpAnm.setPlaySpeed(0.0f); + break; + case 6: + break; + case 7: + mAnmFlags &= ~(ANM_PAUSE_BCK | ANM_PAUSE_BTP); + mBckAnm.setPlaySpeed(mPlaySpeed); + mBtpAnm.setPlaySpeed(mPlaySpeed); + break; + } + + return true; +} + +/* 80B20568-80B205F4 002008 008C+00 1/0 0/0 0/0 .text afterSetMotionAnm__12daNpc_Toby_cFiifi */ +bool daNpc_Toby_c::afterSetMotionAnm(int arg0, int, f32, int) { + switch (arg0) { + case 6: + mpMorf[0]->setPlaySpeed(0.0f); + mBtkAnm.setPlaySpeed(0.0f); + break; + case 7: + mpMorf[0]->setPlaySpeed(0.0f); + break; + case 8: + mpMorf[0]->setPlaySpeed(mPlaySpeed); + break; + case 9: + mAnmFlags &= 0xFFFFFFFE; + mpMorf[0]->setPlaySpeed(mPlaySpeed); + break; + } + + field_0x0FFC = mMorfLoops; + return true; +} + +/* 80B205F4-80B20710 002094 011C+00 1/1 0/0 0/0 .text selectAction__12daNpc_Toby_cFv */ +int daNpc_Toby_c::selectAction() { + mActFunc_0 = NULL; +#if DEBUG + if (mpHIO->m.common.debug_mode_ON) { + mActFunc_0 = &daNpc_Toby_c::test; + return 1; + } +#endif + + switch (mType) { + case 0: + if (field_0x0FFF) { + mActFunc_0 = &daNpc_Toby_c::play; + } else if (field_0x0FFE == 0 && getBitSW() != 0xFF + && dComIfGs_isSwitch(getBitSW(), fopAcM_GetRoomNo(this))) { + mActFunc_0 = &daNpc_Toby_c::walk; + } else { + mActFunc_0 = &daNpc_Toby_c::wait; + } + + break; + + default: + mActFunc_0 = &daNpc_Toby_c::wait; + break; + } + + return 1; +} + +/* 80B20710-80B2073C 0021B0 002C+00 2/2 0/0 0/0 .text + * chkAction__12daNpc_Toby_cFM12daNpc_Toby_cFPCvPvPv_i */ +int daNpc_Toby_c::chkAction(actionFunc i_func) { + return mActFunc_1 == i_func; +} + +/* 80B2073C-80B207E4 0021DC 00A8+00 2/2 0/0 0/0 .text + * setAction__12daNpc_Toby_cFM12daNpc_Toby_cFPCvPvPv_i */ +int daNpc_Toby_c::setAction(actionFunc i_func) { + mMode = MODE_EXIT; + if (mActFunc_1 != NULL) { + (this->*(mActFunc_1))(NULL); + } + + mMode = MODE_ENTER; + mActFunc_1 = i_func; + if (mActFunc_1 != NULL) { + (this->*(mActFunc_1))(NULL); + } + + return 1; +} + +/* 80B207E4-80B20AB0 002284 02CC+00 1/0 0/0 0/0 .text cutTobyHouseFire__12daNpc_Toby_cFi + */ +int daNpc_Toby_c::cutTobyHouseFire(int arg0) { + fopAc_ac_c* atmt_p = mActorMngr[1].getActorP(); + int retval = 0; + int* param_p = NULL; + int prm_val = -1; + int timer_val = 0; + param_p = dComIfGp_evmng_getMyIntegerP(arg0, "prm"); + if (param_p != NULL) { + prm_val = *param_p; + } + + param_p = dComIfGp_evmng_getMyIntegerP(arg0, "timer"); + if (param_p != NULL) { + timer_val = *param_p; + } + + if (dComIfGp_getEventManager().getIsAddvance(arg0)) { + switch (prm_val) { + case 0: + break; + + case 1: + JUT_ASSERT(2331, 0 != atmt_p); + field_0x0FFF = 1; + setParam(); + setPos(atmt_p->current.pos); + setAngle(atmt_p->shape_angle.y); + speedF = 0.0f; + speed.setall(0.0f); + break; + + case 2: + setPos(home.pos); + setAngle(home.angle.y); + if (getBitSW() != 0xFF) { + dComIfGs_offSwitch(getBitSW(), fopAcM_GetRoomNo(this)); + } + + field_0x0FFE = 0; + field_0x0FFF = 0; + break; + + case 3: + mpMorf[0]->setPlaySpeed(mPlaySpeed); + mBtkAnm.setPlaySpeed(mPlaySpeed); + mBckAnm.setPlaySpeed(mPlaySpeed); + mBtpAnm.setPlaySpeed(mPlaySpeed); + break; + + case 4: + mEventTimer = timer_val; + break; + + case 99: + break; + } + } + + switch (prm_val) { + case 0: + case 1: + case 2: + action(); + retval = 1; + break; + + case 3: + if (mMotionSeqMngr.getNo() != 19) { + mpMorf[0]->setPlaySpeed(mPlaySpeed); + mBckAnm.setPlaySpeed(mPlaySpeed); + mBtpAnm.setPlaySpeed(mPlaySpeed); + ((daObj_AutoMata_c*)atmt_p)->setAnmPlaySpeed(mpMorf[0]->getPlaySpeed()); + retval = 1; + } + + action(); + break; + + case 4: + if (cLib_calcTimer(&mEventTimer) == 0) { + retval = 1; + } + + action(); + break; + + case 99: + action(); + break; + } + + mCurAngle.y = shape_angle.y; + return retval; +} + +/* 80B20AB0-80B20FC0 002550 0510+00 3/0 0/0 0/0 .text cutTalkToOneself__12daNpc_Toby_cFi */ +int daNpc_Toby_c::cutTalkToOneself(int arg0) { + int retval = 0; + int* param_p = NULL; + int prm_val = -1; + int msgNo_val = 0; + int timer_val = 0; + int sp_0x10 = 0; + param_p = dComIfGp_evmng_getMyIntegerP(arg0, "prm"); + if (param_p != NULL) { + prm_val = *param_p; + } + + param_p = dComIfGp_evmng_getMyIntegerP(arg0, "msgNo"); + if (param_p != NULL) { + msgNo_val = *param_p; + } + + param_p = dComIfGp_evmng_getMyIntegerP(arg0, "timer"); + if (param_p != NULL) { + timer_val = *param_p; + } + + if (dComIfGp_getEventManager().getIsAddvance(arg0)) { + switch (prm_val) { /* switch 1 */ + case 0: + daNpcT_offTmpBit(0xB); + daNpcT_offTmpBit(0xC); + initTalk(mFlowNodeNo, NULL); + break; + case 1: + mFaceMotionSeqMngr.setNo(16, -1.0f, 0, 0); + mMotionSeqMngr.setNo(0, -1.0f, 0, 0); + mEventTimer = timer_val; + break; + case 2: + dComIfGs_sense_type_change_Set(1); + initTalk(mFlowNodeNo, NULL); + break; + case 3: + mEventTimer = timer_val; + break; + case 5: + case 12: + mEventTimer = timer_val; + break; + case 6: + mEventTimer = timer_val; + initTalk(mFlowNodeNo, NULL); + break; + case 7: + field_0x0FF4 = 0; + break; + case 11: + mFaceMotionSeqMngr.setNo(0xA, -1.0f, 0, 0); + mMotionSeqMngr.setNo(6, -1.0f, 0, 0); + mEventTimer = timer_val; + break; + case 13: + dComIfGs_sense_type_change_Set(-1); + break; + } + } + + int sp18[2] = {-1, -1}; + switch (prm_val) { + case 0: + if (talkProc(NULL, 0, NULL, 0) && mFlow.checkEndFlow()) { + daNpcT_offEvtBit(0xEF); + retval = 1; + } + + break; + + case 1: + if (cLib_calcTimer(&mEventTimer) == 0) { + retval = 1; + } + + break; + + case 2: + sp18[0] = msgNo_val; + if (talkProc(sp18, 0, NULL, 0)) { + if (msgNo_val) { + retval = 1; + } else if (mFlow.checkEndFlow()) { + retval = 1; + } + } + + break; + + case 3: + case 4: + case 8: + sp18[0] = msgNo_val; + if (prm_val == 4 || prm_val == 8) { + sp_0x10 = 1; + } + + if (talkProc(sp18, sp_0x10, NULL, 0)) { + if (msgNo_val) { + retval = 1; + } else if (mFlow.checkEndFlow()) { + retval = 1; + } + } + + switch (dMsgObject_getMsgObjectClass()->getStatus()) { + case 15: + case 16: + if (dMsgObject_isMsgSendControl() && prm_val == 3) { + retval = 1; + } + } + + break; + + case 5: + case 11: + case 12: + if (mEventTimer == 0) { + if (prm_val == 5) { + mDoAud_seStart(Z2SE_EN_RD_V_LAKE_APPEAR, ¤t.pos, 0, 0); + } + + retval = 1; + } else { + cLib_calcTimer(&mEventTimer); + } + + break; + + case 6: + case 7: + if (talkProc(NULL, 0, NULL, 0) && mFlow.checkEndFlow()) { + retval = 1; + } + + switch (dMsgObject_getMsgObjectClass()->getStatus()) { + case 15: + case 16: + if (dMsgObject_isMsgSendControl()) { + if (prm_val == 6 && cLib_calcTimer(&mEventTimer) == 0) { + retval = 1; + } + + if (prm_val == 7 && dComIfGp_getEventManager().getIsAddvance(arg0)) { + dMsgObject_onMsgSend(); + } + } + } + + if (!daNpcT_chkEvtBit(0xEF)) { + daNpcT_onEvtBit(0xEF); + } + + break; + + case 9: + if (talkProc(NULL, 0, NULL, 0) && mFlow.checkEndFlow()) { + retval = 1; + } + + break; + + case 10: + if (talkProc(NULL, 0, NULL, 0) && mFlow.checkEndFlow()) { + retval = 1; + } + + retval = 1; + break; + + case 13: + retval = 1; + break; + } + + return retval; +} + +/* 80B20FC0-80B215B4 002A60 05F4+00 1/0 0/0 0/0 .text cutRepairSCannon__12daNpc_Toby_cFi + */ +int daNpc_Toby_c::cutRepairSCannon(int arg0) { + dScnKy_env_light_c* env_light = dKy_getEnvlight(); + fopAc_ac_c* scannon_p = mActorMngr[2].getActorP(); + cXyz work; + csXyz angle; + int retval = 0; + int* param_p = NULL; + int prm_val = -1; + int timer_val = 0; + param_p = dComIfGp_evmng_getMyIntegerP(arg0, "prm"); + if (param_p != NULL) { + prm_val = *param_p; + } + + param_p = dComIfGp_evmng_getMyIntegerP(arg0, "timer"); + if (param_p != NULL) { + timer_val = *param_p; + } + + if (dComIfGp_getEventManager().getIsAddvance(arg0)) { + switch (prm_val) { + case 0: + break; + + case 1: + mFaceMotionSeqMngr.setNo(16, 0.0f, 0, 0); + mMotionSeqMngr.setNo(0, 0.0f, 0, 0); + mJntAnm.lookNone(1); + setPos(home.pos); + setAngle(home.angle.y); + speedF = 0.0f; + speed.setall(0.0f); + mEventTimer = timer_val; + if (daNpcT_getPlayerInfoFromPlayerList(1, fopAcM_GetRoomNo(this), &work, &angle)) { + daPy_getPlayerActorClass()->setPlayerPosAndAngle(&work, angle.y, 0); + } + + JUT_ASSERT(2703, 0 != scannon_p); + ((daSCannon_c*)scannon_p)->setCannonRepair(); + if (mEventTimer) { + Z2GetAudioMgr()->bgmStreamPrepare(0x02000003); + Z2GetAudioMgr()->bgmStreamPlay(); + } + + break; + + case 2: + mEventTimer = timer_val; + break; + + case 10: + break; + + case 11: + field_0x1002 = 1; + break; + } + } + + int sp10[2] = {-1, -1}; + switch (prm_val) { /* switch 1; irregular */ + case 0: + action(); + retval = 1; + break; + + case 1: + if (mEventTimer && cLib_calcTimer(&mEventTimer) == 0) { + Z2GetAudioMgr()->bgmStreamStop(0x1E); + dStage_changeScene(8, 0.0f, 0, fopAcM_GetRoomNo(this), 0, dComIfG_play_c::getLayerNo(0)); + } + + break; + + case 2: + action(); + if (cLib_calcTimer(&mEventTimer) == 0) { + retval = 1; + } + + break; + + case 10: + retval = 1; + break; + + case 11: + if (mPath.getPathInfo() != NULL) { + if (cLib_calcTimer(&mEventTimer) == 0) { + if (!dComIfGp_getEventManager().getIsAddvance(arg0)) { + mPath.setNextIdx(); + } + + switch (mPath.getArg1()) { + case 0: + mHide = 0; + mMotionSeqMngr.setNo(0x15, 0.0f, 0, 0); + break; + case 1: + mHide = 0; + mMotionSeqMngr.setNo(0x16, 0.0f, 0, 0); + break; + case 2: + mHide = 0; + mMotionSeqMngr.setNo(0x17, 0.0f, 0, 0); + break; + default: + mHide = 1; + break; + } + + current.pos = mPath.getPntPos(mPath.getIdx()); + old.pos = current.pos; + setAngle(cM_deg2s(5.0f * f32(mPath.getArg0()))); + mEventTimer = mPath.getArg2(); + } + } else if (!mHide) { + mHide = 1; + } + + mAcch.SetGrndNone(); + mAcch.SetWallNone(); + gravity = 0.0f; + break; + } + + if (prm_val == 1) { + env_light->daytime = dComIfGs_getTime(); + env_light->daytime += 4.0f; + if (360.0f <= u32(env_light->daytime)) { + env_light->daytime = 0.0f; + } + + dComIfGs_setTime(env_light->daytime); + } + + return retval; +} + +/* 80B215B4-80B219F4 003054 0440+00 1/0 0/0 0/0 .text cutSCannon__12daNpc_Toby_cFi */ +int daNpc_Toby_c::cutSCannon(int arg0) { + cXyz work; + csXyz my_svec; + int retval = 0; + int* param_p = NULL; + int prm_val = -1; + int timer_val = 0; + f32 reg_f31 = 0.0f; + param_p = dComIfGp_evmng_getMyIntegerP(arg0, "prm"); + if (param_p != NULL) { + prm_val = *param_p; + } + + param_p = dComIfGp_evmng_getMyIntegerP(arg0, "timer"); + if (param_p != NULL) { + timer_val = *param_p; + } + + if (dComIfGp_getEventManager().getIsAddvance(arg0)) { + switch (prm_val) { + case 0: + if (daNpcT_getPlayerInfoFromPlayerList(40, fopAcM_GetRoomNo(this), &work, &my_svec)) { + daPy_getPlayerActorClass()->setPlayerPosAndAngle(&work, my_svec.y, 0); + dComIfGp_evmng_setGoal(&work); + } + + break; + + case 1: + initTalk(mFlowNodeNo, NULL); + break; + + case 2: + mMotionSeqMngr.setNo(15, 4.0f, 0, 0); + reg_f31 = 1000.0f; + work.set(0.0f, 100.0f, reg_f31); + mDoMtx_stack_c::YrotS(home.angle.y + 0x1000); + mDoMtx_stack_c::multVec(&work, &work); + field_0x0FE8 = home.pos + work; + mEventTimer = timer_val; + break; + + case 3: + mHide = 1; + field_0x1001 = 1; + break; + + case 4: + mEventTimer = 0; + break; + + case 5: + mEventTimer = timer_val; + break; + } + } + + int sp10[2] = {-1, -1}; + int sp8 = 0; + switch (prm_val) { + case 0: + mJntAnm.lookPlayer(0); + retval = 1; + break; + + case 1: + mJntAnm.lookPlayer(0); + if (talkProc(NULL, 0, NULL, 0) && mFlow.checkEndFlow()) { + retval = 1; + } + + break; + + case 2: + case 4: + mJntAnm.lookPlayer(0); + if (prm_val == 4) { + mJntAnm.lookNone(0); + } + + if (1600.0f < current.pos.abs2(field_0x0FE8)) { + cLib_addCalcAngleS2(¤t.angle.y, cLib_targetAngleY(¤t.pos, &field_0x0FE8), 4, 0x400); + shape_angle.y = current.angle.y; + mCurAngle.y = shape_angle.y; + cLib_chaseF(&speedF, 5.0f, 0.55f); + } else { + mMotionSeqMngr.setNo(0, -1.0f, 0, 0); + speedF = 0.0f; + speed.setall(0.0f); + retval = 1; + } + + if (cLib_calcTimer(&mEventTimer) == 0) { + retval = 1; + } + + break; + + case 5: + if (cLib_calcTimer(&mEventTimer) == 0) { + retval = 1; + } + + break; + + case 3: + retval = 1; + break; + } + + return retval; +} + +/* 80B219F4-80B22434 003494 0A40+00 3/0 0/0 0/0 .text + * cutConversationAboutSCannon__12daNpc_Toby_cFi */ +int daNpc_Toby_c::cutConversationAboutSCannon(int arg0) { + fopAc_ac_c* actor_p = NULL; + cXyz work; + cXyz sp_0x5C; + csXyz my_svec; + int retval = 0; + int* param_p = NULL; + int prm_val = -1; + int timer_val = 0; + int msgNo_val = 0; + int send_val = 0; + f32 reg_f31 = 0.0f; + param_p = dComIfGp_evmng_getMyIntegerP(arg0, "prm"); + if (param_p != NULL) { + prm_val = *param_p; + } + + param_p = dComIfGp_evmng_getMyIntegerP(arg0, "timer"); + if (param_p != NULL) { + timer_val = *param_p; + } + + param_p = dComIfGp_evmng_getMyIntegerP(arg0, "msgNo"); + if (param_p != NULL) { + msgNo_val = *param_p; + } + + param_p = dComIfGp_evmng_getMyIntegerP(arg0, "send"); + if (param_p != NULL) { + send_val = *param_p; + } + + if (dComIfGp_getEventManager().getIsAddvance(arg0)) { + switch (prm_val) { + case 0: + daNpcT_offTmpBit(0xB); + daNpcT_offTmpBit(0xC); + initTalk(mFlowNodeNo, NULL); + break; + + case 1: + mEventTimer = timer_val; + break; + + case 2: + initTalk(mFlowNodeNo, NULL); + break; + + case 4: + mFaceMotionSeqMngr.setNo(16, 0.0f, TRUE, 0); + mMotionSeqMngr.setNo(15, 0.0f, TRUE, 0); + reg_f31 = -300.0f; + actor_p = getOtherTobyP(5); + JUT_ASSERT(3042, NULL != actor_p); + field_0x0FE8 = actor_p->current.pos; + setAngle(actor_p->shape_angle.y); + work.set(0.0f, 100.0f, reg_f31); + mDoMtx_stack_c::YrotS(actor_p->shape_angle.y); + mDoMtx_stack_c::multVec(&work, &work); + work += actor_p->current.pos; + setPos(work); + if (daNpcT_getPlayerInfoFromPlayerList(55, fopAcM_GetRoomNo(this), &work, &my_svec)) { + dComIfGp_evmng_setGoal(&work); + sp_0x5C.set(0.0f, 100.0f, reg_f31); + mDoMtx_stack_c::YrotS(my_svec.y); + mDoMtx_stack_c::multVec(&sp_0x5C, &sp_0x5C); + work += sp_0x5C; + mGndChk.SetPos(&work); + work.y = dComIfG_Bgsp().GroundCross(&mGndChk); + JUT_ASSERT(3064, -G_CM3D_F_INF != work.y); + daPy_getPlayerActorClass()->setPlayerPosAndAngle(&work, my_svec.y, 0); + } + + initTalk(mFlowNodeNo, NULL); + break; + + case 7: + mPlayerAngle = fopAcM_searchPlayerAngleY(this); + break; + + case 8: + mMotionSeqMngr.setNo(15, 4.0f, 0, 0); + reg_f31 = -1000.0f; + actor_p = getOtherTobyP(5); + JUT_ASSERT(3088, NULL != actor_p); + work.set(0.0f, 100.0f, reg_f31); + mDoMtx_stack_c::YrotS(actor_p->shape_angle.y); + mDoMtx_stack_c::multVec(&work, &work); + field_0x0FE8 = actor_p->current.pos + work; + mEventTimer = timer_val; + break; + + case 9: + mFaceMotionSeqMngr.setNo(16, 0.0f, 1, 0); + mMotionSeqMngr.setNo(0, 0.0f, 1, 0); + setPos(home.pos); + setAngle(home.angle.y); + speedF = 0.0f; + speed.setall(0.0f); + break; + + case 10: + mEventTimer = 0; + break; + + case 20: + mEventTimer = timer_val; + break; + } + } + + int sp28[2] = {-1, -1}; + int sp10 = 0; + + switch (prm_val) { + case 0: + mJntAnm.lookPlayer(0); + if (talkProc(NULL, 0, NULL, 0) && mFlow.checkEndFlow()) { + retval = 1; + } + + break; + + case 1: + actor_p = mActorMngr[2].getActorP(); + if (actor_p != NULL) { + mJntAnm.lookPos(&actor_p->current.pos, 0); + dComIfGp_getEvent().setPt2(actor_p); + } else { + mJntAnm.lookNone(0); + } + + if (cLib_calcTimer(&mEventTimer) == 0) { + retval = 1; + } + + break; + + case 2: + mJntAnm.lookPlayer(0); + sp28[0] = msgNo_val; + if (talkProc(sp28, 0, NULL, 0)) { + if (msgNo_val) { + retval = 1; + } else if (mFlow.checkEndFlow()) { + retval = 1; + } + } + + break; + + case 3: + mJntAnm.lookPlayer(0); + if (talkProc(NULL, 0, NULL, 0) && mFlow.checkEndFlow()) { + retval = 1; + } + + break; + + case 4: + actor_p = mActorMngr[2].getActorP(); + if (actor_p != NULL) { + field_0xd6c = actor_p->current.pos; + field_0xd6c.y += 600.0f; + mJntAnm.lookPos(&field_0xd6c, 0); + dComIfGp_getEvent().setPt2(actor_p); + } else { + mJntAnm.lookNone(0); + } + /* fallthrough */ + case 8: + case 10: + mJntAnm.lookPlayer(0); + if (prm_val == 10) { + mJntAnm.lookNone(0); + } + + if (1600.0f < current.pos.abs2(field_0x0FE8)) { + cLib_addCalcAngleS2(¤t.angle.y, cLib_targetAngleY(¤t.pos, &field_0x0FE8), 4, 0x400); + shape_angle.y = current.angle.y; + mCurAngle.y = shape_angle.y; + cLib_chaseF(&speedF, 5.0f, 0.55f); + } else { + mMotionSeqMngr.setNo(0, -1.0f, 0, 0); + speedF = 0.0f; + speed.setall(0.0f); + retval = 1; + } + + if ((prm_val == 8 || prm_val == 10) && cLib_calcTimer(&mEventTimer) == 0) { + retval = 1; + } + + break; + + case 5: + case 6: + sp28[0] = msgNo_val; + field_0xe26 = 0; + if (talkProc(sp28, send_val, NULL, 0)) { + if (msgNo_val) { + retval = 1; + } else if (mFlow.checkEndFlow()) { + retval = 1; + } + } + + break; + + case 7: + mJntAnm.lookPlayer(0); + if (mPlayerAngle != mCurAngle.y) { + step(mPlayerAngle, -1, -1, 15, 0); + } + + shape_angle.y = mPlayerAngle; + if (talkProc(NULL, 0, NULL, 0)) { + int itemNo; + int eventId = mFlow.getEventId(&itemNo); + switch (eventId) { + case 19: + mEvtNo = CUT_REPAIR_SCANNON; + evtChange(); + break; + default: + if (mFlow.checkEndFlow()) { + retval = 1; + } + } + } + + break; + + case 20: + if (cLib_calcTimer(&mEventTimer) == 0) { + retval = 1; + } + + break; + } + + return retval; +} + +/* 80B22434-80B22614 003ED4 01E0+00 1/0 0/0 0/0 .text cutConversationAboutZra__12daNpc_Toby_cFi */ +int daNpc_Toby_c::cutConversationAboutZra(int arg0) { + int retval = 0; + int* param_p = NULL; + int prm_val = -1; + int timer_val = 0; // unused. + int msgNo_val = 0; + param_p = dComIfGp_evmng_getMyIntegerP(arg0, "prm"); + if (param_p != NULL) { + prm_val = *param_p; + } + + param_p = dComIfGp_evmng_getMyIntegerP(arg0, "timer"); + if (param_p != NULL) { + timer_val = *param_p; + } + + param_p = dComIfGp_evmng_getMyIntegerP(arg0, "msgNo"); + if (param_p != NULL) { + msgNo_val = *param_p; + } + + if (dComIfGp_getEventManager().getIsAddvance(arg0)) { + switch (prm_val) { + case 0: + initTalk(mFlowNodeNo, NULL); + break; + case 1: + break; + } + } + + int sp8[2] = {-1, -1}; + switch (prm_val) { + case 0: + case 1: + mJntAnm.lookPlayer(0); + if (prm_val == 0) { + mJntAnm.lookNone(0); + } + + sp8[0] = msgNo_val; + if (talkProc(sp8, 0, NULL, 0)) { + if (msgNo_val) { + retval = 1; + } else if (mFlow.checkEndFlow()) { + retval = 1; + } + } + + break; + } + + return retval; +} + +/* 80B22614-80B226B0 0040B4 009C+00 5/5 0/0 0/0 .text chkAttnZra__12daNpc_Toby_cFv */ +int daNpc_Toby_c::chkAttnZra() { + // In practice, get Bit SW returns 0xEC for all mType == 0, otherwise 0xFF. + // 0x0A1 - F_0063 - Lake Hylia - Used Fyer's cannon for first time + return (mType == 0 && !daNpcT_chkEvtBit(0xA1) && getBitSW() != 0xFF + && !dComIfGs_isSwitch(getBitSW(), fopAcM_GetRoomNo(this))); +} + +/* 80B226B0-80B22D98 004150 06E8+00 2/0 0/0 0/0 .text wait__12daNpc_Toby_cFPv */ +int daNpc_Toby_c::wait(void*) { + switch (mMode) { + case 0: + case 1: + if (mStagger.checkStagger() == 0) { + if (field_0x0FF4 == 0) { + if (mType == 1 && daNpcT_chkEvtBit(0xEF)) { + mFaceMotionSeqMngr.setNo(12, -1.0f, 0, 0); + mMotionSeqMngr.setNo(11, -1.0f, 0, 0); + } else if (chkAttnZra()) { + mFaceMotionSeqMngr.setNo(16, -1.0f, 0, 0); + mMotionSeqMngr.setNo(6, -1.0f, 0, 0); + } else { + mFaceMotionSeqMngr.setNo(16, -1.0f, 0, 0); + mMotionSeqMngr.setNo(0, -1.0f, 0, 0); + } + } + + mMode = 2; + } + /* fallthrough */ + case 2: + if (mType == 4 && mHide == 0) { + mEvtNo = CUT_SCANNON; + field_0xe33 = true; + } + + if (mStagger.checkStagger()) { + break; + } + + if (field_0x0FF4) { + if (cLib_calcTimer(&field_0x0FF4) == 0) { + mMode = 1; + } + } + + if (mTwilight == false && mHide == 0 && daPy_py_c::checkNowWolf()) { + cXyz att_pos = getAttnPos(daPy_getPlayerActorClass()); + if (field_0x1000) { + if (chkPointInArea(att_pos, attention_info.position, + 2000.0f, 300.0f, -300.0f, mCurAngle.y) == FALSE) { + mFaceMotionSeqMngr.setNo(16, -1.0f, 0, 0); + mMotionSeqMngr.setNo(0, -1.0f, 0, 0); + field_0x1000 = 0; + } else if (mMotionSeqMngr.getNo() == 24) { + if (mMotionSeqMngr.getStepNo() < 2) { + cLib_chaseS(¤t.angle.y, fopAcM_searchPlayerAngleY(this), 0x1000); + shape_angle.y = current.angle.y; + mCurAngle.y = shape_angle.y; + } else if (mMotionSeqMngr.getStepNo() > 2) { + mSound.startCreatureVoiceLevel(Z2SE_TOBY_V_BURUBURU, -1); + } + } + } else { + if (chkPointInArea(att_pos, attention_info.position, 1000.0f, 300.0f, -300.0f, mCurAngle.y)) { + if (chkActorInSight(daPy_getPlayerActorClass(), 90.0f, mCurAngle.y)) { + mFaceMotionSeqMngr.setNo(15, -1.0f, 0, 0); + mMotionSeqMngr.setNo(24, -1.0f, 0, 0); + mSound.startCreatureVoice(Z2SE_TOBY_V_SURPRISE, -1); + field_0x1000 = 1; + } + } + } + } else if (field_0x1000) { + mFaceMotionSeqMngr.setNo(16, -1.0f, 0, 0); + mMotionSeqMngr.setNo(0, -1.0f, 0, 0); + field_0x1000 = 0; + } + + if (field_0x1000) { + attention_info.flags = 0; + } else { + if (chkAttnZra()) { + mPlayerActorMngr.remove(); + } + + if (mPlayerActorMngr.getActorP() != NULL && mTwilight == false) { + int reg_r28 = 1; + mJntAnm.lookPlayer(0); + if (chkActorInSight(mPlayerActorMngr.getActorP(), mAttnFovY, mCurAngle.y) == FALSE) { + mJntAnm.lookNone(0); + reg_r28 = 0; + } + + if (mType == 0 && reg_r28 == 0) { + mPlayerActorMngr.remove(); + if (home.angle.y == mCurAngle.y) { + mMode = 1; + } + } else if (!srchPlayerActor() && home.angle.y == mCurAngle.y) { + mMode = 1; + } + } else { + mJntAnm.lookNone(0); + if (home.angle.y != mCurAngle.y) { + if (field_0xe34) { + if (step(home.angle.y, 0x10, 0x14, 0xF, 0)) { + mMode = 1; + } + } else { + setAngle(home.angle.y); + mMode = 1; + } + + attention_info.flags = 0; + } else { + srchPlayerActor(); + } + } + + switch (mJntAnm.getMode()) { + case 0: + break; + } + } + + break; + + case 3: + break; + } + + return 1; +} + +/* 80B22D98-80B22FAC 004838 0214+00 1/0 0/0 0/0 .text walk__12daNpc_Toby_cFPv */ +int daNpc_Toby_c::walk(void*) { + switch (mMode) { + case 0: + case 1: + if (mStagger.checkStagger() == 0) { + mFaceMotionSeqMngr.setNo(0x10, -1.0f, 0, 0); + mMotionSeqMngr.setNo(0xF, -1.0f, 0, 0); + mAcch.SetWallNone(); + mMode = 2; + } + /* fallthrough */ + case 2: + if (mStagger.checkStagger() == 0) { + cXyz work; + JUT_ASSERT(3620, 0 != mPath.getPathInfo()); + int dst_pos_h = mPath.getDstPosH(current.pos, &work, mPath.getNumPnts(), 2); + calcSpeedAndAngle(work, dst_pos_h, 4, 0x800); + if (dst_pos_h && cM3d_IsZero(speedF)) { + home.angle.y = 0x4000; + if (home.angle.y == mCurAngle.y) { + mPlayerActorMngr.entry(daPy_getPlayerActorClass()); + field_0x0FFE = 1; + } else { + step(home.angle.y, 16, 20, 15, 0); + } + } + + mJntAnm.lookNone(0); + } + + attention_info.flags = 0; + break; + + case 3: + mAcch.ClrWallNone(); + break; + } + + return 1; +} + +/* 80B22FAC-80B23344 004A4C 0398+00 3/0 0/0 0/0 .text play__12daNpc_Toby_cFPv */ +int daNpc_Toby_c::play(void* param_0) { + daObj_AutoMata_c* actor_p = (daObj_AutoMata_c*) mActorMngr[1].getActorP(); + int reg_r29 = 1; + if (actor_p != NULL) { + actor_p->setCoNone(); + } + + switch (mMode) { + case 0: + case 1: + if (mStagger.checkStagger() == 0) { + mFaceMotionSeqMngr.setNo(9, 0.0f, 0, 0); + mMotionSeqMngr.setNo(19, 0.0f, 0, 0); + mSound.startCreatureVoice(Z2SE_TOBY_V_BOOT, -1); + mPlaySpeed = 1.0f; + if (actor_p != NULL) { + actor_p->setAnm(0, 1); + actor_p->setAnmPlaySpeed(0.0f); + reg_r29 = 0; + } + mMode = 2; + } + + case 2: + if (mStagger.checkStagger() == 0) { + if (mMotionSeqMngr.getNo() == 19) { + if (mMotionSeqMngr.checkEndSequence()) { + mFaceMotionSeqMngr.setNo(6, 0.0f, 0, 0); + mMotionSeqMngr.setNo(16, 0.0f, 0, 0); + field_0x0FFC = mMorfLoops; + mPlaySpeed = 1.0f; + } + + reg_r29 = 0; + } else if (mMotionSeqMngr.getNo() == 16) { + if (mMotionSeqMngr.checkEndSequence()) { + mFaceMotionSeqMngr.setNo(7, 0.0f, 0, 0); + mMotionSeqMngr.setNo(17, 0.0f, 0, 0); + field_0x0FFC = mMorfLoops; + mPlaySpeed = mpHIO->m.init_play_speed; + if (actor_p != NULL) { + actor_p->setAnm(1, 1); + actor_p->setAnmPlaySpeed(0.0f); + reg_r29 = 0; + } + } + } else if (field_0x0FFC != mMorfLoops) { + cLib_chaseF(&mPlaySpeed, mpHIO->m.performance_speed, mpHIO->m.speedup_performance); + if (mMotionSeqMngr.getNo() != 0x12) { + if (mpHIO->m.switching_speed <= mPlaySpeed) { + mFaceMotionSeqMngr.setNo(8, -1.0f, 0, 0); + mMotionSeqMngr.setNo(18, -1.0f, 0, 0); + } + } + + mpMorf[0]->setPlaySpeed(mPlaySpeed); + mBckAnm.setPlaySpeed(mPlaySpeed); + mBtpAnm.setPlaySpeed(mPlaySpeed); + } + + if (actor_p != NULL && reg_r29) { + actor_p->setAnmPlaySpeed(mpMorf[0]->getPlaySpeed()); + } + + field_0x0FFC = mMorfLoops; + mJntAnm.lookNone(0); + } + + attention_info.flags = 0; + break; + + case 3: + break; + } + + return 1; +} + +/* 80B23344-80B23628 004DE4 02E4+00 3/0 0/0 0/0 .text talk__12daNpc_Toby_cFPv */ +int daNpc_Toby_c::talk(void*) { + switch (mMode) { + case 0: + case 1: + if (mStagger.checkStagger() == 0) { +#if VERSION != VERSION_SHIELD_DEBUG + if (chkAttnZra()) { + mFaceMotionSeqMngr.setNo(16, -1.0f, TRUE, mFaceMotionSeqMngr.getOffset()); + mMotionSeqMngr.setNo(20, -1.0f, TRUE, mMotionSeqMngr.getOffset()); + } +#endif + + if (mPreItemNo == fpcNm_ITEM_RAFRELS_MEMO) { + initTalk(2, NULL); + } else { + initTalk(mFlowNodeNo, NULL); + } + + field_0x0FF4 = 0; + mMode = 2; + } + /* fallthrough */ + case 2: + if (mStagger.checkStagger() == 0) { + if (mTwilight || mPlayerAngle == mCurAngle.y) { + int spC[3] = {-1, -1, -1}; + if (mPreItemNo == fpcNm_ITEM_RAFRELS_MEMO) { + spC[0] = 0x1420; + spC[1] = 0x142D; + } + + if (talkProc(spC, FALSE, NULL, FALSE)) { + int sp8; + int evt_id = mFlow.getEventId(&sp8); + switch (evt_id) { + case 19: + mEvtNo = CUT_REPAIR_SCANNON; + evtChange(); + break; + + default: + if (mFlow.checkEndFlow()) { + mPlayerActorMngr.entry(daPy_getPlayerActorClass()); + dComIfGp_event_reset(); + mMode = 3; + } else { + daPy_getPlayerActorClass()->changeOriginalDemo(); + daPy_getPlayerActorClass()->changeDemoMode(6, 0, 1, 0); + } + } + } + + mJntAnm.lookPlayer(0); + if (mTwilight) { + mJntAnm.lookNone(0); + } + } else { + mJntAnm.lookPlayer(0); + step(mPlayerAngle, 16, 20, 15, 0); + } + } + + break; + + case 3: + break; + } + + return 0; +} + +#if DEBUG +int daNpc_Toby_c::test(void* param_0) { + // TODO +} +#endif + +/* 80B23628-80B23648 0050C8 0020+00 1/0 0/0 0/0 .text daNpc_Toby_Create__FPv */ +static int daNpc_Toby_Create(void* i_this) { + return static_cast(i_this)->create(); +} + +/* 80B23648-80B23668 0050E8 0020+00 1/0 0/0 0/0 .text daNpc_Toby_Delete__FPv */ +static int daNpc_Toby_Delete(void* i_this) { + return static_cast(i_this)->Delete(); +} + +/* 80B23668-80B23688 005108 0020+00 1/0 0/0 0/0 .text daNpc_Toby_Execute__FPv */ +static int daNpc_Toby_Execute(void* i_this) { + return static_cast(i_this)->Execute(); +} + +/* 80B23688-80B236A8 005128 0020+00 1/0 0/0 0/0 .text daNpc_Toby_Draw__FPv */ +static int daNpc_Toby_Draw(void* i_this) { + return static_cast(i_this)->Draw(); +} + +/* 80B236A8-80B236B0 005148 0008+00 1/0 0/0 0/0 .text daNpc_Toby_IsDelete__FPv */ +static int daNpc_Toby_IsDelete(void* i_this) { + return true; +} /* 80B25670-80B25690 -00001 0020+00 1/0 0/0 0/0 .data daNpc_Toby_MethodTable */ static actor_method_class daNpc_Toby_MethodTable = { - (process_method_func)daNpc_Toby_Create__FPv, - (process_method_func)daNpc_Toby_Delete__FPv, - (process_method_func)daNpc_Toby_Execute__FPv, - (process_method_func)daNpc_Toby_IsDelete__FPv, - (process_method_func)daNpc_Toby_Draw__FPv, + (process_method_func)daNpc_Toby_Create, + (process_method_func)daNpc_Toby_Delete, + (process_method_func)daNpc_Toby_Execute, + (process_method_func)daNpc_Toby_IsDelete, + (process_method_func)daNpc_Toby_Draw, }; /* 80B25690-80B256C0 -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_TOBY */ @@ -829,1353 +2306,4 @@ extern actor_process_profile_definition g_profile_NPC_TOBY = { fopAc_CULLBOX_CUSTOM_e, // cullType }; -/* 80B256C0-80B256CC 000A78 000C+00 2/2 0/0 0/0 .data __vt__11J3DTexNoAnm */ -SECTION_DATA extern void* __vt__11J3DTexNoAnm[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)calc__11J3DTexNoAnmCFPUs, -}; - -/* 80B256CC-80B256D8 000A84 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, -}; - -/* 80B256D8-80B256FC 000A90 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_80B249C8, - (void*)NULL, - (void*)NULL, - (void*)func_80B249C0, -}; - -/* 80B256FC-80B25708 000AB4 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, -}; - -/* 80B25708-80B25714 000AC0 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, -}; - -/* 80B25714-80B25720 000ACC 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, -}; - -/* 80B25720-80B2572C 000AD8 000C+00 3/3 0/0 0/0 .data __vt__22daNpcT_MotionSeqMngr_c */ -SECTION_DATA extern void* __vt__22daNpcT_MotionSeqMngr_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__22daNpcT_MotionSeqMngr_cFv, -}; - -/* 80B2572C-80B25738 000AE4 000C+00 5/5 0/0 0/0 .data __vt__18daNpcT_ActorMngr_c */ -SECTION_DATA extern void* __vt__18daNpcT_ActorMngr_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__18daNpcT_ActorMngr_cFv, -}; - -/* 80B25738-80B25744 000AF0 000C+00 3/3 0/0 0/0 .data __vt__15daNpcT_JntAnm_c */ -SECTION_DATA extern void* __vt__15daNpcT_JntAnm_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__15daNpcT_JntAnm_cFv, -}; - -/* 80B25744-80B25750 000AFC 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, -}; - -/* 80B25750-80B2575C 000B08 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, -}; - -/* 80B2575C-80B25768 000B14 000C+00 3/3 0/0 0/0 .data __vt__13daNpcT_Path_c */ -SECTION_DATA extern void* __vt__13daNpcT_Path_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__13daNpcT_Path_cFv, -}; - -/* 80B25768-80B2582C 000B20 00C4+00 2/2 0/0 0/0 .data __vt__12daNpc_Toby_c */ -SECTION_DATA extern void* __vt__12daNpc_Toby_c[49] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12daNpc_Toby_cFv, - (void*)ctrlBtk__8daNpcT_cFv, - (void*)ctrlSubFaceMotion__8daNpcT_cFi, - (void*)checkChangeJoint__12daNpc_Toby_cFi, - (void*)checkRemoveJoint__12daNpc_Toby_cFi, - (void*)getBackboneJointNo__12daNpc_Toby_cFv, - (void*)getNeckJointNo__12daNpc_Toby_cFv, - (void*)getHeadJointNo__12daNpc_Toby_cFv, - (void*)getFootLJointNo__12daNpc_Toby_cFv, - (void*)getFootRJointNo__12daNpc_Toby_cFv, - (void*)getEyeballLMaterialNo__8daNpcT_cFv, - (void*)getEyeballRMaterialNo__8daNpcT_cFv, - (void*)getEyeballMaterialNo__12daNpc_Toby_cFv, - (void*)ctrlJoint__8daNpcT_cFP8J3DJointP8J3DModel, - (void*)afterJntAnm__12daNpc_Toby_cFi, - (void*)setParam__12daNpc_Toby_cFv, - (void*)checkChangeEvt__12daNpc_Toby_cFv, - (void*)evtTalk__12daNpc_Toby_cFv, - (void*)evtEndProc__8daNpcT_cFv, - (void*)evtCutProc__12daNpc_Toby_cFv, - (void*)setAfterTalkMotion__12daNpc_Toby_cFv, - (void*)evtProc__8daNpcT_cFv, - (void*)action__12daNpc_Toby_cFv, - (void*)beforeMove__12daNpc_Toby_cFv, - (void*)afterMoved__8daNpcT_cFv, - (void*)setAttnPos__12daNpc_Toby_cFv, - (void*)setFootPos__8daNpcT_cFv, - (void*)setCollision__12daNpc_Toby_cFv, - (void*)setFootPrtcl__8daNpcT_cFP4cXyzff, - (void*)checkCullDraw__8daNpcT_cFv, - (void*)twilight__8daNpcT_cFv, - (void*)chkXYItems__12daNpc_Toby_cFv, - (void*)evtOrder__8daNpcT_cFv, - (void*)decTmr__8daNpcT_cFv, - (void*)clrParam__8daNpcT_cFv, - (void*)drawDbgInfo__12daNpc_Toby_cFv, - (void*)drawOtherMdl__12daNpc_Toby_cFv, - (void*)drawGhost__8daNpcT_cFv, - (void*)afterSetFaceMotionAnm__12daNpc_Toby_cFiifi, - (void*)afterSetMotionAnm__12daNpc_Toby_cFiifi, - (void*)getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c, - (void*)getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c, - (void*)changeAnm__8daNpcT_cFPiPi, - (void*)changeBck__8daNpcT_cFPiPi, - (void*)changeBtp__8daNpcT_cFPiPi, - (void*)changeBtk__8daNpcT_cFPiPi, - (void*)setMotionAnm__8daNpcT_cFifi, -}; - -/* 80B1E64C-80B1E798 0000EC 014C+00 1/0 0/0 0/0 .text __dt__12daNpc_Toby_cFv */ -daNpc_Toby_c::~daNpc_Toby_c() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B249E4-80B24A80 000000 009C+00 15/15 0/0 0/0 .rodata m__18daNpc_Toby_Param_c */ -SECTION_RODATA u8 const daNpc_Toby_Param_c::m[156] = { - 0x43, 0x20, 0x00, 0x00, 0xC0, 0x40, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00, - 0x43, 0x7F, 0x00, 0x00, 0x43, 0x16, 0x00, 0x00, 0x42, 0x0C, 0x00, 0x00, 0x42, 0x20, 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, 0x03, 0x00, 0x06, 0x00, 0x05, 0x00, 0x06, - 0x42, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x3C, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B249E4, &daNpc_Toby_Param_c::m); - -/* 80B24A80-80B24A9C 00009C 001C+00 0/1 0/0 0/0 .rodata heapSize$4089 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const heapSize[28] = { - 0x00, 0x00, 0x3B, 0xC0, 0x00, 0x00, 0x3B, 0x10, 0x00, 0x00, 0x3B, 0x10, 0x00, 0x00, - 0x43, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xD0, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B24A80, &heapSize); -#pragma pop - -/* 80B24A9C-80B24AA0 0000B8 0004+00 0/1 0/0 0/0 .rodata @4155 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4155 = -200.0f; -COMPILER_STRIP_GATE(0x80B24A9C, &lit_4155); -#pragma pop - -/* 80B24AA0-80B24AA4 0000BC 0004+00 0/1 0/0 0/0 .rodata @4156 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4156 = -100.0f; -COMPILER_STRIP_GATE(0x80B24AA0, &lit_4156); -#pragma pop - -/* 80B24AA4-80B24AA8 0000C0 0004+00 0/1 0/0 0/0 .rodata @4157 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4157 = 200.0f; -COMPILER_STRIP_GATE(0x80B24AA4, &lit_4157); -#pragma pop - -/* 80B24AA8-80B24AAC 0000C4 0004+00 0/2 0/0 0/0 .rodata @4158 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4158 = 300.0f; -COMPILER_STRIP_GATE(0x80B24AA8, &lit_4158); -#pragma pop - -/* 80B24AAC-80B24AB0 0000C8 0004+00 6/18 0/0 0/0 .rodata @4159 */ -SECTION_RODATA static u8 const lit_4159[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80B24AAC, &lit_4159); - -/* 80B24AB0-80B24AB4 0000CC 0004+00 0/1 0/0 0/0 .rodata @4160 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4160 = -G_CM3D_F_INF; -COMPILER_STRIP_GATE(0x80B24AB0, &lit_4160); -#pragma pop - -/* 80B1E798-80B1EA60 000238 02C8+00 1/1 0/0 0/0 .text create__12daNpc_Toby_cFv */ -void daNpc_Toby_c::create() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B24AB4-80B24AB8 0000D0 0004+00 0/2 0/0 0/0 .rodata @4323 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4323 = 65536.0f; -COMPILER_STRIP_GATE(0x80B24AB4, &lit_4323); -#pragma pop - -/* 80B24AB8-80B24ABC 0000D4 0004+00 0/3 0/0 0/0 .rodata @4324 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4324 = 1.0f / 5.0f; -COMPILER_STRIP_GATE(0x80B24AB8, &lit_4324); -#pragma pop - -/* 80B24ABC-80B24AC0 0000D8 0004+00 0/1 0/0 0/0 .rodata bmdTypeList$4437 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const bmdTypeList[4] = { - 0x00, - 0x00, - 0x00, - 0x02, -}; -COMPILER_STRIP_GATE(0x80B24ABC, &bmdTypeList); -#pragma pop - -/* 80B24AC0-80B24AC4 0000DC 0004+00 1/5 0/0 0/0 .rodata @4495 */ -SECTION_RODATA static f32 const lit_4495 = 1.0f; -COMPILER_STRIP_GATE(0x80B24AC0, &lit_4495); - -/* 80B1EA60-80B1ED6C 000500 030C+00 1/1 0/0 0/0 .text CreateHeap__12daNpc_Toby_cFv */ -void daNpc_Toby_c::CreateHeap() { - // NONMATCHING -} - -/* 80B1ED6C-80B1EDA8 00080C 003C+00 1/1 0/0 0/0 .text __dt__15J3DTevKColorAnmFv */ -// J3DTevKColorAnm::~J3DTevKColorAnm() { -extern "C" void __dt__15J3DTevKColorAnmFv() { - // NONMATCHING -} - -/* 80B1EDA8-80B1EDC0 000848 0018+00 1/1 0/0 0/0 .text __ct__15J3DTevKColorAnmFv */ -// J3DTevKColorAnm::J3DTevKColorAnm() { -extern "C" void __ct__15J3DTevKColorAnmFv() { - // NONMATCHING -} - -/* 80B1EDC0-80B1EDFC 000860 003C+00 1/1 0/0 0/0 .text __dt__14J3DTevColorAnmFv */ -// J3DTevColorAnm::~J3DTevColorAnm() { -extern "C" void __dt__14J3DTevColorAnmFv() { - // NONMATCHING -} - -/* 80B1EDFC-80B1EE14 00089C 0018+00 1/1 0/0 0/0 .text __ct__14J3DTevColorAnmFv */ -// J3DTevColorAnm::J3DTevColorAnm() { -extern "C" void __ct__14J3DTevColorAnmFv() { - // NONMATCHING -} - -/* 80B1EE14-80B1EE5C 0008B4 0048+00 1/1 0/0 0/0 .text __dt__11J3DTexNoAnmFv */ -// J3DTexNoAnm::~J3DTexNoAnm() { -extern "C" void __dt__11J3DTexNoAnmFv() { - // NONMATCHING -} - -/* 80B1EE5C-80B1EE80 0008FC 0024+00 1/1 0/0 0/0 .text __ct__11J3DTexNoAnmFv */ -// J3DTexNoAnm::J3DTexNoAnm() { -extern "C" void __ct__11J3DTexNoAnmFv() { - // NONMATCHING -} - -/* 80B1EE80-80B1EEBC 000920 003C+00 1/1 0/0 0/0 .text __dt__12J3DTexMtxAnmFv */ -// J3DTexMtxAnm::~J3DTexMtxAnm() { -extern "C" void __dt__12J3DTexMtxAnmFv() { - // NONMATCHING -} - -/* 80B1EEBC-80B1EED4 00095C 0018+00 1/1 0/0 0/0 .text __ct__12J3DTexMtxAnmFv */ -// J3DTexMtxAnm::J3DTexMtxAnm() { -extern "C" void __ct__12J3DTexMtxAnmFv() { - // NONMATCHING -} - -/* 80B1EED4-80B1EF10 000974 003C+00 1/1 0/0 0/0 .text __dt__14J3DMatColorAnmFv */ -// J3DMatColorAnm::~J3DMatColorAnm() { -extern "C" void __dt__14J3DMatColorAnmFv() { - // NONMATCHING -} - -/* 80B1EF10-80B1EF28 0009B0 0018+00 1/1 0/0 0/0 .text __ct__14J3DMatColorAnmFv */ -// J3DMatColorAnm::J3DMatColorAnm() { -extern "C" void __ct__14J3DMatColorAnmFv() { - // NONMATCHING -} - -/* 80B1EF28-80B1EF5C 0009C8 0034+00 1/1 0/0 0/0 .text Delete__12daNpc_Toby_cFv */ -void daNpc_Toby_c::Delete() { - // NONMATCHING -} - -/* 80B1EF5C-80B1EF7C 0009FC 0020+00 2/2 0/0 0/0 .text Execute__12daNpc_Toby_cFv */ -void daNpc_Toby_c::Execute() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B24AC4-80B24AC8 0000E0 0004+00 1/2 0/0 0/0 .rodata @4544 */ -SECTION_RODATA static f32 const lit_4544 = 100.0f; -COMPILER_STRIP_GATE(0x80B24AC4, &lit_4544); - -/* 80B1EF7C-80B1F010 000A1C 0094+00 1/1 0/0 0/0 .text Draw__12daNpc_Toby_cFv */ -void daNpc_Toby_c::Draw() { - // NONMATCHING -} - -/* 80B1F010-80B1F030 000AB0 0020+00 1/1 0/0 0/0 .text - * createHeapCallBack__12daNpc_Toby_cFP10fopAc_ac_c */ -void daNpc_Toby_c::createHeapCallBack(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* 80B1F030-80B1F088 000AD0 0058+00 1/1 0/0 0/0 .text - * ctrlJointCallBack__12daNpc_Toby_cFP8J3DJointi */ -void daNpc_Toby_c::ctrlJointCallBack(J3DJoint* param_0, int param_1) { - // NONMATCHING -} - -/* 80B1F088-80B1F124 000B28 009C+00 1/1 0/0 0/0 .text srchToby__12daNpc_Toby_cFPvPv */ -void daNpc_Toby_c::srchToby(void* param_0, void* param_1) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B24AC8-80B24ACC 0000E4 0004+00 1/1 0/0 0/0 .rodata @4593 */ -SECTION_RODATA static f32 const lit_4593 = G_CM3D_F_INF; -COMPILER_STRIP_GATE(0x80B24AC8, &lit_4593); - -/* 80B1F124-80B1F200 000BC4 00DC+00 1/1 0/0 0/0 .text getOtherTobyP__12daNpc_Toby_cFi */ -void daNpc_Toby_c::getOtherTobyP(int param_0) { - // NONMATCHING -} - -/* 80B1F200-80B1F274 000CA0 0074+00 2/2 0/0 0/0 .text getType__12daNpc_Toby_cFv */ -void daNpc_Toby_c::getType() { - // NONMATCHING -} - -/* 80B1F274-80B1F384 000D14 0110+00 1/1 0/0 0/0 .text isDelete__12daNpc_Toby_cFv */ -void daNpc_Toby_c::isDelete() { - // NONMATCHING -} - -/* 80B1F384-80B1F5AC 000E24 0228+00 1/1 0/0 0/0 .text reset__12daNpc_Toby_cFv */ -void daNpc_Toby_c::reset() { - // NONMATCHING -} - -/* 80B1F5AC-80B1F638 00104C 008C+00 1/0 0/0 0/0 .text afterJntAnm__12daNpc_Toby_cFi */ -void daNpc_Toby_c::afterJntAnm(int param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B24ACC-80B24AD0 0000E8 0004+00 1/1 0/0 0/0 .rodata @4735 */ -SECTION_RODATA static f32 const lit_4735 = 600.0f; -COMPILER_STRIP_GATE(0x80B24ACC, &lit_4735); - -/* 80B1F638-80B1F784 0010D8 014C+00 1/0 0/0 0/0 .text setParam__12daNpc_Toby_cFv */ -void daNpc_Toby_c::setParam() { - // NONMATCHING -} - -/* 80B1F784-80B1F950 001224 01CC+00 1/0 0/0 0/0 .text checkChangeEvt__12daNpc_Toby_cFv */ -void daNpc_Toby_c::checkChangeEvt() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B24AD0-80B24AD4 0000EC 0004+00 2/6 0/0 0/0 .rodata @4802 */ -SECTION_RODATA static f32 const lit_4802 = -1.0f; -COMPILER_STRIP_GATE(0x80B24AD0, &lit_4802); - -/* 80B1F950-80B1FA08 0013F0 00B8+00 1/0 0/0 0/0 .text setAfterTalkMotion__12daNpc_Toby_cFv */ -void daNpc_Toby_c::setAfterTalkMotion() { - // NONMATCHING -} - -/* 80B1FA08-80B1FB34 0014A8 012C+00 1/1 0/0 0/0 .text srchActors__12daNpc_Toby_cFv */ -void daNpc_Toby_c::srchActors() { - // NONMATCHING -} - -/* 80B1FB34-80B1FBD4 0015D4 00A0+00 1/0 0/0 0/0 .text evtTalk__12daNpc_Toby_cFv */ -void daNpc_Toby_c::evtTalk() { - // NONMATCHING -} - -/* 80B1FBD4-80B1FC9C 001674 00C8+00 1/0 0/0 0/0 .text evtCutProc__12daNpc_Toby_cFv */ -void daNpc_Toby_c::evtCutProc() { - // NONMATCHING -} - -/* 80B1FC9C-80B1FE68 00173C 01CC+00 1/0 0/0 0/0 .text action__12daNpc_Toby_cFv */ -void daNpc_Toby_c::action() { - // NONMATCHING -} - -/* 80B1FE68-80B1FF2C 001908 00C4+00 1/0 0/0 0/0 .text beforeMove__12daNpc_Toby_cFv */ -void daNpc_Toby_c::beforeMove() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B24AD4-80B24AD8 0000F0 0004+00 0/2 0/0 0/0 .rodata @4983 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4983 = 30.0f; -COMPILER_STRIP_GATE(0x80B24AD4, &lit_4983); -#pragma pop - -/* 80B24AD8-80B24ADC 0000F4 0004+00 0/1 0/0 0/0 .rodata @4984 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_4984 = 0x38C90FDB; -COMPILER_STRIP_GATE(0x80B24AD8, &lit_4984); -#pragma pop - -/* 80B24ADC-80B24AE0 0000F8 0004+00 0/2 0/0 0/0 .rodata @4985 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4985 = 20.0f; -COMPILER_STRIP_GATE(0x80B24ADC, &lit_4985); -#pragma pop - -/* 80B24AE0-80B24AE4 0000FC 0004+00 0/1 0/0 0/0 .rodata @4986 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4986 = 140.0f; -COMPILER_STRIP_GATE(0x80B24AE0, &lit_4986); -#pragma pop - -/* 80B24AE4-80B24AE8 000100 0004+00 0/1 0/0 0/0 .rodata @4987 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4987 = 120.0f; -COMPILER_STRIP_GATE(0x80B24AE4, &lit_4987); -#pragma pop - -/* 80B24AE8-80B24AEC 000104 0004+00 0/1 0/0 0/0 .rodata @4988 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4988 = 40.0f; -COMPILER_STRIP_GATE(0x80B24AE8, &lit_4988); -#pragma pop - -/* 80B24AEC-80B24AF0 000108 0004+00 0/1 0/0 0/0 .rodata @4989 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4989 = 3.0f; -COMPILER_STRIP_GATE(0x80B24AEC, &lit_4989); -#pragma pop - -/* 80B24AF0-80B24AF4 00010C 0004+00 0/2 0/0 0/0 .rodata @4990 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4990 = 10.0f; -COMPILER_STRIP_GATE(0x80B24AF0, &lit_4990); -#pragma pop - -/* 80B24AF4-80B24AFC 000110 0008+00 1/4 0/0 0/0 .rodata @4992 */ -SECTION_RODATA static u8 const lit_4992[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B24AF4, &lit_4992); - -/* 80B25880-80B2588C 000048 000C+00 1/1 0/0 0/0 .bss @3933 */ -static u8 lit_3933[12]; - -/* 80B2588C-80B25890 000054 0004+00 1/1 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[4]; - -/* 80B25890-80B258A0 000058 000C+04 0/1 0/0 0/0 .bss @4922 */ -#pragma push -#pragma force_active on -static u8 lit_4922[12 + 4 /* padding */]; -#pragma pop - -/* 80B258A0-80B258AC 000068 000C+00 0/1 0/0 0/0 .bss prtclScl$4921 */ -#pragma push -#pragma force_active on -static u8 prtclScl[12]; -#pragma pop - -/* 80B1FF2C-80B20278 0019CC 034C+00 1/0 0/0 0/0 .text setAttnPos__12daNpc_Toby_cFv */ -void daNpc_Toby_c::setAttnPos() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B24AFC-80B24B04 000118 0008+00 0/1 0/0 0/0 .rodata @5050 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5050[8] = { - 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B24AFC, &lit_5050); -#pragma pop - -/* 80B24B04-80B24B0C 000120 0008+00 0/1 0/0 0/0 .rodata @5051 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5051[8] = { - 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B24B04, &lit_5051); -#pragma pop - -/* 80B24B0C-80B24B14 000128 0008+00 0/1 0/0 0/0 .rodata @5052 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5052[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B24B0C, &lit_5052); -#pragma pop - -/* 80B24B14-80B24B18 000130 0004+00 0/1 0/0 0/0 .rodata @5098 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5098 = 110.0f; -COMPILER_STRIP_GATE(0x80B24B14, &lit_5098); -#pragma pop - -/* 80B24B18-80B24B1C 000134 0004+00 0/1 0/0 0/0 .rodata @5099 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5099 = 64.0f; -COMPILER_STRIP_GATE(0x80B24B18, &lit_5099); -#pragma pop - -/* 80B20278-80B2042C 001D18 01B4+00 1/0 0/0 0/0 .text setCollision__12daNpc_Toby_cFv */ -void daNpc_Toby_c::setCollision() { - // NONMATCHING -} - -/* 80B2042C-80B20434 001ECC 0008+00 1/0 0/0 0/0 .text drawDbgInfo__12daNpc_Toby_cFv */ -bool daNpc_Toby_c::drawDbgInfo() { - return false; -} - -/* ############################################################################################## */ -/* 80B24B1C-80B24B20 000138 0004+00 1/1 0/0 0/0 .rodata jointNo$5107 */ -SECTION_RODATA static u8 const jointNo[4] = { - 0x00, - 0x00, - 0x00, - 0x12, -}; -COMPILER_STRIP_GATE(0x80B24B1C, &jointNo); - -/* 80B20434-80B2050C 001ED4 00D8+00 1/0 0/0 0/0 .text drawOtherMdl__12daNpc_Toby_cFv */ -void daNpc_Toby_c::drawOtherMdl() { - // NONMATCHING -} - -/* 80B2050C-80B20568 001FAC 005C+00 1/0 0/0 0/0 .text afterSetFaceMotionAnm__12daNpc_Toby_cFiifi - */ -void daNpc_Toby_c::afterSetFaceMotionAnm(int param_0, int param_1, f32 param_2, int param_3) { - // NONMATCHING -} - -/* 80B20568-80B205F4 002008 008C+00 1/0 0/0 0/0 .text afterSetMotionAnm__12daNpc_Toby_cFiifi */ -void daNpc_Toby_c::afterSetMotionAnm(int param_0, int param_1, f32 param_2, int param_3) { - // NONMATCHING -} - -/* 80B205F4-80B20710 002094 011C+00 1/1 0/0 0/0 .text selectAction__12daNpc_Toby_cFv */ -void daNpc_Toby_c::selectAction() { - // NONMATCHING -} - -/* 80B20710-80B2073C 0021B0 002C+00 2/2 0/0 0/0 .text - * chkAction__12daNpc_Toby_cFM12daNpc_Toby_cFPCvPvPv_i */ -void daNpc_Toby_c::chkAction(int (daNpc_Toby_c::*param_0)(void*)) { - // NONMATCHING -} - -/* 80B2073C-80B207E4 0021DC 00A8+00 2/2 0/0 0/0 .text - * setAction__12daNpc_Toby_cFM12daNpc_Toby_cFPCvPvPv_i */ -void daNpc_Toby_c::setAction(int (daNpc_Toby_c::*param_0)(void*)) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B24B8C-80B24B8C 0001A8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80B24C32 = "prm"; -SECTION_DEAD static char const* const stringBase_80B24C36 = "timer"; -#pragma pop - -/* 80B207E4-80B20AB0 002284 02CC+00 1/0 0/0 0/0 .text cutTobyHouseFire__12daNpc_Toby_cFi - */ -void daNpc_Toby_c::cutTobyHouseFire(int param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B24B20-80B24B28 00013C 0008+00 0/1 0/0 0/0 .rodata @5345 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5345[8] = { - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, -}; -COMPILER_STRIP_GATE(0x80B24B20, &lit_5345); -#pragma pop - -/* 80B24B8C-80B24B8C 0001A8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80B24C3C = "msgNo"; -#pragma pop - -/* 80B20AB0-80B20FC0 002550 0510+00 3/0 0/0 0/0 .text cutTalkToOneself__12daNpc_Toby_cFi - */ -void daNpc_Toby_c::cutTalkToOneself(int param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B24B28-80B24B30 000144 0008+00 0/0 0/0 0/0 .rodata @5499 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5499[8] = { - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, -}; -COMPILER_STRIP_GATE(0x80B24B28, &lit_5499); -#pragma pop - -/* 80B24B30-80B24B34 00014C 0004+00 0/1 0/0 0/0 .rodata @5630 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_5630 = 0x43360B61; -COMPILER_STRIP_GATE(0x80B24B30, &lit_5630); -#pragma pop - -/* 80B24B34-80B24B38 000150 0004+00 0/2 0/0 0/0 .rodata @5631 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5631 = 5.0f; -COMPILER_STRIP_GATE(0x80B24B34, &lit_5631); -#pragma pop - -/* 80B24B38-80B24B3C 000154 0004+00 0/2 0/0 0/0 .rodata @5632 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5632 = 4.0f; -COMPILER_STRIP_GATE(0x80B24B38, &lit_5632); -#pragma pop - -/* 80B24B3C-80B24B44 000158 0004+04 0/1 0/0 0/0 .rodata @5633 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5633[1 + 1 /* padding */] = { - 360.0f, - /* padding */ - 0.0f, -}; -COMPILER_STRIP_GATE(0x80B24B3C, &lit_5633); -#pragma pop - -/* 80B24B44-80B24B4C 000160 0008+00 0/1 0/0 0/0 .rodata @5636 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5636[8] = { - 0x43, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B24B44, &lit_5636); -#pragma pop - -/* 80B20FC0-80B215B4 002A60 05F4+00 1/0 0/0 0/0 .text cutRepairSCannon__12daNpc_Toby_cFi - */ -void daNpc_Toby_c::cutRepairSCannon(int param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B24B4C-80B24B54 000168 0008+00 0/0 0/0 0/0 .rodata @5658 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5658[8] = { - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, -}; -COMPILER_STRIP_GATE(0x80B24B4C, &lit_5658); -#pragma pop - -/* 80B24B54-80B24B58 000170 0004+00 0/2 0/0 0/0 .rodata @5751 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5751 = 1000.0f; -COMPILER_STRIP_GATE(0x80B24B54, &lit_5751); -#pragma pop - -/* 80B24B58-80B24B5C 000174 0004+00 0/1 0/0 0/0 .rodata @5752 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5752 = 1600.0f; -COMPILER_STRIP_GATE(0x80B24B58, &lit_5752); -#pragma pop - -/* 80B24B5C-80B24B60 000178 0004+00 0/1 0/0 0/0 .rodata @5753 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5753 = 11.0f / 20.0f; -COMPILER_STRIP_GATE(0x80B24B5C, &lit_5753); -#pragma pop - -/* 80B215B4-80B219F4 003054 0440+00 1/0 0/0 0/0 .text cutSCannon__12daNpc_Toby_cFi */ -void daNpc_Toby_c::cutSCannon(int param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B24B60-80B24B68 00017C 0008+00 0/1 0/0 0/0 .rodata @5783 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5783[8] = { - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, -}; -COMPILER_STRIP_GATE(0x80B24B60, &lit_5783); -#pragma pop - -/* 80B24B8C-80B24B8C 0001A8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80B24C42 = "send"; -#pragma pop - -/* 80B219F4-80B22434 003494 0A40+00 3/0 0/0 0/0 .text - * cutConversationAboutSCannon__12daNpc_Toby_cFi */ -void daNpc_Toby_c::cutConversationAboutSCannon(int param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B24B68-80B24B6C 000184 0004+00 0/1 0/0 0/0 .rodata @6037 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6037 = -300.0f; -COMPILER_STRIP_GATE(0x80B24B68, &lit_6037); -#pragma pop - -/* 80B24B6C-80B24B70 000188 0004+00 0/0 0/0 0/0 .rodata @6038 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6038 = -1000.0f; -COMPILER_STRIP_GATE(0x80B24B6C, &lit_6038); -#pragma pop - -/* 80B24B70-80B24B78 00018C 0008+00 1/1 0/0 0/0 .rodata @6056 */ -SECTION_RODATA static u8 const lit_6056[8] = { - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, -}; -COMPILER_STRIP_GATE(0x80B24B70, &lit_6056); - -/* 80B22434-80B22614 003ED4 01E0+00 1/0 0/0 0/0 .text cutConversationAboutZra__12daNpc_Toby_cFi */ -void daNpc_Toby_c::cutConversationAboutZra(int param_0) { - // NONMATCHING -} - -/* 80B22614-80B226B0 0040B4 009C+00 5/5 0/0 0/0 .text chkAttnZra__12daNpc_Toby_cFv */ -void daNpc_Toby_c::chkAttnZra() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B24B78-80B24B7C 000194 0004+00 0/1 0/0 0/0 .rodata @6337 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6337 = 2000.0f; -COMPILER_STRIP_GATE(0x80B24B78, &lit_6337); -#pragma pop - -/* 80B24B7C-80B24B80 000198 0004+00 0/1 0/0 0/0 .rodata @6338 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6338 = 90.0f; -COMPILER_STRIP_GATE(0x80B24B7C, &lit_6338); -#pragma pop - -/* 80B226B0-80B22D98 004150 06E8+00 2/0 0/0 0/0 .text wait__12daNpc_Toby_cFPv */ -void daNpc_Toby_c::wait(void* param_0) { - // NONMATCHING -} - -/* 80B22D98-80B22FAC 004838 0214+00 1/0 0/0 0/0 .text walk__12daNpc_Toby_cFPv */ -void daNpc_Toby_c::walk(void* param_0) { - // NONMATCHING -} - -/* 80B22FAC-80B23344 004A4C 0398+00 3/0 0/0 0/0 .text play__12daNpc_Toby_cFPv */ -void daNpc_Toby_c::play(void* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B24B80-80B24B8C 00019C 000C+00 0/1 0/0 0/0 .rodata @6541 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_6541[12] = { - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, -}; -COMPILER_STRIP_GATE(0x80B24B80, &lit_6541); -#pragma pop - -/* 80B23344-80B23628 004DE4 02E4+00 3/0 0/0 0/0 .text talk__12daNpc_Toby_cFPv */ -void daNpc_Toby_c::talk(void* param_0) { - // NONMATCHING -} - -/* 80B23628-80B23648 0050C8 0020+00 1/0 0/0 0/0 .text daNpc_Toby_Create__FPv */ -static void daNpc_Toby_Create(void* param_0) { - // NONMATCHING -} - -/* 80B23648-80B23668 0050E8 0020+00 1/0 0/0 0/0 .text daNpc_Toby_Delete__FPv */ -static void daNpc_Toby_Delete(void* param_0) { - // NONMATCHING -} - -/* 80B23668-80B23688 005108 0020+00 1/0 0/0 0/0 .text daNpc_Toby_Execute__FPv */ -static void daNpc_Toby_Execute(void* param_0) { - // NONMATCHING -} - -/* 80B23688-80B236A8 005128 0020+00 1/0 0/0 0/0 .text daNpc_Toby_Draw__FPv */ -static void daNpc_Toby_Draw(void* param_0) { - // NONMATCHING -} - -/* 80B236A8-80B236B0 005148 0008+00 1/0 0/0 0/0 .text daNpc_Toby_IsDelete__FPv */ -static bool daNpc_Toby_IsDelete(void* param_0) { - return true; -} - -/* 80B236B0-80B236E0 005150 0030+00 1/0 0/0 0/0 .text calc__11J3DTexNoAnmCFPUs */ -// void J3DTexNoAnm::calc(u16* param_0) const { -extern "C" void calc__11J3DTexNoAnmCFPUs() { - // NONMATCHING -} - -/* 80B236E0-80B23728 005180 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */ -// cCcD_GStts::~cCcD_GStts() { -extern "C" void __dt__10cCcD_GSttsFv() { - // NONMATCHING -} - -/* 80B23728-80B23AB0 0051C8 0388+00 1/1 0/0 0/0 .text __dt__8daNpcT_cFv */ -// daNpcT_c::~daNpcT_c() { -extern "C" void __dt__8daNpcT_cFv() { - // NONMATCHING -} - -/* 80B23AB0-80B23AEC 005550 003C+00 4/4 0/0 0/0 .text __dt__4cXyzFv */ -// cXyz::~cXyz() { -extern "C" void __dt__4cXyzFv() { - // NONMATCHING -} - -/* 80B23AEC-80B23B28 00558C 003C+00 2/2 0/0 0/0 .text __dt__5csXyzFv */ -// csXyz::~csXyz() { -extern "C" void __dt__5csXyzFv() { - // NONMATCHING -} - -/* 80B23B28-80B23B70 0055C8 0048+00 3/2 0/0 0/0 .text __dt__18daNpcT_ActorMngr_cFv */ -// daNpcT_ActorMngr_c::~daNpcT_ActorMngr_c() { -extern "C" void __dt__18daNpcT_ActorMngr_cFv() { - // NONMATCHING -} - -/* 80B23B70-80B23BB8 005610 0048+00 1/0 0/0 0/0 .text __dt__13daNpcT_Path_cFv */ -// daNpcT_Path_c::~daNpcT_Path_c() { -extern "C" void __dt__13daNpcT_Path_cFv() { - // NONMATCHING -} - -/* 80B23BB8-80B23BF4 005658 003C+00 1/1 0/0 0/0 .text __ct__18daNpcT_ActorMngr_cFv */ -// daNpcT_ActorMngr_c::daNpcT_ActorMngr_c() { -extern "C" void __ct__18daNpcT_ActorMngr_cFv() { - // NONMATCHING -} - -/* 80B23BF4-80B23C3C 005694 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */ -// cM3dGCyl::~cM3dGCyl() { -extern "C" void __dt__8cM3dGCylFv() { - // NONMATCHING -} - -/* 80B23C3C-80B23C84 0056DC 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -// cM3dGAab::~cM3dGAab() { -extern "C" void __dt__8cM3dGAabFv() { - // NONMATCHING -} - -/* 80B23C84-80B24088 005724 0404+00 1/1 0/0 0/0 .text - * __ct__8daNpcT_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc - */ -// daNpcT_c::daNpcT_c(daNpcT_faceMotionAnmData_c const* param_0, -// daNpcT_motionAnmData_c const* param_1, -// daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_2, int param_3, -// daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_4, int param_5, -// daNpcT_evtData_c const* param_6, char** param_7) { -extern "C" void __ct__8daNpcT_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc() { - // NONMATCHING -} - -/* 80B24088-80B2408C 005B28 0004+00 1/1 0/0 0/0 .text __ct__5csXyzFv */ -// csXyz::csXyz() { -extern "C" void __ct__5csXyzFv() { - /* empty function */ -} - -/* 80B2408C-80B24188 005B2C 00FC+00 1/0 0/0 0/0 .text __dt__15daNpcT_JntAnm_cFv */ -// daNpcT_JntAnm_c::~daNpcT_JntAnm_c() { -extern "C" void __dt__15daNpcT_JntAnm_cFv() { - // NONMATCHING -} - -/* 80B24188-80B2418C 005C28 0004+00 1/1 0/0 0/0 .text __ct__4cXyzFv */ -// cXyz::cXyz() { -extern "C" void __ct__4cXyzFv() { - /* empty function */ -} - -/* 80B2418C-80B241D4 005C2C 0048+00 1/0 0/0 0/0 .text __dt__22daNpcT_MotionSeqMngr_cFv */ -// daNpcT_MotionSeqMngr_c::~daNpcT_MotionSeqMngr_c() { -extern "C" void __dt__22daNpcT_MotionSeqMngr_cFv() { - // NONMATCHING -} - -/* 80B241D4-80B24244 005C74 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */ -// dBgS_AcchCir::~dBgS_AcchCir() { -extern "C" void __dt__12dBgS_AcchCirFv() { - // NONMATCHING -} - -/* 80B24244-80B242A0 005CE4 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */ -// dCcD_GStts::~dCcD_GStts() { -extern "C" void __dt__10dCcD_GSttsFv() { - // NONMATCHING -} - -/* 80B242A0-80B24310 005D40 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */ -// dBgS_ObjAcch::~dBgS_ObjAcch() { -extern "C" void __dt__12dBgS_ObjAcchFv() { - // NONMATCHING -} - -/* 80B24310-80B24358 005DB0 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */ -// J3DFrameCtrl::~J3DFrameCtrl() { -extern "C" void __dt__12J3DFrameCtrlFv() { - // NONMATCHING -} - -/* 80B24358-80B24474 005DF8 011C+00 1/1 0/0 0/0 .text setEyeAngleY__15daNpcT_JntAnm_cF4cXyzsifs */ -// void daNpcT_JntAnm_c::setEyeAngleY(cXyz param_0, s16 param_1, int param_2, f32 param_3, -// s16 param_4) { -extern "C" void setEyeAngleY__15daNpcT_JntAnm_cF4cXyzsifs() { - // NONMATCHING -} - -/* 80B24474-80B2467C 005F14 0208+00 1/1 0/0 0/0 .text setEyeAngleX__15daNpcT_JntAnm_cF4cXyzfs */ -// void daNpcT_JntAnm_c::setEyeAngleX(cXyz param_0, f32 param_1, s16 param_2) { -extern "C" void setEyeAngleX__15daNpcT_JntAnm_cF4cXyzfs() { - // NONMATCHING -} - -/* 80B2467C-80B24680 00611C 0004+00 1/0 0/0 0/0 .text ctrlSubFaceMotion__8daNpcT_cFi */ -// void daNpcT_c::ctrlSubFaceMotion(int param_0) { -extern "C" void ctrlSubFaceMotion__8daNpcT_cFi() { - /* empty function */ -} - -/* 80B24680-80B24688 006120 0008+00 1/0 0/0 0/0 .text getEyeballLMaterialNo__8daNpcT_cFv - */ -// bool daNpcT_c::getEyeballLMaterialNo() { -extern "C" bool getEyeballLMaterialNo__8daNpcT_cFv() { - return false; -} - -/* 80B24688-80B24690 006128 0008+00 1/0 0/0 0/0 .text getEyeballRMaterialNo__8daNpcT_cFv - */ -// bool daNpcT_c::getEyeballRMaterialNo() { -extern "C" bool getEyeballRMaterialNo__8daNpcT_cFv() { - return false; -} - -/* 80B24690-80B24698 006130 0008+00 1/0 0/0 0/0 .text evtEndProc__8daNpcT_cFv */ -// bool daNpcT_c::evtEndProc() { -extern "C" bool evtEndProc__8daNpcT_cFv() { - return true; -} - -/* 80B2469C-80B246B4 00613C 0018+00 1/0 0/0 0/0 .text decTmr__8daNpcT_cFv */ -// void daNpcT_c::decTmr() { -extern "C" void decTmr__8daNpcT_cFv() { - // NONMATCHING -} - -/* 80B246B4-80B246B8 006154 0004+00 1/0 0/0 0/0 .text drawGhost__8daNpcT_cFv */ -// void daNpcT_c::drawGhost() { -extern "C" void drawGhost__8daNpcT_cFv() { - /* empty function */ -} - -/* 80B246B8-80B246E8 006158 0030+00 1/0 0/0 0/0 .text - * getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c */ -// void daNpcT_c::getFaceMotionAnm(daNpcT_faceMotionAnmData_c param_0) { -extern "C" void getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c() { - // NONMATCHING -} - -/* 80B246E8-80B24718 006188 0030+00 1/0 0/0 0/0 .text - * getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c */ -// void daNpcT_c::getMotionAnm(daNpcT_motionAnmData_c param_0) { -extern "C" void getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c() { - // NONMATCHING -} - -/* 80B24718-80B2471C 0061B8 0004+00 1/0 0/0 0/0 .text changeAnm__8daNpcT_cFPiPi */ -// void daNpcT_c::changeAnm(int* param_0, int* param_1) { -extern "C" void changeAnm__8daNpcT_cFPiPi() { - /* empty function */ -} - -/* 80B2471C-80B24720 0061BC 0004+00 1/0 0/0 0/0 .text changeBck__8daNpcT_cFPiPi */ -// void daNpcT_c::changeBck(int* param_0, int* param_1) { -extern "C" void changeBck__8daNpcT_cFPiPi() { - /* empty function */ -} - -/* 80B24720-80B24724 0061C0 0004+00 1/0 0/0 0/0 .text changeBtp__8daNpcT_cFPiPi */ -// void daNpcT_c::changeBtp(int* param_0, int* param_1) { -extern "C" void changeBtp__8daNpcT_cFPiPi() { - /* empty function */ -} - -/* 80B24724-80B24728 0061C4 0004+00 1/0 0/0 0/0 .text changeBtk__8daNpcT_cFPiPi */ -// void daNpcT_c::changeBtk(int* param_0, int* param_1) { -extern "C" void changeBtk__8daNpcT_cFPiPi() { - /* empty function */ -} - -/* 80B24728-80B24744 0061C8 001C+00 6/6 0/0 0/0 .text cLib_calcTimer__FPi */ -extern "C" void func_80B24728(void* _this, int* param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B2582C-80B25838 000BE4 000C+00 2/2 0/0 0/0 .data __vt__18daNpc_Toby_Param_c */ -SECTION_DATA extern void* __vt__18daNpc_Toby_Param_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__18daNpc_Toby_Param_cFv, -}; - -/* 80B24744-80B24840 0061E4 00FC+00 0/0 1/0 0/0 .text __sinit_d_a_npc_toby_cpp */ -void __sinit_d_a_npc_toby_cpp() { - // NONMATCHING -} - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x80B24744, __sinit_d_a_npc_toby_cpp); -#pragma pop - -/* 80B24840-80B24920 0062E0 00E0+00 1/1 0/0 0/0 .text - * __ct__12daNpc_Toby_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc - */ -daNpc_Toby_c::daNpc_Toby_c(daNpcT_faceMotionAnmData_c const* param_0, - daNpcT_motionAnmData_c const* param_1, - daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_2, - int param_3, - daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_4, - int param_5, daNpcT_evtData_c const* param_6, char** param_7) { - // NONMATCHING -} - -/* 80B24920-80B24928 0063C0 0008+00 1/0 0/0 0/0 .text getEyeballMaterialNo__12daNpc_Toby_cFv */ -u16 daNpc_Toby_c::getEyeballMaterialNo() { - return 2; -} - -/* 80B24928-80B24930 0063C8 0008+00 1/0 0/0 0/0 .text getHeadJointNo__12daNpc_Toby_cFv */ -s32 daNpc_Toby_c::getHeadJointNo() { - return 4; -} - -/* 80B24930-80B24938 0063D0 0008+00 1/0 0/0 0/0 .text getNeckJointNo__12daNpc_Toby_cFv */ -s32 daNpc_Toby_c::getNeckJointNo() { - return 3; -} - -/* 80B24938-80B24940 0063D8 0008+00 1/0 0/0 0/0 .text getBackboneJointNo__12daNpc_Toby_cFv */ -bool daNpc_Toby_c::getBackboneJointNo() { - return true; -} - -/* 80B24940-80B24950 0063E0 0010+00 1/0 0/0 0/0 .text checkChangeJoint__12daNpc_Toby_cFi - */ -void daNpc_Toby_c::checkChangeJoint(int param_0) { - // NONMATCHING -} - -/* 80B24950-80B24960 0063F0 0010+00 1/0 0/0 0/0 .text checkRemoveJoint__12daNpc_Toby_cFi - */ -void daNpc_Toby_c::checkRemoveJoint(int param_0) { - // NONMATCHING -} - -/* 80B24960-80B24968 006400 0008+00 1/0 0/0 0/0 .text getFootLJointNo__12daNpc_Toby_cFv - */ -s32 daNpc_Toby_c::getFootLJointNo() { - return 24; -} - -/* 80B24968-80B24970 006408 0008+00 1/0 0/0 0/0 .text getFootRJointNo__12daNpc_Toby_cFv - */ -s32 daNpc_Toby_c::getFootRJointNo() { - return 27; -} - -/* 80B24970-80B24978 006410 0008+00 1/0 0/0 0/0 .text chkXYItems__12daNpc_Toby_cFv */ -bool daNpc_Toby_c::chkXYItems() { - return true; -} - -/* 80B24978-80B249C0 006418 0048+00 2/1 0/0 0/0 .text __dt__18daNpc_Toby_Param_cFv */ -daNpc_Toby_Param_c::~daNpc_Toby_Param_c() { - // NONMATCHING -} - -/* 80B249C0-80B249C8 006460 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */ -static void func_80B249C0() { - // NONMATCHING -} - -/* 80B249C8-80B249D0 006468 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */ -static void func_80B249C8() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B258AC-80B258B0 000074 0004+00 0/0 0/0 0/0 .bss - * sInstance__40JASGlobalInstance<19JASDefaultBankTable> */ -#pragma push -#pragma force_active on -static u8 data_80B258AC[4]; -#pragma pop - -/* 80B258B0-80B258B4 000078 0004+00 0/0 0/0 0/0 .bss - * sInstance__35JASGlobalInstance<14JASAudioThread> */ -#pragma push -#pragma force_active on -static u8 data_80B258B0[4]; -#pragma pop - -/* 80B258B4-80B258B8 00007C 0004+00 0/0 0/0 0/0 .bss sInstance__27JASGlobalInstance<7Z2SeMgr> */ -#pragma push -#pragma force_active on -static u8 data_80B258B4[4]; -#pragma pop - -/* 80B258B8-80B258BC 000080 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8Z2SeqMgr> */ -#pragma push -#pragma force_active on -static u8 data_80B258B8[4]; -#pragma pop - -/* 80B258BC-80B258C0 000084 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SceneMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80B258BC[4]; -#pragma pop - -/* 80B258C0-80B258C4 000088 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2StatusMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80B258C0[4]; -#pragma pop - -/* 80B258C4-80B258C8 00008C 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2DebugSys> - */ -#pragma push -#pragma force_active on -static u8 data_80B258C4[4]; -#pragma pop - -/* 80B258C8-80B258CC 000090 0004+00 0/0 0/0 0/0 .bss - * sInstance__36JASGlobalInstance<15JAISoundStarter> */ -#pragma push -#pragma force_active on -static u8 data_80B258C8[4]; -#pragma pop - -/* 80B258CC-80B258D0 000094 0004+00 0/0 0/0 0/0 .bss - * sInstance__35JASGlobalInstance<14Z2SoundStarter> */ -#pragma push -#pragma force_active on -static u8 data_80B258CC[4]; -#pragma pop - -/* 80B258D0-80B258D4 000098 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12Z2SpeechMgr2> */ -#pragma push -#pragma force_active on -static u8 data_80B258D0[4]; -#pragma pop - -/* 80B258D4-80B258D8 00009C 0004+00 0/0 0/0 0/0 .bss sInstance__28JASGlobalInstance<8JAISeMgr> */ -#pragma push -#pragma force_active on -static u8 data_80B258D4[4]; -#pragma pop - -/* 80B258D8-80B258DC 0000A0 0004+00 0/0 0/0 0/0 .bss sInstance__29JASGlobalInstance<9JAISeqMgr> */ -#pragma push -#pragma force_active on -static u8 data_80B258D8[4]; -#pragma pop - -/* 80B258DC-80B258E0 0000A4 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAIStreamMgr> */ -#pragma push -#pragma force_active on -static u8 data_80B258DC[4]; -#pragma pop - -/* 80B258E0-80B258E4 0000A8 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2SoundMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80B258E0[4]; -#pragma pop - -/* 80B258E4-80B258E8 0000AC 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAISoundInfo> */ -#pragma push -#pragma force_active on -static u8 data_80B258E4[4]; -#pragma pop - -/* 80B258E8-80B258EC 0000B0 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13JAUSoundTable> */ -#pragma push -#pragma force_active on -static u8 data_80B258E8[4]; -#pragma pop - -/* 80B258EC-80B258F0 0000B4 0004+00 0/0 0/0 0/0 .bss - * sInstance__38JASGlobalInstance<17JAUSoundNameTable> */ -#pragma push -#pragma force_active on -static u8 data_80B258EC[4]; -#pragma pop - -/* 80B258F0-80B258F4 0000B8 0004+00 0/0 0/0 0/0 .bss - * sInstance__33JASGlobalInstance<12JAUSoundInfo> */ -#pragma push -#pragma force_active on -static u8 data_80B258F0[4]; -#pragma pop - -/* 80B258F4-80B258F8 0000BC 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SoundInfo> - */ -#pragma push -#pragma force_active on -static u8 data_80B258F4[4]; -#pragma pop - -/* 80B258F8-80B258FC 0000C0 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13Z2SoundObjMgr> */ -#pragma push -#pragma force_active on -static u8 data_80B258F8[4]; -#pragma pop - -/* 80B258FC-80B25900 0000C4 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2Audience> - */ -#pragma push -#pragma force_active on -static u8 data_80B258FC[4]; -#pragma pop - -/* 80B25900-80B25904 0000C8 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2FxLineMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80B25900[4]; -#pragma pop - -/* 80B25904-80B25908 0000CC 0004+00 0/0 0/0 0/0 .bss sInstance__31JASGlobalInstance<10Z2EnvSeMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80B25904[4]; -#pragma pop - -/* 80B25908-80B2590C 0000D0 0004+00 0/0 0/0 0/0 .bss sInstance__32JASGlobalInstance<11Z2SpeechMgr> - */ -#pragma push -#pragma force_active on -static u8 data_80B25908[4]; -#pragma pop - -/* 80B2590C-80B25910 0000D4 0004+00 0/0 0/0 0/0 .bss - * sInstance__34JASGlobalInstance<13Z2WolfHowlMgr> */ -#pragma push -#pragma force_active on -static u8 data_80B2590C[4]; -#pragma pop - -/* 80B24B8C-80B24B8C 0001A8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ +AUDIO_INSTANCES; diff --git a/src/d/actor/d_a_npc_ykm.cpp b/src/d/actor/d_a_npc_ykm.cpp index fd70ab5f763..c0b9d59d9c7 100644 --- a/src/d/actor/d_a_npc_ykm.cpp +++ b/src/d/actor/d_a_npc_ykm.cpp @@ -3426,7 +3426,7 @@ BOOL daNpc_ykM_c::race(void* param_1) { int idx; while (true) { if (mPath.chkPassed1(current.pos, mPath.getNumPnts())) { - if (mPath.getArg0() == 0) { + if (u8(mPath.getArg0()) == 0) { mSound.startCreatureSound(Z2SE_YM_SNOBO_JUMP, 0, -1); mSound.startCreatureVoice(Z2SE_YM_V_SNOBO_JUMP, -1); field_0x157e = 1; diff --git a/src/d/actor/d_a_npc_ykw.cpp b/src/d/actor/d_a_npc_ykw.cpp index 9c7b58c5918..312aecd198a 100644 --- a/src/d/actor/d_a_npc_ykw.cpp +++ b/src/d/actor/d_a_npc_ykw.cpp @@ -2879,7 +2879,7 @@ int daNpc_ykW_c::race(void* param_0) { if (field_0x106e == 0) { while (true) { if (mPath.chkPassed1(current.pos, mPath.getNumPnts())) { - if (mPath.getArg0() == 0) { + if (u8(mPath.getArg0()) == 0) { mSound.startCreatureSound(Z2SE_YW_SNOBO_JUMP, 0, -1); mSound.startCreatureVoice(Z2SE_YW_V_SNOBO_JUMP, -1); field_0x106e = 1; diff --git a/src/d/actor/d_a_obj_automata.cpp b/src/d/actor/d_a_obj_automata.cpp index 95a95896623..7a3c1a3c503 100644 --- a/src/d/actor/d_a_obj_automata.cpp +++ b/src/d/actor/d_a_obj_automata.cpp @@ -148,7 +148,7 @@ int daObj_AutoMata_c::Execute() { mAnmPlaySpeed = 0.0f; setSe(); setMtx(); - if (field_0xb31 == 0) { + if (mCoNone == 0) { cStack_28.set(0.0f, 40.0f, 0.0f); mDoMtx_stack_c::copy(mpMorf->getModel()->getAnmMtx(3)); mDoMtx_stack_c::multVec(&cStack_28, &sphCenter); @@ -164,7 +164,7 @@ int daObj_AutoMata_c::Execute() { mCyl.ClrCoHit(); attention_info.flags = 0; eyePos = attention_info.position = current.pos; - field_0xb31 = 0; + mCoNone = 0; return 1; } return 0;