summaryrefslogtreecommitdiff
path: root/src/d/actor/d_a_npc_md.cpp
diff options
context:
space:
mode:
authorLagoLunatic <LagoLunatic@users.noreply.github.com>2026-05-22 15:50:17 -0400
committerLagoLunatic <LagoLunatic@users.noreply.github.com>2026-05-22 15:50:17 -0400
commit6a1073e7052cbd0d498510d2490c5d5e9434b48e (patch)
tree00b01d4079db0ce5843865d4c55b85b9915f1847 /src/d/actor/d_a_npc_md.cpp
parent638d76a959681373f18b47f110d95583728d90cf (diff)
Fix d_a_npc_md weak func order, clean up order fakematches from d_a_player main
closes #226
Diffstat (limited to 'src/d/actor/d_a_npc_md.cpp')
-rw-r--r--src/d/actor/d_a_npc_md.cpp183
1 files changed, 181 insertions, 2 deletions
diff --git a/src/d/actor/d_a_npc_md.cpp b/src/d/actor/d_a_npc_md.cpp
index ec44dde9..c05af1d5 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 */