From 2bd5011ae92329608e6853d3679c6829fc7f4b8c Mon Sep 17 00:00:00 2001 From: Yanis002 <35189056+Yanis002@users.noreply.github.com> Date: Wed, 5 Feb 2025 19:57:28 +0100 Subject: [PATCH] more progress --- config/eur/arm9/symbols.txt | 8 ++--- config/usa/arm9/symbols.txt | 8 ++--- src/Main/Unknown/UnkStruct_0203dae0.cpp | 45 ++++++++++++++++++++++--- 3 files changed, 49 insertions(+), 12 deletions(-) diff --git a/config/eur/arm9/symbols.txt b/config/eur/arm9/symbols.txt index e3053d8b..6034f1ca 100644 --- a/config/eur/arm9/symbols.txt +++ b/config/eur/arm9/symbols.txt @@ -1843,8 +1843,8 @@ _ZN18UnkStruct_02037750C2Eii kind:function(arm,size=0x44) addr:0x2037750 _ZN18UnkStruct_02037750D1Ev kind:function(arm,size=0x38) addr:0x2037794 _ZN18UnkStruct_02037750D0Ev kind:function(arm,size=0x40) addr:0x20377cc _ZN18UnkStruct_02037750D2Ev kind:function(arm,size=0x38) addr:0x203780c -_ZN18UnkStruct_020377508vfunc_08Ei kind:function(arm,size=0x10) addr:0x2037844 -_ZN18UnkStruct_020377508vfunc_0cEi kind:function(arm,size=0xc4) addr:0x2037854 +_ZN18UnkStruct_020377508vfunc_08Ej kind:function(arm,size=0x10) addr:0x2037844 +_ZN18UnkStruct_020377508vfunc_0cEP18UnkStruct_020397f8 kind:function(arm,size=0xc4) addr:0x2037854 _ZN18UnkStruct_020377508vfunc_10Ev kind:function(arm,size=0x234) addr:0x2037918 _ZN18UnkStruct_020377508vfunc_24Ei kind:function(arm,size=0x3c) addr:0x2037b4c _ZN18UnkStruct_020377508vfunc_28Ei kind:function(arm,size=0x3d0) addr:0x2037b88 @@ -1858,7 +1858,7 @@ _ZN18UnkStruct_020377508vfunc_1cEv kind:function(arm,size=0x8) addr:0x20386c4 _ZN18UnkStruct_020377508vfunc_20Ev kind:function(arm,size=0xc) addr:0x20386cc _ZN18UnkStruct_020386d8C2Ev kind:function(arm,size=0x40) addr:0x20386d8 _ZN18UnkStruct_020386d8C1Ev kind:function(arm,size=0x40) addr:0x2038718 -_ZN18UnkStruct_020386d88vfunc_08Ei kind:function(arm,size=0x18) addr:0x2038758 +_ZN18UnkStruct_020386d88vfunc_08Ej kind:function(arm,size=0x18) addr:0x2038758 _ZN18UnkStruct_020386d88vfunc_24Ei kind:function(arm,size=0x1c) addr:0x2038770 _ZN18UnkStruct_020386d88vfunc_28Ev kind:function(arm,size=0x18) addr:0x203878c _ZN18UnkStruct_020386d88vfunc_30Ev kind:function(arm,size=0x28) addr:0x20387a4 @@ -1883,7 +1883,7 @@ _ZN18UnkStruct_02038aa013func_02038b74Ev kind:function(arm,size=0x4) addr:0x2038 _ZN18UnkStruct_02038aa08vfunc_48Ev kind:function(arm,size=0xbc) addr:0x2038b78 _ZN18UnkStruct_02038aa013func_02038c34Ev kind:function(arm,size=0x84) addr:0x2038c34 _ZN18UnkStruct_02038aa08vfunc_34Ei kind:function(arm,size=0x3c) addr:0x2038cb8 -_ZN18UnkStruct_02038aa013func_02038cf4Ei kind:function(arm,size=0x1c) addr:0x2038cf4 +_ZN18UnkStruct_02038aa013func_02038cf4Ev kind:function(arm,size=0x1c) addr:0x2038cf4 _ZN18UnkStruct_02038aa013func_02038d10Ev kind:function(arm,size=0x10) addr:0x2038d10 _ZN18UnkStruct_02038aa013func_02038d20Ev kind:function(arm,size=0x1b0) addr:0x2038d20 _ZN18UnkStruct_02038aa08vfunc_2cEv kind:function(arm,size=0x24) addr:0x2038ed0 diff --git a/config/usa/arm9/symbols.txt b/config/usa/arm9/symbols.txt index a4051d56..5adcbf77 100644 --- a/config/usa/arm9/symbols.txt +++ b/config/usa/arm9/symbols.txt @@ -1843,8 +1843,8 @@ _ZN18UnkStruct_02037750C2Eii kind:function(arm,size=0x44) addr:0x203770c _ZN18UnkStruct_02037750D1Ev kind:function(arm,size=0x38) addr:0x2037750 _ZN18UnkStruct_02037750D0Ev kind:function(arm,size=0x40) addr:0x2037788 _ZN18UnkStruct_02037750D2Ev kind:function(arm,size=0x38) addr:0x20377c8 -_ZN18UnkStruct_020377508vfunc_08Ei kind:function(arm,size=0x10) addr:0x2037800 -_ZN18UnkStruct_020377508vfunc_0cEi kind:function(arm,size=0xc4) addr:0x2037810 +_ZN18UnkStruct_020377508vfunc_08Ej kind:function(arm,size=0x10) addr:0x2037800 +_ZN18UnkStruct_020377508vfunc_0cEP18UnkStruct_020397f8 kind:function(arm,size=0xc4) addr:0x2037810 _ZN18UnkStruct_020377508vfunc_10Ev kind:function(arm,size=0x234) addr:0x20378d4 _ZN18UnkStruct_020377508vfunc_24Ei kind:function(arm,size=0x3c) addr:0x2037b08 _ZN18UnkStruct_020377508vfunc_28Ei kind:function(arm,size=0x3d0) addr:0x2037b44 @@ -1858,7 +1858,7 @@ _ZN18UnkStruct_020377508vfunc_1cEv kind:function(arm,size=0x8) addr:0x2038680 _ZN18UnkStruct_020377508vfunc_20Ev kind:function(arm,size=0xc) addr:0x2038688 _ZN18UnkStruct_020386d8C2Ev kind:function(arm,size=0x40) addr:0x2038694 _ZN18UnkStruct_020386d8C1Ev kind:function(arm,size=0x40) addr:0x20386d4 -_ZN18UnkStruct_020386d88vfunc_08Ei kind:function(arm,size=0x18) addr:0x2038714 +_ZN18UnkStruct_020386d88vfunc_08Ej kind:function(arm,size=0x18) addr:0x2038714 _ZN18UnkStruct_020386d88vfunc_24Ei kind:function(arm,size=0x1c) addr:0x203872c _ZN18UnkStruct_020386d88vfunc_28Ev kind:function(arm,size=0x18) addr:0x2038748 _ZN18UnkStruct_020386d88vfunc_30Ev kind:function(arm,size=0x28) addr:0x2038760 @@ -1883,7 +1883,7 @@ _ZN18UnkStruct_02038aa013func_02038b74Ev kind:function(arm,size=0x4) addr:0x2038 _ZN18UnkStruct_02038aa08vfunc_48Ev kind:function(arm,size=0xbc) addr:0x2038b34 _ZN18UnkStruct_02038aa013func_02038c34Ev kind:function(arm,size=0x84) addr:0x2038bf0 _ZN18UnkStruct_02038aa08vfunc_34Ei kind:function(arm,size=0x3c) addr:0x2038c74 -_ZN18UnkStruct_02038aa013func_02038cf4Ei kind:function(arm,size=0x1c) addr:0x2038cb0 +_ZN18UnkStruct_02038aa013func_02038cf4Ev kind:function(arm,size=0x1c) addr:0x2038cb0 _ZN18UnkStruct_02038aa013func_02038d10Ev kind:function(arm,size=0x10) addr:0x2038ccc _ZN18UnkStruct_02038aa013func_02038d20Ev kind:function(arm,size=0x1b0) addr:0x2038cdc _ZN18UnkStruct_02038aa08vfunc_2cEv kind:function(arm,size=0x24) addr:0x2038e8c diff --git a/src/Main/Unknown/UnkStruct_0203dae0.cpp b/src/Main/Unknown/UnkStruct_0203dae0.cpp index 34549800..67fe821e 100644 --- a/src/Main/Unknown/UnkStruct_0203dae0.cpp +++ b/src/Main/Unknown/UnkStruct_0203dae0.cpp @@ -10,6 +10,12 @@ extern "C" void func_02029830(unk32*, unk32, unk32, unk32, unk32); extern "C" unk32 func_0203d400(u8); extern "C" void func_02035440(u8); +class UnkStruct_02075dac { +public: + unk32 func_0203f9b8(void*); +}; +extern UnkStruct_02075dac data_02075dac; + // non-matching THUMB UnkStruct_0203dae0::UnkStruct_0203dae0(u8 param1) { this->mUnk_114 = NULL; @@ -132,7 +138,18 @@ ARM void UnkStruct_0203dae0::vfunc_10(u32 param1, unk32 param2) { this->UnkStruct_02032f0c::vfunc_10(param1, -1); } -ARM void UnkStruct_0203dae0::vfunc_30() {} +ARM void UnkStruct_0203dae0::vfunc_30() { + unk32 iVar2; + + iVar2 = this->mUnk_118; + this->mUnk_118 = data_02075dac.func_0203f9b8(this); + + if (this->mUnk_118 == iVar2) { + return; + } + + this->func_0203dc10(1); +} ARM bool UnkStruct_0203dae0::vfunc_28() { if (this->mUnk_122 != 0) { @@ -145,10 +162,30 @@ ARM bool UnkStruct_0203dae0::vfunc_28() { } ARM bool UnkStruct_0203dae0::func_0203e0f8() {} -ARM void UnkStruct_0203dae0::vfunc_2c() {} + +ARM void UnkStruct_0203dae0::vfunc_2c() { + this->vfunc_30(); +} + ARM bool UnkStruct_0203dae0::func_0203e1b0(unk32 param1, unk32 param2, s32 param3) {} -ARM unk32 UnkStruct_0203dae0::vfunc_18(s32 param1) {} -ARM void UnkStruct_0203dae0::vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4) {} + +ARM unk32 UnkStruct_0203dae0::vfunc_18(s32 param1) { + unk32 iVar1; + + iVar1 = this->UnkStruct_02032f0c::vfunc_18(param1); + + if (iVar1 != 0) { + this->func_0203dc10(1); + } + + return iVar1; +} + +ARM void UnkStruct_0203dae0::vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4) { + this->func_0203dc10(1); + this->UnkStruct_02032f0c::vfunc_08(param1, param2, param3, param4); +} + ARM void UnkStruct_0203dae0::func_0203e2e8(s32 param1, s32 param2, unk32 param3, u32 param4) {} ARM void UnkStruct_0203dae0::func_0203e510(s32 *param1, s32 param2, s32 param3) {} ARM void UnkStruct_0203dae0::func_0203e62c(s32 *param1, s32 param2) {}