From 4f976cba4dbcfb73ae84f48a6aae72b66c847fad Mon Sep 17 00:00:00 2001 From: YunataSavior <58997725+YunataSavior@users.noreply.github.com> Date: Sun, 6 Jul 2025 03:07:33 -0700 Subject: [PATCH] d_a_npc_besu equivalent (#2510) * beautify_anm_data v2.0 * d_a_npc_besu 50% done * d_a_npc_besu 70% done * d_a_npc_besu until wait + indent fix * d_a_npc_besu equivalent! * Mark d_a_npc_besu as equiv in configure py --- configure.py | 2 +- .../JSystem/J3DGraphAnimator/J3DModelData.h | 6 + include/d/actor/d_a_npc_besu.h | 159 +- src/d/actor/d_a_npc_besu.cpp | 4072 +++++++++-------- tools/utilities/beautify_anm_data.py | 13 + 5 files changed, 2403 insertions(+), 1849 deletions(-) diff --git a/configure.py b/configure.py index 37efba7670..e2ece9d017 100755 --- a/configure.py +++ b/configure.py @@ -1551,7 +1551,7 @@ config.libs = [ ActorRel(MatchingFor("GZ2E01"), "d_a_kytag11"), ActorRel(MatchingFor("GZ2E01"), "d_a_kytag14"), ActorRel(MatchingFor("GZ2E01"), "d_a_mg_fish"), - ActorRel(NonMatching, "d_a_npc_besu"), + ActorRel(Equivalent, "d_a_npc_besu"), # weak func order ActorRel(Equivalent, "d_a_npc_fairy_seirei"), ActorRel(MatchingFor("GZ2E01"), "d_a_npc_fish"), ActorRel(Equivalent, "d_a_npc_henna"), # weak func order diff --git a/include/JSystem/J3DGraphAnimator/J3DModelData.h b/include/JSystem/J3DGraphAnimator/J3DModelData.h index fd613ce616..f6a57b7030 100644 --- a/include/JSystem/J3DGraphAnimator/J3DModelData.h +++ b/include/JSystem/J3DGraphAnimator/J3DModelData.h @@ -95,6 +95,12 @@ public: mJointTree.makeHierarchy(joint, hierarchy, &mMaterialTable, &mShapeTable); mShapeTable.initShapeNodes(getDrawMtxData(), &getVertexData()); } + void show() { + mShapeTable.show(); + } + void hide() { + mShapeTable.hide(); + } private: friend class J3DModelLoader; diff --git a/include/d/actor/d_a_npc_besu.h b/include/d/actor/d_a_npc_besu.h index adee5c98a4..f77a8b4518 100644 --- a/include/d/actor/d_a_npc_besu.h +++ b/include/d/actor/d_a_npc_besu.h @@ -1,6 +1,9 @@ #ifndef D_A_NPC_BESU_H #define D_A_NPC_BESU_H +#if DEBUG +#include "SSystem/SComponent/c_counter.h" +#endif #include "d/actor/d_a_npc.h" /** @@ -11,80 +14,128 @@ * @details * */ -class daNpc_Besu_c : public fopAc_ac_c { +class daNpc_Besu_c : public daNpcT_c { public: + typedef int (daNpc_Besu_c::*cutFunc)(int); + typedef int (daNpc_Besu_c::*actionFunc)(void*); + /* 80536E4C */ ~daNpc_Besu_c(); - /* 8053701C */ void create(); - /* 805372FC */ void CreateHeap(); - /* 80537914 */ void Delete(); - /* 80537948 */ void Execute(); - /* 80537968 */ void Draw(); - /* 805379FC */ void createHeapCallBack(fopAc_ac_c*); - /* 80537A1C */ void ctrlJointCallBack(J3DJoint*, int); - /* 80537A74 */ void getType(); - /* 80537B34 */ void isDelete(); + /* 8053701C */ int create(); + /* 805372FC */ int CreateHeap(); + /* 80537914 */ int Delete(); + /* 80537948 */ int Execute(); + /* 80537968 */ int Draw(); + /* 805379FC */ static int createHeapCallBack(fopAc_ac_c*); + /* 80537A1C */ static int ctrlJointCallBack(J3DJoint*, int); + /* 80537A74 */ u8 getType(); + /* 80537B34 */ BOOL isDelete(); /* 80537DE4 */ void reset(); - /* 80537FD0 */ void chkNurse(); - /* 80537FFC */ void chkBesu3(); + /* 80537FD0 */ BOOL chkNurse(); + /* 80537FFC */ BOOL chkBesu3(); /* 80538028 */ void afterJntAnm(int); /* 805380A4 */ void setParam(); - /* 805382D0 */ void checkChangeEvt(); + /* 805382D0 */ BOOL checkChangeEvt(); /* 80538490 */ void setAfterTalkMotion(); /* 8053853C */ void srchActors(); - /* 805387D0 */ void evtTalk(); - /* 80538870 */ void evtCutProc(); + /* 805387D0 */ BOOL evtTalk(); + /* 80538870 */ BOOL evtCutProc(); /* 80538938 */ void action(); /* 80538B54 */ void beforeMove(); /* 80538C18 */ void setAttnPos(); /* 805391B8 */ void setCollision(); - /* 80539494 */ bool drawDbgInfo(); + /* 80539494 */ int drawDbgInfo(); /* 8053949C */ void drawOtherMdl(); - /* 805395F4 */ void setCupAnm(int, int, f32); - /* 805396C4 */ void afterSetMotionAnm(int, int, f32, int); - /* 805396F8 */ void getFaceMotionAnm(daNpcT_faceMotionAnmData_c); + /* 805395F4 */ int setCupAnm(int, int, f32); + /* 805396C4 */ bool afterSetMotionAnm(int, int, f32, int); + /* 805396F8 */ daNpcT_faceMotionAnmData_c getFaceMotionAnm(daNpcT_faceMotionAnmData_c); /* 805397B0 */ void changeAnm(int*, int*); /* 80539840 */ void changeBck(int*, int*); /* 805398DC */ void changeBtp(int*, int*); /* 80539968 */ void changeBtk(int*, int*); - /* 80539994 */ void selectAction(); - /* 80539ACC */ void chkAction(int (daNpc_Besu_c::*)(void*)); - /* 80539AF8 */ void setAction(int (daNpc_Besu_c::*)(void*)); + /* 80539994 */ int selectAction(); + /* 80539ACC */ int chkAction(actionFunc); + /* 80539AF8 */ int setAction(actionFunc); /* 80539BA0 */ void mop(int, int); - /* 80539CF4 */ void cutConversationAboutSaru(int); - /* 80539E48 */ void cutConversationAboutPachinko(int); - /* 8053A45C */ void cutConversationAboutWoodSwd(int); - /* 8053A7A0 */ void cutSwdTutorial(int); - /* 8053AA6C */ void cutFindMonkey(int); - /* 8053AF5C */ void cutGetWoodSwd(int); - /* 8053B058 */ void cutCacaricoConversation(int); - /* 8053B250 */ void cutSurprise(int); - /* 8053B530 */ void cutConversationInHotel(int); - /* 8053B820 */ void cutConversationAboutDeathMt(int); - /* 8053BA60 */ void cutConversationAboutGoron(int); - /* 8053BD18 */ void cutNurse(int); - /* 8053BE84 */ void cutClothTry(int); - /* 8053BF60 */ void cutThankYou(int); - /* 8053C08C */ void wait(void*); - /* 8053CAA0 */ void swdTutorial(void*); - /* 8053CBB8 */ void nurse(void*); - /* 8053CF78 */ void giveHotWater(void*); - /* 8053D078 */ void talk(void*); - /* 8053E588 */ daNpc_Besu_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**); - /* 8053E6A8 */ s32 getEyeballMaterialNo(); - /* 8053E6B0 */ s32 getHeadJointNo(); - /* 8053E6B8 */ s32 getNeckJointNo(); - /* 8053E6C0 */ bool getBackboneJointNo(); - /* 8053E6C8 */ void checkChangeJoint(int); - /* 8053E6D8 */ void checkRemoveJoint(int); + /* 80539CF4 */ int cutConversationAboutSaru(int); + /* 80539E48 */ int cutConversationAboutPachinko(int); + /* 8053A45C */ int cutConversationAboutWoodSwd(int); + /* 8053A7A0 */ int cutSwdTutorial(int); + /* 8053AA6C */ int cutFindMonkey(int); + /* 8053AF5C */ int cutGetWoodSwd(int); + /* 8053B058 */ int cutCacaricoConversation(int); + /* 8053B250 */ int cutSurprise(int); + /* 8053B530 */ int cutConversationInHotel(int); + /* 8053B820 */ int cutConversationAboutDeathMt(int); + /* 8053BA60 */ int cutConversationAboutGoron(int); + /* 8053BD18 */ int cutNurse(int); + /* 8053BE84 */ int cutClothTry(int); + /* 8053BF60 */ int cutThankYou(int); + /* 8053C08C */ int wait(void*); + /* 8053CAA0 */ int swdTutorial(void*); + /* 8053CBB8 */ int nurse(void*); + /* 8053CF78 */ int giveHotWater(void*); + /* 8053D078 */ int talk(void*); + /* 8053E588 */ daNpc_Besu_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) { + // "construct" + OS_REPORT("|%06d:%x|daNpc_Besu_c -> コンストラクト\n", g_Counter.mCounter0, this); + } + /* 8053E6A8 */ s32 getEyeballMaterialNo() { return 2; } + /* 8053E6B0 */ s32 getHeadJointNo() { return 4; } + /* 8053E6B8 */ s32 getNeckJointNo() { return 3; } + /* 8053E6C0 */ s32 getBackboneJointNo() { return true; } + /* 8053E6C8 */ BOOL checkChangeJoint(int arg0) { return arg0 == 4; } + /* 8053E6D8 */ BOOL checkRemoveJoint(int arg0) { return arg0 == 6; } + + u32 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[15]; - static u8 mCutList[180]; + static cutFunc mCutList[15]; private: - /* 0x568 */ u8 field_0x568[0x1138 - 0x568]; + /* 0x0E40 */ mDoExt_McaMorfSO* mpBesuMorf; + /* 0x0E44 */ u8 field_0xe44[0x0E48 - 0xE44]; + /* 0x0E48 */ J3DModel* mpModel[1]; + /* 0x0E4C */ dCcD_Cyl mCyl1; + /* 0x0F88 */ dCcD_Cyl mCyl2; + /* 0x10C4 */ u8 mType; + /* 0x10C8 */ daNpcT_ActorMngr_c mActorMngr[7]; + /* 0x1100 */ actionFunc mNextAction; + /* 0x110C */ actionFunc mAction; + /* 0x1118 */ int field_0x1118; + /* 0x111C */ int field_0x111c; + /* 0x1120 */ int field_0x1120; + /* 0x1124 */ int field_0x1124; + /* 0x1128 */ int field_0x1128; + /* 0x112C */ u8 field_0x112c; + /* 0x112D */ u8 field_0x112d; + /* 0x112E */ u8 field_0x112e; + /* 0x112F */ u8 field_0x112f; + /* 0x1130 */ u8 field_0x1130; + /* 0x1131 */ u8 field_0x1131[0x1134 - 0x1131]; + /* 0x1134 */ u8 field_0x1134; }; STATIC_ASSERT(sizeof(daNpc_Besu_c) == 0x1138); @@ -96,7 +147,7 @@ struct daNpc_Besu_HIOParam { class daNpc_Besu_Param_c { public: - /* 8053E6E8 */ ~daNpc_Besu_Param_c(); + /* 8053E6E8 */ virtual ~daNpc_Besu_Param_c() {} static const daNpc_Besu_HIOParam m; }; diff --git a/src/d/actor/d_a_npc_besu.cpp b/src/d/actor/d_a_npc_besu.cpp index 256de1bcac..854827390a 100644 --- a/src/d/actor/d_a_npc_besu.cpp +++ b/src/d/actor/d_a_npc_besu.cpp @@ -4,375 +4,25 @@ */ #include "d/actor/d_a_npc_besu.h" -#include "dol2asm.h" +#include "d/actor/d_a_npc_len.h" +#include "d/actor/d_a_tag_push.h" +#include "d/d_com_static.h" +#include "d/d_item.h" -// -// Forward References: -// +#ifndef DEBUG +UNK_REL_DATA; +#endif -extern "C" void __dt__12daNpc_Besu_cFv(); -extern "C" void create__12daNpc_Besu_cFv(); -extern "C" void CreateHeap__12daNpc_Besu_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_Besu_cFv(); -extern "C" void Execute__12daNpc_Besu_cFv(); -extern "C" void Draw__12daNpc_Besu_cFv(); -extern "C" void createHeapCallBack__12daNpc_Besu_cFP10fopAc_ac_c(); -extern "C" void ctrlJointCallBack__12daNpc_Besu_cFP8J3DJointi(); -extern "C" void getType__12daNpc_Besu_cFv(); -extern "C" void isDelete__12daNpc_Besu_cFv(); -extern "C" void reset__12daNpc_Besu_cFv(); -extern "C" void chkNurse__12daNpc_Besu_cFv(); -extern "C" void chkBesu3__12daNpc_Besu_cFv(); -extern "C" void afterJntAnm__12daNpc_Besu_cFi(); -extern "C" void setParam__12daNpc_Besu_cFv(); -extern "C" void checkChangeEvt__12daNpc_Besu_cFv(); -extern "C" void setAfterTalkMotion__12daNpc_Besu_cFv(); -extern "C" void srchActors__12daNpc_Besu_cFv(); -extern "C" void evtTalk__12daNpc_Besu_cFv(); -extern "C" void evtCutProc__12daNpc_Besu_cFv(); -extern "C" void action__12daNpc_Besu_cFv(); -extern "C" void beforeMove__12daNpc_Besu_cFv(); -extern "C" void setAttnPos__12daNpc_Besu_cFv(); -extern "C" void setCollision__12daNpc_Besu_cFv(); -extern "C" bool drawDbgInfo__12daNpc_Besu_cFv(); -extern "C" void drawOtherMdl__12daNpc_Besu_cFv(); -extern "C" void setCupAnm__12daNpc_Besu_cFiif(); -extern "C" void afterSetMotionAnm__12daNpc_Besu_cFiifi(); -extern "C" void getFaceMotionAnm__12daNpc_Besu_cF26daNpcT_faceMotionAnmData_c(); -extern "C" void changeAnm__12daNpc_Besu_cFPiPi(); -extern "C" void changeBck__12daNpc_Besu_cFPiPi(); -extern "C" void changeBtp__12daNpc_Besu_cFPiPi(); -extern "C" void changeBtk__12daNpc_Besu_cFPiPi(); -extern "C" void selectAction__12daNpc_Besu_cFv(); -extern "C" void chkAction__12daNpc_Besu_cFM12daNpc_Besu_cFPCvPvPv_i(); -extern "C" void setAction__12daNpc_Besu_cFM12daNpc_Besu_cFPCvPvPv_i(); -extern "C" void mop__12daNpc_Besu_cFii(); -extern "C" void cutConversationAboutSaru__12daNpc_Besu_cFi(); -extern "C" void cutConversationAboutPachinko__12daNpc_Besu_cFi(); -extern "C" void cutConversationAboutWoodSwd__12daNpc_Besu_cFi(); -extern "C" void cutSwdTutorial__12daNpc_Besu_cFi(); -extern "C" void cutFindMonkey__12daNpc_Besu_cFi(); -extern "C" void cutGetWoodSwd__12daNpc_Besu_cFi(); -extern "C" void cutCacaricoConversation__12daNpc_Besu_cFi(); -extern "C" void cutSurprise__12daNpc_Besu_cFi(); -extern "C" void cutConversationInHotel__12daNpc_Besu_cFi(); -extern "C" void cutConversationAboutDeathMt__12daNpc_Besu_cFi(); -extern "C" void cutConversationAboutGoron__12daNpc_Besu_cFi(); -extern "C" void cutNurse__12daNpc_Besu_cFi(); -extern "C" void cutClothTry__12daNpc_Besu_cFi(); -extern "C" void cutThankYou__12daNpc_Besu_cFi(); -extern "C" void wait__12daNpc_Besu_cFPv(); -extern "C" void swdTutorial__12daNpc_Besu_cFPv(); -extern "C" void nurse__12daNpc_Besu_cFPv(); -extern "C" void giveHotWater__12daNpc_Besu_cFPv(); -extern "C" void talk__12daNpc_Besu_cFPv(); -extern "C" static void daNpc_Besu_Create__FPv(); -extern "C" static void daNpc_Besu_Delete__FPv(); -extern "C" static void daNpc_Besu_Execute__FPv(); -extern "C" static void daNpc_Besu_Draw__FPv(); -extern "C" static bool daNpc_Besu_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 __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" s32 getFootLJointNo__8daNpcT_cFv(); -extern "C" s32 getFootRJointNo__8daNpcT_cFv(); -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" bool chkXYItems__8daNpcT_cFv(); -extern "C" void decTmr__8daNpcT_cFv(); -extern "C" void drawGhost__8daNpcT_cFv(); -extern "C" bool afterSetFaceMotionAnm__8daNpcT_cFiifi(); -extern "C" void getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c(); -extern "C" void func_8053E334(void* _this, int*); -extern "C" void func_8053E350(void* _this, int, int); -extern "C" void __sinit_d_a_npc_besu_cpp(); -extern "C" void -__ct__12daNpc_Besu_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc(); -extern "C" s32 getEyeballMaterialNo__12daNpc_Besu_cFv(); -extern "C" s32 getHeadJointNo__12daNpc_Besu_cFv(); -extern "C" s32 getNeckJointNo__12daNpc_Besu_cFv(); -extern "C" bool getBackboneJointNo__12daNpc_Besu_cFv(); -extern "C" void checkChangeJoint__12daNpc_Besu_cFi(); -extern "C" void checkRemoveJoint__12daNpc_Besu_cFi(); -extern "C" void __dt__18daNpc_Besu_Param_cFv(); -extern "C" static void func_8053E730(); -extern "C" static void func_8053E738(); -extern "C" u8 const m__18daNpc_Besu_Param_c[144]; -extern "C" extern char const* const d_a_npc_besu__stringBase0; -extern "C" void* mCutNameList__12daNpc_Besu_c[15]; -extern "C" u8 mCutList__12daNpc_Besu_c[180]; - -// -// 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 setAnm__16mDoExt_McaMorfSOFP15J3DAnmTransformiffff(); -extern "C" void play__16mDoExt_McaMorfSOFUlSc(); -extern "C" void entryDL__16mDoExt_McaMorfSOFv(); -extern "C" void modelCalc__16mDoExt_McaMorfSOFv(); -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 fopAc_IsActor__FPv(); -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 dStage_changeScene__FifUlScsi(); -extern "C" void dComIfGs_wolfeye_effect_check__Fv(); -extern "C" void daNpcKakashi_chkSwdTutorialStage__Fv(); -extern "C" void onEventBit__11dSv_event_cFUs(); -extern "C" void offEventBit__11dSv_event_cFUs(); -extern "C" void getEventReg__11dSv_event_cCFUs(); -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 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 getRunEventName__16dEvent_manager_cFv(); -extern "C" void ChkPresentEnd__16dEvent_manager_cFv(); -extern "C" void addReal__21dDlst_shadowControl_cFUlP8J3DModel(); -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 checkItemGet__FUci(); -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__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 getTrnsfrmKeyAnmP__8daNpcT_cFPCci(); -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 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 getNearestActorP__8daNpcT_cFs(); -extern "C" void daNpcT_getPlayerInfoFromPlayerList__FiiP4cXyzP5csXyz(); -extern "C" void daNpcT_getDistTableIdx__Fii(); -extern "C" void daNpcT_chkEvtBit__FUl(); -extern "C" void daNpcT_offTmpBit__FUl(); -extern "C" void daNpcT_chkTmpBit__FUl(); -extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c(); -extern "C" void dKy_darkworld_check__Fv(); -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 __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_chaseF__FPfff(); -extern "C" void cLib_targetAngleY__FPC3VecPC3Vec(); -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 hide__13J3DShapeTableFv(); -extern "C" void show__13J3DShapeTableFv(); -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_23(); -extern "C" void _savegpr_24(); -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_23(); -extern "C" void _restgpr_24(); -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" void __register_global_object(); -extern "C" void checkStartDemo13StbEvt__11daNpc_Len_cFP10fopAc_ac_cfffffff(); - -// -// Declarations: -// - -/* ############################################################################################## */ -/* 8053E908-8053E908 0001B4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8053E908 = ""; -SECTION_DEAD static char const* const stringBase_8053E909 = "NO_RESPONSE"; -SECTION_DEAD static char const* const stringBase_8053E915 = "CONVERSATION_ABOUT_SARU01"; -SECTION_DEAD static char const* const stringBase_8053E92F = "CONVERSATION_ABOUT_SARU02"; -SECTION_DEAD static char const* const stringBase_8053E949 = "CONVERSATION_ABOUT_PACHINKO1"; -SECTION_DEAD static char const* const stringBase_8053E966 = "CONVERSATION_ABOUT_PACHINKO2"; -SECTION_DEAD static char const* const stringBase_8053E983 = "CONVERSATION_ABOUT_PACHINKO3"; -SECTION_DEAD static char const* const stringBase_8053E9A0 = "CACARICO_CONVERSATION"; -SECTION_DEAD static char const* const stringBase_8053E9B6 = "DEMO13_STB"; -SECTION_DEAD static char const* const stringBase_8053E9C1 = "SURPRISE"; -SECTION_DEAD static char const* const stringBase_8053E9CA = "CONVERSATION_ABOUT_DEATHMT"; -SECTION_DEAD static char const* const stringBase_8053E9E5 = "NURSE"; -SECTION_DEAD static char const* const stringBase_8053E9EB = "CONVERSATION_ABOUT_ZORA"; -SECTION_DEAD static char const* const stringBase_8053EA03 = "Besu"; -SECTION_DEAD static char const* const stringBase_8053EA08 = "Besu_TW"; -SECTION_DEAD static char const* const stringBase_8053EA10 = "Besu0"; -SECTION_DEAD static char const* const stringBase_8053EA16 = "Besu1"; -SECTION_DEAD static char const* const stringBase_8053EA1C = "Besu2"; -SECTION_DEAD static char const* const stringBase_8053EA22 = "Besu3"; -SECTION_DEAD static char const* const stringBase_8053EA28 = "Besu_p1"; -SECTION_DEAD static char const* const stringBase_8053EA30 = "Len1"; -SECTION_DEAD static char const* const stringBase_8053EA35 = "Taro1"; -SECTION_DEAD static char const* const stringBase_8053EA3B = "Lud2"; -SECTION_DEAD static char const* const stringBase_8053EA40 = "Sera"; -SECTION_DEAD static char const* const stringBase_8053EA45 = "CONVERSATION_ABOUT_SARU"; -SECTION_DEAD static char const* const stringBase_8053EA5D = "CONVERSATION_ABOUT_PACHINKO"; -SECTION_DEAD static char const* const stringBase_8053EA79 = "CONVERSATION_ABOUT_WOODSWD"; -SECTION_DEAD static char const* const stringBase_8053EA94 = "SWDTUTORIAL"; -SECTION_DEAD static char const* const stringBase_8053EAA0 = "FIND_MONKEY"; -SECTION_DEAD static char const* const stringBase_8053EAAC = "GET_WOODSWD"; -SECTION_DEAD static char const* const stringBase_8053EAB8 = "CONVERSATION_IN_HOTEL"; -SECTION_DEAD static char const* const stringBase_8053EACE = "CONVERSATION_ABOUT_GORON"; -SECTION_DEAD static char const* const stringBase_8053EAE7 = "CLOTH_TRY"; -SECTION_DEAD static char const* const stringBase_8053EAF1 = "THANK_YOU"; -#pragma pop - -/* 8053EB5C-8053EB68 000000 000C+00 3/3 0/0 0/0 .data cNullVec__6Z2Calc */ -SECTION_DATA static u8 cNullVec__6Z2Calc[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 8053EB68-8053EB7C 00000C 0004+10 0/0 0/0 0/0 .data @1787 */ -#pragma push -#pragma force_active on -SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = { - 0x02000201, - /* padding */ - 0x40080000, - 0x00000000, - 0x3FE00000, - 0x00000000, -}; -#pragma pop /* 8053EB7C-8053EBAC 000020 0030+00 1/1 0/0 0/0 .data l_bmdData */ -SECTION_DATA static u8 l_bmdData[48] = { - 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x02, - 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x00, 0x05, - 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x26, 0x00, 0x00, 0x00, 0x05, +static int l_bmdData[6][2] = { + {3, 1}, + {11, 2}, + {37, 5}, + {39, 5}, + {14, 6}, + {38, 5}, }; /* 8053EBAC-8053EC14 -00001 0068+00 0/1 0/0 0/0 .data l_evtList */ @@ -409,67 +59,45 @@ static char* l_resNameList[12] = { }; /* 8053EC44-8053EC48 0000E8 0004+00 1/0 0/0 0/0 .data l_loadResPtrn0 */ -SECTION_DATA static u32 l_loadResPtrn0 = 0x010304FF; +static s8 l_loadResPtrn0[4] = { + 1, 3, 4, -1 +}; /* 8053EC48-8053EC4C 0000EC 0003+01 1/0 0/0 0/0 .data l_loadResPtrn1 */ -SECTION_DATA static u8 l_loadResPtrn1[3 + 1 /* padding */] = { - 0x03, - 0x02, - 0xFF, - /* padding */ - 0x00, +static s8 l_loadResPtrn1[3] = { + 3, 2, -1, }; /* 8053EC4C-8053EC50 0000F0 0003+01 1/0 0/0 0/0 .data l_loadResPtrn2 */ -SECTION_DATA static u8 l_loadResPtrn2[3 + 1 /* padding */] = { - 0x03, - 0x05, - 0xFF, - /* padding */ - 0x00, +static s8 l_loadResPtrn2[3] = { + 3, 5, -1, }; /* 8053EC50-8053EC54 0000F4 0003+01 1/0 0/0 0/0 .data l_loadResPtrn3 */ -SECTION_DATA static u8 l_loadResPtrn3[3 + 1 /* padding */] = { - 0x03, - 0x06, - 0xFF, - /* padding */ - 0x00, +static s8 l_loadResPtrn3[3] = { + 3, 6, -1, }; /* 8053EC54-8053EC58 0000F8 0004+00 1/0 0/0 0/0 .data l_loadResPtrn4 */ -SECTION_DATA static u32 l_loadResPtrn4 = 0x030406FF; +static s8 l_loadResPtrn4[4] = {3, 4, 6, -1}; /* 8053EC58-8053EC5C 0000FC 0003+01 1/0 0/0 0/0 .data l_loadResPtrn5 */ -SECTION_DATA static u8 l_loadResPtrn5[3 + 1 /* padding */] = { - 0x01, - 0x07, - 0xFF, - /* padding */ - 0x00, +static s8 l_loadResPtrn5[3] = { + 1, 7, -1, }; /* 8053EC5C-8053EC64 000100 0007+01 1/0 0/0 0/0 .data l_loadResPtrn9 */ -SECTION_DATA static u8 l_loadResPtrn9[7 + 1 /* padding */] = { - 0x01, - 0x02, - 0x03, - 0x04, - 0x05, - 0x06, - 0xFF, - /* padding */ - 0x00, +static s8 l_loadResPtrn9[7] = { + 1, 2, 3, 4, 5, 6, -1, }; /* 8053EC64-8053ECB0 -00001 004C+00 1/2 0/0 0/0 .data l_loadResPtrnList */ -SECTION_DATA static void* l_loadResPtrnList[19] = { - (void*)&l_loadResPtrn0, (void*)&l_loadResPtrn0, (void*)&l_loadResPtrn1, (void*)&l_loadResPtrn4, - (void*)&l_loadResPtrn0, (void*)&l_loadResPtrn3, (void*)&l_loadResPtrn2, (void*)&l_loadResPtrn2, - (void*)&l_loadResPtrn2, (void*)&l_loadResPtrn0, (void*)&l_loadResPtrn0, (void*)&l_loadResPtrn0, - (void*)&l_loadResPtrn0, (void*)&l_loadResPtrn0, (void*)&l_loadResPtrn0, (void*)&l_loadResPtrn4, - (void*)&l_loadResPtrn0, (void*)&l_loadResPtrn5, (void*)&l_loadResPtrn9, +static s8* l_loadResPtrnList[19] = { + l_loadResPtrn0, l_loadResPtrn0, l_loadResPtrn1, l_loadResPtrn4, + l_loadResPtrn0, l_loadResPtrn3, l_loadResPtrn2, l_loadResPtrn2, + l_loadResPtrn2, l_loadResPtrn0, l_loadResPtrn0, l_loadResPtrn0, + l_loadResPtrn0, l_loadResPtrn0, l_loadResPtrn0, l_loadResPtrn4, + l_loadResPtrn0, l_loadResPtrn5, l_loadResPtrn9, }; /* 8053ECB0-8053EFF8 000154 0348+00 0/1 0/0 0/0 .data l_faceMotionAnmData */ @@ -600,621 +228,44 @@ char* daNpc_Besu_c::mCutNameList[15] = { "THANK_YOU", }; -/* 8053F780-8053F78C -00001 000C+00 0/1 0/0 0/0 .data @3908 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3908[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cutConversationAboutSaru__12daNpc_Besu_cFi, -}; -#pragma pop - -/* 8053F78C-8053F798 -00001 000C+00 0/1 0/0 0/0 .data @3909 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3909[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cutConversationAboutPachinko__12daNpc_Besu_cFi, -}; -#pragma pop - -/* 8053F798-8053F7A4 -00001 000C+00 0/1 0/0 0/0 .data @3910 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3910[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cutConversationAboutWoodSwd__12daNpc_Besu_cFi, -}; -#pragma pop - -/* 8053F7A4-8053F7B0 -00001 000C+00 0/1 0/0 0/0 .data @3911 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3911[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cutSwdTutorial__12daNpc_Besu_cFi, -}; -#pragma pop - -/* 8053F7B0-8053F7BC -00001 000C+00 0/1 0/0 0/0 .data @3912 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3912[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cutFindMonkey__12daNpc_Besu_cFi, -}; -#pragma pop - -/* 8053F7BC-8053F7C8 -00001 000C+00 0/1 0/0 0/0 .data @3913 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3913[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cutGetWoodSwd__12daNpc_Besu_cFi, -}; -#pragma pop - -/* 8053F7C8-8053F7D4 -00001 000C+00 0/1 0/0 0/0 .data @3914 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3914[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cutCacaricoConversation__12daNpc_Besu_cFi, -}; -#pragma pop - -/* 8053F7D4-8053F7E0 -00001 000C+00 0/1 0/0 0/0 .data @3915 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3915[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cutSurprise__12daNpc_Besu_cFi, -}; -#pragma pop - -/* 8053F7E0-8053F7EC -00001 000C+00 0/1 0/0 0/0 .data @3916 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3916[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cutConversationInHotel__12daNpc_Besu_cFi, -}; -#pragma pop - -/* 8053F7EC-8053F7F8 -00001 000C+00 0/1 0/0 0/0 .data @3917 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3917[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cutConversationAboutDeathMt__12daNpc_Besu_cFi, -}; -#pragma pop - -/* 8053F7F8-8053F804 -00001 000C+00 0/1 0/0 0/0 .data @3918 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3918[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cutConversationAboutGoron__12daNpc_Besu_cFi, -}; -#pragma pop - -/* 8053F804-8053F810 -00001 000C+00 0/1 0/0 0/0 .data @3919 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3919[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cutNurse__12daNpc_Besu_cFi, -}; -#pragma pop - -/* 8053F810-8053F81C -00001 000C+00 0/1 0/0 0/0 .data @3920 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3920[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cutClothTry__12daNpc_Besu_cFi, -}; -#pragma pop - -/* 8053F81C-8053F828 -00001 000C+00 0/1 0/0 0/0 .data @3921 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3921[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)cutThankYou__12daNpc_Besu_cFi, -}; -#pragma pop - /* 8053F828-8053F8DC 000CCC 00B4+00 1/2 0/0 0/0 .data mCutList__12daNpc_Besu_c */ -SECTION_DATA u8 daNpc_Besu_c::mCutList[180] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 8053F8DC-8053F924 -00001 0048+00 1/1 0/0 0/0 .data @4621 */ -SECTION_DATA static void* lit_4621[18] = { - (void*)(((char*)getType__12daNpc_Besu_cFv) + 0x28), - (void*)(((char*)getType__12daNpc_Besu_cFv) + 0x30), - (void*)(((char*)getType__12daNpc_Besu_cFv) + 0x38), - (void*)(((char*)getType__12daNpc_Besu_cFv) + 0x40), - (void*)(((char*)getType__12daNpc_Besu_cFv) + 0x48), - (void*)(((char*)getType__12daNpc_Besu_cFv) + 0x50), - (void*)(((char*)getType__12daNpc_Besu_cFv) + 0x58), - (void*)(((char*)getType__12daNpc_Besu_cFv) + 0x60), - (void*)(((char*)getType__12daNpc_Besu_cFv) + 0x68), - (void*)(((char*)getType__12daNpc_Besu_cFv) + 0x70), - (void*)(((char*)getType__12daNpc_Besu_cFv) + 0x78), - (void*)(((char*)getType__12daNpc_Besu_cFv) + 0x80), - (void*)(((char*)getType__12daNpc_Besu_cFv) + 0x88), - (void*)(((char*)getType__12daNpc_Besu_cFv) + 0x90), - (void*)(((char*)getType__12daNpc_Besu_cFv) + 0x98), - (void*)(((char*)getType__12daNpc_Besu_cFv) + 0xA0), - (void*)(((char*)getType__12daNpc_Besu_cFv) + 0xA8), - (void*)(((char*)getType__12daNpc_Besu_cFv) + 0xB0), -}; - -/* 8053F924-8053F96C -00001 0048+00 1/1 0/0 0/0 .data @4668 */ -SECTION_DATA static void* lit_4668[18] = { - (void*)(((char*)isDelete__12daNpc_Besu_cFv) + 0x34), - (void*)(((char*)isDelete__12daNpc_Besu_cFv) + 0x64), - (void*)(((char*)isDelete__12daNpc_Besu_cFv) + 0x78), - (void*)(((char*)isDelete__12daNpc_Besu_cFv) + 0x80), - (void*)(((char*)isDelete__12daNpc_Besu_cFv) + 0xB0), - (void*)(((char*)isDelete__12daNpc_Besu_cFv) + 0xE0), - (void*)(((char*)isDelete__12daNpc_Besu_cFv) + 0x110), - (void*)(((char*)isDelete__12daNpc_Besu_cFv) + 0x140), - (void*)(((char*)isDelete__12daNpc_Besu_cFv) + 0x170), - (void*)(((char*)isDelete__12daNpc_Besu_cFv) + 0x1A0), - (void*)(((char*)isDelete__12daNpc_Besu_cFv) + 0x1A8), - (void*)(((char*)isDelete__12daNpc_Besu_cFv) + 0x1BC), - (void*)(((char*)isDelete__12daNpc_Besu_cFv) + 0x1C8), - (void*)(((char*)isDelete__12daNpc_Besu_cFv) + 0x1F8), - (void*)(((char*)isDelete__12daNpc_Besu_cFv) + 0x228), - (void*)(((char*)isDelete__12daNpc_Besu_cFv) + 0x230), - (void*)(((char*)isDelete__12daNpc_Besu_cFv) + 0x260), - (void*)(((char*)isDelete__12daNpc_Besu_cFv) + 0x290), -}; - -/* 8053F96C-8053F9B0 -00001 0044+00 1/1 0/0 0/0 .data @4719 */ -SECTION_DATA static void* lit_4719[17] = { - (void*)(((char*)reset__12daNpc_Besu_cFv) + 0x168), - (void*)(((char*)reset__12daNpc_Besu_cFv) + 0x170), - (void*)(((char*)reset__12daNpc_Besu_cFv) + 0x1B0), - (void*)(((char*)reset__12daNpc_Besu_cFv) + 0x1B0), - (void*)(((char*)reset__12daNpc_Besu_cFv) + 0x1B0), - (void*)(((char*)reset__12daNpc_Besu_cFv) + 0x1B0), - (void*)(((char*)reset__12daNpc_Besu_cFv) + 0x190), - (void*)(((char*)reset__12daNpc_Besu_cFv) + 0x19C), - (void*)(((char*)reset__12daNpc_Besu_cFv) + 0x1A8), - (void*)(((char*)reset__12daNpc_Besu_cFv) + 0x1B0), - (void*)(((char*)reset__12daNpc_Besu_cFv) + 0x1B0), - (void*)(((char*)reset__12daNpc_Besu_cFv) + 0x1B0), - (void*)(((char*)reset__12daNpc_Besu_cFv) + 0x1B0), - (void*)(((char*)reset__12daNpc_Besu_cFv) + 0x1B0), - (void*)(((char*)reset__12daNpc_Besu_cFv) + 0x1B0), - (void*)(((char*)reset__12daNpc_Besu_cFv) + 0x1B0), - (void*)(((char*)reset__12daNpc_Besu_cFv) + 0x1B0), -}; - -/* 8053F9B0-8053F9BC -00001 000C+00 1/1 0/0 0/0 .data @4829 */ -SECTION_DATA static void* lit_4829[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talk__12daNpc_Besu_cFPv, -}; - -/* 8053F9BC-8053FA04 -00001 0048+00 1/1 0/0 0/0 .data @4875 */ -SECTION_DATA static void* lit_4875[18] = { - (void*)(((char*)checkChangeEvt__12daNpc_Besu_cFv) + 0x1A8), - (void*)(((char*)checkChangeEvt__12daNpc_Besu_cFv) + 0x1A8), - (void*)(((char*)checkChangeEvt__12daNpc_Besu_cFv) + 0x1A8), - (void*)(((char*)checkChangeEvt__12daNpc_Besu_cFv) + 0xC0), - (void*)(((char*)checkChangeEvt__12daNpc_Besu_cFv) + 0xC0), - (void*)(((char*)checkChangeEvt__12daNpc_Besu_cFv) + 0x1A8), - (void*)(((char*)checkChangeEvt__12daNpc_Besu_cFv) + 0xD8), - (void*)(((char*)checkChangeEvt__12daNpc_Besu_cFv) + 0xF0), - (void*)(((char*)checkChangeEvt__12daNpc_Besu_cFv) + 0x108), - (void*)(((char*)checkChangeEvt__12daNpc_Besu_cFv) + 0x1A8), - (void*)(((char*)checkChangeEvt__12daNpc_Besu_cFv) + 0x1A8), - (void*)(((char*)checkChangeEvt__12daNpc_Besu_cFv) + 0x120), - (void*)(((char*)checkChangeEvt__12daNpc_Besu_cFv) + 0x1A8), - (void*)(((char*)checkChangeEvt__12daNpc_Besu_cFv) + 0x1A8), - (void*)(((char*)checkChangeEvt__12daNpc_Besu_cFv) + 0x1A8), - (void*)(((char*)checkChangeEvt__12daNpc_Besu_cFv) + 0x1A8), - (void*)(((char*)checkChangeEvt__12daNpc_Besu_cFv) + 0x1A8), - (void*)(((char*)checkChangeEvt__12daNpc_Besu_cFv) + 0x174), -}; - -/* 8053FA04-8053FA34 -00001 0030+00 1/1 0/0 0/0 .data @4895 */ -SECTION_DATA static void* lit_4895[12] = { - (void*)(((char*)setAfterTalkMotion__12daNpc_Besu_cFv) + 0x64), - (void*)(((char*)setAfterTalkMotion__12daNpc_Besu_cFv) + 0x40), - (void*)(((char*)setAfterTalkMotion__12daNpc_Besu_cFv) + 0x48), - (void*)(((char*)setAfterTalkMotion__12daNpc_Besu_cFv) + 0x64), - (void*)(((char*)setAfterTalkMotion__12daNpc_Besu_cFv) + 0x64), - (void*)(((char*)setAfterTalkMotion__12daNpc_Besu_cFv) + 0x64), - (void*)(((char*)setAfterTalkMotion__12daNpc_Besu_cFv) + 0x64), - (void*)(((char*)setAfterTalkMotion__12daNpc_Besu_cFv) + 0x64), - (void*)(((char*)setAfterTalkMotion__12daNpc_Besu_cFv) + 0x50), - (void*)(((char*)setAfterTalkMotion__12daNpc_Besu_cFv) + 0x64), - (void*)(((char*)setAfterTalkMotion__12daNpc_Besu_cFv) + 0x58), - (void*)(((char*)setAfterTalkMotion__12daNpc_Besu_cFv) + 0x60), -}; - -/* 8053FA34-8053FA7C -00001 0048+00 1/1 0/0 0/0 .data @4948 */ -SECTION_DATA static void* lit_4948[18] = { - (void*)(((char*)srchActors__12daNpc_Besu_cFv) + 0x38), - (void*)(((char*)srchActors__12daNpc_Besu_cFv) + 0x280), - (void*)(((char*)srchActors__12daNpc_Besu_cFv) + 0x8C), - (void*)(((char*)srchActors__12daNpc_Besu_cFv) + 0x280), - (void*)(((char*)srchActors__12daNpc_Besu_cFv) + 0x280), - (void*)(((char*)srchActors__12daNpc_Besu_cFv) + 0x280), - (void*)(((char*)srchActors__12daNpc_Besu_cFv) + 0x280), - (void*)(((char*)srchActors__12daNpc_Besu_cFv) + 0x280), - (void*)(((char*)srchActors__12daNpc_Besu_cFv) + 0x280), - (void*)(((char*)srchActors__12daNpc_Besu_cFv) + 0x280), - (void*)(((char*)srchActors__12daNpc_Besu_cFv) + 0x280), - (void*)(((char*)srchActors__12daNpc_Besu_cFv) + 0xB8), - (void*)(((char*)srchActors__12daNpc_Besu_cFv) + 0x10C), - (void*)(((char*)srchActors__12daNpc_Besu_cFv) + 0x160), - (void*)(((char*)srchActors__12daNpc_Besu_cFv) + 0x1DC), - (void*)(((char*)srchActors__12daNpc_Besu_cFv) + 0x280), - (void*)(((char*)srchActors__12daNpc_Besu_cFv) + 0x280), - (void*)(((char*)srchActors__12daNpc_Besu_cFv) + 0x230), -}; - -/* 8053FA7C-8053FA88 -00001 000C+00 1/1 0/0 0/0 .data @4952 */ -SECTION_DATA static void* lit_4952[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talk__12daNpc_Besu_cFPv, -}; - -/* 8053FA88-8053FA94 -00001 000C+00 1/1 0/0 0/0 .data @4957 */ -SECTION_DATA static void* lit_4957[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talk__12daNpc_Besu_cFPv, -}; - -/* 8053FA94-8053FAA0 -00001 000C+00 1/1 0/0 0/0 .data @5059 */ -SECTION_DATA static void* lit_5059[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)nurse__12daNpc_Besu_cFPv, -}; - -/* 8053FAA0-8053FAAC -00001 000C+00 1/1 0/0 0/0 .data @5060 */ -SECTION_DATA static void* lit_5060[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)giveHotWater__12daNpc_Besu_cFPv, -}; - -/* 8053FAAC-8053FBB4 000F50 0108+00 1/1 0/0 0/0 .data cupAnmData$5432 */ -SECTION_DATA static u8 cupAnmData[264] = { - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x05, - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, -}; - -/* 8053FBB4-8053FBC0 -00001 000C+00 0/1 0/0 0/0 .data @5517 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5517[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)nurse__12daNpc_Besu_cFPv, -}; -#pragma pop - -/* 8053FBC0-8053FBCC -00001 000C+00 0/1 0/0 0/0 .data @5519 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5519[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)giveHotWater__12daNpc_Besu_cFPv, -}; -#pragma pop - -/* 8053FBCC-8053FBD8 -00001 000C+00 0/1 0/0 0/0 .data @5521 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5521[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)nurse__12daNpc_Besu_cFPv, -}; -#pragma pop - -/* 8053FBD8-8053FBE4 -00001 000C+00 0/1 0/0 0/0 .data @5525 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5525[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)swdTutorial__12daNpc_Besu_cFPv, -}; -#pragma pop - -/* 8053FBE4-8053FBF0 -00001 000C+00 0/1 0/0 0/0 .data @5527 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5527[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__12daNpc_Besu_cFPv, -}; -#pragma pop - -/* 8053FBF0-8053FBFC -00001 000C+00 0/1 0/0 0/0 .data @5529 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_5529[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__12daNpc_Besu_cFPv, -}; -#pragma pop - -/* 8053FBFC-8053FC54 -00001 0058+00 1/1 0/0 0/0 .data @5771 */ -SECTION_DATA static void* lit_5771[22] = { - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x204), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x20C), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x20C), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x20C), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x20C), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x5F8), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x5F8), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x5F8), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x5F8), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x5F8), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x20C), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x20C), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x20C), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x5F8), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x5F8), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x5F8), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x5F8), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x5F8), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x5F8), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x5F8), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x584), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x5D8), -}; - -/* 8053FC54-8053FCAC -00001 0058+00 1/1 0/0 0/0 .data @5770 */ -SECTION_DATA static void* lit_5770[22] = { - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x1CC), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x180), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x1CC), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x1CC), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x1CC), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x1CC), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x1CC), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x1CC), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x1CC), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x1CC), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x198), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x1CC), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x1CC), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x1CC), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x1CC), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x1CC), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x1CC), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x1CC), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x1CC), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x1CC), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x1BC), - (void*)(((char*)cutConversationAboutPachinko__12daNpc_Besu_cFi) + 0x1CC), -}; - -/* 8053FCAC-8053FCCC -00001 0020+00 1/0 0/0 0/0 .data daNpc_Besu_MethodTable */ -static actor_method_class daNpc_Besu_MethodTable = { - (process_method_func)daNpc_Besu_Create__FPv, - (process_method_func)daNpc_Besu_Delete__FPv, - (process_method_func)daNpc_Besu_Execute__FPv, - (process_method_func)daNpc_Besu_IsDelete__FPv, - (process_method_func)daNpc_Besu_Draw__FPv, -}; - -/* 8053FCCC-8053FCFC -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_BESU */ -extern actor_process_profile_definition g_profile_NPC_BESU = { - fpcLy_CURRENT_e, // mLayerID - 7, // mListID - fpcPi_CURRENT_e, // mListPrio - PROC_NPC_BESU, // mProcName - &g_fpcLf_Method.base, // sub_method - sizeof(daNpc_Besu_c), // mSize - 0, // mSizeOther - 0, // mParameters - &g_fopAc_Method.base, // sub_method - 323, // mPriority - &daNpc_Besu_MethodTable, // sub_method - 0x00040108, // mStatus - fopAc_NPC_e, // mActorType - fopAc_CULLBOX_CUSTOM_e, // cullType -}; - -/* 8053FCFC-8053FD08 0011A0 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, -}; - -/* 8053FD08-8053FD14 0011AC 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, -}; - -/* 8053FD14-8053FD38 0011B8 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_8053E738, - (void*)NULL, - (void*)NULL, - (void*)func_8053E730, -}; - -/* 8053FD38-8053FD44 0011DC 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, -}; - -/* 8053FD44-8053FD50 0011E8 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, -}; - -/* 8053FD50-8053FD5C 0011F4 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, -}; - -/* 8053FD5C-8053FD68 001200 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, -}; - -/* 8053FD68-8053FD74 00120C 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, -}; - -/* 8053FD74-8053FD80 001218 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, -}; - -/* 8053FD80-8053FD8C 001224 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, -}; - -/* 8053FD8C-8053FD98 001230 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, -}; - -/* 8053FD98-8053FE5C 00123C 00C4+00 2/2 0/0 0/0 .data __vt__12daNpc_Besu_c */ -SECTION_DATA extern void* __vt__12daNpc_Besu_c[49] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12daNpc_Besu_cFv, - (void*)ctrlBtk__8daNpcT_cFv, - (void*)ctrlSubFaceMotion__8daNpcT_cFi, - (void*)checkChangeJoint__12daNpc_Besu_cFi, - (void*)checkRemoveJoint__12daNpc_Besu_cFi, - (void*)getBackboneJointNo__12daNpc_Besu_cFv, - (void*)getNeckJointNo__12daNpc_Besu_cFv, - (void*)getHeadJointNo__12daNpc_Besu_cFv, - (void*)getFootLJointNo__8daNpcT_cFv, - (void*)getFootRJointNo__8daNpcT_cFv, - (void*)getEyeballLMaterialNo__8daNpcT_cFv, - (void*)getEyeballRMaterialNo__8daNpcT_cFv, - (void*)getEyeballMaterialNo__12daNpc_Besu_cFv, - (void*)ctrlJoint__8daNpcT_cFP8J3DJointP8J3DModel, - (void*)afterJntAnm__12daNpc_Besu_cFi, - (void*)setParam__12daNpc_Besu_cFv, - (void*)checkChangeEvt__12daNpc_Besu_cFv, - (void*)evtTalk__12daNpc_Besu_cFv, - (void*)evtEndProc__8daNpcT_cFv, - (void*)evtCutProc__12daNpc_Besu_cFv, - (void*)setAfterTalkMotion__12daNpc_Besu_cFv, - (void*)evtProc__8daNpcT_cFv, - (void*)action__12daNpc_Besu_cFv, - (void*)beforeMove__12daNpc_Besu_cFv, - (void*)afterMoved__8daNpcT_cFv, - (void*)setAttnPos__12daNpc_Besu_cFv, - (void*)setFootPos__8daNpcT_cFv, - (void*)setCollision__12daNpc_Besu_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__12daNpc_Besu_cFv, - (void*)drawOtherMdl__12daNpc_Besu_cFv, - (void*)drawGhost__8daNpcT_cFv, - (void*)afterSetFaceMotionAnm__8daNpcT_cFiifi, - (void*)afterSetMotionAnm__12daNpc_Besu_cFiifi, - (void*)getFaceMotionAnm__12daNpc_Besu_cF26daNpcT_faceMotionAnmData_c, - (void*)getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c, - (void*)changeAnm__12daNpc_Besu_cFPiPi, - (void*)changeBck__12daNpc_Besu_cFPiPi, - (void*)changeBtp__12daNpc_Besu_cFPiPi, - (void*)changeBtk__12daNpc_Besu_cFPiPi, - (void*)setMotionAnm__8daNpcT_cFifi, +daNpc_Besu_c::cutFunc daNpc_Besu_c::mCutList[15] = { + NULL, + &daNpc_Besu_c::cutConversationAboutSaru, + &daNpc_Besu_c::cutConversationAboutPachinko, + &daNpc_Besu_c::cutConversationAboutWoodSwd, + &daNpc_Besu_c::cutSwdTutorial, + &daNpc_Besu_c::cutFindMonkey, + &daNpc_Besu_c::cutGetWoodSwd, + &daNpc_Besu_c::cutCacaricoConversation, + &daNpc_Besu_c::cutSurprise, + &daNpc_Besu_c::cutConversationInHotel, + &daNpc_Besu_c::cutConversationAboutDeathMt, + &daNpc_Besu_c::cutConversationAboutGoron, + &daNpc_Besu_c::cutNurse, + &daNpc_Besu_c::cutClothTry, + &daNpc_Besu_c::cutThankYou, }; /* 80536E4C-8053701C 0000EC 01D0+00 1/0 0/0 0/0 .text __dt__12daNpc_Besu_cFv */ daNpc_Besu_c::~daNpc_Besu_c() { - // NONMATCHING + // "Destruct": + OS_REPORT("|%06d:%x|daNpc_Besu_c -> デストラクト\n", g_Counter.mCounter0, this); + if (mpMorf[0] != NULL) { + mpMorf[0]->stopZelAnime(); + } + + if (mpBesuMorf != NULL) { + mpBesuMorf->stopZelAnime(); + } + +// #ifdef DEBUG +// if (field_0xe40 != NULL) { +// field_0xe40->removeHIO(); +// } +// #endif + + deleteRes((l_loadResPtrnList)[mType], (const char**)l_resNameList); } /* ############################################################################################## */ @@ -1265,7 +316,7 @@ const daNpc_Besu_HIOParam daNpc_Besu_Param_c::m = { }; /* 8053701C-805372FC 0002BC 02E0+00 1/1 0/0 0/0 .text create__12daNpc_Besu_cFv */ -void daNpc_Besu_c::create() { +int daNpc_Besu_c::create() { static int const heapSize[19] = { 0x35C0, 0x35C0, 0x3510, 0x35D0, 0x35D0, 0x35D0, 0x3DC0, 0x3EC0, @@ -1273,996 +324,2429 @@ void daNpc_Besu_c::create() { 0x35C0, 0x35C0, 0x35D0, 0x35C0, 0x35C0, 0x35C0, 0x0, }; - // NONMATCHING + fopAcM_SetupActor2(this, daNpc_Besu_c, l_faceMotionAnmData, l_motionAnmData, + l_faceMotionSequenceData, 4, l_motionSequenceData, 4, + l_evtList, l_resNameList + ); + mType = getType(); + mFlowNodeNo = getFlowNodeNo(); + mTwilight = dKy_darkworld_check(); + if (mType == 9) { + mTwilight = false; + } + + cPhs__Step rv = (cPhs__Step) 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; + } + OS_REPORT("\n"); + + if (fopAcM_entrySolidHeap(this, createHeapCallBack, heapSize[mType]) == 0) { + return cPhs_ERROR_e; + } + + J3DModelData* modelData_p = 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); + +// #ifdef DEBUG +// field_0xe40 = &l_HIO; +// // "Beth": +// field_0xe40->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(daNpc_Besu_Param_c::m.common.weight, 0, this); + mCyl1.Set(mCcDCyl); + mCyl1.SetStts(&mCcStts); + mCyl1.SetTgHitCallback(tgHitCallBack); + mCyl2.Set(mCcDCyl); + mCyl2.SetStts(&mCcStts); + mAcch.CrrPos(dComIfG_Bgsp()); + mGndChk = mAcch.m_gnd; + mGroundH = mAcch.GetGroundH(); + if (mGroundH != -1e9f) { + setEnvTevColor(); + setRoomNo(); + } + mCreating = true; + Execute(); + mCreating = false; + } + + return rv; } -/* 8053E830-8053E834 0000DC 0004+00 0/1 0/0 0/0 .rodata @4162 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4162 = -200.0f; -COMPILER_STRIP_GATE(0x8053E830, &lit_4162); -#pragma pop - -/* 8053E834-8053E838 0000E0 0004+00 0/1 0/0 0/0 .rodata @4163 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4163 = -100.0f; -COMPILER_STRIP_GATE(0x8053E834, &lit_4163); -#pragma pop - -/* 8053E838-8053E83C 0000E4 0004+00 0/1 0/0 0/0 .rodata @4164 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4164 = 200.0f; -COMPILER_STRIP_GATE(0x8053E838, &lit_4164); -#pragma pop - -/* 8053E83C-8053E840 0000E8 0004+00 0/1 0/0 0/0 .rodata @4165 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4165 = 300.0f; -COMPILER_STRIP_GATE(0x8053E83C, &lit_4165); -#pragma pop - -/* 8053E840-8053E844 0000EC 0004+00 0/1 0/0 0/0 .rodata @4166 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4166 = -1000000000.0f; -COMPILER_STRIP_GATE(0x8053E840, &lit_4166); -#pragma pop - -/* ############################################################################################## */ -/* 8053E844-8053E848 0000F0 0004+00 14/24 0/0 0/0 .rodata @4337 */ -SECTION_RODATA static u8 const lit_4337[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x8053E844, &lit_4337); - -/* 8053E848-8053E84C 0000F4 0004+00 0/2 0/0 0/0 .rodata @4338 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4338 = 65536.0f; -COMPILER_STRIP_GATE(0x8053E848, &lit_4338); -#pragma pop - -/* 8053E84C-8053E850 0000F8 0004+00 0/3 0/0 0/0 .rodata @4339 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4339 = 1.0f / 5.0f; -COMPILER_STRIP_GATE(0x8053E84C, &lit_4339); -#pragma pop - -/* 8053E850-8053E854 0000FC 0004+00 2/5 0/0 0/0 .rodata @4531 */ -SECTION_RODATA static f32 const lit_4531 = 1.0f; -COMPILER_STRIP_GATE(0x8053E850, &lit_4531); - /* 805372FC-80537758 00059C 045C+00 1/1 0/0 0/0 .text CreateHeap__12daNpc_Besu_cFv */ -void daNpc_Besu_c::CreateHeap() { - // NONMATCHING -} +int daNpc_Besu_c::CreateHeap() { + J3DModelData* modelData = NULL; + J3DModel* model = NULL; + int bmdIdx = 0; + if (chkBesu3()) { + bmdIdx = 4; + } else if (chkNurse()) { + bmdIdx = 3; + } -/* 80537758-80537794 0009F8 003C+00 1/1 0/0 0/0 .text __dt__15J3DTevKColorAnmFv */ -// J3DTevKColorAnm::~J3DTevKColorAnm() { -extern "C" void __dt__15J3DTevKColorAnmFv() { - // NONMATCHING -} + if (mTwilight) { + bmdIdx = 1; + } -/* 80537794-805377AC 000A34 0018+00 1/1 0/0 0/0 .text __ct__15J3DTevKColorAnmFv */ -// J3DTevKColorAnm::J3DTevKColorAnm() { -extern "C" void __ct__15J3DTevKColorAnmFv() { - // NONMATCHING -} + int resname_idx = l_bmdData[bmdIdx][1]; + int obres_idx = l_bmdData[bmdIdx][0]; + modelData = static_cast( + dComIfG_getObjectRes(l_resNameList[resname_idx], obres_idx)); + if (modelData == NULL) { + return 0; + } -/* 805377AC-805377E8 000A4C 003C+00 1/1 0/0 0/0 .text __dt__14J3DTevColorAnmFv */ -// J3DTevColorAnm::~J3DTevColorAnm() { -extern "C" void __dt__14J3DTevColorAnmFv() { - // NONMATCHING -} + u32 dbg_0x24 = 0x11020284; + mpMorf[0] = new mDoExt_McaMorfSO(modelData, NULL, NULL, NULL, -1, 1.0f, 0, -1, &mSound, 0x80000, + dbg_0x24); + if (mpMorf[0] == NULL || mpMorf[0]->getModel() == NULL) { + return 0; + } -/* 805377E8-80537800 000A88 0018+00 1/1 0/0 0/0 .text __ct__14J3DTevColorAnmFv */ -// J3DTevColorAnm::J3DTevColorAnm() { -extern "C" void __ct__14J3DTevColorAnmFv() { - // NONMATCHING -} + model = (J3DModel*)mpMorf[0]->getModel(); + for (u16 i = 0; i < modelData->getJointNum(); i++) { + modelData->getJointNodePointer(i)->setCallBack(ctrlJointCallBack); + } + model->setUserArea((u32)this); + mpMatAnm[0] = new daNpcT_MatAnm_c(); + if (mpMatAnm[0] == NULL) { + return 0; + } -/* 80537800-80537848 000AA0 0048+00 1/1 0/0 0/0 .text __dt__11J3DTexNoAnmFv */ -// J3DTexNoAnm::~J3DTexNoAnm() { -extern "C" void __dt__11J3DTexNoAnmFv() { - // NONMATCHING -} + if (mType == 7) { + bmdIdx = 5; + resname_idx = l_bmdData[bmdIdx][1]; + obres_idx = l_bmdData[bmdIdx][0]; + modelData = (J3DModelData*)dComIfG_getObjectRes(l_resNameList[resname_idx], + obres_idx); -/* 80537848-8053786C 000AE8 0024+00 1/1 0/0 0/0 .text __ct__11J3DTexNoAnmFv */ -// J3DTexNoAnm::J3DTexNoAnm() { -extern "C" void __ct__11J3DTexNoAnmFv() { - // NONMATCHING -} + if (modelData == NULL) { + return 0; + } -/* 8053786C-805378A8 000B0C 003C+00 1/1 0/0 0/0 .text __dt__12J3DTexMtxAnmFv */ -// J3DTexMtxAnm::~J3DTexMtxAnm() { -extern "C" void __dt__12J3DTexMtxAnmFv() { - // NONMATCHING -} + dbg_0x24 = 0x11000084; + mpBesuMorf = new mDoExt_McaMorfSO(modelData, NULL, NULL, NULL, -1, 1.0f, + 0, -1, NULL, 0x80000, dbg_0x24); + if (mpBesuMorf == NULL || mpBesuMorf->getModel() == NULL) { + return 0; + } + } -/* 805378A8-805378C0 000B48 0018+00 1/1 0/0 0/0 .text __ct__12J3DTexMtxAnmFv */ -// J3DTexMtxAnm::J3DTexMtxAnm() { -extern "C" void __ct__12J3DTexMtxAnmFv() { - // NONMATCHING -} + if (mType == 6 || mType == 8) { + if (l_bmdData[2][0] >= 0) { + modelData = (J3DModelData*)dComIfG_getObjectRes(l_resNameList[l_bmdData[2][1]], + l_bmdData[2][0]); + } else { + modelData = 0; + } -/* 805378C0-805378FC 000B60 003C+00 1/1 0/0 0/0 .text __dt__14J3DMatColorAnmFv */ -// J3DMatColorAnm::~J3DMatColorAnm() { -extern "C" void __dt__14J3DMatColorAnmFv() { - // NONMATCHING -} + if (modelData != NULL) { + mpModel[0] = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); + } -/* 805378FC-80537914 000B9C 0018+00 1/1 0/0 0/0 .text __ct__14J3DMatColorAnmFv */ -// J3DMatColorAnm::J3DMatColorAnm() { -extern "C" void __ct__14J3DMatColorAnmFv() { - // NONMATCHING + if (mpModel[0] == NULL) { + return 0; + } + } + + if (mTwilight) { + if (setFaceMotionAnm(26, false) && setMotionAnm(24, 0.0f, 0)) { + return 1; + } else { + return 0; + } + } else { + if (setFaceMotionAnm(3, false) && setMotionAnm(0, 0, 0)) { + return 1; + } else { + return 0; + } + } } /* 80537914-80537948 000BB4 0034+00 1/1 0/0 0/0 .text Delete__12daNpc_Besu_cFv */ -void daNpc_Besu_c::Delete() { - // NONMATCHING +int daNpc_Besu_c::Delete() { + OS_REPORT("|%06d:%x|daNpc_Besu_c -> Delete\n", g_Counter, this); + fopAcM_GetID(this); + this->~daNpc_Besu_c(); + return 1; } /* 80537948-80537968 000BE8 0020+00 2/2 0/0 0/0 .text Execute__12daNpc_Besu_cFv */ -void daNpc_Besu_c::Execute() { - // NONMATCHING +int daNpc_Besu_c::Execute() { + return execute(); } -/* ############################################################################################## */ -/* 8053E854-8053E858 000100 0004+00 1/2 0/0 0/0 .rodata @4580 */ -SECTION_RODATA static f32 const lit_4580 = 100.0f; -COMPILER_STRIP_GATE(0x8053E854, &lit_4580); - /* 80537968-805379FC 000C08 0094+00 1/1 0/0 0/0 .text Draw__12daNpc_Besu_cFv */ -void daNpc_Besu_c::Draw() { - // NONMATCHING +int daNpc_Besu_c::Draw() { + daNpcT_MatAnm_c* matAnm = mpMatAnm[0]; + if (matAnm != NULL) { + J3DModelData* modelData = mpMorf[0]->getModel()->getModelData(); + J3DMaterial* material = modelData->getMaterialNodePointer(getEyeballMaterialNo()); + material->setMaterialAnm(matAnm); + } + + return draw(FALSE, 0, field_0xde8, NULL, 100.0f, 0, 0, 0); } /* 805379FC-80537A1C 000C9C 0020+00 1/1 0/0 0/0 .text * createHeapCallBack__12daNpc_Besu_cFP10fopAc_ac_c */ -void daNpc_Besu_c::createHeapCallBack(fopAc_ac_c* param_0) { - // NONMATCHING +int daNpc_Besu_c::createHeapCallBack(fopAc_ac_c* i_this) { + return static_cast(i_this)->CreateHeap(); } /* 80537A1C-80537A74 000CBC 0058+00 1/1 0/0 0/0 .text * ctrlJointCallBack__12daNpc_Besu_cFP8J3DJointi */ -void daNpc_Besu_c::ctrlJointCallBack(J3DJoint* param_0, int param_1) { - // NONMATCHING +int daNpc_Besu_c::ctrlJointCallBack(J3DJoint* param_0, int param_1) { + if (param_1 == 0) { + J3DModel* model = j3dSys.getModel(); + daNpc_Besu_c* i_this = (daNpc_Besu_c*) model->getUserArea(); + if (i_this != NULL) { + i_this->ctrlJoint(param_0, model); + } + } + + return 1; } /* 80537A74-80537B34 000D14 00C0+00 2/1 0/0 0/0 .text getType__12daNpc_Besu_cFv */ -void daNpc_Besu_c::getType() { - // NONMATCHING +u8 daNpc_Besu_c::getType() { + switch (fopAcM_GetParam(this) & 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; + case 6: + return 6; + case 7: + return 7; + case 8: + return 8; + case 9: + return 9; + case 10: + return 0xA; + case 11: + return 0xB; + case 12: + return 0xC; + case 13: + return 0xD; + case 14: + return 0xE; + case 15: + return 0xF; + case 16: + return 0x10; + case 17: + return 0x11; + default: + return 0x12; + } } /* 80537B34-80537DE4 000DD4 02B0+00 2/1 0/0 0/0 .text isDelete__12daNpc_Besu_cFv */ -void daNpc_Besu_c::isDelete() { - // NONMATCHING +BOOL daNpc_Besu_c::isDelete() { + switch (mType) { + case 0: + return !daNpcT_chkEvtBit(0x12) || daNpcT_chkEvtBit(0x1F); + case 1: + return daNpcT_chkEvtBit(0x12) == 0; + case 2: + return 0; + case 3: + return !daNpcT_chkEvtBit(0x3D) || daNpcT_chkEvtBit(0xA4); + case 4: + return !daNpcT_chkEvtBit(0xA4) || daNpcT_chkEvtBit(0x35); + case 5: + return !daNpcT_chkEvtBit(0x35) || daNpcT_chkEvtBit(0x55); + case 6: + return !daNpcT_chkEvtBit(0x55) || daNpcT_chkEvtBit(0x40); + case 7: + return !daNpcT_chkEvtBit(0x40) || daNpcT_chkEvtBit(0x44); + case 8: + return !daNpcT_chkEvtBit(0x44) || daNpcT_chkEvtBit(0x108); + case 9: + return 0; + case 10: + return daNpcT_chkEvtBit(0x108) == 0; + case 11: + return daNpcT_chkEvtBit(0x13); + case 12: + return !daNpcT_chkEvtBit(0x13) || daNpcT_chkEvtBit(0x12); + case 13: + return !daNpcT_chkEvtBit(0x12) || daNpcT_chkEvtBit(0x25C); + case 14: + return 0; + case 15: + return !daNpcT_chkEvtBit(0x25C) || daNpcT_chkEvtBit(0x80); + case 16: + return !daNpcT_chkEvtBit(0x80) || daNpcT_chkEvtBit(0x235); + case 17: + return 0; + default: + return 0; + } } /* 80537DE4-80537FD0 001084 01EC+00 2/1 0/0 0/0 .text reset__12daNpc_Besu_cFv */ void daNpc_Besu_c::reset() { - // NONMATCHING + csXyz acStack_20; + int size = (u8*)&field_0x1134 - (u8*)&mNextAction; + if (mpMatAnm[0] != NULL) { + mpMatAnm[0]->initialize(); + } + initialize(); + for (int i = 0; i < 7; i++) { + mActorMngr[i].initialize(); + } + + memset(&mNextAction, 0, size); + acStack_20.setall(0); + acStack_20.y = home.angle.y; + switch (mType) { + case 0: + eventInfo.setIdx(0); + break; + case 1: + mHide = daNpcT_chkEvtBit(0x1f) == 0; + eventInfo.setIdx(1); + break; + case 6: + field_0x112d = 1; + break; + case 7: + field_0x112e = 1; + break; + case 8: + field_0x112d = 1; + break; + case 16: + break; + } + + daNpcT_offTmpBit(0x64); + setAngle(acStack_20); } /* 80537FD0-80537FFC 001270 002C+00 6/6 0/0 0/0 .text chkNurse__12daNpc_Besu_cFv */ -void daNpc_Besu_c::chkNurse() { - // NONMATCHING +BOOL daNpc_Besu_c::chkNurse() { + return mType == 6 || mType == 7 || mType == 8; } /* 80537FFC-80538028 00129C 002C+00 7/7 0/0 0/0 .text chkBesu3__12daNpc_Besu_cFv */ -void daNpc_Besu_c::chkBesu3() { - // NONMATCHING +BOOL daNpc_Besu_c::chkBesu3() { + return mType == 3 || mType == 5 || mType == 15; } /* 80538028-805380A4 0012C8 007C+00 1/0 0/0 0/0 .text afterJntAnm__12daNpc_Besu_cFi */ -void daNpc_Besu_c::afterJntAnm(int param_0) { - // NONMATCHING +void daNpc_Besu_c::afterJntAnm(int param_1) { + if (param_1 == 1) { + mDoMtx_stack_c::YrotM(mStagger.getAngleX(1)); + mDoMtx_stack_c::ZrotM(mStagger.getAngleZ(1)); + } else if (param_1 == 4) { + mDoMtx_stack_c::YrotM(mStagger.getAngleX(0)); + mDoMtx_stack_c::ZrotM(mStagger.getAngleZ(0)); + } } -/* ############################################################################################## */ -/* 8053E858-8053E85C 000104 0004+00 0/1 0/0 0/0 .rodata @4818 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4818 = 110.0f; -COMPILER_STRIP_GATE(0x8053E858, &lit_4818); -#pragma pop - -/* 8053E85C-8053E860 000108 0004+00 0/1 0/0 0/0 .rodata @4819 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4819 = 70.0f; -COMPILER_STRIP_GATE(0x8053E85C, &lit_4819); -#pragma pop - -/* 8053E860-8053E864 00010C 0004+00 0/2 0/0 0/0 .rodata @4820 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4820 = 60.0f; -COMPILER_STRIP_GATE(0x8053E860, &lit_4820); -#pragma pop - -/* 8053E864-8053E868 000110 0004+00 0/1 0/0 0/0 .rodata @4821 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4821 = 180.0f; -COMPILER_STRIP_GATE(0x8053E864, &lit_4821); -#pragma pop - -/* 8053E868-8053E86C 000114 0004+00 0/1 0/0 0/0 .rodata @4822 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4822 = 500.0f; -COMPILER_STRIP_GATE(0x8053E868, &lit_4822); -#pragma pop - /* 805380A4-805382D0 001344 022C+00 1/0 0/0 0/0 .text setParam__12daNpc_Besu_cFv */ void daNpc_Besu_c::setParam() { - // NONMATCHING + selectAction(); + srchActors(); + + u32 att_flags = 10; + s16 talk_dist = daNpc_Besu_Param_c::m.common.talk_distance; + s16 talk_ang = daNpc_Besu_Param_c::m.common.talk_angle; + s16 att_dist = daNpc_Besu_Param_c::m.common.attention_distance; + s16 att_ang = daNpc_Besu_Param_c::m.common.attention_angle; + if (daNpcKakashi_chkSwdTutorialStage() & 0xFF) { + talk_dist = 11; + talk_ang = 6; + att_dist = 15; + att_ang = 6; + att_flags = 0; + } else if (chkNurse()) { + talk_dist = 1; + att_dist = 1; + } else { + switch (mType) { + case 3: + case 4: { + talk_dist = 5; + att_dist = 7; + break; + } + + case 11: { + talk_dist = 5; + att_dist = 5; + break; + } + } + } + + if (daPy_getPlayerActorClass()->checkHorseRide()) { + if (talk_dist < 7) { + talk_dist = 7; + } + + if (att_dist < 9) { + att_dist = 9; + } + } + + attention_info.distances[0] = daNpcT_getDistTableIdx(att_dist, att_ang); + attention_info.distances[1] = attention_info.distances[0]; + attention_info.distances[3] = daNpcT_getDistTableIdx(talk_dist, talk_ang); + attention_info.flags = att_flags; + + scale.set(daNpc_Besu_Param_c::m.common.scale, daNpc_Besu_Param_c::m.common.scale, + daNpc_Besu_Param_c::m.common.scale); + mCcStts.SetWeight(daNpc_Besu_Param_c::m.common.weight); + mCylH = daNpc_Besu_Param_c::m.common.height; + mWallR = daNpc_Besu_Param_c::m.common.width; + if (mTwilight) { + mCylH = 110.0f; + } else if (mType == 5) { + mCylH = 70.0f; + mWallR = 60.0f; + } + + mAttnFovY = daNpc_Besu_Param_c::m.common.fov; + if (mType == 3 || mType == 4) { + mAttnFovY = 180.0f; + } + + mAcchCir.SetWallR(mWallR); + mAcchCir.SetWallH(daNpc_Besu_Param_c::m.common.knee_length); + field_0xde8 = daNpc_Besu_Param_c::m.common.real_shadow_size; + if (chkNurse()) { + field_0xde8 = 500.0f; + } + + field_0xa80 = daNpc_Besu_Param_c::m.common.expression_morf_frame; + mMorfFrames = daNpc_Besu_Param_c::m.common.morf_frame; + gravity = daNpc_Besu_Param_c::m.common.gravity; } /* 805382D0-80538490 001570 01C0+00 2/0 0/0 0/0 .text checkChangeEvt__12daNpc_Besu_cFv */ -void daNpc_Besu_c::checkChangeEvt() { - // NONMATCHING -} +BOOL daNpc_Besu_c::checkChangeEvt() { + if (chkAction(&daNpc_Besu_c::talk) == 0) { + mPreItemNo = 0; + if (dComIfGp_event_chkTalkXY()) { + if (dComIfGp_evmng_ChkPresentEnd()) { + mEvtNo = 1; + evtChange(); + } + return 1; + } -/* ############################################################################################## */ -/* 8053E86C-8053E870 000118 0004+00 8/12 0/0 0/0 .rodata @4894 */ -SECTION_RODATA static f32 const lit_4894 = -1.0f; -COMPILER_STRIP_GATE(0x8053E86C, &lit_4894); + switch (mType) { + case 0: + break; + + case 3: + case 4: + mEvtNo = 7; + evtChange(); + return 1; + case 6: + mEvtNo = 0xA; + evtChange(); + return 1; + case 7: + mEvtNo = 0xB; + evtChange(); + return 1; + case 8: + mEvtNo = 0xC; + evtChange(); + return 1; + case 11: + if (checkItemGet(0x4B, 1)) { + mEvtNo = 6; + } else if (daNpcT_chkEvtBit(0x1D)) { + mEvtNo = 5; + } else { + mEvtNo = 4; + } + evtChange(); + return 1; + case 17: + if (daNpcT_chkEvtBit(0x24D)) { + mEvtNo = 3; + } else { + mEvtNo = 2; + } + evtChange(); + return 1; + } + } + + return 0; +} /* 80538490-8053853C 001730 00AC+00 2/0 0/0 0/0 .text setAfterTalkMotion__12daNpc_Besu_cFv */ void daNpc_Besu_c::setAfterTalkMotion() { - // NONMATCHING + int idx = 0x1C; + switch (mFaceMotionSeqMngr.getNo()) { + case 1: + idx = 0xD; + break; + case 2: + idx = 0xE; + break; + case 8: + idx = 0xF; + break; + case 10: + idx = 0x13; + break; + case 11: + idx = 0x1A; + break; + } + + mFaceMotionSeqMngr.setNo(idx, -1.0f, 0, 0); } /* 8053853C-805387D0 0017DC 0294+00 2/1 0/0 0/0 .text srchActors__12daNpc_Besu_cFv */ void daNpc_Besu_c::srchActors() { - // NONMATCHING + switch (mType) { + case 0: + if (mActorMngr[0].getActorP() == NULL) { + mActorMngr[0].entry(getNearestActorP(PROC_NPC_TARO)); + } + if (mActorMngr[1].getActorP() == NULL) { + mActorMngr[1].entry(getNearestActorP(PROC_NPC_MARO)); + return; + } + break; + case 2: + if (mActorMngr[3].getActorP() == NULL) { + // LEN is Renaldo + mActorMngr[3].entry(getNearestActorP(PROC_NPC_LEN)); + return; + } + break; + case 11: + if (mActorMngr[0].getActorP() == NULL) { + mActorMngr[0].entry(getNearestActorP(PROC_NPC_TARO)); + } + if (mActorMngr[1].getActorP() == NULL) { + mActorMngr[1].entry(getNearestActorP(PROC_NPC_MARO)); + return; + } + break; + case 12: + if (mActorMngr[0].getActorP() == NULL) { + mActorMngr[0].entry(getNearestActorP(PROC_NPC_TARO)); + } + if (mActorMngr[1].getActorP() == NULL) { + mActorMngr[1].entry(getNearestActorP(PROC_NPC_MARO)); + return; + } + break; + case 13: + if (mActorMngr[0].getActorP() == NULL) { + mActorMngr[0].entry(getNearestActorP(PROC_NPC_TARO)); + } + if (mActorMngr[2].getActorP() == NULL) { + mActorMngr[2].entry(getNearestActorP(PROC_NPC_KOLIN)); + } + if (mActorMngr[4].getActorP() == NULL) { + mActorMngr[4].entry(getNearestActorP(PROC_NPC_SARU)); + return; + } + break; + case 14: + if (mActorMngr[0].getActorP() == NULL) { + mActorMngr[0].entry(getNearestActorP(PROC_NPC_TARO)); + } + if (mActorMngr[1].getActorP() == NULL) { + mActorMngr[1].entry(getNearestActorP(PROC_NPC_MARO)); + return; + } + break; + case 17: + if (mActorMngr[5].getActorP() == NULL) { + mActorMngr[5].entry(getNearestActorP(PROC_NPC_HANJO)); + } + if (mActorMngr[6].getActorP() == NULL) { + mActorMngr[6].entry(getNearestActorP(PROC_NPC_SEIRA)); + } + break; + } } /* 805387D0-80538870 001A70 00A0+00 1/0 0/0 0/0 .text evtTalk__12daNpc_Besu_cFv */ -void daNpc_Besu_c::evtTalk() { - // NONMATCHING +BOOL daNpc_Besu_c::evtTalk() { + if (chkAction(&daNpc_Besu_c::talk)) { + (this->*(mAction))(NULL); + } else { + setAction(&daNpc_Besu_c::talk); + } + + return 1; } /* 80538870-80538938 001B10 00C8+00 1/0 0/0 0/0 .text evtCutProc__12daNpc_Besu_cFv */ -void daNpc_Besu_c::evtCutProc() { - // NONMATCHING +BOOL daNpc_Besu_c::evtCutProc() { + int staff_id = dComIfGp_getEventManager().getMyStaffId("Besu", this, -1); + if (staff_id != -1) { + mStaffId = staff_id; + int actIdx = dComIfGp_getEventManager().getMyActIdx(mStaffId, (char**) &daNpc_Besu_c::mCutNameList, 15, 0, 0); + if (((this->*(mCutList[actIdx]))(mStaffId))) { + dComIfGp_getEventManager().cutEnd(mStaffId); + } + + return 1; + } + + return 0; } /* 80538938-80538B54 001BD8 021C+00 1/0 0/0 0/0 .text action__12daNpc_Besu_cFv */ void daNpc_Besu_c::action() { - // NONMATCHING + fopAc_ac_c* actor_p = NULL; + if (mTwilight == 0) { + actor_p = hitChk(&mCyl1, -1); + } + + if (actor_p != NULL && mType != 5 +#ifndef DEBUG + && !chkNurse() +#endif + ) { + mStagger.setParam(this, actor_p, mCurAngle.y); + setDamage(0, 0xC, 0x12); + // FIXME: Fakematch +#ifdef DEBUG + mStagger.setPower(0.0f); +#else + for (int i = 0; i < 2; i++) { + mStagger.mPower[i] = 0.0f; + } +#endif + mDamageTimerStart = 0; + mJntAnm.lookNone(1); + } + + if (mStagger.checkRebirth()) { + // FIXME: Fakematch +#ifdef DEBUG + mStagger.initialize(); +#else + for (int i = 0; i < 2; i++) { + mStagger.mAngle[i].setall(0); + mStagger.mPower[i] = 0.0f; + } + mStagger.mStagger = 0; + mStagger.field_0x16 = 0; + mStagger.mRebirth = 0; +#endif + mMode = 1; + } + + if (mNextAction) { + if (mAction == mNextAction) { + (this->*(mAction))(NULL); + } else { + setAction(mNextAction); + } + } + + actor_p = field_0xba0.getActorP(); + if (actor_p != NULL) { + switch (((daTag_Push_c*) actor_p)->getId()) { + case 6: { + mEvtNo = 9; + } + } + } + + cLib_calcTimer(&field_0x1120); + cLib_calcTimer(&field_0x1124); } /* 80538B54-80538C18 001DF4 00C4+00 1/0 0/0 0/0 .text beforeMove__12daNpc_Besu_cFv */ void daNpc_Besu_c::beforeMove() { - // NONMATCHING + fopAcM_OffStatus(this, 0x08000000U); + if (checkHide()) { + fopAcM_OnStatus(this, 0x08000000U); + } + + if (checkHide() || mNoDraw) { + attention_info.flags = 0; + } } -/* ############################################################################################## */ -/* 8053E870-8053E874 00011C 0004+00 0/2 0/0 0/0 .rodata @5201 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5201 = 10.0f; -COMPILER_STRIP_GATE(0x8053E870, &lit_5201); -#pragma pop - -/* 8053E874-8053E878 000120 0004+00 0/2 0/0 0/0 .rodata @5202 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5202 = 30.0f; -COMPILER_STRIP_GATE(0x8053E874, &lit_5202); -#pragma pop - -/* 8053E878-8053E87C 000124 0004+00 0/1 0/0 0/0 .rodata @5203 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_5203 = 0x38C90FDB; -COMPILER_STRIP_GATE(0x8053E878, &lit_5203); -#pragma pop - -/* 8053E87C-8053E880 000128 0004+00 0/1 0/0 0/0 .rodata @5204 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5204 = -10.0f; -COMPILER_STRIP_GATE(0x8053E87C, &lit_5204); -#pragma pop - -/* 8053E880-8053E884 00012C 0004+00 0/2 0/0 0/0 .rodata @5205 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5205 = 84.0f; -COMPILER_STRIP_GATE(0x8053E880, &lit_5205); -#pragma pop - -/* 8053E884-8053E888 000130 0004+00 0/1 0/0 0/0 .rodata @5206 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5206 = 130.0f; -COMPILER_STRIP_GATE(0x8053E884, &lit_5206); -#pragma pop - -/* 8053E888-8053E88C 000134 0004+00 0/1 0/0 0/0 .rodata @5207 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5207 = 75.0f; -COMPILER_STRIP_GATE(0x8053E888, &lit_5207); -#pragma pop - -/* 8053E88C-8053E890 000138 0004+00 0/1 0/0 0/0 .rodata @5208 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5208 = 40.0f; -COMPILER_STRIP_GATE(0x8053E88C, &lit_5208); -#pragma pop - -/* 8053E890-8053E894 00013C 0004+00 0/1 0/0 0/0 .rodata @5209 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5209 = 80.0f; -COMPILER_STRIP_GATE(0x8053E890, &lit_5209); -#pragma pop - -/* 8053E894-8053E89C 000140 0004+04 0/2 0/0 0/0 .rodata @5210 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5210[1 + 1 /* padding */] = { - 20.0f, - /* padding */ - 0.0f, -}; -COMPILER_STRIP_GATE(0x8053E894, &lit_5210); -#pragma pop - -/* 8053E89C-8053E8A4 000148 0008+00 2/4 0/0 0/0 .rodata @5212 */ -SECTION_RODATA static u8 const lit_5212[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x8053E89C, &lit_5212); - /* 80538C18-805391B8 001EB8 05A0+00 1/0 0/0 0/0 .text setAttnPos__12daNpc_Besu_cFv */ void daNpc_Besu_c::setAttnPos() { // NONMATCHING + cXyz eyeOffset(10.0f, 30.0f, 0.0f); + if (field_0x112f) { + daPy_getPlayerActorClass()->onWolfEyeKeep(); + } + + BOOL var_r28 = FALSE; + if (mMotionSeqMngr.getNo() == 0x12 && !mMotionSeqMngr.checkEndSequence()) { + var_r28 = TRUE; + } + + mStagger.calc(var_r28); + f32 rad_val = cM_s2rad(mCurAngle.y - field_0xd7e.y); + if (chkNurse()) { + mJntAnm.setParam( + this, mpMorf[0]->getModel(), &eyeOffset, getBackboneJointNo(), getNeckJointNo(), + getHeadJointNo(), daNpc_Besu_Param_c::m.common.body_angleX_min, 0.0f, + 0.0f, 0.0f, -10.0f, daNpc_Besu_Param_c::m.common.head_angleX_max, + daNpc_Besu_Param_c::m.common.head_angleY_min, daNpc_Besu_Param_c::m.common.head_angleY_max, + daNpc_Besu_Param_c::m.common.neck_rotation_ratio, 0.0f, NULL); + } else { + mJntAnm.setParam( + this, mpMorf[0]->getModel(), &eyeOffset, getBackboneJointNo(), getNeckJointNo(), + getHeadJointNo(), daNpc_Besu_Param_c::m.common.body_angleX_min, daNpc_Besu_Param_c::m.common.body_angleX_max, + daNpc_Besu_Param_c::m.common.body_angleY_min, daNpc_Besu_Param_c::m.common.body_angleY_max, + daNpc_Besu_Param_c::m.common.head_angleX_min, daNpc_Besu_Param_c::m.common.head_angleX_max, + daNpc_Besu_Param_c::m.common.head_angleY_min, daNpc_Besu_Param_c::m.common.head_angleY_max, + daNpc_Besu_Param_c::m.common.neck_rotation_ratio, 0.0f, NULL); + } + + mJntAnm.calcJntRad(0.2f, 1.0f, rad_val); + mpMorf[0]->setPlaySpeed(daNpc_Besu_Param_c::m.field_0x8c); + setMtx(); + if (mpBesuMorf != NULL) { + mpBesuMorf->play(0, 0); + Mtx jointAnmMtx; + mDoMtx_stack_c::copy(mpMorf[0]->getModel()->getAnmMtx(10)); + cMtx_copy(mDoMtx_stack_c::get(), jointAnmMtx); + mpBesuMorf->getModel()->setBaseTRMtx(jointAnmMtx); + mpBesuMorf->modelCalc(); + } + + mDoMtx_stack_c::copy(mpMorf[0]->getModel()->getAnmMtx(getHeadJointNo())); + mDoMtx_stack_c::multVec(&eyeOffset, &eyePos); + if (&daNpc_Besu_c::nurse == mNextAction || &daNpc_Besu_c::giveHotWater == mNextAction) { + mJntAnm.setEyeAngleX(eyePos, 1.0f, 0); + mJntAnm.setEyeAngleY(eyePos, mCurAngle.y + 0x8000, 1, 1.0f, 0); + } else if (chkBesu3()) { + mJntAnm.setEyeAngleX(eyePos, 1.0f, -0x1800); + mJntAnm.setEyeAngleY(eyePos, mCurAngle.y, 1, 1.0f, 0); + } else { + mJntAnm.setEyeAngleX(eyePos, 1.0f, 0); + mJntAnm.setEyeAngleY(eyePos, mCurAngle.y, 1, 1.0f, 0); + } + + if (chkNurse()) { + eyeOffset.set(84.0f, 130.0f, 75.0f); + mDoMtx_stack_c::copy(mpMorf[0]->getModel()->getBaseTRMtx()); + mDoMtx_stack_c::multVec(&eyeOffset, &attention_info.position); + } else if (mType == 5) { + eyeOffset.set(40.0f, 80.0f, 20.0f); + mDoMtx_stack_c::copy(mpMorf[0]->getModel()->getBaseTRMtx()); + mDoMtx_stack_c::multVec(&eyeOffset, &attention_info.position); + } else { + eyeOffset.set(0.0f, 0.0f, 0.0f); + eyeOffset.y = daNpc_Besu_Param_c::m.common.attention_offset; + mDoMtx_stack_c::YrotS(mCurAngle.y); + mDoMtx_stack_c::multVec(&eyeOffset, &eyeOffset); + attention_info.position = current.pos + eyeOffset; + } } -/* ############################################################################################## */ -/* 8053E8A4-8053E8AC 000150 0008+00 0/2 0/0 0/0 .rodata @5270 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5270[8] = { - 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x8053E8A4, &lit_5270); -#pragma pop - -/* 8053E8AC-8053E8B4 000158 0008+00 0/2 0/0 0/0 .rodata @5271 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5271[8] = { - 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x8053E8AC, &lit_5271); -#pragma pop - -/* 8053E8B4-8053E8BC 000160 0008+00 0/2 0/0 0/0 .rodata @5272 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5272[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x8053E8B4, &lit_5272); -#pragma pop - -/* 8053E8BC-8053E8C0 000168 0004+00 0/1 0/0 0/0 .rodata @5345 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_5345 = 0x427AE148; -COMPILER_STRIP_GATE(0x8053E8BC, &lit_5345); -#pragma pop - -/* 8053E8C0-8053E8C4 00016C 0004+00 0/1 0/0 0/0 .rodata @5346 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5346 = 85.0f; -COMPILER_STRIP_GATE(0x8053E8C0, &lit_5346); -#pragma pop - -/* 8053E8C4-8053E8C8 000170 0004+00 0/1 0/0 0/0 .rodata @5347 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5347 = 120.0f; -COMPILER_STRIP_GATE(0x8053E8C4, &lit_5347); -#pragma pop - /* 805391B8-80539494 002458 02DC+00 1/0 0/0 0/0 .text setCollision__12daNpc_Besu_cFv */ void daNpc_Besu_c::setCollision() { - // NONMATCHING + cXyz cStack_48; + if (!mHide) { + int tgType = 0xD8FBFDFF; + int tgSPrm = 0x1F; + if (mTwilight) { + tgType = 0; + tgSPrm = 0; + } else if (mStagger.checkStagger()) { + tgType = 0; + tgSPrm = 0; + } + + mCyl1.SetCoSPrm(0x79); + mCyl1.SetTgType(tgType); + mCyl1.SetTgSPrm(tgSPrm); + mCyl1.OnTgNoHitMark(); + cStack_48.set(0.0f, 0.0f, 0.0f); + f32 cylH = mCylH; + f32 wallR = mWallR; + if (mType == 2) { + cStack_48.set(62.72f, 0.0f, 0.0f); + } else if (chkNurse()) { + cStack_48.set(84.0f, 0.0f, 85.0f); + } + + mDoMtx_stack_c::YrotS(mCurAngle.y); + mDoMtx_stack_c::multVec(&cStack_48, &cStack_48); + cStack_48 += current.pos; + mCyl1.SetH(cylH); + mCyl1.SetR(wallR); + mCyl1.SetC(cStack_48); + dComIfG_Ccsp()->Set(&mCyl1); + if ((mType == 11 && !dComIfGp_event_runCheck()) || mType == 3) + { + switch (mType) { + case 3: + wallR = 100.0f; + cStack_48.set(0.0f, 0.0f, 20.0f); + break; + case 11: + wallR = 120.0f; + cStack_48.set(30.0f, 0.0f, 60.0f); + break; + default: + wallR = 0.0f; + cStack_48.set(0.0f, 0.0f, 0.0f); + break; + } + + if (cM3d_IsZero(wallR) == false) { + mDoMtx_stack_c::YrotS(mCurAngle.y); + mDoMtx_stack_c::multVec(&cStack_48, &cStack_48); + cStack_48 += current.pos; + mCyl2.SetCoSPrm(0x19); + mCyl2.SetH(cylH); + mCyl2.SetR(wallR); + mCyl2.SetC(cStack_48); + dComIfG_Ccsp()->Set(&mCyl2); + } + } + } + + mCyl1.ClrCoHit(); + mCyl2.ClrCoHit(); + mCyl1.ClrTgHit(); } /* 80539494-8053949C 002734 0008+00 1/0 0/0 0/0 .text drawDbgInfo__12daNpc_Besu_cFv */ -bool daNpc_Besu_c::drawDbgInfo() { +int daNpc_Besu_c::drawDbgInfo() { return false; } -/* ############################################################################################## */ -/* 8053E8C8-8053E8CC 000174 0004+00 1/1 0/0 0/0 .rodata jointNo$5355 */ -SECTION_RODATA static u8 const jointNo[4] = { - 0x00, - 0x00, - 0x00, - 0x0E, -}; -COMPILER_STRIP_GATE(0x8053E8C8, &jointNo); - /* 8053949C-805395F4 00273C 0158+00 1/0 0/0 0/0 .text drawOtherMdl__12daNpc_Besu_cFv */ void daNpc_Besu_c::drawOtherMdl() { - // NONMATCHING + J3DModel* model_p = mpMorf[0]->getModel(); + if (mpBesuMorf != NULL) { + g_env_light.setLightTevColorType_MAJI(mpBesuMorf->getModel(), &tevStr); + if (field_0x112e == 0) { + mpBesuMorf->getModel()->getModelData()->hide(); + } else { + mpBesuMorf->getModel()->getModelData()->show(); + } + + mpBesuMorf->entryDL(); + dComIfGd_addRealShadow(mShadowKey, mpBesuMorf->getModel()); + } + + for (int i = 0; i < 1; i++) { + if (mpModel[i] != NULL && i == 0 && field_0x112d != 0) { + g_env_light.setLightTevColorType_MAJI(mpModel[i], &tevStr); + + static int const jointNo[1] = {14}; + + mDoMtx_stack_c::copy(model_p->getAnmMtx(jointNo[i])); + Mtx jointAnmMtx; + cMtx_copy(mDoMtx_stack_c::get(), jointAnmMtx); + mpModel[i]->setBaseTRMtx(jointAnmMtx); + mDoExt_modelUpdateDL(mpModel[i]); + dComIfGd_addRealShadow(mShadowKey, mpModel[i]); + } + } } /* 805395F4-805396C4 002894 00D0+00 1/1 0/0 0/0 .text setCupAnm__12daNpc_Besu_cFiif */ -void daNpc_Besu_c::setCupAnm(int param_0, int param_1, f32 param_2) { - // NONMATCHING +int daNpc_Besu_c::setCupAnm(int arg0, int i_attr, f32 i_morf) { + static int cupAnmData[33][2] = { + {-1, 0}, {-1, 0}, {-1, 0}, {-1, 0}, {-1, 0}, {-1, 0}, {-1, 0}, {-1, 0}, + {-1, 0}, {-1, 0}, {-1, 0}, {-1, 0}, {-1, 0}, {-1, 0}, {-1, 0}, {-1, 0}, + {-1, 0}, {-1, 0}, { 9, 5}, { 9, 5}, {-1, 0}, {-1, 0}, {-1, 0}, {-1, 0}, + {-1, 0}, {-1, 0}, {-1, 0}, {-1, 0}, {-1, 0}, {-1, 0}, {-1, 0}, {-1, 0}, + {-1, 0}, + }; + + J3DAnmTransform* transform_p = NULL; + if (mpBesuMorf != NULL) { + if (cupAnmData[arg0][0] > 0) { + transform_p = getTrnsfrmKeyAnmP(l_resNameList[cupAnmData[arg0][1]], cupAnmData[arg0][0]); + } + + if (transform_p != NULL && transform_p != mpBesuMorf->getAnm()) { + mpBesuMorf->setAnm(transform_p, i_attr, i_morf, 1.0f, 0.0f, -1.0f); + } + } + + return 1; } /* 805396C4-805396F8 002964 0034+00 1/0 0/0 0/0 .text afterSetMotionAnm__12daNpc_Besu_cFiifi */ -void daNpc_Besu_c::afterSetMotionAnm(int param_0, int param_1, f32 param_2, int param_3) { - // NONMATCHING +bool daNpc_Besu_c::afterSetMotionAnm(int arg0, int arg1, f32 arg2, int param_3) { + f32 var_f30 = (mCreating == 1) ? 0.0f : arg2; + setCupAnm(arg0, arg1, var_f30); } /* 805396F8-805397B0 002998 00B8+00 1/0 0/0 0/0 .text * getFaceMotionAnm__12daNpc_Besu_cF26daNpcT_faceMotionAnmData_c */ -void daNpc_Besu_c::getFaceMotionAnm(daNpcT_faceMotionAnmData_c param_0) { - // NONMATCHING +daNpcT_faceMotionAnmData_c daNpc_Besu_c::getFaceMotionAnm(daNpcT_faceMotionAnmData_c arg0) { + daNpcT_faceMotionAnmData_c rv = arg0; + if (chkBesu3() && rv.mBtpFileIdx == 25 && rv.mBtpArcIdx == 3) { + rv.mBtpFileIdx = 20; + rv.mBtpArcIdx = 6; + } + + return rv; } /* 805397B0-80539840 002A50 0090+00 1/0 0/0 0/0 .text changeAnm__12daNpc_Besu_cFPiPi */ -void daNpc_Besu_c::changeAnm(int* param_0, int* param_1) { - // NONMATCHING +void daNpc_Besu_c::changeAnm(int* arg0, int* arg1) { + if (mType == 0x11) { + switch (*arg0) { + case 14: + *arg0 = 0xA; + *arg1 = 7; + return; + case 16: + *arg0 = 0xB; + *arg1 = 7; + return; + case 17: + *arg0 = 0xC; + *arg1 = 7; + return; + case 19: + *arg0 = 0xD; + *arg1 = 7; + break; + } + } } /* 80539840-805398DC 002AE0 009C+00 1/0 0/0 0/0 .text changeBck__12daNpc_Besu_cFPiPi */ -void daNpc_Besu_c::changeBck(int* param_0, int* param_1) { - // NONMATCHING +void daNpc_Besu_c::changeBck(int* arg0, int* arg1) { + if (mType == 0x11) { + switch (*arg0) { + case 5: + *arg0 = 5; + *arg1 = 7; + return; + case 6: + *arg0 = 6; + *arg1 = 7; + return; + case 7: + *arg0 = 7; + *arg1 = 7; + return; + case 8: + *arg0 = 8; + *arg1 = 7; + return; + case 9: + *arg0 = 9; + *arg1 = 7; + break; + } + } } /* 805398DC-80539968 002B7C 008C+00 1/0 0/0 0/0 .text changeBtp__12daNpc_Besu_cFPiPi */ -void daNpc_Besu_c::changeBtp(int* param_0, int* param_1) { - // NONMATCHING +void daNpc_Besu_c::changeBtp(int* arg0, int* arg1) { + if (mType == 0x11) { + switch (*arg0) { + case 25: + *arg0 = 0x13; + *arg1 = 7; + return; + case 18: + *arg0 = 0x14; + *arg1 = 7; + return; + case 26: + *arg0 = 0x15; + *arg1 = 7; + return; + case 22: + *arg0 = 0x16; + *arg1 = 7; + break; + } + } } /* 80539968-80539994 002C08 002C+00 1/0 0/0 0/0 .text changeBtk__12daNpc_Besu_cFPiPi */ -void daNpc_Besu_c::changeBtk(int* param_0, int* param_1) { - // NONMATCHING +void daNpc_Besu_c::changeBtk(int* arg0, int* arg1) { + if (mType == 0x11) { + if (*arg0 != 0x16) { + return; + } + + *arg0 = 0x10; + *arg1 = 7; + } } /* 80539994-80539ACC 002C34 0138+00 1/1 0/0 0/0 .text selectAction__12daNpc_Besu_cFv */ -void daNpc_Besu_c::selectAction() { - // NONMATCHING +int daNpc_Besu_c::selectAction() { + mNextAction = NULL; + switch (mType) { + case 6: + mNextAction = &daNpc_Besu_c::nurse; + break; + case 7: + mNextAction = &daNpc_Besu_c::giveHotWater; + break; + case 8: + mNextAction = &daNpc_Besu_c::nurse; + break; + case 14: + if (daNpcKakashi_chkSwdTutorialStage() & 0xFF) { + mNextAction = &daNpc_Besu_c::swdTutorial; + } else { + mNextAction = &daNpc_Besu_c::wait; + } + + break; + default: + mNextAction = &daNpc_Besu_c::wait; + break; + } + + return 1; } /* 80539ACC-80539AF8 002D6C 002C+00 2/2 0/0 0/0 .text * chkAction__12daNpc_Besu_cFM12daNpc_Besu_cFPCvPvPv_i */ -void daNpc_Besu_c::chkAction(int (daNpc_Besu_c::*param_0)(void*)) { - // NONMATCHING +int daNpc_Besu_c::chkAction(actionFunc arg0) { + return mAction == arg0; } /* 80539AF8-80539BA0 002D98 00A8+00 2/2 0/0 0/0 .text * setAction__12daNpc_Besu_cFM12daNpc_Besu_cFPCvPvPv_i */ -void daNpc_Besu_c::setAction(int (daNpc_Besu_c::*param_0)(void*)) { - // NONMATCHING -} +int daNpc_Besu_c::setAction(actionFunc arg0) { + mMode = MODE_EXIT; + if (mAction != NULL) { + (this->*(mAction))(NULL); + } -/* ############################################################################################## */ -/* 8053E8CC-8053E8D0 000178 0004+00 1/1 0/0 0/0 .rodata @5582 */ -SECTION_RODATA static f32 const lit_5582 = 4.0f; -COMPILER_STRIP_GATE(0x8053E8CC, &lit_5582); + mMode = MODE_ENTER; + mAction = arg0; + if (mAction != NULL) { + (this->*(mAction))(NULL); + } + + return 1; +} /* 80539BA0-80539CF4 002E40 0154+00 1/1 0/0 0/0 .text mop__12daNpc_Besu_cFii */ -void daNpc_Besu_c::mop(int param_0, int param_1) { - // NONMATCHING +void daNpc_Besu_c::mop(int arg0, int arg1) { + if (field_0x1120) { + action(); + if (field_0x1120 == 0) { + mFaceMotionSeqMngr.setNo(7, 4.0f, 0, 0); + mMotionSeqMngr.setNo(0xD, 4.0f, 0, 0); + field_0x1124 = arg1; + } + } else if (field_0x1124) { + action(); + if (field_0x1124 == 0) { + mFaceMotionSeqMngr.setNo(4, 4.0f, 0, 0); + mMotionSeqMngr.setNo(0xE, 4.0f, 0, 0); + field_0x1120 = arg0; + } + } } -/* ############################################################################################## */ -/* 8053E908-8053E908 0001B4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8053EAFB = "prm"; -#pragma pop - /* 80539CF4-80539E48 002F94 0154+00 1/0 0/0 0/0 .text cutConversationAboutSaru__12daNpc_Besu_cFi */ -void daNpc_Besu_c::cutConversationAboutSaru(int param_0) { - // NONMATCHING +int daNpc_Besu_c::cutConversationAboutSaru(int arg0) { + int retval = 0; + int* param_p = NULL; + int prm_val = -1; + param_p = dComIfGp_evmng_getMyIntegerP(arg0, "prm"); + if (param_p != NULL) { + prm_val = *param_p; + } + + if (dComIfGp_getEventManager().getIsAddvance(arg0)) { + switch (prm_val) { + case 0: { + mPlayerAngle = fopAcM_searchPlayerAngleY(this); + if (checkStep()) { + mStepMode = 0; + } + } + + case 1: { + break; + } + } + } + + switch (prm_val) { + case 0: { + retval = 1; + break; + } + + case 1: { + mJntAnm.lookPlayer(0U); + if (mPlayerAngle != mCurAngle.y) { + step(mPlayerAngle, 0x1C, 0x11, 0xF, 0); + } else { + retval = 1; + } + + break; + } + } + + return retval; } -/* ############################################################################################## */ -/* 8053E8D0-8053E8DC 00017C 000C+00 0/1 0/0 0/0 .rodata @5629 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5629[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x8053E8D0, &lit_5629); -#pragma pop - -/* 8053E8DC-8053E8E8 000188 000C+00 0/1 0/0 0/0 .rodata @5644 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5644[12] = { - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, -}; -COMPILER_STRIP_GATE(0x8053E8DC, &lit_5644); -#pragma pop - -/* 8053E908-8053E908 0001B4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8053EAFF = "msgNo"; -SECTION_DEAD static char const* const stringBase_8053EB05 = "msgNo2"; -SECTION_DEAD static char const* const stringBase_8053EB0C = "timer"; -#pragma pop - /* 80539E48-8053A45C 0030E8 0614+00 3/0 0/0 0/0 .text * cutConversationAboutPachinko__12daNpc_Besu_cFi */ -void daNpc_Besu_c::cutConversationAboutPachinko(int param_0) { - // NONMATCHING +int daNpc_Besu_c::cutConversationAboutPachinko(int arg0) { + int retval = 0; + int* param_p = NULL; + int prm_val = -1; + int msgNo_val = 0; + int msgNo2_val = 0; + 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, "msgNo"); + if (param_p != NULL) { + msgNo_val = *param_p; + } + + param_p = dComIfGp_evmng_getMyIntegerP(arg0, "msgNo2"); + if (param_p != NULL) { + msgNo2_val = *param_p; + } + + param_p = dComIfGp_evmng_getMyIntegerP(arg0, "timer"); + if (param_p != NULL) { + timer_val = *param_p; + } + + fopAc_ac_c* speakers[3] = {mActorMngr[0].getActorP(), mActorMngr[1].getActorP(), this}; + dComIfGp_setMesgCameraInfoActor(speakers[0], speakers[1], speakers[2], + NULL, NULL, NULL, NULL, NULL, NULL, NULL); + + if (dComIfGp_getEventManager().getIsAddvance(arg0)) { + switch (prm_val) { + case 0: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 21: + break; + + case 1: + mEventTimer = timer_val; + initTalk(mFlowNodeNo, speakers); + break; + + case 10: + field_0x112c = 1; + field_0x1128 = 0; + initTalk(mFlowNodeNo, speakers); + break; + + case 20: + initTalk(mFlowNodeNo, speakers); + break; + } + } + + int my_vals[3] = {-1, -1, -1}; + + switch (prm_val) { + case 0: { + retval = 1; + break; + } + + case 1: + case 2: + case 3: + case 4: + case 10: + case 11: + case 12: { + switch (prm_val) { + case 1: + case 2: { + mJntAnm.lookPlayer(0U); + if (mPlayerAngle != mCurAngle.y) { + if (chkBesu3()) { + step(mPlayerAngle, -1, -1, 15, 0); + } else { + step(mPlayerAngle, -1, -1, 15, 0); + } + } + + break; + } + + case 3: { + JUT_ASSERT(0xD84, 0 != speakers[0]); + mJntAnm.lookActor(speakers[0], -40.0f, 0U); + break; + } + + case 4: { + JUT_ASSERT(0xD89, 0 != speakers[0]); + mJntAnm.lookActor(speakers[0], -40.0f, 0U); + if (home.angle.y != mCurAngle.y) { + if (chkBesu3()) { + step(home.angle.y, -1, -1, 15, 0); + } else { + step(home.angle.y, -1, -1, 15, 0); + } + } + + break; + } + + case 10: + case 11: { + JUT_ASSERT(0xD9F, 0 != speakers[0]); + mJntAnm.lookActor(speakers[0], -40.0f, 0U); + break; + } + + case 12: { + JUT_ASSERT(0xDA4, 0 != speakers[1]); + mJntAnm.lookActor(speakers[1], -40.0f, 0U); + break; + } + } + } + /* fallthrough */ + case 20: { + my_vals[0] = msgNo_val; + my_vals[1] = msgNo2_val; + if (talkProc(my_vals, 0, speakers, 0)) { + if (msgNo_val == 0 && msgNo2_val == 0) { + if (mFlow.checkEndFlow()) { + retval = 1; + } + } else { + retval = 1; + } + } + + break; + } + + case 21: { + dStage_changeScene(10, 0.0f, 0U, fopAcM_GetRoomNo(this), 0, -1); + break; + } + } + + return retval; } -/* ############################################################################################## */ -/* 8053E8E8-8053E8EC 000194 0004+00 0/3 0/0 0/0 .rodata @5769 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5769 = -40.0f; -COMPILER_STRIP_GATE(0x8053E8E8, &lit_5769); -#pragma pop - -/* 8053E8EC-8053E8F8 000198 000C+00 0/1 0/0 0/0 .rodata @5779 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_5779[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x8053E8EC, &lit_5779); -#pragma pop - /* 8053A45C-8053A7A0 0036FC 0344+00 1/0 0/0 0/0 .text * cutConversationAboutWoodSwd__12daNpc_Besu_cFi */ -void daNpc_Besu_c::cutConversationAboutWoodSwd(int param_0) { - // NONMATCHING -} +int daNpc_Besu_c::cutConversationAboutWoodSwd(int arg0) { + 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; + } -/* ############################################################################################## */ -/* 8053E8F8-8053E8FC 0001A4 0004+00 0/2 0/0 0/0 .rodata @5930 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_5930 = 50.0f; -COMPILER_STRIP_GATE(0x8053E8F8, &lit_5930); -#pragma pop + param_p = dComIfGp_evmng_getMyIntegerP(arg0, "timer"); + if (param_p != NULL) { + timer_val = *param_p; + } + + fopAc_ac_c* speakers[3] = {mActorMngr[0].getActorP(), mActorMngr[1].getActorP(), this}; + dComIfGp_setMesgCameraInfoActor(speakers[0], speakers[1], speakers[2], + NULL, NULL, NULL, NULL, NULL, NULL, NULL); + + if (dComIfGp_getEventManager().getIsAddvance(arg0)) { + switch (prm_val) { + case 0: { + mEventTimer = timer_val; + initTalk(mFlowNodeNo, speakers); + break; + } + + case 1: { + break; + } + } + } + + switch (prm_val) { + case 0: { + mJntAnm.lookPlayer(0); + if (mPlayerAngle != mCurAngle.y) { + if (chkBesu3()) { + if (step(mPlayerAngle, 0x1C, 0x1D, 0xF, 0)) { + mFaceMotionSeqMngr.setNo(0x1C, -1.0f, 0, 0); + mMotionSeqMngr.setNo(0, -1.0f, 0, 0); + } + } else if (step(mPlayerAngle, 0x1C, 0x11, 0xF, 0)) { + mFaceMotionSeqMngr.setNo(0x1C, -1.0f, 0, 0); + mMotionSeqMngr.setNo(0, -1.0f, 0, 0); + } + } + + if (cLib_calcTimer(&mEventTimer) == 0) { + retval = 1; + } + + break; + } + + case 1: { + if (talkProc(NULL, 0, speakers, 0)) { + int ev_id; + switch (mFlow.getEventId(&ev_id)) { + case 2: { + dStage_changeScene(0xC, 0.0f, 0U, fopAcM_GetRoomNo(this), 0, -1); + break; + } + + default: { + if (mFlow.checkEndFlow()) { + retval = 1; + } + + break; + } + } + } + + break; + } + } + + return retval; +} /* 8053A7A0-8053AA6C 003A40 02CC+00 1/0 0/0 0/0 .text cutSwdTutorial__12daNpc_Besu_cFi */ -void daNpc_Besu_c::cutSwdTutorial(int param_0) { - // NONMATCHING +int daNpc_Besu_c::cutSwdTutorial(int arg0) { + fopAc_ac_c* actor_p = NULL; + cXyz my_vec_0; + cXyz my_vec_1; + int retval = 0; + int* param_p = NULL; + int prm_val = -1; + param_p = dComIfGp_evmng_getMyIntegerP(arg0, "prm"); + if (param_p != NULL) { + prm_val = *param_p; + } + + if (dComIfGp_getEventManager().getIsAddvance(arg0)) { + switch (prm_val) { + case 0: { + break; + } + + case 1: { + break; + } + + case 71: { + mFaceMotionSeqMngr.setNo(1, 0.0f, 1, 0); + mMotionSeqMngr.setNo(2, 0.0f, 1, 0); + setAngle(home.angle.y); + my_vec_0.set(50.0f, 0.0f, 0.0f); + mDoMtx_stack_c::YrotS(mCurAngle.y); + mDoMtx_stack_c::multVec(&my_vec_0, &my_vec_0); + my_vec_0 += current.pos; + setPos(my_vec_0); + break; + } + } + } + + switch (prm_val) { + case 0: { + mDamageTimer = 1; + action(); + mJntAnm.lookNone(0); + retval = 1; + break; + } + + case 1: { + mDamageTimer = 1; + action(); + actor_p = mActorMngr[1].getActorP(); + JUT_ASSERT(0xE7E, 0 != actor_p); + mJntAnm.lookActor(actor_p, -40.0f, 0); + retval = 1; + break; + } + + case 71: { + mJntAnm.lookCamera(0); + break; + } + } + + return retval; } -/* ############################################################################################## */ -/* 8053E8FC-8053E900 0001A8 0004+00 0/1 0/0 0/0 .rodata @6067 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_6067 = 0.5f; -COMPILER_STRIP_GATE(0x8053E8FC, &lit_6067); -#pragma pop - /* 8053AA6C-8053AF5C 003D0C 04F0+00 1/0 0/0 0/0 .text cutFindMonkey__12daNpc_Besu_cFi */ -void daNpc_Besu_c::cutFindMonkey(int param_0) { - // NONMATCHING +int daNpc_Besu_c::cutFindMonkey(int arg0) { + fopAc_ac_c* actor_p = NULL; + cXyz my_vec_0; + 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(27, 0.0f, 0, 0); + break; + } + + case 2: { + break; + } + + case 3: { + setAngle(fopAcM_searchActorAngleY(this, (fopAc_ac_c*) dComIfGp_getHorseActor())); + mJntAnm.lookNone(1); + mEventTimer = timer_val; + if (mEventTimer == 0) { + mMotionSeqMngr.setNo(28, -1.0f, 0, 0); + } + + break; + } + + case 4: { + mHide = 1; + speedF = 0.0f; + speed.setall(0.0f); + break; + } + } + } + + switch (prm_val) { + case 0: { + mJntAnm.lookPlayer(0); + retval = 1; + break; + } + + case 1: { + actor_p = mActorMngr[4].getActorP(); + JUT_ASSERT(0xED5, 0 != actor_p); + mJntAnm.lookActor(actor_p, -40.0f, 0U); + retval = 1; + break; + } + + case 2: { + break; + } + + case 3: { + mJntAnm.lookNone(0U); + if (mEventTimer == 0) { + actor_p = (fopAc_ac_c*) dComIfGp_getHorseActor(); + JUT_ASSERT(0xEE4, 0 != actor_p); + my_vec_0 = actor_p->current.pos; + if (50.0f < current.pos.absXZ(my_vec_0)) { + cLib_addCalcAngleS2(¤t.angle.y, cLib_targetAngleY(¤t.pos, &my_vec_0), 4, 0x800); + shape_angle.y = current.angle.y; + mCurAngle.y = shape_angle.y; + cLib_chaseF(&speedF, 10.0f, 0.5f); + } else { + retval = 1; + } + } else if (cLib_calcTimer(&mEventTimer) == 0) { + mMotionSeqMngr.setNo(28, -1.0f, 0, 0); + } + + break; + } + + case 4: { + retval = 1; + break; + } + } + + return retval; } /* 8053AF5C-8053B058 0041FC 00FC+00 1/0 0/0 0/0 .text cutGetWoodSwd__12daNpc_Besu_cFi */ -void daNpc_Besu_c::cutGetWoodSwd(int param_0) { - // NONMATCHING +int daNpc_Besu_c::cutGetWoodSwd(int arg0) { + int retval = 0; + int* param_p = NULL; + int prm_val = -1; + param_p = dComIfGp_evmng_getMyIntegerP(arg0, "prm"); + if (param_p != NULL) { + prm_val = *param_p; + } + + if (dComIfGp_getEventManager().getIsAddvance(arg0)) { + switch (prm_val) { + case 0: { + break; + } + + case 1: { + mHide = 1; + break; + } + + case 10: { + break; + } + + case 11: { + mHide = 0; + break; + } + } + } + + switch (prm_val) { + case 0: + case 1: + case 10: + case 11: { + action(); + retval = 1; + } + } + + return retval; } /* 8053B058-8053B250 0042F8 01F8+00 1/0 0/0 0/0 .text cutCacaricoConversation__12daNpc_Besu_cFi */ -void daNpc_Besu_c::cutCacaricoConversation(int param_0) { - // NONMATCHING +int daNpc_Besu_c::cutCacaricoConversation(int arg0) { + int retval = 0; + int* param_p = NULL; + int prm_val = -1; + param_p = dComIfGp_evmng_getMyIntegerP(arg0, "prm"); + if (param_p != NULL) { + prm_val = *param_p; + } + + if (dComIfGp_getEventManager().getIsAddvance(arg0)) { + switch (prm_val) { + case 0: { + mPlayerAngle = fopAcM_searchPlayerAngleY(this); + if (checkStep()) { + mStepMode = 0; + } + + break; + } + + case 1: { + break; + } + } + } + + int lits_6105[2] = {-1, -1}; + (void) lits_6105; + switch (prm_val) { /* irregular */ + case 0: { + mJntAnm.lookPlayer(0); + if (mPlayerAngle != mCurAngle.y) { + if (step(mPlayerAngle, 0x1C, 0x11, 0xF, 0)) { + mFaceMotionSeqMngr.setNo(28, -1.0f, 0, 0); + mMotionSeqMngr.setNo(0, -1.0f, 0, 0); + } + } else { + retval = 1; + } + + break; + } + + case 1: { + mJntAnm.lookPlayer(0); + retval = 1; + break; + } + } + + return retval; } /* 8053B250-8053B530 0044F0 02E0+00 1/0 0/0 0/0 .text cutSurprise__12daNpc_Besu_cFi */ -void daNpc_Besu_c::cutSurprise(int param_0) { - // NONMATCHING +int daNpc_Besu_c::cutSurprise(int arg0) { + daTag_Push_c* tagpush_p = (daTag_Push_c*) field_0xba0.getActorP(); + int retval = 0; + int* param_p = NULL; + int prm_val = -1; + param_p = dComIfGp_evmng_getMyIntegerP(arg0, "prm"); + if (param_p != NULL) { + prm_val = *param_p; + } + + if (dComIfGp_getEventManager().getIsAddvance(arg0)) { + switch (prm_val) { + case 0: + mFaceMotionSeqMngr.setNo(0x13, 0.0f, 0, 0); + mMotionSeqMngr.setNo(6, 0.0f, 0, 0); + mJntAnm.lookNone(1); + tagpush_p->pushBackPlayer(1); + break; + + case 1: + initTalk(tagpush_p->getFlowNodeNo(), NULL); + mJntAnm.lookPlayer(1U); + break; + } + } + + switch (prm_val) { + case 0: + retval = 1; + break; + + case 1: + mJntAnm.lookPlayer(0); + if (talkProc(NULL, 0, NULL, 0) && mFlow.checkEndFlow()) { + field_0xba0.remove(); + retval = 1; + } + break; + } + + return retval; } -/* ############################################################################################## */ -/* 8053E908-8053E908 0001B4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8053EB12 = "timer1"; -SECTION_DEAD static char const* const stringBase_8053EB19 = "timer2"; -#pragma pop - /* 8053B530-8053B820 0047D0 02F0+00 1/0 0/0 0/0 .text cutConversationInHotel__12daNpc_Besu_cFi */ -void daNpc_Besu_c::cutConversationInHotel(int param_0) { - // NONMATCHING +int daNpc_Besu_c::cutConversationInHotel(int arg0) { + int retval = 0; + int* param_p = NULL; + int prm_val = -1; + int timer_val = 0; + int timer1_val = 0; + int timer2_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, "timer1"); + if (param_p != NULL) { + timer1_val = *param_p; + } + + param_p = dComIfGp_evmng_getMyIntegerP(arg0, "timer2"); + if (param_p != NULL) { + timer2_val = *param_p; + } + + if (dComIfGp_getEventManager().getIsAddvance(arg0)) { + switch (prm_val) { + case 0: + field_0x1120 = 1; + field_0x1124 = 0; + break; + case 1: + mFaceMotionSeqMngr.setNo(0x15, 0.0f, 1, 0); + mMotionSeqMngr.setNo(0x17, 0.0f, 1, 0); + break; + case 2: + mEventTimer = timer_val; + break; + case 3: + mFaceMotionSeqMngr.setNo(7, 0.0f, 1, 0); + mMotionSeqMngr.setNo(0xD, 0.0f, 1, 0); + break; + } + } + + switch (prm_val) { + case 0: + mop(timer1_val, timer2_val); + retval = 1; + break; + case 1: + retval = 1; + break; + case 2: + if (mEventTimer != 0) { + if (cLib_calcTimer(&mEventTimer) == 0) { + mFaceMotionSeqMngr.setNo(0x14, 0.0f, 0, 0); + mMotionSeqMngr.setNo(0x16, 0.0f, 0, 0); + mSound.startCreatureVoice(Z2SE_BESU_V_SHIKARARE, -1); + } else { + mop(timer1_val, timer2_val); + } + } else { + retval = 1; + } + break; + case 3: + retval = 1; + break; + } + + return retval; } /* 8053B820-8053BA60 004AC0 0240+00 1/0 0/0 0/0 .text * cutConversationAboutDeathMt__12daNpc_Besu_cFi */ -void daNpc_Besu_c::cutConversationAboutDeathMt(int param_0) { - // NONMATCHING +int daNpc_Besu_c::cutConversationAboutDeathMt(int arg0) { + int retval = 0; + int* param_p = NULL; + int prm_val = -1; + param_p = dComIfGp_evmng_getMyIntegerP(arg0, "prm"); + if (param_p != NULL) { + prm_val = *param_p; + } + + if (dComIfGp_getEventManager().getIsAddvance(arg0)) { + switch (prm_val) { + case 0: + mFaceMotionSeqMngr.setNo(3, -1.0f, 0, 0); + mMotionSeqMngr.setNo(4, -1.0f, 0, 0); + initTalk(mFlowNodeNo, NULL); + break; + case 1: + mFaceMotionSeqMngr.setNo(16, -1.0f, 0, 0); + mMotionSeqMngr.setNo(19, -1.0f, 0, 0); + break; + case 2: + mFaceMotionSeqMngr.setNo(17, -1.0f, 0, 0); + mMotionSeqMngr.setNo(20, -1.0f, 0, 0); + break; + } + } + + switch (prm_val) { + case 0: { + if (talkProc(NULL, 0, NULL, 0) && mFlow.checkEndFlow()) { + retval = 1; + } + + break; + } + + case 1: + case 2: { + if (mMotionSeqMngr.checkEndSequence()) { + retval = 1; + } + + break; + } + } + + return retval; } /* 8053BA60-8053BD18 004D00 02B8+00 1/0 0/0 0/0 .text cutConversationAboutGoron__12daNpc_Besu_cFi */ -void daNpc_Besu_c::cutConversationAboutGoron(int param_0) { - // NONMATCHING +int daNpc_Besu_c::cutConversationAboutGoron(int arg0) { + int retval = 0; + int* param_p = NULL; + int prm_val = -1; + param_p = dComIfGp_evmng_getMyIntegerP(arg0, "prm"); + if (param_p != NULL) { + prm_val = *param_p; + } + + if (dComIfGp_getEventManager().getIsAddvance(arg0)) { + switch (prm_val) { + case 0: + mFaceMotionSeqMngr.setNo(5, -1.0f, 0, 0); + mMotionSeqMngr.setNo(0xF, -1.0f, 0, 0); + break; + case 1: + mFaceMotionSeqMngr.setNo(6, -1.0f, 0, 0); + mMotionSeqMngr.setNo(0x10, -1.0f, 0, 0); + field_0x1120 = 0x20; + break; + case 2: + mFaceMotionSeqMngr.setNo(5, 0.0f, 1, 0); + mMotionSeqMngr.setNo(0xF, 0.0f, 1, 0); + break; + case 3: + mFaceMotionSeqMngr.setNo(6, -1.0f, 0, 0); + mMotionSeqMngr.setNo(0x10, -1.0f, 0, 0); + field_0x1120 = 0x20; + break; + } + } + + switch (prm_val) { + case 0: + action(); + retval = 1; + break; + case 1: + action(); + if (field_0x1120 == 0) { + retval = 1; + } + break; + case 2: + retval = 1; + break; + case 3: + if (cLib_calcTimer(&field_0x1120) == 0) { + retval = 1; + } + break; + } + + return retval; } /* 8053BD18-8053BE84 004FB8 016C+00 1/0 0/0 0/0 .text cutNurse__12daNpc_Besu_cFi */ -void daNpc_Besu_c::cutNurse(int param_0) { - // NONMATCHING +int daNpc_Besu_c::cutNurse(int arg0) { + int retval = 0; + int* param_p = NULL; + int prm_val = -1; + param_p = dComIfGp_evmng_getMyIntegerP(arg0, "prm"); + if (param_p != NULL) { + prm_val = *param_p; + } + + if (dComIfGp_getEventManager().getIsAddvance(arg0)) { + switch (prm_val) { + case 0: + break; + case 1: + mFaceMotionSeqMngr.setNo(22, -1.0f, 0, 0); + mMotionSeqMngr.setNo(24, -1.0f, 0, 0); + break; + case 2: + mFaceMotionSeqMngr.setNo(9, 0.0f, 1, 0); + mMotionSeqMngr.setNo(5, 0.0f, 1, 0); + break; + } + } + + switch (prm_val) { + case 0: + case 1: + case 2: { + field_0xe26 = false; + retval = 1; + break; + } + } + + return retval; } /* 8053BE84-8053BF60 005124 00DC+00 1/0 0/0 0/0 .text cutClothTry__12daNpc_Besu_cFi */ -void daNpc_Besu_c::cutClothTry(int param_0) { - // NONMATCHING +int daNpc_Besu_c::cutClothTry(int arg0) { + int retval = 0; + int* param_p = NULL; + int prm_val = -1; + param_p = dComIfGp_evmng_getMyIntegerP(arg0, "prm"); + if (param_p != NULL) { + prm_val = *param_p; + } + + if (dComIfGp_getEventManager().getIsAddvance(arg0)) { + switch (prm_val) { + case 0: + mHide = 1; + break; + case 1: + mHide = 0; + break; + } + } + + switch (prm_val) { + case 0: + case 1: { + action(); + retval = 1; + break; + } + } + + return retval; } /* 8053BF60-8053C08C 005200 012C+00 1/0 0/0 0/0 .text cutThankYou__12daNpc_Besu_cFi */ -void daNpc_Besu_c::cutThankYou(int param_0) { - // NONMATCHING +int daNpc_Besu_c::cutThankYou(int arg0) { + int retval = 0; + int* param_p = NULL; + int prm_val = -1; + param_p = dComIfGp_evmng_getMyIntegerP(arg0, "prm"); + if (param_p != NULL) { + prm_val = *param_p; + } + + if (dComIfGp_getEventManager().getIsAddvance(arg0)) { + switch (prm_val) { + case 0: { + break; + } + + case 1: { + mFaceMotionSeqMngr.setNo(25, 0.0f, 0, 0); + mMotionSeqMngr.setNo(27, 0.0f, 0, 0); + break; + } + } + } + + switch (prm_val) { + case 0: + action(); + retval = 1; + break; + case 1: + retval = 1; + break; + } + + return retval; } /* 8053C08C-8053CAA0 00532C 0A14+00 2/0 0/0 0/0 .text wait__12daNpc_Besu_cFPv */ -void daNpc_Besu_c::wait(void* param_0) { - // NONMATCHING +int daNpc_Besu_c::wait(void* param_0) { + fopAc_ac_c* actor_p = NULL; + switch (mMode) { + case 0: + case 1: { + if (mStagger.checkStagger() == 0) { + switch (mType) { + case 2: { + if (getBitSW() != 0xFF && dComIfGs_isSwitch(getBitSW(), fopAcM_GetRoomNo(this))) { + mFaceMotionSeqMngr.setNo(0x18, -1.0f, 0, 0); + mMotionSeqMngr.setNo(0x1A, -1.0f, 0, 0); + } else { + mFaceMotionSeqMngr.setNo(0x17, -1.0f, 0, 0); + mMotionSeqMngr.setNo(0x19, -1.0f, 0, 0); + } + + break; + } + + case 5: { + mFaceMotionSeqMngr.setNo(0x13, -1.0f, 0, 0); + mMotionSeqMngr.setNo(6, -1.0f, 0, 0); + break; + } + + default: { + if (chkBesu3()) { + mFaceMotionSeqMngr.setNo(28, -1.0f, 0, 0); + mMotionSeqMngr.setNo(8, -1.0f, 0, 0); + } else { + mFaceMotionSeqMngr.setNo(28, -1.0f, 0, 0); + mMotionSeqMngr.setNo(0, -1.0f, 0, 0); + } + + break; + } + } + + field_0x1118 = 0; + field_0x111c = 0; + mMode = 2; + } + } + + case 2: { + switch (mType) { + case 0: { + if (daNpcT_chkEvtBit(0x1F) && mHide) { + fopAcM_delete(this); + return 1; + } + + break; + } + + case 2: { + actor_p = (daNpc_Len_c*) mActorMngr[3].getActorP(); + if (actor_p != NULL && + ((daNpc_Len_c*) actor_p)->checkStartDemo13StbEvt( + this, daNpc_Besu_Param_c::m.common.box_min_x, daNpc_Besu_Param_c::m.common.box_min_y, + daNpc_Besu_Param_c::m.common.box_min_z, daNpc_Besu_Param_c::m.common.box_max_x, + daNpc_Besu_Param_c::m.common.box_max_y, daNpc_Besu_Param_c::m.common.box_max_z, + daNpc_Besu_Param_c::m.common.box_offset)) + { + mEvtNo = 8; + field_0x112f = 1; + } + + if (field_0x112f && daNpcT_chkEvtBit(0x3C) && dComIfGp_event_runCheck() == 0) { + field_0x112f = 0; + } + + break; + } + + case 13: { + if (daNpcT_chkEvtBit(0x25C)) { + fopAcM_delete(this); + return 1; + } + + break; + } + } + + if (mStagger.checkStagger() == 0) { + if (mType == 2) { + mJntAnm.lookNone(0); + if (getBitSW() != 0xFF) { + if (dComIfGs_isSwitch(getBitSW(), fopAcM_GetRoomNo(this)) + && mMotionSeqMngr.getNo() != 26) { + mMode = 1; + } + } + + attention_info.flags = 0; + } else { + u8 var_r28 = 0; + if (daNpcKakashi_chkSwdTutorialStage() & 0xFF) { + mPlayerActorMngr.remove(); + } else { + if (mType == 11 || mType == 17) { + mPlayerActorMngr.remove(); + } else if (mType == 12) { + var_r28 = dComIfGs_getTmpReg(0xFBFF); + if (var_r28 == 2 || var_r28 == 1) { + mPlayerActorMngr.entry(daPy_getPlayerActorClass()); + } else if (var_r28 == 0) { + mPlayerActorMngr.remove(); + } + } + } + + if (mPlayerActorMngr.getActorP() != NULL && mTwilight == 0) { + if (mType == 3 || mType == 4) { + dComIfGs_onTmpBit(0xD02); + } + + mJntAnm.lookPlayer(0); + if (mType == 0xC) { + if (var_r28 == 1) { + mJntAnm.lookNone(0); + } + } else { + if (chkActorInSight(mPlayerActorMngr.getActorP(), mAttnFovY, mCurAngle.y) == 0) { + mJntAnm.lookNone(0); + } + + if (!srchPlayerActor() && home.angle.y == mCurAngle.y) { + mMode = 1; + } + } + } else { + if (mType == 3 || mType == 4) { + dComIfGs_offTmpBit(0xD02); + } + + mJntAnm.lookNone(0); + if (home.angle.y != mCurAngle.y) { + if (field_0xe34) { + if (chkBesu3()) { + if (step(home.angle.y, 0x1C, 0x1D, 0xF, 0)) { + mMode = 1; + } + } else if (step(home.angle.y, 0x1C, 0x11, 0xF, 0)) { + mMode = 1; + } + } else { + setAngle(home.angle.y); + mMode = 1; + } + attention_info.flags = 0; + } else if (daNpcKakashi_chkSwdTutorialStage() & 0xFF) { + mJntAnm.lookPlayer(0); + } else if (mTwilight == 0) { + srchPlayerActor(); + } + } + } + + switch (mJntAnm.getMode()) { + case 0: { + switch (mType) { + case 3: + case 4: { + dComIfGs_offTmpBit(0xE40); + break; + } + + case 11: { + if (daNpcT_chkTmpBit(0x64)) { + field_0x1130 = 1; + } + + if (field_0x1130) { + mJntAnm.lookCamera(0); + } else { + if (cLib_calcTimer(&field_0x1128) == 0) { + ++field_0x112c; + field_0x1128 = cLib_getRndValue(30, 90); + } + + if (field_0x112c & 1) { + actor_p = mActorMngr[1].getActorP(); + } else { + actor_p = mActorMngr[0].getActorP(); + } + + if (actor_p != NULL) { + mJntAnm.lookActor((fopAc_ac_c *) actor_p, -40.0f, 0U); + } + } + + break; + } + + case 17: { + actor_p = mActorMngr[5].getActorP(); + if (actor_p != NULL) { + mJntAnm.lookActor(actor_p, -40.0f, 0); + } + + break; + } + } + + break; + } + + case 1: { + switch (mType) { + case 3: + case 4: { + dComIfGs_onTmpBit(0xE40); + break; + } + } + break; + } + } + + switch (mType) { + case 12: { + attention_info.flags = 0; + break; + } + } + } + } + + case 3: { + break; + } + } + + return 1; } /* 8053CAA0-8053CBB8 005D40 0118+00 1/0 0/0 0/0 .text swdTutorial__12daNpc_Besu_cFPv */ -void daNpc_Besu_c::swdTutorial(void* param_0) { - // NONMATCHING +int daNpc_Besu_c::swdTutorial(void* param_0) { + switch (mMode) { + case 0: + case 1: { + if (!mStagger.checkStagger()) { + mFaceMotionSeqMngr.setNo(28, -1.0f, 0, 0); + mMotionSeqMngr.setNo(0, -1.0f, 0, 0); + mMode = 2; + } + } + /* fallthrough */ + case 2: { + if (!mStagger.checkStagger()) { + mJntAnm.lookPlayer(0); + } + + attention_info.flags = 0; + break; + } + + case 3: { + break; + } + } + + return 1; } -/* ############################################################################################## */ -/* 8053E908-8053E908 0001B4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8053EB20 = "EVT_CONVERSATION_IN_HOTEL1_e"; -SECTION_DEAD static char const* const stringBase_8053EB3D = "EVT_CONVERSATION_IN_HOTEL2_e"; -#pragma pop - /* 8053CBB8-8053CF78 005E58 03C0+00 3/0 0/0 0/0 .text nurse__12daNpc_Besu_cFPv */ -void daNpc_Besu_c::nurse(void* param_0) { - // NONMATCHING +int daNpc_Besu_c::nurse(void* param_0) { + switch (mMode) { + case 0: + case 1: { + if (mFaceMotionSeqMngr.getNo() != 0x15) { + mFaceMotionSeqMngr.setNo(7, -1.0f, 0, 0); + } + + if (mMotionSeqMngr.getNo() != 0x17) { + mMotionSeqMngr.setNo(0xD, -1.0f, 0, 0); + } + + mMorfLoops = 0; + if (mType == 8) { + field_0x1120 = 1; + field_0x1124 = 0; + } + + mMode = 2; + } + /* fallthrough */ + case 2: { + mJntAnm.lookNone(0); + mAcch.SetWallNone(); + switch (mMotionSeqMngr.getNo()) { + case 13: { + if (0 != strcmp(dComIfGp_getEventManager().getRunEventName(), "EVT_CONVERSATION_IN_HOTEL1_e")) { + if (0 != strcmp(dComIfGp_getEventManager().getRunEventName(), "EVT_CONVERSATION_IN_HOTEL2_e") + && mType != 8 && mMorfLoops >= 2) { + mFaceMotionSeqMngr.setNo(18, -1.0f, 0, 0); + mMotionSeqMngr.setNo(21, -1.0f, 0, 0); + } + } + + break; + } + + case 21: + case 23: { + if (mMotionSeqMngr.checkEndSequence()) { + mFaceMotionSeqMngr.setNo(7, -1.0f, 0, 0); + mMotionSeqMngr.setNo(0xD, -1.0f, 0, 0); + } + + break; + } + } + + if (mType == 8) { + if (field_0x1120) { + cLib_calcTimer(&field_0x1120); + cLib_calcTimer(&field_0x1124); + if (field_0x1120 == 0) { + mFaceMotionSeqMngr.setNo(7, -1.0f, 0, 0); + mMotionSeqMngr.setNo(13, -1.0f, 0, 0); + field_0x1124 = 92; + } + } else if (field_0x1124) { + cLib_calcTimer(&field_0x1120); + cLib_calcTimer(&field_0x1124); + if (field_0x1124 == 0) { + mFaceMotionSeqMngr.setNo(4, -1.0f, 0, 0); + mMotionSeqMngr.setNo(14, -1.0f, 0, 0); + field_0x1120 = 92; + } + } + } + break; + } + + case 3: { + break; + } + } + + return 1; } /* 8053CF78-8053D078 006218 0100+00 2/0 0/0 0/0 .text giveHotWater__12daNpc_Besu_cFPv */ -void daNpc_Besu_c::giveHotWater(void* param_0) { - // NONMATCHING +int daNpc_Besu_c::giveHotWater(void* param_0) { + switch (mMode) { + case 0: + case 1: { + mFaceMotionSeqMngr.setNo(9, -1.0f, 0, 0); + mMotionSeqMngr.setNo(5, -1.0f, 0, 0); + mMode = 2; + } + /* fallthrough */ + case 2: { + mJntAnm.lookNone(0); + mAcch.SetWallNone(); + break; + } + + case 3: { + break; + } + } + + return 1; } /* 8053D078-8053D29C 006318 0224+00 3/0 0/0 0/0 .text talk__12daNpc_Besu_cFPv */ -void daNpc_Besu_c::talk(void* param_0) { - // NONMATCHING +int daNpc_Besu_c::talk(void* param_0) { + switch (mMode) { + case 0: + case 1: { + if (!mStagger.checkStagger()) { + initTalk(mFlowNodeNo, NULL); + mMode = 2; + } + } + /* fallthrough */ + case 2: { + if (!mStagger.checkStagger()) { + if (mTwilight != 0 || mPlayerAngle == mCurAngle.y || mType == 5 || chkNurse()) { + if (talkProc(NULL, 0, NULL, 0) && mFlow.checkEndFlow()) { + mPlayerActorMngr.entry(daPy_getPlayerActorClass()); + dComIfGp_event_reset(); + mMode = 3; + } + + mJntAnm.lookPlayer(0); + if ((mTwilight != 0) || (chkNurse())) { + mJntAnm.lookNone(0); + } + } else { + mJntAnm.lookPlayer(0); + if (chkBesu3()) { + step(mPlayerAngle, 0x1C, 0x1D, 0xF, 0); + } else { + step(mPlayerAngle, 0x1C, 0x11, 0xF, 0); + } + } + } + + break; + } + + case 3: { + break; + } + } + + return 0; } /* 8053D29C-8053D2BC 00653C 0020+00 1/0 0/0 0/0 .text daNpc_Besu_Create__FPv */ -static void daNpc_Besu_Create(void* param_0) { - // NONMATCHING +static int daNpc_Besu_Create(void* i_this) { + return static_cast(i_this)->create(); } /* 8053D2BC-8053D2DC 00655C 0020+00 1/0 0/0 0/0 .text daNpc_Besu_Delete__FPv */ -static void daNpc_Besu_Delete(void* param_0) { - // NONMATCHING +static int daNpc_Besu_Delete(void* i_this) { + return static_cast(i_this)->Delete(); } /* 8053D2DC-8053D2FC 00657C 0020+00 1/0 0/0 0/0 .text daNpc_Besu_Execute__FPv */ -static void daNpc_Besu_Execute(void* param_0) { - // NONMATCHING +static int daNpc_Besu_Execute(void* i_this) { + return static_cast(i_this)->Execute(); } /* 8053D2FC-8053D31C 00659C 0020+00 1/0 0/0 0/0 .text daNpc_Besu_Draw__FPv */ -static void daNpc_Besu_Draw(void* param_0) { - // NONMATCHING +static int daNpc_Besu_Draw(void* i_this) { + return static_cast(i_this)->Draw(); } /* 8053D31C-8053D324 0065BC 0008+00 1/0 0/0 0/0 .text daNpc_Besu_IsDelete__FPv */ -static bool daNpc_Besu_IsDelete(void* param_0) { +static int daNpc_Besu_IsDelete(void*) { return true; } -/* 8053D324-8053D354 0065C4 0030+00 1/0 0/0 0/0 .text calc__11J3DTexNoAnmCFPUs */ -// void J3DTexNoAnm::calc(u16* param_0) const { -extern "C" void calc__11J3DTexNoAnmCFPUs() { - // NONMATCHING -} - -/* 8053D354-8053D39C 0065F4 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */ -// cCcD_GStts::~cCcD_GStts() { -extern "C" void __dt__10cCcD_GSttsFv() { - // NONMATCHING -} - -/* 8053D39C-8053D724 00663C 0388+00 1/1 0/0 0/0 .text __dt__8daNpcT_cFv */ -// daNpcT_c::~daNpcT_c() { -extern "C" void __dt__8daNpcT_cFv() { - // NONMATCHING -} - -/* 8053D724-8053D760 0069C4 003C+00 3/3 0/0 0/0 .text __dt__4cXyzFv */ -// cXyz::~cXyz() { -extern "C" void __dt__4cXyzFv() { - // NONMATCHING -} - -/* 8053D760-8053D79C 006A00 003C+00 2/2 0/0 0/0 .text __dt__5csXyzFv */ -// csXyz::~csXyz() { -extern "C" void __dt__5csXyzFv() { - // NONMATCHING -} - -/* 8053D79C-8053D7E4 006A3C 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 -} - -/* 8053D7E4-8053D820 006A84 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 -} - -/* 8053D820-8053D868 006AC0 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */ -// cM3dGCyl::~cM3dGCyl() { -extern "C" void __dt__8cM3dGCylFv() { - // NONMATCHING -} - -/* 8053D868-8053D8B0 006B08 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -// cM3dGAab::~cM3dGAab() { -extern "C" void __dt__8cM3dGAabFv() { - // NONMATCHING -} - -/* 8053D8B0-8053DCB4 006B50 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 -} - -/* 8053DCB4-8053DCB8 006F54 0004+00 1/1 0/0 0/0 .text __ct__5csXyzFv */ -// csXyz::csXyz() { -extern "C" void __ct__5csXyzFv() { - /* empty function */ -} - -/* 8053DCB8-8053DDB4 006F58 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 -} - -/* 8053DDB4-8053DDB8 007054 0004+00 1/1 0/0 0/0 .text __ct__4cXyzFv */ -// cXyz::cXyz() { -extern "C" void __ct__4cXyzFv() { - /* empty function */ -} - -/* 8053DDB8-8053DE00 007058 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 -} - -/* 8053DE00-8053DE70 0070A0 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */ -// dBgS_AcchCir::~dBgS_AcchCir() { -extern "C" void __dt__12dBgS_AcchCirFv() { - // NONMATCHING -} - -/* 8053DE70-8053DECC 007110 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */ -// dCcD_GStts::~dCcD_GStts() { -extern "C" void __dt__10dCcD_GSttsFv() { - // NONMATCHING -} - -/* 8053DECC-8053DF3C 00716C 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */ -// dBgS_ObjAcch::~dBgS_ObjAcch() { -extern "C" void __dt__12dBgS_ObjAcchFv() { - // NONMATCHING -} - -/* 8053DF3C-8053DF84 0071DC 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */ -// J3DFrameCtrl::~J3DFrameCtrl() { -extern "C" void __dt__12J3DFrameCtrlFv() { - // NONMATCHING -} - -/* 8053DF84-8053E0A0 007224 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 -} - -/* 8053E0A0-8053E2A8 007340 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 -} - -/* 8053E2A8-8053E2AC 007548 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 */ -} - -/* 8053E2BC-8053E2C4 00755C 0008+00 1/0 0/0 0/0 .text getEyeballLMaterialNo__8daNpcT_cFv - */ -// bool daNpcT_c::getEyeballLMaterialNo() { -extern "C" bool getEyeballLMaterialNo__8daNpcT_cFv() { - return false; -} - -/* 8053E2C4-8053E2CC 007564 0008+00 1/0 0/0 0/0 .text getEyeballRMaterialNo__8daNpcT_cFv - */ -// bool daNpcT_c::getEyeballRMaterialNo() { -extern "C" bool getEyeballRMaterialNo__8daNpcT_cFv() { - return false; -} - -/* 8053E2CC-8053E2D4 00756C 0008+00 1/0 0/0 0/0 .text evtEndProc__8daNpcT_cFv */ -// bool daNpcT_c::evtEndProc() { -extern "C" bool evtEndProc__8daNpcT_cFv() { - return true; -} - -/* 8053E2D8-8053E2E0 007578 0008+00 1/0 0/0 0/0 .text chkXYItems__8daNpcT_cFv */ -// bool daNpcT_c::chkXYItems() { -extern "C" bool chkXYItems__8daNpcT_cFv() { - return false; -} - -/* 8053E2E0-8053E2F8 007580 0018+00 1/0 0/0 0/0 .text decTmr__8daNpcT_cFv */ -// void daNpcT_c::decTmr() { -extern "C" void decTmr__8daNpcT_cFv() { - // NONMATCHING -} - -/* 8053E2F8-8053E2FC 007598 0004+00 1/0 0/0 0/0 .text drawGhost__8daNpcT_cFv */ -// void daNpcT_c::drawGhost() { -extern "C" void drawGhost__8daNpcT_cFv() { - /* empty function */ -} - -/* 8053E2FC-8053E304 00759C 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; -} - -/* 8053E304-8053E334 0075A4 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 -} - -/* 8053E334-8053E350 0075D4 001C+00 7/7 0/0 0/0 .text cLib_calcTimer__FPi */ -extern "C" void func_8053E334(void* _this, int* param_0) { - // NONMATCHING -} - -/* 8053E350-8053E3CC 0075F0 007C+00 1/1 0/0 0/0 .text cLib_getRndValue__Fii */ -extern "C" void func_8053E350(void* _this, int param_0, int param_1) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8053FE5C-8053FE68 001300 000C+00 2/2 0/0 0/0 .data __vt__18daNpc_Besu_Param_c */ -SECTION_DATA extern void* __vt__18daNpc_Besu_Param_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__18daNpc_Besu_Param_cFv, -}; - -/* 8053FE70-8053FE7C 000008 000C+00 1/1 0/0 0/0 .bss @3922 */ -static u8 lit_3922[12]; - /* 8053FE7C-8053FE80 000014 0004+00 1/1 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[4]; +static daNpc_Besu_Param_c l_HIO; -/* 8053E3CC-8053E588 00766C 01BC+00 0/0 1/0 0/0 .text __sinit_d_a_npc_besu_cpp */ -void __sinit_d_a_npc_besu_cpp() { - // NONMATCHING -} -#pragma push -#pragma force_active on -REGISTER_CTORS(0x8053E3CC, __sinit_d_a_npc_besu_cpp); -#pragma pop - -/* 8053E588-8053E6A8 007828 0120+00 1/1 0/0 0/0 .text - * __ct__12daNpc_Besu_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc - */ -daNpc_Besu_c::daNpc_Besu_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 -} - -/* 8053E6A8-8053E6B0 007948 0008+00 1/0 0/0 0/0 .text getEyeballMaterialNo__12daNpc_Besu_cFv */ -s32 daNpc_Besu_c::getEyeballMaterialNo() { - return 2; -} - -/* 8053E6B0-8053E6B8 007950 0008+00 1/0 0/0 0/0 .text getHeadJointNo__12daNpc_Besu_cFv */ -s32 daNpc_Besu_c::getHeadJointNo() { - return 4; -} - -/* 8053E6B8-8053E6C0 007958 0008+00 1/0 0/0 0/0 .text getNeckJointNo__12daNpc_Besu_cFv */ -s32 daNpc_Besu_c::getNeckJointNo() { - return 3; -} - -/* 8053E6C0-8053E6C8 007960 0008+00 1/0 0/0 0/0 .text getBackboneJointNo__12daNpc_Besu_cFv */ -bool daNpc_Besu_c::getBackboneJointNo() { - return true; -} - -/* 8053E6C8-8053E6D8 007968 0010+00 1/0 0/0 0/0 .text checkChangeJoint__12daNpc_Besu_cFi - */ -void daNpc_Besu_c::checkChangeJoint(int param_0) { - // NONMATCHING -} - -/* 8053E6D8-8053E6E8 007978 0010+00 1/0 0/0 0/0 .text checkRemoveJoint__12daNpc_Besu_cFi - */ -void daNpc_Besu_c::checkRemoveJoint(int param_0) { - // NONMATCHING -} - -/* 8053E6E8-8053E730 007988 0048+00 2/1 0/0 0/0 .text __dt__18daNpc_Besu_Param_cFv */ -daNpc_Besu_Param_c::~daNpc_Besu_Param_c() { - // NONMATCHING -} - -/* 8053E730-8053E738 0079D0 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */ -static void func_8053E730() { - // NONMATCHING -} - -/* 8053E738-8053E740 0079D8 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */ -static void func_8053E738() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 8053E900-8053E908 0001AC 0008+00 0/0 0/0 0/0 .rodata @6105 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_6105[8] = { - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, +/* 8053FCAC-8053FCCC -00001 0020+00 1/0 0/0 0/0 .data daNpc_Besu_MethodTable */ +static actor_method_class daNpc_Besu_MethodTable = { + (process_method_func)daNpc_Besu_Create, + (process_method_func)daNpc_Besu_Delete, + (process_method_func)daNpc_Besu_Execute, + (process_method_func)daNpc_Besu_IsDelete, + (process_method_func)daNpc_Besu_Draw, }; -COMPILER_STRIP_GATE(0x8053E900, &lit_6105); -#pragma pop -/* 8053E908-8053E908 0001B4 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ +/* 8053FCCC-8053FCFC -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_BESU */ +extern actor_process_profile_definition g_profile_NPC_BESU = { + fpcLy_CURRENT_e, // mLayerID + 7, // mListID + fpcPi_CURRENT_e, // mListPrio + PROC_NPC_BESU, // mProcName + &g_fpcLf_Method.base, // sub_method + sizeof(daNpc_Besu_c), // mSize + 0, // mSizeOther + 0, // mParameters + &g_fopAc_Method.base, // sub_method + 323, // mPriority + &daNpc_Besu_MethodTable, // sub_method + 0x00040108, // mStatus + fopAc_NPC_e, // mActorType + fopAc_CULLBOX_CUSTOM_e, // cullType +}; diff --git a/tools/utilities/beautify_anm_data.py b/tools/utilities/beautify_anm_data.py index f049a22a8e..0074a229ce 100644 --- a/tools/utilities/beautify_anm_data.py +++ b/tools/utilities/beautify_anm_data.py @@ -29,6 +29,9 @@ SEQ_MOTION_PATTERN = r'SECTION_DATA static u8 l_motionSequenceData\[\d+\] = {' HEAP_SIZE_TYPE = "int const heapSize" HEAP_SIZE_PATTERN = r'SECTION_RODATA static u8 const heapSize\[\d+\] = {' +BMD_DATA_TYPE = "int l_bmdData" +BMD_DATA_PATTERN = r'SECTION_DATA static u8 l_bmdData\[\d+\] = {' + PARAM_TYPE = "::m" PARAM_PATTERN = r'SECTION_RODATA u8 const (\w+_Param_c)::m\[\d+\] = {' @@ -281,6 +284,10 @@ def build_anm_struct(byte_collection, anm_type): elif anm_type is HEAP_SIZE_TYPE: piece_size = 4 instr_arr = ["h4"] + elif anm_type is BMD_DATA_TYPE: + piece_size = 8 + instr_arr = ["s4", "s4"] + is_array = True if my_len % piece_size != 0: print(f"Error: len() = '{my_len}' isn't divisble by '{piece_size}'") @@ -332,6 +339,9 @@ def build_anm_struct(byte_collection, anm_type): cutoff_num = 4 res_str += "[{}]".format(int(res_len)) + if anm_type == BMD_DATA_TYPE: + res_str += "[2]" + res_str += " = {\n" cur_in_line = 0 cur_idx = 0 @@ -456,6 +466,9 @@ def run_beautify_anm_data(in_file, type=None, no_auto_float=False): elif re.search(HEAP_SIZE_PATTERN, line): in_byte_array = True anm_type = HEAP_SIZE_TYPE + elif re.search(BMD_DATA_PATTERN, line): + in_byte_array = True + anm_type = BMD_DATA_TYPE elif re.search(EVT_LIST_PATTERN, line): in_charptr_array = True charptr_type = "l_evtList"