diff --git a/config/eur/arm9/symbols.txt b/config/eur/arm9/symbols.txt index 95119be6..d419b1e6 100644 --- a/config/eur/arm9/symbols.txt +++ b/config/eur/arm9/symbols.txt @@ -1857,7 +1857,7 @@ 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 -func_02038718 kind:function(arm,size=0x40) addr:0x2038718 +_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 @@ -1878,15 +1878,15 @@ func_02038b08 kind:function(thumb,size=0x14) addr:0x2038b08 func_02038b1c 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 kind:function(arm,size=0x34) addr:0x2038b40 +_Z13func_02038b40P31UnkStruct_027E0C68_UnkSubClass1_Sub1 kind:function(arm,size=0x34) addr:0x2038b40 func_02038b74 kind:function(arm,size=0x4) addr:0x2038b74 func_02038b78 kind:function(arm,size=0xbc) addr:0x2038b78 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_02038c34Ei kind:function(arm,size=0x84) addr:0x2038c34 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_02038c34Ei kind:function(arm,size=0x84) addr:0x2038c34 func_02038cb8 kind:function(arm,size=0x3c) addr:0x2038cb8 func_02038cf4 kind:function(arm,size=0x1c) addr:0x2038cf4 func_02038d10 kind:function(arm,size=0x10) addr:0x2038d10 func_02038d20 kind:function(arm,size=0x1b0) addr:0x2038d20 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_02038ed0Ev kind:function(arm,size=0x24) addr:0x2038ed0 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_02038ed0Ev kind:function(arm,size=0x24) addr:0x2038ed0 func_02038ef4 kind:function(arm,size=0x4c) addr:0x2038ef4 func_02038f40 kind:function(arm,size=0x4) addr:0x2038f40 func_02038f44 kind:function(arm,size=0x114) addr:0x2038f44 @@ -1894,58 +1894,58 @@ func_02039058 kind:function(arm,size=0x4) addr:0x2039058 func_0203905c kind:function(arm,size=0x48) addr:0x203905c func_020390a4 kind:function(arm,size=0x164) addr:0x20390a4 func_02039208 kind:function(arm,size=0x20) addr:0x2039208 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_02039228EPiS0_ kind:function(arm,size=0x28) addr:0x2039228 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_02039228EPiS0_ kind:function(arm,size=0x28) addr:0x2039228 func_02039250 kind:function(arm,size=0x64) addr:0x2039250 func_020392b4 kind:function(arm,size=0xe4) addr:0x20392b4 func_02039398 kind:function(arm,size=0xc) addr:0x2039398 func_020393a4 kind:function(arm,size=0x4) addr:0x20393a4 func_020393a8 kind:function(arm,size=0x28) addr:0x20393a8 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_020393d0Ei kind:function(arm,size=0x70) addr:0x20393d0 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_020393d0Ei kind:function(arm,size=0x70) addr:0x20393d0 func_02039440 kind:function(arm,size=0x3c) addr:0x2039440 func_0203947c kind:function(arm,size=0x5c) addr:0x203947c -_ZN31UnkStruct_027E0C68_UnkSubClass113func_020394d8EPiS0_ kind:function(arm,size=0x44) addr:0x20394d8 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_020394d8EPiS0_ kind:function(arm,size=0x44) addr:0x20394d8 func_0203951c kind:function(arm,size=0x40) addr:0x203951c func_0203955c kind:function(arm,size=0x14) addr:0x203955c func_02039570 kind:function(arm,size=0x8) addr:0x2039570 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_02039578Ehhhi kind:function(arm,size=0x3c) addr:0x2039578 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_02039578Ehhhi kind:function(arm,size=0x3c) addr:0x2039578 func_020395b4 kind:function(thumb,size=0x244) addr:0x20395b4 -func_020397f8 kind:function(thumb,size=0x244) addr:0x20397f8 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_02039a3cEv kind:function(thumb,size=0x20) addr:0x2039a3c -_ZN31UnkStruct_027E0C68_UnkSubClass113func_02039a5cEv kind:function(arm,size=0x24c) addr:0x2039a5c +_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub1C1Ev kind:function(thumb,size=0x244) addr:0x20397f8 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_02039a3cEv kind:function(thumb,size=0x20) addr:0x2039a3c +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_02039a5cEv kind:function(arm,size=0x24c) addr:0x2039a5c func_02039ca8 kind:function(arm,size=0x24) addr:0x2039ca8 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_02039cccEi kind:function(arm,size=0xa8) addr:0x2039ccc -_ZN31UnkStruct_027E0C68_UnkSubClass113func_02039d74Eii kind:function(arm,size=0x414) addr:0x2039d74 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_02039cccEi kind:function(arm,size=0xa8) addr:0x2039ccc +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_02039d74Eii kind:function(arm,size=0x414) addr:0x2039d74 func_0203a188 kind:function(arm,size=0x138) addr:0x203a188 func_0203a2c0 kind:function(arm,size=0x4c) addr:0x203a2c0 func_0203a30c kind:function(arm,size=0x1c) addr:0x203a30c -_ZN31UnkStruct_027E0C68_UnkSubClass113func_0203a328Ev kind:function(arm,size=0x34) addr:0x203a328 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203a328Ev kind:function(arm,size=0x34) addr:0x203a328 func_0203a35c kind:function(arm,size=0x84) addr:0x203a35c func_0203a3e0 kind:function(arm,size=0x1c) addr:0x203a3e0 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_0203a3fcEii kind:function(arm,size=0x2d4) addr:0x203a3fc +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203a3fcEii kind:function(arm,size=0x2d4) addr:0x203a3fc func_0203a6d0 kind:function(arm,size=0x120) addr:0x203a6d0 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_0203a7f0EP9EntryINF1iPh kind:function(arm,size=0x198) addr:0x203a7f0 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_0203a988Ev kind:function(arm,size=0x520) addr:0x203a988 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_0203aea8Ev kind:function(arm,size=0x74) addr:0x203aea8 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_0203af1cEv kind:function(arm,size=0x1a0) addr:0x203af1c +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203a7f0EP9EntryINF1iPh kind:function(arm,size=0x198) addr:0x203a7f0 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203a988Ev kind:function(arm,size=0x520) addr:0x203a988 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203aea8Ev kind:function(arm,size=0x74) addr:0x203aea8 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203af1cEv kind:function(arm,size=0x1a0) addr:0x203af1c func_0203b0bc kind:function(arm,size=0x30) addr:0x203b0bc func_0203b0ec kind:function(arm,size=0x178) addr:0x203b0ec -_ZN31UnkStruct_027E0C68_UnkSubClass113func_0203b264EP18UnkStruct_0203b264ii kind:function(arm,size=0xac) addr:0x203b264 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_0203b310EcP18UnkStruct_0203b264ci kind:function(arm,size=0x100) addr:0x203b310 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_0203b410Ev kind:function(arm,size=0x1c0) addr:0x203b410 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_0203b5d0Ei kind:function(arm,size=0x194) addr:0x203b5d0 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203b264EP18UnkStruct_0203b264ii kind:function(arm,size=0xac) addr:0x203b264 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203b310EcP18UnkStruct_0203b264ci kind:function(arm,size=0x100) addr:0x203b310 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203b410Ev kind:function(arm,size=0x1c0) addr:0x203b410 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203b5d0Ei kind:function(arm,size=0x194) addr:0x203b5d0 func_0203b764 kind:function(arm,size=0xb0) addr:0x203b764 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_0203b814Ev kind:function(arm,size=0x578) addr:0x203b814 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203b814Ev kind:function(arm,size=0x578) addr:0x203b814 func_0203bd8c kind:function(arm,size=0x40) addr:0x203bd8c -_ZN31UnkStruct_027E0C68_UnkSubClass113func_0203bdccEPiS0_ kind:function(arm,size=0x3c) addr:0x203bdcc +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203bdccEPiS0_ kind:function(arm,size=0x3c) addr:0x203bdcc func_0203be08 kind:function(arm,size=0x5c) addr:0x203be08 func_0203be64 kind:function(arm,size=0x220) addr:0x203be64 func_0203c084 kind:function(arm,size=0xb8) addr:0x203c084 func_0203c13c kind:function(arm,size=0x64) addr:0x203c13c func_0203c1a0 kind:function(arm,size=0xbc) addr:0x203c1a0 func_0203c25c kind:function(arm,size=0x6c) addr:0x203c25c -_ZN31UnkStruct_027E0C68_UnkSubClass1D0Ev kind:function(arm,size=0x48) addr:0x203c2c8 -_ZN31UnkStruct_027E0C68_UnkSubClass1D1Ev kind:function(arm,size=0x40) addr:0x203c310 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_0203c350Ev kind:function(arm,size=0x8) addr:0x203c350 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub1D0Ev kind:function(arm,size=0x48) addr:0x203c2c8 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub1D2Ev kind:function(arm,size=0x40) addr:0x203c310 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203c350Ev kind:function(arm,size=0x8) addr:0x203c350 func_0203c358 kind:function(thumb,size=0x44) addr:0x203c358 func_0203c39c kind:function(thumb,size=0x78) addr:0x203c39c func_0203c414 kind:function(arm,size=0x4c) addr:0x203c414 @@ -1955,7 +1955,7 @@ func_0203c5c4 kind:function(arm,size=0x18) addr:0x203c5c4 func_0203c5dc kind:function(arm,size=0x120) addr:0x203c5dc func_0203c6fc kind:function(arm,size=0x1c) addr:0x203c6fc func_0203c718 kind:function(arm,size=0x14) addr:0x203c718 -func_0203c72c kind:function(arm,size=0x110) addr:0x203c72c +_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub2C1Ev kind:function(arm,size=0x110) addr:0x203c72c func_0203c83c kind:function(arm,size=0x4) addr:0x203c83c func_0203c840 kind:function(arm,size=0x30) addr:0x203c840 func_0203c870 kind:function(arm,size=0x38) addr:0x203c870 @@ -2030,16 +2030,16 @@ func_0203dba8 kind:function(thumb,size=0x38) addr:0x203dba8 func_0203dbe0 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 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_0203dcb4Eii kind:function(arm,size=0x48) addr:0x203dcb4 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203dcb4Eii kind:function(arm,size=0x48) addr:0x203dcb4 func_0203dcfc kind:function(arm,size=0xf0) addr:0x203dcfc func_0203ddec kind:function(arm,size=0x10) addr:0x203ddec func_0203ddfc kind:function(arm,size=0x18) addr:0x203ddfc -_Z13func_0203de14P31UnkStruct_027E0C68_UnkSubClass1i kind:function(arm,size=0x10) addr:0x203de14 +_Z13func_0203de14P31UnkStruct_027E0C68_UnkSubClass1_Sub1i kind:function(arm,size=0x10) addr:0x203de14 func_0203de24 kind:function(arm,size=0x34) addr:0x203de24 func_0203de58 kind:function(arm,size=0x208) addr:0x203de58 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_0203e060Ehh kind:function(arm,size=0x30) addr:0x203e060 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203e060Ehh kind:function(arm,size=0x30) addr:0x203e060 func_0203e090 kind:function(arm,size=0x38) addr:0x203e090 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_0203e0c8Ev kind:function(arm,size=0x30) addr:0x203e0c8 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203e0c8Ev kind:function(arm,size=0x30) addr:0x203e0c8 func_0203e0f8 kind:function(arm,size=0xa4) addr:0x203e0f8 func_0203e19c kind:function(arm,size=0x14) addr:0x203e19c func_0203e1b0 kind:function(arm,size=0xd4) addr:0x203e1b0 diff --git a/config/usa/arm9/symbols.txt b/config/usa/arm9/symbols.txt index f96bbfbb..d613283c 100644 --- a/config/usa/arm9/symbols.txt +++ b/config/usa/arm9/symbols.txt @@ -1857,7 +1857,7 @@ func_020386b8 kind:function(arm,size=0xc) addr:0x2038674 func_020386c4 kind:function(arm,size=0x8) addr:0x2038680 func_020386cc kind:function(arm,size=0xc) addr:0x2038688 func_020386d8 kind:function(arm,size=0x40) addr:0x2038694 -func_02038718 kind:function(arm,size=0x40) addr:0x20386d4 +_ZN31UnkStruct_027E0C68_UnkSubClass2C1Ev kind:function(arm,size=0x40) addr:0x20386d4 func_02038758 kind:function(arm,size=0x18) addr:0x2038714 func_02038770 kind:function(arm,size=0x1c) addr:0x203872c func_0203878c kind:function(arm,size=0x18) addr:0x2038748 @@ -1878,15 +1878,15 @@ func_02038b08 kind:function(thumb,size=0x14) addr:0x2038ac4 func_02038b1c kind:function(thumb,size=0xc) addr:0x2038ad8 func_02038b28 kind:function(thumb,size=0xc) addr:0x2038ae4 func_02038b34 kind:function(arm,size=0xc) addr:0x2038af0 -_Z13func_02038b40P31UnkStruct_027E0C68_UnkSubClass1 kind:function(arm,size=0x34) addr:0x2038afc +_Z13func_02038b40P31UnkStruct_027E0C68_UnkSubClass1_Sub1 kind:function(arm,size=0x34) addr:0x2038afc func_02038b74 kind:function(arm,size=0x4) addr:0x2038b30 func_02038b78 kind:function(arm,size=0xbc) addr:0x2038b34 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_02038c34Ei kind:function(arm,size=0x84) addr:0x2038bf0 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_02038c34Ei kind:function(arm,size=0x84) addr:0x2038bf0 func_02038cb8 kind:function(arm,size=0x3c) addr:0x2038c74 func_02038cf4 kind:function(arm,size=0x1c) addr:0x2038cb0 func_02038d10 kind:function(arm,size=0x10) addr:0x2038ccc func_02038d20 kind:function(arm,size=0x1b0) addr:0x2038cdc -_ZN31UnkStruct_027E0C68_UnkSubClass113func_02038ed0Ev kind:function(arm,size=0x24) addr:0x2038e8c +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_02038ed0Ev kind:function(arm,size=0x24) addr:0x2038e8c func_02038ef4 kind:function(arm,size=0x4c) addr:0x2038eb0 func_02038f40 kind:function(arm,size=0x4) addr:0x2038efc func_02038f44 kind:function(arm,size=0x114) addr:0x2038f00 @@ -1894,58 +1894,58 @@ func_02039058 kind:function(arm,size=0x4) addr:0x2039014 func_0203905c kind:function(arm,size=0x48) addr:0x2039018 func_020390a4 kind:function(arm,size=0x164) addr:0x2039060 func_02039208 kind:function(arm,size=0x20) addr:0x20391c4 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_02039228EPiS0_ kind:function(arm,size=0x28) addr:0x20391e4 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_02039228EPiS0_ kind:function(arm,size=0x28) addr:0x20391e4 func_02039250 kind:function(arm,size=0x64) addr:0x203920c func_020392b4 kind:function(arm,size=0xe4) addr:0x2039270 func_02039398 kind:function(arm,size=0xc) addr:0x2039354 func_020393a4 kind:function(arm,size=0x4) addr:0x2039360 func_020393a8 kind:function(arm,size=0x28) addr:0x2039364 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_020393d0Ei kind:function(arm,size=0x70) addr:0x203938c +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_020393d0Ei kind:function(arm,size=0x70) addr:0x203938c func_02039440 kind:function(arm,size=0x3c) addr:0x20393fc func_0203947c kind:function(arm,size=0x5c) addr:0x2039438 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_020394d8EPiS0_ kind:function(arm,size=0x44) addr:0x2039494 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_020394d8EPiS0_ kind:function(arm,size=0x44) addr:0x2039494 func_0203951c kind:function(arm,size=0x40) addr:0x20394d8 func_0203955c kind:function(arm,size=0x14) addr:0x2039518 func_02039570 kind:function(arm,size=0x8) addr:0x203952c -_ZN31UnkStruct_027E0C68_UnkSubClass113func_02039578Ehhhi kind:function(arm,size=0x3c) addr:0x2039534 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_02039578Ehhhi kind:function(arm,size=0x3c) addr:0x2039534 func_020395b4 kind:function(thumb,size=0x244) addr:0x2039570 -func_020397f8 kind:function(thumb,size=0x244) addr:0x20397b4 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_02039a3cEv kind:function(thumb,size=0x20) addr:0x20399f8 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_02039a5cEv kind:function(arm,size=0x24c) addr:0x2039a18 +_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub1C1Ev kind:function(thumb,size=0x244) addr:0x20397b4 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_02039a3cEv kind:function(thumb,size=0x20) addr:0x20399f8 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_02039a5cEv kind:function(arm,size=0x24c) addr:0x2039a18 func_02039ca8 kind:function(arm,size=0x24) addr:0x2039c64 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_02039cccEi kind:function(arm,size=0xa8) addr:0x2039c88 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_02039d74Eii kind:function(arm,size=0x414) addr:0x2039d30 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_02039cccEi kind:function(arm,size=0xa8) addr:0x2039c88 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_02039d74Eii kind:function(arm,size=0x414) addr:0x2039d30 func_0203a188 kind:function(arm,size=0x138) addr:0x203a144 func_0203a2c0 kind:function(arm,size=0x4c) addr:0x203a27c func_0203a30c kind:function(arm,size=0x1c) addr:0x203a2c8 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_0203a328Ev kind:function(arm,size=0x34) addr:0x203a2e4 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203a328Ev kind:function(arm,size=0x34) addr:0x203a2e4 func_0203a35c kind:function(arm,size=0x84) addr:0x203a318 func_0203a3e0 kind:function(arm,size=0x1c) addr:0x203a39c -_ZN31UnkStruct_027E0C68_UnkSubClass113func_0203a3fcEii kind:function(arm,size=0x2d4) addr:0x203a3b8 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203a3fcEii kind:function(arm,size=0x2d4) addr:0x203a3b8 func_0203a6d0 kind:function(arm,size=0x120) addr:0x203a68c -_ZN31UnkStruct_027E0C68_UnkSubClass113func_0203a7f0EP9EntryINF1iPh kind:function(arm,size=0x198) addr:0x203a7ac -_ZN31UnkStruct_027E0C68_UnkSubClass113func_0203a988Ev kind:function(arm,size=0x520) addr:0x203a944 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_0203aea8Ev kind:function(arm,size=0x74) addr:0x203ae64 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_0203af1cEv kind:function(arm,size=0x1a0) addr:0x203aed8 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203a7f0EP9EntryINF1iPh kind:function(arm,size=0x198) addr:0x203a7ac +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203a988Ev kind:function(arm,size=0x520) addr:0x203a944 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203aea8Ev kind:function(arm,size=0x74) addr:0x203ae64 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203af1cEv kind:function(arm,size=0x1a0) addr:0x203aed8 func_0203b0bc kind:function(arm,size=0x30) addr:0x203b078 func_0203b0ec kind:function(arm,size=0x178) addr:0x203b0a8 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_0203b264EP18UnkStruct_0203b264ii kind:function(arm,size=0xac) addr:0x203b220 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_0203b310EcP18UnkStruct_0203b264ci kind:function(arm,size=0x100) addr:0x203b2cc -_ZN31UnkStruct_027E0C68_UnkSubClass113func_0203b410Ev kind:function(arm,size=0x1c0) addr:0x203b3cc -_ZN31UnkStruct_027E0C68_UnkSubClass113func_0203b5d0Ei kind:function(arm,size=0x194) addr:0x203b58c +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203b264EP18UnkStruct_0203b264ii kind:function(arm,size=0xac) addr:0x203b220 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203b310EcP18UnkStruct_0203b264ci kind:function(arm,size=0x100) addr:0x203b2cc +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203b410Ev kind:function(arm,size=0x1c0) addr:0x203b3cc +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203b5d0Ei kind:function(arm,size=0x194) addr:0x203b58c func_0203b764 kind:function(arm,size=0xb0) addr:0x203b720 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_0203b814Ev kind:function(arm,size=0x578) addr:0x203b7d0 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203b814Ev kind:function(arm,size=0x578) addr:0x203b7d0 func_0203bd8c kind:function(arm,size=0x40) addr:0x203bd48 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_0203bdccEPiS0_ kind:function(arm,size=0x3c) addr:0x203bd88 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203bdccEPiS0_ kind:function(arm,size=0x3c) addr:0x203bd88 func_0203be08 kind:function(arm,size=0x5c) addr:0x203bdc4 func_0203be64 kind:function(arm,size=0x220) addr:0x203be20 func_0203c084 kind:function(arm,size=0xb8) addr:0x203c040 func_0203c13c kind:function(arm,size=0x64) addr:0x203c0f8 func_0203c1a0 kind:function(arm,size=0xbc) addr:0x203c15c func_0203c25c kind:function(arm,size=0x6c) addr:0x203c218 -_ZN31UnkStruct_027E0C68_UnkSubClass1D0Ev kind:function(arm,size=0x48) addr:0x203c284 -_ZN31UnkStruct_027E0C68_UnkSubClass1D1Ev kind:function(arm,size=0x40) addr:0x203c2cc -_ZN31UnkStruct_027E0C68_UnkSubClass113func_0203c350Ev kind:function(arm,size=0x8) addr:0x203c30c +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub1D0Ev kind:function(arm,size=0x48) addr:0x203c284 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub1D2Ev kind:function(arm,size=0x40) addr:0x203c2cc +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203c350Ev kind:function(arm,size=0x8) addr:0x203c30c func_0203c358 kind:function(thumb,size=0x44) addr:0x203c314 func_0203c39c kind:function(thumb,size=0x78) addr:0x203c358 func_0203c414 kind:function(arm,size=0x4c) addr:0x203c3d0 @@ -1955,7 +1955,7 @@ func_0203c5c4 kind:function(arm,size=0x18) addr:0x203c580 func_0203c5dc kind:function(arm,size=0x120) addr:0x203c598 func_0203c6fc kind:function(arm,size=0x1c) addr:0x203c6b8 func_0203c718 kind:function(arm,size=0x14) addr:0x203c6d4 -func_0203c72c kind:function(arm,size=0x110) addr:0x203c6e8 +_ZN36UnkStruct_027E0C68_UnkSubClass1_Sub2C1Ev kind:function(arm,size=0x110) addr:0x203c6e8 func_0203c83c kind:function(arm,size=0x4) addr:0x203c7f8 func_0203c840 kind:function(arm,size=0x30) addr:0x203c7fc func_0203c870 kind:function(arm,size=0x38) addr:0x203c82c @@ -2030,16 +2030,16 @@ func_0203dba8 kind:function(thumb,size=0x38) addr:0x203db64 func_0203dbe0 kind:function(thumb,size=0x30) addr:0x203db9c func_0203dc10 kind:function(arm,size=0x64) addr:0x203dbcc func_0203dc74 kind:function(arm,size=0x40) addr:0x203dc30 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_0203dcb4Eii kind:function(arm,size=0x48) addr:0x203dc70 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203dcb4Eii kind:function(arm,size=0x48) addr:0x203dc70 func_0203dcfc kind:function(arm,size=0xf0) addr:0x203dcb8 func_0203ddec kind:function(arm,size=0x10) addr:0x203dda8 func_0203ddfc kind:function(arm,size=0x18) addr:0x203ddb8 -_Z13func_0203de14P31UnkStruct_027E0C68_UnkSubClass1i kind:function(arm,size=0x10) addr:0x203ddd0 +_Z13func_0203de14P31UnkStruct_027E0C68_UnkSubClass1_Sub1i kind:function(arm,size=0x10) addr:0x203ddd0 func_0203de24 kind:function(arm,size=0x34) addr:0x203dde0 func_0203de58 kind:function(arm,size=0x208) addr:0x203de14 -_ZN31UnkStruct_027E0C68_UnkSubClass113func_0203e060Ehh kind:function(arm,size=0x30) addr:0x203e01c +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203e060Ehh kind:function(arm,size=0x30) addr:0x203e01c func_0203e090 kind:function(arm,size=0x38) addr:0x203e04c -_ZN31UnkStruct_027E0C68_UnkSubClass113func_0203e0c8Ev kind:function(arm,size=0x30) addr:0x203e084 +_ZN31UnkStruct_027E0C68_UnkSubClass1_Sub113func_0203e0c8Ev kind:function(arm,size=0x30) addr:0x203e084 func_0203e0f8 kind:function(arm,size=0xa4) addr:0x203e0b4 func_0203e19c kind:function(arm,size=0x14) addr:0x203e158 func_0203e1b0 kind:function(arm,size=0xd4) addr:0x203e16c diff --git a/include/Message/MessageManager.hpp b/include/Message/MessageManager.hpp index 9b24632b..2cfe20ab 100644 --- a/include/Message/MessageManager.hpp +++ b/include/Message/MessageManager.hpp @@ -27,11 +27,12 @@ public: /* 0x38 */ u8 unk_38; /* 0x39 */ u8 unk_39; /* 0x3A */ unk16 unk_3A; + /* 0x3C */ UnkStruct_027E0C68_UnkSubClass2(); /* 0x00 */ virtual ~UnkStruct_027E0C68_UnkSubClass2() override; /* 0x08 */ virtual void vfunc_08(u32 param_1) override; - /* 0x0C */ virtual void vfunc_0C(UnkStruct_027E0C68_UnkSubClass1* param_2) override; + /* 0x0C */ virtual void vfunc_0C(UnkStruct_027E0C68_UnkSubClass1_Sub1* param_2) override; /* 0x10 */ virtual void vfunc_10(void) override; /* 0x14 */ virtual UNK_TYPE vfunc_14(void) override; /* 0x18 */ virtual UNK_TYPE vfunc_18(void) override; @@ -78,7 +79,7 @@ public: /* 0x04 */ u8 unk_04; /* 0x05 */ u8 unk_05; /* 0x06 */ unk16 unk_06; - /* 0x08 */ UnkStruct_027E0C68_UnkSubClass1* unk_08; + /* 0x08 */ UnkStruct_027E0C68_UnkSubClass1_Sub1* unk_08; /* 0x0C */ u8 unk_0C; /* 0x0C */ u8 unk_0D; /* 0x0C */ unk16 unk_0E; @@ -87,16 +88,16 @@ public: /* 0x14 */ BMGGroups* pGroups; /* 0x18 */ UnkStruct_027E0C68_UnkSubClass2* unk_18[2]; /* 0x20 */ UnkStruct_027E0C68_UnkSubClass3* unk_20[2]; // is it actually UnkStruct_027E0C68_UnkSubClass2? - /* 0x28 */ UnkStruct_027E0C68_UnkSubClass1* unk_28[6]; - /* 0x40 */ UnkStruct_027E0C68_UnkSubClass1* unk_40[2]; // is array size 6? + /* 0x28 */ UnkStruct_027E0C68_UnkSubClass1_Base* unk_28[6]; + /* 0x40 */ UnkStruct_027E0C68_UnkSubClass1_Sub1* unk_40[2]; // is array size 6? /* 0x48 */ 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_UnkSubClass1* func_020366c4(void); - UnkStruct_027E0C68_UnkSubClass1* func_02036700(void); + UnkStruct_027E0C68_UnkSubClass1_Sub1* func_020366c4(void); + UnkStruct_027E0C68_UnkSubClass1_Sub1* func_02036700(void); UnkStruct_027E0C68_UnkSubClass2* func_0203673c(void); bool func_02036770(u32 param_2); unk32 func_02036798(void); @@ -115,13 +116,13 @@ public: bool func_02036d30(UnkStruct_027E0C68_UnkSubClass3* param_2); bool func_02036d4c(UnkStruct_027E0C68_UnkSubClass3* param_2); void func_02036d6c(void); - UnkStruct_027E0C68_UnkSubClass1* func_02036da8(u32 param_2, s16* param_3); + UnkStruct_027E0C68_UnkSubClass1_Base* func_02036da8(u32 param_2, s16* param_3); void func_02036edc(u32 param_2, u8 param_3); - UnkStruct_027E0C68_UnkSubClass1* func_02036f68(u32 param_2, u8* param_3); + UnkStruct_027E0C68_UnkSubClass1_Sub1* func_02036f68(u32 param_2, u8* param_3); UnkStruct_027E0C68_UnkSubClass2* func_020370d0(unk32 param_2, unk32 param_3); UnkStruct_027E0C68_UnkSubClass2* func_020370e8(unk32 param_2, unk16 param_3, unk16 param_4, unk32 param_5); void func_02037158(UnkSubClass1_02256FF8* param_2); - UnkStruct_027E0C68_UnkSubClass1* func_02037178(UnkSubClass1_02256FF8* param_2); + UnkStruct_027E0C68_UnkSubClass1_Base* func_02037178(UnkSubClass1_02256FF8* param_2); }; extern UnkStruct_027E0C68 data_027e0c68; diff --git a/include/Message/UnkStruct_027E0C68_UnkSubClass1.hpp b/include/Message/UnkStruct_027E0C68_UnkSubClass1.hpp index df2e9152..ef6350ec 100644 --- a/include/Message/UnkStruct_027E0C68_UnkSubClass1.hpp +++ b/include/Message/UnkStruct_027E0C68_UnkSubClass1.hpp @@ -8,6 +8,15 @@ #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; @@ -152,7 +161,7 @@ public: /* 0x3C */ }; -class UnkStruct_027E0C68_UnkSubClass1 : public SysObject { +class UnkStruct_027E0C68_UnkSubClass1_Base : public SysObject { public: /* 0x000 (vtable) */ /* 0x004 */ unk32* unk_04; @@ -160,10 +169,7 @@ public: /* 0x00C */ unk32* unk_0C; /* 0x010 */ unk32* unk_10; /* 0x014 */ unk32 unk_14; - /* 0x018 */ u8 unk_18; - /* 0x018 */ u8 unk_19; - /* 0x018 */ u8 unk_1A; - /* 0x018 */ u8 unk_1B; + /* 0x018 */ s32 unk_18; /* 0x01C */ unk32 unk_1C; /* 0x020 */ unk32 unk_20; /* 0x024 */ unk32* unk_24; @@ -198,6 +204,8 @@ public: /* 0x122 */ u8 unk_123; /* 0x124 */ UnkSubClass1_unk_124* unk_124; /* 0x128 */ UnkStruct1* unk_128; + + //! TODO: confirm this is part of the base class /* 0x12C */ u16* unk_12C; // pointer to the current position in the message to display /* 0x130 */ unk16 unk_130; /* 0x132 */ unk16 unk_132; @@ -216,10 +224,93 @@ public: /* 0x158 */ unk16 unk_158; /* 0x15A */ unk16 unk_15A; /* 0x15C */ s16 unk_15C; + /* 0x15E */ + + UnkStruct_027E0C68_UnkSubClass1_Base(); + /* 0x00 */ virtual ~UnkStruct_027E0C68_UnkSubClass1_Base(); + /* 0x08 */ virtual UNK_TYPE vfunc_08(void); // func_0203c2c8 (dtor?) + /* 0x0C */ virtual void func_02039228(unk32* param_2, unk32* param_3); + /* 0x10 */ virtual void func_02039578(u8 param_2, u8 param_3, u8 param_4, unk32 param_5); + /* 0x14 */ virtual void func_0203e060(u8 param_2, u8 param_3); + /* 0x18 */ virtual bool func_0203dcb4(unk32 param_2, unk32 param_3); + /* 0x1C */ virtual unk32 func_0203b264(UnkStruct_0203b264* param_2, unk32 param_3, unk32 param_4); + /* 0x20 */ virtual unk32 func_0203b310(unk8 param_2, UnkStruct_0203b264* param_3, unk8 param_4, unk32 param_5); + /* 0x24 */ virtual UNK_TYPE func_0203b814(UNK_TYPE); + /* 0x28 */ virtual bool func_0203e0c8(void); + /* 0x2C */ virtual void func_02039a5c(void); + /* 0x30 */ virtual void func_02038ed0(void); + /* 0x34 */ virtual unk32 func_02038c34(unk32 param_2); + /* 0x38 */ virtual bool func_0203c350(void); + /* 0x3C */ virtual void func_02039ccc(unk32 param_2); + /* 0x40 */ virtual void func_02039d74(unk32 param_2, unk32 param_3); + /* 0x44 */ virtual void func_0203a3fc(s32 touchLastX, s32 touchLastY); + /* 0x48 */ virtual void func_0203a328(void); + /* 0x4C */ virtual void func_02039a3c(void); + /* 0x50 */ virtual void func_0203a7f0(EntryINF1* param_2, u32 param_3, s16* param_4, unk32 param_5); + /* 0x54 */ virtual void func_0203a988(void); + /* 0x58 */ virtual void func_0203af1c(void); + /* 0x5C */ virtual void func_0203aea8(void); + /* 0x60 */ virtual void func_0203b410(func_0203b410_param_2* param_2, unk32 param_3, unk32 param_4); + /* 0x64 */ virtual void func_0203b5d0(unk32 param_2); + /* 0x68 */ virtual unk32 func_020393d0(unk32 param_2); + /* 0x6C */ virtual void func_0203bdcc(unk32* param_2, unk32* param_3); + /* 0x70 */ virtual void func_020394d8(unk32* param_2, unk32* param_3); + /* 0x74 */ + + unk32 func_02032fa4(void); + unk32 func_02032fb4(void); + unk32 func_020337d8(unk32 param_2); + u16* func_02037604(u16**); + void func_02038b28(void); + void func_02038b40(void); + 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_0203a2c0(void); + unk32 func_0203a30c(void); + void func_0203a35c(void); + unk32 func_0203a3e0(void); + unk32 func_0203a6d0(unk32, unk32); + unk32 func_0203b0bc(void); + void 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_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); + + // 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_02038b1c(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*); +}; + +class UnkStruct_027E0C68_UnkSubClass1_Sub1 : public UnkStruct_027E0C68_UnkSubClass1_Base { +public: /* 0x15E */ s8 unk_15E; /* 0x15F */ s8 unk_15F; /* 0x160 */ unk32 unk_160; - /* 0x164 */ UnkStruct_027E0C68_UnkSubClass1* unk_164; + /* 0x164 */ UnkStruct_027E0C68_UnkSubClass1_Base* unk_164; /* 0x168 */ UnkSubClass1_UnkownClass1 unk_168; /* 0x1F0 */ UnkSubClass1_UnkownClass1 unk_1F0; /* 0x278 */ UnkSubClass1_UnkownClass1 unk_278; @@ -227,7 +318,7 @@ public: /* 0x388 */ UnkSubClass1_UnkownClass1 unk_388; /* 0x410 */ UnkSubClass1_unk_410 unk_410; /* 0x414 */ unk32 unk_414; - /* 0x418 */ UnkStruct_027E0C68_UnkSubClass1* unk_418; + /* 0x418 */ UnkStruct_027E0C68_UnkSubClass1_Base* unk_418; /* 0x41C */ unk32 unk_41C; /* 0x420 */ unk32 unk_420; /* 0x424 */ UnkSubClass1_unk_424 unk_424; @@ -264,17 +355,18 @@ public: /* 0x584 */ u8 unk_584; /* 0x585 */ u8 unk_585; /* 0x586 */ u8 unk_586; + /* 0x588 */ u8 unk_588[0x2C]; + /* 0x5B4 */ - UnkStruct_027E0C68_UnkSubClass1(); - /* 0x00 */ virtual ~UnkStruct_027E0C68_UnkSubClass1() override; - /* 0x08 */ virtual UNK_TYPE vfunc_08(void) override; // func_0203c2c8 (dtor?) + /* 0x00 */ virtual ~UnkStruct_027E0C68_UnkSubClass1_Sub1() override; + /* 0x08 */ virtual UNK_TYPE vfunc_08(void); // func_0203c2c8 (dtor? override) /* 0x0C */ virtual void func_02039228(unk32* param_2, unk32* param_3) override; /* 0x10 */ virtual void func_02039578(u8 param_2, u8 param_3, u8 param_4, unk32 param_5) override; /* 0x14 */ virtual void func_0203e060(u8 param_2, u8 param_3) override; /* 0x18 */ virtual bool func_0203dcb4(unk32 param_2, unk32 param_3) override; /* 0x1C */ virtual unk32 func_0203b264(UnkStruct_0203b264* param_2, unk32 param_3, unk32 param_4) override; /* 0x20 */ virtual unk32 func_0203b310(unk8 param_2, UnkStruct_0203b264* param_3, unk8 param_4, unk32 param_5) override; - /* 0x24 */ virtual UNK_TYPE func_0203b814(void) override; + /* 0x24 */ virtual UNK_TYPE func_0203b814(UNK_TYPE) override; /* 0x28 */ virtual bool func_0203e0c8(void) override; /* 0x2C */ virtual void func_02039a5c(void) override; /* 0x30 */ virtual void func_02038ed0(void) override; @@ -289,59 +381,30 @@ public: /* 0x54 */ virtual void func_0203a988(void) override; /* 0x58 */ virtual void func_0203af1c(void) override; /* 0x5C */ virtual void func_0203aea8(void) override; - /* 0x60 */ virtual UNK_TYPE func_0203b410(void) override; + /* 0x60 */ virtual void func_0203b410(func_0203b410_param_2* param_2, unk32 param_3, unk32 param_4) override; /* 0x64 */ virtual void func_0203b5d0(unk32 param_2) override; /* 0x68 */ virtual unk32 func_020393d0(unk32 param_2) override; /* 0x6C */ virtual void func_0203bdcc(unk32* param_2, unk32* param_3) override; /* 0x70 */ virtual void func_020394d8(unk32* param_2, unk32* param_3) override; /* 0x74 */ - unk32 func_02032fa4(void); - unk32 func_02032fb4(void); - unk32 func_020337d8(unk32 param_2); - void func_02038b28(void); - void func_02038b40(void); - unk32 func_02038d10(void); - void func_02038d20(void); - unk32 func_0203905c(unk8 param_2, UnkStruct_0203b264* param_3, unk8 param_4, unk32 param_5); - void func_020393a8(unk32 param_2); - unk32 func_0203a2c0(void); - unk32 func_0203a30c(void); - void func_0203a35c(void); - unk32 func_0203a3e0(void); - void func_0203b0ec(unk32 param_2); - void func_0203bd8c(u16 param_2); - void func_0203be08(void); - void func_0203be64(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_020392b4(void); - void func_0203b764(void); - - void func_0203a188(unk32, unk32); - void func_0203e1b0(unk32, unk32, unk32); - unk32 func_0203a6d0(unk32, unk32); - unk32 func_0203b0bc(void); - void func_02038f44(EntryINF1* param_2, u32 param_3, s16* param_4, unk32 param_5, unk32 param_6); - u16* func_02037604(u16**); - void func_02039398(void); - - // 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_02038b1c(void); - void func_0203947c(void); - unk32 func_0203951c(void); - unk32 func_0203e284(UnkStruct_0203b264*, unk32, unk32); - void func_0203e2ac(unk32* param_2); - void func_0203fc78(unk32*, unk32*); - - void func_0203cabc(unk32); + UnkStruct_027E0C68_UnkSubClass1_Sub1(); +}; + +class UnkStruct_027E0C68_UnkSubClass1_Sub2 : public UnkStruct_027E0C68_UnkSubClass1_Base { +public: + /* 0x15E */ u8 unk_15E[0x62]; + /* 0x1C0 */ + + UnkStruct_027E0C68_UnkSubClass1_Sub2(); + virtual ~UnkStruct_027E0C68_UnkSubClass1_Sub2(); +}; + +class UnkStruct_027E0C68_UnkSubClass1_Sub3 : public UnkStruct_027E0C68_UnkSubClass1_Base { +public: + /* 0x15E */ u8 unk_15E[0x12]; + /* 0x170 */ + + UnkStruct_027E0C68_UnkSubClass1_Sub3(); + virtual ~UnkStruct_027E0C68_UnkSubClass1_Sub3(); }; diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp index 0c42adb2..15573317 100644 --- a/src/Main/Message/MessageManager.cpp +++ b/src/Main/Message/MessageManager.cpp @@ -6,7 +6,7 @@ extern ARM unk32 func_ov000_020d7f18(u32*, unk32); extern ARM unk32 func_ov000_020d77e4(u32*, unk32); extern ARM unk32 func_02037628(u8*); extern THUMB unk32 func_0202ab48(void); -extern ARM void func_0203dc74(UnkStruct_027E0C68_UnkSubClass1*, unk32, unk32); +extern ARM void func_0203dc74(UnkStruct_027E0C68_UnkSubClass1_Base*, unk32, unk32); // see Actor.cpp struct UnkStruct2 { @@ -90,14 +90,14 @@ THUMB void UnkStruct_027E0C68::func_02036490(unk32 param_2, unk32 param_3, unk32 switch (data_02056924[i + 1]) { case 0: if (data_027e0618 != 2) { - this->unk_28[i] = new(*data_027e0ce0[0], 4) UnkStruct_027E0C68_UnkSubClass1(); + this->unk_28[i] = new(*data_027e0ce0[0], 4) UnkStruct_027E0C68_UnkSubClass1_Sub1(); func_0203dc74(this->unk_28[i], 0xE0, 0x40); this->unk_28[i]->unk_2C = data_02068e6c; this->unk_28[i]->unk_50 = i != 0; } break; case 1: - this->unk_28[i] = new(*data_027e0ce0[0], 4) UnkStruct_027E0C68_UnkSubClass1(); + this->unk_28[i] = new(*data_027e0ce0[0], 4) UnkStruct_027E0C68_UnkSubClass1_Sub2(); func_0203dc74(this->unk_28[i], 0x50, 0x60); this->unk_28[i]->unk_2C = data_02068e6c; break; @@ -106,7 +106,7 @@ THUMB void UnkStruct_027E0C68::func_02036490(unk32 param_2, unk32 param_3, unk32 break; case 3: if (func_0202ab48() == 0) { - this->unk_28[i] = new(*data_027e0ce0[0], 4) UnkStruct_027E0C68_UnkSubClass1(); + this->unk_28[i] = new(*data_027e0ce0[0], 4) UnkStruct_027E0C68_UnkSubClass1_Sub3(); func_0203dc74(this->unk_28[i], 0xC0, 0x20); this->unk_28[i]->unk_2C = data_02068e8c; } else { @@ -148,21 +148,21 @@ THUMB void UnkStruct_027E0C68::func_0203665c(void) { ARM UnkStruct_027E0C68::~UnkStruct_027E0C68() {} // non-matching -ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_020366c4(void) { +ARM UnkStruct_027E0C68_UnkSubClass1_Sub1* UnkStruct_027E0C68::func_020366c4(void) { if ((data_02056be4[data_027e077c.mUnk_0] & 1) && !(data_02056be4[data_027e077c.mUnk_0] & 2)) { - return this->unk_28[2]; + return (UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[2]; } - return this->unk_28[0]; + return (UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[0]; } // non-matching -ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02036700(void) { +ARM UnkStruct_027E0C68_UnkSubClass1_Sub1* UnkStruct_027E0C68::func_02036700(void) { if ((data_02056be4[data_027e077c.mUnk_0] & 1) && !(data_02056be4[data_027e077c.mUnk_0] & 2)) { - return this->unk_28[0]; + return (UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[0]; } - return this->unk_28[2]; + return (UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[2]; } ARM UnkStruct_027E0C68_UnkSubClass2* UnkStruct_027E0C68::func_0203673c(void) { @@ -207,13 +207,11 @@ ARM bool UnkStruct_027E0C68::func_020367dc(int param_2) { } ARM bool UnkStruct_027E0C68::func_020367ec(void) { - //! TODO: fake? - return this->unk_28[0]->unk_15C > 0; + return ((UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[0])->unk_15C > 0; } ARM bool UnkStruct_027E0C68::func_02036808(void) { - //! TODO: fake? - return this->unk_28[2]->unk_15C > 0; + return ((UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[2])->unk_15C > 0; } ARM bool UnkStruct_027E0C68::func_02036824(void) { @@ -236,9 +234,8 @@ ARM bool UnkStruct_027E0C68::func_02036850(void) { ARM void UnkStruct_027E0C68::func_02036888(UnkStruct_027E0C68_UnkSubClass2* param_2) { if ((param_2->unk_18 & ~0xFFFF) != (0x100 << 0x10)) { - UnkStruct_027E0C68_UnkSubClass1* iVar1 = this->func_020366c4(); + UnkStruct_027E0C68_UnkSubClass1_Sub1* iVar1 = this->func_020366c4(); - //! TODO: fake? if (iVar1->unk_15C <= 0) { param_2->vfunc_10(); } else { @@ -258,9 +255,9 @@ ARM bool UnkStruct_027E0C68::func_020368f4(UnkStruct_027E0C68_UnkSubClass3* para // non-matching ARM void UnkStruct_027E0C68::func_0203690c(unk32 param_2, unk32 param_3, unk32 param_4) { - UnkStruct_027E0C68_UnkSubClass1* unk_28_0; - UnkStruct_027E0C68_UnkSubClass1* unk_28_2; - UnkStruct_027E0C68_UnkSubClass1 *pSVar4; + UnkStruct_027E0C68_UnkSubClass1_Sub1* unk_28_0; + UnkStruct_027E0C68_UnkSubClass1_Sub1* unk_28_2; + UnkStruct_027E0C68_UnkSubClass1_Base *pSVar4; ActorRef actorRef; Actor* pActor; bool iVar1; @@ -273,10 +270,10 @@ ARM void UnkStruct_027E0C68::func_0203690c(unk32 param_2, unk32 param_3, unk32 p this->unk_40[1] = this->unk_40[0]; - unk_28_0 = this->unk_28[0]; + unk_28_0 = (UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[0]; if (unk_28_0 != NULL && unk_28_0->unk_15C > 0) { - unk_28_2 = this->unk_28[2]; + unk_28_2 = (UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[2]; if (unk_28_2 != NULL && unk_28_2->unk_15C > 0) { this->unk_40[0] = this->func_020366c4(); @@ -284,7 +281,7 @@ ARM void UnkStruct_027E0C68::func_0203690c(unk32 param_2, unk32 param_3, unk32 p this->unk_40[0] = unk_28_2; } } else { - unk_28_2 = this->unk_28[2]; + unk_28_2 = (UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[2]; if (unk_28_2 != NULL && unk_28_2->unk_15C > 0) { this->unk_40[0] = unk_28_0; @@ -353,7 +350,7 @@ ARM void UnkStruct_027E0C68::func_0203690c(unk32 param_2, unk32 param_3, unk32 p } ARM void UnkStruct_027E0C68::func_02036bbc(void) { - UnkStruct_027E0C68_UnkSubClass1* pSVar3; + UnkStruct_027E0C68_UnkSubClass1_Base* pSVar3; bool bVar2; bool bVar4; s32 i; @@ -388,7 +385,7 @@ ARM void UnkStruct_027E0C68::func_02036ca4(unk32 param_2) { s32 i; for (i = 0; i < ARRAY_LEN(this->unk_28); i++) { - UnkStruct_027E0C68_UnkSubClass1* pSVar1 = this->unk_28[i]; + UnkStruct_027E0C68_UnkSubClass1_Base* pSVar1 = this->unk_28[i]; if (pSVar1 != NULL) { pSVar1->func_02039ccc(param_2); @@ -442,10 +439,10 @@ ARM void UnkStruct_027E0C68::func_02036d6c(void) { } // non-matching -ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02036da8(u32 param_2, s16* param_3) { +ARM UnkStruct_027E0C68_UnkSubClass1_Base* UnkStruct_027E0C68::func_02036da8(u32 param_2, s16* param_3) { EntryINF1 *pEVar1; EntryINF1 *pEVar2; - UnkStruct_027E0C68_UnkSubClass1 *pSVar4; + UnkStruct_027E0C68_UnkSubClass1_Base *pSVar4; BMGGroups *pBVar5; bool bVar6; s16 iStack_38; @@ -491,7 +488,7 @@ ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02036da8(u32 param // non-matching ARM void UnkStruct_027E0C68::func_02036edc(u32 param_2, u8 param_3) { - UnkStruct_027E0C68_UnkSubClass1 *pSVar1; + UnkStruct_027E0C68_UnkSubClass1_Sub1 *pSVar1; u8 auStack_28[24]; u8 local_13; @@ -514,12 +511,12 @@ ARM void UnkStruct_027E0C68::func_02036edc(u32 param_2, u8 param_3) { } // non-matching -ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02036f68(u32 param_2, u8* param_3) { +ARM UnkStruct_027E0C68_UnkSubClass1_Sub1* UnkStruct_027E0C68::func_02036f68(u32 param_2, u8* param_3) { EntryINF1 *pEVar1; - UnkStruct_027E0C68_UnkSubClass1 *pSVar2; + UnkStruct_027E0C68_UnkSubClass1_Base *pSVar2; EntryINF1 *pEVar3; int iVar4; - UnkStruct_027E0C68_UnkSubClass1 *pSVar5; + UnkStruct_027E0C68_UnkSubClass1_Sub1 *pSVar5; pEVar1 = func_02037258(&this->pGroups->entries[param_2 >> 0x10], param_2 & 0xffff); @@ -528,10 +525,10 @@ ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02036f68(u32 param } if (param_3[21] != 0) { - pSVar5 = this->unk_28[2]; + pSVar5 = (UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[2]; pSVar2 = this->unk_28[3]; } else { - pSVar5 = this->unk_28[0]; + pSVar5 = (UnkStruct_027E0C68_UnkSubClass1_Sub1*)this->unk_28[0]; pSVar2 = this->unk_28[1]; } @@ -580,7 +577,7 @@ ARM UnkStruct_027E0C68_UnkSubClass2* UnkStruct_027E0C68::func_020370e8(unk32 par } ARM void UnkStruct_027E0C68::func_02037158(UnkSubClass1_02256FF8* param_2) { - UnkStruct_027E0C68_UnkSubClass1* pSVar1; + UnkStruct_027E0C68_UnkSubClass1_Base* pSVar1; pSVar1 = this->func_02037178(param_2); @@ -589,7 +586,7 @@ ARM void UnkStruct_027E0C68::func_02037158(UnkSubClass1_02256FF8* param_2) { } } -ARM UnkStruct_027E0C68_UnkSubClass1* UnkStruct_027E0C68::func_02037178(UnkSubClass1_02256FF8* param_2) { +ARM UnkStruct_027E0C68_UnkSubClass1_Base* UnkStruct_027E0C68::func_02037178(UnkSubClass1_02256FF8* param_2) { s32 i; for (i = 0; i < ARRAY_LEN(this->unk_28); i++) { diff --git a/src/Main/Message/UnkStruct_027E0C68_UnkSubClass1.cpp b/src/Main/Message/UnkStruct_027E0C68_UnkSubClass1.cpp index ddba52f8..d36396ae 100644 --- a/src/Main/Message/UnkStruct_027E0C68_UnkSubClass1.cpp +++ b/src/Main/Message/UnkStruct_027E0C68_UnkSubClass1.cpp @@ -8,9 +8,19 @@ extern "C" u32 func_01ff9b4c(unk32, unk32); extern "C" unk32 func_0203c084(void); -extern "C" void func_ov018_02169634(UnkStruct_027E0C68_UnkSubClass1*); +extern "C" void func_ov018_02169634(UnkStruct_027E0C68_UnkSubClass1_Sub1*); extern "C" unk32 func_ov000_02079e04(void); extern "C" unk32 func_01ff9b88(unk32, unk32); +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; @@ -31,6 +41,7 @@ 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[]; @@ -83,7 +94,7 @@ public: }; extern UnkClass_027e1054 data_027e1054; -ARM unk32 UnkStruct_027E0C68_UnkSubClass1::func_02038c34(unk32 param_2) { +ARM unk32 UnkStruct_027E0C68_UnkSubClass1_Sub1::func_02038c34(unk32 param_2) { s16 iVar1; unk32 iVar2; unk32 iVar3; @@ -104,7 +115,7 @@ ARM unk32 UnkStruct_027E0C68_UnkSubClass1::func_02038c34(unk32 param_2) { return func_01ff9b4c(iVar2 + iVar3 / 2, uVar4); } -ARM void UnkStruct_027E0C68_UnkSubClass1::func_02038ed0(void) { +ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::func_02038ed0(void) { if (this->unk_15C > 0) { this->func_0203e090(); } else { @@ -113,13 +124,13 @@ ARM void UnkStruct_027E0C68_UnkSubClass1::func_02038ed0(void) { } // non-matching -ARM void UnkStruct_027E0C68_UnkSubClass1::func_02039228(unk32* param_2, unk32* param_3) { +ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::func_02039228(unk32* param_2, unk32* param_3) { this->unk_15C = 10; this->unk_152 = 1; this->func_0203e2ac(param_3); } -ARM unk32 UnkStruct_027E0C68_UnkSubClass1::func_020393d0(unk32 param_2) { +ARM unk32 UnkStruct_027E0C68_UnkSubClass1_Sub1::func_020393d0(unk32 param_2) { switch (param_2) { case 0: break; @@ -142,24 +153,24 @@ ARM unk32 UnkStruct_027E0C68_UnkSubClass1::func_020393d0(unk32 param_2) { return ((this->unk_18 << 3) - this->func_020337d8(param_2)) / 2; } -ARM void UnkStruct_027E0C68_UnkSubClass1::func_020394d8(unk32* param_2, unk32* param_3) { +ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::func_020394d8(unk32* param_2, unk32* param_3) { this->func_0203bdcc(param_2, param_3); *param_2 += this->unk_158; *param_3 += this->unk_15A; } -ARM void UnkStruct_027E0C68_UnkSubClass1::func_02039578(u8 param_2, u8 param_3, u8 param_4, unk32 param_5) { +ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::func_02039578(u8 param_2, u8 param_3, u8 param_4, unk32 param_5) { this->func_0203dc10(1, param_3); this->func_02033190(param_2, param_3, param_4, param_5); } -THUMB void UnkStruct_027E0C68_UnkSubClass1::func_02039a3c(void) { +THUMB void UnkStruct_027E0C68_UnkSubClass1_Sub1::func_02039a3c(void) { this->func_02038b28(); this->func_0203dcfc(this->unk_50, 0, 0, 2); } // non-matching -ARM void UnkStruct_027E0C68_UnkSubClass1::func_02039a5c(void) { +ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::func_02039a5c(void) { if (data_027e0618[0x101] != 0) { if (((data_02056be4[data_027e077c.mUnk_0] & 1) != 0) != this->unk_50) { return; @@ -234,7 +245,7 @@ ARM void UnkStruct_027E0C68_UnkSubClass1::func_02039a5c(void) { } } -ARM void UnkStruct_027E0C68_UnkSubClass1::func_02039ccc(unk32 param_2) { +ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::func_02039ccc(unk32 param_2) { if (this->unk_15C > 0 && this->func_0203de14(param_2) != 0) { if (this->unk_124->unk_29 != 3) { if ((this->unk_50 == 0) && func_ov000_02079e04() != 0) { @@ -254,8 +265,8 @@ ARM void UnkStruct_027E0C68_UnkSubClass1::func_02039ccc(unk32 param_2) { } // non-matching -ARM void UnkStruct_027E0C68_UnkSubClass1::func_02039d74(unk32 param_2, unk32 param_3) { - UnkStruct_027E0C68_UnkSubClass1* bVar1; +ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::func_02039d74(unk32 param_2, unk32 param_3) { + UnkStruct_027E0C68_UnkSubClass1_Base* bVar1; s8 cVar2; unk32 iVar4; unk32 iVar6; @@ -360,7 +371,7 @@ ARM void UnkStruct_027E0C68_UnkSubClass1::func_02039d74(unk32 param_2, unk32 par } // non-matching (regalloc) -ARM void UnkStruct_027E0C68_UnkSubClass1::func_0203a328(void) { +ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203a328(void) { if (this->unk_164 != NULL && this->unk_164->unk_15C > 0) { this->func_02038b40(); } @@ -369,7 +380,7 @@ ARM void UnkStruct_027E0C68_UnkSubClass1::func_0203a328(void) { } // non-matching -ARM void UnkStruct_027E0C68_UnkSubClass1::func_0203a3fc(s32 touchLastX, s32 touchLastY) { +ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203a3fc(s32 touchLastX, s32 touchLastY) { unk32 iVar2; unk32 iVar5; unk32 iStack_14; @@ -428,18 +439,19 @@ ARM void UnkStruct_027E0C68_UnkSubClass1::func_0203a3fc(s32 touchLastX, s32 touc case 7: break; case 2: - if (this->unk_164->unk_168.unk_06 <= 0) { - if ((data_027e0d78.mFlags & 2) != 0) { - this->unk_13C = 0; + //! TODO: fixme + // if (this->unk_164->unk_168.unk_06 <= 0) { + // if ((data_027e0d78.mFlags & 2) != 0) { + // this->unk_13C = 0; - if (this->func_0203b0bc() != 0) { - this->func_0203b0ec(1); - } + // if (this->func_0203b0bc() != 0) { + // this->func_0203b0ec(1); + // } - this->unk_1F0.unk_64 = 0; - this->unk_1F0.func_020352d8(); - } - } + // this->unk_1F0.unk_64 = 0; + // this->unk_1F0.func_020352d8(); + // } + // } break; case 0: case 1: @@ -462,7 +474,7 @@ ARM void UnkStruct_027E0C68_UnkSubClass1::func_0203a3fc(s32 touchLastX, s32 touc } // non-matching -ARM void UnkStruct_027E0C68_UnkSubClass1::func_0203a7f0(EntryINF1* param_2, u32 param_3, s16* param_4, unk32 param_5) { +ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203a7f0(EntryINF1* param_2, u32 param_3, s16* param_4, unk32 param_5) { bool bVar5; bool bVar2; int iVar4; @@ -472,7 +484,7 @@ ARM void UnkStruct_027E0C68_UnkSubClass1::func_0203a7f0(EntryINF1* param_2, u32 iVar6 = param_4[0]; if (data_027e0c54 != 0) { - UnkStruct_027E0C68_UnkSubClass1* pVar4 = data_027e0c68.func_02036700(); + UnkStruct_027E0C68_UnkSubClass1_Sub1* pVar4 = data_027e0c68.func_02036700(); if (pVar4 != NULL && pVar4->unk_15C > 0) { this->func_02038b40(); @@ -480,7 +492,7 @@ ARM void UnkStruct_027E0C68_UnkSubClass1::func_0203a7f0(EntryINF1* param_2, u32 } if (*((s32*)data_027e0618) == 2 && data_027e0d38->func_ov000_02078b40() == 2 && func_ov003_020f3f94(data_ov009_0211f5b4) == 0) { - UnkStruct_027E0C68_UnkSubClass1* pVar4 = data_027e0c68.unk_28[4]; + UnkStruct_027E0C68_UnkSubClass1_Sub1* pVar4 = (UnkStruct_027E0C68_UnkSubClass1_Sub1*)data_027e0c68.unk_28[4]; if (pVar4 != NULL && pVar4->unk_15C > 0) { this->func_02038b40(); @@ -509,7 +521,7 @@ ARM void UnkStruct_027E0C68_UnkSubClass1::func_0203a7f0(EntryINF1* param_2, u32 } // non-matching (can't get the switch decomp...) -ARM void UnkStruct_027E0C68_UnkSubClass1::func_0203a988(void) { +ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203a988(void) { short sVar1; int iVar2; u16* puVar3; @@ -534,7 +546,8 @@ ARM void UnkStruct_027E0C68_UnkSubClass1::func_0203a988(void) { this->unk_580 = 0; this->func_020392b4(); this->unk_57C = 0; - this->unk_164->unk_168.unk_06 = 0; + //! TODO: fixme + // this->unk_164->unk_168.unk_06 = 0; this->unk_57D = 0; this->unk_57F = 0; this->unk_57A = 0; @@ -562,7 +575,9 @@ ARM void UnkStruct_027E0C68_UnkSubClass1::func_0203a988(void) { uVar5 = (local_54[iVar2][3] << 0x10) | local_54[iVar2][2]; if (0x00010017 < uVar5) { if (uVar5 == 0x00020001) { - sVar1 = this->unk_164->unk_168.unk_06; + //! TODO: fixme + // sVar1 = this->unk_164->unk_168.unk_06; + // (param_1 + sVar1 * 2 + 0x562)[0] = '\x1B'; // (param_1 + sVar1 * 2 + 0x562)[1] = 0; } @@ -702,7 +717,7 @@ ARM void UnkStruct_027E0C68_UnkSubClass1::func_0203a988(void) { // (**(code **)(*(int *)param_1 + 0x10))(0); } -ARM void UnkStruct_027E0C68_UnkSubClass1::func_0203aea8(void) { +ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203aea8(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.func_020352d8(); @@ -714,7 +729,7 @@ ARM void UnkStruct_027E0C68_UnkSubClass1::func_0203aea8(void) { } // non-matching -ARM void UnkStruct_027E0C68_UnkSubClass1::func_0203af1c(void) { +ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203af1c(void) { bool bVar1; unk8* puVar2; int iVar3; @@ -728,7 +743,7 @@ ARM void UnkStruct_027E0C68_UnkSubClass1::func_0203af1c(void) { if ((puVar2 + 0x244) != NULL || (puVar2[0x250] == '\x02')) { puVar2 = data_027e103c->func_ov000_020cef9c(); - if ((UnkStruct_027E0C68_UnkSubClass1*)(puVar2 + 0x244) == this) { + if ((UnkStruct_027E0C68_UnkSubClass1_Sub1*)(puVar2 + 0x244) == this) { data_027e103c->func_ov000_020cfb38(); } } @@ -761,7 +776,7 @@ ARM void UnkStruct_027E0C68_UnkSubClass1::func_0203af1c(void) { } // non-matching (regalloc) -ARM unk32 UnkStruct_027E0C68_UnkSubClass1::func_0203b264(UnkStruct_0203b264* param_2, unk32 param_3, unk32 param_4) { +ARM unk32 UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203b264(UnkStruct_0203b264* param_2, unk32 param_3, unk32 param_4) { u16 sVar1; u32 uVar4; s32 unaff_r4; @@ -799,7 +814,7 @@ ARM unk32 UnkStruct_027E0C68_UnkSubClass1::func_0203b264(UnkStruct_0203b264* par } // non-matching -ARM unk32 UnkStruct_027E0C68_UnkSubClass1::func_0203b310(unk8 param_2, UnkStruct_0203b264* param_3, unk8 param_4, unk32 param_5) { +ARM unk32 UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203b310(unk8 param_2, UnkStruct_0203b264* param_3, unk8 param_4, unk32 param_5) { int iVar1; u16* psVar3; @@ -831,12 +846,89 @@ ARM unk32 UnkStruct_027E0C68_UnkSubClass1::func_0203b310(unk8 param_2, UnkStruct return 0; } -ARM UNK_TYPE UnkStruct_027E0C68_UnkSubClass1::func_0203b410(UNK_TYPE) { - // TODO +// non-matching +ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203b410(func_0203b410_param_2* param_2, unk32 param_3, unk32 param_4) { + unk16 sVar1; + unk16 uVar2; + unk32 iVar3; + unk32 iVar4; + unk32 uVar5; + u32 uVar6; + + uVar6 = 0; + + if (this->func_02032fa4() == 0) { + switch(param_2->unk_0C) { + case 0: + case 1: + uVar6 = this->unk_580 != 0; + break; + case 2: + uVar6 = 2; + break; + case 3: + uVar6 = 3; + break; + case 5: + uVar6 = 4; + break; + case 6: + uVar6 = 5; + break; + default: + // why??? + switch (param_2->unk_0C) { + case 4: + uVar6 = 8; + break; + case 7: + uVar6 = 9; + break; + default: + if (this->unk_580 != 0) { + uVar6 = 7; + } else { + uVar6 = 6; + } + break; + } + break; + } + } + + // PTR_PTR_0203b5ac[(byte)param_1[0x50]] = (char)uVar6; + data_027e0c68.unk_28[this->unk_50]->unk_50 = uVar6; + + if (this->unk_15E == 7) { + uVar5 = func_0202d5b4(data_02057f08, data_02057eec, data_020691a0, 0xCC00, 1); + func_02032304(data_02068894, data_02057ed8, data_02056af0, 1, param_4); + iVar3 = func_02016fcc(uVar5); + } else { + if (this->func_02032fa4() != 0) { + uVar5 = 0x33; + } else { + uVar5 = 0x32; + } + + data_027e0cbc.func_0203d77c(uVar5, 1, 1); + iVar3 = data_027e0cbc.func_0203d77c(data_02056a00[uVar6 * 0x18] - 2, 1, 1); + } + + if (param_2->unk_10 < 0) { + iVar3 = param_2->unk_12; + } + + if (param_2->unk_10 <= 0 && iVar3 > 0) { + uVar2 = param_2->unk_12; + this->unk_158 = param_2->unk_10; + this->unk_15A = uVar2; + } else { + this->func_0203b764(); + } } // non-matching (regalloc) -ARM void UnkStruct_027E0C68_UnkSubClass1::func_0203b5d0(unk32 param_2) { +ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203b5d0(unk32 param_2) { unk32 uVar2; if (this->unk_50 != 0 || data_027e0db0.unk_04 > 0 || func_0203c084() != 0 || (gAdventureFlags->Exists() && gAdventureFlags->func_ov00_02097738())) { @@ -864,17 +956,18 @@ ARM void UnkStruct_027E0C68_UnkSubClass1::func_0203b5d0(unk32 param_2) { this->func_020393a8(param_2); } -ARM UNK_TYPE UnkStruct_027E0C68_UnkSubClass1::func_0203b814(UNK_TYPE) { +// switch decomp issue +ARM UNK_TYPE UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203b814(UNK_TYPE) { // TODO } -ARM void UnkStruct_027E0C68_UnkSubClass1::func_0203bdcc(unk32* param_2, unk32* param_3) { +ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203bdcc(unk32* param_2, unk32* param_3) { this->func_0203947c(); *param_2 += this->unk_56E; *param_3 += this->unk_570; } -ARM UnkStruct_027E0C68_UnkSubClass1::~UnkStruct_027E0C68_UnkSubClass1() { +ARM UnkStruct_027E0C68_UnkSubClass1_Sub1::~UnkStruct_027E0C68_UnkSubClass1_Sub1() { this->unk_388.func_020350ac(); this->unk_300.func_020350ac(); this->unk_278.func_020350ac(); @@ -883,12 +976,12 @@ ARM UnkStruct_027E0C68_UnkSubClass1::~UnkStruct_027E0C68_UnkSubClass1() { this->func_02038b1c(); } -ARM bool UnkStruct_027E0C68_UnkSubClass1::func_0203c350(void) { +ARM bool UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203c350(void) { return true; } // non-matching -ARM bool UnkStruct_027E0C68_UnkSubClass1::func_0203dcb4(unk32 param_2, unk32 param_3) { +ARM bool UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203dcb4(unk32 param_2, unk32 param_3) { unk32 uVar1; unk32 local_c; unk32 local_10; @@ -903,14 +996,14 @@ ARM bool UnkStruct_027E0C68_UnkSubClass1::func_0203dcb4(unk32 param_2, unk32 par return true; } -ARM void UnkStruct_027E0C68_UnkSubClass1::func_0203e060(u8 param_2, u8 param_3) { +ARM void UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203e060(u8 param_2, u8 param_3) { this->func_0203dc10(1, param_3); this->unk_11E = param_2; this->unk_118 = -1; this->func_020331c4(param_2, -1); } -ARM bool UnkStruct_027E0C68_UnkSubClass1::func_0203e0c8(void) { +ARM bool UnkStruct_027E0C68_UnkSubClass1_Sub1::func_0203e0c8(void) { if (this->unk_122 != 0) { this->func_0203e0f8(); this->func_0203dc10(0);