From cc7f26c83861357404a2deb66914c9e8745f81d1 Mon Sep 17 00:00:00 2001 From: Carco_21 <144170194+carter-ktb21@users.noreply.github.com> Date: Tue, 1 Apr 2025 16:31:12 -0400 Subject: [PATCH] Work on create functions of d_a_npc_midp and changed mpMatAnm to array (#2366) * Work on create functions of d_a_npc_midp and changed mpMatAnm to array * Pull request cleanup --- include/d/actor/d_a_npc.h | 3 +- include/d/actor/d_a_npc_midp.h | 97 ++++-- src/d/actor/d_a_npc.cpp | 14 +- src/d/actor/d_a_npc_gnd.cpp | 4 +- src/d/actor/d_a_npc_hanjo.cpp | 12 +- src/d/actor/d_a_npc_jagar.cpp | 12 +- src/d/actor/d_a_npc_midp.cpp | 560 +++++++++++---------------------- src/d/actor/d_a_npc_yelia.cpp | 12 +- src/d/actor/d_a_npc_zant.cpp | 8 +- src/d/actor/d_a_peru.cpp | 10 +- 10 files changed, 297 insertions(+), 435 deletions(-) diff --git a/include/d/actor/d_a_npc.h b/include/d/actor/d_a_npc.h index 59e3e07eef1..c6b8f6c7eed 100644 --- a/include/d/actor/d_a_npc.h +++ b/include/d/actor/d_a_npc.h @@ -433,8 +433,7 @@ public: /* 0x8A0 */ dBgS_AcchCir mAcchCir; /* 0x8E0 */ request_of_phase_process_class mPhase[10]; /* 0x930 */ cBgS_GndChk mGndChk; - /* 0x96C */ daNpcT_MatAnm_c* mpMatAnm; - /* 0x970 */ u8 field_0x970[4]; + /* 0x96C */ daNpcT_MatAnm_c* mpMatAnm[2]; /* 0x974 */ dMsgFlow_c mFlow; /* 0x9C0 */ dPaPoT_c field_0x9c0; /* 0xA40 */ dCcD_Stts field_0xa40; diff --git a/include/d/actor/d_a_npc_midp.h b/include/d/actor/d_a_npc_midp.h index c97b2eb8dbe..9d35141ec9f 100644 --- a/include/d/actor/d_a_npc_midp.h +++ b/include/d/actor/d_a_npc_midp.h @@ -11,54 +11,68 @@ * @details * */ -class daNpc_midP_c : public fopAc_ac_c { +class daNpc_midP_c : public daNpcT_c { public: + typedef int (daNpc_midP_c::*cutFunc)(int); + /* 80A70C6C */ ~daNpc_midP_c(); - /* 80A70D90 */ void create(); - /* 80A71074 */ void CreateHeap(); + /* 80A70D90 */ int create(); + /* 80A71074 */ int CreateHeap(); /* 80A714BC */ void Delete(); /* 80A714F0 */ void Execute(); /* 80A71510 */ void Draw(); - /* 80A715D4 */ void createHeapCallBack(fopAc_ac_c*); - /* 80A715F4 */ void ctrlJointCallBack(J3DJoint*, int); - /* 80A7164C */ void getType(); - /* 80A7166C */ void isDelete(); + /* 80A715D4 */ static int createHeapCallBack(fopAc_ac_c*); + /* 80A715F4 */ static int ctrlJointCallBack(J3DJoint*, int); + /* 80A7164C */ u8 getType(); + /* 80A7166C */ int isDelete(); /* 80A7168C */ void reset(); /* 80A717D4 */ void afterJntAnm(int); - /* 80A71860 */ void ctrlBtk(); + /* 80A71860 */ BOOL ctrlBtk(); /* 80A7199C */ void setParam(); /* 80A71A98 */ void setAfterTalkMotion(); /* 80A71AF8 */ void srchActors(); - /* 80A71AFC */ void evtTalk(); - /* 80A71BFC */ void evtCutProc(); + /* 80A71AFC */ BOOL evtTalk(); + /* 80A71BFC */ BOOL evtCutProc(); /* 80A71CC4 */ void action(); /* 80A71DB0 */ void beforeMove(); /* 80A71E28 */ void setAttnPos(); /* 80A72064 */ void setCollision(); - /* 80A7216C */ bool drawDbgInfo(); + /* 80A7216C */ int drawDbgInfo(); /* 80A72174 */ void drawGhost(); /* 80A721E0 */ void selectAction(); /* 80A72228 */ void chkAction(int (daNpc_midP_c::*)(void*)); /* 80A72254 */ void setAction(int (daNpc_midP_c::*)(void*)); /* 80A722FC */ void wait(void*); /* 80A72548 */ void talk(void*); - /* 80A737D0 */ daNpc_midP_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**); + /* 80A737D0 */ daNpc_midP_c(daNpcT_faceMotionAnmData_c const* param_1, daNpcT_motionAnmData_c const* param_2, + daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_3, int param_4, + daNpcT_MotionSeqMngr_c::sequenceStepData_c const* param_5, int param_6, + daNpcT_evtData_c const* param_7, char** param_8) : + daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8) {} /* 80A7390C */ s32 getEyeballRMaterialNo(); /* 80A73914 */ s32 getEyeballLMaterialNo(); /* 80A7391C */ s32 getHeadJointNo(); /* 80A73924 */ s32 getNeckJointNo(); /* 80A7392C */ s32 getBackboneJointNo(); - /* 80A73934 */ void checkChangeJoint(int); - /* 80A73944 */ void checkRemoveJoint(int); + /* 80A73934 */ BOOL checkChangeJoint(int); + /* 80A73944 */ BOOL checkRemoveJoint(int); - static void* mCutNameList; - static u8 mCutList[12]; + int getFlowNodeNo() { + u16 nodeNo = home.angle.x; + if (nodeNo == 0xffff) { + return -1; + } + return nodeNo; + } + + static char* mCutNameList; + static cutFunc mCutList[1]; private: - /* 0x568 */ u8 field_0x568[0xfa0 - 0x568]; + /* 0xE40 */ u8 field_0xE40[0xe44 - 0xe40]; + /* 0xE44 */ dCcD_Cyl mCyl; + /* 0xF80 */ u8 mType; + /* 0xF81 */ u8 field_0xf81[0xfa0-0xf81]; }; STATIC_ASSERT(sizeof(daNpc_midP_c) == 0xfa0); @@ -67,7 +81,48 @@ class daNpc_midP_Param_c { public: /* 80A73954 */ ~daNpc_midP_Param_c(); - static u8 const m[140]; + struct Data { + /* 0x00 */ f32 field_0x00; + /* 0x04 */ f32 field_0x04; + /* 0x08 */ f32 field_0x08; + /* 0x0C */ f32 field_0x0c; + /* 0x10 */ f32 field_0x10; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1c; + /* 0x20 */ f32 field_0x20; + /* 0x24 */ f32 field_0x24; + /* 0x28 */ f32 field_0x28; + /* 0x2C */ f32 field_0x2c; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ f32 field_0x34; + /* 0x38 */ f32 field_0x38; + /* 0x3C */ f32 field_0x3c; + /* 0x40 */ f32 field_0x40; + /* 0x44 */ f32 field_0x44; + /* 0x48 */ s16 field_0x48; + /* 0x4A */ s16 field_0x4a; + /* 0x4C */ s16 field_0x4c; + /* 0x4E */ s16 field_0x4e; + /* 0x50 */ f32 field_0x50; + /* 0x54 */ f32 field_0x54; + /* 0x58 */ f32 field_0x58; + /* 0x5C */ f32 field_0x5c; + /* 0x60 */ s16 field_0x60; + /* 0x62 */ s16 field_0x62; + /* 0x64 */ 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; }; diff --git a/src/d/actor/d_a_npc.cpp b/src/d/actor/d_a_npc.cpp index 9682c8f0817..6252b2a9539 100644 --- a/src/d/actor/d_a_npc.cpp +++ b/src/d/actor/d_a_npc.cpp @@ -1432,23 +1432,23 @@ void daNpcT_c::playAllAnm() { /* 801490D4-80149190 143A14 00BC+00 1/0 1/0 55/0 .text ctrlBtk__8daNpcT_cFv */ BOOL daNpcT_c::ctrlBtk() { - if (mpMatAnm != NULL) { + if (mpMatAnm[0] != NULL) { if (field_0xe29 != 0 && mBtkAnm.getBtkAnm() != NULL) { - mpMatAnm->setNowOffsetX(field_0xde4 * cM_ssin(mJntAnm.getEyeAngleY())); - mpMatAnm->setNowOffsetY(field_0xde0 * cM_ssin(mJntAnm.getEyeAngleX())); + mpMatAnm[0]->setNowOffsetX(field_0xde4 * cM_ssin(mJntAnm.getEyeAngleY())); + mpMatAnm[0]->setNowOffsetY(field_0xde0 * cM_ssin(mJntAnm.getEyeAngleX())); if (field_0xe2a != 0) { - mpMatAnm->setMorfFrm(field_0xe2a); + mpMatAnm[0]->setMorfFrm(field_0xe2a); field_0xe2a = 0; } - mpMatAnm->onEyeMoveFlg(); + mpMatAnm[0]->onEyeMoveFlg(); return TRUE; } if (field_0xe2a != 0) { - mpMatAnm->setMorfFrm(field_0xe2a); + mpMatAnm[0]->setMorfFrm(field_0xe2a); field_0xe2a = 0; } - mpMatAnm->offEyeMoveFlg(); + mpMatAnm[0]->offEyeMoveFlg(); } return FALSE; diff --git a/src/d/actor/d_a_npc_gnd.cpp b/src/d/actor/d_a_npc_gnd.cpp index efbc61ffa20..a9a38505eab 100644 --- a/src/d/actor/d_a_npc_gnd.cpp +++ b/src/d/actor/d_a_npc_gnd.cpp @@ -711,9 +711,9 @@ COMPILER_STRIP_GATE(0x809BE550, &lit_4391); /* 809BBE80-809BBF44 000960 00C4+00 1/1 0/0 0/0 .text Draw__11daNpc_Gnd_cFv */ int daNpc_Gnd_c::Draw() { - if (mpMatAnm != NULL) { + if (mpMatAnm[0] != NULL) { J3DModelData* modelData = mpMorf[0]->getModel()->getModelData(); - modelData->getMaterialNodePointer(getEyeballMaterialNo())->setMaterialAnm(mpMatAnm); + modelData->getMaterialNodePointer(getEyeballMaterialNo())->setMaterialAnm(mpMatAnm[0]); } return daNpcT_c::draw(0, 0, field_0xde8, NULL, 100.0f, 0, 0, 0); } diff --git a/src/d/actor/d_a_npc_hanjo.cpp b/src/d/actor/d_a_npc_hanjo.cpp index dfaffa0b3a2..564b7c71914 100644 --- a/src/d/actor/d_a_npc_hanjo.cpp +++ b/src/d/actor/d_a_npc_hanjo.cpp @@ -843,8 +843,8 @@ int daNpc_Hanjo_c::CreateHeap() { modelData->getJointNodePointer(i)->setCallBack(ctrlJointCallBack); } model->setUserArea((u32)this); - mpMatAnm = new daNpcT_MatAnm_c(); - if (mpMatAnm == NULL) { + mpMatAnm[0] = new daNpcT_MatAnm_c(); + if (mpMatAnm[0] == NULL) { return 0; } switch (mType) { @@ -915,9 +915,9 @@ int daNpc_Hanjo_c::Execute() { /* 809F9B8C-809F9C20 000BEC 0094+00 1/1 0/0 0/0 .text Draw__13daNpc_Hanjo_cFv */ int daNpc_Hanjo_c::Draw() { - if (mpMatAnm != NULL) { + if (mpMatAnm[0] != NULL) { J3DModelData* modelData = mpMorf[0]->getModel()->getModelData(); - modelData->getMaterialNodePointer(getEyeballMaterialNo())->setMaterialAnm(mpMatAnm); + modelData->getMaterialNodePointer(getEyeballMaterialNo())->setMaterialAnm(mpMatAnm[0]); } return daNpcT_c::draw(0, 0, field_0xde8, NULL, 100.0f, 0, 0, 0); } @@ -982,8 +982,8 @@ int daNpc_Hanjo_c::isDelete() { void daNpc_Hanjo_c::reset() { csXyz acStack_20; int iVar1 = (u8*)&field_0x1728 - (u8*)&field_0x16e0; - if (mpMatAnm != NULL) { - mpMatAnm->initialize(); + if (mpMatAnm[0] != NULL) { + mpMatAnm[0]->initialize(); } initialize(); for (int i = 0; i < 4; i++) { diff --git a/src/d/actor/d_a_npc_jagar.cpp b/src/d/actor/d_a_npc_jagar.cpp index e3b16f75ee2..093cc481e3f 100644 --- a/src/d/actor/d_a_npc_jagar.cpp +++ b/src/d/actor/d_a_npc_jagar.cpp @@ -249,8 +249,8 @@ int daNpc_Jagar_c::CreateHeap() { modelData->getJointNodePointer(i)->setCallBack(ctrlJointCallBack); } model->setUserArea((u32)this); - mpMatAnm = new daNpcT_MatAnm_c(); - if (mpMatAnm == NULL) { + mpMatAnm[0] = new daNpcT_MatAnm_c(); + if (mpMatAnm[0] == NULL) { return 0; } @@ -275,9 +275,9 @@ int daNpc_Jagar_c::Execute() { /* 80A14FA0-80A15034 000980 0094+00 1/1 0/0 0/0 .text Draw__13daNpc_Jagar_cFv */ int daNpc_Jagar_c::Draw() { - if (mpMatAnm != NULL) { + if (mpMatAnm[0] != NULL) { J3DModelData* modelData = mpMorf[0]->getModel()->getModelData(); - modelData->getMaterialNodePointer(getEyeballMaterialNo())->setMaterialAnm(mpMatAnm); + modelData->getMaterialNodePointer(getEyeballMaterialNo())->setMaterialAnm(mpMatAnm[0]); } return daNpcT_c::draw(0, 0, field_0xde8, NULL, 100.0f, 0, 0, 0); } @@ -338,8 +338,8 @@ int daNpc_Jagar_c::isDelete() { void daNpc_Jagar_c::reset() { csXyz acStack_20; int iVar1 = (u8*)&field_0x1008 - (u8*)&field_0xfd4; - if (mpMatAnm != NULL) { - mpMatAnm->initialize(); + if (mpMatAnm[0] != NULL) { + mpMatAnm[0]->initialize(); } initialize(); diff --git a/src/d/actor/d_a_npc_midp.cpp b/src/d/actor/d_a_npc_midp.cpp index c6e787f01ef..5a682ccd4f7 100644 --- a/src/d/actor/d_a_npc_midp.cpp +++ b/src/d/actor/d_a_npc_midp.cpp @@ -49,11 +49,11 @@ extern "C" void chkAction__12daNpc_midP_cFM12daNpc_midP_cFPCvPvPv_i(); extern "C" void setAction__12daNpc_midP_cFM12daNpc_midP_cFPCvPvPv_i(); extern "C" void wait__12daNpc_midP_cFPv(); extern "C" void talk__12daNpc_midP_cFPv(); -extern "C" static void daNpc_midP_Create__FPv(); -extern "C" static void daNpc_midP_Delete__FPv(); -extern "C" static void daNpc_midP_Execute__FPv(); -extern "C" static void daNpc_midP_Draw__FPv(); -extern "C" static bool daNpc_midP_IsDelete__FPv(); +// extern "C" static void daNpc_midP_Create__FPv(); +// extern "C" static void daNpc_midP_Delete__FPv(); +// extern "C" static void daNpc_midP_Execute__FPv(); +// extern "C" static void daNpc_midP_Draw__FPv(); +// extern "C" static bool daNpc_midP_IsDelete__FPv(); extern "C" void calc__11J3DTexNoAnmCFPUs(); extern "C" void __dt__10cCcD_GSttsFv(); extern "C" void __dt__8daNpcT_cFv(); @@ -103,8 +103,8 @@ extern "C" s32 getBackboneJointNo__12daNpc_midP_cFv(); extern "C" void checkChangeJoint__12daNpc_midP_cFi(); extern "C" void checkRemoveJoint__12daNpc_midP_cFi(); extern "C" void __dt__18daNpc_midP_Param_cFv(); -extern "C" static void func_80A7399C(); -extern "C" static void func_80A739A4(); +// extern "C" static void func_80A7399C(); +// extern "C" static void func_80A739A4(); extern "C" u8 const m__18daNpc_midP_Param_c[140]; extern "C" extern char const* const d_a_npc_midp__stringBase0; extern "C" void* mCutNameList__12daNpc_midP_c; @@ -234,389 +234,170 @@ extern "C" u8 now__14mDoMtx_stack_c[48]; extern "C" u8 sincosTable___5JMath[65536]; extern "C" void __register_global_object(); -// -// Declarations: -// - -/* ############################################################################################## */ -/* 80A73AA0-80A73AA0 0000E0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80A73AA0 = ""; -SECTION_DEAD static char const* const stringBase_80A73AA1 = "NO_RESPONSE"; -SECTION_DEAD static char const* const stringBase_80A73AAD = "midP"; -#pragma pop - -/* 80A73AB4-80A73AC0 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */ -SECTION_DATA static u8 cNullVec__6Z2Calc[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 80A73AC0-80A73AD4 00000C 0004+10 0/0 0/0 0/0 .data @1787 */ -#pragma push -#pragma force_active on -SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = { - 0x02000201, - /* padding */ - 0x40080000, - 0x00000000, - 0x3FE00000, - 0x00000000, -}; -#pragma pop +UNK_REL_DATA /* 80A73AD4-80A73ADC 000020 0008+00 1/1 0/0 0/0 .data l_bmdData */ -SECTION_DATA static u8 l_bmdData[8] = { - 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x01, +static int l_bmdData[2][1] = { + {9}, {1} }; /* 80A73ADC-80A73AEC -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_midp__stringBase0, - (void*)NULL, - (void*)(((char*)&d_a_npc_midp__stringBase0) + 0x1), - (void*)NULL, +static daNpcT_evtData_c l_evtList[2] = { + {"", 0}, + {"NO_RESPONSE", 0}, }; -#pragma pop /* 80A73AEC-80A73AF4 -00001 0008+00 2/3 0/0 0/0 .data l_resNameList */ -SECTION_DATA static void* l_resNameList[2] = { - (void*)&d_a_npc_midp__stringBase0, - (void*)(((char*)&d_a_npc_midp__stringBase0) + 0xD), +static char* l_resNameList[2] = { + "", + "midP" }; /* 80A73AF4-80A73AF8 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[1 + 1 /* padding */] = { + 1, + -1 }; /* 80A73AF8-80A73B00 -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, }; /* 80A73B00-80A73B1C 00004C 001C+00 0/1 0/0 0/0 .data l_faceMotionAnmData */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_faceMotionAnmData[28] = { - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x0F, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, +static daNpcT_faceMotionAnmData_c l_faceMotionAnmData = { + -1, 0, 0, 15, 2, 1, 1 }; -#pragma pop /* 80A73B1C-80A73B38 000068 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, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, - 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, +static daNpcT_motionAnmData_c l_motionAnmData = { + 6, 2, 1, 12, 0, 1, 1, 0 }; -#pragma pop /* 80A73B38-80A73B48 000084 0010+00 0/1 0/0 0/0 .data l_faceMotionSequenceData */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 l_faceMotionSequenceData[16] = { - 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, +static daNpcT_MotionSeqMngr_c::sequenceStepData_c l_faceMotionSequenceData[4] = { + {0, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0} }; -#pragma pop /* 80A73B48-80A73B58 000094 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 /* 80A73B58-80A73B5C -00001 0004+00 1/1 0/0 0/0 .data mCutNameList__12daNpc_midP_c */ -SECTION_DATA void* daNpc_midP_c::mCutNameList = (void*)&d_a_npc_midp__stringBase0; +char* daNpc_midP_c::mCutNameList = ""; /* 80A73B5C-80A73B68 0000A8 000C+00 2/2 0/0 0/0 .data mCutList__12daNpc_midP_c */ -SECTION_DATA u8 daNpc_midP_c::mCutList[12] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - -/* 80A73B68-80A73B74 -00001 000C+00 1/1 0/0 0/0 .data @4604 */ -SECTION_DATA static void* lit_4604[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talk__12daNpc_midP_cFPv, -}; - -/* 80A73B74-80A73B80 -00001 000C+00 1/1 0/0 0/0 .data @4614 */ -SECTION_DATA static void* lit_4614[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)talk__12daNpc_midP_cFPv, -}; - -/* 80A73B80-80A73B8C -00001 000C+00 1/1 0/0 0/0 .data @4833 */ -SECTION_DATA static void* lit_4833[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)wait__12daNpc_midP_cFPv, -}; - -/* 80A73B8C-80A73BAC -00001 0020+00 1/0 0/0 0/0 .data daNpc_midP_MethodTable */ -static actor_method_class daNpc_midP_MethodTable = { - (process_method_func)daNpc_midP_Create__FPv, - (process_method_func)daNpc_midP_Delete__FPv, - (process_method_func)daNpc_midP_Execute__FPv, - (process_method_func)daNpc_midP_IsDelete__FPv, - (process_method_func)daNpc_midP_Draw__FPv, -}; - -/* 80A73BAC-80A73BDC -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_MIDP */ -extern actor_process_profile_definition g_profile_NPC_MIDP = { - fpcLy_CURRENT_e, // mLayerID - 7, // mListID - fpcPi_CURRENT_e, // mListPrio - PROC_NPC_MIDP, // mProcName - &g_fpcLf_Method.base, // sub_method - sizeof(daNpc_midP_c), // mSize - 0, // mSizeOther - 0, // mParameters - &g_fopAc_Method.base, // sub_method - 354, // mPriority - &daNpc_midP_MethodTable, // sub_method - 0x00044108, // mStatus - fopAc_NPC_e, // mActorType - fopAc_CULLBOX_CUSTOM_e, // cullType -}; - -/* 80A73BDC-80A73BE8 000128 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, -}; - -/* 80A73BE8-80A73BF4 000134 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, -}; - -/* 80A73BF4-80A73C18 000140 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_80A739A4, - (void*)NULL, - (void*)NULL, - (void*)func_80A7399C, -}; - -/* 80A73C18-80A73C24 000164 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, -}; - -/* 80A73C24-80A73C30 000170 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, -}; - -/* 80A73C30-80A73C3C 00017C 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, -}; - -/* 80A73C3C-80A73C48 000188 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, -}; - -/* 80A73C48-80A73C54 000194 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, -}; - -/* 80A73C54-80A73C60 0001A0 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, -}; - -/* 80A73C60-80A73C6C 0001AC 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, -}; - -/* 80A73C6C-80A73C78 0001B8 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, -}; - -/* 80A73C78-80A73D3C 0001C4 00C4+00 2/2 0/0 0/0 .data __vt__12daNpc_midP_c */ -SECTION_DATA extern void* __vt__12daNpc_midP_c[49] = { - (void*)NULL /* RTTI */, - (void*)NULL, - (void*)__dt__12daNpc_midP_cFv, - (void*)ctrlBtk__12daNpc_midP_cFv, - (void*)ctrlSubFaceMotion__8daNpcT_cFi, - (void*)checkChangeJoint__12daNpc_midP_cFi, - (void*)checkRemoveJoint__12daNpc_midP_cFi, - (void*)getBackboneJointNo__12daNpc_midP_cFv, - (void*)getNeckJointNo__12daNpc_midP_cFv, - (void*)getHeadJointNo__12daNpc_midP_cFv, - (void*)getFootLJointNo__8daNpcT_cFv, - (void*)getFootRJointNo__8daNpcT_cFv, - (void*)getEyeballLMaterialNo__12daNpc_midP_cFv, - (void*)getEyeballRMaterialNo__12daNpc_midP_cFv, - (void*)getEyeballMaterialNo__8daNpcT_cFv, - (void*)ctrlJoint__8daNpcT_cFP8J3DJointP8J3DModel, - (void*)afterJntAnm__12daNpc_midP_cFi, - (void*)setParam__12daNpc_midP_cFv, - (void*)checkChangeEvt__8daNpcT_cFv, - (void*)evtTalk__12daNpc_midP_cFv, - (void*)evtEndProc__8daNpcT_cFv, - (void*)evtCutProc__12daNpc_midP_cFv, - (void*)setAfterTalkMotion__12daNpc_midP_cFv, - (void*)evtProc__8daNpcT_cFv, - (void*)action__12daNpc_midP_cFv, - (void*)beforeMove__12daNpc_midP_cFv, - (void*)afterMoved__8daNpcT_cFv, - (void*)setAttnPos__12daNpc_midP_cFv, - (void*)setFootPos__8daNpcT_cFv, - (void*)setCollision__12daNpc_midP_cFv, - (void*)setFootPrtcl__8daNpcT_cFP4cXyzff, - (void*)checkCullDraw__8daNpcT_cFv, - (void*)twilight__8daNpcT_cFv, - (void*)chkXYItems__8daNpcT_cFv, - (void*)evtOrder__8daNpcT_cFv, - (void*)decTmr__8daNpcT_cFv, - (void*)clrParam__8daNpcT_cFv, - (void*)drawDbgInfo__12daNpc_midP_cFv, - (void*)drawOtherMdl__8daNpcT_cFv, - (void*)drawGhost__12daNpc_midP_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, -}; +daNpc_midP_c::cutFunc daNpc_midP_c::mCutList[1] = { 0 }; /* 80A70C6C-80A70D90 0000EC 0124+00 1/0 0/0 0/0 .text __dt__12daNpc_midP_cFv */ daNpc_midP_c::~daNpc_midP_c() { - // NONMATCHING + OS_REPORT("|%06d:%x|daNpc_midP_c -> デストラクト\n", g_Counter, this); + if (heap != 0) { + mpMorf[0]->stopZelAnime(); + } + deleteRes(l_loadResPtrnList[mType], (char const**)l_resNameList); } /* ############################################################################################## */ /* 80A739C0-80A73A4C 000000 008C+00 6/6 0/0 0/0 .rodata m__18daNpc_midP_Param_c */ -SECTION_RODATA u8 const daNpc_midP_Param_c::m[140] = { - 0x43, 0x52, 0x00, 0x00, 0xC0, 0x40, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x43, 0xFA, 0x00, 0x00, - 0x43, 0x7F, 0x00, 0x00, 0x43, 0x3E, 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, - 0x42, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x3C, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +daNpc_midP_Param_c::Data const daNpc_midP_Param_c::m = { + 210.0f, -3.0f, 1.0f, 500.0f, 255.0f, 190.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, 110.0f, 0.0f, 0.0f, 0.0f, 60, + 8, 0.0f, 0.0f, 4.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, }; -COMPILER_STRIP_GATE(0x80A739C0, &daNpc_midP_Param_c::m); - -/* 80A73A4C-80A73A50 00008C 0004+00 0/1 0/0 0/0 .rodata @4028 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4028 = -300.0f; -COMPILER_STRIP_GATE(0x80A73A4C, &lit_4028); -#pragma pop - -/* 80A73A50-80A73A54 000090 0004+00 0/1 0/0 0/0 .rodata @4029 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4029 = -50.0f; -COMPILER_STRIP_GATE(0x80A73A50, &lit_4029); -#pragma pop - -/* 80A73A54-80A73A58 000094 0004+00 0/1 0/0 0/0 .rodata @4030 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4030 = 300.0f; -COMPILER_STRIP_GATE(0x80A73A54, &lit_4030); -#pragma pop - -/* 80A73A58-80A73A5C 000098 0004+00 0/1 0/0 0/0 .rodata @4031 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4031 = 450.0f; -COMPILER_STRIP_GATE(0x80A73A58, &lit_4031); -#pragma pop - -/* 80A73A5C-80A73A60 00009C 0004+00 0/1 0/0 0/0 .rodata @4032 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4032 = -1000000000.0f; -COMPILER_STRIP_GATE(0x80A73A5C, &lit_4032); -#pragma pop /* 80A70D90-80A71074 000210 02E4+00 1/1 0/0 0/0 .text create__12daNpc_midP_cFv */ -void daNpc_midP_c::create() { - // NONMATCHING +int daNpc_midP_c::create() { + fopAcM_SetupActor2(this, daNpc_midP_c, &l_faceMotionAnmData, &l_motionAnmData, l_faceMotionSequenceData, 4, + l_motionSequenceData, 4, l_evtList, l_resNameList); + + mType = getType(); + mFlowNodeNo = getFlowNodeNo(); + mTwilight = 0; + + int rv = loadRes(l_loadResPtrnList[mType], (const char**)l_resNameList); + if (rv == cPhs_COMPLEATE_e) { + if (!fopAcM_entrySolidHeap(this, createHeapCallBack, 0)) { + OS_REPORT("===>isDelete:TRUE\n"); + return cPhs_ERROR_e; + } + OS_REPORT("\n"); + + OS_REPORT("\t(%s:%d) flowNo:%d, PathID:%02x<%08x> ", fopAcM_getProcNameString(this), mType, + mFlowNodeNo, getPathID(), fopAcM_GetParam(this)); + if (isDelete()) { + OS_REPORT("===>isDelete:TRUE\n"); + return cPhs_ERROR_e; + } + + J3DModelData* modelData = mpMorf[0]->getModel()->getModelData(); + fopAcM_SetMtx(this, mpMorf[0]->getModel()->getBaseTRMtx()); + fopAcM_setCullSizeBox(this, -300.0f, -50.0f, -300.0f, 300.0f, 450.0f, 300.0f); + fopAcM_OnStatus(this, 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)); + mCcStts.Init(daNpc_midP_Param_c::m.field_0x10, 0, this); + mCyl.Set(mCcDCyl); + mCyl.SetStts(&mCcStts); + mCyl.SetTgHitCallback(tgHitCallBack); + + mAcch.CrrPos(dComIfG_Bgsp()); + mGndChk = mAcch.m_gnd; + mGroundH = mAcch.GetGroundH(); + if (mGroundH != -1000000000.0f) { + setEnvTevColor(); + setRoomNo(); + } + + current.pos = home.pos; + old.pos = current.pos; + reset(); + mCreating = true; + Execute(); + mCreating = false; + } + + return rv; } -/* ############################################################################################## */ -/* 80A73A60-80A73A64 0000A0 0004+00 5/9 0/0 0/0 .rodata @4186 */ -SECTION_RODATA static u8 const lit_4186[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x80A73A60, &lit_4186); - -/* 80A73A64-80A73A68 0000A4 0004+00 0/2 0/0 0/0 .rodata @4187 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4187 = 65536.0f; -COMPILER_STRIP_GATE(0x80A73A64, &lit_4187); -#pragma pop - -/* 80A73A68-80A73A6C 0000A8 0004+00 0/3 0/0 0/0 .rodata @4188 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_4188 = 1.0f / 5.0f; -COMPILER_STRIP_GATE(0x80A73A68, &lit_4188); -#pragma pop - -/* 80A73A6C-80A73A70 0000AC 0004+00 2/4 0/0 0/0 .rodata @4338 */ -SECTION_RODATA static f32 const lit_4338 = 1.0f; -COMPILER_STRIP_GATE(0x80A73A6C, &lit_4338); - /* 80A71074-80A71300 0004F4 028C+00 1/1 0/0 0/0 .text CreateHeap__12daNpc_midP_cFv */ -void daNpc_midP_c::CreateHeap() { - // NONMATCHING +int daNpc_midP_c::CreateHeap() { + J3DModelData* modelData = static_cast(dComIfG_getObjectRes( + l_resNameList[l_bmdData[0][1]], l_bmdData[0][0])); + + mpMorf[0] = new mDoExt_McaMorfSO(modelData, NULL, NULL, NULL, -1, 1.0f, 0, -1, &mSound, + 0x80000, 0x11020284); + if (mpMorf[0] == NULL || mpMorf[0]->getModel() == NULL) { + if (mpMorf[0] != NULL) { + mpMorf[0]->stopZelAnime(); + } + return 0; + } + + J3DModel* model = mpMorf[0]->getModel(); + for (u16 i = 0; i < modelData->getJointNum(); i++) { + modelData->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(0, false) && setMotionAnm(0, 0.0f, 0) != 0) { + return 1; + } else { + return 0; + } } /* 80A71300-80A7133C 000780 003C+00 1/1 0/0 0/0 .text __dt__15J3DTevKColorAnmFv */ @@ -696,23 +477,23 @@ void daNpc_midP_c::Draw() { /* 80A715D4-80A715F4 000A54 0020+00 1/1 0/0 0/0 .text * createHeapCallBack__12daNpc_midP_cFP10fopAc_ac_c */ -void daNpc_midP_c::createHeapCallBack(fopAc_ac_c* param_0) { +int daNpc_midP_c::createHeapCallBack(fopAc_ac_c* param_0) { // NONMATCHING } /* 80A715F4-80A7164C 000A74 0058+00 1/1 0/0 0/0 .text * ctrlJointCallBack__12daNpc_midP_cFP8J3DJointi */ -void daNpc_midP_c::ctrlJointCallBack(J3DJoint* param_0, int param_1) { +int daNpc_midP_c::ctrlJointCallBack(J3DJoint* param_0, int param_1) { // NONMATCHING } /* 80A7164C-80A7166C 000ACC 0020+00 1/1 0/0 0/0 .text getType__12daNpc_midP_cFv */ -void daNpc_midP_c::getType() { +u8 daNpc_midP_c::getType() { // NONMATCHING } /* 80A7166C-80A7168C 000AEC 0020+00 1/1 0/0 0/0 .text isDelete__12daNpc_midP_cFv */ -void daNpc_midP_c::isDelete() { +int daNpc_midP_c::isDelete() { // NONMATCHING } @@ -732,7 +513,7 @@ SECTION_RODATA static f32 const lit_4551 = -1.0f; COMPILER_STRIP_GATE(0x80A73A70, &lit_4551); /* 80A71860-80A7199C 000CE0 013C+00 1/0 0/0 0/0 .text ctrlBtk__12daNpc_midP_cFv */ -void daNpc_midP_c::ctrlBtk() { +BOOL daNpc_midP_c::ctrlBtk() { // NONMATCHING } @@ -752,12 +533,12 @@ void daNpc_midP_c::srchActors() { } /* 80A71AFC-80A71BFC 000F7C 0100+00 1/0 0/0 0/0 .text evtTalk__12daNpc_midP_cFv */ -void daNpc_midP_c::evtTalk() { +BOOL daNpc_midP_c::evtTalk() { // NONMATCHING } /* 80A71BFC-80A71CC4 00107C 00C8+00 1/0 0/0 0/0 .text evtCutProc__12daNpc_midP_cFv */ -void daNpc_midP_c::evtCutProc() { +BOOL daNpc_midP_c::evtCutProc() { // NONMATCHING } @@ -810,8 +591,8 @@ void daNpc_midP_c::setCollision() { } /* 80A7216C-80A72174 0015EC 0008+00 1/0 0/0 0/0 .text drawDbgInfo__12daNpc_midP_cFv */ -bool daNpc_midP_c::drawDbgInfo() { - return false; +int daNpc_midP_c::drawDbgInfo() { + return 0; } /* 80A72174-80A721E0 0015F4 006C+00 1/0 0/0 0/0 .text drawGhost__12daNpc_midP_cFv */ @@ -1113,17 +894,17 @@ void __sinit_d_a_npc_midp_cpp() { REGISTER_CTORS(0x80A73768, __sinit_d_a_npc_midp_cpp); #pragma pop -/* 80A737D0-80A7387C 002C50 00AC+00 1/1 0/0 0/0 .text - * __ct__12daNpc_midP_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc - */ -daNpc_midP_c::daNpc_midP_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 -} +// /* 80A737D0-80A7387C 002C50 00AC+00 1/1 0/0 0/0 .text +// * __ct__12daNpc_midP_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc +// */ +// daNpc_midP_c::daNpc_midP_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 +// } /* 80A7387C-80A738C4 002CFC 0048+00 1/0 0/0 0/0 .text __dt__8cM3dGCylFv */ // cM3dGCyl::~cM3dGCyl() { @@ -1164,13 +945,13 @@ s32 daNpc_midP_c::getBackboneJointNo() { /* 80A73934-80A73944 002DB4 0010+00 1/0 0/0 0/0 .text checkChangeJoint__12daNpc_midP_cFi */ -void daNpc_midP_c::checkChangeJoint(int param_0) { +BOOL daNpc_midP_c::checkChangeJoint(int param_1) { // NONMATCHING } /* 80A73944-80A73954 002DC4 0010+00 1/0 0/0 0/0 .text checkRemoveJoint__12daNpc_midP_cFi */ -void daNpc_midP_c::checkRemoveJoint(int param_0) { +BOOL daNpc_midP_c::checkRemoveJoint(int param_1) { // NONMATCHING } @@ -1179,14 +960,41 @@ daNpc_midP_Param_c::~daNpc_midP_Param_c() { // NONMATCHING } -/* 80A7399C-80A739A4 002E1C 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */ -static void func_80A7399C() { - // NONMATCHING -} +// /* 80A7399C-80A739A4 002E1C 0008+00 1/0 0/0 0/0 .text @36@__dt__12dBgS_ObjAcchFv */ +// static void func_80A7399C() { +// // NONMATCHING +// } -/* 80A739A4-80A739AC 002E24 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */ -static void func_80A739A4() { - // NONMATCHING -} +// /* 80A739A4-80A739AC 002E24 0008+00 1/0 0/0 0/0 .text @20@__dt__12dBgS_ObjAcchFv */ +// static void func_80A739A4() { +// // NONMATCHING +// } /* 80A73AA0-80A73AA0 0000E0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ + +/* 80A73B8C-80A73BAC -00001 0020+00 1/0 0/0 0/0 .data daNpc_midP_MethodTable */ +static actor_method_class daNpc_midP_MethodTable = { + (process_method_func)daNpc_midP_Create, + (process_method_func)daNpc_midP_Delete, + (process_method_func)daNpc_midP_Execute, + (process_method_func)daNpc_midP_IsDelete, + (process_method_func)daNpc_midP_Draw, +}; + +/* 80A73BAC-80A73BDC -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_MIDP */ +extern actor_process_profile_definition g_profile_NPC_MIDP = { + fpcLy_CURRENT_e, // mLayerID + 7, // mListID + fpcPi_CURRENT_e, // mListPrio + PROC_NPC_MIDP, // mProcName + &g_fpcLf_Method.base, // sub_method + sizeof(daNpc_midP_c), // mSize + 0, // mSizeOther + 0, // mParameters + &g_fopAc_Method.base, // sub_method + 354, // mPriority + &daNpc_midP_MethodTable, // sub_method + 0x00044108, // mStatus + fopAc_NPC_e, // mActorType + fopAc_CULLBOX_CUSTOM_e, // cullType +}; diff --git a/src/d/actor/d_a_npc_yelia.cpp b/src/d/actor/d_a_npc_yelia.cpp index a6af98db145..0956e23af87 100644 --- a/src/d/actor/d_a_npc_yelia.cpp +++ b/src/d/actor/d_a_npc_yelia.cpp @@ -451,8 +451,8 @@ int daNpc_Yelia_c::CreateHeap() { } model->setUserArea((u32)this); - mpMatAnm = new daNpcT_MatAnm_c(); - if (mpMatAnm == NULL) { + mpMatAnm[0] = new daNpcT_MatAnm_c(); + if (mpMatAnm[0] == NULL) { return 0; } @@ -484,9 +484,9 @@ int daNpc_Yelia_c::Execute() { /* 80B4DC74-80B4DD08 000A54 0094+00 1/1 0/0 0/0 .text Draw__13daNpc_Yelia_cFv */ int daNpc_Yelia_c::Draw() { - if (mpMatAnm != NULL) { + if (mpMatAnm[0] != NULL) { J3DModelData* model_data = mpMorf[0]->getModel()->getModelData(); - model_data->getMaterialNodePointer(getEyeballMaterialNo())->setMaterialAnm(mpMatAnm); + model_data->getMaterialNodePointer(getEyeballMaterialNo())->setMaterialAnm(mpMatAnm[0]); } return draw(FALSE, FALSE, field_0xde8, NULL, 100.0f, FALSE, FALSE, FALSE); } @@ -565,8 +565,8 @@ BOOL daNpc_Yelia_c::isDelete() { /* 80B4DF10-80B4E068 000CF0 0158+00 1/1 0/0 0/0 .text reset__13daNpc_Yelia_cFv */ void daNpc_Yelia_c::reset() { u32 size = (u32)&field_0xfec - (u32)&mpNextAction; - if (mpMatAnm != NULL) { - mpMatAnm->initialize(); + if (mpMatAnm[0] != NULL) { + mpMatAnm[0]->initialize(); } initialize(); for (int i = 0; i < 4; i++) { diff --git a/src/d/actor/d_a_npc_zant.cpp b/src/d/actor/d_a_npc_zant.cpp index 2e5faea4f6d..9ba2a167973 100644 --- a/src/d/actor/d_a_npc_zant.cpp +++ b/src/d/actor/d_a_npc_zant.cpp @@ -181,9 +181,9 @@ int daNpc_Zant_c::Execute() { /* 80B6C754-80B6C7E8 000694 0094+00 1/1 0/0 0/0 .text Draw__12daNpc_Zant_cFv */ int daNpc_Zant_c::Draw() { - if (mpMatAnm != NULL) { + if (mpMatAnm[0] != NULL) { J3DModelData* modelData = mpMorf[0]->getModel()->getModelData(); - modelData->getMaterialNodePointer(getEyeballMaterialNo())->setMaterialAnm(mpMatAnm); + modelData->getMaterialNodePointer(getEyeballMaterialNo())->setMaterialAnm(mpMatAnm[0]); } return daNpcT_c::draw(0, 0, field_0xde8, NULL, 0.0f, 1, 0, 0); } @@ -245,8 +245,8 @@ void daNpc_Zant_c::reset() { int iVar1 = (u8*)&field_0xf9c - (u8*)&field_0xf84; memset(&field_0xf84, 0, iVar1); - if (mpMatAnm) { - mpMatAnm->initialize(); + if (mpMatAnm[0]) { + mpMatAnm[0]->initialize(); } setAngle(home.angle.y); diff --git a/src/d/actor/d_a_peru.cpp b/src/d/actor/d_a_peru.cpp index 490001bed0f..8fef7eb2109 100644 --- a/src/d/actor/d_a_peru.cpp +++ b/src/d/actor/d_a_peru.cpp @@ -245,8 +245,8 @@ int daPeru_c::CreateHeap() { } model->setUserArea((u32)this); - mpMatAnm = new daNpcT_MatAnm_c(); - if (mpMatAnm == NULL) { + mpMatAnm[0] = new daNpcT_MatAnm_c(); + if (mpMatAnm[0] == NULL) { return 0; } @@ -293,7 +293,7 @@ int daPeru_c::Execute() { /* 80D477A4-80D47840 0009A4 009C+00 1/1 0/0 0/0 .text Draw__8daPeru_cFv */ int daPeru_c::Draw() { - daNpcT_MatAnm_c* matAnm = mpMatAnm; + daNpcT_MatAnm_c* matAnm = mpMatAnm[0]; if (matAnm != NULL) { J3DModelData* modelData = mpMorf[0]->getModel()->getModelData(); u16 eyeballMat = getEyeballMaterialNo(); @@ -351,8 +351,8 @@ void daPeru_c::reset() { field_0xa80 = daPeru_Param_c::m.field_0x64[2]; mMorfFrames = daPeru_Param_c::m.field_0x00[17]; mActionFunc = NULL; - if (mpMatAnm != NULL) { - mpMatAnm->initialize(); + if (mpMatAnm[0] != NULL) { + mpMatAnm[0]->initialize(); } field_0xe80 = 0; for (int i = 0; i < 3; i++) {