diff --git a/config/eur/arm9/symbols.txt b/config/eur/arm9/symbols.txt index f095aeb6..30b64086 100644 --- a/config/eur/arm9/symbols.txt +++ b/config/eur/arm9/symbols.txt @@ -1648,15 +1648,15 @@ func_02032e60 kind:function(arm,size=0x1c) addr:0x2032e60 _ZN31UnkSubClass1_UnkownClass2_Base1C2Ev kind:function(arm,size=0x48) addr:0x2032e7c _ZN31UnkSubClass1_UnkownClass2_Base1C1Ev kind:function(arm,size=0x48) addr:0x2032ec4 _ZN12MsgProc_BaseC2Ev 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 +_ZN12MsgProc_BaseD1Ev kind:function(thumb,size=0x4) addr:0x2032f84 +_ZN12MsgProc_BaseD0Ev kind:function(thumb,size=0xc) addr:0x2032f88 _ZN12MsgProc_BaseD2Ev kind:function(thumb,size=0x4) addr:0x2032f94 -func_02032f98 kind:function(arm,size=0xc) addr:0x2032f98 -func_02032fa4 kind:function(arm,size=0x10) addr:0x2032fa4 -func_02032fb4 kind:function(arm,size=0x18) addr:0x2032fb4 -func_02032fcc kind:function(arm,size=0x64) addr:0x2032fcc +_ZN12MsgProc_Base13func_02032f98Ei kind:function(arm,size=0xc) addr:0x2032f98 +_ZN12MsgProc_Base13func_02032fa4Ev kind:function(arm,size=0x10) addr:0x2032fa4 +_ZN12MsgProc_Base13func_02032fb4Ev kind:function(arm,size=0x18) addr:0x2032fb4 +_ZN12MsgProc_Base8vfunc_14Eth kind:function(arm,size=0x64) addr:0x2032fcc func_02033030 kind:function(arm,size=0x160) addr:0x2033030 -func_02033190 kind:function(arm,size=0x34) addr:0x2033190 +_ZN12MsgProc_Base8vfunc_0CEhhhi kind:function(arm,size=0x34) addr:0x2033190 func_020331c4 kind:function(arm,size=0x50) addr:0x20331c4 func_02033214 kind:function(arm,size=0xd0) addr:0x2033214 func_020332e4 kind:function(arm,size=0x7c) addr:0x20332e4 @@ -1666,7 +1666,7 @@ func_020334b4 kind:function(arm,size=0x174) addr:0x20334b4 func_02033628 kind:function(arm,size=0x74) addr:0x2033628 func_0203369c kind:function(arm,size=0xe4) addr:0x203369c func_02033780 kind:function(arm,size=0x58) addr:0x2033780 -func_020337d8 kind:function(arm,size=0x24) addr:0x20337d8 +_ZN12MsgProc_Base13func_020337d8Ei kind:function(arm,size=0x24) addr:0x20337d8 func_020337fc kind:function(arm,size=0xac) addr:0x20337fc func_020338a8 kind:function(arm,size=0x28) addr:0x20338a8 func_020338d0 kind:function(arm,size=0x34) addr:0x20338d0 @@ -1745,7 +1745,7 @@ func_020352d8 kind:function(arm,size=0x98) addr:0x20352d8 func_02035370 kind:function(arm,size=0x18) addr:0x2035370 func_02035388 kind:function(arm,size=0x50) addr:0x2035388 func_020353d8 kind:function(arm,size=0x50) addr:0x20353d8 -func_02035428 kind:function(arm,size=0x18) addr:0x2035428 +_ZN25UnkSubClass1_UnkownClass113func_02035428Eh kind:function(arm,size=0x18) addr:0x2035428 func_02035440 kind:function(arm,size=0x140) addr:0x2035440 func_02035580 kind:function(thumb,size=0x14) addr:0x2035580 func_02035594 kind:function(thumb,size=0x3c) addr:0x2035594 diff --git a/config/usa/arm9/symbols.txt b/config/usa/arm9/symbols.txt index 797dc0d4..9ef2d272 100644 --- a/config/usa/arm9/symbols.txt +++ b/config/usa/arm9/symbols.txt @@ -1648,15 +1648,15 @@ func_02032e60 kind:function(arm,size=0x1c) addr:0x2032e5c _ZN31UnkSubClass1_UnkownClass2_Base1C2Ev kind:function(arm,size=0x48) addr:0x2032e78 _ZN31UnkSubClass1_UnkownClass2_Base1C1Ev kind:function(arm,size=0x48) addr:0x2032ec0 _ZN12MsgProc_BaseC2Ev kind:function(thumb,size=0x78) addr:0x2032f08 -func_02032f84 kind:function(thumb,size=0x4) addr:0x2032f80 -func_02032f88 kind:function(thumb,size=0xc) addr:0x2032f84 +_ZN12MsgProc_BaseD1Ev kind:function(thumb,size=0x4) addr:0x2032f80 +_ZN12MsgProc_BaseD0Ev kind:function(thumb,size=0xc) addr:0x2032f84 _ZN12MsgProc_BaseD2Ev kind:function(thumb,size=0x4) addr:0x2032f90 -func_02032f98 kind:function(arm,size=0xc) addr:0x2032f94 -func_02032fa4 kind:function(arm,size=0x10) addr:0x2032fa0 -func_02032fb4 kind:function(arm,size=0x18) addr:0x2032fb0 -func_02032fcc kind:function(arm,size=0x64) addr:0x2032fc8 +_ZN12MsgProc_Base13func_02032f98Ei kind:function(arm,size=0xc) addr:0x2032f94 +_ZN12MsgProc_Base13func_02032fa4Ev kind:function(arm,size=0x10) addr:0x2032fa0 +_ZN12MsgProc_Base13func_02032fb4Ev kind:function(arm,size=0x18) addr:0x2032fb0 +_ZN12MsgProc_Base8vfunc_14Eth kind:function(arm,size=0x64) addr:0x2032fc8 func_02033030 kind:function(arm,size=0x160) addr:0x203302c -func_02033190 kind:function(arm,size=0x34) addr:0x203318c +_ZN12MsgProc_Base8vfunc_0CEhhhi kind:function(arm,size=0x34) addr:0x203318c func_020331c4 kind:function(arm,size=0x50) addr:0x20331c0 func_02033214 kind:function(arm,size=0xd0) addr:0x2033210 func_020332e4 kind:function(arm,size=0x7c) addr:0x20332e0 @@ -1666,7 +1666,7 @@ func_020334b4 kind:function(arm,size=0x160) addr:0x2033484 func_02033628 kind:function(arm,size=0x74) addr:0x20335e4 func_0203369c kind:function(arm,size=0xe4) addr:0x2033658 func_02033780 kind:function(arm,size=0x58) addr:0x203373c -func_020337d8 kind:function(arm,size=0x24) addr:0x2033794 +_ZN12MsgProc_Base13func_020337d8Ei kind:function(arm,size=0x24) addr:0x2033794 func_020337fc kind:function(arm,size=0xac) addr:0x20337b8 func_020338a8 kind:function(arm,size=0x28) addr:0x2033864 func_020338d0 kind:function(arm,size=0x34) addr:0x203388c @@ -1745,7 +1745,7 @@ func_020352d8 kind:function(arm,size=0x98) addr:0x2035294 func_02035370 kind:function(arm,size=0x18) addr:0x203532c func_02035388 kind:function(arm,size=0x50) addr:0x2035344 func_020353d8 kind:function(arm,size=0x50) addr:0x2035394 -func_02035428 kind:function(arm,size=0x18) addr:0x20353e4 +_ZN25UnkSubClass1_UnkownClass113func_02035428Eh kind:function(arm,size=0x18) addr:0x20353e4 func_02035440 kind:function(arm,size=0x140) addr:0x20353fc func_02035580 kind:function(thumb,size=0x14) addr:0x203553c func_02035594 kind:function(thumb,size=0x3c) addr:0x2035550 diff --git a/include/Message/MsgProc.hpp b/include/Message/MsgProc.hpp index efb13466..fb167332 100644 --- a/include/Message/MsgProc.hpp +++ b/include/Message/MsgProc.hpp @@ -85,6 +85,8 @@ public: /* 0x04 */ virtual unk16 func_020351b0(void); /* 0x08 */ + static unk32 func_02035428(u8 param_2); + UnkSubClass1_UnkownClass1(); ~UnkSubClass1_UnkownClass1(); void func_02034a1c(unk32, unk32, struct UnkStruct_01ffbe34*); @@ -204,13 +206,18 @@ public: }; struct UnkStruct_MsgProc_Base_unk_2C_2 { - /* 0x00 */ unk32 unk_00; + /* 0x00 */ s8 unk_00; + /* 0x00 */ s8 unk_01; + /* 0x00 */ s8 unk_02; + /* 0x00 */ s8 unk_03; /* 0x04 */ unk32 unk_04; /* 0x00 */ u8* unk_08; /* 0x04 */ }; struct UnkStruct_MsgProc_Base_unk_2C { - /* 0x08 */ UnkStruct_MsgProc_Base_unk_2C_2* unk_00; + /* 0x00 */ UnkStruct_MsgProc_Base_unk_2C_2* unk_00; + /* 0x04 */ unk32 unk_04; + /* 0x08 */ unk32 unk_08; /* 0x0C */ }; @@ -220,8 +227,8 @@ public: /* 0x000 (vtable) */ /* 0x004 */ unk32* unk_04; /* 0x008 */ UnkSubClass1_02256FF8* unk_08; - /* 0x00C */ unk32* unk_0C; - /* 0x010 */ unk32 unk_10; + /* 0x00C */ unk32 unk_0C; + /* 0x010 */ unk32* unk_10; /* 0x014 */ s32 unk_14; /* 0x018 */ s32 unk_18; /* 0x01C */ unk32 unk_1C; @@ -238,8 +245,8 @@ public: /* 0x044 */ unk32 unk_44; /* 0x048 */ u8 unk_48; /* 0x049 */ u8 unk_49; - /* 0x04A */ unk16 unk_4A; - /* 0x04C */ unk8 unk_4C; + /* 0x04A */ u16 unk_4A; + /* 0x04C */ u8 unk_4C; /* 0x04C */ unk8 unk_4D; /* 0x04C */ unk8 unk_4E; /* 0x04C */ unk8 unk_4F; @@ -252,7 +259,7 @@ public: /* 0x08 */ /* func_02033030 */ virtual void vfunc_08(unk32* param_2, unk32* param_3); /* 0x0C */ /* func_02033190 */ virtual void vfunc_0C(u8 param_2, u8 param_3, u8 param_4, unk32 param_5); /* 0x10 */ /* func_020331c4 */ virtual void vfunc_10(u8 param_2, u8 param_3); - /* 0x14 */ /* func_02032fcc */ virtual bool vfunc_14(unk32 param_2, unk32 param_3); + /* 0x14 */ /* func_02032fcc */ virtual bool vfunc_14(u16 param_2, u8 param_3); /* 0x18 */ /* func_020332e4 */ virtual unk32 vfunc_18(UnkStruct_0203b264* param_2, unk32 param_3, unk32 param_4); /* 0x1C */ /* func_02033360 */ virtual unk32 vfunc_1C(u16* param_2, UnkStruct_0203b264* param_3, unk8 param_4, unk32 param_5); /* 0x20 */ /* func_020333e0 */ virtual UNK_TYPE vfunc_20(UNK_TYPE); @@ -280,7 +287,9 @@ public: /* 0x70 */ virtual void vfunc_70(unk32* param_2, unk32* param_3); /* 0x74 */ + unk32* func_02032f98(unk32 param_2); unk32 func_02032fa4(void); + unk32 func_02032fb4(void); unk32 func_02033360(void); unk32 func_020337d8(unk32 param_2); }; diff --git a/src/Main/Message/func_02032f0c.cpp b/src/Main/Message/func_02032f0c.cpp index b2191dd1..bd7ae4fc 100644 --- a/src/Main/Message/func_02032f0c.cpp +++ b/src/Main/Message/func_02032f0c.cpp @@ -8,6 +8,7 @@ extern "C" void func_020078f4(unk32, void*, unk32); extern "C" void func_020078c0(unk32, void*, unk32); +extern "C" void func_020296e0(unk32**, UnkStruct_MsgProc_Base_unk_2C*, u8, u8, unk32, u8); ARM UnkSubClass1_UnkownClass2_Base1::UnkSubClass1_UnkownClass2_Base1() { this->unk_00 = NULL; @@ -45,6 +46,45 @@ THUMB MsgProc_Base::MsgProc_Base() { this->unk_34 = 3; } +THUMB MsgProc_Base::~MsgProc_Base() { +} + +ARM unk32* MsgProc_Base::func_02032f98(unk32 param_2) { + this->unk_0C = param_2; + return &this->unk_0C; +} + +ARM unk32 MsgProc_Base::func_02032fa4(void) { + return UnkSubClass1_UnkownClass1::func_02035428(this->unk_50); +} + +ARM unk32 MsgProc_Base::func_02032fb4(void) { + return this->unk_2C->unk_00->unk_01 + this->unk_34; +} + +// non-matching +ARM bool MsgProc_Base::vfunc_14(u16 param_2, u8 param_3) { + s16 iVar1; + s16 iVar2; + + iVar1 = ((param_2 + 0x7 + ((param_2 + 0x7) >> 0x1D)) ) * 0x8; + iVar2 = ((param_3 + 0x7 + ((param_3 + 0x7) >> 0x1D)) ) * 0x8; + this->unk_4A = param_2; + this->unk_4C = param_3; + this->unk_14 = (iVar1 + (iVar1 >> 0x1D)) * 0x2000 >> 0x10; + this->unk_18 = (iVar2 + (iVar2 >> 0x1D)) * 0x2000 >> 0x10; + + return true; +} + +ARM void MsgProc_Base::vfunc_0C(u8 param_2, u8 param_3, u8 param_4, unk32 param_5) { + func_020296e0(&this->unk_10, this->unk_2C, param_2, param_3, param_5, param_4); +} + +ARM unk32 MsgProc_Base::func_020337d8(unk32 param_2) { + return this->unk_2C->unk_00->unk_08[1] * param_2 + (param_2 - 1) * this->unk_34; +} + ARM UnkSubClass1_UnkownClass1::UnkSubClass1_UnkownClass1() { this->unk_74 = NULL; this->unk_78 = 0;