diff --git a/configure.py b/configure.py index 0801219d895..45e81fa3b8d 100755 --- a/configure.py +++ b/configure.py @@ -1579,7 +1579,7 @@ config.libs = [ ActorRel(MatchingFor("GZ2E01"), "d_a_npc_besu"), ActorRel(MatchingFor("GZ2E01"), "d_a_npc_fairy_seirei"), ActorRel(MatchingFor("GZ2E01"), "d_a_npc_fish"), - ActorRel(Equivalent, "d_a_npc_henna"), # weak func order + ActorRel(MatchingFor("GZ2E01"), "d_a_npc_henna"), ActorRel(NonMatching, "d_a_npc_kakashi"), ActorRel(NonMatching, "d_a_npc_kkri"), ActorRel(MatchingFor("GZ2E01"), "d_a_npc_kolin"), @@ -1785,7 +1785,7 @@ config.libs = [ ActorRel(NonMatching, "d_a_npc_ashB", extra_cflags=[DANPCF_C_HACK]), ActorRel(NonMatching, "d_a_npc_bans"), ActorRel(NonMatching, "d_a_npc_blue_ns"), - ActorRel(Equivalent, "d_a_npc_bou"), # weak func order + ActorRel(MatchingFor("GZ2E01"), "d_a_npc_bou"), ActorRel(NonMatching, "d_a_npc_bouS"), ActorRel(NonMatching, "d_a_npc_cdn3"), ActorRel(NonMatching, "d_a_npc_chat"), @@ -1886,7 +1886,7 @@ config.libs = [ ActorRel(MatchingFor("GZ2E01"), "d_a_npc_zant"), ActorRel(NonMatching, "d_a_npc_zelR"), ActorRel(NonMatching, "d_a_npc_zelRo"), - ActorRel(Equivalent, "d_a_npc_zelda"), # weak function order + ActorRel(MatchingFor("GZ2E01"), "d_a_npc_zelda"), ActorRel(NonMatching, "d_a_npc_zra", extra_cflags=[DANPCF_C_HACK]), ActorRel(NonMatching, "d_a_npc_zrc", extra_cflags=[DANPCF_C_HACK]), ActorRel(NonMatching, "d_a_npc_zrz", extra_cflags=[DANPCF_C_HACK]), @@ -1904,7 +1904,7 @@ config.libs = [ ActorRel(MatchingFor("GZ2E01"), "d_a_obj_bbox"), ActorRel(MatchingFor("GZ2E01"), "d_a_obj_bed"), ActorRel(NonMatching, "d_a_obj_bemos"), - ActorRel(Equivalent, "d_a_obj_bhbridge"), # vtable order + ActorRel(MatchingFor("GZ2E01"), "d_a_obj_bhbridge"), # vtable order ActorRel(MatchingFor("GZ2E01"), "d_a_obj_bk_leaf"), ActorRel(MatchingFor("GZ2E01"), "d_a_obj_bky_rock"), ActorRel(MatchingFor("GZ2E01"), "d_a_obj_bmWindow"), @@ -1916,7 +1916,7 @@ config.libs = [ ActorRel(MatchingFor("GZ2E01"), "d_a_obj_bubblePilar"), ActorRel(MatchingFor("GZ2E01"), "d_a_obj_catdoor"), ActorRel(MatchingFor("GZ2E01"), "d_a_obj_cb"), - ActorRel(Equivalent, "d_a_obj_cblock"), # unsure why this doesn't match, .rel files seem to be identical + ActorRel(Equivalent, "d_a_obj_cblock"), # weird weak data issue ActorRel(MatchingFor("GZ2E01"), "d_a_obj_cdoor"), ActorRel(MatchingFor("GZ2E01"), "d_a_obj_chandelier"), ActorRel(MatchingFor("GZ2E01"), "d_a_obj_chest"), @@ -2117,7 +2117,7 @@ config.libs = [ ActorRel(MatchingFor("GZ2E01"), "d_a_obj_sekizo"), ActorRel(MatchingFor("GZ2E01"), "d_a_obj_sekizoa"), ActorRel(MatchingFor("GZ2E01"), "d_a_obj_shield"), - ActorRel(Equivalent, "d_a_obj_sm_door"), # vtable order + ActorRel(MatchingFor("GZ2E01"), "d_a_obj_sm_door"), ActorRel(MatchingFor("GZ2E01"), "d_a_obj_smallkey"), ActorRel(NonMatching, "d_a_obj_smgdoor"), ActorRel(MatchingFor("GZ2E01"), "d_a_obj_smoke"), @@ -2140,7 +2140,7 @@ config.libs = [ ActorRel(MatchingFor("GZ2E01"), "d_a_obj_swBallC"), ActorRel(NonMatching, "d_a_obj_swLight"), ActorRel(NonMatching, "d_a_obj_swchain"), - ActorRel(Equivalent, "d_a_obj_swhang"), # weak func + vtable order + ActorRel(Equivalent, "d_a_obj_swhang"), # vtable order ActorRel(MatchingFor("GZ2E01"), "d_a_obj_sword"), ActorRel(NonMatching, "d_a_obj_swpush2"), ActorRel(MatchingFor("GZ2E01"), "d_a_obj_swspinner"), diff --git a/include/d/actor/d_a_npc_bou.h b/include/d/actor/d_a_npc_bou.h index 63de402f657..15a2804c916 100644 --- a/include/d/actor/d_a_npc_bou.h +++ b/include/d/actor/d_a_npc_bou.h @@ -112,12 +112,12 @@ public: daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8) {} - /* 809727D4 */ virtual int checkChangeJoint(int); - /* 809727E4 */ virtual int checkRemoveJoint(int); - /* 809727CC */ virtual s32 getBackboneJointNo(); - /* 809727C4 */ virtual s32 getNeckJointNo(); - /* 809727BC */ virtual s32 getHeadJointNo(); - /* 809727B4 */ virtual u16 getEyeballMaterialNo(); + /* 809727D4 */ virtual int checkChangeJoint(int param_0) { return param_0 == 4; } + /* 809727E4 */ virtual int checkRemoveJoint(int param_0) { return param_0 == 8; } + /* 809727CC */ virtual s32 getBackboneJointNo() { return 1; } + /* 809727C4 */ virtual s32 getNeckJointNo() { return 3; } + /* 809727BC */ virtual s32 getHeadJointNo() { return 4; } + /* 809727B4 */ virtual u16 getEyeballMaterialNo() { return 1; } /* 8096DD44 */ virtual void afterJntAnm(int); /* 8096DDC8 */ virtual void setParam(); /* 8096DF9C */ virtual BOOL checkChangeEvt(); @@ -205,38 +205,5 @@ private: STATIC_ASSERT(sizeof(daNpc_Bou_c) == 0xffc); -/* 809727B4-809727BC 005914 0008+00 1/0 0/0 0/0 .text getEyeballMaterialNo__11daNpc_Bou_cFv */ -u16 daNpc_Bou_c::getEyeballMaterialNo() { - return 1; -} - -/* 809727BC-809727C4 00591C 0008+00 1/0 0/0 0/0 .text getHeadJointNo__11daNpc_Bou_cFv */ -s32 daNpc_Bou_c::getHeadJointNo() { - return 4; -} - -/* 809727C4-809727CC 005924 0008+00 1/0 0/0 0/0 .text getNeckJointNo__11daNpc_Bou_cFv */ -s32 daNpc_Bou_c::getNeckJointNo() { - return 3; -} - -/* 809727CC-809727D4 00592C 0008+00 1/0 0/0 0/0 .text getBackboneJointNo__11daNpc_Bou_cFv - */ -s32 daNpc_Bou_c::getBackboneJointNo() { - return 1; -} - -/* 809727D4-809727E4 005934 0010+00 1/0 0/0 0/0 .text checkChangeJoint__11daNpc_Bou_cFi - */ -int daNpc_Bou_c::checkChangeJoint(int param_0) { - return param_0 == 4; -} - -/* 809727E4-809727F4 005944 0010+00 1/0 0/0 0/0 .text checkRemoveJoint__11daNpc_Bou_cFi - */ -int daNpc_Bou_c::checkRemoveJoint(int param_0) { - return param_0 == 8; -} - #endif /* D_A_NPC_BOU_H */ diff --git a/include/d/actor/d_a_npc_shad.h b/include/d/actor/d_a_npc_shad.h index 28d26687bf2..6cea0c52d2b 100644 --- a/include/d/actor/d_a_npc_shad.h +++ b/include/d/actor/d_a_npc_shad.h @@ -10,7 +10,23 @@ * * @details * - */ +*/ + +struct daNpcShad_HIOParam { + /* 0x00 */ daNpcF_HIOParam common; + /* 0x6C */ f32 traveling_speed; // 走行速度 (Traveling Speed) +}; + +class daNpcShad_Param_c: public JORReflexible { +public: + /* 80AE1F70 */ virtual ~daNpcShad_Param_c() {} + +#ifdef DEBUG + void genMessage(JORMContext*); +#endif + + static const daNpcShad_HIOParam m; +}; class daNpcShad_c : public daNpcF_c { public: @@ -113,7 +129,7 @@ public: }; /* 80AD820C */ daNpcShad_c(); - /* 80AD8420 */ ~daNpcShad_c(); + /* 80AD8420 */ virtual ~daNpcShad_c(); /* 80AD8620 */ cPhs__Step Create(); /* 80AD8B60 */ int CreateHeap(); /* 80AD90E0 */ int Delete(); @@ -163,7 +179,7 @@ public: u8 getPathID() { return (fopAcM_GetParam(this) >> 8) & 0xFF; } s16 getMessageNo() { return shape_angle.x; } - inline void setAction(ActionFn action) { + void setAction(ActionFn action) { field_0xe1a = 3; if (mActionFn) { @@ -178,14 +194,14 @@ public: } } - inline csXyz* unk_inline(); - inline BOOL chkFindPlayer(); - inline void setLookMode(int, fopAc_ac_c*, cXyz*); - inline BOOL step(s16, int, f32); - inline void setExpressionTalkAfter(); - inline void setLookObliquenessUp(); + csXyz* unk_inline(); + BOOL chkFindPlayer(); + void setLookMode(int, fopAc_ac_c*, cXyz*); + BOOL step(s16, int, f32); + void setExpressionTalkAfter(); + void setLookObliquenessUp(); - inline void searchActors() { + void searchActors() { if (mMode == 0) { if (mActorMngr[1].getActorP() == NULL) { mActorMngr[1].entry(fopAcM_SearchByName(PROC_NPC_ASH)); diff --git a/include/d/actor/d_a_npc_zelda.h b/include/d/actor/d_a_npc_zelda.h index 624da495ab7..be628c16ff2 100644 --- a/include/d/actor/d_a_npc_zelda.h +++ b/include/d/actor/d_a_npc_zelda.h @@ -3,41 +3,9 @@ #include "d/actor/d_a_npc.h" -class daNpc_Zelda_HIOParam { -public: - /* 0x00 */ daNpcT_HIOParam common; -}; - -STATIC_ASSERT(sizeof(daNpc_Zelda_HIOParam) == 0x8c); - -class daNpc_Zelda_Param_c { -public: - /* 80B77F5C */ virtual ~daNpc_Zelda_Param_c(); - - static const daNpc_Zelda_HIOParam m; -}; - -class daNpc_Zelda_HIO_c -#if DEBUG - : public mDoHIO_entry_c -#endif -{ -public: - daNpc_Zelda_HIO_c(); - - void genMessage(JORMContext* ctx); - void listenPropertyEvent(const JORPropertyEvent*); - -#if DEBUG - daNpc_Zelda_HIOParam param; -#endif -}; - +class daNpc_Zelda_HIO_c; class daNpc_Zelda_c; -typedef int (daNpc_Zelda_c::*cutFunc)(int); -typedef int (daNpc_Zelda_c::*actionFunc)(void*); - /** * @ingroup actors-npcs * @class daNpc_Zelda_c @@ -48,6 +16,9 @@ typedef int (daNpc_Zelda_c::*actionFunc)(void*); */ class daNpc_Zelda_c : public daNpcT_c { public: + typedef int (daNpc_Zelda_c::*cutFunc)(int); + typedef int (daNpc_Zelda_c::*actionFunc)(void*); + /* 80B7512C */ virtual ~daNpc_Zelda_c(); u8 getPathID() { return (fopAcM_GetParam(this) & 0xff00) >> 8; @@ -84,17 +55,22 @@ public: /* 80B767F0 */ BOOL setAction(actionFunc); /* 80B76898 */ int wait(void*); /* 80B76B74 */ int talk(void*); - /* 80B77DD8 */ daNpc_Zelda_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**); - /* 80B77F14 */ u16 getEyeballRMaterialNo(); - /* 80B77F1C */ u16 getEyeballLMaterialNo(); - /* 80B77F24 */ s32 getHeadJointNo(); - /* 80B77F2C */ s32 getNeckJointNo(); - /* 80B77F34 */ s32 getBackboneJointNo(); - /* 80B77F3C */ int checkChangeJoint(int); - /* 80B77F4C */ int checkRemoveJoint(int); + /* 80B77DD8 */ daNpc_Zelda_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) : + daNpcT_c(param_0, param_1, param_2, param_3, param_4, param_5, param_6, param_7) { + OS_REPORT("|%06d:%x|daNpc_Zelda_c -> コンストラクト\n", g_Counter.mCounter0, this); + } + /* 80B77F14 */ u16 getEyeballRMaterialNo() { return 5; } + /* 80B77F1C */ u16 getEyeballLMaterialNo() { return 4; } + /* 80B77F24 */ s32 getHeadJointNo() { return 4; } + /* 80B77F2C */ s32 getNeckJointNo() { return 3; } + /* 80B77F34 */ s32 getBackboneJointNo() { return 1; } + /* 80B77F3C */ int checkChangeJoint(int param_0) { return param_0 == 4; } + /* 80B77F4C */ int checkRemoveJoint(int param_0) { return param_0 == 17; } static const char* mCutNameList; static cutFunc mCutList[1]; @@ -110,4 +86,34 @@ private: STATIC_ASSERT(sizeof(daNpc_Zelda_c) == 0xfa0); +class daNpc_Zelda_HIOParam { +public: + /* 0x00 */ daNpcT_HIOParam common; +}; + +STATIC_ASSERT(sizeof(daNpc_Zelda_HIOParam) == 0x8c); + +class daNpc_Zelda_Param_c { +public: + /* 80B77F5C */ virtual ~daNpc_Zelda_Param_c() {} + + static const daNpc_Zelda_HIOParam m; +}; + +class daNpc_Zelda_HIO_c +#if DEBUG + : public mDoHIO_entry_c +#endif +{ +public: + daNpc_Zelda_HIO_c(); + + void genMessage(JORMContext* ctx); + void listenPropertyEvent(const JORPropertyEvent*); + +#if DEBUG + daNpc_Zelda_HIOParam param; +#endif +}; + #endif /* D_A_NPC_ZELDA_H */ diff --git a/include/d/dolzel_base.pch b/include/d/dolzel_base.pch index b3ad052e57a..93a4d180ad8 100644 --- a/include/d/dolzel_base.pch +++ b/include/d/dolzel_base.pch @@ -10,9 +10,11 @@ #include "Z2AudioLib/Z2Calc.h" // IWYU pragma: export // Fixes weak function ordering +#include "cmath.h" #include "string.h" #include "d/d_com_inf_game.h" // IWYU pragma: export #include "d/d_bg_w.h" // IWYU pragma: export +#include "m_Do/m_Do_graphic.h" // IWYU pragma: export #include "JSystem/J2DGraph/J2DOrthograph.h" // IWYU pragma: export #include "JSystem/J2DGraph/J2DPane.h" // IWYU pragma: export #include "JSystem/J2DGraph/J2DPictureEx.h" // IWYU pragma: export diff --git a/include/d/dolzel_rel.h b/include/d/dolzel_rel.h index 49c0f2e3d50..4aa114f5147 100644 --- a/include/d/dolzel_rel.h +++ b/include/d/dolzel_rel.h @@ -2,7 +2,7 @@ #define DOLZEL_REL_H // PCH breaks debug build for RELs right now -#if __MWERKS__ && !DEBUG +#if __MWERKS__ #include "d/dolzel_rel.mch" #else #include "d/dolzel_rel.pch" diff --git a/src/d/actor/d_a_e_wb.cpp b/src/d/actor/d_a_e_wb.cpp index 4958371c582..894467ddc77 100644 --- a/src/d/actor/d_a_e_wb.cpp +++ b/src/d/actor/d_a_e_wb.cpp @@ -11,14 +11,6 @@ #include "dol2asm.h" #include "m_Do/m_Do_graphic.h" -namespace std { -/* 807E2350 */ void fabsf(f32); -}; - - - - - // // Forward References: // diff --git a/src/d/actor/d_a_npc_henna.cpp b/src/d/actor/d_a_npc_henna.cpp index a1bbf1d2547..4475afb7595 100644 --- a/src/d/actor/d_a_npc_henna.cpp +++ b/src/d/actor/d_a_npc_henna.cpp @@ -170,7 +170,12 @@ static int daNpc_Henna_Draw(npc_henna_class* i_this) { return 1; } -// needed for matching .rodata, maybe from a stripped method? +// needed for matching .rodata + weak func order, probably from a stripped method? + +static f32 dummy_dt_cxyz() { + cXyz xyz(0.0f, 0.0f, 0.0f); + return xyz.x; +} static f32 dummy_100() { return 100.0f; @@ -180,11 +185,11 @@ static f32 dummy_30() { return 30.0f; } -static f32 dummy__30() { +static f32 dummy_m30() { return -30.0f; } -static f32 dummy__100() { +static f32 dummy_m100() { return -100.0f; } @@ -192,7 +197,7 @@ static f32 dummy_300() { return 300.0f; } -static f32 dummy__450() { +static f32 dummy_m450() { return -450.0f; } @@ -200,12 +205,12 @@ static f32 dummy_0_8() { return 0.8f; } -static f32 dummy__300() { +static f32 dummy_m300() { return -300.0f; } -static cM3dGPla dummy_cM3dGPla() { - return cM3dGPla(); +static void dummy_dt_cm3dgpla() { + delete (cM3dGPla*)NULL; } /* 80543544-805436CC 000724 0188+00 1/1 0/0 0/0 .text s_npc_sub__FPvPv */ diff --git a/src/d/actor/d_a_npc_shad.cpp b/src/d/actor/d_a_npc_shad.cpp index e48974ec6f6..bfae1ec22b7 100644 --- a/src/d/actor/d_a_npc_shad.cpp +++ b/src/d/actor/d_a_npc_shad.cpp @@ -11,22 +11,6 @@ #include "d/actor/d_a_tag_evtarea.h" #include "d/d_msg_object.h" -struct daNpcShad_HIOParam { - /* 0x00 */ daNpcF_HIOParam common; - /* 0x6C */ f32 traveling_speed; // 走行速度 (Traveling Speed) -}; - -class daNpcShad_Param_c: public JORReflexible { -public: - /* 80AE1F70 */ virtual ~daNpcShad_Param_c() {} - -#ifdef DEBUG - void genMessage(JORMContext*); -#endif - - static const daNpcShad_HIOParam m; -}; - enum Shad_RES_File_ID { /* BCK */ /* 0x07 */ BCK_SHAD_F_DISCOURAGED = 0x7, @@ -308,19 +292,6 @@ daNpcShad_c::EventFn daNpcShad_c::mEvtSeqList[14] = { &daNpcShad_c::EvCut_WiretapEntrant, }; -daNpcShad_c::daNpcShad_c() {} - -/* 80AD8420-80AD8620 000300 0200+00 1/0 0/0 0/0 .text __dt__11daNpcShad_cFv */ -daNpcShad_c::~daNpcShad_c() { - for (int i = 0; l_loadRes_list[mMode][i] >= 0; i++) { - dComIfG_resDelete(&mPhases[i], l_arcNames[l_loadRes_list[mMode][i]]); - } - - if (heap != NULL) { - mpMorf->stopZelAnime(); - } -} - /* 80AE1FDC-80AE204C 000000 0070+00 19/19 0/0 0/0 .rodata m__17daNpcShad_Param_c */ const daNpcShad_HIOParam daNpcShad_Param_c::m = { 35.0f, @@ -359,6 +330,21 @@ const daNpcShad_HIOParam daNpcShad_Param_c::m = { 12.0f, }; +daNpcShad_c::daNpcShad_c() { + // empty function +} + +/* 80AD8420-80AD8620 000300 0200+00 1/0 0/0 0/0 .text __dt__11daNpcShad_cFv */ +daNpcShad_c::~daNpcShad_c() { + for (int i = 0; l_loadRes_list[mMode][i] >= 0; i++) { + dComIfG_resDelete(&mPhases[i], l_arcNames[l_loadRes_list[mMode][i]]); + } + + if (heap != NULL) { + mpMorf->stopZelAnime(); + } +} + /* 80AD8620-80AD8B60 000500 0540+00 1/1 0/0 0/0 .text Create__11daNpcShad_cFv */ cPhs__Step daNpcShad_c::Create() { fopAcM_SetupActor(this, daNpcShad_c); @@ -911,7 +897,7 @@ inline bool daNpcShad_c::isSneaking() { } /* 80AE0B58-80AE0ED0 008A38 0378+00 1/1 0/0 0/0 .text playExpression__11daNpcShad_cFv */ -void daNpcShad_c::playExpression() { +inline void daNpcShad_c::playExpression() { daNpcF_anmPlayData dat0 = {ANM_F_TALK_A, daNpcShad_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat0[1] = {&dat0}; daNpcF_anmPlayData dat1a = {ANM_F_HAPPY, daNpcShad_Param_c::m.common.morf_frame, 1}; @@ -949,11 +935,11 @@ void daNpcShad_c::playExpression() { if (mExpression >= 0 && mExpression < 0xD) { playExpressionAnm(ppDat); - } + } } /* 80AE04D8-80AE0B58 0083B8 0680+00 1/1 0/0 0/0 .text playMotion__11daNpcShad_cFv */ -void daNpcShad_c::playMotion() { +inline void daNpcShad_c::playMotion() { daNpcF_anmPlayData dat0 = {ANM_WAIT_A, daNpcShad_Param_c::m.common.morf_frame, 0}; daNpcF_anmPlayData* pDat0[1] = {&dat0}; daNpcF_anmPlayData dat1a = {ANM_BOOK_TALK_A, daNpcShad_Param_c::m.common.morf_frame, 1}; @@ -2576,6 +2562,11 @@ static int daNpcShad_IsDelete(void* a_this) { return 1; } +// force J3DTexNoAnm::calc to be emitted earlier than it otherwise would be +static void dummy() { + ((J3DTexNoAnm*)NULL)->calc(NULL); +} + /* 80AE01BC-80AE0438 00809C 027C+00 1/0 0/0 0/0 .text setParam__11daNpcShad_cFv */ void daNpcShad_c::setParam() { searchActors(); @@ -2690,7 +2681,7 @@ inline void daNpcShad_c::setAttnPos() { } /* 80AE153C-80AE1544 00941C 0008+00 1/0 0/0 0/0 .text drawDbgInfo__11daNpcShad_cFv */ -BOOL daNpcShad_c::drawDbgInfo() { +inline BOOL daNpcShad_c::drawDbgInfo() { return FALSE; } diff --git a/src/d/actor/d_a_npc_zelda.cpp b/src/d/actor/d_a_npc_zelda.cpp index da11e876b2f..955416cf9c1 100644 --- a/src/d/actor/d_a_npc_zelda.cpp +++ b/src/d/actor/d_a_npc_zelda.cpp @@ -19,13 +19,10 @@ static u32 l_bmdData[2] = { 11, 1 }; -#pragma push -#pragma force_active on static daNpcT_evtData_c l_evtList[2] = { {"", 0}, {"NO_RESPONSE", 0}, }; -#pragma pop static char* l_resNameList[2] = { "", @@ -62,7 +59,7 @@ static daNpcT_MotionSeqMngr_c::sequenceStepData_c l_motionSequenceData[8] = { }; const char* daNpc_Zelda_c::mCutNameList = ""; -cutFunc daNpc_Zelda_c::mCutList[1] = { 0 }; +daNpc_Zelda_c::cutFunc daNpc_Zelda_c::mCutList[1] = { 0 }; #if DEBUG static daNpc_Zelda_HIO_c l_HIO; @@ -204,7 +201,7 @@ int daNpc_Zelda_c::create() { J3DModelData* unusedModelData = mpMorf[0]->getModel()->getModelData(); fopAcM_SetMtx(this, mpMorf[0]->getModel()->getBaseTRMtx()); fopAcM_setCullSizeBox(this, -200.0f, -100.0f, -200.0f, 200.0f, 300.0f, 200.0f); - fopAcM_OnStatus(this, fopAcM_STATUS_UNK_8000000); + fopAcM_OnStatus(this, fopAcM_STATUS_UNK_80000000); mSound.init(¤t.pos, &eyePos, 3, 1); #if DEBUG @@ -245,15 +242,15 @@ int daNpc_Zelda_c::create() { return loadResult; } -f32 dummy0() { +static f32 dummy0() { return 0.0f; } -f32 dummy1() { +static f32 dummy1() { return 65536.0f; } -f32 dummy2() { +static f32 dummy2() { return 0.2f; } @@ -831,62 +828,6 @@ static int daNpc_Zelda_IsDelete(void* param_0) { return 1; } -/* 80B77DD8-80B77E84 002D98 00AC+00 1/1 0/0 0/0 .text - * __ct__13daNpc_Zelda_cFPC26daNpcT_faceMotionAnmData_cPC22daNpcT_motionAnmData_cPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPCQ222daNpcT_MotionSeqMngr_c18sequenceStepData_ciPC16daNpcT_evtData_cPPc - */ -daNpc_Zelda_c::daNpc_Zelda_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) : - daNpcT_c(param_0, param_1, param_2, param_3, param_4, param_5, param_6, param_7) { - OS_REPORT("|%06d:%x|daNpc_Zelda_c -> コンストラクト\n", g_Counter.mCounter0, this); -} - -/* 80B77F14-80B77F1C 002ED4 0008+00 1/0 0/0 0/0 .text getEyeballRMaterialNo__13daNpc_Zelda_cFv */ -u16 daNpc_Zelda_c::getEyeballRMaterialNo() { - return 5; -} - -/* 80B77F1C-80B77F24 002EDC 0008+00 1/0 0/0 0/0 .text getEyeballLMaterialNo__13daNpc_Zelda_cFv */ -u16 daNpc_Zelda_c::getEyeballLMaterialNo() { - return 4; -} - -/* 80B77F24-80B77F2C 002EE4 0008+00 1/0 0/0 0/0 .text getHeadJointNo__13daNpc_Zelda_cFv - */ -s32 daNpc_Zelda_c::getHeadJointNo() { - return 4; -} - -/* 80B77F2C-80B77F34 002EEC 0008+00 1/0 0/0 0/0 .text getNeckJointNo__13daNpc_Zelda_cFv - */ -s32 daNpc_Zelda_c::getNeckJointNo() { - return 3; -} - -/* 80B77F34-80B77F3C 002EF4 0008+00 1/0 0/0 0/0 .text getBackboneJointNo__13daNpc_Zelda_cFv */ -s32 daNpc_Zelda_c::getBackboneJointNo() { - return 1; -} - -/* 80B77F3C-80B77F4C 002EFC 0010+00 1/0 0/0 0/0 .text checkChangeJoint__13daNpc_Zelda_cFi - */ -int daNpc_Zelda_c::checkChangeJoint(int param_0) { - return param_0 == 4; -} - -/* 80B77F4C-80B77F5C 002F0C 0010+00 1/0 0/0 0/0 .text checkRemoveJoint__13daNpc_Zelda_cFi - */ -int daNpc_Zelda_c::checkRemoveJoint(int param_0) { - return param_0 == 17; -} - -/* 80B77F5C-80B77FA4 002F1C 0048+00 2/1 0/0 0/0 .text __dt__19daNpc_Zelda_Param_cFv */ -daNpc_Zelda_Param_c::~daNpc_Zelda_Param_c() { -} - /* 80B78240-80B78260 -00001 0020+00 1/0 0/0 0/0 .data daNpc_Zelda_MethodTable */ static actor_method_class daNpc_Zelda_MethodTable = { (process_method_func)daNpc_Zelda_Create, diff --git a/src/d/actor/d_a_obj_bhbridge.cpp b/src/d/actor/d_a_obj_bhbridge.cpp index 3d87fd8c6b7..53be8ccb7ce 100644 --- a/src/d/actor/d_a_obj_bhbridge.cpp +++ b/src/d/actor/d_a_obj_bhbridge.cpp @@ -120,6 +120,14 @@ inline int daObjBhbridge_c::create() { return rv; } +/* 80BB5934-80BB59AC 000694 0078+00 1/0 0/0 0/0 .text CreateHeap__15daObjBhbridge_cFv */ +inline int daObjBhbridge_c::CreateHeap() { + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "M_BHbridge.bmd"); + JUT_ASSERT(83, modelData != 0); + mModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); + return mModel != NULL ? TRUE : FALSE; +} + /* 80BB56F0-80BB58C4 000450 01D4+00 1/0 0/0 0/0 .text daObjBhbridge_Create__FP10fopAc_ac_c */ static int daObjBhbridge_Create(fopAc_ac_c* a_this) { daObjBhbridge_c* i_this = static_cast(a_this); @@ -127,16 +135,8 @@ static int daObjBhbridge_Create(fopAc_ac_c* a_this) { return i_this->create(); } -/* 80BB5934-80BB59AC 000694 0078+00 1/0 0/0 0/0 .text CreateHeap__15daObjBhbridge_cFv */ -int daObjBhbridge_c::CreateHeap() { - J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "M_BHbridge.bmd"); - JUT_ASSERT(83, modelData != 0); - mModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); - return mModel != NULL ? TRUE : FALSE; -} - /* 80BB59AC-80BB5A14 00070C 0068+00 1/0 0/0 0/0 .text Create__15daObjBhbridge_cFv */ -int daObjBhbridge_c::Create() { +inline int daObjBhbridge_c::Create() { fopAcM_setCullSizeBox(this, -400.0f, -800.0f, -1000.0f, 400.0f, 300.0f, 1000.0f); initBaseMtx(); mpBgW->SetRideCallback(rideCallBack); @@ -144,7 +144,7 @@ int daObjBhbridge_c::Create() { } /* 80BB5A14-80BB5E10 000774 03FC+00 1/0 0/0 0/0 .text Execute__15daObjBhbridge_cFPPA3_A4_f */ -int daObjBhbridge_c::Execute(f32 (**i_mtxP)[3][4]) { +inline int daObjBhbridge_c::Execute(f32 (**i_mtxP)[3][4]) { cXyz cStack_5c(current.pos.x, current.pos.y + HREG_F(0), current.pos.z); f32 dVar10 = current.pos.y; if (fopAcM_wt_c::waterCheck(&cStack_5c)) { @@ -195,7 +195,7 @@ int daObjBhbridge_c::Execute(f32 (**i_mtxP)[3][4]) { } /* 80BB5E10-80BB5EB4 000B70 00A4+00 1/0 0/0 0/0 .text Draw__15daObjBhbridge_cFv */ -int daObjBhbridge_c::Draw() { +inline int daObjBhbridge_c::Draw() { g_env_light.settingTevStruct(0x10, ¤t.pos, &tevStr); g_env_light.setLightTevColorType_MAJI(mModel, &tevStr); dComIfGd_setListBG(); @@ -205,7 +205,7 @@ int daObjBhbridge_c::Draw() { } /* 80BB5EB4-80BB5EE8 000C14 0034+00 1/0 0/0 0/0 .text Delete__15daObjBhbridge_cFv */ -int daObjBhbridge_c::Delete() { +inline int daObjBhbridge_c::Delete() { dComIfG_resDelete(&mPhase, l_arcName); return 1; } diff --git a/src/d/actor/d_a_obj_sm_door.cpp b/src/d/actor/d_a_obj_sm_door.cpp index 3b7de290501..837b7702547 100644 --- a/src/d/actor/d_a_obj_sm_door.cpp +++ b/src/d/actor/d_a_obj_sm_door.cpp @@ -160,6 +160,35 @@ static int daObjSM_DOOR_Execute(daObjSM_DOOR_c* i_this) { return i_this->MoveBGExecute(); } +/* 80CD90A4-80CD9258 000B64 01B4+00 1/0 0/0 0/0 .text CreateHeap__14daObjSM_DOOR_cFv */ +inline int daObjSM_DOOR_c::CreateHeap() { + J3DModelData* model_data; + J3DModelData* alpha_model_data; + + if (mType == 0) { + model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "A_SM_DoorA.bmd"); + alpha_model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "A_SM_DoorA_Alpha.bmd"); + } else if (mType == 1) { + model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "A_SM_DoorBl.bmd"); + alpha_model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "A_SM_DoorBl_Alpha.bmd"); + } else if (mType == 2) { + model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "A_SM_DoorWo.bmd"); + alpha_model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "A_SM_DoorWo_Alpha.bmd"); + } + + mpAlphaModel = mDoExt_J3DModel__create(alpha_model_data, 0x80000, 0x11000084); + if (mpAlphaModel == NULL) { + return 0; + } + + mpModel = mDoExt_J3DModel__create(model_data, 0x80000, 0x11000084); + if (mpModel == NULL) { + return 0; + } + + return 1; +} + /* 80CD8D4C-80CD902C 00080C 02E0+00 1/1 0/0 0/0 .text create__14daObjSM_DOOR_cFv */ cPhs__Step daObjSM_DOOR_c::create() { fopAcM_SetupActor(this, daObjSM_DOOR_c); @@ -215,44 +244,15 @@ static int daObjSM_DOOR_IsDelete(daObjSM_DOOR_c* i_this) { return 1; } -/* 80CD90A4-80CD9258 000B64 01B4+00 1/0 0/0 0/0 .text CreateHeap__14daObjSM_DOOR_cFv */ -int daObjSM_DOOR_c::CreateHeap() { - J3DModelData* model_data; - J3DModelData* alpha_model_data; - - if (mType == 0) { - model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "A_SM_DoorA.bmd"); - alpha_model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "A_SM_DoorA_Alpha.bmd"); - } else if (mType == 1) { - model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "A_SM_DoorBl.bmd"); - alpha_model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "A_SM_DoorBl_Alpha.bmd"); - } else if (mType == 2) { - model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "A_SM_DoorWo.bmd"); - alpha_model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, "A_SM_DoorWo_Alpha.bmd"); - } - - mpAlphaModel = mDoExt_J3DModel__create(alpha_model_data, 0x80000, 0x11000084); - if (mpAlphaModel == NULL) { - return 0; - } - - mpModel = mDoExt_J3DModel__create(model_data, 0x80000, 0x11000084); - if (mpModel == NULL) { - return 0; - } - - return 1; -} - /* 80CD9258-80CD929C 000D18 0044+00 1/0 0/0 0/0 .text Create__14daObjSM_DOOR_cFv */ -int daObjSM_DOOR_c::Create() { +inline int daObjSM_DOOR_c::Create() { fopAcM_setCullSizeBox(this, -1000.0f, -500.0f, -1000.0f, 1000.0f, 500.0f, 1000.0f); return cPhs_COMPLEATE_e; } /* 80CD929C-80CD930C 000D5C 0070+00 1/0 0/0 0/0 .text Execute__14daObjSM_DOOR_cFPPA3_A4_f */ -int daObjSM_DOOR_c::Execute(Mtx** i_mtxP) { +inline int daObjSM_DOOR_c::Execute(Mtx** i_mtxP) { if (mSwType == 0xF) { DrawChk1(); } else if (mSwType == 0) { @@ -266,7 +266,7 @@ int daObjSM_DOOR_c::Execute(Mtx** i_mtxP) { } /* 80CD930C-80CD9544 000DCC 0238+00 1/0 0/0 0/0 .text Draw__14daObjSM_DOOR_cFv */ -int daObjSM_DOOR_c::Draw() { +inline int daObjSM_DOOR_c::Draw() { if (mActive) { g_env_light.settingTevStruct(0x10, ¤t.pos, &tevStr); @@ -301,7 +301,7 @@ int daObjSM_DOOR_c::Draw() { } /* 80CD9544-80CD9578 001004 0034+00 1/0 0/0 0/0 .text Delete__14daObjSM_DOOR_cFv */ -int daObjSM_DOOR_c::Delete() { +inline int daObjSM_DOOR_c::Delete() { dComIfG_resDelete(&mPhase, l_arcName); return 1; } diff --git a/src/d/actor/d_a_obj_swhang.cpp b/src/d/actor/d_a_obj_swhang.cpp index 20b35115251..18466039da7 100644 --- a/src/d/actor/d_a_obj_swhang.cpp +++ b/src/d/actor/d_a_obj_swhang.cpp @@ -528,6 +528,11 @@ static int daObjSwHang_MoveBGDraw(daObjSwHang_c* i_this) { return i_this->Draw(); } +static void dummy() { + ((dEvLib_callback_c*)NULL)->eventStart(); + delete (cCcD_GStts*)NULL; +} + /* 80CFD3EC-80CFD40C -00001 0020+00 1/0 0/0 0/0 .data daObjSwHang_METHODS */ static actor_method_class daObjSwHang_METHODS = { (process_method_func)daObjSwHang_create1st, diff --git a/src/d/d_error_msg.cpp b/src/d/d_error_msg.cpp index af55ac14297..3507fd4a4b9 100644 --- a/src/d/d_error_msg.cpp +++ b/src/d/d_error_msg.cpp @@ -47,7 +47,7 @@ static void messageSet(u32 status, bool i_drawBg) { BMG_INF1* inf1 = (BMG_INF1*)&msg_data[0x20]; const char* msg_p = (const char*)((u8*)inf1->getNext() + sizeof(JUTDataBlockHeader) + inf1->entries[status]); - JUT_ASSERT(102, std::strlen(msg_p)-1 < 512); + JUT_ASSERT(102, strlen(msg_p)-1 < 512); J2DTextBox tpane('TEXT1', JGeometry::TBox2(0.0f, 0.0f, 608.0f, 200.0f), (ResFONT*)font_data, msg_p, 512, HBIND_CENTER, VBIND_CENTER); J2DTextBox spane('TEXT2', JGeometry::TBox2(0.0f, 0.0f, 608.0f, 200.0f), (ResFONT*)font_data, msg_p, 512, HBIND_CENTER, VBIND_CENTER); diff --git a/src/d/d_meter2_draw.cpp b/src/d/d_meter2_draw.cpp index 6b26cfe8444..e7564d031d6 100644 --- a/src/d/d_meter2_draw.cpp +++ b/src/d/d_meter2_draw.cpp @@ -2284,7 +2284,7 @@ void dMeter2Draw_c::drawButtonA(u8 i_action, f32 i_posX, f32 i_posY, f32 i_textP mpTextA->hide(); } - JUT_ASSERT(0, std::strlen (mp_string) < (64)); + JUT_ASSERT(0, strlen(mp_string) < (64)); if (daPy_getPlayerActorClass()->getSumouMode()) { mpTextA->show(); @@ -2352,7 +2352,7 @@ void dMeter2Draw_c::drawButtonB(u8 i_action, bool param_1, f32 i_posX, f32 i_pos } } - JUT_ASSERT(0, std::strlen (mp_string) < (64)); + JUT_ASSERT(0, strlen(mp_string) < (64)); for (int i = 0; i < 5; i++) { strcpy(static_cast(mpBText[i]->getPanePtr())->getStringPtr(), mp_string); @@ -2438,7 +2438,7 @@ void dMeter2Draw_c::drawButtonZ(u8 i_action) { mpButtonMidona->show(); } - JUT_ASSERT(0, std::strlen (mp_string) < (64)); + JUT_ASSERT(0, strlen(mp_string) < (64)); for (int i = 0; i < 5; i++) { strcpy(static_cast(mpXYText[i][2]->getPanePtr())->getStringPtr(), mp_string); @@ -2543,7 +2543,7 @@ void dMeter2Draw_c::drawButtonXY(int i_no, u8 i_itemNo, u8 i_action, bool param_ mpTextXY[i_no]->hide(); } - JUT_ASSERT(0, std::strlen (mp_string) < (64)); + JUT_ASSERT(0, strlen(mp_string) < (64)); for (int i = 0; i < 5; i++) { strcpy(static_cast(mpXYText[i][i_no]->getPanePtr())->getStringPtr(), diff --git a/src/d/d_msg_scrn_3select.cpp b/src/d/d_msg_scrn_3select.cpp index 36b45af1022..febc332da7f 100644 --- a/src/d/d_msg_scrn_3select.cpp +++ b/src/d/d_msg_scrn_3select.cpp @@ -227,29 +227,29 @@ bool dMsgScrn3Select_c::isSelect() { void dMsgScrn3Select_c::setString(char* mpText0, char* mpText1, char* mpText2) { if (mpTmSel_c[0] != NULL) { JUT_ASSERT(0, ((J2DTextBox*)(mpTmSel_c[0]->getPanePtr()))->getStringAllocByte() > - std::strlen(mpText0)); + strlen(mpText0)); } if (mpTmSel_c[1] != NULL) { JUT_ASSERT(0, ((J2DTextBox*)(mpTmSel_c[1]->getPanePtr()))->getStringAllocByte() > - std::strlen(mpText1)); + strlen(mpText1)); } if (mpTmSel_c[2] != NULL) { JUT_ASSERT(0, ((J2DTextBox*)(mpTmSel_c[2]->getPanePtr()))->getStringAllocByte() > - std::strlen(mpText2)); + strlen(mpText2)); } if (mpTmSel_c[0] != NULL) { - std::strcpy(((J2DTextBox*)(mpTmSel_c[0]->getPanePtr()))->getStringPtr(), mpText0); + strcpy(((J2DTextBox*)(mpTmSel_c[0]->getPanePtr()))->getStringPtr(), mpText0); } if (mpTmSel_c[1] != NULL) { - std::strcpy(((J2DTextBox*)(mpTmSel_c[1]->getPanePtr()))->getStringPtr(), mpText1); + strcpy(((J2DTextBox*)(mpTmSel_c[1]->getPanePtr()))->getStringPtr(), mpText1); } if (mpTmSel_c[2] != NULL) { - std::strcpy(((J2DTextBox*)(mpTmSel_c[2]->getPanePtr()))->getStringPtr(), mpText2); + strcpy(((J2DTextBox*)(mpTmSel_c[2]->getPanePtr()))->getStringPtr(), mpText2); } } @@ -257,29 +257,29 @@ void dMsgScrn3Select_c::setString(char* mpText0, char* mpText1, char* mpText2) { void dMsgScrn3Select_c::setRubyString(char* pText0, char* pText1, char* pText2) { if (mpTmrSel_c[0] != NULL) { JUT_ASSERT(0, ((J2DTextBox*)(mpTmrSel_c[0]->getPanePtr()))->getStringAllocByte() > - std::strlen(pText0)); + strlen(pText0)); } if (mpTmrSel_c[1] != NULL) { JUT_ASSERT(0, ((J2DTextBox*)(mpTmrSel_c[1]->getPanePtr()))->getStringAllocByte() > - std::strlen(pText1)); + strlen(pText1)); } if (mpTmrSel_c[2] != NULL) { JUT_ASSERT(0, ((J2DTextBox*)(mpTmrSel_c[2]->getPanePtr()))->getStringAllocByte() > - std::strlen(pText2)); + strlen(pText2)); } if (mpTmrSel_c[0] != NULL) { - std::strcpy(((J2DTextBox*)(mpTmrSel_c[0]->getPanePtr()))->getStringPtr(), pText0); + strcpy(((J2DTextBox*)(mpTmrSel_c[0]->getPanePtr()))->getStringPtr(), pText0); } if (mpTmrSel_c[1] != NULL) { - std::strcpy(((J2DTextBox*)(mpTmrSel_c[1]->getPanePtr()))->getStringPtr(), pText1); + strcpy(((J2DTextBox*)(mpTmrSel_c[1]->getPanePtr()))->getStringPtr(), pText1); } if (mpTmrSel_c[2] != NULL) { - std::strcpy(((J2DTextBox*)(mpTmrSel_c[2]->getPanePtr()))->getStringPtr(), pText2); + strcpy(((J2DTextBox*)(mpTmrSel_c[2]->getPanePtr()))->getStringPtr(), pText2); } } diff --git a/src/d/d_msg_scrn_base.cpp b/src/d/d_msg_scrn_base.cpp index ae2ab321e6b..c36327eefda 100644 --- a/src/d/d_msg_scrn_base.cpp +++ b/src/d/d_msg_scrn_base.cpp @@ -91,7 +91,7 @@ void dMsgScrnBase_c::drawOutFont(f32 param_0, f32 param_1, f32 param_2) { void dMsgScrnBase_c::setString(char* mpText, char* i_stringB) { for (int i = 0; i < 7; i++) { if (mpTm_c[i] != NULL) { - JUT_ASSERT(262, ((J2DTextBox*)(mpTm_c[i]->getPanePtr()))->getStringAllocByte() > std::strlen(mpText)); + JUT_ASSERT(262, ((J2DTextBox*)(mpTm_c[i]->getPanePtr()))->getStringAllocByte() > strlen(mpText)); if (i == 0) { strcpy(((J2DTextBox*)mpTm_c[i]->getPanePtr())->getStringPtr(), mpText); } else { @@ -106,7 +106,7 @@ void dMsgScrnBase_c::setString(char* mpText, char* i_stringB) { void dMsgScrnBase_c::setRubyString(char* mpText) { for (int i = 0; i < 3; i++) { if (mpTmr_c[i] != NULL) { - JUT_ASSERT(288, ((J2DTextBox*)(mpTmr_c[i]->getPanePtr()))->getStringAllocByte() > std::strlen(mpText)); + JUT_ASSERT(288, ((J2DTextBox*)(mpTmr_c[i]->getPanePtr()))->getStringAllocByte() > strlen(mpText)); strcpy(((J2DTextBox*)mpTmr_c[i]->getPanePtr())->getStringPtr(), mpText); } }