diff --git a/configure.py b/configure.py index 989c73607..9f716dfd7 100755 --- a/configure.py +++ b/configure.py @@ -1535,7 +1535,7 @@ config.libs = [ ActorRel(NonMatching, "d_a_kt"), # regalloc ActorRel(Matching, "d_a_mflft"), ActorRel(MatchingFor("GZLE01", "GZLP01"), "d_a_npc_cb1"), - ActorRel(EquivalentFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_npc_md"), + ActorRel(MatchingFor("GZLJ01", "GZLE01", "GZLP01"), "d_a_npc_md"), ActorRel(NonMatching, "d_a_npc_so"), ActorRel(Matching, "d_a_nzg"), ActorRel(NonMatching, "d_a_obj_aygr"), diff --git a/include/d/actor/d_a_npc_md.h b/include/d/actor/d_a_npc_md.h index 015880a08..23d4543ba 100644 --- a/include/d/actor/d_a_npc_md.h +++ b/include/d/actor/d_a_npc_md.h @@ -7,181 +7,6 @@ #include "d/d_bg_s_lin_chk.h" #include "d/d_drawlist.h" -class daNpc_Md_HIO2_c { -public: - daNpc_Md_HIO2_c(); - virtual ~daNpc_Md_HIO2_c() {} - -public: - /* 0x04 */ f32 m04; - /* 0x08 */ f32 m08; - /* 0x0C */ f32 m0C; - /* 0x10 */ f32 m10; - /* 0x14 */ f32 m14; - /* 0x18 */ f32 m18; - /* 0x1C */ f32 m1C; - /* 0x20 */ s16 m20; - /* 0x22 */ s16 m22; - /* 0x24 */ s16 m24; -#if VERSION > VERSION_DEMO - /* 0x26 */ s16 m26; - /* 0x28 */ s16 m28; - /* 0x2A */ s16 m2A; -#endif -}; - -class daNpc_Md_HIO3_c { -public: - daNpc_Md_HIO3_c(); - virtual ~daNpc_Md_HIO3_c() {} - -public: - /* 0x04 */ f32 m04; - /* 0x08 */ f32 m08; - /* 0x0C */ f32 m0C; - /* 0x10 */ f32 m10; - /* 0x14 */ f32 m14; - /* 0x18 */ s16 m18; - /* 0x1A */ s16 m1A; - /* 0x1C */ s16 m1C; - /* 0x1E */ s16 m1E; - /* 0x20 */ s16 m20; - /* 0x22 */ s16 m22; - /* 0x24 */ s16 m24; - /* 0x26 */ u8 field_26[0x28 - 0x26]; -}; - -class daNpc_Md_HIO4_c { -public: - daNpc_Md_HIO4_c(); - virtual ~daNpc_Md_HIO4_c() {} - -public: - /* 0x4 */ f32 m4; - /* 0x8 */ s16 m8; - /* 0xA */ u8 field_A[0xC - 0xA]; -}; - -class daNpc_Md_HIO5_c { -public: - daNpc_Md_HIO5_c(); - virtual ~daNpc_Md_HIO5_c() {} - -public: - /* 0x4 */ f32 m4; - /* 0x8 */ f32 m8; -}; - -class daNpc_Md_HIO6_c { -public: - daNpc_Md_HIO6_c(); - virtual ~daNpc_Md_HIO6_c() {} - -public: - /* 0x04 */ f32 m04; - /* 0x08 */ s16 m08; - /* 0x0A */ s16 m0A; - /* 0x0C */ s16 m0C; - /* 0x0E */ s16 m0E; - /* 0x10 */ s16 m10; - /* 0x12 */ s16 m12; - /* 0x14 */ s16 m14; - /* 0x16 */ s16 m16; -}; - -class daNpc_Md_HIO_c : public JORReflexible { -public: - daNpc_Md_HIO_c(); - virtual ~daNpc_Md_HIO_c() {} - - void genMessage(JORMContext* ctx) {} - -public: - /* 0x004 */ s8 mNo; - /* 0x008 */ daNpc_Md_HIO2_c m008; - /* 0x034 */ daNpc_Md_HIO3_c m034; - /* 0x05C */ daNpc_Md_HIO4_c m05C; - /* 0x068 */ daNpc_Md_HIO5_c m068; - /* 0x074 */ daNpc_Md_HIO6_c m074; - /* 0x08C */ dNpc_HIO_c mNpc; - /* 0x0B4 */ fopAc_ac_c* mpActor; - /* 0x0B8 */ f32 m0B8; - /* 0x0BC */ f32 m0BC; - /* 0x0C0 */ f32 m0C0; - /* 0x0C4 */ f32 m0C4; - /* 0x0C8 */ f32 m0C8; - /* 0x0CC */ f32 m0CC; - /* 0x0D0 */ f32 m0D0; - /* 0x0D4 */ f32 m0D4; - /* 0x0D8 */ f32 m0D8; - /* 0x0DC */ f32 m0DC; - /* 0x0E0 */ f32 m0E0; - /* 0x0E4 */ f32 m0E4; - /* 0x0E8 */ f32 m0E8; - /* 0x0EC */ f32 m0EC; - /* 0x0F0 */ f32 m0F0; - /* 0x0F4 */ f32 m0F4; - /* 0x0F8 */ f32 m0F8; - /* 0x0FC */ f32 m0FC; - /* 0x100 */ f32 m100; - /* 0x104 */ f32 m104; - /* 0x108 */ f32 m108; - /* 0x10C */ f32 m10C; - /* 0x110 */ f32 m110; - /* 0x114 */ f32 m114; - /* 0x118 */ f32 m118; - /* 0x11C */ f32 m11C; - /* 0x120 */ f32 m120; - /* 0x124 */ f32 m124; - /* 0x128 */ f32 m128; - /* 0x12C */ f32 m12C; - /* 0x130 */ f32 m130; - /* 0x134 */ f32 m134; - /* 0x138 */ f32 m138; - /* 0x13C */ f32 m13C; - /* 0x140 */ f32 m140; - /* 0x144 */ f32 m144; - /* 0x148 */ f32 m148; - /* 0x14C */ f32 m14C; - /* 0x150 */ f32 m150; - /* 0x154 */ f32 m154; - /* 0x158 */ f32 m158; - /* 0x15C */ f32 m15C; - /* 0x160 */ f32 m160; - /* 0x164 */ f32 m164; - /* 0x168 */ f32 m168; - /* 0x16C */ f32 m16C; - /* 0x170 */ f32 m170; - /* 0x174 */ f32 m174; - /* 0x178 */ f32 m178; - /* 0x17C */ f32 m17C; - /* 0x180 */ f32 m180; - /* 0x184 */ f32 m184; - /* 0x188 */ f32 m188; - /* 0x18C */ f32 m18C; - /* 0x190 */ f32 m190; - /* 0x194 */ f32 m194; - /* 0x198 */ f32 m198; - /* 0x19C */ f32 m19C; - /* 0x1A0 */ f32 m1A0; - /* 0x1A4 */ f32 m1A4; - /* 0x1A8 */ f32 m1A8; - /* 0x1AC */ f32 m1AC; - /* 0x1B0 */ f32 m1B0; - /* 0x1B4 */ s16 m1B4; - /* 0x1B6 */ s16 m1B6; - /* 0x1B8 */ u16 m1B8; - /* 0x1BA */ s16 m1BA; - /* 0x1BC */ s16 m1BC; - /* 0x1BE */ s16 m1BE; - /* 0x1C0 */ s16 m1C0; - /* 0x1C2 */ u16 m1C2; - /* 0x1C4 */ s16 m1C4; - /* 0x1C6 */ u8 m1C6; - /* 0x1C7 */ u8 m1C7; - /* 0x1C8 */ u8 m1C8; -}; - class daNpc_Md_followEcallBack_c : public dPa_levelEcallBack { public: ~daNpc_Md_followEcallBack_c() {} @@ -342,7 +167,6 @@ public: void setEffectStatus(u8 status) { m3135 = status; } void setPiyo2TalkCNT(u8 cnt) { m313C = cnt; } - daNpc_Md_c() {} ~daNpc_Md_c(); s16 XyCheckCB(int); diff --git a/include/d/actor/d_a_player.h b/include/d/actor/d_a_player.h index 14a5ed732..525d0ae53 100644 --- a/include/d/actor/d_a_player.h +++ b/include/d/actor/d_a_player.h @@ -12,6 +12,8 @@ inline u8 dComIfGp_getMiniGameType(); class daPy_mtxFollowEcallBack_c : public dPa_levelEcallBack { public: + ~daPy_mtxFollowEcallBack_c() {} + void execute(JPABaseEmitter*); void end(); JPABaseEmitter* makeEmitter(u16, MtxP, const cXyz*, const cXyz*); diff --git a/include/d/actor/d_a_player_main.h b/include/d/actor/d_a_player_main.h index aee7dc0c5..e26bc7d40 100644 --- a/include/d/actor/d_a_player_main.h +++ b/include/d/actor/d_a_player_main.h @@ -334,10 +334,6 @@ public: }; class daPy_footData_c { -public: - ~daPy_footData_c(); - daPy_footData_c(); - public: /* 0x000 */ u8 field_0x000; /* 0x001 */ u8 field_0x001; @@ -1252,7 +1248,6 @@ public: J3DAnmTextureSRTKey* entryBtk(J3DModelData*, int); J3DAnmTevRegKey* entryBrk(J3DModelData*, int); void playerInit(); - daPy_lk_c(); int makeBgWait(); void setSeAnime(daPy_anmHeap_c const*, J3DFrameCtrl*); void initSeAnime(); diff --git a/include/d/d_particle.h b/include/d/d_particle.h index 9c84f3450..762e7c4c0 100644 --- a/include/d/d_particle.h +++ b/include/d/d_particle.h @@ -35,6 +35,7 @@ public: class dPa_levelEcallBack : public JPACallBackBase { public: + dPa_levelEcallBack() {} virtual ~dPa_levelEcallBack() {} virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8) = 0; }; // Size: 0x04 diff --git a/src/d/actor/d_a_npc_md.cpp b/src/d/actor/d_a_npc_md.cpp index ec44dde9e..c05af1d5c 100644 --- a/src/d/actor/d_a_npc_md.cpp +++ b/src/d/actor/d_a_npc_md.cpp @@ -19,6 +19,181 @@ #include "d/d_camera.h" #include "d/d_detect.h" +class daNpc_Md_HIO2_c { +public: + daNpc_Md_HIO2_c(); + virtual ~daNpc_Md_HIO2_c() {} + +public: + /* 0x04 */ f32 m04; + /* 0x08 */ f32 m08; + /* 0x0C */ f32 m0C; + /* 0x10 */ f32 m10; + /* 0x14 */ f32 m14; + /* 0x18 */ f32 m18; + /* 0x1C */ f32 m1C; + /* 0x20 */ s16 m20; + /* 0x22 */ s16 m22; + /* 0x24 */ s16 m24; +#if VERSION > VERSION_DEMO + /* 0x26 */ s16 m26; + /* 0x28 */ s16 m28; + /* 0x2A */ s16 m2A; +#endif +}; + +class daNpc_Md_HIO3_c { +public: + daNpc_Md_HIO3_c(); + virtual ~daNpc_Md_HIO3_c() {} + +public: + /* 0x04 */ f32 m04; + /* 0x08 */ f32 m08; + /* 0x0C */ f32 m0C; + /* 0x10 */ f32 m10; + /* 0x14 */ f32 m14; + /* 0x18 */ s16 m18; + /* 0x1A */ s16 m1A; + /* 0x1C */ s16 m1C; + /* 0x1E */ s16 m1E; + /* 0x20 */ s16 m20; + /* 0x22 */ s16 m22; + /* 0x24 */ s16 m24; + /* 0x26 */ u8 field_26[0x28 - 0x26]; +}; + +class daNpc_Md_HIO4_c { +public: + daNpc_Md_HIO4_c(); + virtual ~daNpc_Md_HIO4_c() {} + +public: + /* 0x4 */ f32 m4; + /* 0x8 */ s16 m8; + /* 0xA */ u8 field_A[0xC - 0xA]; +}; + +class daNpc_Md_HIO5_c { +public: + daNpc_Md_HIO5_c(); + virtual ~daNpc_Md_HIO5_c() {} + +public: + /* 0x4 */ f32 m4; + /* 0x8 */ f32 m8; +}; + +class daNpc_Md_HIO6_c { +public: + daNpc_Md_HIO6_c(); + virtual ~daNpc_Md_HIO6_c() {} + +public: + /* 0x04 */ f32 m04; + /* 0x08 */ s16 m08; + /* 0x0A */ s16 m0A; + /* 0x0C */ s16 m0C; + /* 0x0E */ s16 m0E; + /* 0x10 */ s16 m10; + /* 0x12 */ s16 m12; + /* 0x14 */ s16 m14; + /* 0x16 */ s16 m16; +}; + +class daNpc_Md_HIO_c : public JORReflexible { +public: + daNpc_Md_HIO_c(); + virtual ~daNpc_Md_HIO_c() {} + + void genMessage(JORMContext* ctx) {} + +public: + /* 0x004 */ s8 mNo; + /* 0x008 */ daNpc_Md_HIO2_c m008; + /* 0x034 */ daNpc_Md_HIO3_c m034; + /* 0x05C */ daNpc_Md_HIO4_c m05C; + /* 0x068 */ daNpc_Md_HIO5_c m068; + /* 0x074 */ daNpc_Md_HIO6_c m074; + /* 0x08C */ dNpc_HIO_c mNpc; + /* 0x0B4 */ fopAc_ac_c* mpActor; + /* 0x0B8 */ f32 m0B8; + /* 0x0BC */ f32 m0BC; + /* 0x0C0 */ f32 m0C0; + /* 0x0C4 */ f32 m0C4; + /* 0x0C8 */ f32 m0C8; + /* 0x0CC */ f32 m0CC; + /* 0x0D0 */ f32 m0D0; + /* 0x0D4 */ f32 m0D4; + /* 0x0D8 */ f32 m0D8; + /* 0x0DC */ f32 m0DC; + /* 0x0E0 */ f32 m0E0; + /* 0x0E4 */ f32 m0E4; + /* 0x0E8 */ f32 m0E8; + /* 0x0EC */ f32 m0EC; + /* 0x0F0 */ f32 m0F0; + /* 0x0F4 */ f32 m0F4; + /* 0x0F8 */ f32 m0F8; + /* 0x0FC */ f32 m0FC; + /* 0x100 */ f32 m100; + /* 0x104 */ f32 m104; + /* 0x108 */ f32 m108; + /* 0x10C */ f32 m10C; + /* 0x110 */ f32 m110; + /* 0x114 */ f32 m114; + /* 0x118 */ f32 m118; + /* 0x11C */ f32 m11C; + /* 0x120 */ f32 m120; + /* 0x124 */ f32 m124; + /* 0x128 */ f32 m128; + /* 0x12C */ f32 m12C; + /* 0x130 */ f32 m130; + /* 0x134 */ f32 m134; + /* 0x138 */ f32 m138; + /* 0x13C */ f32 m13C; + /* 0x140 */ f32 m140; + /* 0x144 */ f32 m144; + /* 0x148 */ f32 m148; + /* 0x14C */ f32 m14C; + /* 0x150 */ f32 m150; + /* 0x154 */ f32 m154; + /* 0x158 */ f32 m158; + /* 0x15C */ f32 m15C; + /* 0x160 */ f32 m160; + /* 0x164 */ f32 m164; + /* 0x168 */ f32 m168; + /* 0x16C */ f32 m16C; + /* 0x170 */ f32 m170; + /* 0x174 */ f32 m174; + /* 0x178 */ f32 m178; + /* 0x17C */ f32 m17C; + /* 0x180 */ f32 m180; + /* 0x184 */ f32 m184; + /* 0x188 */ f32 m188; + /* 0x18C */ f32 m18C; + /* 0x190 */ f32 m190; + /* 0x194 */ f32 m194; + /* 0x198 */ f32 m198; + /* 0x19C */ f32 m19C; + /* 0x1A0 */ f32 m1A0; + /* 0x1A4 */ f32 m1A4; + /* 0x1A8 */ f32 m1A8; + /* 0x1AC */ f32 m1AC; + /* 0x1B0 */ f32 m1B0; + /* 0x1B4 */ s16 m1B4; + /* 0x1B6 */ s16 m1B6; + /* 0x1B8 */ u16 m1B8; + /* 0x1BA */ s16 m1BA; + /* 0x1BC */ s16 m1BC; + /* 0x1BE */ s16 m1BE; + /* 0x1C0 */ s16 m1C0; + /* 0x1C2 */ u16 m1C2; + /* 0x1C4 */ s16 m1C4; + /* 0x1C6 */ u8 m1C6; + /* 0x1C7 */ u8 m1C7; + /* 0x1C8 */ u8 m1C8; +}; + static daNpc_Md_HIO_c l_HIO; static cXyz l_ms_light_local_vec(0.0f, 0.0f, -10000.0f); @@ -1339,7 +1514,7 @@ BOOL daNpc_Md_c::waitNpcAction(void*) { maxFallSpeed = -100.0f; gravity = l_HIO.m0F4; clearStatus(daMdStts_UNK1 | daMdStts_UNK2 | daMdStts_FLY); -#if VERSION == VERSION_DEMO +#if VERSION <= VERSION_JPN setBitStatus(daMdStts_UNK4); #else if (!isTypeSea()) { @@ -3607,7 +3782,11 @@ BOOL daNpc_Md_c::actionLandingEvent(int) { /* 0000B9E0-0000B9F8 .text initialWalkEvent__10daNpc_Md_cFi */ void daNpc_Md_c::initialWalkEvent(int) { speedF = 0.0f; - m3118 = DEMO_SELECT(1800, 20 * 30); +#if VERSION <= VERSION_JPN + m3118 = 60 * 30; +#else + m3118 = 20 * 30; +#endif } /* 0000B9F8-0000BCC4 .text actionWalkEvent__10daNpc_Md_cFi */ diff --git a/src/d/actor/d_a_player_main.cpp b/src/d/actor/d_a_player_main.cpp index 8bcf9a5a7..24884ff7f 100644 --- a/src/d/actor/d_a_player_main.cpp +++ b/src/d/actor/d_a_player_main.cpp @@ -111,6 +111,8 @@ u8 daPy_matAnm_c::m_morf_frame; #include "d/actor/d_a_player_sword.inc" +#include "d/actor/d_a_player_HIO.inc" + /* 80102E8C-80102EAC .text daPy_createHeap__FP10fopAc_ac_c */ static BOOL daPy_createHeap(fopAc_ac_c* i_this) { return static_cast(i_this)->createHeap(); @@ -12419,15 +12421,6 @@ cPhs_State phase_2(daPy_lk_c* i_this) { return result; } -/* 80125DB4-80126F00 .text __ct__9daPy_lk_cFv */ -daPy_lk_c::daPy_lk_c() {} - -/* 80126F00-8012704C .text __dt__15daPy_footData_cFv */ -daPy_footData_c::~daPy_footData_c() {} - -/* 8012704C-80127160 .text __ct__15daPy_footData_cFv */ -daPy_footData_c::daPy_footData_c() {} - /* 80127160-80127B50 .text makeBgWait__9daPy_lk_cFv */ cPhs_State daPy_lk_c::makeBgWait() { #if VERSION > VERSION_DEMO @@ -13156,8 +13149,6 @@ BOOL daPy_lk_c::getBokoFlamePos(cXyz* outPos) { return FALSE; } -#include "d/actor/d_a_player_HIO.inc" - static actor_method_class2 l_daPy_Method = { (process_method_func)daPy_Create, (process_method_func)daPy_Delete,