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
This commit is contained in:
Carco_21 2025-04-01 16:31:12 -04:00 committed by GitHub
parent 3df4a4b8d5
commit cc7f26c838
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 297 additions and 435 deletions

View File

@ -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;

View File

@ -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;
};

View File

@ -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;

View File

@ -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);
}

View File

@ -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++) {

View File

@ -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();

View File

@ -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(&current.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<J3DModelData*>(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
};

View File

@ -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++) {

View File

@ -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);

View File

@ -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++) {