more ctor/dtor progress

This commit is contained in:
Yanis002
2025-01-28 18:47:44 +01:00
parent 2c350df3b4
commit d4e8b81dde
10 changed files with 286 additions and 140 deletions
+3 -3
View File
@@ -19,13 +19,13 @@ src/Main/Message/BmgRelatedFunctions.cpp:
.text start:0x0202d3bc end:0x0202d56c
src/Main/Message/func_02032f0c.cpp:
.text start:0x02032f0c end:0x0203643c
.text start:0x02032e7c end:0x0203643c
src/Main/Message/MessageManager.cpp:
.text start:0x0203643c end:0x020371b0
.text start:0x0203643c end:0x020371b4
src/Main/Message/BMG.cpp:
.text start:0x020371b0 end:0x0203744c
.text start:0x020371b4 end:0x0203744c
.data start:0x02057b78 end:0x02057cb8
.rodata start:0x02056958 end:0x020569e0
+26 -26
View File
@@ -1422,7 +1422,7 @@ func_0202dc38 kind:function(arm,size=0xc4) addr:0x202dc38
func_0202dcfc kind:function(arm,size=0x140) addr:0x202dcfc
func_0202de3c kind:function(arm,size=0x1f4) addr:0x202de3c
func_0202e030 kind:function(arm,size=0x170) addr:0x202e030
func_0202e1a0 kind:function(arm,size=0x24) addr:0x202e1a0
_ZN30UnkSubClass1_UnkownClass1_Sub1C1Ev kind:function(arm,size=0x24) addr:0x202e1a0
func_0202e1c4 kind:function(arm,size=0x24) addr:0x202e1c4
func_0202e1e8 kind:function(arm,size=0x128) addr:0x202e1e8
func_0202e310 kind:function(arm,size=0x234) addr:0x202e310
@@ -1645,8 +1645,8 @@ func_02032d40 kind:function(thumb,size=0x28) addr:0x2032d40
func_02032d68 kind:function(arm,size=0xdc) addr:0x2032d68
func_02032e44 kind:function(arm,size=0x1c) addr:0x2032e44
func_02032e60 kind:function(arm,size=0x1c) addr:0x2032e60
func_02032e7c kind:function(arm,size=0x48) addr:0x2032e7c
func_02032ec4 kind:function(arm,size=0x48) addr:0x2032ec4
_ZN31UnkSubClass1_UnkownClass2_Base1C2Ev kind:function(arm,size=0x48) addr:0x2032e7c
_ZN31UnkSubClass1_UnkownClass2_Base1C1Ev kind:function(arm,size=0x48) addr:0x2032ec4
_ZN38UnkStruct_027E0C68_UnkSubClass1_Base_1C2Ev kind:function(thumb,size=0x78) addr:0x2032f0c
func_02032f84 kind:function(thumb,size=0x4) addr:0x2032f84
func_02032f88 kind:function(thumb,size=0xc) addr:0x2032f88
@@ -1732,10 +1732,10 @@ func_02034fac kind:function(arm,size=0x14) addr:0x2034fac
func_02034fc0 kind:function(arm,size=0x14) addr:0x2034fc0
func_02034fd4 kind:function(arm,size=0x38) addr:0x2034fd4
func_0203500c kind:function(arm,size=0x10) addr:0x203500c
func_0203501c kind:function(arm,size=0x48) addr:0x203501c
_ZN25UnkSubClass1_UnkownClass1C2Ev kind:function(arm,size=0x48) addr:0x203501c
_ZN25UnkSubClass1_UnkownClass1C1Ev kind:function(arm,size=0x48) addr:0x2035064
func_020350ac kind:function(arm,size=0x4) addr:0x20350ac
func_020350b0 kind:function(arm,size=0x4) addr:0x20350b0
_ZN25UnkSubClass1_UnkownClass1D1Ev kind:function(arm,size=0x4) addr:0x20350ac
_ZN25UnkSubClass1_UnkownClass1D2Ev kind:function(arm,size=0x4) addr:0x20350b0
func_020350b4 kind:function(arm,size=0xb8) addr:0x20350b4
func_0203516c kind:function(arm,size=0x3c) addr:0x203516c
func_020351a8 kind:function(arm,size=0x8) addr:0x20351a8
@@ -1792,7 +1792,7 @@ func_020363c8 kind:function(arm,size=0x74) addr:0x20363c8
_ZN18UnkStruct_027E0C6813func_0203643cEPiPS_j kind:function(arm,size=0x54) addr:0x203643c
_ZN18UnkStruct_027E0C6813func_02036490Eiii kind:function(thumb,size=0x1cc) addr:0x2036490
_ZN18UnkStruct_027E0C6813func_0203665cEv kind:function(thumb,size=0x4c) addr:0x203665c
_ZN18UnkStruct_027E0C68D2Ev kind:function(arm,size=0x1c) addr:0x20366a8
func_020366a8 kind:function(arm,size=0x1c) addr:0x20366a8
_ZN18UnkStruct_027E0C6813func_020366c4Ev kind:function(arm,size=0x3c) addr:0x20366c4
_ZN18UnkStruct_027E0C6813func_02036700Ev kind:function(arm,size=0x3c) addr:0x2036700
_ZN18UnkStruct_027E0C6813func_0203673cEv kind:function(arm,size=0x34) addr:0x203673c
@@ -1804,14 +1804,14 @@ _ZN18UnkStruct_027E0C6813func_02036808Ev kind:function(arm,size=0x1c) addr:0x203
_ZN18UnkStruct_027E0C6813func_02036824Ev kind:function(arm,size=0x2c) addr:0x2036824
_ZN18UnkStruct_027E0C6813func_02036850Ev kind:function(arm,size=0x38) addr:0x2036850
_ZN18UnkStruct_027E0C6813func_02036888EP31UnkStruct_027E0C68_UnkSubClass2 kind:function(arm,size=0x6c) addr:0x2036888
_ZN18UnkStruct_027E0C6813func_020368f4EP31UnkStruct_027E0C68_UnkSubClass3 kind:function(arm,size=0x18) addr:0x20368f4
_ZN18UnkStruct_027E0C6813func_020368f4EP37UnkStruct_027E0C68_UnkSubClass2_Base1 kind:function(arm,size=0x18) addr:0x20368f4
_ZN18UnkStruct_027E0C6813func_0203690cEiii kind:function(arm,size=0x2b0) addr:0x203690c
_ZN18UnkStruct_027E0C6813func_02036bbcEv kind:function(arm,size=0x94) addr:0x2036bbc
_ZN18UnkStruct_027E0C6813func_02036c50Ei kind:function(arm,size=0x54) addr:0x2036c50
_ZN18UnkStruct_027E0C6813func_02036ca4Ei kind:function(arm,size=0x40) addr:0x2036ca4
_ZN18UnkStruct_027E0C6813func_02036ce4EP31UnkStruct_027E0C68_UnkSubClass2i kind:function(arm,size=0x4c) addr:0x2036ce4
_ZN18UnkStruct_027E0C6813func_02036d30EP31UnkStruct_027E0C68_UnkSubClass3 kind:function(arm,size=0x1c) addr:0x2036d30
_ZN18UnkStruct_027E0C6813func_02036d4cEP31UnkStruct_027E0C68_UnkSubClass3 kind:function(arm,size=0x20) addr:0x2036d4c
_ZN18UnkStruct_027E0C6813func_02036d30EP37UnkStruct_027E0C68_UnkSubClass2_Base1 kind:function(arm,size=0x1c) addr:0x2036d30
_ZN18UnkStruct_027E0C6813func_02036d4cEP37UnkStruct_027E0C68_UnkSubClass2_Base1 kind:function(arm,size=0x20) addr:0x2036d4c
_ZN18UnkStruct_027E0C6813func_02036d6cEv kind:function(arm,size=0x3c) addr:0x2036d6c
_ZN18UnkStruct_027E0C6813func_02036da8EjPs kind:function(arm,size=0x134) addr:0x2036da8
_ZN18UnkStruct_027E0C6813func_02036edcEjh kind:function(arm,size=0x8c) addr:0x2036edc
@@ -1820,7 +1820,7 @@ _ZN18UnkStruct_027E0C6813func_020370d0Eii kind:function(arm,size=0x18) addr:0x20
_ZN18UnkStruct_027E0C6813func_020370e8Eissi kind:function(arm,size=0x70) addr:0x20370e8
_ZN18UnkStruct_027E0C6813func_02037158EP21UnkSubClass1_02256FF8 kind:function(arm,size=0x20) addr:0x2037158
_ZN18UnkStruct_027E0C6813func_02037178EP21UnkSubClass1_02256FF8 kind:function(arm,size=0x38) addr:0x2037178
_Z13func_020371b0v kind:function(arm,size=0x4) addr:0x20371b0
_ZN18UnkStruct_027E0C68D2Ev kind:function(arm,size=0x4) addr:0x20371b0
_Z13func_020371b4P11BMGFileInfo kind:function(thumb,size=0x14) addr:0x20371b4
_Z13func_020371c8P11BMGFileInfoPjs kind:function(thumb,size=0x90) addr:0x20371c8
_Z13func_02037258P11BMGFileInfoi kind:function(arm,size=0x34) addr:0x2037258
@@ -1839,10 +1839,10 @@ func_02037604 kind:function(arm,size=0x24) addr:0x2037604
func_02037628 kind:function(arm,size=0x98) addr:0x2037628
func_020376c0 kind:function(arm,size=0x64) addr:0x20376c0
func_02037724 kind:function(arm,size=0x2c) addr:0x2037724
func_02037750 kind:function(arm,size=0x44) addr:0x2037750
func_02037794 kind:function(arm,size=0x38) addr:0x2037794
func_020377cc kind:function(arm,size=0x40) addr:0x20377cc
func_0203780c kind:function(arm,size=0x38) addr:0x203780c
_ZN37UnkStruct_027E0C68_UnkSubClass2_Base1C2Eii kind:function(arm,size=0x44) addr:0x2037750
_ZN37UnkStruct_027E0C68_UnkSubClass2_Base1D1Ev kind:function(arm,size=0x38) addr:0x2037794
_ZN37UnkStruct_027E0C68_UnkSubClass2_Base1D0Ev kind:function(arm,size=0x40) addr:0x20377cc
_ZN37UnkStruct_027E0C68_UnkSubClass2_Base1D2Ev kind:function(arm,size=0x38) addr:0x203780c
func_02037844 kind:function(arm,size=0x10) addr:0x2037844
func_02037854 kind:function(arm,size=0xc4) addr:0x2037854
func_02037918 kind:function(arm,size=0x234) addr:0x2037918
@@ -1856,26 +1856,26 @@ func_020386b4 kind:function(arm,size=0x4) addr:0x20386b4
func_020386b8 kind:function(arm,size=0xc) addr:0x20386b8
func_020386c4 kind:function(arm,size=0x8) addr:0x20386c4
func_020386cc kind:function(arm,size=0xc) addr:0x20386cc
func_020386d8 kind:function(arm,size=0x40) addr:0x20386d8
_ZN31UnkStruct_027E0C68_UnkSubClass2C2Ev kind:function(arm,size=0x40) addr:0x20386d8
_ZN31UnkStruct_027E0C68_UnkSubClass2C1Ev kind:function(arm,size=0x40) addr:0x2038718
func_02038758 kind:function(arm,size=0x18) addr:0x2038758
func_02038770 kind:function(arm,size=0x1c) addr:0x2038770
func_0203878c kind:function(arm,size=0x18) addr:0x203878c
func_020387a4 kind:function(arm,size=0x28) addr:0x20387a4
func_020387cc kind:function(arm,size=0x14) addr:0x20387cc
_ZN31UnkStruct_027E0C68_UnkSubClass2D2Ev kind:function(arm,size=0x14) addr:0x20387cc
func_020387e0 kind:function(thumb,size=0xc) addr:0x20387e0
func_020387ec kind:function(arm,size=0x18) addr:0x20387ec
func_02038804 kind:function(arm,size=0x18) addr:0x2038804
func_0203881c kind:function(arm,size=0x3c) addr:0x203881c
_ZN25UnkSubClass1_UnkownClass2C1Ev kind:function(arm,size=0x3c) addr:0x203881c
func_02038858 kind:function(arm,size=0x30) addr:0x2038858
func_02038888 kind:function(arm,size=0xc8) addr:0x2038888
func_02038950 kind:function(arm,size=0x130) addr:0x2038950
func_02038a80 kind:function(arm,size=0x1c) addr:0x2038a80
func_02038a9c kind:function(thumb,size=0x4) addr:0x2038a9c
_ZN36UnkStruct_027E0C68_UnkSubClass1_BaseC1Eic kind:function(thumb,size=0x5c) addr:0x2038aa0
func_02038afc kind:function(thumb,size=0xc) addr:0x2038afc
func_02038b08 kind:function(thumb,size=0x14) addr:0x2038b08
func_02038b1c kind:function(thumb,size=0xc) addr:0x2038b1c
_ZN36UnkStruct_027E0C68_UnkSubClass1_BaseC1Eisi kind:function(thumb,size=0x5c) addr:0x2038aa0
_ZN36UnkStruct_027E0C68_UnkSubClass1_BaseD1Ev kind:function(thumb,size=0xc) addr:0x2038afc
_ZN36UnkStruct_027E0C68_UnkSubClass1_BaseD0Ev kind:function(thumb,size=0x14) addr:0x2038b08
_ZN36UnkStruct_027E0C68_UnkSubClass1_BaseD2Ev kind:function(thumb,size=0xc) addr:0x2038b1c
func_02038b28 kind:function(thumb,size=0xc) addr:0x2038b28
func_02038b34 kind:function(arm,size=0xc) addr:0x2038b34
_Z13func_02038b40P31UnkStruct_027E0C68_UnkSubClass1_Sub1 kind:function(arm,size=0x34) addr:0x2038b40
@@ -2024,10 +2024,10 @@ func_0203d848 kind:function(arm,size=0x8c) addr:0x203d848
func_0203d8d4 kind:function(arm,size=0x8c) addr:0x203d8d4
func_0203d960 kind:function(arm,size=0xc0) addr:0x203d960
func_0203da20 kind:function(arm,size=0xc0) addr:0x203da20
_ZN38UnkStruct_027E0C68_UnkSubClass1_Base_0C2Ecii kind:function(thumb,size=0x98) addr:0x203dae0
func_0203db78 kind:function(thumb,size=0x30) addr:0x203db78
func_0203dba8 kind:function(thumb,size=0x38) addr:0x203dba8
func_0203dbe0 kind:function(thumb,size=0x30) addr:0x203dbe0
_ZN38UnkStruct_027E0C68_UnkSubClass1_Base_0C2Eiii kind:function(thumb,size=0x98) addr:0x203dae0
_ZN38UnkStruct_027E0C68_UnkSubClass1_Base_0D1Ev kind:function(thumb,size=0x30) addr:0x203db78
_ZN38UnkStruct_027E0C68_UnkSubClass1_Base_0D0Ev kind:function(thumb,size=0x38) addr:0x203dba8
_ZN38UnkStruct_027E0C68_UnkSubClass1_Base_0D2Ev kind:function(thumb,size=0x30) addr:0x203dbe0
func_0203dc10 kind:function(arm,size=0x64) addr:0x203dc10
func_0203dc74 kind:function(arm,size=0x40) addr:0x203dc74
_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub18vfunc_14Eii kind:function(arm,size=0x48) addr:0x203dcb4
+47 -38
View File
@@ -6,19 +6,53 @@
#include "System/SysNew.hpp"
#include "Message/BMG.hpp"
#include "Message/UnkStruct_027E0C68_UnkSubClass1.hpp"
#include "lib/math.h"
class UnkStruct_027E0C68_UnkSubClass2 : public SysObject {
// astruct_14
class UnkStruct_027E0C68_UnkSubClass2_Base1 : public SysObject {
public:
/* 0x00 (vtable) */
/* 0x04 */ unk32 unk_04;
/* 0x08 */ unk32 unk_08;
/* 0x0C */ unk32 unk_0C;
/* 0x10 */ unk32 unk_10;
/* 0x04 */ unk32 unk_04[4];
/* 0x14 */ unk32 unk_14;
/* 0x18 */ u32 unk_18;
/* 0x1C */ unk32 unk_1C;
/* 0x20 */ unk32 unk_20;
/* 0x24 */ unk32 unk_24;
/* 0x1C */ unk8 unk_1C;
/* 0x1D */ u8 unk_1D;
/* 0x1E */ unk16 unk_1E;
/* 0x20 */
UnkStruct_027E0C68_UnkSubClass2_Base1(unk32 param_2, unk32 param_3);
/* 0x00 */ virtual ~UnkStruct_027E0C68_UnkSubClass2_Base1();
/* 0x08 */ virtual void vfunc_08(u32 param_1);
/* 0x0C */ virtual void vfunc_0C(UnkStruct_027E0C68_UnkSubClass1_Sub1* param_2);
/* 0x10 */ virtual void vfunc_10(void);
/* 0x14 */ virtual UNK_TYPE vfunc_14(void);
/* 0x18 */ virtual UNK_TYPE vfunc_18(void);
/* 0x1C */ virtual UNK_TYPE vfunc_1C(void);
/* 0x20 */ virtual UNK_TYPE vfunc_20(void);
/* 0x24 */ virtual UNK_TYPE vfunc_24(void);
/* 0x28 */ virtual UNK_TYPE vfunc_28(void);
/* 0x2C */ virtual UNK_TYPE vfunc_2C(void);
/* 0x30 */ virtual UNK_TYPE vfunc_30(void);
/* 0x34 */
};
class UnkStruct_027E0C68_UnkSubClass2_unk_24 {
public:
/* 0x00 */ unk32 unk_00;
/* 0x04 */
void func_020376c0(Vec3p param_2);
};
// astruct_15
class UnkStruct_027E0C68_UnkSubClass2 : public UnkStruct_027E0C68_UnkSubClass2_Base1 {
public:
/* 0x20 */ unk8 unk_20;
/* 0x21 */ unk8 unk_21;
/* 0x22 */ unk8 unk_22;
/* 0x23 */ unk8 unk_23;
/* 0x24 */ UnkStruct_027E0C68_UnkSubClass2_unk_24 unk_24;
/* 0x28 */ unk32 unk_28;
/* 0x2C */ unk32 unk_2C;
/* 0x30 */ unk32 unk_30;
@@ -45,32 +79,6 @@ public:
/* 0x34 */
};
class UnkStruct_027E0C68_UnkSubClass3 : public SysObject {
public:
/* 0x00 (vtable) */
/* 0x04 */ unk32 unk_04;
/* 0x08 */ unk32 unk_08;
/* 0x0C */ unk32 unk_0C;
/* 0x10 */ unk32 unk_10;
/* 0x14 */ unk32 unk_14;
/* 0x18 */ u32 unk_18;
UnkStruct_027E0C68_UnkSubClass3();
/* 0x00 */ virtual ~UnkStruct_027E0C68_UnkSubClass3() override;
/* 0x08 */ virtual UNK_TYPE vfunc_08(void) override;
/* 0x0C */ virtual UNK_TYPE vfunc_0C(void) override;
/* 0x10 */ virtual void vfunc_10(void) override;
/* 0x14 */ virtual UNK_TYPE vfunc_14(void) override;
/* 0x1C */ virtual UNK_TYPE vfunc_1C(void) override;
/* 0x20 */ virtual UNK_TYPE vfunc_20(void) override;
/* 0x24 */ virtual UNK_TYPE vfunc_24(void) override;
/* 0x28 */ virtual UNK_TYPE vfunc_28(void) override;
/* 0x2C */ virtual UNK_TYPE vfunc_2C(void) override;
/* 0x30 */ virtual UNK_TYPE vfunc_30(void) override;
/* 0x34 */ virtual UNK_TYPE vfunc_34(void) override;
/* 0x38 */ virtual UNK_TYPE vfunc_38(void) override;
};
class UnkStruct_027E0C68 : public SysObject {
public:
/* 0x00 */ unk16 unk_00;
@@ -87,7 +95,7 @@ public:
/* 0x10 */ unk16 unk_12;
/* 0x14 */ BMGGroups* pGroups;
/* 0x18 */ UnkStruct_027E0C68_UnkSubClass2* unk_18[2];
/* 0x20 */ UnkStruct_027E0C68_UnkSubClass3* unk_20[2]; // is it actually UnkStruct_027E0C68_UnkSubClass2?
/* 0x20 */ UnkStruct_027E0C68_UnkSubClass2_Base1* unk_20[2];
/* 0x28 */ UnkStruct_027E0C68_UnkSubClass1_Base* unk_28[6];
/* 0x40 */ UnkStruct_027E0C68_UnkSubClass1_Sub1* unk_40[2]; // is array size 6?
/* 0x48 */
@@ -95,6 +103,7 @@ public:
static void func_0203643c(int *param_1, UnkStruct_027E0C68* param_2, u32 param_3);
void func_02036490(unk32 param_2, unk32 param_3, unk32 param_4);
void func_0203665c(void);
UnkStruct_027E0C68();
~UnkStruct_027E0C68();
UnkStruct_027E0C68_UnkSubClass1_Sub1* func_020366c4(void);
UnkStruct_027E0C68_UnkSubClass1_Sub1* func_02036700(void);
@@ -107,14 +116,14 @@ public:
bool func_02036824(void);
bool func_02036850(void);
void func_02036888(UnkStruct_027E0C68_UnkSubClass2* param_2);
bool func_020368f4(UnkStruct_027E0C68_UnkSubClass3* param_2);
bool func_020368f4(UnkStruct_027E0C68_UnkSubClass2_Base1* param_2);
void func_0203690c(unk32 param_2, unk32 param_3, unk32 param_4);
void func_02036bbc(void);
void func_02036c50(unk32 param_2);
void func_02036ca4(unk32 param_2);
bool func_02036ce4(UnkStruct_027E0C68_UnkSubClass2* param_2, unk32 param_3);
bool func_02036d30(UnkStruct_027E0C68_UnkSubClass3* param_2);
bool func_02036d4c(UnkStruct_027E0C68_UnkSubClass3* param_2);
bool func_02036d30(UnkStruct_027E0C68_UnkSubClass2_Base1* param_2);
bool func_02036d4c(UnkStruct_027E0C68_UnkSubClass2_Base1* param_2);
void func_02036d6c(void);
UnkStruct_027E0C68_UnkSubClass1_Base* func_02036da8(u32 param_2, s16* param_3);
void func_02036edc(u32 param_2, u8 param_3);
@@ -35,14 +35,25 @@ typedef struct UnkSubClass1_unk_154 {
typedef u32 (*UnkCallback1)(void);
typedef struct UnkStruct1 {
/* 0x00 */ UnkCallback1 unk_00;
/* 0x04 */ UnkCallback1 unk_04;
} UnkStruct1; // size = 0x8
// 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 */ UnkStruct1* unk_00;
/* 0x00 (vtable) */
/* 0x04 */ unk16 unk_04;
/* 0x06 */ unk16 unk_06;
/* 0x08 */ u32* unk_08;
@@ -66,29 +77,60 @@ public:
/* 0x50 */ unk32 unk_50;
/* 0x54 */ unk32 unk_54;
/* 0x58 */ unk32 unk_58;
/* 0x5C */ unk32 unk_5C;
/* 0x60 */ unk32 unk_60;
/* 0x64 */ unk32 unk_64;
/* 0x68 */ unk32 unk_68;
/* 0x6C */ unk32 unk_6C;
/* 0x70 */ unk32 unk_70;
/* 0x5C */ UnkSubClass1_UnkownClass1_Sub1 unk_5C;
/* 0x74 */ u32* unk_74;
/* 0x78 */ u32* unk_78;
/* 0x7C */ unk32 unk_7C;
/* 0x80 */ unk32 unk_80;
/* 0x84 */ unk32 unk_84;
/* 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_020350ac(void);
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 */
};
class UnkSubClass1_UnkownClass2 : public UnkSubClass1_UnkownClass2_Base1 {
public:
/* 0x14 */ unk32 unk_14;
/* 0x18 */ unk32 unk_18;
/* 0x1C */ unk32 unk_1C;
/* 0x20 */ unk32 unk_20;
/* 0x24 */ unk32 unk_24;
/* 0x2C */
UnkSubClass1_UnkownClass2();
/* 0x00 */ virtual ~UnkSubClass1_UnkownClass2() override;
/* 0x08 */
};
class UnknownClass2 : public SysObject {
public:
/* 0x00 (vtable) */
@@ -303,10 +345,7 @@ public:
/* 0x123 */ u8 unk_123;
/* 0x124 */
//! TODO: fake?
UnkStruct_027E0C68_UnkSubClass1_Base_0();
UnkStruct_027E0C68_UnkSubClass1_Base_0(unk8 param_2, unk32 param_3, unk32 param_4);
UnkStruct_027E0C68_UnkSubClass1_Base_0(unk32 param_2, unk32 param_3, unk32 param_4);
//! TODO: remove the function declarations that are not overridden
/* 0x00 */ virtual ~UnkStruct_027E0C68_UnkSubClass1_Base_0();
/* 0x08 */ virtual void vfunc_08(unk32* param_2, unk32* param_3) override;
@@ -339,22 +378,11 @@ public:
/* 0x74 */
};
// astruct_6
class UnkStruct_027E0C68_UnkSubClass1_Base : public UnkStruct_027E0C68_UnkSubClass1_Base_0 {
public:
/* 0x124 */ UnkSubClass1_unk_124* unk_124;
/* 0x128 */ UnkStruct1* unk_128;
//! TODO: confirm this is part of this class
/* 0x12C */ u16* unk_12C; // pointer to the current position in the message to display
/* 0x130 */ unk16 unk_130;
/* 0x132 */ unk16 unk_132;
/* 0x134 */ unk32 unk_134;
/* 0x138 */ unk32 unk_138;
/* 0x13C */ unk32 unk_13C;
/* 0x140 */ unk32 unk_140;
/* 0x144 */ unk32 unk_144;
/* 0x148 */ unk32 unk_148;
/* 0x14C */ unk32 unk_14C;
/* 0x128 */ UnkSubClass1_UnkownClass2 unk_128;
/* 0x150 */ u8 unk_150[4];
/* 0x154 */ UnkSubClass1_unk_154* unk_154;
/* 0x158 */ unk16 unk_158;
@@ -371,7 +399,7 @@ public:
//! TODO: fake?
UnkStruct_027E0C68_UnkSubClass1_Base();
UnkStruct_027E0C68_UnkSubClass1_Base(unk32 param_2, unk8 param_3);
UnkStruct_027E0C68_UnkSubClass1_Base(unk32 param_2, unk16 param_3, unk32 param_4);
//! TODO: remove the function declarations that are not overridden
/* 0x00 */ virtual ~UnkStruct_027E0C68_UnkSubClass1_Base();
/* 0x08 */ virtual void vfunc_08(unk32* param_2, unk32* param_3) override;
@@ -403,8 +431,7 @@ public:
/* 0x70 */ virtual void vfunc_70(unk32* param_2, unk32* param_3) override;
/* 0x74 */
static void func_0203881c(UnkStruct1** param_2);
static void func_020387e0(unk8* param_2);
static void func_020387e0(u8* param_2);
unk32 func_02032fa4(void);
unk32 func_02032fb4(void);
@@ -443,7 +470,6 @@ public:
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_02038b1c(void);
void func_0203947c(void);
unk32 func_0203951c(void);
void func_0203cabc(unk32);
@@ -518,7 +544,6 @@ public:
/* 0x588 */ UnkSubClass1_unk_124 unk_588;
/* 0x5B4 */
UnkStruct_027E0C68_UnkSubClass1_Sub1();
//! TODO: remove the function declarations that are not overridden
/* 0x00 */ virtual ~UnkStruct_027E0C68_UnkSubClass1_Sub1() override;
@@ -557,6 +582,7 @@ public:
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);
bool func_0203a3e0(void);
@@ -687,7 +713,7 @@ 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, unk32, unk32, unk32, unk32);
extern "C" void func_02034984(unk32, u8, unk32, unk32);
extern "C" void func_02034698(unk32, unk32, unk32*, unk32*);
extern struct TouchControl data_027e0d78;
-3
View File
@@ -48,9 +48,6 @@ static char* sBMGFileNames[BMG_FILE_INDEX_MAX] = {
"kaitei_F", // BMG_FILE_INDEX_KAITEI_F
};
ARM void func_020371b0(void) {
}
THUMB void func_020371b4(BMGFileInfo* pFileInfo) {
pFileInfo->pHeader = NULL;
pFileInfo->pINF1 = NULL;
+10 -5
View File
@@ -133,7 +133,9 @@ THUMB void UnkStruct_027E0C68::func_0203665c(void) {
}
// non-matching
ARM UnkStruct_027E0C68::~UnkStruct_027E0C68() {}
ARM UnkStruct_027E0C68_UnkSubClass2_Base1::~UnkStruct_027E0C68_UnkSubClass2_Base1() {
}
// non-matching
ARM UnkStruct_027E0C68_UnkSubClass1_Sub1* UnkStruct_027E0C68::func_020366c4(void) {
@@ -232,7 +234,7 @@ ARM void UnkStruct_027E0C68::func_02036888(UnkStruct_027E0C68_UnkSubClass2* para
}
}
ARM bool UnkStruct_027E0C68::func_020368f4(UnkStruct_027E0C68_UnkSubClass3* param_2) {
ARM bool UnkStruct_027E0C68::func_020368f4(UnkStruct_027E0C68_UnkSubClass2_Base1* param_2) {
if (this->unk_20[1] != NULL) {
return false;
}
@@ -398,7 +400,7 @@ ARM bool UnkStruct_027E0C68::func_02036ce4(UnkStruct_027E0C68_UnkSubClass2* para
return false;
}
ARM bool UnkStruct_027E0C68::func_02036d30(UnkStruct_027E0C68_UnkSubClass3* param_2) {
ARM bool UnkStruct_027E0C68::func_02036d30(UnkStruct_027E0C68_UnkSubClass2_Base1* param_2) {
if (this->unk_20[0] != NULL && this->unk_20[0] != param_2) {
return false;
}
@@ -407,7 +409,7 @@ ARM bool UnkStruct_027E0C68::func_02036d30(UnkStruct_027E0C68_UnkSubClass3* para
return true;
}
ARM bool UnkStruct_027E0C68::func_02036d4c(UnkStruct_027E0C68_UnkSubClass3* param_2) {
ARM bool UnkStruct_027E0C68::func_02036d4c(UnkStruct_027E0C68_UnkSubClass2_Base1* param_2) {
if (this->unk_20[0] == param_2) {
this->unk_20[0] = NULL;
return true;
@@ -521,7 +523,7 @@ ARM UnkStruct_027E0C68_UnkSubClass1_Sub1* UnkStruct_027E0C68::func_02036f68(u32
}
//! TODO: fake?
pSVar5->unk_164 = pSVar2;
pSVar5->unk_164 = (UnkStruct_027E0C68_UnkSubClass1_Sub1*)pSVar2;
pSVar5->unk_418 = this->unk_28[5];
pSVar5->vfunc_50(pEVar1, BMG_GET_MSG_ADDR(this->pGroups, param_2), (s16*)param_3, 0);
@@ -585,3 +587,6 @@ ARM UnkStruct_027E0C68_UnkSubClass1_Base* UnkStruct_027E0C68::func_02037178(UnkS
return NULL;
}
ARM UnkStruct_027E0C68::~UnkStruct_027E0C68() {
}
+28
View File
@@ -9,6 +9,20 @@
extern "C" void func_020078f4(unk32, void*, unk32);
extern "C" void func_020078c0(unk32, void*, unk32);
ARM UnkSubClass1_UnkownClass2_Base1::UnkSubClass1_UnkownClass2_Base1() {
this->unk_00 = NULL;
this->unk_08 = 0;
this->unk_0A = 0;
this->unk_0C = 0;
this->unk_0E = 0;
if (func_0202ab48() == 0) {
this->unk_10 = 2;
} else {
this->unk_10 = 3;
}
}
THUMB UnkStruct_027E0C68_UnkSubClass1_Base_1::UnkStruct_027E0C68_UnkSubClass1_Base_1() {
this->unk_04 = 0;
this->unk_08 = 0;
@@ -30,3 +44,17 @@ THUMB UnkStruct_027E0C68_UnkSubClass1_Base_1::UnkStruct_027E0C68_UnkSubClass1_Ba
this->unk_30 = 2;
this->unk_34 = 3;
}
ARM UnkSubClass1_UnkownClass1::UnkSubClass1_UnkownClass1() {
this->unk_74 = NULL;
this->unk_78 = 0;
this->unk_7C = 0;
this->unk_80 = 0;
this->unk_82 = 0;
this->unk_84 = 0;
this->unk_86 = 0;
this->unk_87 = 0;
}
ARM UnkSubClass1_UnkownClass1::~UnkSubClass1_UnkownClass1() {
}
+46 -5
View File
@@ -6,15 +6,56 @@
#include "Player/TouchControl.hpp"
#include "Item/ItemManager.hpp"
THUMB UnkStruct_027E0C68_UnkSubClass1_Base::UnkStruct_027E0C68_UnkSubClass1_Base(unk32 param_2, unk8 param_3) {
this->unk_124 = 0;
this->func_0203881c(&this->unk_128);
ARM UnkStruct_027E0C68_UnkSubClass2_Base1::UnkStruct_027E0C68_UnkSubClass2_Base1(unk32 param_2, unk32 param_3) {
s32 i;
this->unk_14 = param_3;
this->unk_18 = param_2;
this->unk_1C = 0;
this->unk_1D = 0xFF;
this->unk_1E = 0;
for (i = 0; i < ARRAY_LEN(this->unk_04); i++) {
this->unk_04[i] = 0;
}
}
ARM UnkStruct_027E0C68_UnkSubClass2_Base1::~UnkStruct_027E0C68_UnkSubClass2_Base1() {
if (data_027e0c68.unk_20[0] == this) {
data_027e0c68.func_02036d4c(this);
}
}
// non-matching
ARM UnkStruct_027E0C68_UnkSubClass2::UnkStruct_027E0C68_UnkSubClass2() : UnkStruct_027E0C68_UnkSubClass2_Base1(0x1000000, 0) {
this->unk_20 = -1;
this->unk_24.func_020376c0(gVec3p_ZERO);
}
ARM UnkStruct_027E0C68_UnkSubClass2::~UnkStruct_027E0C68_UnkSubClass2() {
}
ARM UnkSubClass1_UnkownClass2::UnkSubClass1_UnkownClass2() {
this->unk_14 = 0x1000;
this->unk_18 = 0;
this->unk_1C = 0;
this->unk_20 = 0;
this->unk_24 = 0;
}
THUMB UnkStruct_027E0C68_UnkSubClass1_Base::UnkStruct_027E0C68_UnkSubClass1_Base(unk32 param_2, unk16 param_3, unk32 param_4)
: UnkStruct_027E0C68_UnkSubClass1_Base_0(param_2, param_3, param_4),
unk_124(0)
{
this->func_020387e0(this->unk_150);
this->unk_154 = 0;
this->unk_15A = 0;
this->unk_15C = 0;
this->unk_15E = 0xff;
this->unk_15F = 0xff;
this->unk_15E = 0xFF;
this->unk_15F = 0xFF;
this->unk_160 = 1;
this->unk_11E = param_3;
}
THUMB UnkStruct_027E0C68_UnkSubClass1_Base::~UnkStruct_027E0C68_UnkSubClass1_Base() {
}
+62 -22
View File
@@ -10,6 +10,9 @@ extern "C" void func_ov000_020d0460(void*);
extern "C" void func_0203efd8(void*, void*);
extern "C" void func_0203ee48(void*);
extern unk16 data_02056a0e[];
extern u8 data_02056a08[];
THUMB UnkStruct_027E0C68_UnkSubClass1_Sub1::UnkStruct_027E0C68_UnkSubClass1_Sub1() : unk_164(NULL) {
u16** ppuVar3;
@@ -101,8 +104,8 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_2C(void) {
}
if (this->unk_15C > 0) {
if ((this->unk_12C == NULL || this->unk_12C[0] == 0) != 0) {
this->unk_424.func_0203ef78(this->unk_130);
if ((this->unk_128.unk_00 == NULL || this->unk_128.unk_00[0] == 0) != 0) {
this->unk_424.func_0203ef78(this->unk_128.unk_08);
}
this->func_0203be64();
@@ -225,7 +228,7 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_40(unk32 param_2, unk32 par
bVar1 = data_027e0c68.unk_28[this->unk_50];
this->vfunc_6C(&local_8c, &local_90);
this->func_0203a188(local_8c + param_2, local_90 + param_3);
this->func_0203a188(local_8c + param_2, local_90 + param_3, 0);
this->func_0203e1b0(param_2 + local_8c + (this->unk_158 - (this->unk_14 << 3) / 2), param_3 + local_90 + (this->unk_15A - (this->unk_18 << 3) / 2), 0);
if (this->unk_584 != 0) {
@@ -259,7 +262,7 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_40(unk32 param_2, unk32 par
iVar5 = this->func_02032fa4();
iVar8 = bVar1->unk_18;
uVar9 = data_02056a04[iVar8];
func_0203489c(uVar9, data_02056a16[iVar8], &local_94, &local_98);
// func_0203489c(uVar9, data_02056a16[iVar8], &local_94, &local_98);
iVar6 = this->unk_158 - local_94;
iVar7 = this->unk_15A - local_98;
@@ -286,7 +289,7 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_40(unk32 param_2, unk32 par
aStack_68.mUnk_0a = 1;
this->unk_1F0.func_02034a1c(local_9c, local_a0, &aStack_68);
} else {
func_02034984(iVar5 != 0 ? 0x11F : 0x18, 0, local_9c, local_a0 + 2, 0);
// func_02034984(iVar5 != 0 ? 0x11F : 0x18, 0, local_9c, local_a0 + 2, 0);
}
}
@@ -304,6 +307,49 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_40(unk32 param_2, unk32 par
}
}
ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203a188(unk32 param_2, unk32 param_3, unk32 param_4) {
unk16 sVar1;
unk16 sVar2;
unk32 iVar3;
unk32 iVar4;
unk32 uVar5;
unk32 iVar6;
unk32 iStack_54;
unk32 iStack_50;
unk32 iStack_4c;
unk32 iStack_48;
UnkStruct_01ffbe34 aStack_44;
unk32 uStack_24;
if (this->unk_15E == 7) {
return;
}
// (short)(ushort)*(byte *)((int)data_027e0c68.unk_28[(this->unk_50 - 0x28) * 0x18];
iVar6 = data_027e0c68.unk_10 + this->unk_50;
// uStack_24 = param_4;
if (data_027e0cbc.func_0203d7e0(data_02056a00[iVar6]) != 0) {
uVar5 = data_02056a04[iVar6];
func_0203489c(uVar5, data_02056a16[iVar6], &iStack_48, &iStack_4c);
iVar3 = iStack_50 + (this->unk_158 - iStack_48);
func_02034698(uVar5, data_02056a0e[iVar6], &iStack_50, &iStack_54);
iVar4 = iStack_54 + (this->unk_15A - iStack_4c);
func_01ffbe34(&aStack_44);
aStack_44.mUnk_0a = 1;
if (this->unk_580 != 0) {
this->unk_168.func_02034a1c(param_2 + iVar3, param_3 + iVar4, &aStack_44);
} else {
func_02034984(uVar5, data_02056a08[iVar6], param_2 + iVar3, param_3 + iVar4);
}
}
}
// non-matching (regalloc)
ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_48(void) {
if (this->unk_164 != NULL && this->unk_164->unk_15C > 0) {
@@ -380,13 +426,13 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_44(s32 touchLastX, s32 touc
//! TODO: fixme
// if (this->unk_164->unk_168.unk_06 <= 0) {
// if ((data_027e0d78.mFlags & 2) != 0) {
// this->unk_13C = 0;
// this->unk_128.unk_14 = 0;
// if (this->func_0203b0bc() != 0) {
// this->func_0203b0ec(1);
// }
// this->unk_1F0.unk_64 = 0;
// this->unk_1F0.unk_5C.unk_08 = 0;
// this->unk_1F0.func_020352d8();
// }
// }
@@ -395,13 +441,13 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_44(s32 touchLastX, s32 touc
case 1:
default:
if ((data_027e0d78.mFlags & 2) != 0) {
this->unk_13C = 0;
this->unk_128.unk_14 = 0;
if (this->func_0203b0bc() != 0) {
this->func_0203b0ec(1);
}
this->unk_1F0.unk_64 = 0;
this->unk_1F0.unk_5C.unk_08 = 0;
this->unk_1F0.func_020352d8();
}
break;
@@ -496,7 +542,7 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_54(void) {
this->unk_424.func_0203ee48();
this->unk_150[1] = 1;
puVar3 = this->unk_12C;
puVar3 = this->unk_128.unk_00;
local_54[0] = puVar3;
iVar2 = 0;
@@ -642,14 +688,14 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_54(void) {
this->func_0203b764();
if (this->unk_15F == 0 || this->unk_154->unk_06 < 3) {
this->unk_168.unk_64 = this->unk_168.unk_7C;
this->unk_168.unk_5C.unk_08 = this->unk_168.unk_7C;
this->unk_168.func_020352d8();
} else {
this->unk_168.func_020351b8(1, 0, 0, 0);
}
}
this->unk_1F0.unk_64 = 0;
this->unk_1F0.unk_5C.unk_08 = 0;
this->unk_1F0.func_020352d8();
this->vfunc_0C(0, 0, 0, 0);
// (**(code **)(*(int *)param_1 + 0x10))(0);
@@ -657,10 +703,10 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_54(void) {
ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_5C(void) {
if (this->unk_15F == 0 || this->unk_154->unk_06 <= 2) {
this->unk_168.unk_64 = this->unk_168.unk_7C;
this->unk_168.unk_5C.unk_08 = this->unk_168.unk_7C;
this->unk_168.func_020352d8();
} else {
this->unk_168.unk_64 = 0;
this->unk_168.unk_5C.unk_08 = 0;
this->unk_168.func_020352d8();
this->unk_168.func_020351b8(1, 0, 0, 0);
}
@@ -744,7 +790,7 @@ ARM unk32 UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_18(UnkStruct_0203b264* par
}
if (bVar5) {
this->unk_424.func_0203ee80(this->unk_130);
this->unk_424.func_0203ee80(this->unk_128.unk_08);
}
}
@@ -759,7 +805,7 @@ ARM unk32 UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_1C(unk8 param_2, UnkStruct
psVar3 = param_3->mUnk_4;
if (psVar3[0] == 10) {
this->unk_424.func_0203ef78(this->unk_130, psVar3[0], param_4);
this->unk_424.func_0203ef78(this->unk_128.unk_08, psVar3[0], param_4);
this->unk_574++;
if (this->func_0203a30c() == 0) {
@@ -906,12 +952,6 @@ ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_6C(unk32* param_2, unk32* p
}
ARM UnkStruct_027E0C68_UnkSubClass1_Sub1::~UnkStruct_027E0C68_UnkSubClass1_Sub1() {
this->unk_388.func_020350ac();
this->unk_300.func_020350ac();
this->unk_278.func_020350ac();
this->unk_1F0.func_020350ac();
this->unk_168.func_020350ac();
this->func_02038b1c();
}
ARM bool UnkStruct_027E0C68_UnkSubClass1_Sub1::vfunc_38(void) {
+1 -1
View File
@@ -11,7 +11,7 @@ extern "C" void func_02007938(unk32, unk32, unk32, unk32, unk32);
extern "C" UnknownClass2* func_0203d1d0(void);
extern "C" UnknownClass2* func_0203d254(void);
THUMB UnkStruct_027E0C68_UnkSubClass1_Base_0::UnkStruct_027E0C68_UnkSubClass1_Base_0(unk8 param_2, unk32 param_3, unk32 param_4) {
THUMB UnkStruct_027E0C68_UnkSubClass1_Base_0::UnkStruct_027E0C68_UnkSubClass1_Base_0(unk32 param_2, unk32 param_3, unk32 param_4) {
UnknownClass2 *pvVar1;
this->unk_114 = NULL;