From 59203c7bb91e49010d576b6fac85cdff081773a7 Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Thu, 30 Jan 2025 17:54:54 +0100 Subject: better splits and fixed us syms --- include/Message/MsgProc.hpp | 837 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 837 insertions(+) create mode 100644 include/Message/MsgProc.hpp (limited to 'include/Message/MsgProc.hpp') 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; -- cgit v1.2.3