summaryrefslogtreecommitdiff
path: root/include/Message/MsgProc.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/Message/MsgProc.hpp')
-rw-r--r--include/Message/MsgProc.hpp837
1 files changed, 837 insertions, 0 deletions
diff --git a/include/Message/MsgProc.hpp b/include/Message/MsgProc.hpp
new file mode 100644
index 00000000..3a442151
--- /dev/null
+++ b/include/Message/MsgProc.hpp
@@ -0,0 +1,837 @@
+#pragma once
+
+#include "System/SysNew.hpp"
+#include "Message/BMG.hpp"
+#include "Unknown/func_ov000_020d0644.hpp"
+#include "lib/math.h"
+
+// temp
+#define UNK_TYPE void
+
+#define ESCAPE_SEQUENCE_MARKER '\x1A'
+
+struct func_0203b410_param_2 {
+ unk32 unk_00;
+ unk32 unk_04;
+ unk32 unk_08;
+ unk32 unk_0C;
+ unk16 unk_10;
+ unk16 unk_12;
+};
+
+typedef struct UnkStruct_0203b264 {
+ /* 0 */ u8 mUnk_0[0x4];
+ /* 4 */ u16 *mUnk_4;
+ /* 8 */
+} UnkStruct_0203b264;
+
+typedef struct UnkSubClass1_unk_154 {
+ u8 unk_00;
+ u8 unk_01;
+ u8 unk_02;
+ u8 unk_03;
+ u8 unk_04;
+ u8 unk_05;
+ u8 unk_06;
+} UnkSubClass1_unk_154;
+
+typedef u32 (*UnkCallback1)(void);
+
+// astruct_11
+class UnkSubClass1_UnkownClass1_Sub1 {
+public:
+ /* 0x00 */ unk16 unk_00;
+ /* 0x02 */ unk16 unk_02;
+ /* 0x04 */ unk32 unk_04;
+ /* 0x08 */ unk32 unk_08;
+ /* 0x0C */ unk32 unk_0C;
+ /* 0x10 */ unk32 unk_10;
+ /* 0x14 */ unk32 unk_14;
+ /* 0x18 */
+
+ UnkSubClass1_UnkownClass1_Sub1();
+};
+
+// astruct_10
+class UnkSubClass1_UnkownClass1 {
+public:
+ /* 0x00 (vtable) */
+ /* 0x04 */ unk16 unk_04;
+ /* 0x06 */ unk16 unk_06;
+ /* 0x08 */ u32* unk_08;
+ /* 0x0C */ unk32 unk_0C;
+ /* 0x10 */ unk32 unk_10;
+ /* 0x14 */ unk32 unk_14;
+ /* 0x18 */ unk32 unk_18;
+ /* 0x1C */ unk32 unk_1C;
+ /* 0x20 */ u32* unk_20;
+ /* 0x24 */ unk32 unk_24;
+ /* 0x28 */ unk32 unk_28;
+ /* 0x2C */ unk32 unk_2C;
+ /* 0x30 */ unk32 unk_30;
+ /* 0x34 */ u32* unk_34;
+ /* 0x38 */ u32* unk_38;
+ /* 0x3C */ unk32 unk_3C;
+ /* 0x40 */ unk32 unk_40;
+ /* 0x44 */ unk32 unk_44;
+ /* 0x48 */ unk32 unk_48;
+ /* 0x4C */ unk32 unk_4C;
+ /* 0x50 */ unk32 unk_50;
+ /* 0x54 */ unk32 unk_54;
+ /* 0x58 */ unk32 unk_58;
+ /* 0x5C */ UnkSubClass1_UnkownClass1_Sub1 unk_5C;
+ /* 0x74 */ u32* unk_74;
+ /* 0x78 */ u32* unk_78;
+ /* 0x7C */ unk32 unk_7C;
+ /* 0x80 */ unk16 unk_80;
+ /* 0x80 */ unk16 unk_82;
+ /* 0x84 */ unk16 unk_84;
+ /* 0x84 */ unk8 unk_86;
+ /* 0x84 */ unk8 unk_87;
+ /* 0x88 */
+
+ /* 0x00 */ virtual unk16 func_020351a8(void);
+ /* 0x04 */ virtual unk16 func_020351b0(void);
+ /* 0x08 */
+
+ UnkSubClass1_UnkownClass1();
+ ~UnkSubClass1_UnkownClass1();
+ void func_02034a1c(unk32, unk32, struct UnkStruct_01ffbe34*);
+ void func_02034b0c(unk32 param_2, unk32 param_3, unk32 param_4, unk32 param_5, unk32 param_6);
+ void func_020350b4(unk32 param_2, unk32 param_3, unk32 param_4, unk32 param_5, unk32 param_6);
+ void func_0203516c(void);
+ void func_020351b8(unk32 param_2, unk32 param_3, unk32 param_4, unk32 param_5);
+ void func_020352d8(void);
+};
+
+class UnkSubClass1_UnkownClass2_Base1 {
+public:
+ /* 0x00 (vtable) */
+ /* 0x04 */ u16* unk_00; // pointer to the current position in the message to display
+ /* 0x08 */ unk16 unk_08;
+ /* 0x0A */ unk16 unk_0A;
+ /* 0x0C */ unk16 unk_0C;
+ /* 0x0E */ unk16 unk_0E;
+ /* 0x10 */ unk32 unk_10;
+
+ UnkSubClass1_UnkownClass2_Base1();
+ /* 0x00 */ virtual ~UnkSubClass1_UnkownClass2_Base1() override;
+ /* 0x08 */
+};
+
+typedef bool (*UnknownCallback)(class MsgProc_Type1*);
+
+class UnkSubClass1_UnkownClass2 : public UnkSubClass1_UnkownClass2_Base1 {
+public:
+ /* 0x14 */ unk32 unk_14;
+ /* 0x18 */ unk32 unk_18;
+ /* 0x1C */ UnknownCallback unk_1C;
+ /* 0x20 */ class MsgProc_Type1* unk_20;
+ /* 0x24 */ unk32 unk_24;
+ /* 0x2C */
+
+ UnkSubClass1_UnkownClass2();
+ /* 0x00 */ virtual ~UnkSubClass1_UnkownClass2() override;
+ /* 0x08 */
+};
+
+class UnkSubClass1_unk_410 {
+public:
+ /* 0x00 */ struct MsgProc_Type1* unk_00;
+ /* 0x04 */
+
+ void func_0203ec34(void);
+ void func_0203ebe0(void);
+ void func_0203ebf8(void);
+ void func_0203ec4c(UnkStruct_0203b264* param_2, unk32 param_3, s32 param_4, s32 param_5);
+};
+
+// same as UnkSubClass1_unk_410?
+class UnkSubClass1_unk_424 {
+public:
+ /* 0x00 */ struct MsgProc_Type1* unk_00;
+ /* 0x04 */
+
+ void func_0203ee80(unk32);
+ void func_0203ef78(unk16, u16, unk8);
+ void func_0203ef78(unk16); // overload?
+ void func_0203ee48(void);
+ UnkStruct_0203b264* func_0203eeb0(unk32 param_2, unk32 param_3);
+};
+
+class UnkSubClass1_unk_124 {
+public:
+ /* 0x00 */ void* unk_00; // pointer to MsgProc_Main (well, the first members of the base class)
+ /* 0x04 */ unk32 unk_04;
+ /* 0x08 */ unk32 unk_08;
+ /* 0x0C */ unk32 unk_0C;
+ /* 0x10 */ unk32 unk_10;
+ /* 0x14 */ unk32 unk_14;
+ /* 0x18 */ unk32 unk_18;
+ /* 0x1C */ unk32 unk_1C;
+ /* 0x20 */ unk32 unk_20;
+ /* 0x24 */ unk32 unk_24;
+ /* 0x28 */ unk8 unk_28;
+ /* 0x29 */ unk8 unk_29;
+ /* 0x2A */ unk8 unk_2A;
+ /* 0x2B */ unk8 unk_2B;
+ /* 0x2C */
+
+ void func_0203f020(unk32, unk32);
+};
+
+class UnkSubClass1_02256FF8 {
+public:
+ /* 0x00 (vtable) */
+ /* 0x04 */ unk32 unk_04;
+ /* 0x08 */ unk32 unk_08;
+ /* 0x0C */ unk32 unk_0C;
+ /* 0x10 */ unk32 unk_10;
+ /* 0x14 */ unk32 unk_14;
+ /* 0x18 */ unk32 unk_18;
+ /* 0x1C */ u8 unk_1C;
+ /* 0x20 */
+
+ UnkSubClass1_02256FF8();
+ /* 0x00 */ virtual ~UnkSubClass1_02256FF8() override;
+ /* 0x08 */ virtual UNK_TYPE vfunc_08(UNK_TYPE) override;
+ /* 0x0C */ virtual UNK_TYPE vfunc_0C(UNK_TYPE) override;
+ /* 0x10 */ virtual UNK_TYPE vfunc_10(UNK_TYPE) override;
+ /* 0x14 */ virtual UNK_TYPE vfunc_14(UNK_TYPE) override;
+ /* 0x18 */ virtual UNK_TYPE vfunc_18(UNK_TYPE) override;
+ /* 0x1C */ virtual UNK_TYPE vfunc_1C(UNK_TYPE) override;
+ /* 0x20 */ virtual UNK_TYPE vfunc_20(UNK_TYPE) override;
+ /* 0x24 */ virtual UNK_TYPE vfunc_24(UNK_TYPE) override;
+ /* 0x28 */ virtual UNK_TYPE vfunc_28(UNK_TYPE) override;
+ /* 0x2C */ virtual UNK_TYPE vfunc_2C(UNK_TYPE) override;
+ /* 0x30 */ virtual UNK_TYPE vfunc_30(UNK_TYPE) override;
+ /* 0x34 */ virtual UNK_TYPE vfunc_34(UNK_TYPE) override;
+ /* 0x38 */ virtual UNK_TYPE vfunc_38(UNK_TYPE) override;
+ /* 0x3C */
+};
+
+// astruct_8?
+class MsgProc_Base : public SysObject {
+public:
+ /* 0x000 (vtable) */
+ /* 0x004 */ unk32* unk_04;
+ /* 0x008 */ UnkSubClass1_02256FF8* unk_08;
+ /* 0x00C */ unk32* unk_0C;
+ /* 0x010 */ unk32 unk_10;
+ /* 0x014 */ s32 unk_14;
+ /* 0x018 */ s32 unk_18;
+ /* 0x01C */ unk32 unk_1C;
+ /* 0x020 */ unk32 unk_20;
+ /* 0x024 */ unk32* unk_24;
+ /* 0x028 */ unk32* unk_28;
+ /* 0x02C */ u32* unk_2C;
+ /* 0x030 */ unk32 unk_30;
+ /* 0x034 */ unk32 unk_34;
+ /* 0x038 */ unk32 unk_38;
+ /* 0x03C */ unk16 unk_3C;
+ /* 0x03E */ unk16 unk_3E;
+ /* 0x040 */ unk32 unk_40;
+ /* 0x044 */ unk32 unk_44;
+ /* 0x048 */ u8 unk_48;
+ /* 0x049 */ u8 unk_49;
+ /* 0x04A */ unk16 unk_4A;
+ /* 0x04C */ unk8 unk_4C;
+ /* 0x04C */ unk8 unk_4D;
+ /* 0x04C */ unk8 unk_4E;
+ /* 0x04C */ unk8 unk_4F;
+ /* 0x050 */ u8 unk_50;
+ /* 0x051 */ unk8 unk_51;
+ /* 0x052 */
+
+ MsgProc_Base();
+ /* 0x00*/ virtual ~MsgProc_Base();
+ /* 0x08 */ virtual void vfunc_08(unk32* param_2, unk32* param_3);
+ /* 0x0C */ virtual void vfunc_0C(u8 param_2, u8 param_3, u8 param_4, unk32 param_5);
+ /* 0x10 */ virtual void vfunc_10(u8 param_2, u8 param_3); // func_0203e060?
+ /* 0x14 */ virtual bool vfunc_14(unk32 param_2, unk32 param_3);
+ /* 0x18 */ virtual unk32 vfunc_18(UnkStruct_0203b264* param_2, unk32 param_3, unk32 param_4);
+ /* 0x1C */ virtual unk32 vfunc_1C(unk8 param_2, UnkStruct_0203b264* param_3, unk8 param_4, unk32 param_5);
+ /* 0x20 */ virtual UNK_TYPE vfunc_20(UNK_TYPE);
+ /* 0x24 */ virtual UNK_TYPE vfunc_24(UNK_TYPE);
+ /* 0x28 */ virtual bool vfunc_28(void);
+ /* 0x2C */ virtual void vfunc_2C(void);
+ /* 0x30 */ virtual void vfunc_30(void);
+ /* 0x34 */ virtual unk32 vfunc_34(unk32 param_2);
+ /* 0x38 */ virtual bool vfunc_38(void);
+ /* 0x3C */ virtual void vfunc_3C(unk32 param_2);
+ /* 0x40 */ virtual void vfunc_40(unk32 param_2, unk32 param_3);
+ /* 0x44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY);
+ /* 0x48 */ virtual void vfunc_48(void);
+ /* 0x4C */ virtual void vfunc_4C(void); // func_02039a3c?
+ /* 0x50 */ virtual void vfunc_50(EntryINF1* param_2, u32 param_3, s16* param_4, unk32 param_5);
+ /* 0x54 */ virtual void vfunc_54(void);
+ /* 0x58 */ virtual void vfunc_58(void);
+ /* 0x5C */ virtual void vfunc_5C(void);
+ /* 0x60 */ virtual void vfunc_60(func_0203b410_param_2* param_2, unk32 param_3, unk32 param_4);
+ /* 0x64 */ virtual void vfunc_64(unk32 param_2);
+ /* 0x68 */ virtual unk32 vfunc_68(unk32 param_2);
+ /* 0x6C */ virtual void vfunc_6C(unk32* param_2, unk32* param_3);
+ /* 0x70 */ virtual void vfunc_70(unk32* param_2, unk32* param_3);
+ /* 0x74 */
+
+ unk32 func_02032fa4(void);
+};
+
+class MsgProc_Base2_unk_114 : public SysObject {
+public:
+ /* 0x00 (vtable) */
+ /* 0x04 */ unk32* unk_04;
+ /* 0x08 */
+
+ MsgProc_Base2_unk_114();
+ /* 0x00 */ virtual ~MsgProc_Base2_unk_114() override;
+ /* 0x04 */ virtual UNK_TYPE vfunc_04(UNK_TYPE);
+ /* 0x08 */ virtual unk32 vfunc_08(void*, s16);
+ /* 0x0C */
+
+ unk32 func_0203d1b4(void);
+};
+
+// astruct_7
+class MsgProc_Base2 : public MsgProc_Base {
+public:
+ /* 0x052 */ unk16 unk_52;
+ /* 0x054 */ unk16 unk_54;
+ /* 0x054 */ unk16 unk_56;
+ /* 0x058 */ unk32 unk_58;
+ /* 0x05C */ s16 unk_5C;
+ /* 0x05E */ s16 unk_5E;
+ /* 0x060 */ unk32 unk_60;
+ /* 0x064 */ unk32 unk_64;
+ /* 0x068 */ unk32 unk_68;
+ /* 0x06C */ unk32 unk_6C;
+ /* 0x070 */ unk32 unk_70;
+ /* 0x074 */ unk32 unk_74;
+ /* 0x078 */ unk32 unk_78;
+ /* 0x07C */ unk32 unk_7C;
+ /* 0x080 */ unk32 unk_80;
+ /* 0x084 */ unk32 unk_84;
+ /* 0x088 */ unk32 unk_88;
+ /* 0x08C */ unk32 unk_8C;
+ /* 0x090 */ unk32 unk_90;
+ /* 0x094 */ unk32 unk_94;
+ /* 0x098 */ unk32 unk_98;
+ /* 0x09C */ unk32 unk_9C;
+ /* 0x0A0 */ unk32 unk_A0;
+ /* 0x0A4 */ unk32 unk_A4;
+ /* 0x0A8 */ unk32 unk_A8;
+ /* 0x0AC */ unk32 unk_AC;
+ /* 0x0B0 */ unk32 unk_B0;
+ /* 0x0B4 */ unk32 unk_B4;
+ /* 0x0B8 */ unk32 unk_B8;
+ /* 0x0BC */ unk32 unk_BC;
+ /* 0x0C0 */ unk32 unk_C0;
+ /* 0x0C4 */ unk32 unk_C4;
+ /* 0x0C8 */ unk32 unk_C8;
+ /* 0x0CC */ unk32 unk_CC;
+ /* 0x0D0 */ unk32 unk_D0;
+ /* 0x0D4 */ unk32 unk_D4;
+ /* 0x0D8 */ unk32 unk_D8;
+ /* 0x0DC */ unk32 unk_DC;
+ /* 0x0E0 */ unk32 unk_E0;
+ /* 0x0E4 */ unk32 unk_E4;
+ /* 0x0E8 */ unk32 unk_E8;
+ /* 0x0EC */ unk32 unk_EC;
+ /* 0x0F0 */ unk32 unk_F0;
+ /* 0x0F4 */ unk32 unk_F4;
+ /* 0x0F8 */ unk32 unk_F8;
+ /* 0x0FC */ unk32 unk_FC;
+ /* 0x100 */ unk32 unk_100;
+ /* 0x104 */ unk32 unk_104;
+ /* 0x108 */ unk8 unk_108;
+ /* 0x108 */ unk8 unk_109;
+ /* 0x108 */ unk8 unk_10A;
+ /* 0x108 */ unk8 unk_10B;
+ /* 0x10C */ unk32 unk_10C;
+ /* 0x110 */ unk32 unk_110;
+ /* 0x118 */ MsgProc_Base2_unk_114* unk_114;
+ /* 0x118 */ s32 unk_118;
+ /* 0x11C */ unk16 unk_11C;
+ /* 0x11E */ unk8 unk_11E;
+ /* 0x11F */ unk8 unk_11F;
+ /* 0x120 */ u8 unk_120;
+ /* 0x121 */ s8 unk_121;
+ /* 0x122 */ u8 unk_122;
+ /* 0x123 */ u8 unk_123;
+ /* 0x124 */
+
+ MsgProc_Base2(unk32 param_2, unk32 param_3, unk32 param_4);
+ //! TODO: remove the function declarations that are not overridden
+ /* 0x00 */ virtual ~MsgProc_Base2();
+ /* 0x08 */ virtual void vfunc_08(unk32* param_2, unk32* param_3) override;
+ /* 0x0C */ virtual void vfunc_0C(u8 param_2, u8 param_3, u8 param_4, unk32 param_5) override;
+ /* 0x10 */ virtual void vfunc_10(u8 param_2, u8 param_3) override; // func_0203e060?
+ /* 0x14 */ virtual bool vfunc_14(unk32 param_2, unk32 param_3) override;
+ /* 0x18 */ virtual unk32 vfunc_18(UnkStruct_0203b264* param_2, unk32 param_3, unk32 param_4) override;
+ /* 0x1C */ virtual unk32 vfunc_1C(unk8 param_2, UnkStruct_0203b264* param_3, unk8 param_4, unk32 param_5) override;
+ /* 0x20 */ virtual UNK_TYPE vfunc_20(UNK_TYPE) override;
+ /* 0x24 */ virtual UNK_TYPE vfunc_24(UNK_TYPE) override;
+ /* 0x28 */ virtual bool vfunc_28(void) override;
+ /* 0x2C */ virtual void vfunc_2C(void) override;
+ /* 0x30 */ virtual void vfunc_30(void) override;
+ /* 0x34 */ virtual unk32 vfunc_34(unk32 param_2) override;
+ /* 0x38 */ virtual bool vfunc_38(void) override;
+ /* 0x3C */ virtual void vfunc_3C(unk32 param_2) override;
+ /* 0x40 */ virtual void vfunc_40(unk32 param_2, unk32 param_3) override;
+ /* 0x44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY) override;
+ /* 0x48 */ virtual void vfunc_48(void) override;
+ /* 0x4C */ virtual void vfunc_4C(void) override; // func_02039a3c?
+ /* 0x50 */ virtual void vfunc_50(EntryINF1* param_2, u32 param_3, s16* param_4, unk32 param_5) override;
+ /* 0x54 */ virtual void vfunc_54(void) override;
+ /* 0x58 */ virtual void vfunc_58(void) override;
+ /* 0x5C */ virtual void vfunc_5C(void) override;
+ /* 0x60 */ virtual void vfunc_60(func_0203b410_param_2* param_2, unk32 param_3, unk32 param_4) override;
+ /* 0x64 */ virtual void vfunc_64(unk32 param_2) override;
+ /* 0x68 */ virtual unk32 vfunc_68(unk32 param_2) override;
+ /* 0x6C */ virtual void vfunc_6C(unk32* param_2, unk32* param_3) override;
+ /* 0x70 */ virtual void vfunc_70(unk32* param_2, unk32* param_3) override;
+ /* 0x74 */
+};
+
+// astruct_6
+class MsgProc_Main : public MsgProc_Base2 {
+public:
+ /* 0x124 */ UnkSubClass1_unk_124* unk_124;
+ /* 0x128 */ UnkSubClass1_UnkownClass2 unk_128;
+ /* 0x150 */ u8 unk_150[4];
+ /* 0x154 */ UnkSubClass1_unk_154* unk_154;
+ /* 0x158 */ Vec2s unk_158; // textbox position?
+ /* 0x15C */ s16 unk_15C;
+ /* 0x15E */ s8 unk_15E;
+ /* 0x15F */ s8 unk_15F;
+ /* 0x160 */ unk8 unk_160;
+ /* 0x160 */ unk8 unk_161;
+ /* 0x160 */ unk16 unk_162;
+ /* 0x164 */
+
+ MsgProc_Main(unk32 param_2, unk16 param_3, unk32 param_4);
+ //! TODO: remove the function declarations that are not overridden
+ /* 0x00 */ virtual ~MsgProc_Main();
+ /* 0x08 */ virtual void vfunc_08(unk32* param_2, unk32* param_3) override;
+ /* 0x0C */ virtual void vfunc_0C(u8 param_2, u8 param_3, u8 param_4, unk32 param_5) override;
+ /* 0x10 */ virtual void vfunc_10(u8 param_2, u8 param_3) override; // func_0203e060?
+ /* 0x14 */ virtual bool vfunc_14(unk32 param_2, unk32 param_3) override;
+ /* 0x18 */ virtual unk32 vfunc_18(UnkStruct_0203b264* param_2, unk32 param_3, unk32 param_4) override;
+ /* 0x1C */ virtual unk32 vfunc_1C(unk8 param_2, UnkStruct_0203b264* param_3, unk8 param_4, unk32 param_5) override;
+ /* 0x20 */ virtual UNK_TYPE vfunc_20(UNK_TYPE) override;
+ /* 0x24 */ virtual UNK_TYPE vfunc_24(UNK_TYPE) override;
+ /* 0x28 */ virtual bool vfunc_28(void) override;
+ /* 0x2C */ virtual void vfunc_2C(void) override;
+ /* 0x30 */ virtual void vfunc_30(void) override;
+ /* 0x34 */ virtual unk32 vfunc_34(unk32 param_2) override;
+ /* 0x38 */ virtual bool vfunc_38(void) override;
+ /* 0x3C */ virtual void vfunc_3C(unk32 param_2) override;
+ /* 0x40 */ virtual void vfunc_40(unk32 param_2, unk32 param_3) override;
+ /* 0x44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY) override;
+ /* 0x48 */ virtual void vfunc_48(void) override;
+ /* 0x4C */ virtual void vfunc_4C(void) override; // func_02039a3c?
+ /* 0x50 */ virtual void vfunc_50(EntryINF1* param_2, u32 param_3, s16* param_4, unk32 param_5) override;
+ /* 0x54 */ virtual void vfunc_54(void) override;
+ /* 0x58 */ virtual void vfunc_58(void) override;
+ /* 0x5C */ virtual void vfunc_5C(void) override;
+ /* 0x60 */ virtual void vfunc_60(func_0203b410_param_2* param_2, unk32 param_3, unk32 param_4) override;
+ /* 0x64 */ virtual void vfunc_64(unk32 param_2) override;
+ /* 0x68 */ virtual unk32 vfunc_68(unk32 param_2) override;
+ /* 0x6C */ virtual void vfunc_6C(unk32* param_2, unk32* param_3) override;
+ /* 0x70 */ virtual void vfunc_70(unk32* param_2, unk32* param_3) override;
+ /* 0x74 */
+
+ static void func_020387e0(u8* param_2);
+
+ unk32 func_02032fb4(void);
+ unk32 func_020337d8(unk32 param_2);
+ u16* func_02037604(u16**);
+ void func_02038b28(void);
+ void func_02038b40(void);
+ void func_02039208(unk32 param_2);
+ unk32 func_02038d10(void);
+ void func_02038d20(void);
+ void func_02038f44(EntryINF1* param_2, u32 param_3, s16* param_4, unk32 param_5, unk32 param_6);
+ unk32 func_0203905c(unk8 param_2, UnkStruct_0203b264* param_3, unk8 param_4, unk32 param_5);
+ void func_020392b4(void);
+ void func_02039398(void);
+ void func_020393a8(unk32 param_2);
+ void func_0203a188(unk32, unk32);
+ unk32 func_0203a3e0(void);
+ unk32 func_0203cb5c(unk8, s16);
+ void func_0203dc10(u8 param_2);
+ void func_0203dc10(u8 param_2, u8 param_3);
+ void func_0203dcfc(unk32 param_2, unk32 param_3, unk32 param_4, unk32 param_5);
+ unk32 func_0203de14(unk32);
+ void func_0203e090(void);
+ void func_0203e0f8(void);
+ void func_0203e1b0(unk32, unk32, unk32);
+ void func_02039440(unk32, unk32);
+
+ // not sure it belongs to this class:
+ void func_02032fcc(unk32, unk32);
+ void func_02033190(unk32 param_2, unk32 param_3, unk32 param_4, unk32 param_5);
+ void func_020331c4(unk32, unk32);
+ unk32 func_02038cf4(void);
+ void func_0203947c(void);
+ unk32 func_0203951c(void);
+ void func_0203cabc(unk32);
+ unk32 func_0203e284(UnkStruct_0203b264*, unk32, unk32);
+ void func_0203e2ac(unk32* param_2);
+ void func_0203fc78(unk32*, unk32*);
+ s16 func_0203d318(s16, s16);
+ void func_02038ef4(unk32, unk32);
+};
+
+// does it host both choices?
+struct UnknownMsgChoiceStruct {
+ /* 0x00 */ UnkStruct_0203b264* unk_00;
+ /* 0x04 */ unk32 unk_04;
+ /* 0x08 */
+};
+
+// astruct_2
+class MsgProc_Type1 : public MsgProc_Main {
+public:
+ /* 0x164 */ MsgProc_Type1* unk_164;
+ /* 0x168 */ UnkSubClass1_UnkownClass1 unk_168;
+ /* 0x1F0 */ UnkSubClass1_UnkownClass1 unk_1F0;
+ /* 0x278 */ UnkSubClass1_UnkownClass1 unk_278;
+ /* 0x300 */ UnkSubClass1_UnkownClass1 unk_300;
+ /* 0x388 */ UnkSubClass1_UnkownClass1 unk_388;
+ /* 0x410 */ UnkSubClass1_unk_410 unk_410;
+ /* 0x414 */ unk32 unk_414;
+ /* 0x418 */ MsgProc_Main* unk_418;
+ /* 0x41C */ unk16 unk_41C;
+ /* 0x41C */ unk16 unk_41E;
+ /* 0x420 */ unk16 unk_420;
+ /* 0x420 */ unk16 unk_422;
+ /* 0x424 */ UnkSubClass1_unk_424 unk_424;
+ /* 0x428 */ UnknownMsgChoiceStruct unk_428[0x20];
+ /* 0x528 */ unk16 unk_528[4]; // number of choices?
+ /* 0x55C */ unk32 unk_530;
+ /* 0x55C */ unk16 unk_534;
+ /* 0x55C */ unk16 unk_536;
+ /* 0x55C */ unk16 unk_538;
+ /* 0x55C */ unk16 unk_53A;
+ /* 0x55C */ unk32 unk_53C;
+ /* 0x55C */ unk32 unk_540;
+ /* 0x55C */ unk8 unk_544;
+ /* 0x55C */ unk8 unk_545;
+ /* 0x55C */ unk8 unk_546;
+ /* 0x55C */ unk8 unk_547;
+ /* 0x55C */ unk16 unk_548;
+ /* 0x55C */ unk16 unk_54A;
+ /* 0x55C */ unk16 unk_54C;
+ /* 0x55C */ unk16 unk_54E;
+ /* 0x55C */ unk32 unk_550;
+ /* 0x55C */ unk32 unk_554;
+ /* 0x55C */ unk8 unk_558;
+ /* 0x55C */ unk8 unk_559;
+ /* 0x55C */ unk8 unk_55A;
+ /* 0x55C */ unk8 unk_55B;
+ /* 0x55C */ unk32 unk_55C;
+ /* 0x560 */ unk32 unk_560;
+ /* 0x564 */ u16 unk_564[4];
+ /* 0x56C */ unk16 unk_56C;
+ /* 0x56E */ unk16 unk_56E;
+ /* 0x570 */ unk16 unk_570;
+ /* 0x572 */ u16 unk_572;
+ /* 0x574 */ s16 unk_574;
+ /* 0x576 */ unk16 unk_576;
+ /* 0x578 */ s16 unk_578;
+ /* 0x57A */ u8 unk_57A;
+ /* 0x57B */ s8 unk_57B;
+ /* 0x57C */ u8 unk_57C;
+ /* 0x57D */ u8 unk_57D;
+ /* 0x57E */ u8 unk_57E;
+ /* 0x57F */ u8 unk_57F;
+ /* 0x580 */ u8 unk_580;
+ /* 0x581 */ u8 unk_581;
+ /* 0x582 */ u8 unk_582;
+ /* 0x583 */ u8 unk_583;
+ /* 0x584 */ u8 unk_584;
+ /* 0x585 */ u8 unk_585;
+ /* 0x586 */ u8 unk_586;
+ /* 0x586 */ u8 unk_587;
+ /* 0x588 */ UnkSubClass1_unk_124 unk_588;
+ /* 0x5B4 */
+
+ MsgProc_Type1();
+ MsgProc_Type1(unk32 param_2, unk16 param_3, unk32 param_4);
+ //! TODO: remove the function declarations that are not overridden
+ /* 0x00 */ virtual ~MsgProc_Type1() override;
+ /* 0x08 */ virtual void vfunc_08(unk32* param_2, unk32* param_3) override;
+ /* 0x0C */ virtual void vfunc_0C(u8 param_2, u8 param_3, u8 param_4, unk32 param_5) override;
+ /* 0x10 */ virtual void vfunc_10(u8 param_2, u8 param_3) override; // func_0203e060?
+ /* 0x14 */ virtual bool vfunc_14(unk32 param_2, unk32 param_3) override;
+ /* 0x18 */ virtual unk32 vfunc_18(UnkStruct_0203b264* param_2, unk32 param_3, unk32 param_4) override;
+ /* 0x1C */ virtual unk32 vfunc_1C(unk8 param_2, UnkStruct_0203b264* param_3, unk8 param_4, unk32 param_5) override;
+ /* 0x20 */ virtual UNK_TYPE vfunc_20(UNK_TYPE) override;
+ /* 0x24 */ virtual UNK_TYPE vfunc_24(UNK_TYPE) override;
+ /* 0x28 */ virtual bool vfunc_28(void) override;
+ /* 0x2C */ virtual void vfunc_2C(void) override;
+ /* 0x30 */ virtual void vfunc_30(void) override;
+ /* 0x34 */ virtual unk32 vfunc_34(unk32 param_2) override;
+ /* 0x38 */ virtual bool vfunc_38(void) override;
+ /* 0x3C */ virtual void vfunc_3C(unk32 param_2) override;
+ /* 0x40 */ virtual void vfunc_40(unk32 param_2, unk32 param_3) override;
+ /* 0x44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY) override;
+ /* 0x48 */ virtual void vfunc_48(void) override;
+ /* 0x4C */ virtual void vfunc_4C(void) override; // func_02039a3c?
+ /* 0x50 */ virtual void vfunc_50(EntryINF1* param_2, u32 param_3, s16* param_4, unk32 param_5) override;
+ /* 0x54 */ virtual void vfunc_54(void) override;
+ /* 0x58 */ virtual void vfunc_58(void) override;
+ /* 0x5C */ virtual void vfunc_5C(void) override;
+ /* 0x60 */ virtual void vfunc_60(func_0203b410_param_2* param_2, unk32 param_3, unk32 param_4) override;
+ /* 0x64 */ virtual void vfunc_64(unk32 param_2) override;
+ /* 0x68 */ virtual unk32 vfunc_68(unk32 param_2) override;
+ /* 0x6C */ virtual void vfunc_6C(unk32* param_2, unk32* param_3) override;
+ /* 0x70 */ virtual void vfunc_70(unk32* param_2, unk32* param_3) override;
+ /* 0x74 */
+
+ static bool func_0203c25c(class MsgProc_Type1* param_1);
+
+ void func_0203e060(u8 param_2, u8 param_3);
+ void func_02039a3c(void);
+
+ unk32 func_02038b78(void);
+ unk32 func_02039250(void);
+ void func_02039ca8(void);
+ void func_0203a188(unk32 param_2, unk32 param_3, unk32 param_4);
+ bool func_0203a2c0(void);
+ unk32 func_0203a30c(void);
+ void func_0203a35c(void);
+ bool func_0203a3e0(void);
+ bool func_0203a6d0(unk32 param_2, unk32 param_3);
+ bool func_0203b0bc(void);
+ unk32 func_0203b0ec(unk32 param_2);
+ void func_0203b764(void);
+ void func_0203bd8c(u16 param_2);
+ void func_0203be08(void);
+ void func_0203be64(void);
+ unk32 func_0203c084(void);
+ bool func_0203c13c(void);
+ unk32 func_0203c1a0(void);
+
+ unk32 func_02038cb8(unk32 param_2);
+};
+
+class MsgProc_Type3 : public MsgProc_Main {
+public:
+ /* 0x164 */ unk16 unk_164;
+ /* 0x166 */ unk16 unk_166;
+ /* 0x168 */ unk16 unk_168;
+ /* 0x16A */ unk16 unk_16A;
+ /* 0x16C */ unk16 unk_16C;
+ /* 0x16E */ unk16 unk_16E;
+ /* 0x170 */ unk16 unk_170;
+ /* 0x172 */ unk16 unk_172;
+ /* 0x174 */ unk16 unk_174;
+ /* 0x178 */ unk32 unk_178;
+ /* 0x17C */ unk32 unk_17C;
+ /* 0x180 */ UnkClass_func_ov000_020d0644 unk_180[4];
+ /* 0x1C0 */
+
+ MsgProc_Type3();
+ MsgProc_Type3(unk32 param_2, unk16 param_3, unk32 param_4);
+ //! TODO: remove the function declarations that are not overridden
+ /* 0x00 */ virtual ~MsgProc_Type3();
+ /* 0x08 */ virtual void vfunc_08(unk32* param_2, unk32* param_3) override;
+ /* 0x0C */ virtual void vfunc_0C(u8 param_2, u8 param_3, u8 param_4, unk32 param_5) override;
+ /* 0x10 */ virtual void vfunc_10(u8 param_2, u8 param_3) override; // func_0203e060?
+ /* 0x14 */ virtual bool vfunc_14(unk32 param_2, unk32 param_3) override;
+ /* 0x18 */ virtual unk32 vfunc_18(UnkStruct_0203b264* param_2, unk32 param_3, unk32 param_4) override;
+ /* 0x1C */ virtual unk32 vfunc_1C(unk8 param_2, UnkStruct_0203b264* param_3, unk8 param_4, unk32 param_5) override;
+ /* 0x20 */ virtual UNK_TYPE vfunc_20(UNK_TYPE) override;
+ /* 0x24 */ virtual UNK_TYPE vfunc_24(UNK_TYPE) override;
+ /* 0x28 */ virtual bool vfunc_28(void) override;
+ /* 0x2C */ virtual void vfunc_2C(void) override;
+ /* 0x30 */ virtual void vfunc_30(void) override;
+ /* 0x34 */ virtual unk32 vfunc_34(unk32 param_2) override;
+ /* 0x38 */ virtual bool vfunc_38(void) override;
+ /* 0x3C */ virtual void vfunc_3C(unk32 param_2) override;
+ /* 0x40 */ virtual void vfunc_40(unk32 param_2, unk32 param_3) override;
+ /* 0x44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY) override;
+ /* 0x48 */ virtual void vfunc_48(void) override;
+ /* 0x4C */ virtual void vfunc_4C(void) override; // func_02039a3c?
+ /* 0x50 */ virtual void vfunc_50(EntryINF1* param_2, u32 param_3, s16* param_4, unk32 param_5) override;
+ /* 0x54 */ virtual void vfunc_54(void) override;
+ /* 0x58 */ virtual void vfunc_58(void) override;
+ /* 0x5C */ virtual void vfunc_5C(void) override;
+ /* 0x60 */ virtual void vfunc_60(func_0203b410_param_2* param_2, unk32 param_3, unk32 param_4) override;
+ /* 0x64 */ virtual void vfunc_64(unk32 param_2) override;
+ /* 0x68 */ virtual unk32 vfunc_68(unk32 param_2) override;
+ /* 0x6C */ virtual void vfunc_6C(unk32* param_2, unk32* param_3) override;
+ /* 0x70 */ virtual void vfunc_70(unk32* param_2, unk32* param_3) override;
+ /* 0x74 */
+
+ static void func_0203c83c(void);
+};
+
+class MsgProc_Type2 : public MsgProc_Main {
+public:
+ /* 0x164 */ unk16 unk_164;
+ /* 0x164 */ unk16 unk_166;
+ /* 0x164 */ unk16 unk_168;
+ /* 0x164 */ unk16 unk_16A;
+ /* 0x164 */ unk16 unk_16C;
+ /* 0x164 */ unk16 unk_16E;
+ /* 0x170 */
+
+ MsgProc_Type2();
+ MsgProc_Type2(unk32 param_2, unk16 param_3, unk32 param_4);
+ //! TODO: remove the function declarations that are not overridden
+ /* 0x00 */ virtual ~MsgProc_Type2();
+ /* 0x08 */ /* func_02039228 */ virtual void vfunc_08(unk32* param_2, unk32* param_3) override;
+ /* 0x0C */ /* func_02039578 */ virtual void vfunc_0C(u8 param_2, u8 param_3, u8 param_4, unk32 param_5) override;
+ /* 0x10 */ /* func_0203e060 */ virtual void vfunc_10(u8 param_2, u8 param_3) override; // func_0203e060?
+ /* 0x14 */ /* func_0203c5c4 */ virtual bool vfunc_14(unk32 param_2, unk32 param_3) override;
+ /* 0x18 */ /* func_0203e284 */ virtual unk32 vfunc_18(UnkStruct_0203b264* param_2, unk32 param_3, unk32 param_4) override;
+ /* 0x1C */ /* func_0203905c */ virtual unk32 vfunc_1C(unk8 param_2, UnkStruct_0203b264* param_3, unk8 param_4, unk32 param_5) override;
+ /* 0x20 */ /* func_020390a4 */ virtual UNK_TYPE vfunc_20(UNK_TYPE) override;
+ /* 0x24 */ /* astruct_8::vfunc_24 */ virtual UNK_TYPE vfunc_24(UNK_TYPE) override;
+ /* 0x28 */ /* func_0203e0c8 */ virtual bool vfunc_28(void) override;
+ /* 0x2C */ /* func_02038d20 */ virtual void vfunc_2C(void) override;
+ /* 0x30 */ /* func_02038ed0 */ virtual void vfunc_30(void) override;
+ /* 0x34 */ /* func_02038c34 */ virtual unk32 vfunc_34(unk32 param_2) override;
+ /* 0x38 */ /* func_02039570 */ virtual bool vfunc_38(void) override;
+ /* 0x3C */ /* func_0203c414 */ virtual void vfunc_3C(unk32 param_2) override;
+ /* 0x40 */ /* func_0203c460 */ virtual void vfunc_40(unk32 param_2, unk32 param_3) override;
+ /* 0x44 */ /* func_02038f40 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY) override;
+ /* 0x48 */ /* func_02038b74 */ virtual void vfunc_48(void) override;
+ /* 0x4C */ /* func_0203c39c */ virtual void vfunc_4C(void) override; // func_02039a3c?
+ /* 0x50 */ /* func_02038f44 */ virtual void vfunc_50(EntryINF1* param_2, u32 param_3, s16* param_4, unk32 param_5) override;
+ /* 0x54 */ /* func_020392b4 */ virtual void vfunc_54(void) override;
+ /* 0x58 */ /* func_02039398 */ virtual void vfunc_58(void) override;
+ /* 0x5C */ /* func_02039058 */ virtual void vfunc_5C(void) override;
+ /* 0x60 */ /* func_020393a4 */ virtual void vfunc_60(func_0203b410_param_2* param_2, unk32 param_3, unk32 param_4) override;
+ /* 0x64 */ /* func_020393a8 */ virtual void vfunc_64(unk32 param_2) override;
+ /* 0x68 */ /* func_020393d0 */ virtual unk32 vfunc_68(unk32 param_2) override;
+ /* 0x6C */ /* func_0203947c */ virtual void vfunc_6C(unk32* param_2, unk32* param_3) override;
+ /* 0x70 */ /* func_020394d8 */ virtual void vfunc_70(unk32* param_2, unk32* param_3) override;
+ /* 0x74 */
+
+ //! TODO: vfunc_4C?
+ void func_0203c39c(unk32 param_2, unk32 param_3);
+
+ void func_0203c4ac(unk32, unk32);
+};
+
+// TEMPORARY
+
+extern "C" u32 func_01ff9b4c(unk32, unk32);
+extern "C" unk32 func_0203c084(void);
+extern "C" void func_ov018_02169634(MsgProc_Type1*);
+extern "C" unk32 func_ov000_02079e04(void);
+extern "C" unk32 func_02016fcc(unk32);
+extern "C" void func_02032304(unk32*, char*, unk32, unk32, unk32);
+extern "C" unk32 func_0202d5b4(char*, char*, unk32, unk32, unk32);
+extern unk32 data_020691a0;
+extern unk32* data_02068894;
+extern unk32 data_02056af0;
+extern unk32* data_02056a00;
+extern char* data_02057f08; // "MSP"
+extern char* data_02057eec; // "Menu/UI_main/opening.bin"
+extern char* data_02057ed8; // "MSP:opening.nclr"
+
+struct Struct_027e0db0 {
+ /* 0x00 */ unk32 unk_00;
+ /* 0x04 */ unk32 unk_04;
+};
+extern Struct_027e0db0 data_027e0db0;
+
+// see Actor.cpp
+struct UnkStruct2 {
+ /* 0 */ u32 mUnk_0;
+ /* 4 */ u32 mUnk_4;
+ /* 8 */
+};
+extern UnkStruct2 data_027e077c;
+extern u8 data_02056be4[];
+extern u8 data_027e0618[];
+
+class UnkClass_027e0cbc {
+public:
+ unk32 func_0203d7e0(unk32);
+ unk32 func_0203d77c(unk32, s32, s32);
+};
+extern UnkClass_027e0cbc data_027e0cbc;
+extern unk16 data_02056a10[];
+extern unk16 data_02056a16[];
+extern unk32 data_02056a04[];
+extern unk32 data_027e0c38[];
+extern "C" void func_0203489c(unk32, unk16, unk32*, unk32*);
+extern "C" void func_020347b0(unk32, unk16, unk32*, unk32*, unk32, unk32);
+extern THUMB unk32 func_0202ab48(void);
+extern "C" void func_02034984(unk32, u8, unk32, unk32);
+extern "C" void func_02034698(unk32, unk32, unk32*, unk32*);
+extern struct TouchControl data_027e0d78;
+
+class UnkClass_027e0e28 {
+public:
+ unk32 func_ov000_0207bc48();
+};
+extern UnkClass_027e0e28* data_027e0e28;
+extern u8 data_027e0c54;
+extern unk32* data_ov009_0211f5b4;
+extern "C" unk32 func_ov003_020f3f94(unk32*);
+extern unk32* data_02057ed4;
+
+// see Actor.cpp
+typedef struct UnkStruct_01ffbe34 {
+ /* 00 */ unk32 mUnk_00;
+ /* 04 */ unk32 mUnk_04;
+ /* 08 */ unk8 mUnk_08;
+ /* 09 */ unk8 mUnk_09;
+ /* 0a */ unk8 mUnk_0a;
+ /* 0b */ unk8 mUnk_0b;
+ /* 0c */ unk32 mUnk_0c;
+ /* 10 */ unk32 mUnk_10;
+ /* 14 */ unk8 mUnk_14;
+ /* 15 */ unk8 mUnk_15;
+ /* 16 */ unk16 mUnk_16;
+ /* 18 */ unk32 mUnk_18;
+ /* 1c */ unk32 mUnk_1c;
+ /* 20 */
+} UnkStruct_01ffbe34;
+extern "C" void func_01ffbe34(UnkStruct_01ffbe34 *param1);
+
+struct UnkClass_027e1054_unk_00_unk00 {
+ /* 0x00 */ u8 unk_00[0x95];
+ /* 0x95 */ u8 unk_95;
+};
+struct UnkClass_027e1054_unk_00 {
+ /* 0x00 */ unk32 unk_04;
+ /* 0x00 */ UnkClass_027e1054_unk_00_unk00* unk_00;
+};
+class UnkClass_027e1054 {
+public:
+ UnkClass_027e1054_unk_00* unk_00;
+ unk32 unk_04;
+
+ void func_ov003_020f4874(void);
+ void func_ov003_020f4760(u8, unk32);
+};
+extern UnkClass_027e1054 data_027e1054;
+
+class UnkClass_ov000_020eec9c {
+public:
+ void func_ov000_020d77e4(unk32);
+ unk32 func_ov000_020d7f18(unk32);
+};
+extern UnkClass_ov000_020eec9c data_ov000_020eec9c;
+
+class UnkClass_ov000_027e0d04 {
+public:
+ /* 0x00 */ unk16 unk_00;
+
+ void func_0203fe60(unk32);
+};
+extern UnkClass_ov000_027e0d04 data_027e0d04;
+
+class UnkClass_data_027e0f7c {
+public:
+ u8* func_ov000_0209d90c(s8, s8);
+};
+extern UnkClass_data_027e0f7c data_027e0f7c;