diff --git a/config/eur/arm9/delinks.txt b/config/eur/arm9/delinks.txt index ffcae4b3..5dac9424 100644 --- a/config/eur/arm9/delinks.txt +++ b/config/eur/arm9/delinks.txt @@ -5,25 +5,33 @@ .data start:0x020572e0 end:0x02058e20 kind:data align:32 .bss start:0x02058e20 end:0x020773c0 kind:bss align:32 -src/Main/Actor/ActorType.cpp: +src/Main/Game/GameMode.cpp: complete - .text start:0x0203e784 end:0x0203e8a0 - .bss start:0x02069180 end:0x02069188 + .text start:0x0202c0a8 end:0x0202c0cc + .data start:0x0205762c end:0x02057650 + +src/Main/Game/Game.cpp: + .text start:0x0202c6c8 end:0x0202d0cc + .rodata start:0x020561f4 end:0x020562d4 + +src/Main/Message/BmgRelatedFunctions.cpp: + .text start:0x0202d3bc end:0x0202d56c + +src/Main/Unknown/UnkStruct_02063220.cpp: + .text start:0x0202f3f0 end:0x0202f8e8 + .rodata start:0x020562e0 end:0x02056300 + .data start:0x0205772c end:0x02057808 src/Main/System/OverlayManager.cpp: complete .text start:0x0202ff44 end:0x0203003c -libs/cpp/src/__register_global_object.cpp: - complete - .text start:0x0204f8d4 end:0x0204f8f4 - .bss start:0x02076da8 end:0x02076dac - -src/Main/Message/BmgRelatedFunctions.cpp: - .text start:0x0202d3bc end:0x0202d56c +src/Main/Unknown/UnkStruct_0206322c.cpp: + .text start:0x02030354 end:0x020306c0 src/Main/Unknown/UnkStruct_02032f0c.cpp: .text start:0x02032f0c end:0x02033d40 + .data start:0x020579c0 end:0x02057a00 src/Main/Unknown/UnkStruct_02035064.cpp: .text start:0x02035064 end:0x02035370 @@ -37,42 +45,47 @@ src/Main/Message/BMG.cpp: .data start:0x02057b78 end:0x02057cb8 .rodata start:0x02056958 end:0x020569e0 +src/Main/DTCM/UnkStruct_027e05f8_2.cpp: + complete + .text start:0x0203744c end:0x020374b4 + .init start:0x02050cb4 end:0x02050ce0 + .ctor start:0x02057260 end:0x02057264 + .dtcm start:0x027e05f8 end:0x027e060c + src/Main/Unknown/UnkStruct_02037750.cpp: - .text start:0x02037750 end:0x020387e0 - .data start:0x02057cb8 end:0x02057d70 + .text start:0x02037750 end:0x020386d8 + .data start:0x02057cb8 end:0x02057d34 + +src/Main/Unknown/UnkStruct_020386d8.cpp: + .text start:0x020386d8 end:0x020387e0 + .data start:0x02057d34 end:0x02057d70 src/Main/Unknown/UnkStruct_02038aa0.cpp: .text start:0x0203881c end:0x02039578 + .data start:0x02057d88 end:0x02057e14 + +src/Main/Unknown/UnkStruct_020397f8.cpp: + .text start:0x020397f8 end:0x0203c358 + .data start:0x02057e14 end:0x02057ed0 src/Main/Message/func_0203c358.cpp: .text start:0x0203c358 end:0x0203c72c + .data start:0x02057f0c end:0x02057f88 src/Main/Message/func_0203c72c.cpp: .text start:0x0203c72c end:0x0203c8a8 + .data start:0x02057f88 end:0x02058004 src/Main/Unknown/UnkStruct_0203dae0.cpp: .text start:0x0203dae0 end:0x0203e784 + .data start:0x0205804c end:0x02058088 -src/Main/Unknown/UnkStruct_0206322c.cpp: - .text start:0x02030354 end:0x020306c0 - -src/Main/Unknown/UnkStruct_02063220.cpp: - .text start:0x0202f3f0 end:0x0202f8e8 - .rodata start:0x020562e0 end:0x02056300 - .data start:0x0205772c end:0x02057808 - -src/Main/Game/Game.cpp: - .text start:0x0202c6c8 end:0x0202d0cc - .rodata start:0x020561f4 end:0x020562d4 - -src/Main/Game/GameMode.cpp: +src/Main/Actor/ActorType.cpp: complete - .text start:0x0202c0a8 end:0x0202c0cc - .data start:0x0205762c end:0x02057650 + .text start:0x0203e784 end:0x0203e8a0 + .bss start:0x02069180 end:0x02069188 -src/Main/DTCM/UnkStruct_027e05f8_2.cpp: +libs/cpp/src/__register_global_object.cpp: complete - .text start:0x0203744c end:0x020374b4 - .init start:0x02050cb4 end:0x02050ce0 - .ctor start:0x02057260 end:0x02057264 - .dtcm start:0x027e05f8 end:0x027e060c + .text start:0x0204f8d4 end:0x0204f8f4 + .bss start:0x02076da8 end:0x02076dac diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index 48f35300..f210bb85 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -3295,7 +3295,7 @@ _ZN18UnkStruct_027e103c19func_ov000_020cfa70Eii kind:function(arm,size=0x40) add _ZN18UnkStruct_027e103c19func_ov000_020cfab0Ev kind:function(arm,size=0xc) addr:0x020cfab0 _ZN18UnkStruct_027e103c19func_ov000_020cfabcEii kind:function(arm,size=0x2c) addr:0x020cfabc _ZN18UnkStruct_027e103c19func_ov000_020cfae8Eii kind:function(arm,size=0x38) addr:0x020cfae8 -_ZN18UnkStruct_027e103c19func_ov000_020cfb20Ei kind:function(arm,size=0x18) addr:0x020cfb20 +_ZN18UnkStruct_027e103c19func_ov000_020cfb20EPv kind:function(arm,size=0x18) addr:0x020cfb20 _ZN18UnkStruct_027e103c19func_ov000_020cfb38Ev kind:function(arm,size=0x10) addr:0x020cfb38 _ZN18UnkStruct_027e103c19func_ov000_020cfb48Ev kind:function(arm,size=0x10) addr:0x020cfb48 _ZN18UnkStruct_027e103c19func_ov000_020cfb58Ev kind:function(arm,size=0x10) addr:0x020cfb58 @@ -3337,9 +3337,9 @@ func_ov000_020d0530 kind:function(arm,size=0x1c) addr:0x020d0530 func_ov000_020d054c kind:function(arm,size=0x48) addr:0x020d054c func_ov000_020d0594 kind:function(arm,size=0x48) addr:0x020d0594 func_ov000_020d05dc kind:function(arm,size=0x30) addr:0x020d05dc -func_ov000_020d060c kind:function(arm,size=0x30) addr:0x020d060c +_ZN28UnkClass_func_ov000_020d0644C1Ev kind:function(arm,size=0x30) addr:0x020d060c func_ov000_020d063c kind:function(arm,size=0x8) addr:0x020d063c -func_ov000_020d0644 kind:function(arm,size=0x2c) addr:0x020d0644 +_ZN28UnkClass_func_ov000_020d064419func_ov000_020d0644Eiiiii kind:function(arm,size=0x2c) addr:0x020d0644 func_ov000_020d0670 kind:function(arm,size=0x120) addr:0x020d0670 func_ov000_020d0790 kind:function(arm,size=0x74) addr:0x020d0790 func_ov000_020d0804 kind:function(arm,size=0x44) addr:0x020d0804 @@ -3610,7 +3610,7 @@ func_ov000_020d7524 kind:function(arm,size=0x68) addr:0x020d7524 func_ov000_020d758c kind:function(arm,size=0x3c) addr:0x020d758c func_ov000_020d75c8 kind:function(arm,size=0x14) addr:0x020d75c8 func_ov000_020d75dc kind:function(arm,size=0x208) addr:0x020d75dc -func_ov000_020d77e4 kind:function(arm,size=0x9c) addr:0x020d77e4 +_ZN18UnkStruct_020eec9c19func_ov000_020d77e4Ei kind:function(arm,size=0x9c) addr:0x020d77e4 func_ov000_020d7880 kind:function(arm,size=0x20) addr:0x020d7880 func_ov000_020d78a0 kind:function(arm,size=0x1e4) addr:0x020d78a0 func_ov000_020d7a84 kind:function(arm,size=0x50) addr:0x020d7a84 diff --git a/config/eur/arm9/overlays/ov040/relocs.txt b/config/eur/arm9/overlays/ov040/relocs.txt index cda57e8d..4f3a92af 100644 --- a/config/eur/arm9/overlays/ov040/relocs.txt +++ b/config/eur/arm9/overlays/ov040/relocs.txt @@ -1289,7 +1289,7 @@ from:0x02187cd4 kind:arm_call to:0x02033cbc module:main from:0x02187d64 kind:arm_call to:0x020334b4 module:main from:0x02187d98 kind:arm_call to:0x0203b814 module:main from:0x02187dac kind:load to:0x02068e8c module:main -from:0x02187db0 kind:load to:0x020579f8 module:main +from:0x02187db0 kind:load to:0x020579f0 add:8 module:main from:0x02187dc0 kind:load to:0x02039d74 module:main from:0x02187dfc kind:arm_call_thumb to:0x0202ab48 module:main from:0x02187e20 kind:arm_call_thumb to:0x0202ab48 module:main diff --git a/config/eur/arm9/relocs.txt b/config/eur/arm9/relocs.txt index 1c28854d..5cb6cf2c 100644 --- a/config/eur/arm9/relocs.txt +++ b/config/eur/arm9/relocs.txt @@ -4121,13 +4121,13 @@ from:0x02032e4c kind:arm_call_thumb to:0x02032f94 module:main from:0x02032e54 kind:arm_call to:0x0202ea0c module:main from:0x02032e78 kind:load to:0x027e05f4 module:dtcm from:0x02032ea4 kind:arm_call_thumb to:0x0202ab48 module:main -from:0x02032ec0 kind:load to:0x020579f8 module:main +from:0x02032ec0 kind:load to:0x020579f0 add:8 module:main from:0x02032eec kind:arm_call_thumb to:0x0202ab48 module:main -from:0x02032f08 kind:load to:0x020579f8 module:main +from:0x02032f08 kind:load to:0x020579f0 add:8 module:main from:0x02032f50 kind:thumb_call_arm to:0x020078f4 module:main from:0x02032f5c kind:thumb_call_arm to:0x020078f4 module:main from:0x02032f68 kind:thumb_call_arm to:0x020078c0 module:main -from:0x02032f80 kind:load to:0x020579c8 module:main +from:0x02032f80 kind:load to:0x020579c0 add:8 module:main from:0x02032f8c kind:thumb_call_arm to:0x0202ea0c module:main from:0x02032fb0 kind:load to:0x02035428 module:main from:0x02033068 kind:arm_call to:0x02033cbc module:main @@ -4634,16 +4634,16 @@ from:0x0203771c kind:load to:0x027e077c module:dtcm from:0x02037720 kind:load to:0x02056be4 module:main from:0x02037748 kind:load to:0x027e0c54 module:dtcm from:0x0203774c kind:load to:0x027e0618 module:dtcm -from:0x02037790 kind:load to:0x02057d00 module:main +from:0x02037790 kind:load to:0x02057cf8 add:8 module:main from:0x020377b8 kind:arm_call to:0x02036d4c module:main -from:0x020377c4 kind:load to:0x02057d00 module:main +from:0x020377c4 kind:load to:0x02057cf8 add:8 module:main from:0x020377c8 kind:load to:0x027e0c68 module:dtcm from:0x020377f0 kind:arm_call to:0x02036d4c module:main from:0x020377f8 kind:arm_call to:0x0202ea0c module:main -from:0x02037804 kind:load to:0x02057d00 module:main +from:0x02037804 kind:load to:0x02057cf8 add:8 module:main from:0x02037808 kind:load to:0x027e0c68 module:dtcm from:0x02037830 kind:arm_call to:0x02036d4c module:main -from:0x0203783c kind:load to:0x02057d00 module:main +from:0x0203783c kind:load to:0x02057cf8 add:8 module:main from:0x02037840 kind:load to:0x027e0c68 module:dtcm from:0x0203787c kind:arm_call to:0x02037724 module:main from:0x020378c0 kind:arm_call_thumb to:0x02114810 module:overlay(9) @@ -4715,11 +4715,11 @@ from:0x0203866c kind:arm_call to:0x02036f68 module:main from:0x020386b0 kind:load to:0x027e0c68 module:dtcm from:0x020386e8 kind:arm_call to:0x02037750 module:main from:0x02038704 kind:arm_call to:0x020376c0 module:main -from:0x02038710 kind:load to:0x02057d3c module:main +from:0x02038710 kind:load to:0x02057d34 add:8 module:main from:0x02038714 kind:load to:0x027e0d0c module:dtcm from:0x02038728 kind:arm_call to:0x02037750 module:main from:0x02038744 kind:arm_call to:0x020376c0 module:main -from:0x02038750 kind:load to:0x02057d3c module:main +from:0x02038750 kind:load to:0x02057d34 add:8 module:main from:0x02038754 kind:load to:0x027e0d0c module:dtcm from:0x02038760 kind:arm_call to:0x02037844 module:main from:0x02038778 kind:arm_call to:0x020385d0 module:main @@ -4729,7 +4729,7 @@ from:0x020387c8 kind:load to:0x027e0c68 module:dtcm from:0x020387d4 kind:arm_call to:0x0203780c module:main from:0x02038808 kind:arm_call_thumb to:0x0202ab48 module:main from:0x02038824 kind:arm_call to:0x02032e7c module:main -from:0x02038854 kind:load to:0x02057e0c module:main +from:0x02038854 kind:load to:0x02057e04 add:8 module:main from:0x02038890 kind:arm_call to:0x02038804 module:main from:0x02038940 kind:load to:0x027e0d38 module:dtcm from:0x02038944 kind:load to:0x027e0c68 module:dtcm @@ -4740,7 +4740,7 @@ from:0x02038a8c kind:arm_call to:0x02038804 module:main from:0x02038aa6 kind:thumb_call to:0x0203dae0 module:main from:0x02038aba kind:thumb_call_arm to:0x0203881c module:main from:0x02038ac4 kind:thumb_call to:0x020387e0 module:main -from:0x02038af8 kind:load to:0x02057d90 module:main +from:0x02038af8 kind:load to:0x02057d88 add:8 module:main from:0x02038b00 kind:thumb_call to:0x0203dbe0 module:main from:0x02038b0c kind:thumb_call to:0x0203dbe0 module:main from:0x02038b12 kind:thumb_call_arm to:0x0202ea0c module:main @@ -4825,7 +4825,7 @@ from:0x0203979a kind:thumb_call_arm to:0x020350b4 module:main from:0x020397ac kind:thumb_call_arm to:0x020351b8 module:main from:0x020397be kind:thumb_call_arm to:0x020351b8 module:main from:0x020397d0 kind:thumb_call_arm to:0x020351b8 module:main -from:0x020397dc kind:load to:0x02057e5c module:main +from:0x020397dc kind:load to:0x02057e54 add:8 module:main from:0x02039802 kind:thumb_call to:0x02038aa0 module:main from:0x02039816 kind:thumb_call_arm to:0x02035064 module:main from:0x02039820 kind:thumb_call_arm to:0x02035064 module:main @@ -4847,7 +4847,7 @@ from:0x020399de kind:thumb_call_arm to:0x020350b4 module:main from:0x020399f0 kind:thumb_call_arm to:0x020351b8 module:main from:0x02039a02 kind:thumb_call_arm to:0x020351b8 module:main from:0x02039a14 kind:thumb_call_arm to:0x020351b8 module:main -from:0x02039a20 kind:load to:0x02057e5c module:main +from:0x02039a20 kind:load to:0x02057e54 add:8 module:main from:0x02039a42 kind:thumb_call to:0x02038b28 module:main from:0x02039a54 kind:thumb_call_arm to:0x0203dcfc module:main from:0x02039aa0 kind:arm_call to:0x02038d20 module:main @@ -5177,7 +5177,7 @@ from:0x0203c334 kind:arm_call to:0x020350ac module:main from:0x0203c33c kind:arm_call to:0x020350ac module:main from:0x0203c344 kind:arm_call_thumb to:0x02038b1c module:main from:0x0203c360 kind:thumb_call to:0x02038aa0 module:main -from:0x0203c394 kind:load to:0x02057f14 module:main +from:0x0203c394 kind:load to:0x02057f0c add:8 module:main from:0x0203c3a2 kind:thumb_call to:0x02038b28 module:main from:0x0203c3c0 kind:thumb_call_arm to:0x0203fc78 module:main from:0x0203c3dc kind:thumb_call_arm to:0x0203d318 module:main @@ -5209,7 +5209,7 @@ from:0x0203c7c0 kind:arm_call to:0x020d0644 module:overlay(0) from:0x0203c7e0 kind:arm_call to:0x020d0644 module:overlay(0) from:0x0203c800 kind:arm_call to:0x020d0644 module:overlay(0) from:0x0203c820 kind:arm_call to:0x020d0644 module:overlay(0) -from:0x0203c830 kind:load to:0x02057f90 module:main +from:0x0203c830 kind:load to:0x02057f88 add:8 module:main from:0x0203c834 kind:load to:0x0203c83c module:main from:0x0203c838 kind:load to:0x020d060c module:overlay(0) from:0x0203c858 kind:arm_call to:0x0204f754 module:main @@ -5275,14 +5275,14 @@ from:0x0203d19c kind:arm_call to:0x0203cfb8 module:main from:0x0203d1a4 kind:arm_call to:0x0203cfb8 module:main from:0x0203d1ac kind:arm_call to:0x0203ceb8 module:main from:0x0203d1c8 kind:arm_call to:0x0203cdf4 module:main -from:0x0203d1e8 kind:load to:0x0205803c module:main -from:0x0203d1ec kind:load to:0x02058024 module:main +from:0x0203d1e8 kind:load to:0x02058034 add:8 module:main +from:0x0203d1ec kind:load to:0x0205801c add:8 module:main from:0x0203d1fc kind:arm_call to:0x0202ea0c module:main from:0x0203d228 kind:arm_call to:0x02032fa4 module:main from:0x0203d240 kind:arm_call to:0x0203d168 module:main from:0x0203d250 kind:load to:0x02068ed0 module:main -from:0x0203d26c kind:load to:0x0205803c module:main -from:0x0203d270 kind:load to:0x0205800c module:main +from:0x0203d26c kind:load to:0x02058034 add:8 module:main +from:0x0203d270 kind:load to:0x02058004 add:8 module:main from:0x0203d280 kind:arm_call to:0x0202ea0c module:main from:0x0203d2ac kind:arm_call to:0x02032fa4 module:main from:0x0203d2c4 kind:arm_call to:0x0203d168 module:main @@ -5362,15 +5362,15 @@ from:0x0203db3a kind:thumb_call_arm to:0x0202e9dc module:main from:0x0203db42 kind:thumb_call_arm to:0x0203d1d0 module:main from:0x0203db56 kind:thumb_call_arm to:0x0202e9dc module:main from:0x0203db5e kind:thumb_call_arm to:0x0203d254 module:main -from:0x0203db6c kind:load to:0x02058054 module:main +from:0x0203db6c kind:load to:0x0205804c add:8 module:main from:0x0203db74 kind:load to:0x027e0ce0 module:dtcm from:0x0203db9c kind:thumb_call to:0x02032f94 module:main -from:0x0203dba4 kind:load to:0x02058054 module:main +from:0x0203dba4 kind:load to:0x0205804c add:8 module:main from:0x0203dbcc kind:thumb_call to:0x02032f94 module:main from:0x0203dbd2 kind:thumb_call_arm to:0x0202ea0c module:main -from:0x0203dbdc kind:load to:0x02058054 module:main +from:0x0203dbdc kind:load to:0x0205804c add:8 module:main from:0x0203dc04 kind:thumb_call to:0x02032f94 module:main -from:0x0203dc0c kind:load to:0x02058054 module:main +from:0x0203dc0c kind:load to:0x0205804c add:8 module:main from:0x0203dc50 kind:arm_call to:0x0203d1b4 module:main from:0x0203dc84 kind:arm_call to:0x0203ddfc module:main from:0x0203dcc8 kind:arm_call to:0x02032fa4 module:main diff --git a/config/eur/arm9/symbols.txt b/config/eur/arm9/symbols.txt index 549e436d..a363cf4c 100644 --- a/config/eur/arm9/symbols.txt +++ b/config/eur/arm9/symbols.txt @@ -1394,7 +1394,7 @@ func_0202d140 kind:function(thumb,size=0x24) addr:0x0202d140 func_0202d164 kind:function(thumb,size=0x60) addr:0x0202d164 func_0202d1c4 kind:function(thumb,size=0x58) addr:0x0202d1c4 func_0202d21c kind:function(thumb,size=0x20) addr:0x0202d21c -func_0202d23c kind:function(thumb,size=0x180) addr:0x0202d23c +_ZN19UnkStruct_astruct_313func_0202d23cEiPjiijPiii kind:function(thumb,size=0x180) addr:0x0202d23c _Z13func_0202d3bciPjPciibii kind:function(thumb,size=0xb8) addr:0x0202d3bc func_0202d474 kind:function(thumb,size=0xdc) addr:0x0202d474 _Z13func_0202d550iPjPciii kind:function(thumb,size=0x1c) addr:0x0202d550 @@ -1650,8 +1650,8 @@ _ZN18UnkStruct_02032e7cC1Ev kind:function(arm,size=0x48) addr:0x02032ec4 _ZN18UnkStruct_02032f0cC2Ev kind:function(thumb,size=0x78) addr:0x02032f0c _ZN18UnkStruct_02032f0cD1Ev kind:function(thumb,size=0x2) addr:0x02032f84 _ZN18UnkStruct_02032f0cD0Ev kind:function(thumb,size=0xc) addr:0x02032f88 -_ZN18UnkStruct_02032f0cD2Ev kind:function(thumb,size=0x4) addr:0x02032f94 -_ZN18UnkStruct_02032f0c9SetUnk_0cEPt kind:function(arm,size=0xc) addr:0x02032f98 +_ZN18UnkStruct_02032f0cD2Ev kind:function(thumb,size=0x2) addr:0x02032f94 +_ZN18UnkStruct_02032f0c13func_02032f98EPt kind:function(arm,size=0xc) addr:0x02032f98 _ZN18UnkStruct_02032f0c13func_02032fa4Ev kind:function(arm,size=0x10) addr:0x02032fa4 _ZN18UnkStruct_02032f0c13func_02032fb4Ev kind:function(arm,size=0x18) addr:0x02032fb4 _ZN18UnkStruct_02032f0c8vfunc_14Eii kind:function(arm,size=0x64) addr:0x02032fcc @@ -1659,16 +1659,16 @@ _ZN18UnkStruct_02032f0c8vfunc_08EiiPsi kind:function(arm,size=0x160) addr:0x0203 _ZN18UnkStruct_02032f0c8vfunc_0cEiiii kind:function(arm,size=0x34) addr:0x02033190 _ZN18UnkStruct_02032f0c8vfunc_10Eji kind:function(arm,size=0x50) addr:0x020331c4 _ZN18UnkStruct_02032f0c13func_02033214Eiiihi kind:function(arm,size=0xd0) addr:0x02033214 -_ZN18UnkStruct_02032f0c8vfunc_18Ei kind:function(arm,size=0x7c) addr:0x020332e4 +_ZN18UnkStruct_02032f0c8vfunc_18EP18UnkStruct_02032e7cii kind:function(arm,size=0x7c) addr:0x020332e4 _ZN18UnkStruct_02032f0c8vfunc_1cEiPiii kind:function(arm,size=0x80) addr:0x02033360 _ZN18UnkStruct_02032f0c8vfunc_20EiPi kind:function(arm,size=0xd4) addr:0x020333e0 _ZN18UnkStruct_02032f0c13func_020334b4Ejiii kind:function(arm,size=0x174) addr:0x020334b4 -_ZN18UnkStruct_02032f0c13func_02033628EiPt kind:function(arm,size=0x74) addr:0x02033628 +_ZN18UnkStruct_02032f0c13func_02033628EP18UnkStruct_02032e7cPPti kind:function(arm,size=0x74) addr:0x02033628 _ZN18UnkStruct_02032f0c13func_0203369cEPti kind:function(arm,size=0xe4) addr:0x0203369c _ZN18UnkStruct_02032f0c13func_02033780Ei kind:function(arm,size=0x58) addr:0x02033780 _ZN18UnkStruct_02032f0c13func_020337d8Ei kind:function(arm,size=0x24) addr:0x020337d8 _ZN18UnkStruct_02032f0c13func_020337fcEPsi kind:function(arm,size=0xac) addr:0x020337fc -_ZN18UnkStruct_02032f0c13func_020338a8Eii kind:function(arm,size=0x28) addr:0x020338a8 +_ZN18UnkStruct_02032f0c13func_020338a8EP18UnkStruct_02032e7ci kind:function(arm,size=0x28) addr:0x020338a8 _ZN18UnkStruct_02032f0c13func_020338d0EPii kind:function(arm,size=0x34) addr:0x020338d0 _ZN18UnkStruct_02032f0c13func_02033904Eii kind:function(arm,size=0x34) addr:0x02033904 _ZN18UnkStruct_02032f0c13func_02033938Ei kind:function(arm,size=0x34) addr:0x02033938 @@ -1789,7 +1789,7 @@ _ZN18UnkStruct_027e0c5413func_020361d0Ev kind:function(arm,size=0x70) addr:0x020 func_02036240 kind:function(arm,size=0x170) addr:0x02036240 _ZN18UnkStruct_027e0c5413func_020363b0Ev kind:function(arm,size=0x18) addr:0x020363b0 func_020363c8 kind:function(arm,size=0x74) addr:0x020363c8 -_ZN14MessageManager13func_0203643cEPiPS_j kind:function(arm,size=0x54) addr:0x0203643c +_ZN14MessageManager13func_0203643cEPPtPS_j kind:function(arm,size=0x54) addr:0x0203643c _ZN14MessageManager13func_02036490Ev kind:function(thumb,size=0x1cc) addr:0x02036490 _ZN14MessageManager13func_0203665cEv kind:function(thumb,size=0x4a) addr:0x0203665c func_020366a8 kind:function(arm,size=0x1c) addr:0x020366a8 @@ -1858,62 +1858,62 @@ _ZN18UnkStruct_020377508vfunc_1cEv kind:function(arm,size=0x8) addr:0x020386c4 _ZN18UnkStruct_020377508vfunc_20Ev kind:function(arm,size=0xc) addr:0x020386cc _ZN18UnkStruct_020386d8C2Ev kind:function(arm,size=0x40) addr:0x020386d8 _ZN18UnkStruct_020386d8C1Ev kind:function(arm,size=0x40) addr:0x02038718 -_ZN18UnkStruct_020386d88vfunc_08Ej kind:function(arm,size=0x18) addr:0x02038758 -_ZN18UnkStruct_020386d88vfunc_24Ei kind:function(arm,size=0x1c) addr:0x02038770 -_ZN18UnkStruct_020386d88vfunc_28Ei kind:function(arm,size=0x18) addr:0x0203878c -_ZN18UnkStruct_020386d88vfunc_30Ev kind:function(arm,size=0x28) addr:0x020387a4 -_ZN18UnkStruct_020386d8D2Ev kind:function(arm,size=0x14) addr:0x020387cc +func_02038758 kind:function(arm,size=0x18) addr:0x02038758 +func_02038770 kind:function(arm,size=0x1c) addr:0x02038770 +func_0203878c kind:function(arm,size=0x18) addr:0x0203878c +func_020387a4 kind:function(arm,size=0x28) addr:0x020387a4 +func_020387cc kind:function(arm,size=0x14) addr:0x020387cc func_020387e0 kind:function(thumb,size=0xc) addr:0x020387e0 func_020387ec kind:function(arm,size=0x18) addr:0x020387ec func_02038804 kind:function(arm,size=0x18) addr:0x02038804 -_ZN18UnkStruct_0203881cC2Ev kind:function(arm,size=0x3c) addr:0x0203881c -_ZN18UnkStruct_0203881c13func_02038858Ei kind:function(arm,size=0x30) addr:0x02038858 -_ZN18UnkStruct_0203881c13func_02038888Ev kind:function(arm,size=0xc8) addr:0x02038888 -_ZN18UnkStruct_0203881c13func_02038950EP18UnkStruct_02038aa0i kind:function(arm,size=0x130) addr:0x02038950 -_ZN18UnkStruct_0203881c13func_02038a80Ei kind:function(arm,size=0x1c) addr:0x02038a80 -_ZN18UnkStruct_0203881cD1Ev kind:function(thumb,size=0x2) addr:0x02038a9c +func_0203881c kind:function(arm,size=0x3c) addr:0x0203881c +func_02038858 kind:function(arm,size=0x30) addr:0x02038858 +func_02038888 kind:function(arm,size=0xc8) addr:0x02038888 +func_02038950 kind:function(arm,size=0x130) addr:0x02038950 +func_02038a80 kind:function(arm,size=0x1c) addr:0x02038a80 +_ZN18UnkStruct_0203881c8vfunc_00Ev kind:function(thumb,size=0x2) addr:0x02038a9c _ZN18UnkStruct_02038aa0C2Ehh kind:function(thumb,size=0x5c) addr:0x02038aa0 _ZN18UnkStruct_02038aa0D1Ev kind:function(thumb,size=0xc) addr:0x02038afc _ZN18UnkStruct_02038aa0D0Ev kind:function(thumb,size=0x12) addr:0x02038b08 _ZN18UnkStruct_02038aa0D2Ev kind:function(thumb,size=0xc) addr:0x02038b1c -_ZN18UnkStruct_02038aa013func_02038b28Ev kind:function(thumb,size=0xc) addr:0x02038b28 -_ZN18UnkStruct_02038aa08vfunc_4cEji kind:function(arm,size=0xc) addr:0x02038b34 -_ZN18UnkStruct_02038aa08vfunc_10Ei kind:function(arm,size=0x34) addr:0x02038b40 -_ZN18UnkStruct_02038aa013func_02038b74Ev kind:function(arm,size=0x4) addr:0x02038b74 -_ZN18UnkStruct_02038aa08vfunc_48Ev kind:function(arm,size=0xbc) addr:0x02038b78 -_ZN18UnkStruct_02038aa013func_02038c34Ev kind:function(arm,size=0x84) addr:0x02038c34 -_ZN18UnkStruct_02038aa08vfunc_34Ei kind:function(arm,size=0x3c) addr:0x02038cb8 +_ZN18UnkStruct_02038aa08vfunc_4cEv kind:function(thumb,size=0xc) addr:0x02038b28 +_ZN18UnkStruct_02038aa08vfunc_10Eji kind:function(arm,size=0xc) addr:0x02038b34 +_ZN18UnkStruct_02038aa013func_02038b40Ev kind:function(arm,size=0x34) addr:0x02038b40 +_ZN18UnkStruct_02038aa08vfunc_48Ev kind:function(arm,size=0x4) addr:0x02038b74 +_ZN18UnkStruct_02038aa013func_02038b78Ev kind:function(arm,size=0xbc) addr:0x02038b78 +_ZN18UnkStruct_02038aa08vfunc_34Ei kind:function(arm,size=0x84) addr:0x02038c34 +_ZN18UnkStruct_02038aa013func_02038cb8Ei kind:function(arm,size=0x3c) addr:0x02038cb8 _ZN18UnkStruct_02038aa013func_02038cf4Ev kind:function(arm,size=0x1c) addr:0x02038cf4 _ZN18UnkStruct_02038aa013func_02038d10Ev kind:function(arm,size=0x10) addr:0x02038d10 -_ZN18UnkStruct_02038aa013func_02038d20Ev kind:function(arm,size=0x1b0) addr:0x02038d20 -_ZN18UnkStruct_02038aa08vfunc_2cEv kind:function(arm,size=0x24) addr:0x02038ed0 -_ZN18UnkStruct_02038aa08vfunc_30Eii kind:function(arm,size=0x4c) addr:0x02038ef4 -_ZN18UnkStruct_02038aa013func_02038f40Eii kind:function(arm,size=0x4) addr:0x02038f40 -_ZN18UnkStruct_02038aa08vfunc_44Ev kind:function(arm,size=0x114) addr:0x02038f44 -_ZN18UnkStruct_02038aa08vfunc_50Eiiii kind:function(arm,size=0x4) addr:0x02039058 -_ZN18UnkStruct_02038aa08vfunc_5cEv kind:function(arm,size=0x48) addr:0x0203905c -_ZN18UnkStruct_02038aa08vfunc_1cEiPiii kind:function(arm,size=0x164) addr:0x020390a4 -_ZN18UnkStruct_02038aa08vfunc_20EiPi kind:function(arm,size=0x20) addr:0x02039208 -_ZN18UnkStruct_02038aa013func_02039228Es kind:function(arm,size=0x28) addr:0x02039228 -_ZN18UnkStruct_02038aa08vfunc_08EiiPsi kind:function(arm,size=0x64) addr:0x02039250 -_ZN18UnkStruct_02038aa013func_020392b4Ev kind:function(arm,size=0xe4) addr:0x020392b4 -_ZN18UnkStruct_02038aa08vfunc_54Ev kind:function(arm,size=0xc) addr:0x02039398 -_ZN18UnkStruct_02038aa08vfunc_58Ev kind:function(arm,size=0x4) addr:0x020393a4 -_ZN18UnkStruct_02038aa08vfunc_60Ev kind:function(arm,size=0x28) addr:0x020393a8 -_ZN18UnkStruct_02038aa08vfunc_64Ev kind:function(arm,size=0x70) addr:0x020393d0 -_ZN18UnkStruct_02038aa08vfunc_68Ei kind:function(arm,size=0x3c) addr:0x02039440 -_ZN18UnkStruct_02038aa013func_0203947cEii kind:function(arm,size=0x5c) addr:0x0203947c -_ZN18UnkStruct_02038aa08vfunc_6cEPiS0_ kind:function(arm,size=0x44) addr:0x020394d8 -_ZN18UnkStruct_02038aa08vfunc_70EPiS0_ kind:function(arm,size=0x40) addr:0x0203951c +_ZN18UnkStruct_02038aa08vfunc_2cEv kind:function(arm,size=0x1b0) addr:0x02038d20 +_ZN18UnkStruct_02038aa08vfunc_30Ev kind:function(arm,size=0x24) addr:0x02038ed0 +_ZN18UnkStruct_02038aa013func_02038ef4Eii kind:function(arm,size=0x4c) addr:0x02038ef4 +_ZN18UnkStruct_02038aa08vfunc_44Eii kind:function(arm,size=0x4) addr:0x02038f40 +_ZN18UnkStruct_02038aa08vfunc_50EP9EntryINF1jPsP21UnkSubClass1_02256FF8 kind:function(arm,size=0x114) addr:0x02038f44 +_ZN18UnkStruct_02038aa08vfunc_5cEPtP18UnkStruct_0203b264ci kind:function(arm,size=0x4) addr:0x02039058 +_ZN18UnkStruct_02038aa08vfunc_1cEiPiii kind:function(arm,size=0x48) addr:0x0203905c +_ZN18UnkStruct_02038aa08vfunc_20EiPi kind:function(arm,size=0x164) addr:0x020390a4 +_ZN18UnkStruct_02038aa013func_02039208Es kind:function(arm,size=0x20) addr:0x02039208 +_ZN18UnkStruct_02038aa08vfunc_08EiiPsi kind:function(arm,size=0x28) addr:0x02039228 +_ZN18UnkStruct_02038aa013func_02039250Ev kind:function(arm,size=0x64) addr:0x02039250 +_ZN18UnkStruct_02038aa08vfunc_54Ev kind:function(arm,size=0xe4) addr:0x020392b4 +_ZN18UnkStruct_02038aa08vfunc_58Ev kind:function(arm,size=0xc) addr:0x02039398 +_ZN18UnkStruct_02038aa08vfunc_60EP20func_0203b410_param1ii kind:function(arm,size=0x4) addr:0x020393a4 +_ZN18UnkStruct_02038aa08vfunc_64Ei kind:function(arm,size=0x28) addr:0x020393a8 +_ZN18UnkStruct_02038aa08vfunc_68EiPi kind:function(arm,size=0x70) addr:0x020393d0 +_ZN18UnkStruct_02038aa013func_02039440Eii kind:function(arm,size=0x3c) addr:0x02039440 +_ZN18UnkStruct_02038aa08vfunc_6cEPiS0_ kind:function(arm,size=0x5c) addr:0x0203947c +_ZN18UnkStruct_02038aa08vfunc_70EPiS0_ kind:function(arm,size=0x44) addr:0x020394d8 +_ZN18UnkStruct_02038aa013func_0203951cEv kind:function(arm,size=0x40) addr:0x0203951c _ZN18UnkStruct_02038aa013func_0203955cEv kind:function(arm,size=0x14) addr:0x0203955c _ZN18UnkStruct_02038aa08vfunc_38Ev kind:function(arm,size=0x8) addr:0x02039570 -func_02039578 kind:function(arm,size=0x3c) addr:0x02039578 +_ZN18UnkStruct_0203dae08vfunc_0cEiiii kind:function(arm,size=0x3c) addr:0x02039578 _ZN18UnkStruct_020397f8C2Ev kind:function(thumb,size=0x244) addr:0x020395b4 _ZN18UnkStruct_020397f8C1Ev kind:function(thumb,size=0x244) addr:0x020397f8 _ZN18UnkStruct_020397f88vfunc_4cEv kind:function(thumb,size=0x20) addr:0x02039a3c _ZN18UnkStruct_020397f88vfunc_2cEv kind:function(arm,size=0x24c) addr:0x02039a5c _ZN18UnkStruct_020397f813func_02039ca8Ev kind:function(arm,size=0x24) addr:0x02039ca8 -_ZN18UnkStruct_020397f88vfunc_3cEv kind:function(arm,size=0xa8) addr:0x02039ccc +_ZN18UnkStruct_020397f88vfunc_3cEi kind:function(arm,size=0xa8) addr:0x02039ccc _ZN18UnkStruct_020397f88vfunc_40Eii kind:function(arm,size=0x414) addr:0x02039d74 _ZN18UnkStruct_020397f813func_0203a188Eii kind:function(arm,size=0x138) addr:0x0203a188 _ZN18UnkStruct_020397f813func_0203a2c0Ev kind:function(arm,size=0x4c) addr:0x0203a2c0 @@ -1922,16 +1922,16 @@ _ZN18UnkStruct_020397f88vfunc_48Ev kind:function(arm,size=0x34) addr:0x0203a328 _ZN18UnkStruct_020397f813func_0203a35cEv kind:function(arm,size=0x84) addr:0x0203a35c _ZN18UnkStruct_020397f813func_0203a3e0Ev kind:function(arm,size=0x1c) addr:0x0203a3e0 _ZN18UnkStruct_020397f88vfunc_44Eii kind:function(arm,size=0x2d4) addr:0x0203a3fc -_ZN18UnkStruct_020397f813func_0203a6d0Ei kind:function(arm,size=0x120) addr:0x0203a6d0 -_ZN18UnkStruct_020397f88vfunc_50Eiiii kind:function(arm,size=0x198) addr:0x0203a7f0 +_ZN18UnkStruct_020397f813func_0203a6d0Eii kind:function(arm,size=0x120) addr:0x0203a6d0 +_ZN18UnkStruct_020397f88vfunc_50EP9EntryINF1jPsP21UnkSubClass1_02256FF8 kind:function(arm,size=0x198) addr:0x0203a7f0 _ZN18UnkStruct_020397f88vfunc_54Ev kind:function(arm,size=0x520) addr:0x0203a988 -_ZN18UnkStruct_020397f88vfunc_5cEv kind:function(arm,size=0x74) addr:0x0203aea8 +_ZN18UnkStruct_020397f88vfunc_5cEPtP18UnkStruct_0203b264ci kind:function(arm,size=0x74) addr:0x0203aea8 _ZN18UnkStruct_020397f88vfunc_58Ev kind:function(arm,size=0x1a0) addr:0x0203af1c _ZN18UnkStruct_020397f813func_0203b0bcEv kind:function(arm,size=0x30) addr:0x0203b0bc _ZN18UnkStruct_020397f813func_0203b0ecEj kind:function(arm,size=0x178) addr:0x0203b0ec -_ZN18UnkStruct_020397f88vfunc_18Ei kind:function(arm,size=0xac) addr:0x0203b264 +_ZN18UnkStruct_020397f88vfunc_18EP18UnkStruct_02032e7cii kind:function(arm,size=0xac) addr:0x0203b264 _ZN18UnkStruct_020397f88vfunc_1cEiPiii kind:function(arm,size=0x100) addr:0x0203b310 -_ZN18UnkStruct_020397f88vfunc_60Ei kind:function(arm,size=0x1c0) addr:0x0203b410 +_ZN18UnkStruct_020397f88vfunc_60EP20func_0203b410_param1ii kind:function(arm,size=0x1c0) addr:0x0203b410 _ZN18UnkStruct_020397f88vfunc_64Ei kind:function(arm,size=0x194) addr:0x0203b5d0 _ZN18UnkStruct_020397f813func_0203b764Ev kind:function(arm,size=0xb0) addr:0x0203b764 _ZN18UnkStruct_020397f88vfunc_20EiPi kind:function(arm,size=0x578) addr:0x0203b814 @@ -1942,31 +1942,31 @@ _ZN18UnkStruct_020397f813func_0203be64Ev kind:function(arm,size=0x220) addr:0x02 _ZN18UnkStruct_020397f813func_0203c084Ev kind:function(arm,size=0xb8) addr:0x0203c084 _ZN18UnkStruct_020397f813func_0203c13cEv kind:function(arm,size=0x64) addr:0x0203c13c _ZN18UnkStruct_020397f813func_0203c1a0Ev kind:function(arm,size=0xbc) addr:0x0203c1a0 -_ZN18UnkStruct_020397f813func_0203c25cEv kind:function(arm,size=0x6c) addr:0x0203c25c -_ZN18UnkStruct_020397f8D1Ev kind:function(arm,size=0x48) addr:0x0203c2c8 -_ZN18UnkStruct_020397f8D0Ev kind:function(arm,size=0x40) addr:0x0203c310 +_ZN18UnkStruct_020397f813func_0203c25cEPS_ kind:function(arm,size=0x6c) addr:0x0203c25c +_ZN18UnkStruct_020397f8D0Ev kind:function(arm,size=0x48) addr:0x0203c2c8 +_ZN18UnkStruct_020397f8D1Ev kind:function(arm,size=0x40) addr:0x0203c310 _ZN18UnkStruct_020397f88vfunc_38Ev kind:function(arm,size=0x8) addr:0x0203c350 -_ZN13MsgProc_Type2C1Eisi kind:function(thumb,size=0x44) addr:0x0203c358 -_ZN13MsgProc_Type213func_0203c39cEii kind:function(thumb,size=0x78) addr:0x0203c39c -_ZN13MsgProc_Type28vfunc_3CEi kind:function(arm,size=0x4c) addr:0x0203c414 +_ZN13MsgProc_Type2C1Ev kind:function(thumb,size=0x44) addr:0x0203c358 +_ZN13MsgProc_Type28vfunc_4cEv kind:function(thumb,size=0x78) addr:0x0203c39c +_ZN13MsgProc_Type28vfunc_3cEi kind:function(arm,size=0x4c) addr:0x0203c414 _ZN13MsgProc_Type28vfunc_40Eii kind:function(arm,size=0x4c) addr:0x0203c460 _ZN13MsgProc_Type213func_0203c4acEii kind:function(arm,size=0x118) addr:0x0203c4ac _ZN13MsgProc_Type28vfunc_14Eii kind:function(arm,size=0x18) addr:0x0203c5c4 -func_0203c5dc kind:function(arm,size=0x120) addr:0x0203c5dc +_ZN13MsgProc_Type213func_0203c5dcEv kind:function(arm,size=0x120) addr:0x0203c5dc _ZN13MsgProc_Type2D0Ev kind:function(arm,size=0x1c) addr:0x0203c6fc -_ZN13MsgProc_Type2D2Ev kind:function(arm,size=0x14) addr:0x0203c718 -_ZN13MsgProc_Type3C1Eisi kind:function(arm,size=0x110) addr:0x0203c72c -_ZN13MsgProc_Type313func_0203c83cEv kind:function(arm,size=0x4) addr:0x0203c83c -_ZN13MsgProc_Type3D2Ev kind:function(arm,size=0x30) addr:0x0203c840 +_ZN13MsgProc_Type2D1Ev kind:function(arm,size=0x14) addr:0x0203c718 +_ZN13MsgProc_Type3C1Ev kind:function(arm,size=0x110) addr:0x0203c72c +_ZN28UnkClass_func_ov000_020d0644D1Ev kind:function(arm,size=0x4) addr:0x0203c83c +_ZN13MsgProc_Type3D1Ev kind:function(arm,size=0x30) addr:0x0203c840 _ZN13MsgProc_Type3D0Ev kind:function(arm,size=0x38) addr:0x0203c870 -func_0203c8a8 kind:function(arm,size=0x58) addr:0x0203c8a8 -func_0203c900 kind:function(arm,size=0x4) addr:0x0203c900 +_ZN13MsgProc_Type38vfunc_3cEi kind:function(arm,size=0x58) addr:0x0203c8a8 +_ZN13MsgProc_Type38vfunc_40Eii kind:function(arm,size=0x4) addr:0x0203c900 func_0203c904 kind:function(arm,size=0x11c) addr:0x0203c904 func_0203ca20 kind:function(arm,size=0x9c) addr:0x0203ca20 func_0203cabc kind:function(arm,size=0x44) addr:0x0203cabc -func_0203cb00 kind:function(arm,size=0x5c) addr:0x0203cb00 +_ZN13MsgProc_Type38vfunc_24EPPs kind:function(arm,size=0x5c) addr:0x0203cb00 func_0203cb5c kind:function(arm,size=0x10c) addr:0x0203cb5c -func_0203cc68 kind:function(arm,size=0xf4) addr:0x0203cc68 +_ZN13MsgProc_Type38vfunc_44Eii kind:function(arm,size=0xf4) addr:0x0203cc68 func_0203cd5c kind:function(arm,size=0x44) addr:0x0203cd5c func_0203cda0 kind:function(arm,size=0x20) addr:0x0203cda0 func_0203cdc0 kind:function(arm,size=0x4) addr:0x0203cdc0 @@ -1985,12 +1985,12 @@ func_0203d0c0 kind:function(arm,size=0x8c) addr:0x0203d0c0 func_0203d14c kind:function(arm,size=0x1c) addr:0x0203d14c func_0203d168 kind:function(arm,size=0x28) addr:0x0203d168 func_0203d190 kind:function(arm,size=0x24) addr:0x0203d190 -func_0203d1b4 kind:function(arm,size=0x1c) addr:0x0203d1b4 -func_0203d1d0 kind:function(arm,size=0x20) addr:0x0203d1d0 +_ZN23UnkStruct_0203d1d0_base13func_0203d1b4Ev kind:function(arm,size=0x1c) addr:0x0203d1b4 +_ZN18UnkStruct_0203d1d0C1Ev kind:function(arm,size=0x20) addr:0x0203d1d0 func_0203d1f0 kind:function(arm,size=0x4) addr:0x0203d1f0 func_0203d1f4 kind:function(arm,size=0x14) addr:0x0203d1f4 func_0203d208 kind:function(arm,size=0x4c) addr:0x0203d208 -func_0203d254 kind:function(arm,size=0x20) addr:0x0203d254 +_ZN18UnkStruct_0203d254C1Ev kind:function(arm,size=0x20) addr:0x0203d254 func_0203d274 kind:function(arm,size=0x4) addr:0x0203d274 func_0203d278 kind:function(arm,size=0x14) addr:0x0203d278 func_0203d28c kind:function(arm,size=0x4c) addr:0x0203d28c @@ -1998,7 +1998,7 @@ func_0203d2d8 kind:function(arm,size=0x24) addr:0x0203d2d8 func_0203d2fc kind:function(arm,size=0x4) addr:0x0203d2fc func_0203d300 kind:function(arm,size=0x14) addr:0x0203d300 func_0203d314 kind:function(arm,size=0x4) addr:0x0203d314 -func_0203d318 kind:function(arm,size=0x40) addr:0x0203d318 +_ZN18UnkStruct_0203dae013func_0203d318Eii kind:function(arm,size=0x40) addr:0x0203d318 func_0203d358 kind:function(arm,size=0xa8) addr:0x0203d358 func_0203d400 kind:function(arm,size=0x48) addr:0x0203d400 func_0203d448 kind:function(arm,size=0x1c) addr:0x0203d448 @@ -2024,7 +2024,7 @@ func_0203d848 kind:function(arm,size=0x8c) addr:0x0203d848 func_0203d8d4 kind:function(arm,size=0x8c) addr:0x0203d8d4 func_0203d960 kind:function(arm,size=0xc0) addr:0x0203d960 func_0203da20 kind:function(arm,size=0xc0) addr:0x0203da20 -_ZN18UnkStruct_0203dae0C2Eh kind:function(thumb,size=0x98) addr:0x0203dae0 +_ZN18UnkStruct_0203dae0C1Eh kind:function(thumb,size=0x98) addr:0x0203dae0 _ZN18UnkStruct_0203dae0D1Ev kind:function(thumb,size=0x30) addr:0x0203db78 _ZN18UnkStruct_0203dae0D0Ev kind:function(thumb,size=0x38) addr:0x0203dba8 _ZN18UnkStruct_0203dae0D2Ev kind:function(thumb,size=0x30) addr:0x0203dbe0 @@ -2034,7 +2034,7 @@ _ZN18UnkStruct_0203dae08vfunc_14Eii kind:function(arm,size=0x48) addr:0x0203dcb4 _ZN18UnkStruct_0203dae013func_0203dcfcEhiii kind:function(arm,size=0xf0) addr:0x0203dcfc _ZN18UnkStruct_0203dae013func_0203ddecEv kind:function(arm,size=0x10) addr:0x0203ddec _ZN18UnkStruct_0203dae013func_0203ddfcEv kind:function(arm,size=0x18) addr:0x0203ddfc -_ZN18UnkStruct_02038aa013func_0203de14Ei kind:function(arm,size=0x10) addr:0x0203de14 +_ZN18UnkStruct_0203dae013func_0203de14Ei kind:function(arm,size=0x10) addr:0x0203de14 _ZN18UnkStruct_0203dae013func_0203de24Ev kind:function(arm,size=0x34) addr:0x0203de24 _ZN18UnkStruct_0203dae013func_0203de58Ei kind:function(arm,size=0x208) addr:0x0203de58 _ZN18UnkStruct_0203dae08vfunc_10Eji kind:function(arm,size=0x30) addr:0x0203e060 @@ -2043,7 +2043,7 @@ _ZN18UnkStruct_0203dae08vfunc_28Ev kind:function(arm,size=0x30) addr:0x0203e0c8 _ZN18UnkStruct_0203dae013func_0203e0f8Ev kind:function(arm,size=0xa4) addr:0x0203e0f8 _ZN18UnkStruct_0203dae08vfunc_2cEv kind:function(arm,size=0x14) addr:0x0203e19c _ZN18UnkStruct_0203dae013func_0203e1b0Eiii kind:function(arm,size=0xd4) addr:0x0203e1b0 -_ZN18UnkStruct_0203dae08vfunc_18Ei kind:function(arm,size=0x28) addr:0x0203e284 +_ZN18UnkStruct_0203dae08vfunc_18EP18UnkStruct_02032e7cii kind:function(arm,size=0x28) addr:0x0203e284 _ZN18UnkStruct_0203dae08vfunc_08EiiPsi kind:function(arm,size=0x3c) addr:0x0203e2ac _ZN18UnkStruct_0203dae013func_0203e2e8Eiiij kind:function(arm,size=0x228) addr:0x0203e2e8 _ZN18UnkStruct_0203dae013func_0203e510EPiii kind:function(arm,size=0x11c) addr:0x0203e510 @@ -2071,7 +2071,7 @@ func_0203eb8c kind:function(thumb,size=0x1a) addr:0x0203eb8c func_0203eba8 kind:function(arm,size=0x20) addr:0x0203eba8 func_0203ebc8 kind:function(arm,size=0x18) addr:0x0203ebc8 func_0203ebe0 kind:function(arm,size=0x18) addr:0x0203ebe0 -func_0203ebf8 kind:function(arm,size=0x3c) addr:0x0203ebf8 +_ZN22UnkStruct_020397f8_41013func_0203ebf8Ev kind:function(arm,size=0x3c) addr:0x0203ebf8 func_0203ec34 kind:function(arm,size=0x18) addr:0x0203ec34 func_0203ec4c kind:function(arm,size=0xcc) addr:0x0203ec4c func_0203ed18 kind:function(arm,size=0xd4) addr:0x0203ed18 @@ -2080,9 +2080,9 @@ func_0203ee48 kind:function(arm,size=0x38) addr:0x0203ee48 func_0203ee80 kind:function(arm,size=0x30) addr:0x0203ee80 func_0203eeb0 kind:function(arm,size=0x80) addr:0x0203eeb0 func_0203ef30 kind:function(arm,size=0x48) addr:0x0203ef30 -func_0203ef78 kind:function(arm,size=0x60) addr:0x0203ef78 +_ZN22UnkStruct_020397f8_42413func_0203ef78Es kind:function(arm,size=0x60) addr:0x0203ef78 func_0203efd8 kind:function(thumb,size=0x48) addr:0x0203efd8 -func_0203f020 kind:function(arm,size=0xb8) addr:0x0203f020 +_ZN20UnkSubClass1_unk_12413func_0203f020Eii kind:function(arm,size=0xb8) addr:0x0203f020 func_0203f0d8 kind:function(arm,size=0x2a0) addr:0x0203f0d8 func_0203f378 kind:function(arm,size=0x30) addr:0x0203f378 func_0203f3a8 kind:function(arm,size=0x1d0) addr:0x0203f3a8 @@ -2097,7 +2097,7 @@ func_0203f7cc kind:function(arm,size=0xd0) addr:0x0203f7cc func_0203f89c kind:function(arm,size=0x68) addr:0x0203f89c _ZN18UnkStruct_02075dac13func_0203f904Ev kind:function(thumb,size=0x70) addr:0x0203f904 func_0203f974 kind:function(arm,size=0x44) addr:0x0203f974 -func_0203f9b8 kind:function(arm,size=0x9c) addr:0x0203f9b8 +_ZN18UnkStruct_02075dac13func_0203f9b8EPv kind:function(arm,size=0x9c) addr:0x0203f9b8 func_0203fa54 kind:function(arm,size=0x2c) addr:0x0203fa54 func_0203fa80 kind:function(arm,size=0x30) addr:0x0203fa80 func_0203fab0 kind:function(arm,size=0x68) addr:0x0203fab0 @@ -2186,18 +2186,18 @@ func_02041bcc kind:function(thumb,size=0x4c) addr:0x02041bcc func_02041c18 kind:function(thumb,size=0x14) addr:0x02041c18 func_02041c2c kind:function(thumb,size=0x64) addr:0x02041c2c func_02041c90 kind:function(thumb,size=0x18) addr:0x02041c90 -func_02041ca8 kind:function(thumb,size=0x14) addr:0x02041ca8 +_ZN19UnkStruct_astruct_3C1Ev kind:function(thumb,size=0x14) addr:0x02041ca8 func_02041cbc kind:function(thumb,size=0xd0) addr:0x02041cbc func_02041d8c kind:function(thumb,size=0x50) addr:0x02041d8c func_02041ddc kind:function(thumb,size=0x2a) addr:0x02041ddc func_02041e08 kind:function(thumb,size=0x2c) addr:0x02041e08 func_02041e34 kind:function(thumb,size=0x48) addr:0x02041e34 -func_02041e7c kind:function(thumb,size=0x2a) addr:0x02041e7c -func_02041ea8 kind:function(thumb,size=0x26) addr:0x02041ea8 +_ZN19UnkStruct_astruct_313func_02041e7cEPc kind:function(thumb,size=0x2a) addr:0x02041e7c +_ZN19UnkStruct_astruct_313func_02041ea8Ev kind:function(thumb,size=0x26) addr:0x02041ea8 func_02041ed0 kind:function(thumb,size=0x98) addr:0x02041ed0 func_02041f68 kind:function(thumb,size=0x2e) addr:0x02041f68 func_02041f98 kind:function(thumb,size=0xa) addr:0x02041f98 -func_02041fa4 kind:function(thumb,size=0xa) addr:0x02041fa4 +_ZN19UnkStruct_astruct_313func_02041fa4EPvj kind:function(thumb,size=0xa) addr:0x02041fa4 func_02041fb0 kind:function(thumb,size=0x3a) addr:0x02041fb0 func_02041fec kind:function(thumb,size=0x38) addr:0x02041fec func_02042024 kind:function(thumb,size=0x1a) addr:0x02042024 @@ -2727,8 +2727,8 @@ data_02057990 kind:data(any) addr:0x02057990 data_02057994 kind:data(any) addr:0x02057994 data_02057998 kind:data(any) addr:0x02057998 data_0205799c kind:data(any) addr:0x0205799c -_ZTV18UnkStruct_02032f0c kind:data(any) addr:0x020579c8 -_ZTV18UnkStruct_02032e7c kind:data(any) addr:0x020579f8 +_ZTV18UnkStruct_02032f0c kind:data(any) addr:0x020579c0 +_ZTV18UnkStruct_02032e7c kind:data(any) addr:0x020579f0 data_02057a00 kind:data(any) addr:0x02057a00 data_02057a08 kind:data(any) addr:0x02057a08 data_02057a10 kind:data(any) addr:0x02057a10 @@ -2806,11 +2806,11 @@ data_02057cc8 kind:data(any) addr:0x02057cc8 data_02057ccc kind:data(any) addr:0x02057ccc data_02057cd0 kind:data(any) addr:0x02057cd0 data_02057cd4 kind:data(any) addr:0x02057cd4 -_ZTV18UnkStruct_02037750 kind:data(any) addr:0x02057d00 -_ZTV18UnkStruct_020386d8 kind:data(any) addr:0x02057d3c +_ZTV18UnkStruct_02037750 kind:data(any) addr:0x02057cf8 +_ZTV18UnkStruct_020386d8 kind:data(any) addr:0x02057d34 data_02057d70 kind:data(any) addr:0x02057d70 -data_02057d90 kind:data(any) addr:0x02057d90 -data_02057e0c kind:data(any) addr:0x02057e0c +_ZTV18UnkStruct_02038aa0 kind:data(any) addr:0x02057d88 +_ZTV18UnkStruct_0203881c kind:data(any) addr:0x02057e04 data_02057e14 kind:data(any) addr:0x02057e14 data_02057e18 kind:data(any) addr:0x02057e18 data_02057e1c kind:data(any) addr:0x02057e1c @@ -2819,18 +2819,18 @@ data_02057e24 kind:data(any) addr:0x02057e24 data_02057e28 kind:data(any) addr:0x02057e28 data_02057e2c kind:data(any) addr:0x02057e2c data_02057e30 kind:data(any) addr:0x02057e30 -data_02057e5c kind:data(any) addr:0x02057e5c +_ZTV18UnkStruct_020397f8 kind:data(any) addr:0x02057e54 data_02057ed0 kind:data(any) addr:0x02057ed0 data_02057ed4 kind:data(any) addr:0x02057ed4 data_02057ed8 kind:data(any) addr:0x02057ed8 data_02057eec kind:data(any) addr:0x02057eec data_02057f08 kind:data(any) addr:0x02057f08 -_ZTV13MsgProc_Type2 kind:data(any) addr:0x02057f14 -data_02057f90 kind:data(any) addr:0x02057f90 -data_0205800c kind:data(any) addr:0x0205800c -data_02058024 kind:data(any) addr:0x02058024 -data_0205803c kind:data(any) addr:0x0205803c -_ZTV13MsgProc_Base2 kind:data(any) addr:0x02058054 +_ZTV13MsgProc_Type2 kind:data(any) addr:0x02057f0c +_ZTV13MsgProc_Type3 kind:data(any) addr:0x02057f88 +data_02058004 kind:data(any) addr:0x02058004 +data_0205801c kind:data(any) addr:0x0205801c +data_02058034 kind:data(any) addr:0x02058034 +_ZTV18UnkStruct_0203dae0 kind:data(any) addr:0x0205804c data_02058088 kind:data(any) addr:0x02058088 data_02058090 kind:data(any) addr:0x02058090 data_02058094 kind:data(any) addr:0x02058094 diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt index 66617da6..b95764a9 100644 --- a/config/usa/arm9/overlays/ov000/symbols.txt +++ b/config/usa/arm9/overlays/ov000/symbols.txt @@ -3295,7 +3295,7 @@ _ZN18UnkStruct_027e103c19func_ov000_020cfa70Eii kind:function(arm,size=0x40) add _ZN18UnkStruct_027e103c19func_ov000_020cfab0Ev kind:function(arm,size=0xc) addr:0x020cfa50 _ZN18UnkStruct_027e103c19func_ov000_020cfabcEii kind:function(arm,size=0x2c) addr:0x020cfa5c _ZN18UnkStruct_027e103c19func_ov000_020cfae8Eii kind:function(arm,size=0x38) addr:0x020cfa88 -_ZN18UnkStruct_027e103c19func_ov000_020cfb20Ei kind:function(arm,size=0x18) addr:0x020cfac0 +_ZN18UnkStruct_027e103c19func_ov000_020cfb20EPv kind:function(arm,size=0x18) addr:0x020cfac0 _ZN18UnkStruct_027e103c19func_ov000_020cfb38Ev kind:function(arm,size=0x10) addr:0x020cfad8 _ZN18UnkStruct_027e103c19func_ov000_020cfb48Ev kind:function(arm,size=0x10) addr:0x020cfae8 _ZN18UnkStruct_027e103c19func_ov000_020cfb58Ev kind:function(arm,size=0x10) addr:0x020cfaf8 @@ -3337,9 +3337,9 @@ func_ov000_020d0530 kind:function(arm,size=0x1c) addr:0x020d04d0 func_ov000_020d054c kind:function(arm,size=0x48) addr:0x020d04ec func_ov000_020d0594 kind:function(arm,size=0x48) addr:0x020d0534 func_ov000_020d05dc kind:function(arm,size=0x30) addr:0x020d057c -func_ov000_020d060c kind:function(arm,size=0x30) addr:0x020d05ac +_ZN28UnkClass_func_ov000_020d0644C1Ev kind:function(arm,size=0x30) addr:0x020d05ac func_ov000_020d063c kind:function(arm,size=0x8) addr:0x020d05dc -func_ov000_020d0644 kind:function(arm,size=0x2c) addr:0x020d05e4 +_ZN28UnkClass_func_ov000_020d064419func_ov000_020d0644Eiiiii kind:function(arm,size=0x2c) addr:0x020d05e4 func_ov000_020d0670 kind:function(arm,size=0x120) addr:0x020d0610 func_ov000_020d0790 kind:function(arm,size=0x74) addr:0x020d0730 func_ov000_020d0804 kind:function(arm,size=0x44) addr:0x020d07a4 @@ -3610,7 +3610,7 @@ func_ov000_020d7524 kind:function(arm,size=0x68) addr:0x020d74c4 func_ov000_020d758c kind:function(arm,size=0x3c) addr:0x020d752c func_ov000_020d75c8 kind:function(arm,size=0x14) addr:0x020d7568 func_ov000_020d75dc kind:function(arm,size=0x208) addr:0x020d757c -func_ov000_020d77e4 kind:function(arm,size=0x9c) addr:0x020d7784 +_ZN18UnkStruct_020eec9c19func_ov000_020d77e4Ei kind:function(arm,size=0x9c) addr:0x020d7784 func_ov000_020d7880 kind:function(arm,size=0x20) addr:0x020d7820 func_ov000_020d78a0 kind:function(arm,size=0x1e4) addr:0x020d7840 func_ov000_020d7a84 kind:function(arm,size=0x50) addr:0x020d7a24 diff --git a/config/usa/arm9/overlays/ov040/relocs.txt b/config/usa/arm9/overlays/ov040/relocs.txt index b62510fe..61fda5b4 100644 --- a/config/usa/arm9/overlays/ov040/relocs.txt +++ b/config/usa/arm9/overlays/ov040/relocs.txt @@ -1289,7 +1289,7 @@ from:0x02187c34 kind:arm_call to:0x02033c78 module:main from:0x02187cc4 kind:arm_call to:0x02033484 module:main from:0x02187cf8 kind:arm_call to:0x0203b7d0 module:main from:0x02187d0c kind:load to:0x02068e2c module:main -from:0x02187d10 kind:load to:0x020579b0 module:main +from:0x02187d10 kind:load to:0x020579a8 add:8 module:main from:0x02187d20 kind:load to:0x02039d30 module:main from:0x02187d5c kind:arm_call_thumb to:0x0202ab30 module:main from:0x02187d80 kind:arm_call_thumb to:0x0202ab30 module:main diff --git a/config/usa/arm9/relocs.txt b/config/usa/arm9/relocs.txt index d00330f4..88a24fad 100644 --- a/config/usa/arm9/relocs.txt +++ b/config/usa/arm9/relocs.txt @@ -4123,13 +4123,13 @@ from:0x02032e48 kind:arm_call_thumb to:0x02032f90 module:main from:0x02032e50 kind:arm_call to:0x0202ea08 module:main from:0x02032e74 kind:load to:0x027e05f4 module:dtcm from:0x02032ea0 kind:arm_call_thumb to:0x0202ab30 module:main -from:0x02032ebc kind:load to:0x020579b0 module:main +from:0x02032ebc kind:load to:0x020579a8 add:8 module:main from:0x02032ee8 kind:arm_call_thumb to:0x0202ab30 module:main -from:0x02032f04 kind:load to:0x020579b0 module:main +from:0x02032f04 kind:load to:0x020579a8 add:8 module:main from:0x02032f4c kind:thumb_call_arm to:0x020078f4 module:main from:0x02032f58 kind:thumb_call_arm to:0x020078f4 module:main from:0x02032f64 kind:thumb_call_arm to:0x020078c0 module:main -from:0x02032f7c kind:load to:0x02057980 module:main +from:0x02032f7c kind:load to:0x02057978 add:8 module:main from:0x02032f88 kind:thumb_call_arm to:0x0202ea08 module:main from:0x02032fac kind:load to:0x020353e4 module:main from:0x02033064 kind:arm_call to:0x02033c78 module:main @@ -4635,16 +4635,16 @@ from:0x020376d8 kind:load to:0x027e077c module:dtcm from:0x020376dc kind:load to:0x02056ba0 module:main from:0x02037704 kind:load to:0x027e0c54 module:dtcm from:0x02037708 kind:load to:0x027e0618 module:dtcm -from:0x0203774c kind:load to:0x02057cb8 module:main +from:0x0203774c kind:load to:0x02057cb0 add:8 module:main from:0x02037774 kind:arm_call to:0x02036d08 module:main -from:0x02037780 kind:load to:0x02057cb8 module:main +from:0x02037780 kind:load to:0x02057cb0 add:8 module:main from:0x02037784 kind:load to:0x027e0c68 module:dtcm from:0x020377ac kind:arm_call to:0x02036d08 module:main from:0x020377b4 kind:arm_call to:0x0202ea08 module:main -from:0x020377c0 kind:load to:0x02057cb8 module:main +from:0x020377c0 kind:load to:0x02057cb0 add:8 module:main from:0x020377c4 kind:load to:0x027e0c68 module:dtcm from:0x020377ec kind:arm_call to:0x02036d08 module:main -from:0x020377f8 kind:load to:0x02057cb8 module:main +from:0x020377f8 kind:load to:0x02057cb0 add:8 module:main from:0x020377fc kind:load to:0x027e0c68 module:dtcm from:0x02037838 kind:arm_call to:0x020376e0 module:main from:0x0203787c kind:arm_call_thumb to:0x02114790 module:overlay(9) @@ -4716,11 +4716,11 @@ from:0x02038628 kind:arm_call to:0x02036f24 module:main from:0x0203866c kind:load to:0x027e0c68 module:dtcm from:0x020386a4 kind:arm_call to:0x0203770c module:main from:0x020386c0 kind:arm_call to:0x0203767c module:main -from:0x020386cc kind:load to:0x02057cf4 module:main +from:0x020386cc kind:load to:0x02057cec add:8 module:main from:0x020386d0 kind:load to:0x027e0d0c module:dtcm from:0x020386e4 kind:arm_call to:0x0203770c module:main from:0x02038700 kind:arm_call to:0x0203767c module:main -from:0x0203870c kind:load to:0x02057cf4 module:main +from:0x0203870c kind:load to:0x02057cec add:8 module:main from:0x02038710 kind:load to:0x027e0d0c module:dtcm from:0x0203871c kind:arm_call to:0x02037800 module:main from:0x02038734 kind:arm_call to:0x0203858c module:main @@ -4730,7 +4730,7 @@ from:0x02038784 kind:load to:0x027e0c68 module:dtcm from:0x02038790 kind:arm_call to:0x020377c8 module:main from:0x020387c4 kind:arm_call_thumb to:0x0202ab30 module:main from:0x020387e0 kind:arm_call to:0x02032e78 module:main -from:0x02038810 kind:load to:0x02057dc4 module:main +from:0x02038810 kind:load to:0x02057dbc add:8 module:main from:0x0203884c kind:arm_call to:0x020387c0 module:main from:0x020388fc kind:load to:0x027e0d38 module:dtcm from:0x02038900 kind:load to:0x027e0c68 module:dtcm @@ -4741,7 +4741,7 @@ from:0x02038a48 kind:arm_call to:0x020387c0 module:main from:0x02038a62 kind:thumb_call to:0x0203da9c module:main from:0x02038a76 kind:thumb_call_arm to:0x020387d8 module:main from:0x02038a80 kind:thumb_call to:0x0203879c module:main -from:0x02038ab4 kind:load to:0x02057d48 module:main +from:0x02038ab4 kind:load to:0x02057d40 add:8 module:main from:0x02038abc kind:thumb_call to:0x0203db9c module:main from:0x02038ac8 kind:thumb_call to:0x0203db9c module:main from:0x02038ace kind:thumb_call_arm to:0x0202ea08 module:main @@ -4826,7 +4826,7 @@ from:0x02039756 kind:thumb_call_arm to:0x02035070 module:main from:0x02039768 kind:thumb_call_arm to:0x02035174 module:main from:0x0203977a kind:thumb_call_arm to:0x02035174 module:main from:0x0203978c kind:thumb_call_arm to:0x02035174 module:main -from:0x02039798 kind:load to:0x02057e14 module:main +from:0x02039798 kind:load to:0x02057e0c add:8 module:main from:0x020397be kind:thumb_call to:0x02038a5c module:main from:0x020397d2 kind:thumb_call_arm to:0x02035020 module:main from:0x020397dc kind:thumb_call_arm to:0x02035020 module:main @@ -4848,7 +4848,7 @@ from:0x0203999a kind:thumb_call_arm to:0x02035070 module:main from:0x020399ac kind:thumb_call_arm to:0x02035174 module:main from:0x020399be kind:thumb_call_arm to:0x02035174 module:main from:0x020399d0 kind:thumb_call_arm to:0x02035174 module:main -from:0x020399dc kind:load to:0x02057e14 module:main +from:0x020399dc kind:load to:0x02057e0c add:8 module:main from:0x020399fe kind:thumb_call to:0x02038ae4 module:main from:0x02039a10 kind:thumb_call_arm to:0x0203dcb8 module:main from:0x02039a5c kind:arm_call to:0x02038cdc module:main @@ -5178,7 +5178,7 @@ from:0x0203c2f0 kind:arm_call to:0x02035068 module:main from:0x0203c2f8 kind:arm_call to:0x02035068 module:main from:0x0203c300 kind:arm_call_thumb to:0x02038ad8 module:main from:0x0203c31c kind:thumb_call to:0x02038a5c module:main -from:0x0203c350 kind:load to:0x02057ecc module:main +from:0x0203c350 kind:load to:0x02057ec4 add:8 module:main from:0x0203c35e kind:thumb_call to:0x02038ae4 module:main from:0x0203c37c kind:thumb_call_arm to:0x0203fc34 module:main from:0x0203c398 kind:thumb_call_arm to:0x0203d2d4 module:main @@ -5210,7 +5210,7 @@ from:0x0203c77c kind:arm_call to:0x020d05e4 module:overlay(0) from:0x0203c79c kind:arm_call to:0x020d05e4 module:overlay(0) from:0x0203c7bc kind:arm_call to:0x020d05e4 module:overlay(0) from:0x0203c7dc kind:arm_call to:0x020d05e4 module:overlay(0) -from:0x0203c7ec kind:load to:0x02057f48 module:main +from:0x0203c7ec kind:load to:0x02057f40 add:8 module:main from:0x0203c7f0 kind:load to:0x0203c7f8 module:main from:0x0203c7f4 kind:load to:0x020d05ac module:overlay(0) from:0x0203c814 kind:arm_call to:0x0204f710 module:main @@ -5276,14 +5276,14 @@ from:0x0203d158 kind:arm_call to:0x0203cf74 module:main from:0x0203d160 kind:arm_call to:0x0203cf74 module:main from:0x0203d168 kind:arm_call to:0x0203ce74 module:main from:0x0203d184 kind:arm_call to:0x0203cdb0 module:main -from:0x0203d1a4 kind:load to:0x02057ff4 module:main -from:0x0203d1a8 kind:load to:0x02057fdc module:main +from:0x0203d1a4 kind:load to:0x02057fec add:8 module:main +from:0x0203d1a8 kind:load to:0x02057fd4 add:8 module:main from:0x0203d1b8 kind:arm_call to:0x0202ea08 module:main from:0x0203d1e4 kind:arm_call to:0x02032fa0 module:main from:0x0203d1fc kind:arm_call to:0x0203d124 module:main from:0x0203d20c kind:load to:0x02068e70 module:main -from:0x0203d228 kind:load to:0x02057ff4 module:main -from:0x0203d22c kind:load to:0x02057fc4 module:main +from:0x0203d228 kind:load to:0x02057fec add:8 module:main +from:0x0203d22c kind:load to:0x02057fbc add:8 module:main from:0x0203d23c kind:arm_call to:0x0202ea08 module:main from:0x0203d268 kind:arm_call to:0x02032fa0 module:main from:0x0203d280 kind:arm_call to:0x0203d124 module:main @@ -5363,15 +5363,15 @@ from:0x0203daf6 kind:thumb_call_arm to:0x0202e9d8 module:main from:0x0203dafe kind:thumb_call_arm to:0x0203d18c module:main from:0x0203db12 kind:thumb_call_arm to:0x0202e9d8 module:main from:0x0203db1a kind:thumb_call_arm to:0x0203d210 module:main -from:0x0203db28 kind:load to:0x0205800c module:main +from:0x0203db28 kind:load to:0x02058004 add:8 module:main from:0x0203db30 kind:load to:0x027e0ce0 module:dtcm from:0x0203db58 kind:thumb_call to:0x02032f90 module:main -from:0x0203db60 kind:load to:0x0205800c module:main +from:0x0203db60 kind:load to:0x02058004 add:8 module:main from:0x0203db88 kind:thumb_call to:0x02032f90 module:main from:0x0203db8e kind:thumb_call_arm to:0x0202ea08 module:main -from:0x0203db98 kind:load to:0x0205800c module:main +from:0x0203db98 kind:load to:0x02058004 add:8 module:main from:0x0203dbc0 kind:thumb_call to:0x02032f90 module:main -from:0x0203dbc8 kind:load to:0x0205800c module:main +from:0x0203dbc8 kind:load to:0x02058004 add:8 module:main from:0x0203dc0c kind:arm_call to:0x0203d170 module:main from:0x0203dc40 kind:arm_call to:0x0203ddb8 module:main from:0x0203dc84 kind:arm_call to:0x02032fa0 module:main diff --git a/config/usa/arm9/symbols.txt b/config/usa/arm9/symbols.txt index 632e9967..e0952880 100644 --- a/config/usa/arm9/symbols.txt +++ b/config/usa/arm9/symbols.txt @@ -1394,7 +1394,7 @@ func_0202d140 kind:function(thumb,size=0x24) addr:0x0202d128 func_0202d164 kind:function(thumb,size=0x74) addr:0x0202d14c func_0202d1c4 kind:function(thumb,size=0x58) addr:0x0202d1c0 func_0202d21c kind:function(thumb,size=0x20) addr:0x0202d218 -func_0202d23c kind:function(thumb,size=0x180) addr:0x0202d238 +_ZN19UnkStruct_astruct_313func_0202d23cEiPjiijPiii kind:function(thumb,size=0x180) addr:0x0202d238 _Z13func_0202d3bciPjPciibii kind:function(thumb,size=0xb8) addr:0x0202d3b8 func_0202d474 kind:function(thumb,size=0xdc) addr:0x0202d470 _Z13func_0202d550iPjPciii kind:function(thumb,size=0x1c) addr:0x0202d54c @@ -1650,8 +1650,8 @@ _ZN18UnkStruct_02032e7cC1Ev kind:function(arm,size=0x48) addr:0x02032ec0 _ZN18UnkStruct_02032f0cC2Ev kind:function(thumb,size=0x78) addr:0x02032f08 _ZN18UnkStruct_02032f0cD1Ev kind:function(thumb,size=0x2) addr:0x02032f80 _ZN18UnkStruct_02032f0cD0Ev kind:function(thumb,size=0xc) addr:0x02032f84 -_ZN18UnkStruct_02032f0cD2Ev kind:function(thumb,size=0x4) addr:0x02032f90 -_ZN18UnkStruct_02032f0c9SetUnk_0cEPt kind:function(arm,size=0xc) addr:0x02032f94 +_ZN18UnkStruct_02032f0cD2Ev kind:function(thumb,size=0x2) addr:0x02032f90 +_ZN18UnkStruct_02032f0c13func_02032f98EPt kind:function(arm,size=0xc) addr:0x02032f94 _ZN18UnkStruct_02032f0c13func_02032fa4Ev kind:function(arm,size=0x10) addr:0x02032fa0 _ZN18UnkStruct_02032f0c13func_02032fb4Ev kind:function(arm,size=0x18) addr:0x02032fb0 _ZN18UnkStruct_02032f0c8vfunc_14Eii kind:function(arm,size=0x64) addr:0x02032fc8 @@ -1659,16 +1659,16 @@ _ZN18UnkStruct_02032f0c8vfunc_08EiiPsi kind:function(arm,size=0x160) addr:0x0203 _ZN18UnkStruct_02032f0c8vfunc_0cEiiii kind:function(arm,size=0x34) addr:0x0203318c _ZN18UnkStruct_02032f0c8vfunc_10Eji kind:function(arm,size=0x50) addr:0x020331c0 _ZN18UnkStruct_02032f0c13func_02033214Eiiihi kind:function(arm,size=0xd0) addr:0x02033210 -_ZN18UnkStruct_02032f0c8vfunc_18Ei kind:function(arm,size=0x7c) addr:0x020332e0 +_ZN18UnkStruct_02032f0c8vfunc_18EP18UnkStruct_02032e7cii kind:function(arm,size=0x7c) addr:0x020332e0 _ZN18UnkStruct_02032f0c8vfunc_1cEiPiii kind:function(arm,size=0x80) addr:0x0203335c _ZN18UnkStruct_02032f0c8vfunc_20EiPi kind:function(arm,size=0xa8) addr:0x020333dc _ZN18UnkStruct_02032f0c13func_020334b4Ejiii kind:function(arm,size=0x160) addr:0x02033484 -_ZN18UnkStruct_02032f0c13func_02033628EiPt kind:function(arm,size=0x74) addr:0x020335e4 +_ZN18UnkStruct_02032f0c13func_02033628EP18UnkStruct_02032e7cPPti kind:function(arm,size=0x74) addr:0x020335e4 _ZN18UnkStruct_02032f0c13func_0203369cEPti kind:function(arm,size=0xe4) addr:0x02033658 _ZN18UnkStruct_02032f0c13func_02033780Ei kind:function(arm,size=0x58) addr:0x0203373c _ZN18UnkStruct_02032f0c13func_020337d8Ei kind:function(arm,size=0x24) addr:0x02033794 _ZN18UnkStruct_02032f0c13func_020337fcEPsi kind:function(arm,size=0xac) addr:0x020337b8 -_ZN18UnkStruct_02032f0c13func_020338a8Eii kind:function(arm,size=0x28) addr:0x02033864 +_ZN18UnkStruct_02032f0c13func_020338a8EP18UnkStruct_02032e7ci kind:function(arm,size=0x28) addr:0x02033864 _ZN18UnkStruct_02032f0c13func_020338d0EPii kind:function(arm,size=0x34) addr:0x0203388c _ZN18UnkStruct_02032f0c13func_02033904Eii kind:function(arm,size=0x34) addr:0x020338c0 _ZN18UnkStruct_02032f0c13func_02033938Ei kind:function(arm,size=0x34) addr:0x020338f4 @@ -1789,7 +1789,7 @@ _ZN18UnkStruct_027e0c5413func_020361d0Ev kind:function(arm,size=0x70) addr:0x020 func_02036240 kind:function(arm,size=0x170) addr:0x020361fc _ZN18UnkStruct_027e0c5413func_020363b0Ev kind:function(arm,size=0x18) addr:0x0203636c func_020363c8 kind:function(arm,size=0x74) addr:0x02036384 -_ZN14MessageManager13func_0203643cEPiPS_j kind:function(arm,size=0x54) addr:0x020363f8 +_ZN14MessageManager13func_0203643cEPPtPS_j kind:function(arm,size=0x54) addr:0x020363f8 _ZN14MessageManager13func_02036490Ev kind:function(thumb,size=0x1cc) addr:0x0203644c _ZN14MessageManager13func_0203665cEv kind:function(thumb,size=0x4a) addr:0x02036618 func_020366a8 kind:function(arm,size=0x1c) addr:0x02036664 @@ -1858,62 +1858,62 @@ _ZN18UnkStruct_020377508vfunc_1cEv kind:function(arm,size=0x8) addr:0x02038680 _ZN18UnkStruct_020377508vfunc_20Ev kind:function(arm,size=0xc) addr:0x02038688 _ZN18UnkStruct_020386d8C2Ev kind:function(arm,size=0x40) addr:0x02038694 _ZN18UnkStruct_020386d8C1Ev kind:function(arm,size=0x40) addr:0x020386d4 -_ZN18UnkStruct_020386d88vfunc_08Ej kind:function(arm,size=0x18) addr:0x02038714 -_ZN18UnkStruct_020386d88vfunc_24Ei kind:function(arm,size=0x1c) addr:0x0203872c -_ZN18UnkStruct_020386d88vfunc_28Ei kind:function(arm,size=0x18) addr:0x02038748 -_ZN18UnkStruct_020386d88vfunc_30Ev kind:function(arm,size=0x28) addr:0x02038760 -_ZN18UnkStruct_020386d8D2Ev kind:function(arm,size=0x14) addr:0x02038788 +func_02038758 kind:function(arm,size=0x18) addr:0x02038714 +func_02038770 kind:function(arm,size=0x1c) addr:0x0203872c +func_0203878c kind:function(arm,size=0x18) addr:0x02038748 +func_020387a4 kind:function(arm,size=0x28) addr:0x02038760 +func_020387cc kind:function(arm,size=0x14) addr:0x02038788 func_020387e0 kind:function(thumb,size=0xc) addr:0x0203879c func_020387ec kind:function(arm,size=0x18) addr:0x020387a8 func_02038804 kind:function(arm,size=0x18) addr:0x020387c0 -_ZN18UnkStruct_0203881cC2Ev kind:function(arm,size=0x3c) addr:0x020387d8 -_ZN18UnkStruct_0203881c13func_02038858Ei kind:function(arm,size=0x30) addr:0x02038814 -_ZN18UnkStruct_0203881c13func_02038888Ev kind:function(arm,size=0xc8) addr:0x02038844 -_ZN18UnkStruct_0203881c13func_02038950EP18UnkStruct_02038aa0i kind:function(arm,size=0x130) addr:0x0203890c -_ZN18UnkStruct_0203881c13func_02038a80Ei kind:function(arm,size=0x1c) addr:0x02038a3c -_ZN18UnkStruct_0203881cD1Ev kind:function(thumb,size=0x2) addr:0x02038a58 +func_0203881c kind:function(arm,size=0x3c) addr:0x020387d8 +func_02038858 kind:function(arm,size=0x30) addr:0x02038814 +func_02038888 kind:function(arm,size=0xc8) addr:0x02038844 +func_02038950 kind:function(arm,size=0x130) addr:0x0203890c +func_02038a80 kind:function(arm,size=0x1c) addr:0x02038a3c +_ZN18UnkStruct_0203881c8vfunc_00Ev kind:function(thumb,size=0x2) addr:0x02038a58 _ZN18UnkStruct_02038aa0C2Ehh kind:function(thumb,size=0x5c) addr:0x02038a5c _ZN18UnkStruct_02038aa0D1Ev kind:function(thumb,size=0xc) addr:0x02038ab8 _ZN18UnkStruct_02038aa0D0Ev kind:function(thumb,size=0x12) addr:0x02038ac4 _ZN18UnkStruct_02038aa0D2Ev kind:function(thumb,size=0xc) addr:0x02038ad8 -_ZN18UnkStruct_02038aa013func_02038b28Ev kind:function(thumb,size=0xc) addr:0x02038ae4 -_ZN18UnkStruct_02038aa08vfunc_4cEji kind:function(arm,size=0xc) addr:0x02038af0 -_ZN18UnkStruct_02038aa08vfunc_10Ei kind:function(arm,size=0x34) addr:0x02038afc -_ZN18UnkStruct_02038aa013func_02038b74Ev kind:function(arm,size=0x4) addr:0x02038b30 -_ZN18UnkStruct_02038aa08vfunc_48Ev kind:function(arm,size=0xbc) addr:0x02038b34 -_ZN18UnkStruct_02038aa013func_02038c34Ev kind:function(arm,size=0x84) addr:0x02038bf0 -_ZN18UnkStruct_02038aa08vfunc_34Ei kind:function(arm,size=0x3c) addr:0x02038c74 +_ZN18UnkStruct_02038aa08vfunc_4cEv kind:function(thumb,size=0xc) addr:0x02038ae4 +_ZN18UnkStruct_02038aa08vfunc_10Eji kind:function(arm,size=0xc) addr:0x02038af0 +_ZN18UnkStruct_02038aa013func_02038b40Ev kind:function(arm,size=0x34) addr:0x02038afc +_ZN18UnkStruct_02038aa08vfunc_48Ev kind:function(arm,size=0x4) addr:0x02038b30 +_ZN18UnkStruct_02038aa013func_02038b78Ev kind:function(arm,size=0xbc) addr:0x02038b34 +_ZN18UnkStruct_02038aa08vfunc_34Ei kind:function(arm,size=0x84) addr:0x02038bf0 +_ZN18UnkStruct_02038aa013func_02038cb8Ei kind:function(arm,size=0x3c) addr:0x02038c74 _ZN18UnkStruct_02038aa013func_02038cf4Ev kind:function(arm,size=0x1c) addr:0x02038cb0 _ZN18UnkStruct_02038aa013func_02038d10Ev kind:function(arm,size=0x10) addr:0x02038ccc -_ZN18UnkStruct_02038aa013func_02038d20Ev kind:function(arm,size=0x1b0) addr:0x02038cdc -_ZN18UnkStruct_02038aa08vfunc_2cEv kind:function(arm,size=0x24) addr:0x02038e8c -_ZN18UnkStruct_02038aa08vfunc_30Eii kind:function(arm,size=0x4c) addr:0x02038eb0 -_ZN18UnkStruct_02038aa013func_02038f40Eii kind:function(arm,size=0x4) addr:0x02038efc -_ZN18UnkStruct_02038aa08vfunc_44Ev kind:function(arm,size=0x114) addr:0x02038f00 -_ZN18UnkStruct_02038aa08vfunc_50Eiiii kind:function(arm,size=0x4) addr:0x02039014 -_ZN18UnkStruct_02038aa08vfunc_5cEv kind:function(arm,size=0x48) addr:0x02039018 -_ZN18UnkStruct_02038aa08vfunc_1cEiPiii kind:function(arm,size=0x164) addr:0x02039060 -_ZN18UnkStruct_02038aa08vfunc_20EiPi kind:function(arm,size=0x20) addr:0x020391c4 -_ZN18UnkStruct_02038aa013func_02039228Es kind:function(arm,size=0x28) addr:0x020391e4 -_ZN18UnkStruct_02038aa08vfunc_08EiiPsi kind:function(arm,size=0x64) addr:0x0203920c -_ZN18UnkStruct_02038aa013func_020392b4Ev kind:function(arm,size=0xe4) addr:0x02039270 -_ZN18UnkStruct_02038aa08vfunc_54Ev kind:function(arm,size=0xc) addr:0x02039354 -_ZN18UnkStruct_02038aa08vfunc_58Ev kind:function(arm,size=0x4) addr:0x02039360 -_ZN18UnkStruct_02038aa08vfunc_60Ev kind:function(arm,size=0x28) addr:0x02039364 -_ZN18UnkStruct_02038aa08vfunc_64Ev kind:function(arm,size=0x70) addr:0x0203938c -_ZN18UnkStruct_02038aa08vfunc_68Ei kind:function(arm,size=0x3c) addr:0x020393fc -_ZN18UnkStruct_02038aa013func_0203947cEii kind:function(arm,size=0x5c) addr:0x02039438 -_ZN18UnkStruct_02038aa08vfunc_6cEPiS0_ kind:function(arm,size=0x44) addr:0x02039494 -_ZN18UnkStruct_02038aa08vfunc_70EPiS0_ kind:function(arm,size=0x40) addr:0x020394d8 +_ZN18UnkStruct_02038aa08vfunc_2cEv kind:function(arm,size=0x1b0) addr:0x02038cdc +_ZN18UnkStruct_02038aa08vfunc_30Ev kind:function(arm,size=0x24) addr:0x02038e8c +_ZN18UnkStruct_02038aa013func_02038ef4Eii kind:function(arm,size=0x4c) addr:0x02038eb0 +_ZN18UnkStruct_02038aa08vfunc_44Eii kind:function(arm,size=0x4) addr:0x02038efc +_ZN18UnkStruct_02038aa08vfunc_50EP9EntryINF1jPsP21UnkSubClass1_02256FF8 kind:function(arm,size=0x114) addr:0x02038f00 +_ZN18UnkStruct_02038aa08vfunc_5cEPtP18UnkStruct_0203b264ci kind:function(arm,size=0x4) addr:0x02039014 +_ZN18UnkStruct_02038aa08vfunc_1cEiPiii kind:function(arm,size=0x48) addr:0x02039018 +_ZN18UnkStruct_02038aa08vfunc_20EiPi kind:function(arm,size=0x164) addr:0x02039060 +_ZN18UnkStruct_02038aa013func_02039208Es kind:function(arm,size=0x20) addr:0x020391c4 +_ZN18UnkStruct_02038aa08vfunc_08EiiPsi kind:function(arm,size=0x28) addr:0x020391e4 +_ZN18UnkStruct_02038aa013func_02039250Ev kind:function(arm,size=0x64) addr:0x0203920c +_ZN18UnkStruct_02038aa08vfunc_54Ev kind:function(arm,size=0xe4) addr:0x02039270 +_ZN18UnkStruct_02038aa08vfunc_58Ev kind:function(arm,size=0xc) addr:0x02039354 +_ZN18UnkStruct_02038aa08vfunc_60EP20func_0203b410_param1ii kind:function(arm,size=0x4) addr:0x02039360 +_ZN18UnkStruct_02038aa08vfunc_64Ei kind:function(arm,size=0x28) addr:0x02039364 +_ZN18UnkStruct_02038aa08vfunc_68EiPi kind:function(arm,size=0x70) addr:0x0203938c +_ZN18UnkStruct_02038aa013func_02039440Eii kind:function(arm,size=0x3c) addr:0x020393fc +_ZN18UnkStruct_02038aa08vfunc_6cEPiS0_ kind:function(arm,size=0x5c) addr:0x02039438 +_ZN18UnkStruct_02038aa08vfunc_70EPiS0_ kind:function(arm,size=0x44) addr:0x02039494 +_ZN18UnkStruct_02038aa013func_0203951cEv kind:function(arm,size=0x40) addr:0x020394d8 _ZN18UnkStruct_02038aa013func_0203955cEv kind:function(arm,size=0x14) addr:0x02039518 _ZN18UnkStruct_02038aa08vfunc_38Ev kind:function(arm,size=0x8) addr:0x0203952c -func_02039578 kind:function(arm,size=0x3c) addr:0x02039534 +_ZN18UnkStruct_0203dae08vfunc_0cEiiii kind:function(arm,size=0x3c) addr:0x02039534 _ZN18UnkStruct_020397f8C2Ev kind:function(thumb,size=0x244) addr:0x02039570 _ZN18UnkStruct_020397f8C1Ev kind:function(thumb,size=0x244) addr:0x020397b4 _ZN18UnkStruct_020397f88vfunc_4cEv kind:function(thumb,size=0x20) addr:0x020399f8 _ZN18UnkStruct_020397f88vfunc_2cEv kind:function(arm,size=0x24c) addr:0x02039a18 _ZN18UnkStruct_020397f813func_02039ca8Ev kind:function(arm,size=0x24) addr:0x02039c64 -_ZN18UnkStruct_020397f88vfunc_3cEv kind:function(arm,size=0xa8) addr:0x02039c88 +_ZN18UnkStruct_020397f88vfunc_3cEi kind:function(arm,size=0xa8) addr:0x02039c88 _ZN18UnkStruct_020397f88vfunc_40Eii kind:function(arm,size=0x414) addr:0x02039d30 _ZN18UnkStruct_020397f813func_0203a188Eii kind:function(arm,size=0x138) addr:0x0203a144 _ZN18UnkStruct_020397f813func_0203a2c0Ev kind:function(arm,size=0x4c) addr:0x0203a27c @@ -1922,16 +1922,16 @@ _ZN18UnkStruct_020397f88vfunc_48Ev kind:function(arm,size=0x34) addr:0x0203a2e4 _ZN18UnkStruct_020397f813func_0203a35cEv kind:function(arm,size=0x84) addr:0x0203a318 _ZN18UnkStruct_020397f813func_0203a3e0Ev kind:function(arm,size=0x1c) addr:0x0203a39c _ZN18UnkStruct_020397f88vfunc_44Eii kind:function(arm,size=0x2d4) addr:0x0203a3b8 -_ZN18UnkStruct_020397f813func_0203a6d0Ei kind:function(arm,size=0x120) addr:0x0203a68c -_ZN18UnkStruct_020397f88vfunc_50Eiiii kind:function(arm,size=0x198) addr:0x0203a7ac +_ZN18UnkStruct_020397f813func_0203a6d0Eii kind:function(arm,size=0x120) addr:0x0203a68c +_ZN18UnkStruct_020397f88vfunc_50EP9EntryINF1jPsP21UnkSubClass1_02256FF8 kind:function(arm,size=0x198) addr:0x0203a7ac _ZN18UnkStruct_020397f88vfunc_54Ev kind:function(arm,size=0x520) addr:0x0203a944 -_ZN18UnkStruct_020397f88vfunc_5cEv kind:function(arm,size=0x74) addr:0x0203ae64 +_ZN18UnkStruct_020397f88vfunc_5cEPtP18UnkStruct_0203b264ci kind:function(arm,size=0x74) addr:0x0203ae64 _ZN18UnkStruct_020397f88vfunc_58Ev kind:function(arm,size=0x1a0) addr:0x0203aed8 _ZN18UnkStruct_020397f813func_0203b0bcEv kind:function(arm,size=0x30) addr:0x0203b078 _ZN18UnkStruct_020397f813func_0203b0ecEj kind:function(arm,size=0x178) addr:0x0203b0a8 -_ZN18UnkStruct_020397f88vfunc_18Ei kind:function(arm,size=0xac) addr:0x0203b220 +_ZN18UnkStruct_020397f88vfunc_18EP18UnkStruct_02032e7cii kind:function(arm,size=0xac) addr:0x0203b220 _ZN18UnkStruct_020397f88vfunc_1cEiPiii kind:function(arm,size=0x100) addr:0x0203b2cc -_ZN18UnkStruct_020397f88vfunc_60Ei kind:function(arm,size=0x1c0) addr:0x0203b3cc +_ZN18UnkStruct_020397f88vfunc_60EP20func_0203b410_param1ii kind:function(arm,size=0x1c0) addr:0x0203b3cc _ZN18UnkStruct_020397f88vfunc_64Ei kind:function(arm,size=0x194) addr:0x0203b58c _ZN18UnkStruct_020397f813func_0203b764Ev kind:function(arm,size=0xb0) addr:0x0203b720 _ZN18UnkStruct_020397f88vfunc_20EiPi kind:function(arm,size=0x578) addr:0x0203b7d0 @@ -1942,31 +1942,31 @@ _ZN18UnkStruct_020397f813func_0203be64Ev kind:function(arm,size=0x220) addr:0x02 _ZN18UnkStruct_020397f813func_0203c084Ev kind:function(arm,size=0xb8) addr:0x0203c040 _ZN18UnkStruct_020397f813func_0203c13cEv kind:function(arm,size=0x64) addr:0x0203c0f8 _ZN18UnkStruct_020397f813func_0203c1a0Ev kind:function(arm,size=0xbc) addr:0x0203c15c -_ZN18UnkStruct_020397f813func_0203c25cEv kind:function(arm,size=0x6c) addr:0x0203c218 -_ZN18UnkStruct_020397f8D1Ev kind:function(arm,size=0x48) addr:0x0203c284 -_ZN18UnkStruct_020397f8D0Ev kind:function(arm,size=0x40) addr:0x0203c2cc +_ZN18UnkStruct_020397f813func_0203c25cEPS_ kind:function(arm,size=0x6c) addr:0x0203c218 +_ZN18UnkStruct_020397f8D0Ev kind:function(arm,size=0x48) addr:0x0203c284 +_ZN18UnkStruct_020397f8D1Ev kind:function(arm,size=0x40) addr:0x0203c2cc _ZN18UnkStruct_020397f88vfunc_38Ev kind:function(arm,size=0x8) addr:0x0203c30c -_ZN13MsgProc_Type2C1Eisi kind:function(thumb,size=0x44) addr:0x0203c314 -_ZN13MsgProc_Type213func_0203c39cEii kind:function(thumb,size=0x78) addr:0x0203c358 -_ZN13MsgProc_Type28vfunc_3CEi kind:function(arm,size=0x4c) addr:0x0203c3d0 +_ZN13MsgProc_Type2C1Ev kind:function(thumb,size=0x44) addr:0x0203c314 +_ZN13MsgProc_Type28vfunc_4cEv kind:function(thumb,size=0x78) addr:0x0203c358 +_ZN13MsgProc_Type28vfunc_3cEi kind:function(arm,size=0x4c) addr:0x0203c3d0 _ZN13MsgProc_Type28vfunc_40Eii kind:function(arm,size=0x4c) addr:0x0203c41c _ZN13MsgProc_Type213func_0203c4acEii kind:function(arm,size=0x118) addr:0x0203c468 _ZN13MsgProc_Type28vfunc_14Eii kind:function(arm,size=0x18) addr:0x0203c580 -func_0203c5dc kind:function(arm,size=0x120) addr:0x0203c598 +_ZN13MsgProc_Type213func_0203c5dcEv kind:function(arm,size=0x120) addr:0x0203c598 _ZN13MsgProc_Type2D0Ev kind:function(arm,size=0x1c) addr:0x0203c6b8 -_ZN13MsgProc_Type2D2Ev kind:function(arm,size=0x14) addr:0x0203c6d4 -_ZN13MsgProc_Type3C1Eisi kind:function(arm,size=0x110) addr:0x0203c6e8 -_ZN13MsgProc_Type313func_0203c83cEv kind:function(arm,size=0x4) addr:0x0203c7f8 -_ZN13MsgProc_Type3D2Ev kind:function(arm,size=0x30) addr:0x0203c7fc +_ZN13MsgProc_Type2D1Ev kind:function(arm,size=0x14) addr:0x0203c6d4 +_ZN13MsgProc_Type3C1Ev kind:function(arm,size=0x110) addr:0x0203c6e8 +_ZN28UnkClass_func_ov000_020d0644D1Ev kind:function(arm,size=0x4) addr:0x0203c7f8 +_ZN13MsgProc_Type3D1Ev kind:function(arm,size=0x30) addr:0x0203c7fc _ZN13MsgProc_Type3D0Ev kind:function(arm,size=0x38) addr:0x0203c82c -func_0203c8a8 kind:function(arm,size=0x58) addr:0x0203c864 -func_0203c900 kind:function(arm,size=0x4) addr:0x0203c8bc +_ZN13MsgProc_Type38vfunc_3cEi kind:function(arm,size=0x58) addr:0x0203c864 +_ZN13MsgProc_Type38vfunc_40Eii kind:function(arm,size=0x4) addr:0x0203c8bc func_0203c904 kind:function(arm,size=0x11c) addr:0x0203c8c0 func_0203ca20 kind:function(arm,size=0x9c) addr:0x0203c9dc func_0203cabc kind:function(arm,size=0x44) addr:0x0203ca78 -func_0203cb00 kind:function(arm,size=0x5c) addr:0x0203cabc +_ZN13MsgProc_Type38vfunc_24EPPs kind:function(arm,size=0x5c) addr:0x0203cabc func_0203cb5c kind:function(arm,size=0x10c) addr:0x0203cb18 -func_0203cc68 kind:function(arm,size=0xf4) addr:0x0203cc24 +_ZN13MsgProc_Type38vfunc_44Eii kind:function(arm,size=0xf4) addr:0x0203cc24 func_0203cd5c kind:function(arm,size=0x44) addr:0x0203cd18 func_0203cda0 kind:function(arm,size=0x20) addr:0x0203cd5c func_0203cdc0 kind:function(arm,size=0x4) addr:0x0203cd7c @@ -1985,12 +1985,12 @@ func_0203d0c0 kind:function(arm,size=0x8c) addr:0x0203d07c func_0203d14c kind:function(arm,size=0x1c) addr:0x0203d108 func_0203d168 kind:function(arm,size=0x28) addr:0x0203d124 func_0203d190 kind:function(arm,size=0x24) addr:0x0203d14c -func_0203d1b4 kind:function(arm,size=0x1c) addr:0x0203d170 -func_0203d1d0 kind:function(arm,size=0x20) addr:0x0203d18c +_ZN23UnkStruct_0203d1d0_base13func_0203d1b4Ev kind:function(arm,size=0x1c) addr:0x0203d170 +_ZN18UnkStruct_0203d1d0C1Ev kind:function(arm,size=0x20) addr:0x0203d18c func_0203d1f0 kind:function(arm,size=0x4) addr:0x0203d1ac func_0203d1f4 kind:function(arm,size=0x14) addr:0x0203d1b0 func_0203d208 kind:function(arm,size=0x4c) addr:0x0203d1c4 -func_0203d254 kind:function(arm,size=0x20) addr:0x0203d210 +_ZN18UnkStruct_0203d254C1Ev kind:function(arm,size=0x20) addr:0x0203d210 func_0203d274 kind:function(arm,size=0x4) addr:0x0203d230 func_0203d278 kind:function(arm,size=0x14) addr:0x0203d234 func_0203d28c kind:function(arm,size=0x4c) addr:0x0203d248 @@ -1998,7 +1998,7 @@ func_0203d2d8 kind:function(arm,size=0x24) addr:0x0203d294 func_0203d2fc kind:function(arm,size=0x4) addr:0x0203d2b8 func_0203d300 kind:function(arm,size=0x14) addr:0x0203d2bc func_0203d314 kind:function(arm,size=0x4) addr:0x0203d2d0 -func_0203d318 kind:function(arm,size=0x40) addr:0x0203d2d4 +_ZN18UnkStruct_0203dae013func_0203d318Eii kind:function(arm,size=0x40) addr:0x0203d2d4 func_0203d358 kind:function(arm,size=0xa8) addr:0x0203d314 func_0203d400 kind:function(arm,size=0x48) addr:0x0203d3bc func_0203d448 kind:function(arm,size=0x1c) addr:0x0203d404 @@ -2024,7 +2024,7 @@ func_0203d848 kind:function(arm,size=0x8c) addr:0x0203d804 func_0203d8d4 kind:function(arm,size=0x8c) addr:0x0203d890 func_0203d960 kind:function(arm,size=0xc0) addr:0x0203d91c func_0203da20 kind:function(arm,size=0xc0) addr:0x0203d9dc -_ZN18UnkStruct_0203dae0C2Eh kind:function(thumb,size=0x98) addr:0x0203da9c +_ZN18UnkStruct_0203dae0C1Eh kind:function(thumb,size=0x98) addr:0x0203da9c _ZN18UnkStruct_0203dae0D1Ev kind:function(thumb,size=0x30) addr:0x0203db34 _ZN18UnkStruct_0203dae0D0Ev kind:function(thumb,size=0x38) addr:0x0203db64 _ZN18UnkStruct_0203dae0D2Ev kind:function(thumb,size=0x30) addr:0x0203db9c @@ -2034,7 +2034,7 @@ _ZN18UnkStruct_0203dae08vfunc_14Eii kind:function(arm,size=0x48) addr:0x0203dc70 _ZN18UnkStruct_0203dae013func_0203dcfcEhiii kind:function(arm,size=0xf0) addr:0x0203dcb8 _ZN18UnkStruct_0203dae013func_0203ddecEv kind:function(arm,size=0x10) addr:0x0203dda8 _ZN18UnkStruct_0203dae013func_0203ddfcEv kind:function(arm,size=0x18) addr:0x0203ddb8 -_ZN18UnkStruct_02038aa013func_0203de14Ei kind:function(arm,size=0x10) addr:0x0203ddd0 +_ZN18UnkStruct_0203dae013func_0203de14Ei kind:function(arm,size=0x10) addr:0x0203ddd0 _ZN18UnkStruct_0203dae013func_0203de24Ev kind:function(arm,size=0x34) addr:0x0203dde0 _ZN18UnkStruct_0203dae013func_0203de58Ei kind:function(arm,size=0x208) addr:0x0203de14 _ZN18UnkStruct_0203dae08vfunc_10Eji kind:function(arm,size=0x30) addr:0x0203e01c @@ -2043,7 +2043,7 @@ _ZN18UnkStruct_0203dae08vfunc_28Ev kind:function(arm,size=0x30) addr:0x0203e084 _ZN18UnkStruct_0203dae013func_0203e0f8Ev kind:function(arm,size=0xa4) addr:0x0203e0b4 _ZN18UnkStruct_0203dae08vfunc_2cEv kind:function(arm,size=0x14) addr:0x0203e158 _ZN18UnkStruct_0203dae013func_0203e1b0Eiii kind:function(arm,size=0xd4) addr:0x0203e16c -_ZN18UnkStruct_0203dae08vfunc_18Ei kind:function(arm,size=0x28) addr:0x0203e240 +_ZN18UnkStruct_0203dae08vfunc_18EP18UnkStruct_02032e7cii kind:function(arm,size=0x28) addr:0x0203e240 _ZN18UnkStruct_0203dae08vfunc_08EiiPsi kind:function(arm,size=0x3c) addr:0x0203e268 _ZN18UnkStruct_0203dae013func_0203e2e8Eiiij kind:function(arm,size=0x228) addr:0x0203e2a4 _ZN18UnkStruct_0203dae013func_0203e510EPiii kind:function(arm,size=0x11c) addr:0x0203e4cc @@ -2071,7 +2071,7 @@ func_0203eb8c kind:function(thumb,size=0x1a) addr:0x0203eb48 func_0203eba8 kind:function(arm,size=0x20) addr:0x0203eb64 func_0203ebc8 kind:function(arm,size=0x18) addr:0x0203eb84 func_0203ebe0 kind:function(arm,size=0x18) addr:0x0203eb9c -func_0203ebf8 kind:function(arm,size=0x3c) addr:0x0203ebb4 +_ZN22UnkStruct_020397f8_41013func_0203ebf8Ev kind:function(arm,size=0x3c) addr:0x0203ebb4 func_0203ec34 kind:function(arm,size=0x18) addr:0x0203ebf0 func_0203ec4c kind:function(arm,size=0xcc) addr:0x0203ec08 func_0203ed18 kind:function(arm,size=0xd4) addr:0x0203ecd4 @@ -2080,9 +2080,9 @@ func_0203ee48 kind:function(arm,size=0x38) addr:0x0203ee04 func_0203ee80 kind:function(arm,size=0x30) addr:0x0203ee3c func_0203eeb0 kind:function(arm,size=0x80) addr:0x0203ee6c func_0203ef30 kind:function(arm,size=0x48) addr:0x0203eeec -func_0203ef78 kind:function(arm,size=0x60) addr:0x0203ef34 +_ZN22UnkStruct_020397f8_42413func_0203ef78Es kind:function(arm,size=0x60) addr:0x0203ef34 func_0203efd8 kind:function(thumb,size=0x48) addr:0x0203ef94 -func_0203f020 kind:function(arm,size=0xb8) addr:0x0203efdc +_ZN20UnkSubClass1_unk_12413func_0203f020Eii kind:function(arm,size=0xb8) addr:0x0203efdc func_0203f0d8 kind:function(arm,size=0x2a0) addr:0x0203f094 func_0203f378 kind:function(arm,size=0x30) addr:0x0203f334 func_0203f3a8 kind:function(arm,size=0x1d0) addr:0x0203f364 @@ -2097,7 +2097,7 @@ func_0203f7cc kind:function(arm,size=0xd0) addr:0x0203f788 func_0203f89c kind:function(arm,size=0x68) addr:0x0203f858 _ZN18UnkStruct_02075dac13func_0203f904Ev kind:function(thumb,size=0x70) addr:0x0203f8c0 func_0203f974 kind:function(arm,size=0x44) addr:0x0203f930 -func_0203f9b8 kind:function(arm,size=0x9c) addr:0x0203f974 +_ZN18UnkStruct_02075dac13func_0203f9b8EPv kind:function(arm,size=0x9c) addr:0x0203f974 func_0203fa54 kind:function(arm,size=0x2c) addr:0x0203fa10 func_0203fa80 kind:function(arm,size=0x30) addr:0x0203fa3c func_0203fab0 kind:function(arm,size=0x68) addr:0x0203fa6c @@ -2186,18 +2186,18 @@ func_02041bcc kind:function(thumb,size=0x4c) addr:0x02041b88 func_02041c18 kind:function(thumb,size=0x14) addr:0x02041bd4 func_02041c2c kind:function(thumb,size=0x64) addr:0x02041be8 func_02041c90 kind:function(thumb,size=0x18) addr:0x02041c4c -func_02041ca8 kind:function(thumb,size=0x14) addr:0x02041c64 +_ZN19UnkStruct_astruct_3C1Ev kind:function(thumb,size=0x14) addr:0x02041c64 func_02041cbc kind:function(thumb,size=0xd0) addr:0x02041c78 func_02041d8c kind:function(thumb,size=0x50) addr:0x02041d48 func_02041ddc kind:function(thumb,size=0x2a) addr:0x02041d98 func_02041e08 kind:function(thumb,size=0x2c) addr:0x02041dc4 func_02041e34 kind:function(thumb,size=0x48) addr:0x02041df0 -func_02041e7c kind:function(thumb,size=0x2a) addr:0x02041e38 -func_02041ea8 kind:function(thumb,size=0x26) addr:0x02041e64 +_ZN19UnkStruct_astruct_313func_02041e7cEPc kind:function(thumb,size=0x2a) addr:0x02041e38 +_ZN19UnkStruct_astruct_313func_02041ea8Ev kind:function(thumb,size=0x26) addr:0x02041e64 func_02041ed0 kind:function(thumb,size=0x98) addr:0x02041e8c func_02041f68 kind:function(thumb,size=0x2e) addr:0x02041f24 func_02041f98 kind:function(thumb,size=0xa) addr:0x02041f54 -func_02041fa4 kind:function(thumb,size=0xa) addr:0x02041f60 +_ZN19UnkStruct_astruct_313func_02041fa4EPvj kind:function(thumb,size=0xa) addr:0x02041f60 func_02041fb0 kind:function(thumb,size=0x3a) addr:0x02041f6c func_02041fec kind:function(thumb,size=0x38) addr:0x02041fa8 func_02042024 kind:function(thumb,size=0x1a) addr:0x02041fe0 @@ -2728,8 +2728,8 @@ data_02057990 kind:data(any) addr:0x02057948 data_02057994 kind:data(any) addr:0x0205794c data_02057998 kind:data(any) addr:0x02057950 data_0205799c kind:data(any) addr:0x02057954 -_ZTV18UnkStruct_02032f0c kind:data(any) addr:0x02057980 -_ZTV18UnkStruct_02032e7c kind:data(any) addr:0x020579b0 +_ZTV18UnkStruct_02032f0c kind:data(any) addr:0x02057978 +_ZTV18UnkStruct_02032e7c kind:data(any) addr:0x020579a8 data_02057a00 kind:data(any) addr:0x020579b8 data_02057a08 kind:data(any) addr:0x020579c0 data_02057a10 kind:data(any) addr:0x020579c8 @@ -2807,11 +2807,11 @@ data_02057cc8 kind:data(any) addr:0x02057c80 data_02057ccc kind:data(any) addr:0x02057c84 data_02057cd0 kind:data(any) addr:0x02057c88 data_02057cd4 kind:data(any) addr:0x02057c8c -_ZTV18UnkStruct_02037750 kind:data(any) addr:0x02057cb8 -_ZTV18UnkStruct_020386d8 kind:data(any) addr:0x02057cf4 +_ZTV18UnkStruct_02037750 kind:data(any) addr:0x02057cb0 +_ZTV18UnkStruct_020386d8 kind:data(any) addr:0x02057cec data_02057d70 kind:data(any) addr:0x02057d28 -data_02057d90 kind:data(any) addr:0x02057d48 -data_02057e0c kind:data(any) addr:0x02057dc4 +_ZTV18UnkStruct_02038aa0 kind:data(any) addr:0x02057d40 +_ZTV18UnkStruct_0203881c kind:data(any) addr:0x02057dbc data_02057e14 kind:data(any) addr:0x02057dcc data_02057e18 kind:data(any) addr:0x02057dd0 data_02057e1c kind:data(any) addr:0x02057dd4 @@ -2820,18 +2820,18 @@ data_02057e24 kind:data(any) addr:0x02057ddc data_02057e28 kind:data(any) addr:0x02057de0 data_02057e2c kind:data(any) addr:0x02057de4 data_02057e30 kind:data(any) addr:0x02057de8 -data_02057e5c kind:data(any) addr:0x02057e14 +_ZTV18UnkStruct_020397f8 kind:data(any) addr:0x02057e0c data_02057ed0 kind:data(any) addr:0x02057e88 data_02057ed4 kind:data(any) addr:0x02057e8c data_02057ed8 kind:data(any) addr:0x02057e90 data_02057eec kind:data(any) addr:0x02057ea4 data_02057f08 kind:data(any) addr:0x02057ec0 -_ZTV13MsgProc_Type2 kind:data(any) addr:0x02057ecc -data_02057f90 kind:data(any) addr:0x02057f48 -data_0205800c kind:data(any) addr:0x02057fc4 -data_02058024 kind:data(any) addr:0x02057fdc -data_0205803c kind:data(any) addr:0x02057ff4 -_ZTV13MsgProc_Base2 kind:data(any) addr:0x0205800c +_ZTV13MsgProc_Type2 kind:data(any) addr:0x02057ec4 +_ZTV13MsgProc_Type3 kind:data(any) addr:0x02057f40 +data_02058004 kind:data(any) addr:0x02057fbc +data_0205801c kind:data(any) addr:0x02057fd4 +data_02058034 kind:data(any) addr:0x02057fec +_ZTV18UnkStruct_0203dae0 kind:data(any) addr:0x02058004 data_02058088 kind:data(any) addr:0x02058040 data_02058090 kind:data(any) addr:0x02058048 data_02058094 kind:data(any) addr:0x0205804c diff --git a/include/Message/BMG.hpp b/include/Message/BMG.hpp index ac0c183f..48a1cafc 100644 --- a/include/Message/BMG.hpp +++ b/include/Message/BMG.hpp @@ -5,10 +5,6 @@ #include "types.h" #define BMG_MAGIC "MESGbmg1" -#define BMG_GET_INF1(pGroups, flags) ((pGroups)->entries[(flags) >> 0x10].func_02037258((flags) & 0xFFFF)) -#define BMG_GET_MSG_OFFSET(pGroups, flags) (BMG_GET_INF1((pGroups), (flags))->offset) -#define BMG_GET_MSG_ADDR(pGroups, flags) \ - ((u32) (pGroups)->entries[(flags) >> 0x10].pDAT1 + (BMG_GET_MSG_OFFSET((pGroups), (flags)) & ~1)) enum BMGTag { /* "INF1" */ BMG_TAG_INF1 = '1FNI', @@ -67,7 +63,7 @@ typedef enum BMGFileIndex { struct SectionBase { /* 00 */ u32 tag; // "INF1", "DAT1", ... - /* 04 */ u32 size; // the size of the section + /* 04 */ u32 size; // the size of the section, aligned to 32 /* 08 */ }; @@ -81,7 +77,7 @@ struct BMGHeader { }; struct EntryINF1 { - /* 00 */ u32 offset; // relative to the end of the DAT1 header + /* 00 */ u32 stringOffset; // relative to the end of the DAT1 header (where actual strings are in DAT1) /* 04 */ u8 mUnk_04; // flags/attributes? (+0x04 to +0x06) /* 05 */ u8 mUnk_05; /* 06 */ u8 mUnk_06; @@ -100,90 +96,92 @@ struct SectionINF1 { /* 14 */ }; -enum InstrType { - /* 1 */ FLW1_TYPE_SHOW_MSG = 1, - /* 2 */ FLW1_TYPE_BRANCH = 2, - /* 3 */ FLW1_TYPE_EVENT = 3, +enum NodeType { + /* 1 */ NODE_TYPE_MSG = 1, + /* 2 */ NODE_TYPE_BRANCH = 2, + /* 3 */ NODE_TYPE_EVENT = 3, /* 4 */ }; -struct InstrShowMsg { +struct NodeMsg { + /* 00 (type) */ /* 01 */ u8 bmgFileIndex; // index into sBMGFiles - /* 02 */ u16 msgIndex; // index of INF1 entry - /* 04 */ s16 nextIndex; // index of FLW1 entry, 0xFFFF stops the conversation - /* 06 */ s16 nextBMGFileIndex; // index into sBMGFiles + /* 02 */ u16 infIndex; // index of INF1 entry + /* 04 */ u16 nextFlwIndex; // index of FLW1 entry, 0xFFFF stops the conversation + /* 06 */ u16 unused_0x6; /* 08 */ }; -struct InstrBranch { - /* 01 */ u8 mUnk_01; - /* 02 */ u16 funcIndex; // index of the query function to run - /* 04 */ u16 funcArg; // the argument to use in the function - /* 06 */ u16 flwEntry; // the index of the second section table to be used next in the conversation. +struct NodeBranch { + /* 00 (type) */ + /* 01 */ u8 numQueryResults; + /* 02 */ u16 queryIndex; // index of the query function to run + /* 04 */ u16 queryParams; // the argument to use in the function + /* 06 */ u16 nextNodeTableBaseIdx; // the index of the second section table to be used next in the conversation. /* 08 */ }; -struct InstrEvent { - /* 01 */ u8 funcIndex; // index of the query function to run - /* 02 */ u16 flwEntry; // the index of the second section table to be used next in the conversation. - /* 04 */ u32 funcArg; // the argument to use in the function +struct NodeEvent { + /* 00 (type) */ + /* 01 */ u8 eventIndex; // index of the event function to run + /* 02 */ u16 nextNodeTableIndex; // the index of the second section table to be used next in the conversation. + /* 04 */ union { // the argument to use in the function + u32 eventParams32; + u16 eventParams16[2]; + u8 eventParams8[4]; + }; /* 08 */ }; -struct FLW1Instr { - /* 00 */ u8 type; // see InstrType +struct FLW1Node { + /* 00 */ u8 type; // see NodeType /* 01 */ union { - InstrShowMsg showMsg; - InstrBranch branch; - InstrEvent event; + NodeMsg msg; + NodeBranch branch; + NodeEvent event; }; - /* 09 */ + /* 08 */ }; -struct SectionFLW1 { +struct FLW1Header { /* 00 */ SectionBase base; - /* 04 */ u16 numInstructions; - /* 08 */ u16 numLabels; - /* 0c */ u32 mUnk_0c; // always zero? - /* 10 */ FLW1Instr *instructions; - /* 14 */ s16 *flwEntries; + /* 04 */ u16 numNodes; + /* 08 */ u16 numFlwEntries; + /* 0c */ u32 padding_0xC; + /* 10 */ +}; + +struct SectionFLW1 { + /* 00 */ FLW1Header header; + /* 10 */ FLW1Node *nodes; // real size is `FLW1Header.numNodes * sizeof(FLW1Node)` + /* 14 */ u16 *flwEntries; // "indirection table", real size is `FLW1Header.numFlwEntries * sizeof(u16)` /* 18 */ s8 *bmgFileIndices; /* 1c */ }; struct EntryFLI1 { /* 00 */ u32 msgFlowID; - /* 04 */ u32 msgFlowNodeIndex; + /* 04 */ u16 msgFlowNodeIndex; + /* 06 */ u16 padding_0x6; /* 08 */ }; struct SectionFLI1 { /* 00 */ SectionBase base; - /* 04 */ u16 numEntries; - /* 08 */ u16 entrySize; + /* 08 */ u16 numEntries; + /* 0a */ u16 entrySize; /* 0c */ u32 mUnk_0c; // always zero? /* 10 */ EntryFLI1 *entries; /* 14 */ }; -struct EntryDAT1 { - /* 00 */ char *text; - /* 04 */ -}; - -struct SectionDAT1 { - /* 00 */ SectionBase base; - /* 08 */ EntryDAT1 *entries; - /* 0c */ -}; - struct BMGFileInfo { /* 00 */ BMGHeader *pHeader; // pointer to the file's header /* 04 */ SectionINF1 *pINF1; // pointer to the data informations (INF -> informations) /* 08 */ SectionFLW1 *pFLW1; // pointer to the message flow data (FLW -> flow) /* 0c */ SectionFLI1 *pFLI1; // pointer to the message flow index table (FLI -> flow index table) - /* 10 */ SectionDAT1 *pDAT1; // pointer to the data (DAT -> data) - /* 14 */ BMGHeader *mUnk_14; // same as pHeader (?) + /* 10 */ char *pDAT1; // pointer to the data, unlike the others this one points directly to the strings + /* 14 */ u32 *pFile; /* 18 */ s16 mUnk_18; // stores `func_020372f0`->param_3 value (currently undetermined purpose) /* 1a */ s16 groupId; // stores the group id /* 1c */ diff --git a/include/Message/MessageManager.hpp b/include/Message/MessageManager.hpp index d7cbc98e..5173f752 100644 --- a/include/Message/MessageManager.hpp +++ b/include/Message/MessageManager.hpp @@ -26,11 +26,11 @@ class MessageManager : public SysObject { /* 0x05 */ u8 mUnk_05; /* 0x06 */ unk16 mUnk_06; /* 0x08 */ UnkStruct_020397f8 *mUnk_08; - /* 0x0C */ u8 mUnk_0c; - /* 0x0C */ u8 mUnk_0d; - /* 0x0C */ unk16 mUnk_0e; + /* 0x0c */ u8 mUnk_0c; + /* 0x0d */ u8 mUnk_0d; + /* 0x0e */ unk16 mUnk_0e; /* 0x10 */ unk16 mUnk_10; - /* 0x10 */ unk16 mUnk_12; + /* 0x12 */ unk16 mUnk_12; /* 0x14 */ BMGGroups *pGroups; /* 0x18 */ UnkStruct_020386d8 *mUnk_18[2]; /* 0x20 */ UnkStruct_02037750 *mUnk_20[2]; @@ -39,7 +39,7 @@ class MessageManager : public SysObject { /* 0x48 */ DebugHierarchy *mDebug; /* 0x4C */ - static void func_0203643c(u32 *param_1, MessageManager *param_2, u32 param_3); + static void func_0203643c(u16 **param_1, MessageManager *param_2, u32 param_3); void func_02036490(); void func_0203665c(void); MessageManager(); @@ -50,7 +50,7 @@ class MessageManager : public SysObject { bool func_02036770(u32 param_2); unk32 func_02036798(void); bool func_020367dc(int param_2); - bool MessageManager::func_020367ec(void); + bool func_020367ec(void); bool func_02036808(void); bool func_02036824(void); bool func_02036850(void); @@ -64,9 +64,9 @@ class MessageManager : public SysObject { bool func_02036d30(UnkStruct_02037750 *param_2); bool func_02036d4c(UnkStruct_02037750 *param_2); void func_02036d6c(void); - UnkStruct_02038aa0 *func_02036da8(u32 param_2, s16 *param_3); + UnkStruct_02038aa0 *func_02036da8(u32 param_2, UnkStruct_000 *param_3); void func_02036edc(u32 param_2, u8 param_3); - UnkStruct_020397f8 *func_02036f68(u32 param_2, u8 *param_3); + UnkStruct_020397f8 *func_02036f68(u32 param_2, u16 *param_3); UnkStruct_020386d8 *func_020370d0(unk32 param_2, unk32 param_3); UnkStruct_020386d8 *func_020370e8(unk32 param_2, unk16 param_3, unk16 param_4, unk32 param_5); void func_02037158(UnkSubClass1_02256FF8 *param_2); @@ -75,4 +75,14 @@ class MessageManager : public SysObject { void func_ov004_021069c4(void); }; +#define BMG_GET_INF1(pGroups, flags) ((pGroups)->entries[(flags) >> 16].func_02037258((flags))) + +static inline u16 *GetMsgStringAddr(MessageManager *pMessageManager, u32 flags) { + BMGGroups *pGroups = pMessageManager->pGroups; + EntryINF1 *pINF1 = BMG_GET_INF1(pGroups, flags); + + flags >>= 16; + return (u16 *) &pGroups->entries[flags].pDAT1[pINF1->stringOffset & ~1]; +} + extern MessageManager gMessageManager; diff --git a/include/Message/MsgProc.hpp b/include/Message/MsgProc.hpp index 81497633..74e46ae0 100644 --- a/include/Message/MsgProc.hpp +++ b/include/Message/MsgProc.hpp @@ -45,21 +45,6 @@ class UnkStruct_020397f8_424 { UnkStruct_0203b264 *func_0203eeb0(unk32 param_2, unk32 param_3); }; -class UnkStruct_0203dae0_114 : public SysObject { -public: - /* 0x00 (vtable) */ - /* 0x04 */ unk32 *mUnk_04; - /* 0x08 */ - - UnkStruct_0203dae0_114(); - /* 0x00 */ virtual ~UnkStruct_0203dae0_114() override; - /* 0x08 */ virtual unk32 vfunc_08(void *); - /* 0x08 */ virtual unk32 vfunc_0c(void); - /* 0x0C */ - - unk32 *func_0203d1b4(void); -}; - struct func_02038f44_param4 { u8 mUnk_00; u8 mUnk_01; @@ -111,10 +96,10 @@ class UnkClass_027e0cbc { extern UnkClass_027e0cbc data_027e0cbc; extern unk16 data_02056a10[]; extern unk16 data_02056a16[]; -extern unk32 data_02056a04[]; +extern unk32 data_02056a04[8]; 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" unk32 func_0202ab48(void); extern "C" void func_02034984(unk32, u8, unk32, unk32); extern "C" void func_02034698(unk32, unk32, unk32 *, unk32 *); extern struct TouchControl gTouchControl; @@ -128,7 +113,7 @@ extern UnkClass_027e0e28 *data_027e0e28; extern unk32 *data_ov009_0211f5b4; extern "C" unk32 func_ov003_020f3f94(unk32 *); extern "C" void func_ov003_020f4060(unk32 **); -extern unk32 *data_02057ed4; +extern char *data_02057ed4; // see Actor.cpp typedef struct UnkStruct_01ffbe34 { diff --git a/include/Unknown/UnkStruct_02032e7c.hpp b/include/Unknown/UnkStruct_02032e7c.hpp new file mode 100644 index 00000000..8b888277 --- /dev/null +++ b/include/Unknown/UnkStruct_02032e7c.hpp @@ -0,0 +1,24 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "System/SysNew.hpp" + +class UnkStruct_02032e7c : public SysObject { +public: + /* 00 (vtable) */ + /* 04 */ u16 *mUnk_04; // pointer to the current position in the message to display + /* 08 */ unk16 mUnk_08; + /* 0a */ unk16 mUnk_0a; + /* 0c */ unk16 mUnk_0c; + /* 0e */ unk16 mUnk_0e; + /* 10 */ unk32 mUnk_10; + /* 14 */ + + /* 0 */ virtual void vfunc_00(); + /* 0 */ virtual void vfunc_04(); + /* 8 */ + + UnkStruct_02032e7c(); +}; diff --git a/include/Unknown/UnkStruct_02032f0c.hpp b/include/Unknown/UnkStruct_02032f0c.hpp index ec589e51..c7a0fa1c 100644 --- a/include/Unknown/UnkStruct_02032f0c.hpp +++ b/include/Unknown/UnkStruct_02032f0c.hpp @@ -5,22 +5,15 @@ #include "Message/BMG.hpp" #include "System/SysNew.hpp" +#include "Unknown/UnkStruct_02032e7c.hpp" -class UnkStruct_02032e7c : public SysObject { -public: - /* 00 (vtable) */ - /* 04 */ u16 *mUnk_04; // pointer to the current position in the message to display - /* 08 */ unk16 mUnk_08; - /* 0a */ unk16 mUnk_0a; - /* 0c */ unk16 mUnk_0c; - /* 0e */ unk16 mUnk_0e; - /* 10 */ unk32 mUnk_10; - /* 14 */ - - /* 0 */ virtual ~UnkStruct_02032e7c(); - /* 8 */ +struct UnkStruct_000 { + /* 00 */ unk32 mUnk_00; + /* 04 */ unk32 mUnk_04; + /* 08 */ unk32 mUnk_08; + /* 0c */ - UnkStruct_02032e7c(); + UnkStruct_000(); }; class UnkSubClass1_02256FF8 { @@ -56,8 +49,7 @@ class UnkSubClass1_02256FF8 { struct UnkStruct_MsgProc_Base_unk_2C { /* 00 */ s8 mUnk_00; /* 01 */ s8 mUnk_01; - /* 02 */ s8 mUnk_02; - /* 03 */ s8 mUnk_03; + /* 02 */ u16 mUnk_02; /* 04 */ unk32 mUnk_04; /* 08 */ u8 *mUnk_08; /* 0c */ @@ -81,8 +73,8 @@ class UnkStruct_02032f0c : public SysObject { /* 08 */ UnkSubClass1_02256FF8 *mUnk_08; /* 0c */ u16 *mUnk_0c; /* 10 */ unk32 *mUnk_10; - /* 14 */ s32 mUnk_14; - /* 18 */ s32 mUnk_18; + /* 14 */ s32 mUnk_14; // some width? + /* 18 */ s32 mUnk_18; // some height? /* 1c */ unk32 mUnk_1c; /* 20 */ unk32 mUnk_20; /* 24 */ unk32 *mUnk_24; @@ -99,7 +91,7 @@ class UnkStruct_02032f0c : public SysObject { /* 49 */ u8 mUnk_49; /* 4a */ u16 mUnk_4a; /* 4c */ u8 mUnk_4c; - /* 4d */ bool mUnk_4d; + /* 4d */ u8 mUnk_4d; /* 4e */ u8 mUnk_4e; /* 4f */ u8 mUnk_4f; /* 50 */ u8 mUnk_50; @@ -109,62 +101,26 @@ class UnkStruct_02032f0c : public SysObject { /* 00 */ virtual ~UnkStruct_02032f0c(); /* 08 */ virtual void vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4); /* 0c */ virtual void vfunc_0c(unk32 param1, unk32 param2, unk32 param3, unk32 param4); - /* 10 */ virtual void vfunc_10(u32 param1, unk32 param2); + /* 10 */ virtual void vfunc_10(u32 param1, unk32); /* 14 */ virtual bool vfunc_14(s32 param1, s32 param2); - /* 18 */ virtual unk32 vfunc_18(s32 param1); + /* 18 */ virtual unk32 vfunc_18(UnkStruct_02032e7c *param1, unk32 param2, unk32 param3); /* 1c */ virtual unk32 vfunc_1c(s32 param1, unk32 *param2, unk32 param3, unk32 param4); /* 20 */ virtual unk32 vfunc_20(s32 param1, s32 *param2); /* 24 */ virtual bool vfunc_24(s16 **param1); /* 28 */ - // /* 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(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); - // /* 0x24 */ /* func_02033af4 */ virtual UNK_TYPE vfunc_24(UNK_TYPE); - - //! TODO: fake? - /* 28 */ virtual bool vfunc_28(void); - /* 2c */ virtual void vfunc_2C(void); - /* 30 */ virtual void vfunc_30(void); - /* 34 */ virtual unk32 vfunc_34(unk32 param_2); - /* 38 */ virtual bool vfunc_38(void); - /* 3c */ virtual void vfunc_3C(unk32 param_2); - /* 40 */ virtual void vfunc_40(unk32 param_2, unk32 param_3); - /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY); - /* 48 */ virtual void vfunc_48(void); - /* 4c */ virtual void vfunc_4C(void); - /* 50 */ virtual void vfunc_50(EntryINF1 *param_2, u32 param_3, s16 *param_4, UnkSubClass1_02256FF8 *param_5); - /* 54 */ virtual void vfunc_54(void); - /* 58 */ virtual void vfunc_58(void); - /* 5c */ virtual void vfunc_5C(void); - /* 60 */ virtual void vfunc_60(func_0203b410_param1 *param_2, unk32 param_3, unk32 param_4); - /* 64 */ virtual void vfunc_64(s16 *param_2); - /* 68 */ virtual unk32 vfunc_68(unk32 param_2); - /* 6c */ virtual void vfunc_6C(unk32 *param_2, unk32 *param_3); - /* 70 */ virtual void vfunc_70(unk32 *param_2, unk32 *param_3); - /* 74 */ - UnkStruct_02032f0c(); - void func_02032f94(); - unk32 *func_02032f98(unk32 param_2); - u16 **SetUnk_0c(u16 *value); + u16 **func_02032f98(u16 *value); u8 func_02032fa4(); s32 func_02032fb4(); - void func_02032fcc(unk32, unk32); - void func_02033214(unk32 param1, unk32 param2, unk32 param3, u8 param4, unk32 param5); - unk32 func_02033360(void); + void func_02033214(unk32 param1, unk32 param2, unk32 param3, u8 param4, UnkSubClass1_02256FF8 *param5); void func_020334b4(u32 param1, s32 param2, s32 param3, s32 param4); - void func_02033628(unk32 param1, u16 *param2); + unk32 func_02033628(UnkStruct_02032e7c *param1, u16 **param2, unk32 param3); u32 func_0203369c(u16 *param1, s32 param2); void func_02033780(s32 param1); s32 func_020337d8(s32 param1); s32 func_020337fc(s16 *param1, s32 param2); - void func_020338a8(s32 param1, unk32 param2); + void func_020338a8(UnkStruct_02032e7c *param1, unk32 param2); void func_020338d0(unk32 *param1, unk32 param2); s32 func_02033904(unk32 param1, unk32 param2); s32 func_02033938(unk32 param1); diff --git a/include/Unknown/UnkStruct_02037750.hpp b/include/Unknown/UnkStruct_02037750.hpp index a480c1a3..a1d2cae9 100644 --- a/include/Unknown/UnkStruct_02037750.hpp +++ b/include/Unknown/UnkStruct_02037750.hpp @@ -3,6 +3,7 @@ #include "global.h" #include "types.h" +#include "Actor/Actor.hpp" #include "Player/LinkStateInteract.hpp" #include "System/SysNew.hpp" @@ -14,7 +15,7 @@ class UnkStruct_02037750 : public SysObject { public: /* 00 (vtable) */ /* 04 */ UnkStruct_02037750_Callback1 mUnk_04[0x4]; - /* 14 */ unk32 mUnk_14; + /* 14 */ Actor *mUnk_14; /* 18 */ u32 mUnk_18; /* 1c */ u8 mUnk_1c; /* 1d */ u8 mUnk_1d; diff --git a/include/Unknown/UnkStruct_0203881c.hpp b/include/Unknown/UnkStruct_0203881c.hpp new file mode 100644 index 00000000..e7a0fb8b --- /dev/null +++ b/include/Unknown/UnkStruct_0203881c.hpp @@ -0,0 +1,31 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "System/SysNew.hpp" +#include "Unknown/UnkStruct_02032e7c.hpp" + +class UnkStruct_02038aa0; +typedef bool (*UnknownCallback)(class UnkStruct_020397f8 *); + +class UnkStruct_0203881c : public UnkStruct_02032e7c { +public: + /* 00 (base) */ + /* 14 */ unk32 mUnk_14; + /* 18 */ unk32 mUnk_18; + /* 1c */ UnknownCallback mUnk_1c; + /* 20 */ class UnkStruct_020397f8 *mUnk_20; + /* 24 */ unk32 mUnk_24; + /* 28 */ + + /* 0 */ virtual void vfunc_00(); + /* 0 */ virtual void vfunc_04(); + /* 8 */ + + UnkStruct_0203881c(); + void func_02038858(unk32 param1); + void func_02038888(); + void func_02038950(UnkStruct_02038aa0 *param1, s32 param2); + void func_02038a80(s32 param1); +}; diff --git a/include/Unknown/UnkStruct_02038aa0.hpp b/include/Unknown/UnkStruct_02038aa0.hpp index c0f31f16..04740c4f 100644 --- a/include/Unknown/UnkStruct_02038aa0.hpp +++ b/include/Unknown/UnkStruct_02038aa0.hpp @@ -5,32 +5,11 @@ #include "Message/MsgProc.hpp" #include "System/SysNew.hpp" +#include "Unknown/UnkStruct_02032e7c.hpp" +#include "Unknown/UnkStruct_0203881c.hpp" #include "Unknown/UnkStruct_0203dae0.hpp" #include "nds/math.h" -class UnkStruct_02038aa0; -typedef bool (*UnknownCallback)(class UnkStruct_020397f8 *); - -class UnkStruct_0203881c : public UnkStruct_02032e7c { -public: - /* 00 (base) */ - /* 14 */ unk32 mUnk_14; - /* 18 */ unk32 mUnk_18; - /* 1c */ UnknownCallback mUnk_1c; - /* 20 */ class UnkStruct_020397f8 *mUnk_20; - /* 24 */ unk32 mUnk_24; - /* 28 */ - - /* 0 */ virtual ~UnkStruct_0203881c(); - /* 8 */ - - UnkStruct_0203881c(); - void func_02038858(unk32 param1); - void func_02038888(); - void func_02038950(UnkStruct_02038aa0 *param1, s32 param2); - void func_02038a80(s32 param1); -}; - class UnkSubClass1_unk_124 { public: /* 00 */ void *mUnk_00; // pointer to MsgProc_Main (well, the first members of the base class) @@ -49,7 +28,7 @@ class UnkSubClass1_unk_124 { /* 2b */ unk8 mUnk_2b; /* 2c */ - void func_0203f020(s16 *, unk32); + void func_0203f020(unk32, unk32); }; struct UnkStruct_0203b264; @@ -72,89 +51,43 @@ class UnkStruct_02038aa0 : public UnkStruct_0203dae0 { /* 161 */ /* 00 */ virtual ~UnkStruct_02038aa0(); - /* 08 */ virtual void vfunc_08(s32 param1, unk32 *param2, s16 *param3, unk32 param4); - /* 0c */ virtual void vfunc_0c(u8 param_2, u8 param_3, u8 param_4, unk32 param_5); - /* 10 */ virtual void vfunc_10(); - /* 1c */ virtual unk32 vfunc_1c(s32 param1, unk32 *param2, unk32 param3, unk32 param4); - /* 20 */ virtual unk32 vfunc_20(s32 param1, s32 *param2); - /* 2c */ virtual void vfunc_2c(); - /* 30 */ virtual void vfunc_30(unk32 param_2, unk32 param_3); + /* 08 */ virtual void vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4) override; + /* 10 */ virtual void vfunc_10(u32 param1, unk32 param2) override; + /* 1c */ virtual unk32 vfunc_1c(s32 param1, unk32 *param2, unk32 param3, unk32 param4) override; + /* 20 */ virtual unk32 vfunc_20(s32 param1, s32 *param2) override; + /* 2c */ virtual void vfunc_2c() override; + /* 30 */ virtual void vfunc_30() override; /* 34 */ virtual unk32 vfunc_34(s32 param1); /* 38 */ virtual bool vfunc_38(); - /* 3c */ virtual void vfunc_3c(); - /* 40 */ virtual void vfunc_40(); + /* 3c */ virtual void vfunc_3c(unk32 param_2) = 0; + /* 40 */ virtual void vfunc_40(s32 touchLastX, s32 touchLastY) = 0; /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY); /* 48 */ virtual void vfunc_48(); - /* 4c */ virtual void vfunc_4c(u32 param1, unk32 param2); - /* 50 */ virtual void vfunc_50(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4); + /* 4c */ virtual void vfunc_4c(); + /* 50 */ virtual void vfunc_50(EntryINF1 *param1, u16 *param2, s16 *param3, UnkStruct_000 *param4); /* 54 */ virtual void vfunc_54(); /* 58 */ virtual void vfunc_58(); - /* 5c */ virtual void vfunc_5c(u16 *param_2, struct UnkStruct_0203b264 *param_3, unk8 param_4, unk32 param_5); - /* 60 */ virtual void vfunc_60(); - /* 64 */ virtual void vfunc_64(); - /* 68 */ virtual s32 vfunc_68(unk32 param1); + /* 5c */ virtual void vfunc_5c(u16 *param_2, UnkStruct_0203b264 *param_3, unk8 param_4, unk32 param_5); + /* 60 */ virtual void vfunc_60(func_0203b410_param1 *param1, unk32 param2, unk32 param3); + /* 64 */ virtual s32 vfunc_64(unk32 param1); + /* 68 */ virtual unk32 vfunc_68(s32 param1, s32 *param2); /* 6c */ virtual void vfunc_6c(s32 *param1, s32 *param2); - /* 70 */ virtual void vfunc_70(s32 *param1, s32 *param2); + /* 70 */ virtual void vfunc_70(unk32 *param1, unk32 *param2); /* 74 */ - // /* 0x08 */ /* func_02039228 */ virtual void vfunc_08(unk32* param_2, unk32* param_3) override; - // /* 0x0C */ virtual void vfunc_0C(u8 param_2, u8 param_3, u8 param_4, unk32 param_5) override; - // /* 0x10 */ virtual void vfunc_10(u8 param_2, u8 param_3) override; // func_0203e060? - // /* 0x14 */ virtual bool vfunc_14(unk32 param_2, unk32 param_3) override; - // /* 0x18 */ virtual unk32 vfunc_18(UnkStruct_0203b264* param_2, unk32 param_3, unk32 param_4) override; - // /* 0x1C */ /* func_0203905c */ virtual unk32 vfunc_1C(u16* param_2, UnkStruct_0203b264* param_3, unk8 param_4, unk32 - // param_5) override; - // /* 0x20 */ /* func_020390a4 */ virtual UNK_TYPE vfunc_20(UNK_TYPE) override; - // /* 0x24 */ virtual UNK_TYPE vfunc_24(UNK_TYPE) override; - // /* 0x28 */ virtual bool vfunc_28(void) override; - // /* 0x2C */ /* func_02038d20 */ virtual void vfunc_2C(void) override; - // /* 0x30 */ /* func_02038ed0 */ virtual void vfunc_30(void) override; - // /* 0x34 */ /* func_02038c34 */ virtual unk32 vfunc_34(unk32 param_2) override; - // /* 0x38 */ /* func_02039570 */ virtual bool vfunc_38(void) override; + static void func_020387e0(u8 *param_2); + UnkStruct_02038aa0(); UnkStruct_02038aa0(u8 param1, u8 param2); void func_02038b40(); bool func_02038b78(); s32 func_02038cb8(s32 param1); s32 func_02038cf4(); s32 func_02038d10(); - bool func_02038ef4(s32 param1, s32 param2); + bool func_02038ef4(s32 touchLastX, s32 touchLastY); void func_02039208(unk16 param1); unk32 func_02039250(); void func_02039440(unk32 param1, unk32 param2); bool func_0203951c(); - - static void func_020387e0(u8 *param_2); - - unk32 func_02032fb4(void); - u16 *func_02037604(u16 **); - void func_02038b28(void); - void func_02038b74(void); // is this a dtor? - void func_02038f40(void); - void func_02038f44(EntryINF1 *param_2, u32 param_3, struct func_02038f44_param4 *param_4, UnkSubClass1_02256FF8 *param_5, - unk32 param_6); - void func_02039058(void); - unk32 func_0203905c(u16 *param_2, UnkStruct_0203b264 *param_3, unk8 param_4, unk32 param_5); - void func_02038d20(void); - void func_020392b4(void); - void func_02039398(void); - void func_020393a8(s16 *param_2); - void func_0203a188(unk32, unk32); - unk32 func_0203a3e0(void); - unk32 func_0203cb5c(unk8, s16); - - 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_0203e1b0(unk32, unk32, unk32); - - //! TODO: not sure it belongs to this class: - - void func_02033190(unk32 param_2, unk32 param_3, unk32 param_4, unk32 param_5); - void func_020331c4(unk32, unk32); - void func_0203947c(void); - void func_0203cabc(unk32); - unk32 func_0203e284(UnkStruct_0203b264 *, unk32, unk32); - void func_0203e2ac(unk32 *param_2); - s16 func_0203d318(s16, s16); + bool func_0203955c(); }; diff --git a/include/Unknown/UnkStruct_020397f8.hpp b/include/Unknown/UnkStruct_020397f8.hpp index 668f1922..fcd54a23 100644 --- a/include/Unknown/UnkStruct_020397f8.hpp +++ b/include/Unknown/UnkStruct_020397f8.hpp @@ -70,7 +70,7 @@ class UnkStruct_020397f8 : public UnkStruct_02038aa0 { /* 576 */ unk16 mUnk_576; /* 578 */ s16 mUnk_578; /* 57a */ u8 mUnk_57a; - /* 57b */ u8 mUnk_57b; + /* 57b */ s8 mUnk_57b; /* 57c */ u8 mUnk_57c; /* 57d */ u8 mUnk_57d; /* 57e */ u8 mUnk_57e; @@ -79,54 +79,51 @@ class UnkStruct_020397f8 : public UnkStruct_02038aa0 { /* 581 */ u8 mUnk_581; /* 582 */ u8 mUnk_582; /* 583 */ u8 mUnk_583; - /* 584 */ unk8 mUnk_584; + /* 584 */ u8 mUnk_584; /* 585 */ u8 mUnk_585; /* 586 */ u8 mUnk_586; /* 587 */ unk8 mUnk_587; /* 588 */ UnkSubClass1_unk_124 mUnk_588; /* 5b4 */ + /* 00 */ virtual ~UnkStruct_020397f8(); + /* 18 */ virtual unk32 vfunc_18(UnkStruct_02032e7c *param1, unk32 param2, unk32 param3) override; + /* 1c */ virtual unk32 vfunc_1c(s32 param1, unk32 *param2, unk32 param3, unk32 param4) override; + /* 20 */ virtual unk32 vfunc_20(s32 param1, s32 *param2) override; + /* 2c */ virtual void vfunc_2c() override; + /* 38 */ virtual bool vfunc_38() override; + /* 3c */ virtual void vfunc_3c(unk32 param_2) override; + /* 40 */ virtual void vfunc_40(s32 touchLastX, s32 touchLastY) override; + /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY) override; + /* 48 */ virtual void vfunc_48() override; + /* 4c */ virtual void vfunc_4c() override; + /* 50 */ virtual void vfunc_50(EntryINF1 *param1, u16 *param2, s16 *param3, UnkStruct_000 *param4) override; + /* 54 */ virtual void vfunc_54() override; + /* 58 */ virtual void vfunc_58() override; + /* 5c */ virtual void vfunc_5c(u16 *param_2, UnkStruct_0203b264 *param_3, unk8 param_4, unk32 param_5) override; + /* 60 */ virtual void vfunc_60(func_0203b410_param1 *param1, unk32 param2, unk32 param3) override; + /* 64 */ virtual s32 vfunc_64(unk32 param1) override; + /* 6c */ virtual void vfunc_6c(s32 *param1, s32 *param2) override; + + static bool func_0203c25c(class UnkStruct_020397f8 *param1); + UnkStruct_020397f8(); - /* 4c */ virtual void vfunc_4c(); - /* 2c */ virtual void vfunc_2c(); void func_02039ca8(); - /* 3c */ virtual void vfunc_3c(unk32 param1); - /* 40 */ virtual void vfunc_40(s32 param1, s32 param2); void func_0203a188(s32 param1, s32 param2); // void func_0203a188(unk32 param_2, unk32 param_3, unk32 param_4); bool func_0203a2c0(); - unk32 func_0203a30c(); - /* 48 */ virtual void vfunc_48(); + u32 func_0203a30c(); void func_0203a35c(); bool func_0203a3e0(); - /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY); bool func_0203a6d0(unk32 param1, unk32 param2); - /* 50 */ virtual void vfunc_50(EntryINF1 *param1, unk32 param2, s32 *param3, unk32 param4); - /* 54 */ virtual void vfunc_54(); - /* 5c */ virtual void vfunc_5c(); - /* 58 */ virtual void vfunc_58(); bool func_0203b0bc(); s32 func_0203b0ec(u32 param1); - /* 18 */ virtual unk32 vfunc_18(UnkStruct_0203b264 *param1, unk32 param2, unk32 param3); - /* 1c */ virtual unk32 vfunc_1c(u16 *param1, UnkStruct_0203b264 *param2, unk8 param3, unk32 param4); - /* 60 */ virtual void vfunc_60(func_0203b410_param1 *param1, unk32 param2, unk32 param3); - /* 64 */ virtual void vfunc_64(s16 *param1); void func_0203b764(); - /* 20 */ virtual unk32 vfunc_20(s32 param1, s32 *param2); void func_0203bd8c(s32 param1); // void func_0203bd8c(u16 param_2); - /* 6c */ virtual void vfunc_6c(s32 *param1, s32 *param2); void func_0203be08(); void func_0203be64(); bool func_0203c084(); bool func_0203c13c(); bool func_0203c1a0(); - static bool func_0203c25c(class UnkStruct_020397f8 *param1); - /* 00 */ virtual ~UnkStruct_020397f8(); - /* 38 */ virtual bool vfunc_38(); - /* 74 */ - - //! TODO: check if this is really here - void func_02039a3c(void); - unk32 func_02039250(void); }; class MsgProc_Type3 : public UnkStruct_02038aa0 { @@ -150,38 +147,14 @@ class MsgProc_Type3 : public UnkStruct_02038aa0 { MsgProc_Type3(); MsgProc_Type3(unk32 param_2, unk16 param_3, unk32 param_4); - //! TODO: remove the function declarations that are not overridden /* 00 */ virtual ~MsgProc_Type3(); - /* 08 */ virtual void vfunc_08(unk32 *param_2, unk32 *param_3) override; - /* 0c */ virtual void vfunc_0C(u8 param_2, u8 param_3, u8 param_4, unk32 param_5) override; - /* 10 */ virtual void vfunc_10(u8 param_2, u8 param_3) override; // func_0203e060? - /* 14 */ virtual bool vfunc_14(unk32 param_2, unk32 param_3) override; - /* 18 */ virtual unk32 vfunc_18(UnkStruct_0203b264 *param_2, unk32 param_3, unk32 param_4) override; - /* 1c */ virtual unk32 vfunc_1C(u16 *param_2, UnkStruct_0203b264 *param_3, unk8 param_4, unk32 param_5) override; - /* 20 */ virtual void vfunc_20(void) override; - /* 24 */ virtual void vfunc_24(void) override; - /* 28 */ virtual bool vfunc_28(void) override; - /* 2c */ virtual void vfunc_2C(void) override; - /* 30 */ virtual void vfunc_30(void) override; - /* 34 */ virtual unk32 vfunc_34(unk32 param_2) override; - /* 38 */ virtual bool vfunc_38(void) override; - /* 3c */ virtual void vfunc_3C(unk32 param_2) override; - /* 40 */ virtual void vfunc_40(unk32 param_2, unk32 param_3) override; + /* 24 */ virtual bool vfunc_24(s16 **param1) override; + /* 3c */ virtual void vfunc_3c(unk32 param_2) override; + /* 48 */ virtual void vfunc_40(s32 touchLastX, s32 touchLastY) override; /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY) override; - /* 48 */ virtual void vfunc_48(void) override; - /* 4c */ virtual void vfunc_4C(void) override; // func_02039a3c? - /* 50 */ virtual void vfunc_50(EntryINF1 *param_2, u32 param_3, s16 *param_4, UnkSubClass1_02256FF8 *param_5) override; - /* 54 */ virtual void vfunc_54(void) override; - /* 58 */ virtual void vfunc_58(void) override; - /* 5c */ virtual void vfunc_5C(void) override; - /* 60 */ virtual void vfunc_60(func_0203b410_param1 *param_2, unk32 param_3, unk32 param_4) override; - /* 64 */ virtual void vfunc_64(s16 *param_2) override; - /* 68 */ virtual unk32 vfunc_68(unk32 param_2) override; - /* 6c */ virtual void vfunc_6C(unk32 *param_2, unk32 *param_3) override; - /* 70 */ virtual void vfunc_70(unk32 *param_2, unk32 *param_3) override; - /* 74 */ - static void func_0203c83c(void); + void func_0203cabc(unk32); + unk32 func_0203cb5c(unk8, s16); }; class MsgProc_Type2 : public UnkStruct_02038aa0 { @@ -200,13 +173,11 @@ class MsgProc_Type2 : public UnkStruct_02038aa0 { MsgProc_Type2(); MsgProc_Type2(unk32 param_2, unk16 param_3, unk32 param_4); /* 00 */ virtual ~MsgProc_Type2(); - /* 14 */ /* func_0203c5c4 */ virtual bool vfunc_14(unk32 param_2, unk32 param_3) override; - /* 3c */ /* func_0203c414 */ virtual void vfunc_3C(unk32 param_2) override; - /* 40 */ /* func_0203c460 */ virtual void vfunc_40(unk32 param_2, unk32 param_3) override; - /* 4c */ /* func_0203c39c */ virtual void vfunc_4C(void) override; // func_02039a3c? - - //! TODO: vfunc_4C? - void func_0203c39c(unk32 param_2, unk32 param_3); + /* 14 */ virtual bool vfunc_14(s32 param1, s32 param2) override; + /* 3c */ virtual void vfunc_3c(unk32 param_2) override; + /* 40 */ virtual void vfunc_40(s32 touchLastX, s32 touchLastY) override; + /* 4c */ virtual void vfunc_4c() override; void func_0203c4ac(unk32, unk32); + void func_0203c5dc(void); }; diff --git a/include/Unknown/UnkStruct_0203d1d0.hpp b/include/Unknown/UnkStruct_0203d1d0.hpp new file mode 100644 index 00000000..34850266 --- /dev/null +++ b/include/Unknown/UnkStruct_0203d1d0.hpp @@ -0,0 +1,38 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "System/SysNew.hpp" + +class UnkStruct_0203d1d0_base : public SysObject { +public: + /* 0x00 (vtable) */ + /* 0x04 */ unk32 *mUnk_04; + /* 0x08 */ + + /* 00 */ virtual ~UnkStruct_0203d1d0_base(); + /* 08 */ virtual unk32 vfunc_08(void *) = 0; + /* 0c */ virtual void vfunc_0c(); + /* 10 */ + + UnkStruct_0203d1d0_base(); + unk32 *func_0203d1b4(void); +}; + +class UnkStruct_0203d1d0 : public UnkStruct_0203d1d0_base { +public: + /* 00 */ virtual ~UnkStruct_0203d1d0(); + /* 08 */ virtual unk32 vfunc_08(void *) override; + + UnkStruct_0203d1d0(); +}; + +class UnkStruct_0203d254 : public UnkStruct_0203d1d0_base { +public: + /* 00 */ virtual ~UnkStruct_0203d254(); + /* 08 */ virtual unk32 vfunc_08(void *) override; + /* 0c */ virtual void vfunc_0c() override; + + UnkStruct_0203d254(); +}; diff --git a/include/Unknown/UnkStruct_0203dae0.hpp b/include/Unknown/UnkStruct_0203dae0.hpp index 7cb67a00..0d29634e 100644 --- a/include/Unknown/UnkStruct_0203dae0.hpp +++ b/include/Unknown/UnkStruct_0203dae0.hpp @@ -5,8 +5,7 @@ #include "Message/MsgProc.hpp" #include "Unknown/UnkStruct_02032f0c.hpp" - -class UnkStruct_0203dae0_114; +#include "Unknown/UnkStruct_0203d1d0.hpp" // astruct_7, MsgProc_Base2 class UnkStruct_0203dae0 : public UnkStruct_02032f0c { @@ -69,7 +68,7 @@ class UnkStruct_0203dae0 : public UnkStruct_02032f0c { /* 108 */ unk8 mUnk_10b; /* 10c */ unk32 mUnk_10c; /* 110 */ unk32 mUnk_110; - /* 114 */ UnkStruct_0203dae0_114 *mUnk_114; + /* 114 */ UnkStruct_0203d1d0_base *mUnk_114; /* 118 */ s32 mUnk_118; /* 11c */ u16 mUnk_11c; /* 11e */ u8 mUnk_11e; @@ -79,56 +78,24 @@ class UnkStruct_0203dae0 : public UnkStruct_02032f0c { /* 123 */ u8 mUnk_122; /* 00 */ virtual ~UnkStruct_0203dae0(); - /* 08 */ virtual void vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4); - /* 0c */ virtual void vfunc_0c(unk32 param1, unk32 param2, unk32 param3, unk32 param4); - /* 10 */ virtual void vfunc_10(u32 param1, unk32 param2); - /* 14 */ virtual bool vfunc_14(s32 param1, s32 param2); - /* 18 */ virtual unk32 vfunc_18(s32 param1); + /* 08 */ virtual void vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4) override; + /* 0c */ virtual void vfunc_0c(unk32 param1, unk32 param2, unk32 param3, unk32 param4) override; + /* 10 */ virtual void vfunc_10(u32 param1, unk32 param2) override; + /* 14 */ virtual bool vfunc_14(s32 param1, s32 param2) override; + /* 18 */ virtual unk32 vfunc_18(UnkStruct_02032e7c *param1, unk32 param2, unk32 param3) override; /* 28 */ virtual bool vfunc_28(); /* 2c */ virtual void vfunc_2c(); /* 30 */ virtual void vfunc_30(); /* 34 */ - // /* 0x08 */ /* func_0203e2ac */ virtual void vfunc_08(unk32* param_2, unk32* param_3) override; - // /* 0x0C */ /* func_02039578 */ virtual void vfunc_0C(u8 param_2, u8 param_3, u8 param_4, unk32 param_5) override; - // /* 0x10 */ /* func_0203e060 */ virtual void vfunc_10(u8 param_2, u8 param_3) override; // func_0203e060? - // /* 0x14 */ /* func_0203dcb4 */ virtual bool vfunc_14(unk32 param_2, unk32 param_3) override; - // /* 0x18 */ /* func_0203e284 */ virtual unk32 vfunc_18(UnkStruct_0203b264* param_2, unk32 param_3, unk32 param_4) - // override; - // /* 0x1C */ virtual unk32 vfunc_1C(u16* param_2, UnkStruct_0203b264* param_3, unk8 param_4, unk32 param_5) override; - // /* 0x20 */ virtual UNK_TYPE vfunc_20(UNK_TYPE) override; - // /* 0x24 */ virtual UNK_TYPE vfunc_24(UNK_TYPE) override; - // /* 0x28 */ /* func_0203e0c8 */ virtual bool vfunc_28(void) override; - // /* 0x2C */ /* func_0203e19c */ virtual void vfunc_2C(void) override; - // /* 0x30 */ /* func_0203e090 */ virtual void vfunc_30(void) override; - - //! TODO: fake? - /* 34 */ virtual unk32 vfunc_34(unk32 param_2) override; - /* 38 */ virtual bool vfunc_38(void) override; - /* 3c */ virtual void vfunc_3C(unk32 param_2) override; - /* 40 */ virtual void vfunc_40(unk32 param_2, unk32 param_3) override; - /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY) override; - /* 48 */ virtual void vfunc_48(void) override; - /* 4c */ virtual void vfunc_4C(void) override; // func_02039a3c? - /* 50 */ virtual void vfunc_50(EntryINF1 *param_2, u32 param_3, s16 *param_4, UnkSubClass1_02256FF8 *param_5) override; - /* 54 */ virtual void vfunc_54(void) override; - /* 58 */ virtual void vfunc_58(void) override; - /* 5c */ virtual void vfunc_5C(void) override; - /* 60 */ virtual void vfunc_60(func_0203b410_param1 *param_2, unk32 param_3, unk32 param_4) override; - /* 64 */ virtual void vfunc_64(s16 *param_2) override; - /* 68 */ virtual unk32 vfunc_68(unk32 param_2) override; - /* 6c */ virtual void vfunc_6C(unk32 *param_2, unk32 *param_3) override; - /* 70 */ virtual void vfunc_70(unk32 *param_2, unk32 *param_3) override; - /* 74 */ - + UnkStruct_0203dae0(); UnkStruct_0203dae0(u8 param1); - void func_0203dc10(unk32 param1); - void func_0203dc10(unk32 param_2, unk32 param_3); + void func_0203dc10(unk32 param_2); bool func_0203dc74(s32 param1, s32 param2); void func_0203dcfc(u8 param1, unk32 param2, unk32 param3, s32 param4); unk32 *func_0203ddec(); void func_0203ddfc(); - void func_0203de14(); + unk32 func_0203de14(unk32 param1); s32 func_0203de24(); bool func_0203de58(s32 param1); bool func_0203e0f8(); @@ -139,4 +106,7 @@ class UnkStruct_0203dae0 : public UnkStruct_02032f0c { bool func_0203e6e4(u32 param1, u32 param2, s32 param3); void func_ov003_020f13b0(unk32 param1); + + //! TODO: figure out if this belongs here + static u16 func_0203d318(unk32, unk32); }; diff --git a/src/00_Core/Player/LinkStateMove.cpp b/src/00_Core/Player/LinkStateMove.cpp index a0980773..a7e64be0 100644 --- a/src/00_Core/Player/LinkStateMove.cpp +++ b/src/00_Core/Player/LinkStateMove.cpp @@ -1,4 +1,5 @@ #include "Player/LinkStateMove.hpp" +#include "Unknown/UnkStruct_020eec9c.hpp" unk32 LinkStateMove::data_ov000_020e56f0 = 0x800; @@ -19,9 +20,6 @@ THUMB void LinkStateMove::CreateDebugHierarchy() { debugHierarchy->GetChildNode(1, description, id, &data_ov000_020e56f0, 8, 0, 0x1000, 0); } -extern u32 data_ov000_020eec9c; -extern "C" void func_ov000_020d77e4(void *param1, s32 param2); - ARM void LinkStateMove::OnStateEnter() { this->mUnk_0c = 0; this->mUnk_10 = 0; @@ -36,7 +34,7 @@ ARM void LinkStateMove::OnStateEnter() { shield->UpdateInUse(1); PlayerBase::GetEquipSword()->func_ov000_020c06b0(-1); - func_ov000_020d77e4(&data_ov000_020eec9c, 0xD); + data_ov000_020eec9c.func_ov000_020d77e4(0xD); } ARM void LinkStateMove::OnStateLeave(s32 param1) { diff --git a/src/00_Core/Player/PlayerControl.cpp b/src/00_Core/Player/PlayerControl.cpp index 5476834e..95aa9fc2 100644 --- a/src/00_Core/Player/PlayerControl.cpp +++ b/src/00_Core/Player/PlayerControl.cpp @@ -14,6 +14,7 @@ #include "Player/PlayerBase.hpp" #include "Player/PlayerLinkBase.hpp" #include "Save/AdventureFlags.hpp" +#include "Unknown/UnkStruct_020eec9c.hpp" static char *sShipTypes[] = {"brg", "anc", "pdl", "hul", "can", "dco", "bow", "fnl"}; @@ -1032,11 +1033,9 @@ ARM bool PlayerControl::IsNotTouching() { return !mTouch; } -extern u32 data_ov000_020eec9c[]; -extern "C" void func_ov000_020d77e4(u32 *param1, u32 param2); ARM bool PlayerControl::IsTouchingFast() { if (this->CheckTouchFast(1)) { - func_ov000_020d77e4(data_ov000_020eec9c, 0x17); + data_ov000_020eec9c.func_ov000_020d77e4(0x17); return true; } return false; diff --git a/src/Main/Message/BMG.cpp b/src/Main/Message/BMG.cpp index 2a00b26c..4ac1a44b 100644 --- a/src/Main/Message/BMG.cpp +++ b/src/Main/Message/BMG.cpp @@ -5,13 +5,13 @@ extern "C" { char *func_0202ab38(u32 *lang); u32 *func_0202d550(int, u32 *, char *path, int, int, int); -void func_0202d590(BMGHeader *); +void func_0202d590(void *); extern u32 *data_027e0ce0[]; extern u32 data_027e05f4; // language extern u32 *data_ov002_0210016c; -static char *sBMGFileNames[BMG_FILE_INDEX_MAX] = { +static const char *const sBMGFileNames[BMG_FILE_INDEX_MAX] = { "system", // BMG_FILE_INDEX_SYSTEM "regular", // BMG_FILE_INDEX_REGULAR "battle", // BMG_FILE_INDEX_BATTLE @@ -54,7 +54,7 @@ THUMB void BMGFileInfo::func_020371b4() { this->pFLW1 = NULL; this->pFLI1 = NULL; this->pDAT1 = NULL; - this->mUnk_14 = NULL; + this->pFile = NULL; this->mUnk_18 = 0; } @@ -63,15 +63,14 @@ THUMB u16 BMGFileInfo::func_020371c8(u32 *pFile, s16 unk_18) { SectionBase *pSection; u16 groupId; u32 i; - BMGHeader *pHeader = (BMGHeader *) pFile; groupId = -1; - this->mUnk_14 = pHeader; + this->pHeader = (BMGHeader *) pFile; this->mUnk_18 = unk_18; - this->pHeader = pHeader; + this->pFile = pFile; pSection = (SectionBase *) ((u8 *) pFile + sizeof(BMGHeader)); - for (i = 0; i < this->mUnk_14->numSections; i++) { + for (i = 0; i < this->pHeader->numSections; i++) { switch (pSection->tag) { case BMG_TAG_MID1: // unused @@ -84,8 +83,7 @@ THUMB u16 BMGFileInfo::func_020371c8(u32 *pFile, s16 unk_18) { groupId = this->pINF1->groupId; break; case BMG_TAG_DAT1: - //! TODO: fake? - this->pDAT1 = (SectionDAT1 *) (pSection + 1); + this->pDAT1 = (char *) (pSection + 1); break; case BMG_TAG_FLW1: this->pFLW1 = (SectionFLW1 *) pSection; @@ -116,9 +114,8 @@ ARM EntryINF1 *BMGFileInfo::func_02037258(u16 param_2) { // non-matching ARM u16 BMGFileInfo::func_0203728c(unk32 param_2) { SectionFLI1 *pFLI1; - EntryFLI1 *entry; - u32 i; - u16 j; + u32 uVar1; + u32 uVar2; pFLI1 = this->pFLI1; @@ -126,24 +123,11 @@ ARM u16 BMGFileInfo::func_0203728c(unk32 param_2) { return -1; } - i = 0; - do { - entry = &pFLI1->entries[i]; - - if (param_2 > entry->msgFlowID) { - return entry->msgFlowNodeIndex; + for (uVar1 = 0; (uVar2 & 0xFFFF) < this->pFLI1->numEntries; uVar2 = uVar1 + 1, uVar1 = (uVar2 & 0xFFFF)) { + if (param_2 == pFLI1->entries[uVar1].msgFlowID) { + return pFLI1->entries[uVar1].msgFlowNodeIndex; } - - // i++; - j = i + 1; - i = j & 0xFFFF; - } while (j < pFLI1->numEntries); - - // for (i = 0; (u16)i < pFLI1->numEntries; i++) { - // if (param_2 == pFLI1->entries[i].msgFlowID) { - // return pFLI1->entries[i].msgFlowNodeIndex; - // } - // } + } return -1; } @@ -162,14 +146,15 @@ THUMB void BMGGroups::func_020372f0(BMGFileIndex eIndex, s16 unk_18) { pFile = data_027e0ce0[1]; - if (unk_18 != 1) { - if (unk_18 != 4) { + switch (unk_18) { + case 1: pFile = data_027e0ce0[0]; - } else { + break; + case 4: pFile = data_ov002_0210016c; - } - } else { - // pFile = data_027e0ce0[0]; + break; + default: + break; } // get file data @@ -190,7 +175,7 @@ THUMB void BMGGroups::func_020373b4(s16 unk_18) { for (i = 0; i < this->numEntries; i++) { if (this->entries[i].mUnk_18 == unk_18) { - func_0202d590(this->entries[i].mUnk_14); + func_0202d590(this->entries[i].pFile); this->entries[i].func_020371b4(); } } diff --git a/src/Main/Message/BmgRelatedFunctions.cpp b/src/Main/Message/BmgRelatedFunctions.cpp index dcb3d255..a859094b 100644 --- a/src/Main/Message/BmgRelatedFunctions.cpp +++ b/src/Main/Message/BmgRelatedFunctions.cpp @@ -2,67 +2,198 @@ extern "C" { #include } +#include "Unknown/UnkStruct_02063220.hpp" #include "global.h" #include "types.h" -THUMB void func_0202d3bc(int param_1, unsigned int *param_2, char *path, int param_4, int param_5, bool param_6, int param_7, - int param_8) { - // bool bVar1; - // dword dVar2; - // int iVar3; - // dword *pdVar4; - // uint uVar5; - // dword local_64; - // astruct_3 aStack_60; - // dword *pdStack_18; - - // pdVar4 = (dword *)(uint)param_4; - // *(char **)PTR_DWORD_0202d46c = path; - // local_64 = DWORD_0202d470; - // if (pdVar4 != (dword *)0x0) { - // *pdVar4 = DWORD_0202d470; - // } - // pdStack_18 = pdVar4; - // astruct_3(&aStack_60); - // bVar1 = FUN_02041e7c(&aStack_60,path); - // if (bVar1) { - // uVar5 = aStack_60._40_4_ - aStack_60._36_4_; - // if (uVar5 != 0) { - // if (param_6) { - // local_64 = FUN_0202d23c(&aStack_60,param_1,param_2,param_5,0,uVar5,pdVar4,param_7,param_8); - // } - // else { - // if (param_7 == 0) { - // dVar2 = FUN_0202d1c4(param_1,param_2,uVar5,param_5); - // } - // else { - // dVar2 = 0; - // if (uVar5 <= param_8) { - // dVar2 = param_7; - // } - // } - // if (dVar2 != 0) { - // iVar3 = astruct_3::FUN_02041fa4(&aStack_60,dVar2,uVar5); - // if (iVar3 == -1) { - // if (param_7 == 0) { - // FUN_0202d21c(dVar2); - // } - // } - // else { - // local_64 = dVar2; - // if (pdVar4 != (dword *)0x0) { - // *pdVar4 = uVar5; - // } - // } - // } - // } - // } - // astruct_3::FUN_02041ea8(&aStack_60); - // } - - // return local_64; +struct Archive { + /* 00 */ int id; + /* 04 */ unk32 next; + /* 08 */ unk8 mUnk_08; + /* 09 */ unk8 mUnk_09; + /* 0a */ unk8 mUnk_0a; + /* 0b */ unk8 mUnk_0b; + /* 0c */ unk8 mUnk_0c; + /* 0d */ unk8 mUnk_0d; + /* 0e */ unk8 mUnk_0e; + /* 0f */ unk8 mUnk_0f; + /* 10 */ unk8 mUnk_10; + /* 11 */ unk8 mUnk_11; + /* 12 */ unk8 mUnk_12; + /* 13 */ unk8 mUnk_13; + /* 14 */ unk8 mUnk_14; + /* 15 */ unk8 mUnk_15; + /* 16 */ unk8 mUnk_16; + /* 17 */ unk8 mUnk_17; + /* 18 */ unk8 mUnk_18; + /* 19 */ unk8 mUnk_19; + /* 1a */ unk8 mUnk_1a; + /* 1b */ unk8 mUnk_1b; + /* 1c */ unk32 *flags; +}; + +class UnkStruct_astruct_3 { +public: + /* 00 */ s32 mUnk_00; + /* 04 */ s32 *mUnk_04; + /* 08 */ Archive *archive; + /* 0c */ u32 mUnk_0c; + /* 10 */ u32 mUnk_10; + /* 14 */ s32 mUnk_14; + /* 18 */ s32 mUnk_18; + /* 1c */ unk32 mUnk_1c; + /* 20 */ unk8 mUnk_20; + /* 21 */ unk8 mUnk_21; + /* 22 */ unk8 mUnk_22; + /* 23 */ unk8 mUnk_23; + /* 24 */ void *fileStart; + /* 28 */ void *fileEnd; + /* 2c */ unk8 mUnk_2c; + /* 2d */ unk8 mUnk_2d; + /* 2e */ unk8 mUnk_2e; + /* 2f */ unk8 mUnk_2f; + /* 30 */ void *archive2; + /* 34 */ s32 id; + /* 38 */ unk32 mUnk_38; + /* 3c */ char *mUnk_3c; + /* 40 */ unk32 mUnk_40; + /* 44 */ s32 mUnk_44; + /* 48 */ + + UnkStruct_astruct_3(); + // ~UnkStruct_astruct_3(); + + unk32 func_02041e7c(char *path); + unk32 func_02041fa4(void *param_1, u32 size); + void func_02041ea8(); // dtor? + void *func_0202d23c(int param_1, unsigned int *param_2, int param_3, unk32 param_4, u32 size, int *param_6, int param_7, + int param_8); +}; + +extern "C" void *func_0202d1c4(int, unsigned int *, u32, int); +extern "C" void func_0202d21c(void *); + +THUMB void *func_0202d3bc(int param_1, unsigned int *param_2, char *path, int *param_4, int param_5, bool param_6, int param_7, + int param_8) { + int *puVar4; + void *local_64; + unk32 *puStack_18; + u32 size; + void *pvVar2; + + data_02063220.path = path; + puVar4 = param_4; + local_64 = NULL; + + if (puVar4 != 0) { + *puVar4 = 0; + } + + puStack_18 = puVar4; + + UnkStruct_astruct_3 aStack_60; + + if (aStack_60.func_02041e7c(path) != 0) { + size = (u32) aStack_60.fileEnd - (u32) aStack_60.fileStart; + + if (size != 0) { + if (param_6) { + local_64 = aStack_60.func_0202d23c(param_1, param_2, param_5, 0, size, puVar4, param_7, param_8); + } else { + pvVar2 = NULL; + + if (param_7 == 0) { + pvVar2 = func_0202d1c4(param_1, param_2, size, param_5); + } else { + if (size <= param_8) { + pvVar2 = (void *) param_7; + } + } + + if (pvVar2 != NULL) { + if (aStack_60.func_02041fa4(pvVar2, size) == -1) { + if (param_7 == 0) { + func_0202d21c(pvVar2); + } + } else { + local_64 = pvVar2; + + if (puVar4 != NULL) { + *puVar4 = size; + } + } + } + } + } + + aStack_60.func_02041ea8(); + } + + return local_64; +} + +extern "C" unk32 func_02016efc(void *, char *, void *); + +THUMB void *func_0202d474(unk32 param_1, unk32 param_2, char *drive, char *narcPath, unk32 param_5, u8 param_6, void *param_7, + u32 param_8) { + bool bVar1; + void *iVar2; + u32 uVar3; + u32 size; + void *local_60; + + data_02063220.path = narcPath; + local_60 = NULL; + + UnkStruct_astruct_3 aStack_5c; + + if (aStack_5c.func_02041e7c(narcPath) != 0) { + size = (u32) aStack_5c.fileEnd - (u32) aStack_5c.fileStart; + + if (size != 0) { + if (param_6 != 0) { + iVar2 = aStack_5c.func_0202d23c(param_1, (u32 *) param_2, param_5, 1, size, 0, (int) param_7, param_8); + } else { + uVar3 = (size + 0xF & ~0xF) + 0x70; + + if (param_7 == 0) { + iVar2 = func_0202d1c4(param_1, (u32 *) param_2, uVar3, param_5); + } else { + iVar2 = 0; + + if (uVar3 <= param_8) { + iVar2 = param_7; + } + } + } + + if (iVar2 != 0) { + bVar1 = false; + + if (param_6 == 0) { + if (aStack_5c.func_02041fa4((void *) ((int) iVar2 + 0x70), size) != -1) { + bVar1 = true; + } + } else { + bVar1 = true; + } + + if (bVar1 && func_02016efc(iVar2, drive, (void *) ((int) iVar2 + 0x70)) != 0) { + local_60 = iVar2; + } + + if ((local_60 == 0) && (param_7 == 0)) { + func_0202d21c(iVar2); + } + } + } + + aStack_5c.func_02041ea8(); + } + + return local_60; } -THUMB void func_0202d550(int param_1, unsigned int *param_2, char *path, int param_4, int param_5, bool param_6) { +THUMB void func_0202d550(int param_1, unsigned int *param_2, char *path, int *param_4, int param_5, bool param_6) { func_0202d3bc(param_1, param_2, path, param_4, param_5, param_6, 0, 0); } diff --git a/src/Main/Message/MessageManager.cpp b/src/Main/Message/MessageManager.cpp index 705b773b..2fe446e2 100644 --- a/src/Main/Message/MessageManager.cpp +++ b/src/Main/Message/MessageManager.cpp @@ -20,12 +20,8 @@ struct UnkStruct_027e0ffc { }; extern UnkStruct_027e0ffc *data_027e0ffc; -// non-matching -ARM void MessageManager::func_0203643c(u32 *param_1, MessageManager *param_2, u32 param_3) { - BMGGroups *pBVar2 = param_2->pGroups; - - *param_1 = ((u32) pBVar2->entries[param_3 >> 0x10].pDAT1 + - (pBVar2->entries[param_3 >> 0x10].func_02037258(param_3 & 0xFFFF)->offset & ~1)); +ARM void MessageManager::func_0203643c(u16 **param_1, MessageManager *param_2, u32 param_3) { + *param_1 = GetMsgStringAddr(param_2, param_3); } // non-matching @@ -104,7 +100,7 @@ THUMB void MessageManager::func_02036490() { } if (this->mUnk_28[i] != NULL) { - this->mUnk_28[i]->vfunc_4C(); + this->mUnk_28[i]->vfunc_4c(); } } } @@ -289,7 +285,7 @@ ARM void MessageManager::func_0203690c(unk32 param_2) { for (i = 0; i < ARRAY_LEN(this->mUnk_28); i++) { if (this->mUnk_28[i] != NULL) { - this->mUnk_28[i]->vfunc_2C(); + this->mUnk_28[i]->vfunc_2c(); } } @@ -371,7 +367,7 @@ ARM void MessageManager::func_02036ca4(unk32 param_2) { UnkStruct_02038aa0 *pSVar1 = this->mUnk_28[i]; if (pSVar1 != NULL) { - pSVar1->vfunc_3C(param_2); + pSVar1->vfunc_3c(param_2); } } } @@ -416,13 +412,13 @@ ARM void MessageManager::func_02036d6c(void) { for (i = 0; i < ARRAY_LEN(this->mUnk_28); i++) { if (func_0202ab48() == 0 || i != 5) { - this->mUnk_28[i]->UnkStruct_02038aa0::vfunc_10(); + this->mUnk_28[i]->UnkStruct_02038aa0::func_02038b40(); } } } // non-matching -ARM UnkStruct_02038aa0 *MessageManager::func_02036da8(u32 param_2, s16 *param_3) { +ARM UnkStruct_02038aa0 *MessageManager::func_02036da8(u32 param_2, UnkStruct_000 *param_3) { EntryINF1 *pEVar1; EntryINF1 *pEVar2; UnkStruct_02038aa0 *pSVar4; @@ -432,50 +428,54 @@ ARM UnkStruct_02038aa0 *MessageManager::func_02036da8(u32 param_2, s16 *param_3) int iStack_34; int iStack_30; - pEVar1 = this->pGroups->entries[param_2 >> 0x10].func_02037258(param_2 & 0xFFFF); + // pEVar1 = this->pGroups->entries[param_2 >> 0x10].func_02037258(param_2 & 0xFFFF); + + pEVar1 = BMG_GET_INF1(this->pGroups, param_2); if (pEVar1 == NULL) { return NULL; } - if ((data_02056be4[data_027e077c.mUnk_0] & 1) == 0) { - pSVar4 = this->mUnk_28[4]; - func_02037628((u8 *) &iStack_38); - - // ??? - bVar6 = (data_02056be4[data_027e077c.mUnk_0] & 1) == 0; - if (bVar6) { - data_02056be4[0] = 1; - } - if (!bVar6) { - data_02056be4[0] = 0; - } - - iStack_38 = *param_3; - // iStack_34 = param_3[1]; - // iStack_30 = param_3[2]; - pBVar5 = this->pGroups; - // pSVar4->vfunc_50(pEVar1, BMG_GET_MSG_ADDR(pBVar5, param_2), (s16*)&iStack_38, 1); - BMGFileInfo *entry = &(pBVar5)->entries[(param_2) >> 0x10]; - // pSVar4->vfunc_50(pEVar1, - // ((u32)entry->pDAT1 + (((entry.func_02037258((((param_2))) & 0xFFFF))->offset) & ~1)), - // // BMG_GET_MSG_ADDR(pBVar5, param_2), - // (s16*)&iStack_38, 1); - - data_ov000_020eec9c.func_ov000_020d77e4(0x1C); - return pSVar4; + if ((data_02056be4[data_027e077c.mUnk_0] & 1) != 0) { + return NULL; } - return NULL; + pSVar4 = this->mUnk_28[4]; + + // ??? + UnkStruct_000 stack; + data_02056be4[0] = (data_02056be4[data_027e077c.mUnk_0] & 1) == 0; + // if (bVar6) { + // data_02056be4[0] = 1; + // } + // if (!bVar6) { + // data_02056be4[0] = 0; + // } + stack = *param_3; + pSVar4->vfunc_50(pEVar1, GetMsgStringAddr(this, param_2), &iStack_38, &stack); + + // iStack_38 = *param_3; + // iStack_34 = param_3[1]; + // iStack_30 = param_3[2]; + // pBVar5 = this->pGroups; + // pSVar4->vfunc_50(pEVar1, BMG_GET_MSG_ADDR(pBVar5, param_2), (s16*)&iStack_38, 1); + // BMGFileInfo *entry = &(pBVar5)->entries[(param_2) >> 0x10]; + // pSVar4->vfunc_50(pEVar1, + // ((u32)entry->pDAT1 + (((entry.func_02037258((((param_2))) & 0xFFFF))->offset) & ~1)), + // // BMG_GET_MSG_ADDR(pBVar5, param_2), + // (s16*)&iStack_38, 1); + + data_ov000_020eec9c.func_ov000_020d77e4(0x1C); + return pSVar4; } // non-matching ARM void MessageManager::func_02036edc(u32 param_2, u8 param_3) { UnkStruct_020397f8 *pSVar1; - u8 auStack_28[24]; + u16 auStack_28[12]; u8 local_13; - func_02037628(auStack_28); + // func_02037628(auStack_28); local_13 = 0; if ((data_02056be4[data_027e077c.mUnk_0] & 1) != 0 && (data_02056be4[data_027e077c.mUnk_0] & 2) == 0) { @@ -494,14 +494,14 @@ ARM void MessageManager::func_02036edc(u32 param_2, u8 param_3) { } // non-matching -ARM UnkStruct_020397f8 *MessageManager::func_02036f68(u32 param_2, u8 *param_3) { +ARM UnkStruct_020397f8 *MessageManager::func_02036f68(u32 param_2, u16 *param_3) { EntryINF1 *pEVar1; UnkStruct_02038aa0 *pSVar2; EntryINF1 *pEVar3; int iVar4; UnkStruct_020397f8 *pSVar5; - pEVar1 = this->pGroups->entries[param_2 >> 0x10].func_02037258(param_2 & 0xffff); + pEVar1 = BMG_GET_INF1(this->pGroups, param_2); if (pEVar1 == NULL) { return NULL; @@ -519,7 +519,7 @@ ARM UnkStruct_020397f8 *MessageManager::func_02036f68(u32 param_2, u8 *param_3) pSVar5->mUnk_164 = (UnkStruct_020397f8 *) pSVar2; pSVar5->mUnk_418 = this->mUnk_28[5]; - pSVar5->vfunc_50(pEVar1, BMG_GET_MSG_ADDR(this->pGroups, param_2), (s32 *) param_3, 0); + pSVar5->vfunc_50(pEVar1, GetMsgStringAddr(this, param_2), (s16 *) param_3, NULL); if (data_ov000_020eec9c.func_ov000_020d7f18(0x19) == 0 && data_ov000_020eec9c.func_ov000_020d7f18(0x18) == 0 && data_ov000_020eec9c.func_ov000_020d7f18(0x34) == 0 && data_ov000_020eec9c.func_ov000_020d7f18(0x35) == 0 && diff --git a/src/Main/Message/func_0203c358.cpp b/src/Main/Message/func_0203c358.cpp index ee80f15e..33af6bab 100644 --- a/src/Main/Message/func_0203c358.cpp +++ b/src/Main/Message/func_0203c358.cpp @@ -7,9 +7,9 @@ #include "System/SysNew.hpp" #include "global.h" -extern "C" void func_0203fc78(unk32 *, unk32 *); +extern "C" void func_0203fc78(bool, unk32 *, unk32 *); -THUMB MsgProc_Type2::MsgProc_Type2(unk32 param_2, unk16 param_3, unk32 param_4) : +THUMB MsgProc_Type2::MsgProc_Type2() : UnkStruct_02038aa0(0, 0) { this->mUnk_162 = 4; this->mUnk_164 = 1; @@ -21,27 +21,25 @@ THUMB MsgProc_Type2::MsgProc_Type2(unk32 param_2, unk16 param_3, unk32 param_4) } // non-matching -THUMB void MsgProc_Type2::func_0203c39c(unk32 param_2, unk32 param_3) { +THUMB void MsgProc_Type2::vfunc_4c() { u16 uVar1; unk32 uVar2; s16 uVar3; s32 iVar4; s32 local_20; - s32 local_1c[2]; + s32 local_1c; - this->func_02038b28(); + this->UnkStruct_02038aa0::vfunc_4c(); uVar3 = 0; for (iVar4 = 0; iVar4 < 2; iVar4++) { - local_1c[0] = 0xC0; - local_20 = 0x10; + local_1c = 0xC0; + local_20 = 0x10; - if (iVar4 != 0) { - func_0203fc78(local_1c, &local_20); - } + func_0203fc78(iVar4 != 0, &local_1c, &local_20); - uVar1 = this->func_0203d318((s32) (local_1c[0] + 7 + ((u32) (local_1c[0] + 7 >> 2) >> 0x1D)) >> 3, - (s32) (local_20 + 7 + ((u32) (local_20 + 7 >> 2) >> 0x1D)) >> 3); + uVar1 = this->func_0203d318((s32) (local_1c + ((u32) (local_1c + 7 >> 2) >> 0x1D)) >> 3, + (s32) (local_20 + ((u32) (local_20 + 7 >> 2) >> 0x1D)) >> 3); if (uVar3 < uVar1) { uVar3 = uVar1; @@ -53,7 +51,7 @@ THUMB void MsgProc_Type2::func_0203c39c(unk32 param_2, unk32 param_3) { } } -ARM void MsgProc_Type2::vfunc_3C(unk32 param_2) { +ARM void MsgProc_Type2::vfunc_3c(unk32 param_2) { if (this->mUnk_15c > 0 && this->mUnk_122 != 1) { if (this->func_0203de14(param_2) != 0) { this->vfunc_40(0, 0); @@ -61,16 +59,19 @@ ARM void MsgProc_Type2::vfunc_3C(unk32 param_2) { } } -ARM void MsgProc_Type2::vfunc_40(unk32 param_2, unk32 param_3) { - param_2 += this->mUnk_166; - param_3 += this->mUnk_168; +ARM void MsgProc_Type2::vfunc_40(s32 touchLastX, s32 touchLastY) { + touchLastX += this->mUnk_166; + touchLastY += this->mUnk_168; - this->func_0203c4ac(param_2 + this->mUnk_16a, param_3 + this->mUnk_16c); - this->UnkStruct_02038aa0::vfunc_30(param_2, param_3); + this->func_0203c4ac(touchLastX + this->mUnk_16a, touchLastY + this->mUnk_16c); + this->func_02038ef4(touchLastX, touchLastY); } -ARM bool MsgProc_Type2::vfunc_14(unk32 param_2, unk32 param_3) { - return this->UnkStruct_0203dae0::vfunc_14(param_2 + this->mUnk_162, param_3); +ARM void MsgProc_Type2::func_0203c4ac(unk32, unk32) {} + +ARM bool MsgProc_Type2::vfunc_14(s32 param1, s32 param2) { + return this->UnkStruct_0203dae0::vfunc_14(param1 + this->mUnk_162, param2); } +ARM void MsgProc_Type2::func_0203c5dc() {} ARM MsgProc_Type2::~MsgProc_Type2() {} diff --git a/src/Main/Message/func_0203c72c.cpp b/src/Main/Message/func_0203c72c.cpp index 85b68f7c..89b045a5 100644 --- a/src/Main/Message/func_0203c72c.cpp +++ b/src/Main/Message/func_0203c72c.cpp @@ -7,32 +7,23 @@ #include "System/SysNew.hpp" #include "global.h" -extern "C" void __cxa_vec_ctor(void *, unk32, unk32, void *, void *); - -// non-matching -ARM MsgProc_Type3::MsgProc_Type3(unk32 param_2, unk16 param_3, unk32 param_4) : - UnkStruct_02038aa0(1, 0) { - this->mUnk_162 = 1; - this->mUnk_164 = 0x1A; - this->mUnk_166 = 0xA6; - this->mUnk_168 = 0x1D; - this->mUnk_16a = 0; - this->mUnk_16c = 1; - this->mUnk_170 = -1; - this->mUnk_172 = -1; - this->mUnk_174 = -1; - - //! TODO: move instructions above in an inlined ctor (create a dedicated class for it). - //! The call below will be automatically generated. - __cxa_vec_ctor(this->mUnk_180, ARRAY_LEN(this->mUnk_180), sizeof(UnkClass_func_ov000_020d0644), - UnkClass_func_ov000_020d0644::func_020d060c, this->func_0203c83c); - +ARM MsgProc_Type3::MsgProc_Type3() : + UnkStruct_02038aa0(1, 0), + mUnk_162(1), + mUnk_164(0x1A), + mUnk_166(0xA6), + mUnk_168(0x1D), + mUnk_16a(0), + mUnk_16c(1), + mUnk_170(-1), + mUnk_172(0), + mUnk_174(-1) { this->mUnk_180[0].func_ov000_020d0644(0x1E, 0, 0x8A, 0, 0); this->mUnk_180[1].func_ov000_020d0644(0x1E, 1, 0x8B, 0, 0); this->mUnk_180[2].func_ov000_020d0644(0x1E, 2, 0x8C, 0, 0); this->mUnk_180[3].func_ov000_020d0644(0x1E, 3, 0x8D, 0, 0); } -ARM void MsgProc_Type3::func_0203c83c(void) {} +ARM UnkClass_func_ov000_020d0644::~UnkClass_func_ov000_020d0644() {} ARM MsgProc_Type3::~MsgProc_Type3() {} diff --git a/src/Main/Unknown/UnkStruct_02032f0c.cpp b/src/Main/Unknown/UnkStruct_02032f0c.cpp index 16e22b29..bd2f1844 100644 --- a/src/Main/Unknown/UnkStruct_02032f0c.cpp +++ b/src/Main/Unknown/UnkStruct_02032f0c.cpp @@ -1,24 +1,27 @@ #include "Unknown/UnkStruct_02032f0c.hpp" +#include "Message/MessageManager.hpp" +#include "Unknown/UnkStruct_02032e7c.hpp" #include "Unknown/UnkStruct_02035064.hpp" -extern "C" void Fill32(unk32, void *, unk32); -extern "C" void Fill16(unk32, void *, unk32); extern "C" void func_020296e0(unk32 **, UnkStruct_MsgProc_Base_unk_2C **, unk32, unk32, unk32, unk32); -extern THUMB unk32 func_0202ab48(void); - -ARM UnkStruct_02032e7c::UnkStruct_02032e7c() { - this->mUnk_04 = NULL; - this->mUnk_08 = 0; - this->mUnk_0a = 0; - this->mUnk_0c = 0; - this->mUnk_0e = 0; - - if (func_0202ab48() == 0) { - this->mUnk_10 = 2; - } else { - this->mUnk_10 = 3; - } -} +extern "C" void func_02027ca0(unk32 **, s32, unk32, unk32); +extern "C" unk32 func_02023ea4(UnkStruct_MsgProc_Base_unk_2C **, u16); +extern "C" unk32 func_02023eec(UnkStruct_MsgProc_Base_unk_2C **, unk32); + +//! TODO: move? +// ARM UnkStruct_02032e7c::UnkStruct_02032e7c() { +// this->mUnk_04 = NULL; +// this->mUnk_08 = 0; +// this->mUnk_0a = 0; +// this->mUnk_0c = 0; +// this->mUnk_0e = 0; + +// if (func_0202ab48() == 0) { +// this->mUnk_10 = 2; +// } else { +// this->mUnk_10 = 3; +// } +// } THUMB UnkStruct_02032f0c::UnkStruct_02032f0c() { this->mUnk_04 = 0; @@ -33,9 +36,9 @@ THUMB UnkStruct_02032f0c::UnkStruct_02032f0c() { this->mUnk_4f = 0; this->mUnk_50 = 0; this->mUnk_51 = 0; - Fill32(0, &this->mUnk_10, 0x18); - Fill32(0, &this->mUnk_28, 0x10); - Fill16(0, &this->mUnk_3e, 0xC); + Fill32(0, (u32 *) &this->mUnk_10, 0x18); + Fill32(0, (u32 *) &this->mUnk_28, 0x10); + Fill16(0, (u16 *) &this->mUnk_3e, 0xC); this->mUnk_10 = NULL; this->mUnk_2c = NULL; this->mUnk_30 = 2; @@ -44,9 +47,7 @@ THUMB UnkStruct_02032f0c::UnkStruct_02032f0c() { THUMB UnkStruct_02032f0c::~UnkStruct_02032f0c() {} -ARM void UnkStruct_02032f0c::func_02032f94() {} - -ARM u16 **UnkStruct_02032f0c::SetUnk_0c(u16 *value) { +ARM u16 **UnkStruct_02032f0c::func_02032f98(u16 *value) { this->mUnk_0c = value; return &this->mUnk_0c; } @@ -64,29 +65,121 @@ ARM bool UnkStruct_02032f0c::vfunc_14(s32 param1, s32 param2) { s16 iVar1; s16 iVar2; - iVar1 = ((param1 + 0x7 + ((param1 + 0x7) >> 0x1D))) * 0x8; - iVar2 = ((param2 + 0x7 + ((param2 + 0x7) >> 0x1D))) * 0x8; + // alignment? + iVar1 = ((param1 + 7 + ((u32) ((param1 + 7) >> 2) >> 0x1d)) >> 3) * 8; + iVar2 = ((param2 + 7 + ((u32) ((param2 + 7) >> 2) >> 0x1d)) >> 3) * 8; this->mUnk_4a = param1; this->mUnk_4c = param2; - this->mUnk_14 = (iVar1 + (iVar1 >> 0x1D)) * 0x2000 >> 0x10; - this->mUnk_18 = (iVar2 + (iVar2 >> 0x1D)) * 0x2000 >> 0x10; + this->mUnk_14 = (iVar1 + ((u32) (iVar1 >> 2) >> 0x1d)) * 0x2000 >> 0x10; + this->mUnk_18 = (iVar2 + ((u32) (iVar2 >> 2) >> 0x1d)) * 0x2000 >> 0x10; return true; } -ARM void UnkStruct_02032f0c::vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4) {} +// non-matching +ARM void UnkStruct_02032f0c::vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4) { + this->mUnk_51 = 1; + + if ((this->mUnk_4d - 1u) <= 1) { + param1 = (((param1 + (this->mUnk_4a >> 1)) - this->func_02033cbc(param3) / 2) * 0x10000) >> 16; + } + + if (this->mUnk_4e == 0) { + func_02027ca0(&this->mUnk_28, param1, param2, param4); + return; + } + + if (this->mUnk_4e != 1) { + return; + } + + u8 bVar1 = this->mUnk_4f; + s32 iVar2 = 0; + + if (*param3 == 0) { + return; + } + + while (param3[iVar2] != 0) { + UnkStruct_MsgProc_Base_unk_2C **ppiVar5 = this->mUnk_2c; + unk32 uVar3 = func_02023ea4(ppiVar5, param3[iVar2]); + + if (uVar3 == 0xFFFF) { + uVar3 = (*ppiVar5)->mUnk_02; + } + + unk32 iVar4 = func_02023eec(ppiVar5, uVar3); + + this->vfunc_0c( + (((this->mUnk_4f * iVar2 + (((param1 + (bVar1 >> 1)) * 0x10000) >> 16)) - (int) *(char *) (iVar4 + 2) / 2) * + 0x10000) >> + 16, + param2, param3[iVar2], iVar2); + + iVar2++; + } +} ARM void UnkStruct_02032f0c::vfunc_0c(unk32 param1, unk32 param2, unk32 param3, unk32 param4) { func_020296e0(&this->mUnk_10, this->mUnk_2c, param1, param2, param4, param3); } -ARM void UnkStruct_02032f0c::vfunc_10(u32 param1, unk32 param2) {} -ARM void UnkStruct_02032f0c::func_02033214(unk32 param1, unk32 param2, unk32 param3, u8 param4, unk32 param5) {} -ARM unk32 UnkStruct_02032f0c::vfunc_18(s32 param1) {} +ARM void UnkStruct_02032f0c::vfunc_10(u32 param1, unk32 param2) { + if ((s32) param1 < 0) { + param1 = -param1; + } + + u32 uVar1 = param1 & 0x0F; + Fill256((uVar1 << 28) | (uVar1 << 24) | (uVar1 << 20) | (uVar1 << 16) | (uVar1 << 12) | (uVar1 << 8) | (uVar1 << 4) | + (uVar1 << 0), + this->mUnk_10, ((u32) (this->mUnk_14 * this->mUnk_18) * 0x200000) >> 16); +} + +// non-matching +ARM void UnkStruct_02032f0c::func_02033214(unk32 param1, unk32 param2, unk32 param3, u8 param4, + UnkSubClass1_02256FF8 *param5) { + this->mUnk_51 = 1; + this->mUnk_08 = param5; + + unk32 uStack_20 = param3; + u16 *local_38; + UnkStruct_02032e7c UStack_34; + MessageManager::func_0203643c(&local_38, &gMessageManager, param1); + UStack_34.mUnk_04 = local_38; + UStack_34.mUnk_10 = this->mUnk_4d; + this->func_020338a8(&UStack_34, -1); + UStack_34.mUnk_0e = param4; + + u16 *puVar1 = UStack_34.mUnk_04; + while (puVar1 != NULL && puVar1[0] != 0 && !this->func_02033c6c()) { + this->vfunc_18(&UStack_34, param2, param3); + // puVar1++; + + // if (*puVar1 != '\0') { + // puVar1 = UStack_34.mUnk_04++; + // } + } +} + +// non-matching +ARM unk32 UnkStruct_02032f0c::vfunc_18(UnkStruct_02032e7c *param1, unk32 param2, unk32 param3) { + u16 *puVar3; + + if (this->func_02033c6c()) { + return this->func_02033628(param1, &this->mUnk_0c, param3); + } + + if ((param1->mUnk_04 == NULL || param1->mUnk_04[0] == 0) ? 1 : 0) { + return 1; + } + + return this->func_02033628(param1, ¶m1->mUnk_04, param3); +} + ARM unk32 UnkStruct_02032f0c::vfunc_1c(s32 param1, unk32 *param2, unk32 param3, unk32 param4) {} ARM unk32 UnkStruct_02032f0c::vfunc_20(s32 param1, s32 *param2) {} ARM void UnkStruct_02032f0c::func_020334b4(u32 param1, s32 param2, s32 param3, s32 param4) {} -ARM void UnkStruct_02032f0c::func_02033628(unk32 param1, u16 *param2) {} +ARM unk32 UnkStruct_02032f0c::func_02033628(UnkStruct_02032e7c *param1, u16 **param2, unk32 param3) {} ARM u32 UnkStruct_02032f0c::func_0203369c(u16 *param1, s32 param2) {} ARM void UnkStruct_02032f0c::func_02033780(s32 param1) {} @@ -95,7 +188,7 @@ ARM s32 UnkStruct_02032f0c::func_020337d8(s32 param1) { } ARM s32 UnkStruct_02032f0c::func_020337fc(s16 *param1, s32 param2) {} -ARM void UnkStruct_02032f0c::func_020338a8(s32 param1, unk32 param2) {} +ARM void UnkStruct_02032f0c::func_020338a8(UnkStruct_02032e7c *param1, unk32 param2) {} ARM void UnkStruct_02032f0c::func_020338d0(unk32 *param1, unk32 param2) {} ARM s32 UnkStruct_02032f0c::func_02033904(unk32 param1, unk32 param2) {} ARM s32 UnkStruct_02032f0c::func_02033938(unk32 param1) {} @@ -106,4 +199,5 @@ ARM bool UnkStruct_02032f0c::func_02033c6c() {} ARM unk32 UnkStruct_02032f0c::func_02033c88(u32 param1) {} ARM s32 UnkStruct_02032f0c::func_02033cbc(s16 *param1) {} -ARM UnkStruct_02032e7c::~UnkStruct_02032e7c() {} +//! TODO: move? +// ARM UnkStruct_02032e7c::~UnkStruct_02032e7c() {} diff --git a/src/Main/Unknown/UnkStruct_02037750.cpp b/src/Main/Unknown/UnkStruct_02037750.cpp index 3d9fe9a5..cb9917bf 100644 --- a/src/Main/Unknown/UnkStruct_02037750.cpp +++ b/src/Main/Unknown/UnkStruct_02037750.cpp @@ -9,6 +9,8 @@ extern "C" ARM unk32 func_02037628(u8 *); extern u8 *data_027e0d54; extern unk32 *data_027e0cb4; +char *gShipParts[8] = {"brg", "anc", "pdl", "hul", "can", "dco", "bow", "fnl"}; + ARM UnkStruct_02037750::UnkStruct_02037750(unk32 param1, unk32 param2) { s32 i; @@ -204,30 +206,3 @@ ARM bool UnkStruct_02037750::vfunc_1c() { ARM void UnkStruct_02037750::vfunc_20() { this->mUnk_18 = 1 << 24; } - -// non-matching -ARM UnkStruct_020386d8::UnkStruct_020386d8() : - UnkStruct_02037750(1 << 24, 0) { - this->mUnk_20 = -1; - this->mUnk_24.func_020376c0(&gVec3p_ZERO); -} - -ARM void UnkStruct_020386d8::vfunc_08(u32 param1) { - this->UnkStruct_02037750::vfunc_08(param1); - this->mUnk_20 = 0xff; -} - -ARM bool UnkStruct_020386d8::vfunc_24(unk32 param1) { - return this->func_020385d0(param1, &this->mUnk_24.mUnk_00) != 0; -} - -ARM unk32 UnkStruct_020386d8::vfunc_28(s32 param1) { - this->mUnk_20 = this->UnkStruct_02037750::vfunc_28(param1); - return this->mUnk_20; -} - -ARM bool UnkStruct_020386d8::vfunc_30() { - return gMessageManager.func_020366c4()->mUnk_15c <= 0; -} - -ARM UnkStruct_020386d8::~UnkStruct_020386d8() {} diff --git a/src/Main/Unknown/UnkStruct_020386d8.cpp b/src/Main/Unknown/UnkStruct_020386d8.cpp new file mode 100644 index 00000000..27582dc0 --- /dev/null +++ b/src/Main/Unknown/UnkStruct_020386d8.cpp @@ -0,0 +1,33 @@ +#include "Actor/ActorManager.hpp" +#include "Item/ItemManager.hpp" +#include "Message/MessageManager.hpp" +#include "Save/AdventureFlags.hpp" +#include "System/Random.hpp" +#include "Unknown/UnkStruct_02037750.hpp" + +// non-matching +ARM UnkStruct_020386d8::UnkStruct_020386d8() : + UnkStruct_02037750(1 << 24, 0) { + this->mUnk_20 = -1; + this->mUnk_24.func_020376c0(&gVec3p_ZERO); +} + +ARM void UnkStruct_020386d8::vfunc_08(u32 param1) { + this->UnkStruct_02037750::vfunc_08(param1); + this->mUnk_20 = 0xff; +} + +ARM bool UnkStruct_020386d8::vfunc_24(unk32 param1) { + return this->func_020385d0(param1, &this->mUnk_24.mUnk_00) != 0; +} + +ARM unk32 UnkStruct_020386d8::vfunc_28(s32 param1) { + this->mUnk_20 = this->UnkStruct_02037750::vfunc_28(param1); + return this->mUnk_20; +} + +ARM bool UnkStruct_020386d8::vfunc_30() { + return gMessageManager.func_020366c4()->mUnk_15c <= 0; +} + +ARM UnkStruct_020386d8::~UnkStruct_020386d8() {} diff --git a/src/Main/Unknown/UnkStruct_02038aa0.cpp b/src/Main/Unknown/UnkStruct_02038aa0.cpp index 516055df..0f224f04 100644 --- a/src/Main/Unknown/UnkStruct_02038aa0.cpp +++ b/src/Main/Unknown/UnkStruct_02038aa0.cpp @@ -4,6 +4,8 @@ #include "Game/Game.hpp" #include "Message/MessageManager.hpp" +ARM void UnkStruct_02038aa0::func_020387e0(u8 *param_2) {} + ARM UnkStruct_0203881c::UnkStruct_0203881c() { this->mUnk_14 = 0x1000; this->mUnk_18 = 0; @@ -16,7 +18,8 @@ ARM void UnkStruct_0203881c::func_02038858(unk32 param1) {} ARM void UnkStruct_0203881c::func_02038888() {} ARM void UnkStruct_0203881c::func_02038950(UnkStruct_02038aa0 *param1, s32 param2) {} ARM void UnkStruct_0203881c::func_02038a80(s32 param1) {} -ARM UnkStruct_0203881c::~UnkStruct_0203881c() {} +ARM void UnkStruct_0203881c::vfunc_00() {} +ARM void UnkStruct_0203881c::vfunc_04() {} THUMB UnkStruct_02038aa0::UnkStruct_02038aa0(u8 param1, u8 param2) : UnkStruct_0203dae0(param1), @@ -33,16 +36,14 @@ THUMB UnkStruct_02038aa0::UnkStruct_02038aa0(u8 param1, u8 param2) : THUMB UnkStruct_02038aa0::~UnkStruct_02038aa0() {} -THUMB void UnkStruct_02038aa0::func_02038b28(void) { +THUMB void UnkStruct_02038aa0::vfunc_4c() { this->mUnk_114->mUnk_04 = NULL; } -ARM void UnkStruct_02038aa0::vfunc_4c(u32 param1, unk32 param2) { +ARM void UnkStruct_02038aa0::vfunc_10(u32 param1, unk32 param2) { this->UnkStruct_0203dae0::vfunc_10(param1, param2); } -ARM void UnkStruct_02038aa0::vfunc_10() {} - ARM void UnkStruct_02038aa0::func_02038b40() { this->mUnk_15c = -1; this->mUnk_128.mUnk_04 = NULL; @@ -52,8 +53,6 @@ ARM void UnkStruct_02038aa0::func_02038b40() { ARM void UnkStruct_02038aa0::vfunc_48() {} -ARM void UnkStruct_02038aa0::func_02038b74(void) {} - // non-matching ARM bool UnkStruct_02038aa0::func_02038b78() { if (!data_027e0c54.mUnk_0) { @@ -117,28 +116,26 @@ ARM s32 UnkStruct_02038aa0::func_02038d10() { ARM void UnkStruct_02038aa0::vfunc_2c() {} -ARM void UnkStruct_02038aa0::vfunc_30(unk32 param_2, unk32 param_3) { +ARM void UnkStruct_02038aa0::vfunc_30() { if (this->mUnk_15c > 0) { - this->func_0203e090(); + this->UnkStruct_0203dae0::vfunc_30(); } else { this->mUnk_118 = -1; } } -ARM bool UnkStruct_02038aa0::func_02038ef4(s32 param1, s32 param2) { +ARM bool UnkStruct_02038aa0::func_02038ef4(s32 touchLastX, s32 touchLastY) { unk32 local_14; unk32 local_18; this->vfunc_70(&local_14, &local_18); - this->func_0203e1b0(local_14 + param1, local_18 + param2, 0); + this->func_0203e1b0(local_14 + touchLastX, local_18 + touchLastY, 0); } -ARM void UnkStruct_02038aa0::func_02038f40(void) {} - ARM void UnkStruct_02038aa0::vfunc_44(s32 touchLastX, s32 touchLastY) {} // non-matching -ARM void UnkStruct_02038aa0::vfunc_50(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4) { +ARM void UnkStruct_02038aa0::vfunc_50(EntryINF1 *param1, u16 *param2, s16 *param3, UnkStruct_000 *param4) { int iVar1; this->pInfoEntry = param1; @@ -151,8 +148,8 @@ ARM void UnkStruct_02038aa0::vfunc_50(EntryINF1 *param1, u32 param2, s16 *param3 this->mUnk_30 = this->mUnk_150[4] + 5; this->vfunc_54(); - // this->vfunc_60(0, 0, (unk32)param3); - // this->vfunc_64(param3); + this->vfunc_60(0, 0, (unk32) param3); + this->vfunc_64((unk32) param3); if (gGame.mModeId == GameModeId_Adventure) { if (this->func_02032fa4() == 0) { @@ -162,7 +159,7 @@ ARM void UnkStruct_02038aa0::vfunc_50(EntryINF1 *param1, u32 param2, s16 *param3 } } - this->vfunc_5C(); + // this->vfunc_5c(); } // non-matching @@ -182,27 +179,26 @@ ARM void UnkStruct_02038aa0::vfunc_5c(u16 *param_2, UnkStruct_0203b264 *param_3, // this->mUnk_150[2] = bVar5; // return? - this->func_02033360(); + // this->UnkStruct_02032f0c::vfunc_1c(); } ARM unk32 UnkStruct_02038aa0::vfunc_1c(s32 param1, unk32 *param2, unk32 param3, unk32 param4) {} ARM unk32 UnkStruct_02038aa0::vfunc_20(s32 param1, s32 *param2) {} ARM void UnkStruct_02038aa0::func_02039208(unk16 param1) {} -// non-matching -ARM void UnkStruct_02038aa0::vfunc_08(s32 param1, unk32 *param2, s16 *param3, unk32 param4) { +ARM void UnkStruct_02038aa0::vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4) { this->mUnk_15c = 10; this->mUnk_150[2] = 1; - this->func_0203e2ac(param2); + this->UnkStruct_0203dae0::vfunc_08(param1, param2, param3, param4); } ARM unk32 UnkStruct_02038aa0::func_02039250() {} ARM void UnkStruct_02038aa0::vfunc_54() {} ARM void UnkStruct_02038aa0::vfunc_58() {} -ARM void UnkStruct_02038aa0::vfunc_60() {} -ARM void UnkStruct_02038aa0::vfunc_64() {} +ARM void UnkStruct_02038aa0::vfunc_60(func_0203b410_param1 *param1, unk32 param2, unk32 param3) {} +ARM s32 UnkStruct_02038aa0::vfunc_64(unk32 param1) {} -ARM s32 UnkStruct_02038aa0::vfunc_68(unk32 param1) { +ARM unk32 UnkStruct_02038aa0::vfunc_68(s32 param1, s32 *param2) { switch (param1) { case 0: break; @@ -228,16 +224,15 @@ ARM s32 UnkStruct_02038aa0::vfunc_68(unk32 param1) { ARM void UnkStruct_02038aa0::func_02039440(unk32 param1, unk32 param2) {} ARM void UnkStruct_02038aa0::vfunc_6c(s32 *param1, s32 *param2) {} -ARM void UnkStruct_02038aa0::vfunc_70(s32 *param1, s32 *param2) { - this->vfunc_6C(param1, param2); +ARM void UnkStruct_02038aa0::vfunc_70(unk32 *param1, unk32 *param2) { + this->vfunc_6c(param1, param2); *param1 += this->mUnk_158.x; *param2 += this->mUnk_158.y; } ARM bool UnkStruct_02038aa0::func_0203951c() {} -ARM bool UnkStruct_02038aa0::vfunc_38() {} +ARM bool UnkStruct_02038aa0::func_0203955c() {} -ARM void UnkStruct_02038aa0::vfunc_0c(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); +ARM bool UnkStruct_02038aa0::vfunc_38() { + return false; } diff --git a/src/Main/Unknown/UnkStruct_020397f8.cpp b/src/Main/Unknown/UnkStruct_020397f8.cpp index ef07a377..3678364e 100644 --- a/src/Main/Unknown/UnkStruct_020397f8.cpp +++ b/src/Main/Unknown/UnkStruct_020397f8.cpp @@ -16,6 +16,9 @@ extern "C" void func_ov018_02169634(UnkStruct_020397f8 *); extern unk16 data_02056a0e[]; extern u8 data_02056a08[]; +static char *sShipTypes[] = {"brg", "anc", "pdl", "hul", "can", "dco", "bow", "fnl"}; + +// non-matching (regalloc) THUMB UnkStruct_020397f8::UnkStruct_020397f8() : UnkStruct_02038aa0(0, 0), mUnk_164(NULL) { @@ -55,7 +58,7 @@ THUMB UnkStruct_020397f8::UnkStruct_020397f8() : this->mUnk_576 = 0; this->mUnk_578 = 3; this->mUnk_57a = 0; - this->mUnk_57b = -1; + this->mUnk_57b = 0; this->mUnk_57c = 0; this->mUnk_57d = 0; this->mUnk_57e = 0; @@ -85,12 +88,12 @@ THUMB UnkStruct_020397f8::UnkStruct_020397f8() : this->mUnk_278.func_020351b8(false, false, false, false); } +// non-matching THUMB void UnkStruct_020397f8::vfunc_4c() { - this->func_02038b28(); + this->UnkStruct_02038aa0::vfunc_4c(); this->func_0203dcfc(this->mUnk_50, 0, 0, 2); } -// non-matching ARM void UnkStruct_020397f8::vfunc_2c() { if (gGame.mUnk_101 != 0) { if (((data_02056be4[data_027e077c.mUnk_0] & 1) != 0) != this->mUnk_50) { @@ -98,7 +101,7 @@ ARM void UnkStruct_020397f8::vfunc_2c() { } } - this->func_02038d20(); + this->UnkStruct_02038aa0::vfunc_2c(); if (this->mUnk_56c > 0) { this->mUnk_56c--; @@ -133,9 +136,19 @@ ARM void UnkStruct_020397f8::vfunc_2c() { } if (this->mUnk_08 != NULL) { - bool value = this->mUnk_08->mUnk_1c; + bool value; + + switch (this->mUnk_08->mUnk_1c) { + case 1: + case 2: + value = true; + break; + default: + value = false; + break; + } - if ((value == 1) || (value == 2)) { + if (value != 0) { this->mUnk_278.func_0203516c(); } } @@ -174,8 +187,8 @@ ARM void UnkStruct_020397f8::func_02039ca8() { } } -ARM void UnkStruct_020397f8::vfunc_3c(unk32 param1) { - if (this->mUnk_15c > 0 && this->func_0203de14(param1) != 0) { +ARM void UnkStruct_020397f8::vfunc_3c(unk32 param_2) { + if (this->mUnk_15c > 0 && this->func_0203de14(param_2) != 0) { if (this->mUnk_124->mUnk_29 != 3) { if ((this->mUnk_50 == 0) && func_ov000_02079e04() != 0) { return; @@ -193,7 +206,7 @@ ARM void UnkStruct_020397f8::vfunc_3c(unk32 param1) { } // non-matching -ARM void UnkStruct_020397f8::vfunc_40(s32 param1, s32 param2) { +ARM void UnkStruct_020397f8::vfunc_40(s32 touchLastX, s32 touchLastY) { UnkStruct_02038aa0 *bVar1; s8 cVar2; unk32 iVar4; @@ -218,10 +231,10 @@ ARM void UnkStruct_020397f8::vfunc_40(s32 param1, s32 param2) { local_90 = 0; bVar1 = gMessageManager.mUnk_28[this->mUnk_50]; - this->vfunc_6C(&local_8c, &local_90); - this->func_0203a188(local_8c + param1, local_90 + param2); - this->func_0203e1b0(param1 + local_8c + (this->mUnk_158.x - (this->mUnk_14 << 3) / 2), - param2 + local_90 + (this->mUnk_158.y - (this->mUnk_18 << 3) / 2), 0); + this->vfunc_6c(&local_8c, &local_90); + this->func_0203a188(local_8c + touchLastX, local_90 + touchLastY); + this->func_0203e1b0(touchLastX + local_8c + (this->mUnk_158.x - (this->mUnk_14 << 3) / 2), + touchLastY + local_90 + (this->mUnk_158.y - (this->mUnk_18 << 3) / 2), 0); if (this->mUnk_584 != 0) { iVar5 = this->mUnk_18 << 3; @@ -232,8 +245,8 @@ ARM void UnkStruct_020397f8::vfunc_40(s32 param1, s32 param2) { iVar5 = 0; } - this->mUnk_300.func_02034a1c(param1 + local_8c + this->mUnk_55c + (this->mUnk_158.x - (this->mUnk_14 << 3) / 2), - iVar5 + param2 + local_90 + this->mUnk_560 + ((this->mUnk_158.y - (iVar5 / 2))), 0); + this->mUnk_300.func_02034a1c(touchLastX + local_8c + this->mUnk_55c + (this->mUnk_158.x - (this->mUnk_14 << 3) / 2), + iVar5 + touchLastY + local_90 + this->mUnk_560 + ((this->mUnk_158.y - (iVar5 / 2))), 0); } if (this->mUnk_585 != 0 && ((data_02056be4[data_027e077c.mUnk_0] & 1) == 0)) { @@ -261,8 +274,8 @@ ARM void UnkStruct_020397f8::vfunc_40(s32 param1, s32 param2) { if ((this->mUnk_15e != 7) && (this->func_0203a2c0() != 0)) { func_01ffbe34(&aStack_48); func_020347b0(uVar9, data_02056a10[iVar8], &local_9c, &local_a0, 4, 4); - local_9c += param1 + local_8c + iVar6; - local_a0 += param2 + local_90 + iVar7; + local_9c += touchLastX + local_8c + iVar6; + local_a0 += touchLastY + local_90 + iVar7; if (data_027e0c38.mUnk_14 == 1) { iVar8 = func_0202ab48(); @@ -293,12 +306,13 @@ ARM void UnkStruct_020397f8::vfunc_40(s32 param1, s32 param2) { func_01ffbe34(&aStack_88); aStack_88.mUnk_0a = 1; func_02034698(iVar5 != 0 ? 0x11F : 0x18, 2, &iStack_a4, &iStack_a8); - iStack_a4 += param1 + local_8c + iVar6; - iStack_a8 += param2 + local_90 + iVar7; + iStack_a4 += touchLastX + local_8c + iVar6; + iStack_a8 += touchLastY + local_90 + iVar7; this->mUnk_278.func_02034a1c(iStack_a4, iStack_a8, &aStack_88); } } +// non-matching ARM void UnkStruct_020397f8::func_0203a188(s32 param1, s32 param2) { unk16 sVar1; unk16 sVar2; @@ -342,22 +356,35 @@ ARM void UnkStruct_020397f8::func_0203a188(s32 param1, s32 param2) { } } -// non-matching ARM bool UnkStruct_020397f8::func_0203a2c0() { - if ((this->mUnk_150[1] != 1 && this->mUnk_150[1] != 2) && (this->func_02039250() != 0 && this->func_02038b78() != 0)) { + bool value = false; + + switch (this->mUnk_150[1]) { + case 1: + case 2: + value = true; + break; + default: + break; + } + + if (this->func_02039250() != 0 && this->func_02038b78() != 0 && value) { return true; } return false; } -ARM unk32 UnkStruct_020397f8::func_0203a30c() { +//! TODO: wrong intrinsic call? +ARM u32 UnkStruct_020397f8::func_0203a30c() { return this->mUnk_574 / this->pInfoEntry->mUnk_06; } // non-matching (regalloc) ARM void UnkStruct_020397f8::vfunc_48() { - if (this->mUnk_164 != NULL && this->mUnk_164->mUnk_15c > 0) { + UnkStruct_020397f8 *unk_164 = this->mUnk_164; + + if (unk_164 != NULL && unk_164->mUnk_15c > 0) { this->func_02038b40(); } @@ -385,7 +412,6 @@ ARM bool UnkStruct_020397f8::func_0203a3e0() { return this->mUnk_164->mUnk_168.mUnk_06 > 0; } -// non-matching ARM void UnkStruct_020397f8::vfunc_44(s32 touchLastX, s32 touchLastY) { unk32 iVar2; unk32 iVar5; @@ -399,7 +425,7 @@ ARM void UnkStruct_020397f8::vfunc_44(s32 touchLastX, s32 touchLastY) { iStack_14 = 0; iStack_18 = 0; - this->vfunc_6C(&iStack_14, &iStack_18); + this->vfunc_6c(&iStack_14, &iStack_18); iVar5 = touchLastX - iStack_14; iVar2 = touchLastY - iStack_18; @@ -479,6 +505,7 @@ ARM void UnkStruct_020397f8::vfunc_44(s32 touchLastX, s32 touchLastY) { } } +// non-matching ARM bool UnkStruct_020397f8::func_0203a6d0(unk32 param1, unk32 param2) { unk32 iVar1; unk32 uVar2; @@ -509,7 +536,7 @@ ARM bool UnkStruct_020397f8::func_0203a6d0(unk32 param1, unk32 param2) { } // non-matching -ARM void UnkStruct_020397f8::vfunc_50(EntryINF1 *param1, unk32 param2, s32 *param3, unk32 param4) { +ARM void UnkStruct_020397f8::vfunc_50(EntryINF1 *param1, u16 *param2, s16 *param3, UnkStruct_000 *param4) { bool bVar5; bool bVar2; int iVar4; @@ -548,7 +575,7 @@ ARM void UnkStruct_020397f8::vfunc_50(EntryINF1 *param1, unk32 param2, s32 *para this->mUnk_57b = 0; } - // this->func_02038f44(param1, param2, param3, param4, iVar6); + this->UnkStruct_02038aa0::vfunc_50(param1, param2, param3, param4); this->mUnk_574 = 0; if (data_027e0d38 != 0 && (data_02056be4[data_027e077c.mUnk_0] & 1) != 0 && (param3[11])) { @@ -556,10 +583,10 @@ ARM void UnkStruct_020397f8::vfunc_50(EntryINF1 *param1, unk32 param2, s32 *para } } -// switch decomp issue +// switch decomp issue (solved now?) ARM void UnkStruct_020397f8::vfunc_54() {} -ARM void UnkStruct_020397f8::vfunc_5c() { +ARM void UnkStruct_020397f8::vfunc_5c(u16 *param_2, UnkStruct_0203b264 *param_3, unk8 param_4, unk32 param_5) { if (this->mUnk_15f == 0 || this->pInfoEntry->mUnk_06 <= 2) { this->mUnk_168.mUnk_5c.mUnk_08 = this->mUnk_168.mUnk_7c; this->mUnk_168.func_020352d8(); @@ -607,14 +634,14 @@ ARM void UnkStruct_020397f8::vfunc_58() { } } - // if (gGame.mModeId == GameModeId_Adventure && func_ov000_02079e04() && (data_027e1054.mUnk_04 + 0x99) != 0 && - // (data_027e077c.mUnk_0 != 0x39 || data_027e103c->func_ov000_020cf0bc())) { - // data_027e1054.func_ov003_020f4874(); - // data_027e103c->func_ov005_02103f8c(data_02057ed4); - // } + if (gGame.mModeId == GameModeId_Adventure && func_ov000_02079e04() && (data_027e1054->mUnk_04 + 0x99) != 0 && + (data_027e077c.mUnk_0 != 0x39 || data_027e103c->func_ov000_020cf0bc())) { + data_027e1054->func_ov003_020f4874(); + data_027e103c->func_ov005_02103f8c(data_02057ed4); + } } - this->func_02039398(); + this->UnkStruct_02038aa0::vfunc_58(); } ARM bool UnkStruct_020397f8::func_0203b0bc() { @@ -685,8 +712,8 @@ ARM s32 UnkStruct_020397f8::func_0203b0ec(u32 param1) { return iVar4; } -// non-matching (regalloc) -ARM unk32 UnkStruct_020397f8::vfunc_18(UnkStruct_0203b264 *param1, unk32 param2, unk32 param3) { +// non-matching +ARM unk32 UnkStruct_020397f8::vfunc_18(UnkStruct_02032e7c *param1, unk32 param2, unk32 param3) { u16 sVar1; u32 uVar4; s32 unaff_r4; @@ -702,13 +729,13 @@ ARM unk32 UnkStruct_020397f8::vfunc_18(UnkStruct_0203b264 *param1, unk32 param2, unaff_r4 = 0; } - sVar1 = param1->mUnk_4[0]; + // sVar1 = param1->mUnk_4[0]; if (sVar1 != 0x1A || sVar1 == 0x1A) { bVar5 = true; if (sVar1 == 0x1A) { - uVar4 = (param1->mUnk_0[3] << 0x10) | ((u16 *) param1->mUnk_0)[2]; + // uVar4 = (param1->mUnk_0[3] << 0x10) | ((u16 *) param1->mUnk_0)[2]; if (((uVar4 == 0x0001000A || uVar4 == 0x00020000) || uVar4 == 0x00FF0000)) { bVar5 = false; @@ -720,15 +747,15 @@ ARM unk32 UnkStruct_020397f8::vfunc_18(UnkStruct_0203b264 *param1, unk32 param2, } } - return this->func_0203e284(param1, param2, param3 + unaff_r4); + // return this->func_0203e284(param1, param2, param3 + unaff_r4); } // non-matching -ARM unk32 UnkStruct_020397f8::vfunc_1c(u16 *param1, UnkStruct_0203b264 *param2, unk8 param3, unk32 param4) { +ARM unk32 UnkStruct_020397f8::vfunc_1c(s32 param1, unk32 *param2, unk32 param3, unk32 param4) { int iVar1; u16 *psVar3; - psVar3 = param2->mUnk_4; + psVar3 = (u16 *) ¶m2[1]; if (psVar3[0] == 10) { this->mUnk_424.func_0203ef78(this->mUnk_128.mUnk_08, psVar3[0], param3); @@ -745,13 +772,14 @@ ARM unk32 UnkStruct_020397f8::vfunc_1c(u16 *param1, UnkStruct_0203b264 *param2, switch (this->mUnk_57a) { case 0: - return this->func_0203905c(param1, param2, param3, param4); + return this->UnkStruct_02038aa0::vfunc_1c(param1, param2, param3, param4); case 1: UnknownMsgChoiceStruct *pChoiceData; s32 i = this->func_0203a30c(); pChoiceData = &this->mUnk_428[this->mUnk_528[i]]; - return this->mUnk_164->func_0203cb5c( - *param1, (((pChoiceData->mUnk_00->mUnk_0[3] << 0x10) | ((u16 *) pChoiceData->mUnk_00->mUnk_0)[2]) + ~0xFFFE)); + // return this->mUnk_164->func_0203cb5c( + // *param1, (((pChoiceData->mUnk_00->mUnk_0[3] << 0x10) | ((u16 *) pChoiceData->mUnk_00->mUnk_0)[2]) + + // ~0xFFFE)); default: break; } @@ -840,8 +868,7 @@ ARM void UnkStruct_020397f8::vfunc_60(func_0203b410_param1 *param1, unk32 param2 } } -// non-matching (regalloc) -ARM void UnkStruct_020397f8::vfunc_64(s16 *param1) { +ARM s32 UnkStruct_020397f8::vfunc_64(unk32 param1) { unk32 uVar2; if (this->mUnk_50 != 0 || data_027e0db0.mUnk_04 > 0 || func_0203c084() != 0 || @@ -867,14 +894,14 @@ ARM void UnkStruct_020397f8::vfunc_64(s16 *param1) { this->mUnk_168.func_020351b8(1, 0, 0, 0); this->mUnk_1f0.func_020351b8(0, 0, 0, 0); this->mUnk_278.func_020351b8(0, 0, 0, 0); - this->func_020393a8(param1); + this->UnkStruct_02038aa0::vfunc_64(param1); } // non-matching ARM void UnkStruct_020397f8::func_0203b764() { s32 i = gMessageManager.mUnk_00[this->mUnk_50]; - this->func_02039440(data_02056a04[i * 0x18], data_02056a16[i]); + this->func_02039440(data_02056a04[i], data_02056a16[i]); switch (this->mUnk_57b) { case 1: @@ -909,7 +936,7 @@ ARM void UnkStruct_020397f8::func_0203bd8c(s32 param1) { } ARM void UnkStruct_020397f8::vfunc_6c(s32 *param1, s32 *param2) { - this->func_0203947c(); + this->UnkStruct_02038aa0::vfunc_6c(param1, param2); *param1 += this->mUnk_56e; *param2 += this->mUnk_570; } @@ -997,13 +1024,13 @@ ARM bool UnkStruct_020397f8::func_0203c1a0() { this->mUnk_128.mUnk_20 = this; this->mUnk_128.mUnk_24 = 0; - return 0; + return false; } - return 0; + return false; } -ARM bool UnkStruct_020397f8::func_0203c25c(UnkStruct_020397f8 *param1) { +ARM bool UnkStruct_020397f8::func_0203c25c(class UnkStruct_020397f8 *param1) { if (data_027e1054->mUnk_00->mUnk_00->mUnk_95 != 0) { return false; } diff --git a/src/Main/Unknown/UnkStruct_0203dae0.cpp b/src/Main/Unknown/UnkStruct_0203dae0.cpp index 7dfde88b..636557d7 100644 --- a/src/Main/Unknown/UnkStruct_0203dae0.cpp +++ b/src/Main/Unknown/UnkStruct_0203dae0.cpp @@ -2,16 +2,13 @@ #include "System/SysNew.hpp" #include "Unknown/UnkStruct_02075dac.hpp" -extern u32 *data_027e0ce0[]; extern "C" void Fill256(unk32, unk16 *, unk32, unk32); extern "C" void func_0203fc78(u8, unk32 *, unk32 *); -extern "C" u16 func_0203d318(unk32, unk32); -extern "C" void func_020298b8(unk32 *, unk32, unk32, unk32, unk32); -extern "C" void func_02029830(unk32 *, unk32, unk32, unk32, unk32); +extern "C" void func_020298b8(unk32 **, unk32 *, unk32, unk32, unk32); +extern "C" void func_02029830(unk32 **, unk32 *, unk32, unk32, unk32); extern "C" unk32 func_0203d400(u8); extern "C" void func_02035440(u8); -// non-matching THUMB UnkStruct_0203dae0::UnkStruct_0203dae0(u8 param1) { this->mUnk_114 = NULL; this->mUnk_118 = -1; @@ -25,9 +22,9 @@ THUMB UnkStruct_0203dae0::UnkStruct_0203dae0(u8 param1) { Fill256(0, &this->mUnk_54, 0xC0, 1); if (this->mUnk_121 == 0) { - this->mUnk_114 = new(data_027e0ce0[1], 4) UnkStruct_0203dae0_114(); + this->mUnk_114 = new(data_027e0ce0[1], 4) UnkStruct_0203d1d0(); } else { - this->mUnk_114 = new(data_027e0ce0[1], 4) UnkStruct_0203dae0_114(); + this->mUnk_114 = new(data_027e0ce0[1], 4) UnkStruct_0203d254(); } } @@ -38,9 +35,11 @@ THUMB UnkStruct_0203dae0::~UnkStruct_0203dae0() { } } +THUMB UnkStruct_0203dae0::UnkStruct_0203dae0() {} + // non-matching (regalloc) -ARM void UnkStruct_0203dae0::func_0203dc10(s32 param1) { - if (param1 != 0) { +ARM void UnkStruct_0203dae0::func_0203dc10(unk32 param_2) { + if (param_2 != 0) { if (this->mUnk_11c == 0x0) { return; } @@ -52,7 +51,7 @@ ARM void UnkStruct_0203dae0::func_0203dc10(s32 param1) { this->mUnk_114->vfunc_0c(); } - this->mUnk_122 = param1; + this->mUnk_122 = param_2; } ARM bool UnkStruct_0203dae0::func_0203dc74(s32 param1, s32 param2) { @@ -75,29 +74,24 @@ ARM bool UnkStruct_0203dae0::vfunc_14(s32 param1, s32 param2) { return true; } -// non-matching +// non-matching (regalloc) ARM void UnkStruct_0203dae0::func_0203dcfc(u8 param1, unk32 param2, unk32 param3, s32 param4) { - unk32 *uVar5; - this->mUnk_50 = param1; this->vfunc_14(this->mUnk_4a, this->mUnk_4c); - this->mUnk_11c = func_0203d318(this->mUnk_10[0x1], this->mUnk_10[0x2]); + this->mUnk_11c = UnkStruct_0203dae0::func_0203d318(this->mUnk_14, this->mUnk_18); this->func_0203dc10(1); - if (func_0203d400(this->UnkStruct_02032f0c::func_02032fa4()) != 0x0) { - uVar5 = this->func_0203ddec(); - func_020298b8(this->mUnk_10, *uVar5, this->mUnk_10[0x1], this->mUnk_10[0x2], 0x4); + if (func_0203d400(this->UnkStruct_02032f0c::func_02032fa4()) != 0) { + func_020298b8(&this->mUnk_10, this->func_0203ddec(), this->mUnk_14, this->mUnk_18, 4); } else { - uVar5 = this->func_0203ddec(); - func_02029830(this->mUnk_10, *uVar5, this->mUnk_10[0x1], this->mUnk_10[0x2], 0x4); + func_02029830(&this->mUnk_10, this->func_0203ddec(), this->mUnk_14, this->mUnk_18, 4); } - this->mUnk_28 = this->mUnk_10; - this->mUnk_2c = this->mUnk_2c; // this->mUnk_2c = &(UnkStruct_MsgProc_Base_unk_2C*)this->mUnk_10; + this->mUnk_28 = (unk32 *) this->mUnk_2c; + this->mUnk_2c = &(UnkStruct_MsgProc_Base_unk_2C *) this->mUnk_10; this->mUnk_30 = param4; this->mUnk_34 = 3; this->vfunc_10(param3, 3); - this->func_0203de58(param2); } @@ -106,28 +100,27 @@ ARM unk32 *UnkStruct_0203dae0::func_0203ddec() { } ARM void UnkStruct_0203dae0::func_0203ddfc() { - this->mUnk_114->mUnk_04 = 0; + this->mUnk_114->mUnk_04 = NULL; this->mUnk_11c = 0; } -ARM void UnkStruct_0203dae0::func_0203de14() { +ARM unk32 UnkStruct_0203dae0::func_0203de14(unk32 param1) { //! TODO: class? func_02035440(this->mUnk_50); } -// non-matching ARM s32 UnkStruct_0203dae0::func_0203de24() { - if (func_0203d400(this->UnkStruct_02032f0c::func_02032fa4()) == 0x0) { - return this->mUnk_10[5] * this->mUnk_10[6] * 0x20; + if (func_0203d400(this->UnkStruct_02032f0c::func_02032fa4()) == 0) { + return this->mUnk_14 * this->mUnk_18 * 0x20; } - return this->mUnk_10[6] << 0xa; + return this->mUnk_18 << 10; } ARM bool UnkStruct_0203dae0::func_0203de58(s32 param1) {} ARM void UnkStruct_0203dae0::vfunc_10(u32 param1, unk32 param2) { - this->func_0203dc10(1, param2); + this->func_0203dc10(1); this->mUnk_11e = param1; this->mUnk_118 = -1; this->UnkStruct_02032f0c::vfunc_10(param1, -1); @@ -164,10 +157,10 @@ ARM void UnkStruct_0203dae0::vfunc_2c() { ARM bool UnkStruct_0203dae0::func_0203e1b0(unk32 param1, unk32 param2, s32 param3) {} -ARM unk32 UnkStruct_0203dae0::vfunc_18(s32 param1) { +ARM unk32 UnkStruct_0203dae0::vfunc_18(UnkStruct_02032e7c *param1, unk32 param2, unk32 param3) { unk32 iVar1; - iVar1 = this->UnkStruct_02032f0c::vfunc_18(param1); + iVar1 = this->UnkStruct_02032f0c::vfunc_18(param1, param2, param3); if (iVar1 != 0) { this->func_0203dc10(1);