diff --git a/configure.py b/configure.py index e0ee75d514a..5f7c63b80f9 100755 --- a/configure.py +++ b/configure.py @@ -1913,8 +1913,8 @@ config.libs = [ ActorRel(NonMatching, "d_a_npc_ykw"), ActorRel(NonMatching, "d_a_npc_zanb"), ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_npc_zant"), - ActorRel(NonMatching, "d_a_npc_zelR"), - ActorRel(NonMatching, "d_a_npc_zelRo"), + ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_npc_zelR"), + ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_npc_zelRo"), ActorRel(MatchingFor("GZ2E01", "GZ2J01"), "d_a_npc_zelda"), ActorRel(Equivalent, "d_a_npc_zra", extra_cflags=[DANPCF_C_HACK]), # regalloc ActorRel(NonMatching, "d_a_npc_zrc", extra_cflags=[DANPCF_C_HACK]), diff --git a/include/d/actor/d_a_npc_midp.h b/include/d/actor/d_a_npc_midp.h index 3ca21687821..05117faf9a8 100644 --- a/include/d/actor/d_a_npc_midp.h +++ b/include/d/actor/d_a_npc_midp.h @@ -10,9 +10,74 @@ * * @details * - */ +*/ + +struct daNpc_midP_HIOParam { + /* 0x0 */ daNpcT_HIOParam common; +}; + +class daNpc_midP_HIO_c : public mDoHIO_entry_c { + /* 0x8 */ daNpc_midP_HIOParam param; +}; + +class daNpc_midP_Param_c { +public: + /* 80A73954 */ virtual ~daNpc_midP_Param_c() {} + + static const daNpc_midP_HIOParam m; +}; + class daNpc_midP_c : public daNpcT_c { public: + enum Joint { + /* 0x00 */ JNT_CENTER, + /* 0x01 */ JNT_BACKBONE1, + /* 0x02 */ JNT_BACKBONE2, + /* 0x03 */ JNT_NECK, + /* 0x04 */ JNT_HEAD, + /* 0x05 */ JNT_CHIN, + /* 0x06 */ JNT_MAYUL, + /* 0x07 */ JNT_MAYUR, + /* 0x08 */ JNT_MOUTH, + /* 0x09 */ JNT_SHOULDERL, + /* 0x0A */ JNT_ARML1, + /* 0x0B */ JNT_ARML2, + /* 0x0C */ JNT_HANDL, + /* 0x0D */ JNT_FINGERL1, + /* 0x0E */ JNT_FINGERL2, + /* 0x0F */ JNT_THAMBL, + /* 0x10 */ JNT_MANTL1, + /* 0x11 */ JNT_MANTL2, + /* 0x12 */ JNT_MANT_ANIMEL1, + /* 0x13 */ JNT_SHOULDERR, + /* 0x14 */ JNT_ARMR1, + /* 0x15 */ JNT_ARMR2, + /* 0x16 */ JNT_HANDR, + /* 0x17 */ JNT_FINGERR1, + /* 0x18 */ JNT_FINGERR2, + /* 0x19 */ JNT_THAMBR, + /* 0x1A */ JNT_MANTR1, + /* 0x1B */ JNT_MANTR2, + /* 0x1C */ JNT_MANT_ANIMER1, + /* 0x1D */ JNT_WAIST, + /* 0x1E */ JNT_LEGL1, + /* 0x1F */ JNT_LEGL2, + /* 0x20 */ JNT_FOOTL, + /* 0x21 */ JNT_TOEL, + /* 0x22 */ JNT_LEGR1, + /* 0x23 */ JNT_LEGR2, + /* 0x24 */ JNT_FOOTR, + /* 0x25 */ JNT_TOER, + /* 0x26 */ JNT_MANTC1, + /* 0x27 */ JNT_MANTC2, + /* 0x28 */ JNT_MANT_ANIMEL2, + /* 0x29 */ JNT_MANT_ANIMER2, + /* 0x2A */ JNT_SKIRTB1, + /* 0x2B */ JNT_SKIRTB2, + /* 0x2C */ JNT_SKIRTF1, + /* 0x2D */ JNT_SKIRTF2, + }; + typedef int (daNpc_midP_c::*cutFunc)(int); typedef int (daNpc_midP_c::*actionFunc)(void*); @@ -56,11 +121,11 @@ public: daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8) {} /* 80A7390C */ u16 getEyeballRMaterialNo() { return 3; } /* 80A73914 */ u16 getEyeballLMaterialNo() { return 2; } - /* 80A7391C */ s32 getHeadJointNo() { return 4; } - /* 80A73924 */ s32 getNeckJointNo() { return 3; } - /* 80A7392C */ s32 getBackboneJointNo() { return 2; } - /* 80A73934 */ BOOL checkChangeJoint(int param_0) { return param_0 == 4; } - /* 80A73944 */ BOOL checkRemoveJoint(int param_0) { return param_0 == 8; } + /* 80A7391C */ s32 getHeadJointNo() { return JNT_HEAD; } + /* 80A73924 */ s32 getNeckJointNo() { return JNT_NECK; } + /* 80A7392C */ s32 getBackboneJointNo() { return JNT_BACKBONE2; } + /* 80A73934 */ BOOL checkChangeJoint(int i_joint) { return i_joint == JNT_HEAD; } + /* 80A73944 */ BOOL checkRemoveJoint(int i_joint) { return i_joint == JNT_MOUTH; } int getFlowNodeNo() { u16 nodeNo = home.angle.x; @@ -85,52 +150,4 @@ private: STATIC_ASSERT(sizeof(daNpc_midP_c) == 0xfa0); -class daNpc_midP_Param_c { -public: - /* 80A73954 */ virtual ~daNpc_midP_Param_c() {} - - struct Data { - /* 0x00 */ f32 field_0x00; - /* 0x04 */ f32 mGravity; - /* 0x08 */ f32 mScale; - /* 0x0C */ f32 field_0x0c; - /* 0x10 */ f32 mWeight; - /* 0x14 */ f32 mCylH; - /* 0x18 */ f32 mWallH; - /* 0x1C */ f32 mWallR; - /* 0x20 */ f32 field_0x20; - /* 0x24 */ f32 field_0x24; - /* 0x28 */ f32 field_0x28; - /* 0x2C */ f32 field_0x2c; - /* 0x30 */ f32 field_0x30; - /* 0x34 */ f32 field_0x34; - /* 0x38 */ f32 field_0x38; - /* 0x3C */ f32 field_0x3c; - /* 0x40 */ f32 field_0x40; - /* 0x44 */ f32 mMorfFrames; - /* 0x48 */ s16 field_0x48; - /* 0x4A */ s16 field_0x4a; - /* 0x4C */ s16 field_0x4c; - /* 0x4E */ s16 field_0x4e; - /* 0x50 */ f32 mAttnFovY; - /* 0x54 */ f32 field_0x54; - /* 0x58 */ f32 field_0x58; - /* 0x5C */ f32 field_0x5c; - /* 0x60 */ s16 field_0x60; - /* 0x62 */ s16 field_0x62; - /* 0x64 */ int field_0x64; - /* 0x68 */ int field_0x68; - /* 0x6C */ f32 field_0x6c; - /* 0x70 */ f32 field_0x70; - /* 0x74 */ f32 field_0x74; - /* 0x78 */ f32 field_0x78; - /* 0x7C */ f32 field_0x7c; - /* 0x80 */ f32 field_0x80; - /* 0x84 */ f32 field_0x84; - /* 0x88 */ f32 field_0x88; - }; - - static const Data m; -}; - #endif /* D_A_NPC_MIDP_H */ diff --git a/include/d/actor/d_a_npc_saru.h b/include/d/actor/d_a_npc_saru.h index 853162d58cf..2053737579e 100644 --- a/include/d/actor/d_a_npc_saru.h +++ b/include/d/actor/d_a_npc_saru.h @@ -10,11 +10,9 @@ * * @details * - */ - -struct daNpc_Saru_HIOParam -{ +*/ +struct daNpc_Saru_HIOParam { /* 0x00 */ daNpcT_HIOParam common; /* 0x8C */ s16 scared_time; // 怯える時間 - Scared Time /* 0x8E */ s16 field_0x8e; diff --git a/include/d/actor/d_a_npc_zelR.h b/include/d/actor/d_a_npc_zelR.h index 092f7aa4418..498bf726f3f 100644 --- a/include/d/actor/d_a_npc_zelR.h +++ b/include/d/actor/d_a_npc_zelR.h @@ -10,7 +10,23 @@ * * @details * - */ +*/ + +struct daNpc_ZelR_HIOParam { + /* 0x0 */ daNpcT_HIOParam common; +}; + +class daNpc_ZelR_HIO_c : public mDoHIO_entry_c { + /* 0x8 */ daNpc_ZelR_HIOParam param; +}; + +class daNpc_ZelR_Param_c { +public: + /* 80B71A74 */ virtual ~daNpc_ZelR_Param_c() {}; + + static const daNpc_ZelR_HIOParam m; +}; + class daNpc_ZelR_c : public daNpcT_c { public: typedef BOOL (daNpc_ZelR_c::*ActionFn)(void*); @@ -57,10 +73,10 @@ public: daNpcT_evtData_c const* param_7, char** param_8) : daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8) {} - /* 80B71A34 */ u16 getEyeballRMaterialNo(); - /* 80B71A3C */ u16 getEyeballLMaterialNo(); - /* 80B71A44 */ s32 getHeadJointNo(); - /* 80B71A4C */ s32 getBackboneJointNo(); + /* 80B71A34 */ u16 getEyeballRMaterialNo() { return 3; } + /* 80B71A3C */ u16 getEyeballLMaterialNo() { return 2; } + /* 80B71A44 */ s32 getHeadJointNo() { return 3; } + /* 80B71A4C */ s32 getBackboneJointNo() { return 1; } /* 80B71A54 */ BOOL checkChangeJoint(int param_1) { return param_1 == 3; }; /* 80B71A64 */ BOOL checkRemoveJoint(int param_1) { return param_1 == 13; }; @@ -71,7 +87,6 @@ private: /* 0xE40 */ u8 field_0xe40[0xe44 - 0xe40]; /* 0xE44 */ dCcD_Cyl mCyl; /* 0xF80 */ u8 mType; - /* 0xF81 */ u8 field_0xf81[0xf84 - 0xf81]; /* 0xF84 */ ActionFn field_0xf84; /* 0xF90 */ ActionFn field_0xf90; /* 0xF9C */ daNpcT_Path_c mPath; @@ -80,53 +95,5 @@ private: STATIC_ASSERT(sizeof(daNpc_ZelR_c) == 0xfc8); -class daNpc_ZelR_Param_c { -public: - /* 80B71A74 */ virtual ~daNpc_ZelR_Param_c() {}; - - struct Data { - /* 0x00 */ f32 field_0x0; - /* 0x04 */ f32 mGravity; - /* 0x08 */ f32 field_0x8; - /* 0x0C */ f32 field_0xc; - /* 0x10 */ f32 mWeight; - /* 0x14 */ f32 mCylH; - /* 0x18 */ f32 mWallH; - /* 0x1C */ f32 mWallR; - /* 0x20 */ f32 field_0x20; - /* 0x24 */ f32 field_0x24; - /* 0x28 */ f32 field_0x28; - /* 0x2C */ f32 field_0x2c; - /* 0x30 */ f32 field_0x30; - /* 0x34 */ f32 field_0x34; - /* 0x38 */ f32 field_0x38; - /* 0x3C */ f32 field_0x3c; - /* 0x40 */ f32 field_0x40; - /* 0x44 */ f32 mMorfFrames; - /* 0x48 */ s16 field_0x48; - /* 0x4A */ s16 field_0x4a; - /* 0x4C */ s16 field_0x4c; - /* 0x4E */ s16 field_0x4e; - /* 0x50 */ f32 field_0x50; - /* 0x54 */ f32 field_0x54; - /* 0x58 */ f32 field_0x58; - /* 0x5C */ f32 field_0x5c; - /* 0x60 */ s16 field_0x60; - /* 0x62 */ s16 field_0x62; - /* 0x64 */ f32 field_0x64; - /* 0x68 */ f32 field_0x68; - /* 0x6C */ f32 field_0x6c; - /* 0x70 */ f32 field_0x70; - /* 0x74 */ f32 field_0x74; - /* 0x78 */ f32 field_0x78; - /* 0x7C */ f32 field_0x7c; - /* 0x80 */ f32 field_0x80; - /* 0x84 */ f32 field_0x84; - /* 0x88 */ f32 field_0x88; - }; - - static const Data m; -}; - #endif /* D_A_NPC_ZELR_H */ diff --git a/include/d/actor/d_a_npc_zelRo.h b/include/d/actor/d_a_npc_zelRo.h index cbb18beb23e..2d7104622d3 100644 --- a/include/d/actor/d_a_npc_zelRo.h +++ b/include/d/actor/d_a_npc_zelRo.h @@ -10,66 +10,145 @@ * * @details * - */ -class daNpc_ZelRo_c : public fopAc_ac_c { +*/ + +struct daNpc_ZelRo_HIOParam { + /* 0x0 */ daNpcT_HIOParam common; +}; + +class daNpc_ZelRo_HIO_c : public mDoHIO_entry_c { + /* 0x8 */ daNpc_ZelRo_HIOParam param; +}; + +class daNpc_ZelRo_Param_c { public: + /* 80B74BF0 */ virtual ~daNpc_ZelRo_Param_c() {} + + static daNpc_ZelRo_HIOParam const m; +}; + +class daNpc_ZelRo_c : public daNpcT_c { +public: + enum Material { + /* 0x0 */ SC_EYE_L_V, + /* 0x1 */ SC_EYE_R_V, + /* 0x2 */ ZELR_ROBE01_M_V, + /* 0x3 */ ZELR_ROBE02_M_V, + /* 0x4 */ ZELDA_BODY_M_V, + /* 0x5 */ ZELDA_DOUBLESIDE_M_V, + /* 0x6 */ ZELDA_EYEBALL_L_V, + /* 0x7 */ ZELDA_EYEBALL_R_V, + /* 0x8 */ ZELDA_HAIR_M_V, + /* 0x9 */ ZELDA_JEWEL_M_V, + }; + + enum Joint { + /* 0x00 */ JNT_CENTER, + /* 0x01 */ JNT_BACKBONE1, + /* 0x02 */ JNT_BACKBONE2, + /* 0x03 */ JNT_NECK, + /* 0x04 */ JNT_HEAD, + /* 0x05 */ JNT_CHIN, + /* 0x06 */ JNT_MANT, + /* 0x07 */ JNT_MAYUL, + /* 0x08 */ JNT_MAYUR, + /* 0x09 */ JNT_MOMIL1, + /* 0x0A */ JNT_MOMIL2, + /* 0x0B */ JNT_MOMIL3, + /* 0x0C */ JNT_MOMIR1, + /* 0x0D */ JNT_MOMIR2, + /* 0x0E */ JNT_MOMIR3, + /* 0x0F */ JNT_MOUTH, + /* 0x10 */ JNT_SHOULDERL, + /* 0x11 */ JNT_ARML1, + /* 0x12 */ JNT_ARML2, + /* 0x13 */ JNT_HANDL, + /* 0x14 */ JNT_FINGERL1, + /* 0x15 */ JNT_FINGERL2, + /* 0x16 */ JNT_THAMBL, + /* 0x17 */ JNT_SHOULDERR, + /* 0x18 */ JNT_ARMR1, + /* 0x19 */ JNT_ARMR2, + /* 0x1A */ JNT_HANDR, + /* 0x1B */ JNT_FINGERR1, + /* 0x1C */ JNT_FINGERR2, + /* 0x1D */ JNT_THAMBR, + /* 0x1E */ JNT_WAIST, + /* 0x1F */ JNT_SKARTL_01, + /* 0x20 */ JNT_SKARTL_02, + /* 0x21 */ JNT_SKARTL_03, + /* 0x22 */ JNT_SKARTR_01, + /* 0x23 */ JNT_SKARTR_02, + /* 0x24 */ JNT_SKARTR_03, + }; + + typedef int (daNpc_ZelRo_c::*actionFunc)(void*); + typedef int (daNpc_ZelRo_c::*cutFunc)(int); + /* 80B71FAC */ ~daNpc_ZelRo_c(); - /* 80B720E4 */ void create(); - /* 80B72378 */ void CreateHeap(); - /* 80B727E4 */ void Delete(); - /* 80B72818 */ void Execute(); - /* 80B72838 */ void Draw(); - /* 80B728FC */ void createHeapCallBack(fopAc_ac_c*); - /* 80B7291C */ void ctrlJointCallBack(J3DJoint*, int); - /* 80B72974 */ void getType(); - /* 80B72994 */ void getFlowNodeNo(); - /* 80B729B0 */ void getPath(); - /* 80B729BC */ void isDelete(); + /* 80B720E4 */ cPhs__Step create(); + /* 80B72378 */ int CreateHeap(); + /* 80B727E4 */ int Delete(); + /* 80B72818 */ int Execute(); + /* 80B72838 */ int Draw(); + /* 80B728FC */ static int createHeapCallBack(fopAc_ac_c*); + /* 80B7291C */ static int ctrlJointCallBack(J3DJoint*, int); + /* 80B72974 */ u8 getType(); + /* 80B72994 */ int getFlowNodeNo(); + /* 80B729B0 */ u8 getPath(); + /* 80B729BC */ BOOL isDelete(); /* 80B72A10 */ void reset(); /* 80B72B8C */ void afterJntAnm(int); - /* 80B72C18 */ void ctrlBtk(); + /* 80B72C18 */ BOOL ctrlBtk(); /* 80B72D24 */ void setParam(); /* 80B72E18 */ void setAfterTalkMotion(); /* 80B72E78 */ void srchActors(); - /* 80B72E7C */ void evtTalk(); - /* 80B72F7C */ void evtCutProc(); + /* 80B72E7C */ BOOL evtTalk(); + /* 80B72F7C */ BOOL evtCutProc(); /* 80B73044 */ void action(); /* 80B73194 */ void beforeMove(); /* 80B7320C */ void setAttnPos(); /* 80B7342C */ void setCollision(); - /* 80B7355C */ bool drawDbgInfo(); - /* 80B73564 */ void selectAction(); - /* 80B735AC */ void chkAction(int (daNpc_ZelRo_c::*)(void*)); - /* 80B735D8 */ void setAction(int (daNpc_ZelRo_c::*)(void*)); - /* 80B73680 */ void wait(void*); - /* 80B7382C */ void talk(void*); - /* 80B74AE8 */ daNpc_ZelRo_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**); - /* 80B74BA8 */ u16 getEyeballRMaterialNo(); - /* 80B74BB0 */ u16 getEyeballLMaterialNo(); - /* 80B74BB8 */ s32 getHeadJointNo(); - /* 80B74BC0 */ s32 getNeckJointNo(); - /* 80B74BC8 */ bool getBackboneJointNo(); - /* 80B74BD0 */ void checkChangeJoint(int); - /* 80B74BE0 */ void checkRemoveJoint(int); + /* 80B7355C */ int drawDbgInfo(); + /* 80B73564 */ BOOL selectAction(); + /* 80B735AC */ BOOL chkAction(actionFunc); + /* 80B735D8 */ BOOL setAction(actionFunc); + /* 80B73680 */ int wait(void*); + /* 80B7382C */ int talk(void*); + #ifdef DEBUG + int test(void*); + #endif + /* 80B74AE8 */ daNpc_ZelRo_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) {} + /* 80B74BA8 */ u16 getEyeballRMaterialNo() { return ZELDA_EYEBALL_R_V; } + /* 80B74BB0 */ u16 getEyeballLMaterialNo() { return ZELDA_EYEBALL_L_V; } + /* 80B74BB8 */ s32 getHeadJointNo() { return JNT_HEAD; } + /* 80B74BC0 */ s32 getNeckJointNo() { return JNT_NECK; } + /* 80B74BC8 */ s32 getBackboneJointNo() { return JNT_BACKBONE1; } + /* 80B74BD0 */ BOOL checkChangeJoint(int i_joint) { return i_joint == JNT_HEAD; } + /* 80B74BE0 */ BOOL checkRemoveJoint(int i_joint) { return i_joint == JNT_MOUTH; } - static void* mCutNameList; - static u8 mCutList[12]; + static char* mCutNameList; + static cutFunc mCutList[1]; private: - /* 0x568 */ u8 field_0x568[0xfc8 - 0x568]; + /* 0xE40 */ daNpc_ZelRo_HIO_c* mHIO; + /* 0xE44 */ dCcD_Cyl mCyl; + /* 0xF80 */ u8 mType; + /* 0xF84 */ actionFunc mNextAction; + /* 0xF90 */ actionFunc mAction; + /* 0xF9C */ daNpcT_Path_c mPath; + /* 0xFC4 */ u8 field_0xfc4; }; STATIC_ASSERT(sizeof(daNpc_ZelRo_c) == 0xfc8); -class daNpc_ZelRo_Param_c { -public: - /* 80B74BF0 */ ~daNpc_ZelRo_Param_c(); - - static u8 const m[140]; -}; - - #endif /* D_A_NPC_ZELRO_H */ diff --git a/src/d/actor/d_a_npc_midp.cpp b/src/d/actor/d_a_npc_midp.cpp index 23db0b4a931..3de07c05643 100644 --- a/src/d/actor/d_a_npc_midp.cpp +++ b/src/d/actor/d_a_npc_midp.cpp @@ -6,11 +6,24 @@ #include "d/dolzel_rel.h" #include "d/actor/d_a_npc_midp.h" -#include "SSystem/SComponent/c_counter.h" + +enum midP_RES_File_ID { + /* BCK */ + /* 0x6 */ BCK_MIDP_WAIT_A = 0x6, + + /* BMDR */ + /* 0x9 */ BMDR_MIDP = 0x9, + + /* BTK */ + /* 0xC */ BTK_MIDP = 0xC, + + /* BTP */ + /* 0xF */ BTP_MIDP = 0xF, +}; /* 80A73AD4-80A73ADC 000020 0008+00 1/1 0/0 0/0 .data l_bmdData */ -static int l_bmdData[2][1] = { - {9}, {1} +static int l_bmdData[1][2] = { + {BMDR_MIDP, 1}, }; /* 80A73ADC-80A73AEC -00001 0010+00 0/1 0/0 0/0 .data l_evtList */ @@ -73,15 +86,15 @@ daNpc_midP_c::~daNpc_midP_c() { } /* 80A739C0-80A73A4C 000000 008C+00 6/6 0/0 0/0 .rodata m__18daNpc_midP_Param_c */ -daNpc_midP_Param_c::Data const daNpc_midP_Param_c::m = { +daNpc_midP_HIOParam const daNpc_midP_Param_c::m = { 210.0f, - -3.0f, // mGravity - 1.0f, // mScale + -3.0f, + 1.0f, 500.0f, - 255.0f, // mWeight - 190.0f, // mCylH - 35.0f, // mWallH - 30.0f, // mWallR + 255.0f, + 190.0f, + 35.0f, + 30.0f, 0.0f, 0.0f, 10.0f, @@ -91,12 +104,12 @@ daNpc_midP_Param_c::Data const daNpc_midP_Param_c::m = { 45.0f, -45.0f, 0.6f, - 12.0f, // mMorfFrames + 12.0f, 3, 6, 5, 6, - 110.0f, // mAttnFovY + 110.0f, 0.0f, 0.0f, 0.0f, @@ -104,13 +117,16 @@ daNpc_midP_Param_c::Data const daNpc_midP_Param_c::m = { 8, 0, 0, + 0, + false, + false, 4.0f, 0.0f, 0.0f, 0.0f, 0.0f, - 0.0f, - 0.0f, + 0.0f, + 0.0f, 0.0f, }; @@ -147,7 +163,7 @@ int daNpc_midP_c::create() { 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_midP_Param_c::m.mWeight, 0, this); + mCcStts.Init(daNpc_midP_Param_c::m.common.weight, 0, this); mCyl.Set(mCcDCyl); mCyl.SetStts(&mCcStts); mCyl.SetTgHitCallback(tgHitCallBack); @@ -335,27 +351,27 @@ void daNpc_midP_c::setParam() { selectAction(); srchActors(); - s16 sVar1 = daNpc_midP_Param_c::m.field_0x48; - s16 sVar2 = daNpc_midP_Param_c::m.field_0x4a; - s16 sVar3 = daNpc_midP_Param_c::m.field_0x4c; - s16 sVar4 = daNpc_midP_Param_c::m.field_0x4e; + s16 sVar1 = daNpc_midP_Param_c::m.common.talk_distance; + s16 sVar2 = daNpc_midP_Param_c::m.common.talk_angle; + s16 sVar3 = daNpc_midP_Param_c::m.common.attention_distance; + s16 sVar4 = daNpc_midP_Param_c::m.common.attention_angle; attention_info.distances[0] = daNpcT_getDistTableIdx(sVar3, sVar4); attention_info.distances[1] = attention_info.distances[0]; attention_info.distances[3] = daNpcT_getDistTableIdx(sVar1, sVar2); attention_info.flags = fopAc_AttnFlag_SPEAK_e | fopAc_AttnFlag_TALK_e; - scale.setall(daNpc_midP_Param_c::m.mScale); - mCcStts.SetWeight(daNpc_midP_Param_c::m.mWeight); - mCylH = daNpc_midP_Param_c::m.mCylH; - mWallR = daNpc_midP_Param_c::m.mWallR; - mAttnFovY = daNpc_midP_Param_c::m.mAttnFovY; + scale.setall(daNpc_midP_Param_c::m.common.scale); + mCcStts.SetWeight(daNpc_midP_Param_c::m.common.weight); + mCylH = daNpc_midP_Param_c::m.common.height; + mWallR = daNpc_midP_Param_c::m.common.width; + mAttnFovY = daNpc_midP_Param_c::m.common.fov; mAcchCir.SetWallR(mWallR); - mAcchCir.SetWallH(daNpc_midP_Param_c::m.mWallH); - mRealShadowSize = daNpc_midP_Param_c::m.field_0x0c; - mExpressionMorfFrame = daNpc_midP_Param_c::m.field_0x6c; - mMorfFrames = daNpc_midP_Param_c::m.mMorfFrames; - gravity = daNpc_midP_Param_c::m.mGravity; + mAcchCir.SetWallH(daNpc_midP_Param_c::m.common.knee_length); + mRealShadowSize = daNpc_midP_Param_c::m.common.real_shadow_size; + mExpressionMorfFrame = daNpc_midP_Param_c::m.common.expression_morf_frame; + mMorfFrames = daNpc_midP_Param_c::m.common.morf_frame; + gravity = daNpc_midP_Param_c::m.common.gravity; } /* 80A71A98-80A71AF8 000F18 0060+00 1/0 0/0 0/0 .text setAfterTalkMotion__12daNpc_midP_cFv */ @@ -430,7 +446,6 @@ void daNpc_midP_c::beforeMove() { /* 80A71E28-80A72064 0012A8 023C+00 1/0 0/0 0/0 .text setAttnPos__12daNpc_midP_cFv */ void daNpc_midP_c::setAttnPos() { - // NONMATCHING cXyz sp3c(10.0f, -30.0f, 0.0f); cXyz sp48(10.0f, 0.0f, 0.0f); @@ -438,11 +453,11 @@ void daNpc_midP_c::setAttnPos() { f32 dVar5 = cM_s2rad(mCurAngle.y - field_0xd7e.y); J3DModel* model = mpMorf[0]->getModel(); mJntAnm.setParam(this, model, &sp3c, getBackboneJointNo(), getNeckJointNo(), - getHeadJointNo(), daNpc_midP_Param_c::m.field_0x24, daNpc_midP_Param_c::m.field_0x20, - daNpc_midP_Param_c::m.field_0x2c, daNpc_midP_Param_c::m.field_0x28, - daNpc_midP_Param_c::m.field_0x34, daNpc_midP_Param_c::m.field_0x30, - daNpc_midP_Param_c::m.field_0x3c, daNpc_midP_Param_c::m.field_0x38, - daNpc_midP_Param_c::m.field_0x40, dVar5, &sp48); + getHeadJointNo(), daNpc_midP_Param_c::m.common.body_angleX_min, daNpc_midP_Param_c::m.common.body_angleX_max, + daNpc_midP_Param_c::m.common.body_angleY_min, daNpc_midP_Param_c::m.common.body_angleY_max, + daNpc_midP_Param_c::m.common.head_angleX_min, daNpc_midP_Param_c::m.common.head_angleX_max, + daNpc_midP_Param_c::m.common.head_angleY_min, daNpc_midP_Param_c::m.common.head_angleY_max, + daNpc_midP_Param_c::m.common.neck_rotation_ratio, dVar5, &sp48); mJntAnm.calcJntRad(0.2f, 1.0f, dVar5); setMtx(); @@ -452,7 +467,7 @@ void daNpc_midP_c::setAttnPos() { mJntAnm.setEyeAngleY(eyePos, mCurAngle.y, 0, 1.0f, 0); attention_info.position = current.pos; - attention_info.position.y += daNpc_midP_Param_c::m.field_0x00; + attention_info.position.y += daNpc_midP_Param_c::m.common.attention_offset; } /* 80A72064-80A7216C 0014E4 0108+00 1/0 0/0 0/0 .text setCollision__12daNpc_midP_cFv */ @@ -640,9 +655,6 @@ static int daNpc_midP_IsDelete(void* i_this) { return 1; } -/* 80A73D50-80A73D5C 000008 000C+00 1/1 0/0 0/0 .bss @3811 */ -static u8 lit_3811[12]; - /* 80A73D5C-80A73D60 000014 0004+00 1/1 0/0 0/0 .bss l_HIO */ static daNpc_midP_Param_c l_HIO; diff --git a/src/d/actor/d_a_npc_saru.cpp b/src/d/actor/d_a_npc_saru.cpp index c36e49de2df..d9029ca400b 100644 --- a/src/d/actor/d_a_npc_saru.cpp +++ b/src/d/actor/d_a_npc_saru.cpp @@ -25,7 +25,8 @@ enum saru_RES_File_ID { }; enum RES_Name { - /* 0x1 */ NPC_KS = 0x1, + /* 0x0 */ NONE, + /* 0x1 */ NPC_KS, /* 0x2 */ SARU_TW, /* 0x3 */ SARU, }; @@ -246,7 +247,6 @@ daNpc_Saru_c::~daNpc_Saru_c() { deleteRes(l_loadResPtrnList[mType], (const char**)l_resNameList); } -/* ############################################################################################## */ /* 80AC44F8-80AC4588 000000 0090+00 9/9 0/0 0/0 .rodata m__18daNpc_Saru_Param_c */ daNpc_Saru_HIOParam const daNpc_Saru_Param_c::m = { 140.0f, @@ -359,26 +359,20 @@ int daNpc_Saru_c::CreateHeap() { 2, 3, }; - void* modelData = NULL; - J3DModel* model = NULL; - BOOL uVar1 = mTwilight == true ? TRUE : FALSE; - int arcNameIdx = l_bmdData[uVar1][1]; - int resName = l_bmdData[uVar1][0]; - modelData = dComIfG_getObjectRes(l_resNameList[arcNameIdx], resName); + int bmdIdx = mTwilight == true ? TRUE : FALSE; + J3DModelData* modelData = static_cast(dComIfG_getObjectRes(l_resNameList[l_bmdData[bmdIdx][1]], l_bmdData[bmdIdx][0])); if (modelData == NULL) { return 0; } - u32 temp1 = 0x11020084; - mpMorf[0] = new mDoExt_McaMorfSO((J3DModelData*)modelData, NULL, - NULL, NULL, -1, 1.0f, 0, -1, &mSound, 0x80000, temp1); + mpMorf[0] = new mDoExt_McaMorfSO(modelData, NULL, + NULL, NULL, -1, 1.0f, 0, -1, &mSound, 0x80000, 0x11020084); if (mpMorf[0] == NULL || mpMorf[0]->getModel() == NULL) { return 0; } - model = mpMorf[0]->getModel(); - model = mpMorf[0]->getModel(); - for (u16 i = 0; i < ((J3DModelData*)modelData)->getJointNum(); i++) { - ((J3DModelData*)modelData)->getJointNodePointer(i)->setCallBack(ctrlJointCallBack); + J3DModel* model = mpMorf[0]->getModel(); + for (u16 i = 0; i < modelData->getJointNum(); i++) { + modelData->getJointNodePointer(i)->setCallBack(ctrlJointCallBack); } model->setUserArea((uintptr_t)this); @@ -391,7 +385,7 @@ int daNpc_Saru_c::CreateHeap() { } if (modelData != NULL) { - mpRoseModels[i] = mDoExt_J3DModel__create((J3DModelData*)modelData, 0x80000, 0x11000084); + mpRoseModels[i] = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); } else { mpRoseModels[i] = NULL; } @@ -1194,33 +1188,35 @@ int daNpc_Saru_c::wait(void* param_1) { /* 80AC2FD8-80AC31B4 002C98 01DC+00 3/0 0/0 0/0 .text talk__12daNpc_Saru_cFPv */ int daNpc_Saru_c::talk(void* param_1) { switch (mMode) { - case 0: - case 1: - if (mStagger.checkStagger() == 0) { - initTalk(mFlowNodeNo, NULL); - mMode = 2; - } - - case 2: - if (mStagger.checkStagger() == 0) { - if (mTwilight != false || mPlayerAngle == mCurAngle.y) { - if (talkProc(NULL, FALSE, NULL, FALSE) && mFlow.checkEndFlow()) { - mPlayerActorMngr.entry(daPy_getPlayerActorClass()); - dComIfGp_event_reset(); - mMode = 3; - } - - mJntAnm.lookPlayer(0); - if (mTwilight != false) { - mJntAnm.lookNone(0); - } - } else { - mJntAnm.lookPlayer(0); - step(fopAcM_searchPlayerAngleY(this), -1, -1, 15, 0); + case 0: + case 1: + if (mStagger.checkStagger() == 0) { + initTalk(mFlowNodeNo, NULL); + mMode = 2; } + + case 2: + if (mStagger.checkStagger() == 0) { + if (mTwilight != false || mPlayerAngle == mCurAngle.y) { + if (talkProc(NULL, FALSE, NULL, FALSE) && mFlow.checkEndFlow()) { + mPlayerActorMngr.entry(daPy_getPlayerActorClass()); + dComIfGp_event_reset(); + mMode = 3; + } + + mJntAnm.lookPlayer(0); + if (mTwilight != false) { + mJntAnm.lookNone(0); + } + } else { + mJntAnm.lookPlayer(0); + step(fopAcM_searchPlayerAngleY(this), -1, -1, 15, 0); + } + break; + + case 3: + break; } - case 3: - break; } return 0; diff --git a/src/d/actor/d_a_npc_zelR.cpp b/src/d/actor/d_a_npc_zelR.cpp index ab638e18a2a..b66f6f7912f 100644 --- a/src/d/actor/d_a_npc_zelR.cpp +++ b/src/d/actor/d_a_npc_zelR.cpp @@ -6,7 +6,11 @@ #include "d/dolzel_rel.h" #include "d/actor/d_a_npc_zelR.h" -#include "SSystem/SComponent/c_counter.h" + +enum RES_Name { + /* 0x0 */ NONE, + /* 0x1 */ ZELRF, +}; /* 80B71BF8-80B71C00 000020 0008+00 1/1 0/0 0/0 .data l_bmdData */ static daNpc_GetParam1 l_bmdData[1] = { @@ -81,15 +85,15 @@ daNpc_ZelR_c::~daNpc_ZelR_c() { static daNpc_ZelR_Param_c l_HIO; /* 80B71AE0-80B71B6C 000000 008C+00 6/6 0/0 0/0 .rodata m__18daNpc_ZelR_Param_c */ -daNpc_ZelR_Param_c::Data const daNpc_ZelR_Param_c::m = { +daNpc_ZelR_HIOParam const daNpc_ZelR_Param_c::m = { 190.0f, - -3.0f, // mGravity + -3.0f, 1.0f, 400.0f, - 255.0f, // mWeight - 170.0f, // mCylH - 35.0f, // mWallH - 30.0f, // mWallR + 255.0f, + 170.0f, + 35.0f, + 30.0f, 0.0f, 0.0f, 10.0f, @@ -99,7 +103,7 @@ daNpc_ZelR_Param_c::Data const daNpc_ZelR_Param_c::m = { 45.0f, -45.0f, 0.6f, - 12.0f, // mMorfFrames + 12.0f, 3, 6, 5, @@ -110,8 +114,11 @@ daNpc_ZelR_Param_c::Data const daNpc_ZelR_Param_c::m = { 0.0f, 0x3C, 8, - 0.0f, - 0.0f, + 0, + 0, + 0, + false, + false, 4.0f, 0.0f, 0.0f, @@ -160,7 +167,7 @@ int daNpc_ZelR_c::create() { setEnvTevColor(); setRoomNo(); - mCcStts.Init(daNpc_ZelR_Param_c::m.mWeight, 0, this); + mCcStts.Init(daNpc_ZelR_Param_c::m.common.weight, 0, this); mCyl.Set(mCcDCyl); mCyl.SetStts(&mCcStts); mCyl.SetTgHitCallback(tgHitCallBack); @@ -176,12 +183,7 @@ int daNpc_ZelR_c::create() { /* 80B6F1F8-80B6F4A8 0004B8 02B0+00 1/1 0/0 0/0 .text CreateHeap__12daNpc_ZelR_cFv */ int daNpc_ZelR_c::CreateHeap() { - // NONMATCHING - int bmdIdx = mTwilight; - if (mTwilight == 1) { - bmdIdx = 0; - } - + int bmdIdx = mTwilight == true ? NONE : NONE; J3DModelData* mdlData_p = (J3DModelData*)(dComIfG_getObjectRes( l_resNameList[l_bmdData[bmdIdx].arcIdx], l_bmdData[bmdIdx].fileIdx )); @@ -367,24 +369,24 @@ BOOL daNpc_ZelR_c::ctrlBtk() { void daNpc_ZelR_c::setParam() { selectAction(); srchActors(); - s16 sVar1 = l_HIO.m.field_0x48; - s16 sVar2 = l_HIO.m.field_0x4a; - s16 sVar3 = l_HIO.m.field_0x4c; - s16 sVar4 = l_HIO.m.field_0x4e; + s16 sVar1 = l_HIO.m.common.talk_distance; + s16 sVar2 = l_HIO.m.common.talk_angle; + s16 sVar3 = l_HIO.m.common.attention_distance; + s16 sVar4 = l_HIO.m.common.attention_angle; attention_info.distances[0] = daNpcT_getDistTableIdx(sVar3, sVar4); attention_info.distances[1] = attention_info.distances[0]; attention_info.distances[3] = daNpcT_getDistTableIdx(sVar1, sVar2); attention_info.flags = fopAc_AttnFlag_SPEAK_e | fopAc_AttnFlag_TALK_e; - scale.setall(l_HIO.m.field_0x8); - mCcStts.SetWeight(l_HIO.m.mWeight); - mCylH = l_HIO.m.mCylH; - mWallR = l_HIO.m.mWallR; + scale.setall(l_HIO.m.common.scale); + mCcStts.SetWeight(l_HIO.m.common.weight); + mCylH = l_HIO.m.common.height; + mWallR = l_HIO.m.common.width; mAcchCir.SetWallR(mWallR); - mAcchCir.SetWallH(l_HIO.m.mWallH); - mRealShadowSize = l_HIO.m.field_0xc; - gravity = l_HIO.m.mGravity; - mExpressionMorfFrame = l_HIO.m.field_0x6c; - mMorfFrames = l_HIO.m.mMorfFrames; + mAcchCir.SetWallH(l_HIO.m.common.knee_length); + mRealShadowSize = l_HIO.m.common.real_shadow_size; + gravity = l_HIO.m.common.gravity; + mExpressionMorfFrame = l_HIO.m.common.expression_morf_frame; + mMorfFrames = l_HIO.m.common.morf_frame; } /* 80B6FC9C-80B6FCFC 000F5C 0060+00 1/0 0/0 0/0 .text setAfterTalkMotion__12daNpc_ZelR_cFv */ @@ -421,7 +423,6 @@ BOOL daNpc_ZelR_c::evtTalk() { /* 80B6FE00-80B6FEC8 0010C0 00C8+00 1/0 0/0 0/0 .text evtCutProc__12daNpc_ZelR_cFv */ BOOL daNpc_ZelR_c::evtCutProc() { - // NONMATCHING BOOL rv = FALSE; int staffId = dComIfGp_getEventManager().getMyStaffId("ZelR", this, -1); if (staffId != -1) { @@ -474,9 +475,9 @@ void daNpc_ZelR_c::setAttnPos() { mStagger.calc(FALSE); mJntAnm.setParam(this, mpMorf[0]->getModel(), &sp38, getBackboneJointNo(), getNeckJointNo(), getHeadJointNo(), - l_HIO.m.field_0x24, l_HIO.m.field_0x20, l_HIO.m.field_0x2c, - l_HIO.m.field_0x28, l_HIO.m.field_0x34, l_HIO.m.field_0x30, - l_HIO.m.field_0x3c, l_HIO.m.field_0x38, l_HIO.m.field_0x40, + l_HIO.m.common.body_angleX_min, l_HIO.m.common.body_angleX_max, l_HIO.m.common.body_angleY_min, + l_HIO.m.common.body_angleY_max, l_HIO.m.common.head_angleX_min, l_HIO.m.common.head_angleX_max, + l_HIO.m.common.head_angleY_min, l_HIO.m.common.head_angleY_max, l_HIO.m.common.neck_rotation_ratio, 0.0f, NULL); mJntAnm.calcJntRad(0.2f, 1.0f, cM_s2rad(mCurAngle.y - field_0xd7e.y)); @@ -489,7 +490,7 @@ void daNpc_ZelR_c::setAttnPos() { mJntAnm.setEyeAngleY(eyePos, mCurAngle.y, 0, 1.0f, 0); attention_info.position = current.pos; - attention_info.position.y += l_HIO.m.field_0x0; + attention_info.position.y += l_HIO.m.common.attention_offset; } /* 80B702B0-80B703E0 001570 0130+00 1/0 0/0 0/0 .text setCollision__12daNpc_ZelR_cFv */ @@ -531,7 +532,7 @@ int daNpc_ZelR_c::drawDbgInfo() { /* 80B703E8-80B70430 0016A8 0048+00 1/1 0/0 0/0 .text selectAction__12daNpc_ZelR_cFv */ int daNpc_ZelR_c::selectAction() { field_0xf84 = NULL; - field_0xf84 = &daNpc_ZelR_c::talk; + field_0xf84 = &daNpc_ZelR_c::wait; return 1; } @@ -558,9 +559,6 @@ int daNpc_ZelR_c::setAction(int (daNpc_ZelR_c::*param_1)(void*)) { /* 80B70504-80B706B0 0017C4 01AC+00 1/0 0/0 0/0 .text wait__12daNpc_ZelR_cFPv */ int daNpc_ZelR_c::wait(void* param_1) { - // NONMATCHING - s16 sVar1; - switch (mMode) { case 0: case 1: @@ -569,15 +567,16 @@ int daNpc_ZelR_c::wait(void* param_1) { mMode = 2; case 2: if (!mStagger.checkStagger()) { + BOOL bVar1; if (srchPlayerActor()) { mJntAnm.lookPlayer(0); - sVar1 = checkStep(); + bVar1 = checkStep(); } else { mJntAnm.lookNone(0); - sVar1 = home.angle.y != mCurAngle.y; + bVar1 = home.angle.y != mCurAngle.y; } - if ((sVar1 & 0xff) && step(home.angle.y, -1, -1, 15, 0)) { + if (bVar1 && step(home.angle.y, -1, -1, 15, 0)) { mMode = 1; } } @@ -619,51 +618,27 @@ BOOL daNpc_ZelR_c::talk(void* param_1) { } /* 80B70814-80B70834 001AD4 0020+00 1/0 0/0 0/0 .text daNpc_ZelR_Create__FPv */ -static int daNpc_ZelR_Create(void* param_1) { - daNpc_ZelR_c* i_this = (daNpc_ZelR_c*)param_1; - return i_this->create(); +static int daNpc_ZelR_Create(void* a_this) { + return static_cast(a_this)->create(); } /* 80B70834-80B70854 001AF4 0020+00 1/0 0/0 0/0 .text daNpc_ZelR_Delete__FPv */ -static int daNpc_ZelR_Delete(void* param_1) { - daNpc_ZelR_c* i_this = (daNpc_ZelR_c*)param_1; - return i_this->Delete(); +static int daNpc_ZelR_Delete(void* a_this) { + return static_cast(a_this)->Delete(); } /* 80B70854-80B70874 001B14 0020+00 1/0 0/0 0/0 .text daNpc_ZelR_Execute__FPv */ -static int daNpc_ZelR_Execute(void* param_1) { - daNpc_ZelR_c* i_this = (daNpc_ZelR_c*)param_1; - return i_this->Execute(); +static int daNpc_ZelR_Execute(void* a_this) { + return static_cast(a_this)->Execute(); } /* 80B70874-80B70894 001B34 0020+00 1/0 0/0 0/0 .text daNpc_ZelR_Draw__FPv */ -static int daNpc_ZelR_Draw(void* param_1) { - daNpc_ZelR_c* i_this = (daNpc_ZelR_c*)param_1; - return i_this->Draw(); +static int daNpc_ZelR_Draw(void* a_this) { + return static_cast(a_this)->Draw(); } /* 80B70894-80B7089C 001B54 0008+00 1/0 0/0 0/0 .text daNpc_ZelR_IsDelete__FPv */ -static int daNpc_ZelR_IsDelete(void* param_0) { - return 1; -} - -/* 80B71A34-80B71A3C 002CF4 0008+00 1/0 0/0 0/0 .text getEyeballRMaterialNo__12daNpc_ZelR_cFv */ -u16 daNpc_ZelR_c::getEyeballRMaterialNo() { - return 3; -} - -/* 80B71A3C-80B71A44 002CFC 0008+00 1/0 0/0 0/0 .text getEyeballLMaterialNo__12daNpc_ZelR_cFv */ -u16 daNpc_ZelR_c::getEyeballLMaterialNo() { - return 2; -} - -/* 80B71A44-80B71A4C 002D04 0008+00 1/0 0/0 0/0 .text getHeadJointNo__12daNpc_ZelR_cFv */ -s32 daNpc_ZelR_c::getHeadJointNo() { - return 3; -} - -/* 80B71A4C-80B71A54 002D0C 0008+00 1/0 0/0 0/0 .text getBackboneJointNo__12daNpc_ZelR_cFv */ -s32 daNpc_ZelR_c::getBackboneJointNo() { +static int daNpc_ZelR_IsDelete(void* a_this) { return 1; } diff --git a/src/d/actor/d_a_npc_zelRo.cpp b/src/d/actor/d_a_npc_zelRo.cpp index 3f2023e2a2c..991498fc5fa 100644 --- a/src/d/actor/d_a_npc_zelRo.cpp +++ b/src/d/actor/d_a_npc_zelRo.cpp @@ -6,361 +6,709 @@ #include "d/dolzel_rel.h" #include "d/actor/d_a_npc_zelRo.h" -#include "dol2asm.h" -// -// Forward References: -// +enum zelRo_RES_File_ID { + /* BCK */ + /* 0x06 */ BCK_ZELRO_F_TALK_A = 0x6, + /* 0x07 */ BCK_ZELRO_WAIT_A, -extern "C" void __dt__13daNpc_ZelRo_cFv(); -extern "C" void create__13daNpc_ZelRo_cFv(); -extern "C" void CreateHeap__13daNpc_ZelRo_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__13daNpc_ZelRo_cFv(); -extern "C" void Execute__13daNpc_ZelRo_cFv(); -extern "C" void Draw__13daNpc_ZelRo_cFv(); -extern "C" void createHeapCallBack__13daNpc_ZelRo_cFP10fopAc_ac_c(); -extern "C" void ctrlJointCallBack__13daNpc_ZelRo_cFP8J3DJointi(); -extern "C" void getType__13daNpc_ZelRo_cFv(); -extern "C" void getFlowNodeNo__13daNpc_ZelRo_cFv(); -extern "C" void getPath__13daNpc_ZelRo_cFv(); -extern "C" void isDelete__13daNpc_ZelRo_cFv(); -extern "C" void reset__13daNpc_ZelRo_cFv(); -extern "C" void afterJntAnm__13daNpc_ZelRo_cFi(); -extern "C" void ctrlBtk__13daNpc_ZelRo_cFv(); -extern "C" void setParam__13daNpc_ZelRo_cFv(); -extern "C" void setAfterTalkMotion__13daNpc_ZelRo_cFv(); -extern "C" void srchActors__13daNpc_ZelRo_cFv(); -extern "C" void evtTalk__13daNpc_ZelRo_cFv(); -extern "C" void evtCutProc__13daNpc_ZelRo_cFv(); -extern "C" void action__13daNpc_ZelRo_cFv(); -extern "C" void beforeMove__13daNpc_ZelRo_cFv(); -extern "C" void setAttnPos__13daNpc_ZelRo_cFv(); -extern "C" void setCollision__13daNpc_ZelRo_cFv(); -extern "C" bool drawDbgInfo__13daNpc_ZelRo_cFv(); -extern "C" void selectAction__13daNpc_ZelRo_cFv(); -extern "C" void chkAction__13daNpc_ZelRo_cFM13daNpc_ZelRo_cFPCvPvPv_i(); -extern "C" void setAction__13daNpc_ZelRo_cFM13daNpc_ZelRo_cFPCvPvPv_i(); -extern "C" void wait__13daNpc_ZelRo_cFPv(); -extern "C" void talk__13daNpc_ZelRo_cFPv(); -extern "C" static void daNpc_ZelRo_Create__FPv(); -extern "C" static void daNpc_ZelRo_Delete__FPv(); -extern "C" static void daNpc_ZelRo_Execute__FPv(); -extern "C" static void daNpc_ZelRo_Draw__FPv(); -extern "C" static bool daNpc_ZelRo_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__13daNpcT_Path_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__18daNpcT_ActorMngr_cFv(); -extern "C" void __dt__22daNpcT_MotionSeqMngr_cFv(); -extern "C" void __dt__12dBgS_AcchCirFv(); -extern "C" void __dt__10dCcD_GSttsFv(); -extern "C" void __dt__12dBgS_ObjAcchFv(); -extern "C" void __dt__12J3DFrameCtrlFv(); -extern "C" void setEyeAngleY__15daNpcT_JntAnm_cF4cXyzsifs(); -extern "C" void setEyeAngleX__15daNpcT_JntAnm_cF4cXyzfs(); -extern "C" void ctrlSubFaceMotion__8daNpcT_cFi(); -extern "C" s32 getFootLJointNo__8daNpcT_cFv(); -extern "C" s32 getFootRJointNo__8daNpcT_cFv(); -extern "C" u16 getEyeballMaterialNo__8daNpcT_cFv(); -extern "C" bool checkChangeEvt__8daNpcT_cFv(); -extern "C" bool evtEndProc__8daNpcT_cFv(); -extern "C" void afterMoved__8daNpcT_cFv(); -extern "C" bool chkXYItems__8daNpcT_cFv(); -extern "C" void decTmr__8daNpcT_cFv(); -extern "C" void drawOtherMdl__8daNpcT_cFv(); -extern "C" void drawGhost__8daNpcT_cFv(); -extern "C" bool afterSetFaceMotionAnm__8daNpcT_cFiifi(); -extern "C" bool afterSetMotionAnm__8daNpcT_cFiifi(); -extern "C" void getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c(); -extern "C" void getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c(); -extern "C" void changeAnm__8daNpcT_cFPiPi(); -extern "C" void changeBck__8daNpcT_cFPiPi(); -extern "C" void changeBtp__8daNpcT_cFPiPi(); -extern "C" void changeBtk__8daNpcT_cFPiPi(); -extern "C" void __sinit_d_a_npc_zelRo_cpp(); -extern "C" void -__ct__13daNpc_ZelRo_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc(); -extern "C" u16 getEyeballRMaterialNo__13daNpc_ZelRo_cFv(); -extern "C" u16 getEyeballLMaterialNo__13daNpc_ZelRo_cFv(); -extern "C" s32 getHeadJointNo__13daNpc_ZelRo_cFv(); -extern "C" s32 getNeckJointNo__13daNpc_ZelRo_cFv(); -extern "C" bool getBackboneJointNo__13daNpc_ZelRo_cFv(); -extern "C" void checkChangeJoint__13daNpc_ZelRo_cFi(); -extern "C" void checkRemoveJoint__13daNpc_ZelRo_cFi(); -extern "C" void __dt__19daNpc_ZelRo_Param_cFv(); -extern "C" static void func_80B74C38(); -extern "C" static void func_80B74C40(); -extern "C" u8 const m__19daNpc_ZelRo_Param_c[140]; -extern "C" extern char const* const d_a_npc_zelRo__stringBase0; -extern "C" void* mCutNameList__13daNpc_ZelRo_c; -extern "C" u8 mCutList__13daNpc_ZelRo_c[12]; + /* BMDR */ + /* 0x0A */ BMDR_ZELRO = 0xA, -// -// External References: -// + /* BTK */ + /* 0x0D */ BTK_ZELRO = 0xD, -extern "C" void mDoMtx_YrotM__FPA4_fs(); -extern "C" void mDoMtx_ZrotM__FPA4_fs(); -extern "C" void -__ct__16mDoExt_McaMorfSOFP12J3DModelDataP25mDoExt_McaMorfCallBack1_cP25mDoExt_McaMorfCallBack2_cP15J3DAnmTransformifiiP10Z2CreatureUlUl(); -extern "C" void stopZelAnime__16mDoExt_McaMorfSOFv(); -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void __dt__10fopAc_ac_cFv(); -extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl(); -extern "C" void fopAcM_setCullSizeBox__FP10fopAc_ac_cffffff(); -extern "C" void fopAcM_searchActorAngleY__FPC10fopAc_ac_cPC10fopAc_ac_c(); -extern "C" void dComIfGs_wolfeye_effect_check__Fv(); -extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci(); -extern "C" void reset__14dEvt_control_cFv(); -extern "C" void getMyStaffId__16dEvent_manager_cFPCcP10fopAc_ac_ci(); -extern "C" void getMyActIdx__16dEvent_manager_cFiPCPCciii(); -extern "C" void cutEnd__16dEvent_manager_cFi(); -extern "C" void ChkPresentEnd__16dEvent_manager_cFv(); -extern "C" void __ct__12dBgS_AcchCirFv(); -extern "C" void SetWallR__12dBgS_AcchCirFf(); -extern "C" void __dt__9dBgS_AcchFv(); -extern "C" void __ct__9dBgS_AcchFv(); -extern "C" void Set__9dBgS_AcchFP4cXyzP4cXyzP10fopAc_ac_ciP12dBgS_AcchCirP4cXyzP5csXyzP5csXyz(); -extern "C" void CrrPos__9dBgS_AcchFR4dBgS(); -extern "C" void __ct__11dBgS_GndChkFv(); -extern "C" void __dt__11dBgS_GndChkFv(); -extern "C" void __ct__11dBgS_LinChkFv(); -extern "C" void __dt__11dBgS_LinChkFv(); -extern "C" void SetObj__16dBgS_PolyPassChkFv(); -extern "C" void __ct__10dCcD_GSttsFv(); -extern "C" void Init__9dCcD_SttsFiiP10fopAc_ac_c(); -extern "C" void __ct__12dCcD_GObjInfFv(); -extern "C" void __dt__12dCcD_GObjInfFv(); -extern "C" void Set__8dCcD_CylFRC11dCcD_SrcCyl(); -extern "C" void initialize__18daNpcT_ActorMngr_cFv(); -extern "C" void entry__18daNpcT_ActorMngr_cFP10fopAc_ac_c(); -extern "C" void remove__18daNpcT_ActorMngr_cFv(); -extern "C" void initialize__15daNpcT_MatAnm_cFv(); -extern "C" void initialize__22daNpcT_MotionSeqMngr_cFv(); -extern "C" void initialize__13daNpcT_Path_cFv(); -extern "C" void setPathInfo__13daNpcT_Path_cFUcScUc(); -extern "C" void initialize__15daNpcT_JntAnm_cFv(); -extern "C" void setParam__15daNpcT_JntAnm_cFP10fopAc_ac_cP8J3DModelP4cXyziiiffffffffffP4cXyz(); -extern "C" void calcJntRad__15daNpcT_JntAnm_cFfff(); -extern "C" void setParam__19daNpcT_DmgStagger_cFP10fopAc_ac_cP10fopAc_ac_cs(); -extern "C" void calc__19daNpcT_DmgStagger_cFi(); -extern "C" void tgHitCallBack__8daNpcT_cFP10fopAc_ac_cP12dCcD_GObjInfP10fopAc_ac_cP12dCcD_GObjInf(); -extern "C" void loadRes__8daNpcT_cFPCScPPCc(); -extern "C" void deleteRes__8daNpcT_cFPCScPPCc(); -extern "C" void execute__8daNpcT_cFv(); -extern "C" void draw__8daNpcT_cFiifP11_GXColorS10fiii(); -extern "C" void setEnvTevColor__8daNpcT_cFv(); -extern "C" void setRoomNo__8daNpcT_cFv(); -extern "C" void setMtx__8daNpcT_cFv(); -extern "C" void ctrlJoint__8daNpcT_cFP8J3DJointP8J3DModel(); -extern "C" void evtProc__8daNpcT_cFv(); -extern "C" void setFootPos__8daNpcT_cFv(); -extern "C" void setFootPrtcl__8daNpcT_cFP4cXyzff(); -extern "C" bool checkCullDraw__8daNpcT_cFv(); -extern "C" void twilight__8daNpcT_cFv(); -extern "C" void evtOrder__8daNpcT_cFv(); -extern "C" void evtChange__8daNpcT_cFv(); -extern "C" void clrParam__8daNpcT_cFv(); -extern "C" void setFaceMotionAnm__8daNpcT_cFib(); -extern "C" void setMotionAnm__8daNpcT_cFifi(); -extern "C" void setAngle__8daNpcT_cFs(); -extern "C" void hitChk__8daNpcT_cFP12dCcD_GObjInfUl(); -extern "C" void setDamage__8daNpcT_cFiii(); -extern "C" void srchPlayerActor__8daNpcT_cFv(); -extern "C" void step__8daNpcT_cFsiiii(); -extern "C" void initTalk__8daNpcT_cFiPP10fopAc_ac_c(); -extern "C" void talkProc__8daNpcT_cFPiiPP10fopAc_ac_ci(); -extern "C" void daNpcT_getDistTableIdx__Fii(); -extern "C" void daNpcT_chkEvtBit__FUl(); -extern "C" void __ct__10dMsgFlow_cFv(); -extern "C" void __dt__10dMsgFlow_cFv(); -extern "C" void Set__4cCcSFP8cCcD_Obj(); -extern "C" void __mi__4cXyzCFRC3Vec(); -extern "C" void cM_atan2s__Fff(); -extern "C" void cM_rndF__Ff(); -extern "C" void __ct__11cBgS_GndChkFv(); -extern "C" void __dt__11cBgS_GndChkFv(); -extern "C" void __dt__13cBgS_PolyInfoFv(); -extern "C" void __dt__8cM3dGCirFv(); -extern "C" void SetC__8cM3dGCylFRC4cXyz(); -extern "C" void SetH__8cM3dGCylFf(); -extern "C" void SetR__8cM3dGCylFf(); -extern "C" void __ct__10Z2CreatureFv(); -extern "C" void __dt__10Z2CreatureFv(); -extern "C" void init__10Z2CreatureFP3VecP3VecUcUc(); -extern "C" void* __nw__FUl(); -extern "C" void __dl__FPv(); -extern "C" void init__12J3DFrameCtrlFs(); -extern "C" void getTexNo__16J3DAnmTexPatternCFUsPUs(); -extern "C" void initialize__14J3DMaterialAnmFv(); -extern "C" void __destroy_arr(); -extern "C" void __construct_array(); -extern "C" void __ptmf_test(); -extern "C" void __ptmf_cmpr(); -extern "C" void __ptmf_scall(); -extern "C" void _savegpr_22(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_22(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" extern u8 const __ptmf_null[12 + 4 /* padding */]; -extern "C" extern void* __vt__8dCcD_Cyl[36]; -extern "C" extern void* __vt__9dCcD_Stts[11]; -extern "C" u8 mCcDCyl__8daNpcT_c[68]; -extern "C" extern void* __vt__8daNpcT_c[49]; -extern "C" extern void* __vt__15daNpcT_MatAnm_c[4 + 1 /* padding */]; -extern "C" extern void* __vt__12cCcD_CylAttr[25]; -extern "C" extern void* __vt__14cCcD_ShapeAttr[22]; -extern "C" extern void* __vt__9cCcD_Stts[8]; -extern "C" extern void* __vt__14J3DMaterialAnm[4]; -extern "C" u8 now__14mDoMtx_stack_c[48]; -extern "C" u8 sincosTable___5JMath[65536]; -extern "C" void __register_global_object(); + /* BTP */ + /* 0x10 */ BTP_ZELRO = 0x10, +}; -// -// Declarations: -// +enum RES_Name { + /* 0x0 */ NONE, + /* 0x1 */ ZELRO, +}; -/* ############################################################################################## */ -/* 80B74D3C-80B74D3C 0000E0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80B74D3C = ""; -SECTION_DEAD static char const* const stringBase_80B74D3D = "NO_RESPONSE"; -SECTION_DEAD static char const* const stringBase_80B74D49 = "zelRo"; -#pragma pop +enum Face_Motion { + /* 0x0 */ FACE_TALK_A, + /* 0x1 */ FACE_NONE, +}; + +enum Motion { + /* 0x0 */ MOT_WAIT_A, +}; + +enum Type { + /* 0x0 */ TYPE_0, + /* 0x1 */ TYPE_1, +}; /* 80B74D78-80B74D80 000020 0008+00 1/1 0/0 0/0 .data l_bmdData */ -SECTION_DATA static u8 l_bmdData[8] = { - 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x01, +static int l_bmdData[1][2] = { + {BMDR_ZELRO, ZELRO}, }; /* 80B74D80-80B74D90 -00001 0010+00 0/1 0/0 0/0 .data l_evtList */ -#pragma push -#pragma force_active on -SECTION_DATA static void* l_evtList[4] = { - (void*)&d_a_npc_zelRo__stringBase0, - (void*)NULL, - (void*)(((char*)&d_a_npc_zelRo__stringBase0) + 0x1), - (void*)NULL, +static daNpcT_evtData_c l_evtList[2] = { + {"", 0}, + {"NO_RESPONSE", 0}, }; -#pragma pop /* 80B74D90-80B74D98 -00001 0008+00 2/3 0/0 0/0 .data l_resNameList */ -SECTION_DATA static void* l_resNameList[2] = { - (void*)&d_a_npc_zelRo__stringBase0, - (void*)(((char*)&d_a_npc_zelRo__stringBase0) + 0xD), +static char* l_resNameList[2] = { + "", + "zelRo", }; /* 80B74D98-80B74D9C 000040 0002+02 1/0 0/0 0/0 .data l_loadResPtrn0 */ -SECTION_DATA static u16 l_loadResPtrn0[1 + 1 /* padding */] = { - 0x01FF, - /* padding */ - 0x0000, +static s8 l_loadResPtrn0[2] = { + 1, -1 }; /* 80B74D9C-80B74DA4 -00001 0008+00 1/2 0/0 0/0 .data l_loadResPtrnList */ -SECTION_DATA static void* l_loadResPtrnList[2] = { - (void*)&l_loadResPtrn0, - (void*)&l_loadResPtrn0, +static s8* l_loadResPtrnList[2] = { + l_loadResPtrn0, + l_loadResPtrn0, }; /* 80B74DA4-80B74DDC 00004C 0038+00 0/1 0/0 0/0 .data l_faceMotionAnmData */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_faceMotionAnmData[56] = { - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, - 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, +static daNpcT_faceMotionAnmData_c l_faceMotionAnmData[2] = { + {-1, J3DFrameCtrl::EMode_NONE, NONE, 16, J3DFrameCtrl::EMode_LOOP, ZELRO, 1}, + {BCK_ZELRO_F_TALK_A, J3DFrameCtrl::EMode_NONE, ZELRO, 16, J3DFrameCtrl::EMode_LOOP, ZELRO, 1}, }; -#pragma pop /* 80B74DDC-80B74DF8 000084 001C+00 0/1 0/0 0/0 .data l_motionAnmData */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_motionAnmData[28] = { - 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, +static daNpcT_motionAnmData_c l_motionAnmData[1] = { + {BCK_ZELRO_WAIT_A, J3DFrameCtrl::EMode_LOOP, ZELRO, BTK_ZELRO, J3DFrameCtrl::EMode_NONE, ZELRO, 1, 0}, }; -#pragma pop /* 80B74DF8-80B74E18 0000A0 0020+00 0/1 0/0 0/0 .data l_faceMotionSequenceData */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_faceMotionSequenceData[32] = { - 0x00, 0x01, 0xFF, 0x01, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, +static daNpcT_MotionSeqMngr_c::sequenceStepData_c l_faceMotionSequenceData[8] = { + {1, -1, 1}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, + {0, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, }; -#pragma pop /* 80B74E18-80B74E28 0000C0 0010+00 0/1 0/0 0/0 .data l_motionSequenceData */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_motionSequenceData[16] = { - 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, +static daNpcT_MotionSeqMngr_c::sequenceStepData_c l_motionSequenceData[4] = { + {0, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, }; -#pragma pop /* 80B74E28-80B74E2C -00001 0004+00 1/1 0/0 0/0 .data mCutNameList__13daNpc_ZelRo_c */ -SECTION_DATA void* daNpc_ZelRo_c::mCutNameList = (void*)&d_a_npc_zelRo__stringBase0; +char* daNpc_ZelRo_c::mCutNameList = ""; /* 80B74E2C-80B74E38 0000D4 000C+00 2/2 0/0 0/0 .data mCutList__13daNpc_ZelRo_c */ -SECTION_DATA u8 daNpc_ZelRo_c::mCutList[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +daNpc_ZelRo_c::cutFunc daNpc_ZelRo_c::mCutList[1] = { + NULL }; -/* 80B74E38-80B74E44 -00001 000C+00 1/1 0/0 0/0 .data @4609 */ -SECTION_DATA static void* lit_4609[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talk__13daNpc_ZelRo_cFPv, +/* 80B71FAC-80B720E4 0000EC 0138+00 1/0 0/0 0/0 .text __dt__13daNpc_ZelRo_cFv */ +daNpc_ZelRo_c::~daNpc_ZelRo_c() { + if (heap != NULL) { + mpMorf[0]->stopZelAnime(); + } + + deleteRes(l_loadResPtrnList[mType], (const char**)l_resNameList); +} + +/* 80B74C5C-80B74CE8 000000 008C+00 6/6 0/0 0/0 .rodata m__19daNpc_ZelRo_Param_c */ +const daNpc_ZelRo_HIOParam daNpc_ZelRo_Param_c::m = { + 190.0f, + -3.0f, + 1.0f, + 400.0f, + 255.0f, + 170.0f, + 35.0f, + 30.0f, + 0.0f, + 0.0f, + 10.0f, + -10.0f, + 30.0f, + -10.0f, + 45.0f, + -45.0f, + 0.6f, + 12.0f, + 3, + 6, + 5, + 6, + 0.0f, + 0.0f, + 0.0f, + 0.0f, + 60, + 8, + 0, + 0, + 0, + false, + false, + 4.0f, + 0.0f, + 0.0f, + 0.0f, + 0.0f, + 0.0f, + 0.0f, + 0.0f, }; -/* 80B74E44-80B74E50 -00001 000C+00 1/1 0/0 0/0 .data @4619 */ -SECTION_DATA static void* lit_4619[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talk__13daNpc_ZelRo_cFPv, -}; +/* 80B720E4-80B72378 000224 0294+00 1/1 0/0 0/0 .text create__13daNpc_ZelRo_cFv */ +cPhs__Step daNpc_ZelRo_c::create() { + fopAcM_SetupActor2(this, daNpc_ZelRo_c, l_faceMotionAnmData, l_motionAnmData, l_faceMotionSequenceData, 4, l_motionSequenceData, 4, l_evtList, l_resNameList); -/* 80B74E50-80B74E5C -00001 000C+00 1/1 0/0 0/0 .data @4842 */ -SECTION_DATA static void* lit_4842[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__13daNpc_ZelRo_cFPv, -}; + mType = getType(); + mFlowNodeNo = getFlowNodeNo(); + mTwilight = false; + + cPhs__Step phase = (cPhs__Step)loadRes(l_loadResPtrnList[mType], (const char**)l_resNameList); + if (phase == cPhs_COMPLEATE_e) { + if (!fopAcM_entrySolidHeap(this, createHeapCallBack, 0x71C0)) { + return cPhs_ERROR_e; + } + + OS_REPORT("\t(%s:%d) flowNo:%d, PathNo:%02x<%08x> ", fopAcM_getProcNameString(this), mType, mFlowNodeNo, + (getPath() >> 32) & 0xFF, fopAcM_GetParam(this)); + + if (isDelete()) { + OS_REPORT("===>isDelete:TRUE\n"); + return cPhs_ERROR_e; + } + + OS_REPORT("\n"); + + + fopAcM_SetMtx(this, mpMorf[0]->getModel()->getBaseTRMtx()); + fopAcM_setCullSizeBox(this, -300.0f, -50.0f, -300.0f, 300.0f, 450.0f, 300.0f); + fopAcM_OnStatus(this, fopAcM_STATUS_UNK_0x8000000); + + mSound.init(¤t.pos, &eyePos, 3, 1); + + mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir, fopAcM_GetSpeed_p(this), + fopAcM_GetAngle_p(this), fopAcM_GetShapeAngle_p(this)); + + mAcch.CrrPos(dComIfG_Bgsp()); + mGndChk = mAcch.m_gnd; + mGroundH = mAcch.GetGroundH(); + + setEnvTevColor(); + setRoomNo(); + + mCcStts.Init(daNpc_ZelRo_Param_c::m.common.weight, 0, this); + mCyl.Set(mCcDCyl); + mCyl.SetStts(&mCcStts); + mCyl.SetTgHitCallback(tgHitCallBack); + + reset(); + mCreating = true; + Execute(); + mCreating = false; + } + + return phase; +} + +/* 80B72378-80B72628 0004B8 02B0+00 1/1 0/0 0/0 .text CreateHeap__13daNpc_ZelRo_cFv */ +int daNpc_ZelRo_c::CreateHeap() { + int bmdIdx = mTwilight == true ? NONE : NONE; + J3DModelData* mdlData_p = (J3DModelData*)dComIfG_getObjectRes(l_resNameList[l_bmdData[bmdIdx][1]], l_bmdData[bmdIdx][0]); + + JUT_ASSERT(432, 0 != mdlData_p); + + mpMorf[0] = new mDoExt_McaMorfSO(mdlData_p, NULL, NULL, NULL, -1, 1.0f, 0, -1, &mSound, 0, 0x11020284); + if (mpMorf[0] != NULL && mpMorf[0]->getModel() == NULL) { + mpMorf[0]->stopZelAnime(); + mpMorf[0] = NULL; + } + + if (mpMorf[0] == NULL) { + return 0; + } + + J3DModel* model = mpMorf[0]->getModel(); + for (u16 i = 0; i < mdlData_p->getJointNum(); i++) { + mdlData_p->getJointNodePointer(i)->setCallBack(ctrlJointCallBack); + } + model->setUserArea((u32)this); + + for (int i = 0; i < 2; i++) { + mpMatAnm[i] = new daNpcT_MatAnm_c(); + if (mpMatAnm[i] == NULL) { + return 0; + } + } + + if (setFaceMotionAnm(1, false) && setMotionAnm(0, 0.0f, FALSE)) { + return 1; + } + + return 0; +} + +/* 80B727E4-80B72818 000924 0034+00 1/1 0/0 0/0 .text Delete__13daNpc_ZelRo_cFv */ +int daNpc_ZelRo_c::Delete() { + this->~daNpc_ZelRo_c(); + return 1; +} + +/* 80B72818-80B72838 000958 0020+00 2/2 0/0 0/0 .text Execute__13daNpc_ZelRo_cFv */ +int daNpc_ZelRo_c::Execute() { + return execute(); +} + +/* 80B72838-80B728FC 000978 00C4+00 1/1 0/0 0/0 .text Draw__13daNpc_ZelRo_cFv */ +int daNpc_ZelRo_c::Draw() { + J3DModelData* mdlData_p = mpMorf[0]->getModel()->getModelData(); + + if (mpMatAnm[0] != NULL) { + mdlData_p->getMaterialNodePointer(getEyeballLMaterialNo())->setMaterialAnm(mpMatAnm[0]); + } + + if (mpMatAnm[1] != NULL) { + mdlData_p->getMaterialNodePointer(getEyeballRMaterialNo())->setMaterialAnm(mpMatAnm[1]); + } + + return draw( +#ifdef DEBUG + chkAction(&daNpc_ZelRo_c::test), +#else + FALSE, +#endif + TRUE, mRealShadowSize, NULL, 100.0f, FALSE, FALSE, FALSE + ); +} + +/* 80B728FC-80B7291C 000A3C 0020+00 1/1 0/0 0/0 .text createHeapCallBack__13daNpc_ZelRo_cFP10fopAc_ac_c */ +int daNpc_ZelRo_c::createHeapCallBack(fopAc_ac_c* a_this) { + return static_cast(a_this)->CreateHeap(); +} + +/* 80B7291C-80B72974 000A5C 0058+00 1/1 0/0 0/0 .text ctrlJointCallBack__13daNpc_ZelRo_cFP8J3DJointi */ +int daNpc_ZelRo_c::ctrlJointCallBack(J3DJoint* i_joint, int param_2) { + if (param_2 == 0) { + J3DModel* model = j3dSys.getModel(); + daNpc_ZelRo_c* i_this = (daNpc_ZelRo_c*)model->getUserArea(); + + if (i_this != NULL) { + i_this->ctrlJoint(i_joint, model); + } + } + + return 1; +} + +/* 80B72974-80B72994 000AB4 0020+00 1/1 0/0 0/0 .text getType__13daNpc_ZelRo_cFv */ +u8 daNpc_ZelRo_c::getType() { + switch (fopAcM_GetParam(this) & 0xFF) { + case 0: + return TYPE_0; + + default: + return TYPE_1; + } +} + +/* 80B72994-80B729B0 000AD4 001C+00 1/1 0/0 0/0 .text getFlowNodeNo__13daNpc_ZelRo_cFv */ +int daNpc_ZelRo_c::getFlowNodeNo() { + u16 rv = home.angle.x; + + if (rv == 0xFFFF) { + return -1; + } + + return rv; +} + +/* 80B729B0-80B729BC 000AF0 000C+00 1/1 0/0 0/0 .text getPath__13daNpc_ZelRo_cFv */ +u8 daNpc_ZelRo_c::getPath() { + return (fopAcM_GetParam(this) & 0xFF00) >> 8; +} + +/* 80B729BC-80B72A10 000AFC 0054+00 1/1 0/0 0/0 .text isDelete__13daNpc_ZelRo_cFv */ +BOOL daNpc_ZelRo_c::isDelete() { + if (mType == TYPE_1) { + return FALSE; + } + + switch (mType) { + case TYPE_0: + /* dSv_event_flag_c::M_012 - Cutscene - [cutscene: 7] Meet Princess Zelda at castle */ + return daNpcT_chkEvtBit(45) == FALSE; + + default: + return TRUE; + } +} + +/* 80B72A10-80B72B8C 000B50 017C+00 1/1 0/0 0/0 .text reset__13daNpc_ZelRo_cFv */ +void daNpc_ZelRo_c::reset() { + initialize(); + + memset(&mNextAction, 0, (u8*)&field_0xfc4 - (u8*)&mNextAction); + + for (int i = 0; i < 2; i++) { + if (mpMatAnm[i] != NULL) { + mpMatAnm[i]->initialize(); + } + } + + if (getPath() != 0xFF) { + mPath.initialize(); + mPath.setPathInfo(getPath(), fopAcM_GetRoomNo(this), 0); + } + + setAngle(home.angle.y); +} + +/* 80B72B8C-80B72C18 000CCC 008C+00 1/0 0/0 0/0 .text afterJntAnm__13daNpc_ZelRo_cFi */ +void daNpc_ZelRo_c::afterJntAnm(int param_1) { + if (param_1 == 1) { + mDoMtx_stack_c::YrotM(mStagger.getAngleZ(1)); + mDoMtx_stack_c::ZrotM(-mStagger.getAngleX(1)); + } else if (param_1 == 4) { + mDoMtx_stack_c::YrotM(mStagger.getAngleZ(0)); + mDoMtx_stack_c::ZrotM(-mStagger.getAngleX(0)); + } +} + +/* 80B72C18-80B72D24 000D58 010C+00 1/0 0/0 0/0 .text ctrlBtk__13daNpc_ZelRo_cFv */ +BOOL daNpc_ZelRo_c::ctrlBtk() { + if (mpMatAnm[0] != NULL && mpMatAnm[1] != NULL) { + if (field_0xe29 != 0 && mBtkAnm.getBtkAnm() != NULL) { + mpMatAnm[0]->setNowOffsetX(cM_ssin(mJntAnm.getEyeAngleY()) * 0.2f * -1.0f); + mpMatAnm[0]->setNowOffsetY(cM_ssin(mJntAnm.getEyeAngleX()) * 0.2f); + mpMatAnm[1]->setNowOffsetX(cM_ssin(mJntAnm.getEyeAngleY()) * 0.2f); + mpMatAnm[1]->setNowOffsetY(cM_ssin(mJntAnm.getEyeAngleX()) * 0.2f); + mpMatAnm[0]->onEyeMoveFlag(); + mpMatAnm[1]->onEyeMoveFlag(); + return TRUE; + } + + if (field_0xe2a != 0) { + mpMatAnm[0]->setMorfFrm(field_0xe2a); + mpMatAnm[1]->setMorfFrm(field_0xe2a); + field_0xe2a = 0; + } + + mpMatAnm[0]->offEyeMoveFlag(); + mpMatAnm[1]->offEyeMoveFlag(); + } + + return FALSE; +} + +/* 80B72D24-80B72E18 000E64 00F4+00 1/0 0/0 0/0 .text setParam__13daNpc_ZelRo_cFv */ +void daNpc_ZelRo_c::setParam() { + selectAction(); + srchActors(); + + s16 talk_distance = daNpc_ZelRo_Param_c::m.common.talk_distance; + s16 talk_angle = daNpc_ZelRo_Param_c::m.common.talk_angle; + + attention_info.distances[fopAc_attn_LOCK_e] = daNpcT_getDistTableIdx(daNpc_ZelRo_Param_c::m.common.attention_distance, daNpc_ZelRo_Param_c::m.common.attention_angle); + attention_info.distances[fopAc_attn_TALK_e] = attention_info.distances[fopAc_attn_LOCK_e]; + attention_info.distances[fopAc_attn_SPEAK_e] = daNpcT_getDistTableIdx(talk_distance, talk_angle); + attention_info.flags = fopAc_AttnFlag_SPEAK_e | fopAc_AttnFlag_TALK_e; + + scale.set(daNpc_ZelRo_Param_c::m.common.scale, daNpc_ZelRo_Param_c::m.common.scale, daNpc_ZelRo_Param_c::m.common.scale); + mCcStts.SetWeight(daNpc_ZelRo_Param_c::m.common.weight); + mCylH = daNpc_ZelRo_Param_c::m.common.height; + mWallR = daNpc_ZelRo_Param_c::m.common.width; + mAcchCir.SetWallR(mWallR); + mAcchCir.SetWallH(daNpc_ZelRo_Param_c::m.common.knee_length); + + mRealShadowSize = daNpc_ZelRo_Param_c::m.common.real_shadow_size; + gravity = daNpc_ZelRo_Param_c::m.common.gravity; + mExpressionMorfFrame = daNpc_ZelRo_Param_c::m.common.expression_morf_frame; + mMorfFrames = daNpc_ZelRo_Param_c::m.common.morf_frame; +} + +/* 80B72E18-80B72E78 000F58 0060+00 1/0 0/0 0/0 .text setAfterTalkMotion__13daNpc_ZelRo_cFv */ +void daNpc_ZelRo_c::setAfterTalkMotion() { + mFaceMotionSeqMngr.getNo(); + mFaceMotionSeqMngr.setNo(FACE_NONE, -1.0f, FALSE, 0); +} + +/* 80B72E78-80B72E7C 000FB8 0004+00 1/1 0/0 0/0 .text srchActors__13daNpc_ZelRo_cFv */ +void daNpc_ZelRo_c::srchActors() { + /* empty function */ +} + +/* 80B72E7C-80B72F7C 000FBC 0100+00 1/0 0/0 0/0 .text evtTalk__13daNpc_ZelRo_cFv */ +BOOL daNpc_ZelRo_c::evtTalk() { + if (chkAction(&daNpc_ZelRo_c::talk)) { + (this->*mAction)(NULL); + } else { + mPreItemNo = 0; + + if (dComIfGp_event_chkTalkXY()) { + if (!dComIfGp_evmng_ChkPresentEnd()) { + return TRUE; + } + + mEvtNo = 1; + evtChange(); + + return TRUE; + } + + setAction(&daNpc_ZelRo_c::talk); + } + + return TRUE; +} + +/* 80B72F7C-80B73044 0010BC 00C8+00 1/0 0/0 0/0 .text evtCutProc__13daNpc_ZelRo_cFv */ +BOOL daNpc_ZelRo_c::evtCutProc() { + BOOL rv = FALSE; + int staffId = dComIfGp_getEventManager().getMyStaffId("ZelRo", this, -1); + + if (staffId != -1) { + mStaffId = staffId; + int actIdx = dComIfGp_getEventManager().getMyActIdx(mStaffId, &mCutNameList, 1, 0, 0); + if ((this->*mCutList[actIdx])(mStaffId)) { + dComIfGp_getEventManager().cutEnd(mStaffId); + } + + rv = TRUE; + } + + return rv; +} + +/* 80B73044-80B73194 001184 0150+00 1/0 0/0 0/0 .text action__13daNpc_ZelRo_cFv */ +void daNpc_ZelRo_c::action() { + fopAc_ac_c* actor_p = hitChk(&mCyl, 0xFFFFFFFF); + + if (actor_p != NULL) { + mStagger.setParam(this, actor_p, mCurAngle.y); + setDamage(0, 1, 0); + mStagger.setPower(0.0f); + mDamageTimerStart = 0; + } + + if (mStagger.checkRebirth()) { + mStagger.initialize(); + mMode = MODE_INIT; + } + + if (mNextAction) { + if (mAction == mNextAction) { + (this->*mAction)(NULL); + } else { + setAction(mNextAction); + } + } +} + +/* 80B73194-80B7320C 0012D4 0078+00 1/0 0/0 0/0 .text beforeMove__13daNpc_ZelRo_cFv */ +void daNpc_ZelRo_c::beforeMove() { + if (checkHide() || mNoDraw) { + attention_info.flags = 0; + } +} + +/* 80B7320C-80B7342C 00134C 0220+00 1/0 0/0 0/0 .text setAttnPos__13daNpc_ZelRo_cFv */ +void daNpc_ZelRo_c::setAttnPos() { + cXyz sp48(10.0f, -30.0f, 0.0f); + + mStagger.calc(FALSE); + mJntAnm.setParam(this, mpMorf[0]->getModel(), &sp48, getBackboneJointNo(), getNeckJointNo(), getHeadJointNo(), + daNpc_ZelRo_Param_c::m.common.body_angleX_min, daNpc_ZelRo_Param_c::m.common.body_angleX_max, + daNpc_ZelRo_Param_c::m.common.body_angleY_min, daNpc_ZelRo_Param_c::m.common.body_angleY_max, + daNpc_ZelRo_Param_c::m.common.head_angleX_min, daNpc_ZelRo_Param_c::m.common.head_angleX_max, + daNpc_ZelRo_Param_c::m.common.head_angleY_min, daNpc_ZelRo_Param_c::m.common.head_angleY_max, + daNpc_ZelRo_Param_c::m.common.neck_rotation_ratio, 0.0f, NULL); + mJntAnm.calcJntRad(0.2f, 1.0f, cM_s2rad((s16)(mCurAngle.y - field_0xd7e.y))); + + setMtx(); + mDoMtx_stack_c::copy(mpMorf[0]->getModel()->getAnmMtx(getHeadJointNo())); + mDoMtx_stack_c::multVec(&sp48, &eyePos); + mJntAnm.setEyeAngleX(eyePos, 1.0f, 0); + mJntAnm.setEyeAngleY(eyePos, mCurAngle.y, FALSE, 1.0f, 0); + attention_info.position = current.pos; + attention_info.position.y += daNpc_ZelRo_Param_c::m.common.attention_offset; +} + +/* 80B7342C-80B7355C 00156C 0130+00 1/0 0/0 0/0 .text setCollision__13daNpc_ZelRo_cFv */ +void daNpc_ZelRo_c::setCollision() { + cXyz pos; + + if (!mHide) { + if (mTwilight == true && !dComIfGp_event_runCheck()) { + mCyl.SetCoSPrm(0x69); + } else { + mCyl.SetCoSPrm(0x79); + } + + if (mStagger.checkStagger()) { + mCyl.SetTgType(0); + mCyl.SetTgSPrm(0); + } else { + mCyl.SetTgType(0xD8FBFDFF); + mCyl.SetTgSPrm(0x1F); + mCyl.OnTgNoHitMark(); + } + + f32 cylH = mCylH; + f32 wallR = mWallR; + pos = current.pos; + mCyl.SetH(cylH); + mCyl.SetR(wallR); + mCyl.SetC(pos); + dComIfG_Ccsp()->Set(&mCyl); + } + + mCyl.ClrCoHit(); + mCyl.ClrTgHit(); +} + +/* 80B7355C-80B73564 00169C 0008+00 1/0 0/0 0/0 .text drawDbgInfo__13daNpc_ZelRo_cFv */ +int daNpc_ZelRo_c::drawDbgInfo() { + return 0; +} + +/* 80B73564-80B735AC 0016A4 0048+00 1/1 0/0 0/0 .text selectAction__13daNpc_ZelRo_cFv */ +BOOL daNpc_ZelRo_c::selectAction() { + mNextAction = NULL; + mNextAction = &daNpc_ZelRo_c::wait; + return TRUE; +} + +/* 80B735AC-80B735D8 0016EC 002C+00 1/1 0/0 0/0 .text chkAction__13daNpc_ZelRo_cFM13daNpc_ZelRo_cFPCvPvPv_i */ +BOOL daNpc_ZelRo_c::chkAction(actionFunc action) { + return mAction == action; +} + +/* 80B735D8-80B73680 001718 00A8+00 2/2 0/0 0/0 .text setAction__13daNpc_ZelRo_cFM13daNpc_ZelRo_cFPCvPvPv_i */ +BOOL daNpc_ZelRo_c::setAction(actionFunc action) { + mMode = MODE_EXIT; + + if (mAction) { + (this->*mAction)(NULL); + } + + mMode = MODE_ENTER; + mAction = action; + + if (mAction) { + (this->*mAction)(NULL); + } + + return TRUE; +} + +/* 80B73680-80B7382C 0017C0 01AC+00 1/0 0/0 0/0 .text wait__13daNpc_ZelRo_cFPv */ +int daNpc_ZelRo_c::wait(void* param_1) { + switch (mMode) { + case MODE_ENTER: + case MODE_INIT: + mFaceMotionSeqMngr.setNo(FACE_NONE, -1.0f, FALSE, 0); + mMotionSeqMngr.setNo(MOT_WAIT_A, -1.0f, FALSE, 0); + mMode = MODE_RUN; + // fallthrough + case MODE_RUN: + if (!mStagger.checkStagger()) { + BOOL bVar1; + if (srchPlayerActor()) { + mJntAnm.lookPlayer(0); + bVar1 = checkStep(); + } else { + mJntAnm.lookNone(0); + bVar1 = home.angle.y != mCurAngle.y ? true : false; + } + + if (bVar1 && step(home.angle.y, -1, -1, 15, 0)) { + mMode = MODE_INIT; + } + } + break; + + case MODE_EXIT: + break; + } + + return 1; +} + +/* 80B7382C-80B73990 00196C 0164+00 2/0 0/0 0/0 .text talk__13daNpc_ZelRo_cFPv */ +int daNpc_ZelRo_c::talk(void* param_1) { + BOOL bVar1 = false; + + switch (mMode) { + case MODE_ENTER: + case MODE_INIT: + initTalk(mFlowNodeNo, NULL); + mMode = MODE_RUN; + // fallthrough + case MODE_RUN: + if (mTwilight) { + bVar1 = true; + } else { + mJntAnm.lookPlayer(0); + + if (mCurAngle.y != fopAcM_searchPlayerAngleY(this)) { + step(fopAcM_searchPlayerAngleY(this), -1, -1, 15, 0); + } else { + bVar1 = true; + } + } + + if (bVar1 && talkProc(NULL, FALSE, NULL, FALSE)) { + mPlayerActorMngr.entry(daPy_getPlayerActorClass()); + dComIfGp_event_reset(); + mMode = MODE_EXIT; + } + break; + + case MODE_EXIT: + break; + } + + return 0; +} + +#ifdef DEBUG +int daNpc_ZelRo_c::test(void* param_1) { + +} +#endif + +/* 80B73990-80B739B0 001AD0 0020+00 1/0 0/0 0/0 .text daNpc_ZelRo_Create__FPv */ +static int daNpc_ZelRo_Create(void* a_this) { + return static_cast(a_this)->create(); +} + +/* 80B739B0-80B739D0 001AF0 0020+00 1/0 0/0 0/0 .text daNpc_ZelRo_Delete__FPv */ +static int daNpc_ZelRo_Delete(void* a_this) { + return static_cast(a_this)->Delete(); +} + +/* 80B739D0-80B739F0 001B10 0020+00 1/0 0/0 0/0 .text daNpc_ZelRo_Execute__FPv */ +static int daNpc_ZelRo_Execute(void* a_this) { + return static_cast(a_this)->Execute(); +} + +/* 80B739F0-80B73A10 001B30 0020+00 1/0 0/0 0/0 .text daNpc_ZelRo_Draw__FPv */ +static int daNpc_ZelRo_Draw(void* a_this) { + return static_cast(a_this)->Draw(); +} + +/* 80B73A10-80B73A18 001B50 0008+00 1/0 0/0 0/0 .text daNpc_ZelRo_IsDelete__FPv */ +static int daNpc_ZelRo_IsDelete(void* a_this) { + return 1; +} + +/* 80B7503C-80B75040 000014 0004+00 1/1 0/0 0/0 .bss l_HIO */ +static daNpc_ZelRo_Param_c l_HIO; /* 80B74E5C-80B74E7C -00001 0020+00 1/0 0/0 0/0 .data daNpc_ZelRo_MethodTable */ static actor_method_class daNpc_ZelRo_MethodTable = { - (process_method_func)daNpc_ZelRo_Create__FPv, - (process_method_func)daNpc_ZelRo_Delete__FPv, - (process_method_func)daNpc_ZelRo_Execute__FPv, - (process_method_func)daNpc_ZelRo_IsDelete__FPv, - (process_method_func)daNpc_ZelRo_Draw__FPv, + (process_method_func)daNpc_ZelRo_Create, + (process_method_func)daNpc_ZelRo_Delete, + (process_method_func)daNpc_ZelRo_Execute, + (process_method_func)daNpc_ZelRo_IsDelete, + (process_method_func)daNpc_ZelRo_Draw, }; /* 80B74E7C-80B74EAC -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_ZELRO */ @@ -380,832 +728,3 @@ extern actor_process_profile_definition g_profile_NPC_ZELRO = { fopAc_NPC_e, // mActorType fopAc_CULLBOX_CUSTOM_e, // cullType }; - -/* 80B74EAC-80B74EB8 000154 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, -}; - -/* 80B74EB8-80B74EC4 000160 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, -}; - -/* 80B74EC4-80B74EE8 00016C 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_80B74C40, - (void*)NULL, - (void*)NULL, - (void*)func_80B74C38, -}; - -/* 80B74EE8-80B74EF4 000190 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, -}; - -/* 80B74EF4-80B74F00 00019C 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, -}; - -/* 80B74F00-80B74F0C 0001A8 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, -}; - -/* 80B74F0C-80B74F18 0001B4 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, -}; - -/* 80B74F18-80B74F24 0001C0 000C+00 4/4 0/0 0/0 .data __vt__18daNpcT_ActorMngr_c */ -SECTION_DATA extern void* __vt__18daNpcT_ActorMngr_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__18daNpcT_ActorMngr_cFv, -}; - -/* 80B74F24-80B74F30 0001CC 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, -}; - -/* 80B74F30-80B74F3C 0001D8 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, -}; - -/* 80B74F3C-80B74F48 0001E4 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, -}; - -/* 80B74F48-80B74F54 0001F0 000C+00 3/3 0/0 0/0 .data __vt__13daNpcT_Path_c */ -SECTION_DATA extern void* __vt__13daNpcT_Path_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__13daNpcT_Path_cFv, -}; - -/* 80B74F54-80B75018 0001FC 00C4+00 2/2 0/0 0/0 .data __vt__13daNpc_ZelRo_c */ -SECTION_DATA extern void* __vt__13daNpc_ZelRo_c[49] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__13daNpc_ZelRo_cFv, - (void*)ctrlBtk__13daNpc_ZelRo_cFv, - (void*)ctrlSubFaceMotion__8daNpcT_cFi, - (void*)checkChangeJoint__13daNpc_ZelRo_cFi, - (void*)checkRemoveJoint__13daNpc_ZelRo_cFi, - (void*)getBackboneJointNo__13daNpc_ZelRo_cFv, - (void*)getNeckJointNo__13daNpc_ZelRo_cFv, - (void*)getHeadJointNo__13daNpc_ZelRo_cFv, - (void*)getFootLJointNo__8daNpcT_cFv, - (void*)getFootRJointNo__8daNpcT_cFv, - (void*)getEyeballLMaterialNo__13daNpc_ZelRo_cFv, - (void*)getEyeballRMaterialNo__13daNpc_ZelRo_cFv, - (void*)getEyeballMaterialNo__8daNpcT_cFv, - (void*)ctrlJoint__8daNpcT_cFP8J3DJointP8J3DModel, - (void*)afterJntAnm__13daNpc_ZelRo_cFi, - (void*)setParam__13daNpc_ZelRo_cFv, - (void*)checkChangeEvt__8daNpcT_cFv, - (void*)evtTalk__13daNpc_ZelRo_cFv, - (void*)evtEndProc__8daNpcT_cFv, - (void*)evtCutProc__13daNpc_ZelRo_cFv, - (void*)setAfterTalkMotion__13daNpc_ZelRo_cFv, - (void*)evtProc__8daNpcT_cFv, - (void*)action__13daNpc_ZelRo_cFv, - (void*)beforeMove__13daNpc_ZelRo_cFv, - (void*)afterMoved__8daNpcT_cFv, - (void*)setAttnPos__13daNpc_ZelRo_cFv, - (void*)setFootPos__8daNpcT_cFv, - (void*)setCollision__13daNpc_ZelRo_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__13daNpc_ZelRo_cFv, - (void*)drawOtherMdl__8daNpcT_cFv, - (void*)drawGhost__8daNpcT_cFv, - (void*)afterSetFaceMotionAnm__8daNpcT_cFiifi, - (void*)afterSetMotionAnm__8daNpcT_cFiifi, - (void*)getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c, - (void*)getMotionAnm__8daNpcT_cF22daNpcT_motionAnmData_c, - (void*)changeAnm__8daNpcT_cFPiPi, - (void*)changeBck__8daNpcT_cFPiPi, - (void*)changeBtp__8daNpcT_cFPiPi, - (void*)changeBtk__8daNpcT_cFPiPi, - (void*)setMotionAnm__8daNpcT_cFifi, -}; - -/* 80B71FAC-80B720E4 0000EC 0138+00 1/0 0/0 0/0 .text __dt__13daNpc_ZelRo_cFv */ -daNpc_ZelRo_c::~daNpc_ZelRo_c() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B74C5C-80B74CE8 000000 008C+00 6/6 0/0 0/0 .rodata m__19daNpc_ZelRo_Param_c */ -SECTION_RODATA u8 const daNpc_ZelRo_Param_c::m[140] = { - 0x43, 0x3E, 0x00, 0x00, 0xC0, 0x40, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x43, 0xC8, 0x00, 0x00, - 0x43, 0x7F, 0x00, 0x00, 0x43, 0x2A, 0x00, 0x00, 0x42, 0x0C, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0xC1, 0x20, 0x00, 0x00, - 0x41, 0xF0, 0x00, 0x00, 0xC1, 0x20, 0x00, 0x00, 0x42, 0x34, 0x00, 0x00, 0xC2, 0x34, 0x00, 0x00, - 0x3F, 0x19, 0x99, 0x9A, 0x41, 0x40, 0x00, 0x00, 0x00, 0x03, 0x00, 0x06, 0x00, 0x05, 0x00, 0x06, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x3C, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B74C5C, &daNpc_ZelRo_Param_c::m); - -/* 80B74CE8-80B74CEC 00008C 0004+00 0/1 0/0 0/0 .rodata @4018 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4018 = -300.0f; -COMPILER_STRIP_GATE(0x80B74CE8, &lit_4018); -#pragma pop - -/* 80B74CEC-80B74CF0 000090 0004+00 0/1 0/0 0/0 .rodata @4019 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4019 = -50.0f; -COMPILER_STRIP_GATE(0x80B74CEC, &lit_4019); -#pragma pop - -/* 80B74CF0-80B74CF4 000094 0004+00 0/1 0/0 0/0 .rodata @4020 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4020 = 300.0f; -COMPILER_STRIP_GATE(0x80B74CF0, &lit_4020); -#pragma pop - -/* 80B74CF4-80B74CF8 000098 0004+00 0/1 0/0 0/0 .rodata @4021 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4021 = 450.0f; -COMPILER_STRIP_GATE(0x80B74CF4, &lit_4021); -#pragma pop - -/* 80B720E4-80B72378 000224 0294+00 1/1 0/0 0/0 .text create__13daNpc_ZelRo_cFv */ -void daNpc_ZelRo_c::create() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B74CF8-80B74CFC 00009C 0004+00 4/8 0/0 0/0 .rodata @4182 */ -SECTION_RODATA static u8 const lit_4182[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80B74CF8, &lit_4182); - -/* 80B74CFC-80B74D00 0000A0 0004+00 0/2 0/0 0/0 .rodata @4183 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4183 = 65536.0f; -COMPILER_STRIP_GATE(0x80B74CFC, &lit_4183); -#pragma pop - -/* 80B74D00-80B74D04 0000A4 0004+00 1/4 0/0 0/0 .rodata @4184 */ -SECTION_RODATA static f32 const lit_4184 = 1.0f / 5.0f; -COMPILER_STRIP_GATE(0x80B74D00, &lit_4184); - -/* 80B74D04-80B74D08 0000A8 0004+00 2/4 0/0 0/0 .rodata @4339 */ -SECTION_RODATA static f32 const lit_4339 = 1.0f; -COMPILER_STRIP_GATE(0x80B74D04, &lit_4339); - -/* 80B72378-80B72628 0004B8 02B0+00 1/1 0/0 0/0 .text CreateHeap__13daNpc_ZelRo_cFv */ -void daNpc_ZelRo_c::CreateHeap() { - // NONMATCHING -} - -/* 80B72628-80B72664 000768 003C+00 1/1 0/0 0/0 .text __dt__15J3DTevKColorAnmFv */ -// J3DTevKColorAnm::~J3DTevKColorAnm() { -extern "C" void __dt__15J3DTevKColorAnmFv() { - // NONMATCHING -} - -/* 80B72664-80B7267C 0007A4 0018+00 1/1 0/0 0/0 .text __ct__15J3DTevKColorAnmFv */ -// J3DTevKColorAnm::J3DTevKColorAnm() { -extern "C" void __ct__15J3DTevKColorAnmFv() { - // NONMATCHING -} - -/* 80B7267C-80B726B8 0007BC 003C+00 1/1 0/0 0/0 .text __dt__14J3DTevColorAnmFv */ -// J3DTevColorAnm::~J3DTevColorAnm() { -extern "C" void __dt__14J3DTevColorAnmFv() { - // NONMATCHING -} - -/* 80B726B8-80B726D0 0007F8 0018+00 1/1 0/0 0/0 .text __ct__14J3DTevColorAnmFv */ -// J3DTevColorAnm::J3DTevColorAnm() { -extern "C" void __ct__14J3DTevColorAnmFv() { - // NONMATCHING -} - -/* 80B726D0-80B72718 000810 0048+00 1/1 0/0 0/0 .text __dt__11J3DTexNoAnmFv */ -// J3DTexNoAnm::~J3DTexNoAnm() { -extern "C" void __dt__11J3DTexNoAnmFv() { - // NONMATCHING -} - -/* 80B72718-80B7273C 000858 0024+00 1/1 0/0 0/0 .text __ct__11J3DTexNoAnmFv */ -// J3DTexNoAnm::J3DTexNoAnm() { -extern "C" void __ct__11J3DTexNoAnmFv() { - // NONMATCHING -} - -/* 80B7273C-80B72778 00087C 003C+00 1/1 0/0 0/0 .text __dt__12J3DTexMtxAnmFv */ -// J3DTexMtxAnm::~J3DTexMtxAnm() { -extern "C" void __dt__12J3DTexMtxAnmFv() { - // NONMATCHING -} - -/* 80B72778-80B72790 0008B8 0018+00 1/1 0/0 0/0 .text __ct__12J3DTexMtxAnmFv */ -// J3DTexMtxAnm::J3DTexMtxAnm() { -extern "C" void __ct__12J3DTexMtxAnmFv() { - // NONMATCHING -} - -/* 80B72790-80B727CC 0008D0 003C+00 1/1 0/0 0/0 .text __dt__14J3DMatColorAnmFv */ -// J3DMatColorAnm::~J3DMatColorAnm() { -extern "C" void __dt__14J3DMatColorAnmFv() { - // NONMATCHING -} - -/* 80B727CC-80B727E4 00090C 0018+00 1/1 0/0 0/0 .text __ct__14J3DMatColorAnmFv */ -// J3DMatColorAnm::J3DMatColorAnm() { -extern "C" void __ct__14J3DMatColorAnmFv() { - // NONMATCHING -} - -/* 80B727E4-80B72818 000924 0034+00 1/1 0/0 0/0 .text Delete__13daNpc_ZelRo_cFv */ -void daNpc_ZelRo_c::Delete() { - // NONMATCHING -} - -/* 80B72818-80B72838 000958 0020+00 2/2 0/0 0/0 .text Execute__13daNpc_ZelRo_cFv */ -void daNpc_ZelRo_c::Execute() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B74D08-80B74D0C 0000AC 0004+00 1/1 0/0 0/0 .rodata @4399 */ -SECTION_RODATA static f32 const lit_4399 = 100.0f; -COMPILER_STRIP_GATE(0x80B74D08, &lit_4399); - -/* 80B72838-80B728FC 000978 00C4+00 1/1 0/0 0/0 .text Draw__13daNpc_ZelRo_cFv */ -void daNpc_ZelRo_c::Draw() { - // NONMATCHING -} - -/* 80B728FC-80B7291C 000A3C 0020+00 1/1 0/0 0/0 .text - * createHeapCallBack__13daNpc_ZelRo_cFP10fopAc_ac_c */ -void daNpc_ZelRo_c::createHeapCallBack(fopAc_ac_c* param_0) { - // NONMATCHING -} - -/* 80B7291C-80B72974 000A5C 0058+00 1/1 0/0 0/0 .text - * ctrlJointCallBack__13daNpc_ZelRo_cFP8J3DJointi */ -void daNpc_ZelRo_c::ctrlJointCallBack(J3DJoint* param_0, int param_1) { - // NONMATCHING -} - -/* 80B72974-80B72994 000AB4 0020+00 1/1 0/0 0/0 .text getType__13daNpc_ZelRo_cFv */ -void daNpc_ZelRo_c::getType() { - // NONMATCHING -} - -/* 80B72994-80B729B0 000AD4 001C+00 1/1 0/0 0/0 .text getFlowNodeNo__13daNpc_ZelRo_cFv */ -void daNpc_ZelRo_c::getFlowNodeNo() { - // NONMATCHING -} - -/* 80B729B0-80B729BC 000AF0 000C+00 1/1 0/0 0/0 .text getPath__13daNpc_ZelRo_cFv */ -void daNpc_ZelRo_c::getPath() { - // NONMATCHING -} - -/* 80B729BC-80B72A10 000AFC 0054+00 1/1 0/0 0/0 .text isDelete__13daNpc_ZelRo_cFv */ -void daNpc_ZelRo_c::isDelete() { - // NONMATCHING -} - -/* 80B72A10-80B72B8C 000B50 017C+00 1/1 0/0 0/0 .text reset__13daNpc_ZelRo_cFv */ -void daNpc_ZelRo_c::reset() { - // NONMATCHING -} - -/* 80B72B8C-80B72C18 000CCC 008C+00 1/0 0/0 0/0 .text afterJntAnm__13daNpc_ZelRo_cFi */ -void daNpc_ZelRo_c::afterJntAnm(int param_0) { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B74D0C-80B74D10 0000B0 0004+00 3/3 0/0 0/0 .rodata @4557 */ -SECTION_RODATA static f32 const lit_4557 = -1.0f; -COMPILER_STRIP_GATE(0x80B74D0C, &lit_4557); - -/* 80B72C18-80B72D24 000D58 010C+00 1/0 0/0 0/0 .text ctrlBtk__13daNpc_ZelRo_cFv */ -void daNpc_ZelRo_c::ctrlBtk() { - // NONMATCHING -} - -/* 80B72D24-80B72E18 000E64 00F4+00 1/0 0/0 0/0 .text setParam__13daNpc_ZelRo_cFv */ -void daNpc_ZelRo_c::setParam() { - // NONMATCHING -} - -/* 80B72E18-80B72E78 000F58 0060+00 1/0 0/0 0/0 .text setAfterTalkMotion__13daNpc_ZelRo_cFv */ -void daNpc_ZelRo_c::setAfterTalkMotion() { - // NONMATCHING -} - -/* 80B72E78-80B72E7C 000FB8 0004+00 1/1 0/0 0/0 .text srchActors__13daNpc_ZelRo_cFv */ -void daNpc_ZelRo_c::srchActors() { - /* empty function */ -} - -/* 80B72E7C-80B72F7C 000FBC 0100+00 1/0 0/0 0/0 .text evtTalk__13daNpc_ZelRo_cFv */ -void daNpc_ZelRo_c::evtTalk() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B74D3C-80B74D3C 0000E0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80B74D4F = "ZelRo"; -#pragma pop - -/* 80B72F7C-80B73044 0010BC 00C8+00 1/0 0/0 0/0 .text evtCutProc__13daNpc_ZelRo_cFv */ -void daNpc_ZelRo_c::evtCutProc() { - // NONMATCHING -} - -/* 80B73044-80B73194 001184 0150+00 1/0 0/0 0/0 .text action__13daNpc_ZelRo_cFv */ -void daNpc_ZelRo_c::action() { - // NONMATCHING -} - -/* 80B73194-80B7320C 0012D4 0078+00 1/0 0/0 0/0 .text beforeMove__13daNpc_ZelRo_cFv */ -void daNpc_ZelRo_c::beforeMove() { - // NONMATCHING -} - -/* ############################################################################################## */ -/* 80B74D10-80B74D14 0000B4 0004+00 0/1 0/0 0/0 .rodata @4728 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4728 = 10.0f; -COMPILER_STRIP_GATE(0x80B74D10, &lit_4728); -#pragma pop - -/* 80B74D14-80B74D18 0000B8 0004+00 0/1 0/0 0/0 .rodata @4729 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4729 = -30.0f; -COMPILER_STRIP_GATE(0x80B74D14, &lit_4729); -#pragma pop - -/* 80B74D18-80B74D1C 0000BC 0004+00 0/1 0/0 0/0 .rodata @4730 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u32 const lit_4730 = 0x38C90FDB; -COMPILER_STRIP_GATE(0x80B74D18, &lit_4730); -#pragma pop - -/* 80B74D1C-80B74D24 0000C0 0008+00 1/3 0/0 0/0 .rodata @4732 */ -SECTION_RODATA static u8 const lit_4732[8] = { - 0x43, 0x30, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B74D1C, &lit_4732); - -/* 80B7320C-80B7342C 00134C 0220+00 1/0 0/0 0/0 .text setAttnPos__13daNpc_ZelRo_cFv */ -void daNpc_ZelRo_c::setAttnPos() { - // NONMATCHING -} - -/* 80B7342C-80B7355C 00156C 0130+00 1/0 0/0 0/0 .text setCollision__13daNpc_ZelRo_cFv */ -void daNpc_ZelRo_c::setCollision() { - // NONMATCHING -} - -/* 80B7355C-80B73564 00169C 0008+00 1/0 0/0 0/0 .text drawDbgInfo__13daNpc_ZelRo_cFv */ -bool daNpc_ZelRo_c::drawDbgInfo() { - return false; -} - -/* 80B73564-80B735AC 0016A4 0048+00 1/1 0/0 0/0 .text selectAction__13daNpc_ZelRo_cFv */ -void daNpc_ZelRo_c::selectAction() { - // NONMATCHING -} - -/* 80B735AC-80B735D8 0016EC 002C+00 1/1 0/0 0/0 .text - * chkAction__13daNpc_ZelRo_cFM13daNpc_ZelRo_cFPCvPvPv_i */ -void daNpc_ZelRo_c::chkAction(int (daNpc_ZelRo_c::*param_0)(void*)) { - // NONMATCHING -} - -/* 80B735D8-80B73680 001718 00A8+00 2/2 0/0 0/0 .text - * setAction__13daNpc_ZelRo_cFM13daNpc_ZelRo_cFPCvPvPv_i */ -void daNpc_ZelRo_c::setAction(int (daNpc_ZelRo_c::*param_0)(void*)) { - // NONMATCHING -} - -/* 80B73680-80B7382C 0017C0 01AC+00 1/0 0/0 0/0 .text wait__13daNpc_ZelRo_cFPv */ -void daNpc_ZelRo_c::wait(void* param_0) { - // NONMATCHING -} - -/* 80B7382C-80B73990 00196C 0164+00 2/0 0/0 0/0 .text talk__13daNpc_ZelRo_cFPv */ -void daNpc_ZelRo_c::talk(void* param_0) { - // NONMATCHING -} - -/* 80B73990-80B739B0 001AD0 0020+00 1/0 0/0 0/0 .text daNpc_ZelRo_Create__FPv */ -static void daNpc_ZelRo_Create(void* param_0) { - // NONMATCHING -} - -/* 80B739B0-80B739D0 001AF0 0020+00 1/0 0/0 0/0 .text daNpc_ZelRo_Delete__FPv */ -static void daNpc_ZelRo_Delete(void* param_0) { - // NONMATCHING -} - -/* 80B739D0-80B739F0 001B10 0020+00 1/0 0/0 0/0 .text daNpc_ZelRo_Execute__FPv */ -static void daNpc_ZelRo_Execute(void* param_0) { - // NONMATCHING -} - -/* 80B739F0-80B73A10 001B30 0020+00 1/0 0/0 0/0 .text daNpc_ZelRo_Draw__FPv */ -static void daNpc_ZelRo_Draw(void* param_0) { - // NONMATCHING -} - -/* 80B73A10-80B73A18 001B50 0008+00 1/0 0/0 0/0 .text daNpc_ZelRo_IsDelete__FPv */ -static bool daNpc_ZelRo_IsDelete(void* param_0) { - return true; -} - -/* 80B73A18-80B73A48 001B58 0030+00 1/0 0/0 0/0 .text calc__11J3DTexNoAnmCFPUs */ -// void J3DTexNoAnm::calc(u16* param_0) const { -extern "C" void calc__11J3DTexNoAnmCFPUs() { - // NONMATCHING -} - -/* 80B73A48-80B73A90 001B88 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */ -// cCcD_GStts::~cCcD_GStts() { -extern "C" void __dt__10cCcD_GSttsFv() { - // NONMATCHING -} - -/* 80B73A90-80B73E18 001BD0 0388+00 1/1 0/0 0/0 .text __dt__8daNpcT_cFv */ -// daNpcT_c::~daNpcT_c() { -extern "C" void __dt__8daNpcT_cFv() { - // NONMATCHING -} - -/* 80B73E18-80B73E54 001F58 003C+00 3/3 0/0 0/0 .text __dt__4cXyzFv */ -// cXyz::~cXyz() { -extern "C" void __dt__4cXyzFv() { - // NONMATCHING -} - -/* 80B73E54-80B73E90 001F94 003C+00 2/2 0/0 0/0 .text __dt__5csXyzFv */ -// csXyz::~csXyz() { -extern "C" void __dt__5csXyzFv() { - // NONMATCHING -} - -/* 80B73E90-80B73ED8 001FD0 0048+00 1/0 0/0 0/0 .text __dt__13daNpcT_Path_cFv */ -// daNpcT_Path_c::~daNpcT_Path_c() { -extern "C" void __dt__13daNpcT_Path_cFv() { - // NONMATCHING -} - -/* 80B73ED8-80B73F20 002018 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */ -// cM3dGCyl::~cM3dGCyl() { -extern "C" void __dt__8cM3dGCylFv() { - // NONMATCHING -} - -/* 80B73F20-80B73F68 002060 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGAabFv */ -// cM3dGAab::~cM3dGAab() { -extern "C" void __dt__8cM3dGAabFv() { - // NONMATCHING -} - -/* 80B73F68-80B7436C 0020A8 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 -} - -/* 80B7436C-80B74370 0024AC 0004+00 1/1 0/0 0/0 .text __ct__5csXyzFv */ -// csXyz::csXyz() { -extern "C" void __ct__5csXyzFv() { - /* empty function */ -} - -/* 80B74370-80B7446C 0024B0 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 -} - -/* 80B7446C-80B74470 0025AC 0004+00 1/1 0/0 0/0 .text __ct__4cXyzFv */ -// cXyz::cXyz() { -extern "C" void __ct__4cXyzFv() { - /* empty function */ -} - -/* 80B74470-80B744B8 0025B0 0048+00 1/0 0/0 0/0 .text __dt__18daNpcT_ActorMngr_cFv */ -// daNpcT_ActorMngr_c::~daNpcT_ActorMngr_c() { -extern "C" void __dt__18daNpcT_ActorMngr_cFv() { - // NONMATCHING -} - -/* 80B744B8-80B74500 0025F8 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 -} - -/* 80B74500-80B74570 002640 0070+00 1/0 0/0 0/0 .text __dt__12dBgS_AcchCirFv */ -// dBgS_AcchCir::~dBgS_AcchCir() { -extern "C" void __dt__12dBgS_AcchCirFv() { - // NONMATCHING -} - -/* 80B74570-80B745CC 0026B0 005C+00 1/0 0/0 0/0 .text __dt__10dCcD_GSttsFv */ -// dCcD_GStts::~dCcD_GStts() { -extern "C" void __dt__10dCcD_GSttsFv() { - // NONMATCHING -} - -/* 80B745CC-80B7463C 00270C 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */ -// dBgS_ObjAcch::~dBgS_ObjAcch() { -extern "C" void __dt__12dBgS_ObjAcchFv() { - // NONMATCHING -} - -/* 80B7463C-80B74684 00277C 0048+00 1/0 0/0 0/0 .text __dt__12J3DFrameCtrlFv */ -// J3DFrameCtrl::~J3DFrameCtrl() { -extern "C" void __dt__12J3DFrameCtrlFv() { - // NONMATCHING -} - -/* 80B74684-80B747A0 0027C4 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 -} - -/* ############################################################################################## */ -/* 80B74D24-80B74D2C 0000C8 0008+00 0/1 0/0 0/0 .rodata @4790 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4790[8] = { - 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B74D24, &lit_4790); -#pragma pop - -/* 80B74D2C-80B74D34 0000D0 0008+00 0/1 0/0 0/0 .rodata @4791 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4791[8] = { - 0x40, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B74D2C, &lit_4791); -#pragma pop - -/* 80B74D34-80B74D3C 0000D8 0008+00 0/1 0/0 0/0 .rodata @4792 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_4792[8] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; -COMPILER_STRIP_GATE(0x80B74D34, &lit_4792); -#pragma pop - -/* 80B747A0-80B749A8 0028E0 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 -} - -/* 80B749A8-80B749AC 002AE8 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 */ -} - -/* 80B749CC-80B749D4 002B0C 0008+00 1/0 0/0 0/0 .text evtEndProc__8daNpcT_cFv */ -// bool daNpcT_c::evtEndProc() { -extern "C" bool evtEndProc__8daNpcT_cFv() { - return true; -} - -/* 80B749D8-80B749E0 002B18 0008+00 1/0 0/0 0/0 .text chkXYItems__8daNpcT_cFv */ -// bool daNpcT_c::chkXYItems() { -extern "C" bool chkXYItems__8daNpcT_cFv() { - return false; -} - -/* 80B749E0-80B749F8 002B20 0018+00 1/0 0/0 0/0 .text decTmr__8daNpcT_cFv */ -// void daNpcT_c::decTmr() { -extern "C" void decTmr__8daNpcT_cFv() { - // NONMATCHING -} - -/* 80B749F8-80B749FC 002B38 0004+00 1/0 0/0 0/0 .text drawOtherMdl__8daNpcT_cFv */ -// void daNpcT_c::drawOtherMdl() { -extern "C" void drawOtherMdl__8daNpcT_cFv() { - /* empty function */ -} - -/* 80B749FC-80B74A00 002B3C 0004+00 1/0 0/0 0/0 .text drawGhost__8daNpcT_cFv */ -// void daNpcT_c::drawGhost() { -extern "C" void drawGhost__8daNpcT_cFv() { - /* empty function */ -} - -/* 80B74A00-80B74A08 002B40 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; -} - -/* 80B74A08-80B74A10 002B48 0008+00 1/0 0/0 0/0 .text afterSetMotionAnm__8daNpcT_cFiifi - */ -// bool daNpcT_c::afterSetMotionAnm(int param_0, int param_1, f32 param_2, int param_3) { -extern "C" bool afterSetMotionAnm__8daNpcT_cFiifi() { - return true; -} - -/* 80B74A10-80B74A40 002B50 0030+00 1/0 0/0 0/0 .text - * getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c */ -// void daNpcT_c::getFaceMotionAnm(daNpcT_faceMotionAnmData_c param_0) { -extern "C" void getFaceMotionAnm__8daNpcT_cF26daNpcT_faceMotionAnmData_c() { - // NONMATCHING -} - -/* 80B74A40-80B74A70 002B80 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 -} - -/* 80B74A70-80B74A74 002BB0 0004+00 1/0 0/0 0/0 .text changeAnm__8daNpcT_cFPiPi */ -// void daNpcT_c::changeAnm(int* param_0, int* param_1) { -extern "C" void changeAnm__8daNpcT_cFPiPi() { - /* empty function */ -} - -/* 80B74A74-80B74A78 002BB4 0004+00 1/0 0/0 0/0 .text changeBck__8daNpcT_cFPiPi */ -// void daNpcT_c::changeBck(int* param_0, int* param_1) { -extern "C" void changeBck__8daNpcT_cFPiPi() { - /* empty function */ -} - -/* 80B74A78-80B74A7C 002BB8 0004+00 1/0 0/0 0/0 .text changeBtp__8daNpcT_cFPiPi */ -// void daNpcT_c::changeBtp(int* param_0, int* param_1) { -extern "C" void changeBtp__8daNpcT_cFPiPi() { - /* empty function */ -} - -/* 80B74A7C-80B74A80 002BBC 0004+00 1/0 0/0 0/0 .text changeBtk__8daNpcT_cFPiPi */ -// void daNpcT_c::changeBtk(int* param_0, int* param_1) { -extern "C" void changeBtk__8daNpcT_cFPiPi() { - /* empty function */ -} - -/* ############################################################################################## */ -/* 80B75018-80B75024 0002C0 000C+00 2/2 0/0 0/0 .data __vt__19daNpc_ZelRo_Param_c */ -SECTION_DATA extern void* __vt__19daNpc_ZelRo_Param_c[3] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__19daNpc_ZelRo_Param_cFv, -}; - -/* 80B75030-80B7503C 000008 000C+00 1/1 0/0 0/0 .bss @3811 */ -static u8 lit_3811[12]; - -/* 80B7503C-80B75040 000014 0004+00 1/1 0/0 0/0 .bss l_HIO */ -static u8 l_HIO[4]; - -/* 80B74A80-80B74AE8 002BC0 0068+00 0/0 1/0 0/0 .text __sinit_d_a_npc_zelRo_cpp */ -void __sinit_d_a_npc_zelRo_cpp() { - // NONMATCHING -} - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x80B74A80, __sinit_d_a_npc_zelRo_cpp); -#pragma pop - -/* 80B74AE8-80B74BA8 002C28 00C0+00 1/1 0/0 0/0 .text - * __ct__13daNpc_ZelRo_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc - */ -daNpc_ZelRo_c::daNpc_ZelRo_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 -} - -/* 80B74BA8-80B74BB0 002CE8 0008+00 1/0 0/0 0/0 .text getEyeballRMaterialNo__13daNpc_ZelRo_cFv */ -u16 daNpc_ZelRo_c::getEyeballRMaterialNo() { - return 7; -} - -/* 80B74BB0-80B74BB8 002CF0 0008+00 1/0 0/0 0/0 .text getEyeballLMaterialNo__13daNpc_ZelRo_cFv */ -u16 daNpc_ZelRo_c::getEyeballLMaterialNo() { - return 6; -} - -/* 80B74BB8-80B74BC0 002CF8 0008+00 1/0 0/0 0/0 .text getHeadJointNo__13daNpc_ZelRo_cFv - */ -s32 daNpc_ZelRo_c::getHeadJointNo() { - return 4; -} - -/* 80B74BC0-80B74BC8 002D00 0008+00 1/0 0/0 0/0 .text getNeckJointNo__13daNpc_ZelRo_cFv - */ -s32 daNpc_ZelRo_c::getNeckJointNo() { - return 3; -} - -/* 80B74BC8-80B74BD0 002D08 0008+00 1/0 0/0 0/0 .text getBackboneJointNo__13daNpc_ZelRo_cFv */ -bool daNpc_ZelRo_c::getBackboneJointNo() { - return true; -} - -/* 80B74BD0-80B74BE0 002D10 0010+00 1/0 0/0 0/0 .text checkChangeJoint__13daNpc_ZelRo_cFi - */ -void daNpc_ZelRo_c::checkChangeJoint(int param_0) { - // NONMATCHING -} - -/* 80B74BE0-80B74BF0 002D20 0010+00 1/0 0/0 0/0 .text checkRemoveJoint__13daNpc_ZelRo_cFi - */ -void daNpc_ZelRo_c::checkRemoveJoint(int param_0) { - // NONMATCHING -} - -/* 80B74BF0-80B74C38 002D30 0048+00 2/1 0/0 0/0 .text __dt__19daNpc_ZelRo_Param_cFv */ -daNpc_ZelRo_Param_c::~daNpc_ZelRo_Param_c() { - // NONMATCHING -} - -/* 80B74C38-80B74C40 002D78 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */ -static void func_80B74C38() { - // NONMATCHING -} - -/* 80B74C40-80B74C48 002D80 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */ -static void func_80B74C40() { - // NONMATCHING -} - -/* 80B74D3C-80B74D3C 0000E0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */