From 079958c2a3d164a3039c761b2f30ec5d2cd846ef Mon Sep 17 00:00:00 2001 From: Yanis <35189056+Yanis002@users.noreply.github.com> Date: Fri, 9 Oct 2026 21:23:20 +0200 Subject: [PATCH] Match ActorBlast and progress on ActorItemBoomerang and ActorItemTornado (#160) * ActorBlast OK * ActorItemBoomerang 99% * ActorItemTornado 99% --- config/eur/arm9/overlays/ov000/symbols.txt | 2 +- config/eur/arm9/overlays/ov031/delinks.txt | 6 +- config/eur/arm9/overlays/ov031/symbols.txt | 196 ++++++++-------- config/eur1/arm9/overlays/ov000/relocs.txt | 4 +- config/eur1/arm9/overlays/ov000/symbols.txt | 4 +- config/eur1/arm9/overlays/ov026/relocs.txt | 10 +- config/eur1/arm9/overlays/ov027/relocs.txt | 2 +- config/eur1/arm9/overlays/ov030/relocs.txt | 2 +- config/eur1/arm9/overlays/ov031/delinks.txt | 6 +- config/eur1/arm9/overlays/ov031/relocs.txt | 12 +- config/eur1/arm9/overlays/ov031/symbols.txt | 20 +- config/eur1/arm9/overlays/ov043/relocs.txt | 2 +- config/eur1/arm9/overlays/ov048/relocs.txt | 4 +- config/eur1/arm9/overlays/ov052/relocs.txt | 2 +- config/eur1/arm9/overlays/ov059/relocs.txt | 4 +- config/eur1/arm9/overlays/ov068/relocs.txt | 2 +- config/eur1/arm9/overlays/ov070/relocs.txt | 2 +- config/eur1/arm9/overlays/ov071/relocs.txt | 2 +- config/eur1/arm9/overlays/ov075/relocs.txt | 2 +- config/eur1/arm9/overlays/ov087/relocs.txt | 2 +- config/eur1/arm9/overlays/ov091/relocs.txt | 4 +- config/eur1/arm9/overlays/ov092/relocs.txt | 2 +- config/eur1/arm9/overlays/ov094/relocs.txt | 2 +- config/eur1/arm9/overlays/ov096/relocs.txt | 2 +- config/jp/arm9/overlays/ov000/symbols.txt | 2 +- config/jp/arm9/overlays/ov031/delinks.txt | 4 +- config/jp/arm9/overlays/ov031/relocs.txt | 2 +- config/jp/arm9/overlays/ov031/symbols.txt | 206 ++++++++-------- config/usa/arm9/overlays/ov000/relocs.txt | 4 +- config/usa/arm9/overlays/ov000/symbols.txt | 4 +- config/usa/arm9/overlays/ov026/relocs.txt | 10 +- config/usa/arm9/overlays/ov027/relocs.txt | 2 +- config/usa/arm9/overlays/ov030/relocs.txt | 2 +- config/usa/arm9/overlays/ov031/delinks.txt | 6 +- config/usa/arm9/overlays/ov031/relocs.txt | 8 +- config/usa/arm9/overlays/ov031/symbols.txt | 30 +-- config/usa/arm9/overlays/ov043/relocs.txt | 2 +- config/usa/arm9/overlays/ov048/relocs.txt | 4 +- config/usa/arm9/overlays/ov052/relocs.txt | 2 +- config/usa/arm9/overlays/ov059/relocs.txt | 4 +- config/usa/arm9/overlays/ov068/relocs.txt | 2 +- config/usa/arm9/overlays/ov070/relocs.txt | 2 +- config/usa/arm9/overlays/ov071/relocs.txt | 2 +- config/usa/arm9/overlays/ov075/relocs.txt | 2 +- config/usa/arm9/overlays/ov087/relocs.txt | 2 +- config/usa/arm9/overlays/ov091/relocs.txt | 4 +- config/usa/arm9/overlays/ov092/relocs.txt | 2 +- config/usa/arm9/overlays/ov094/relocs.txt | 2 +- config/usa/arm9/overlays/ov096/relocs.txt | 2 +- include/Actor/ActorItemBoomerang.hpp | 5 +- include/Actor/ActorItemTornado.hpp | 52 ++++- include/Actor/ActorRef.hpp | 47 ++++ include/MapObject/MapObject.hpp | 2 +- include/Unknown/Common.hpp | 7 + include/Unknown/UnkStruct_027e0ce0.hpp | 7 +- include/timer.hpp | 12 + src/031_Land/Actor/ActorBlast.cpp | 105 +++++++-- src/031_Land/Actor/ActorBomb.cpp | 6 - src/031_Land/Actor/ActorItemBoomerang.cpp | 246 +++++++++++--------- src/031_Land/Actor/ActorItemTornado.cpp | 159 ++++++++----- src/031_Land/Actor/ActorUnkSWBM.cpp | 5 - 61 files changed, 752 insertions(+), 509 deletions(-) diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index 4ec929bb..8dee066e 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -1930,7 +1930,7 @@ func_ov000_0208bbb4 kind:function(arm,size=0x10) addr:0x0208bbb4 func_ov000_0208bbc4 kind:function(arm,size=0x10) addr:0x0208bbc4 func_ov000_0208bbd4 kind:function(arm,size=0x2c) addr:0x0208bbd4 func_ov000_0208bc00 kind:function(arm,size=0x1c) addr:0x0208bc00 -_ZN18UnkStruct_027e0ce019func_ov000_0208bc1cEiiiiPvi kind:function(arm,size=0x40) addr:0x0208bc1c +_ZN18UnkStruct_027e0ce019func_ov000_0208bc1cEiiiP8CylinderPvi kind:function(arm,size=0x40) addr:0x0208bc1c func_ov000_0208bc5c kind:function(arm,size=0x40) addr:0x0208bc5c _ZN18UnkStruct_027e0ce019func_ov000_0208bc9cEii kind:function(arm,size=0x84) addr:0x0208bc9c _ZN18UnkStruct_027e0ce019func_ov000_0208bd20Ebii kind:function(arm,size=0x10) addr:0x0208bd20 diff --git a/config/eur/arm9/overlays/ov031/delinks.txt b/config/eur/arm9/overlays/ov031/delinks.txt index dc4404b0..6991af8e 100644 --- a/config/eur/arm9/overlays/ov031/delinks.txt +++ b/config/eur/arm9/overlays/ov031/delinks.txt @@ -18,6 +18,7 @@ src/031_Land/Actor/ActorBomb.cpp: .bss start:0x02116404 end:0x02116450 src/031_Land/Actor/ActorBlast.cpp: + complete .text start:0x020e34b4 end:0x020e3ca4 .init start:0x02111048 end:0x02111098 .ctor start:0x021127a0 end:0x021127a4 @@ -40,11 +41,12 @@ src/031_Land/Actor/ActorItemBoomerang.cpp: .bss start:0x021164e8 end:0x02116534 src/031_Land/Actor/ActorItemTornado.cpp: - .text start:0x020e58c8 end:0x020e64d8 + .text start:0x020e575c end:0x020e64d8 .init start:0x02111138 end:0x021111ac .ctor start:0x021127ac end:0x021127b0 - .data start:0x02112fec end:0x02113088 + .data start:0x02112fd0 end:0x02113088 .bss start:0x02116534 end:0x02116580 + .rodata start:0x02110a88 end:0x02110a98 src/031_Land/Actor/ActorUnkSWBM.cpp: .text start:0x020e68d8 end:0x020e7378 diff --git a/config/eur/arm9/overlays/ov031/symbols.txt b/config/eur/arm9/overlays/ov031/symbols.txt index 83468892..f04cb81b 100644 --- a/config/eur/arm9/overlays/ov031/symbols.txt +++ b/config/eur/arm9/overlays/ov031/symbols.txt @@ -450,8 +450,8 @@ _ZN21ActorItemBoomerang_A0D0Ev kind:function(arm,size=0x1c) addr:0x020e5710 _ZN21ActorItemBoomerang_CCD0Ev kind:function(arm,size=0x1c) addr:0x020e572c _ZN25ActorProfileItemBoomerangD1Ev kind:function(arm,size=0x14) addr:0x020e5748 _ZN24UnkStruct_ov031_02112ff48vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0x28) addr:0x020e575c -_ZN24UnkStruct_ov031_02112ff48vfunc_0CEPK24UnkStruct_ov031_020e54d4i kind:function(arm,size=0x114) addr:0x020e5784 -func_ov031_020e5898 kind:function(arm,size=0x30) addr:0x020e5898 +_ZN24UnkStruct_ov031_02112ff48vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x114) addr:0x020e5784 +_ZN20ActorItemTornado_17C8vfunc_00Eii kind:function(arm,size=0x30) addr:0x020e5898 _ZN23ActorProfileItemTornado10GetProfileEv kind:function(arm,size=0xc) addr:0x020e58c8 _ZN23ActorProfileItemTornado6CreateEv kind:function(arm,size=0x24) addr:0x020e58d4 _ZN23ActorProfileItemTornadoC1Ev kind:function(arm,size=0x44) addr:0x020e58f8 @@ -465,7 +465,7 @@ _ZN16ActorItemTornado8vfunc_24Ev kind:function(arm,size=0x44) addr:0x020e6158 _ZN16ActorItemTornado8vfunc_2CEP14Actor_vfunc_30 kind:function(arm,size=0x124) addr:0x020e619c _ZN16ActorItemTornado19func_ov031_020e62c0Ev kind:function(arm,size=0x54) addr:0x020e62c0 _ZN16ActorItemTornado19func_ov031_020e6314Et kind:function(arm,size=0x2c) addr:0x020e6314 -_ZN16ActorItemTornado19func_ov031_020e6340EP7VecFx32ss kind:function(arm,size=0x58) addr:0x020e6340 +_ZN16ActorItemTornado19func_ov031_020e6340EPK7VecFx32ss kind:function(arm,size=0x58) addr:0x020e6340 _ZN16ActorItemTornado19func_ov031_020e6398Ev kind:function(arm,size=0x78) addr:0x020e6398 _ZN24UnkStruct_ov031_02112ff4D0Ev kind:function(arm,size=0x1c) addr:0x020e6410 _ZN16ActorItemTornadoD1Ev kind:function(arm,size=0x48) addr:0x020e642c @@ -2002,7 +2002,7 @@ data_ov031_02110a10 kind:data(byte[0x18]) addr:0x02110a10 local data_ov031_02110a28 kind:data(byte[0x18]) addr:0x02110a28 local data_ov031_02110a40 kind:data(any) addr:0x02110a40 local data_ov031_02110a80 kind:data(any) addr:0x02110a80 -data_ov031_02110a88 kind:data(any) addr:0x02110a88 +@8898 kind:data(byte[0xb]) addr:0x02110a88 local data_ov031_02110a98 kind:data(any) addr:0x02110a98 data_ov031_02110a9c kind:data(any) addr:0x02110a9c data_ov031_02110aa0 kind:data(any) addr:0x02110aa0 @@ -2069,131 +2069,131 @@ data_ov031_02110f88 kind:data(any) addr:0x02110f88 __sinit_ov031_02110fd0 kind:function(arm,size=0x18) addr:0x02110fd0 __sinit_ov031_02110fe8 kind:function(arm,size=0x10) addr:0x02110fe8 __sinit_ActorBomb.cpp kind:function(arm,size=0x50) addr:0x02110ff8 local -__sinit_ActorBlast.cpp kind:function(arm,size=0x50) addr:0x02111048 +__sinit_ActorBlast.cpp kind:function(arm,size=0x50) addr:0x02111048 local __sinit_ActorUnkTLKT.cpp kind:function(arm,size=0x50) addr:0x02111098 local -__sinit_ActorItemBoomerang.cpp kind:function(arm,size=0x50) addr:0x021110e8 -__sinit_ActorItemTornado.cpp kind:function(arm,size=0x74) addr:0x02111138 -__sinit_ActorUnkSWBM.cpp kind:function(arm,size=0x74) addr:0x021111ac -__sinit_ActorUnkROCK.cpp kind:function(arm,size=0x50) addr:0x02111220 -__sinit_ActorRupee.cpp kind:function(arm,size=0x98) addr:0x02111270 -__sinit_ActorUnkZLSL_ZSRS.cpp kind:function(arm,size=0x94) addr:0x02111308 -__sinit_ActorHeart.cpp kind:function(arm,size=0x6c) addr:0x0211139c +__sinit_ActorItemBoomerang.cpp kind:function(arm,size=0x50) addr:0x021110e8 local +__sinit_ActorItemTornado.cpp kind:function(arm,size=0x74) addr:0x02111138 local +__sinit_ActorUnkSWBM.cpp kind:function(arm,size=0x74) addr:0x021111ac local +__sinit_ActorUnkROCK.cpp kind:function(arm,size=0x50) addr:0x02111220 local +__sinit_ActorRupee.cpp kind:function(arm,size=0x98) addr:0x02111270 local +__sinit_ActorUnkZLSL_ZSRS.cpp kind:function(arm,size=0x94) addr:0x02111308 local +__sinit_ActorHeart.cpp kind:function(arm,size=0x6c) addr:0x0211139c local __sinit_ActorUnkRMTG.cpp kind:function(arm,size=0x50) addr:0x02111408 local -__sinit_ActorUnkSCCN.cpp kind:function(arm,size=0x50) addr:0x02111458 +__sinit_ActorUnkSCCN.cpp kind:function(arm,size=0x50) addr:0x02111458 local __sinit_ActorPot.cpp kind:function(arm,size=0x50) addr:0x021114a8 local __sinit_ActorItemFlower.cpp kind:function(arm,size=0x50) addr:0x021114f8 local -__sinit_ActorShotArrow.cpp kind:function(arm,size=0x50) addr:0x02111548 -__sinit_ActorUnkATTG.cpp kind:function(arm,size=0x50) addr:0x02111598 +__sinit_ActorShotArrow.cpp kind:function(arm,size=0x50) addr:0x02111548 local +__sinit_ActorUnkATTG.cpp kind:function(arm,size=0x50) addr:0x02111598 local __sinit_ActorUnkNTTZ.cpp kind:function(arm,size=0x50) addr:0x021115e8 local -__sinit_ov031_02111638 kind:function(arm,size=0x24) addr:0x02111638 -__sinit_ActorUnkTGTZ.cpp kind:function(arm,size=0x64) addr:0x0211165c +__sinit_ov031_02111638 kind:function(arm,size=0x24) addr:0x02111638 local +__sinit_ActorUnkTGTZ.cpp kind:function(arm,size=0x64) addr:0x0211165c local __sinit_ActorUnkSWCH.cpp kind:function(arm,size=0x50) addr:0x021116c0 local __sinit_ActorUnkSWON.cpp kind:function(arm,size=0x50) addr:0x02111710 local __sinit_ActorUnkNORE.cpp kind:function(arm,size=0x50) addr:0x02111760 local -__sinit_ActorUnkFLEN.cpp kind:function(arm,size=0x50) addr:0x021117b0 +__sinit_ActorUnkFLEN.cpp kind:function(arm,size=0x50) addr:0x021117b0 local __sinit_ActorRollingStone.cpp kind:function(arm,size=0x50) addr:0x02111800 __sinit_ActorItemDrop.cpp kind:function(arm,size=0x138) addr:0x02111850 local __sinit_ActorUnkMLCK.cpp kind:function(arm,size=0x74) addr:0x02111988 local -__sinit_ActorUnkCLLT.cpp kind:function(arm,size=0x50) addr:0x021119fc +__sinit_ActorUnkCLLT.cpp kind:function(arm,size=0x50) addr:0x021119fc local __sinit_ActorUnkEFSB.cpp kind:function(arm,size=0x50) addr:0x02111a4c local __sinit_ActorUnkNFSP.cpp kind:function(arm,size=0x50) addr:0x02111a9c local __sinit_MapObjectDoorBase.cpp kind:function(arm,size=0x3c) addr:0x02111aec local -__sinit_MapObjectDoorDangerSpawn.cpp kind:function(arm,size=0x64) addr:0x02111b28 -__sinit_MapObjectDoorKey.cpp kind:function(arm,size=0x64) addr:0x02111b8c -__sinit_MapObjectDoorSwitch.cpp kind:function(arm,size=0x64) addr:0x02111bf0 -__sinit_MapObjectDoorClick.cpp kind:function(arm,size=0x64) addr:0x02111c54 -__sinit_MapObjectDoorTouch.cpp kind:function(arm,size=0x50) addr:0x02111cb8 -__sinit_MapObjectUnkEXIT.cpp kind:function(arm,size=0x50) addr:0x02111d08 -__sinit_MapObjectUnkGATE.cpp kind:function(arm,size=0x50) addr:0x02111d58 -__sinit_MapObjectUnkSTIR.cpp kind:function(arm,size=0x50) addr:0x02111da8 -__sinit_MapObjectGrass.cpp kind:function(arm,size=0x90) addr:0x02111df8 -__sinit_MapObjectUnkSWHT.cpp kind:function(arm,size=0x70) addr:0x02111e88 -__sinit_MapObjectBombFlower.cpp kind:function(arm,size=0x50) addr:0x02111ef8 +__sinit_MapObjectDoorDangerSpawn.cpp kind:function(arm,size=0x64) addr:0x02111b28 local +__sinit_MapObjectDoorKey.cpp kind:function(arm,size=0x64) addr:0x02111b8c local +__sinit_MapObjectDoorSwitch.cpp kind:function(arm,size=0x64) addr:0x02111bf0 local +__sinit_MapObjectDoorClick.cpp kind:function(arm,size=0x64) addr:0x02111c54 local +__sinit_MapObjectDoorTouch.cpp kind:function(arm,size=0x50) addr:0x02111cb8 local +__sinit_MapObjectUnkEXIT.cpp kind:function(arm,size=0x50) addr:0x02111d08 local +__sinit_MapObjectUnkGATE.cpp kind:function(arm,size=0x50) addr:0x02111d58 local +__sinit_MapObjectUnkSTIR.cpp kind:function(arm,size=0x50) addr:0x02111da8 local +__sinit_MapObjectGrass.cpp kind:function(arm,size=0x90) addr:0x02111df8 local +__sinit_MapObjectUnkSWHT.cpp kind:function(arm,size=0x70) addr:0x02111e88 local +__sinit_MapObjectBombFlower.cpp kind:function(arm,size=0x50) addr:0x02111ef8 local __sinit_MapObjectTreasureSpawned.cpp kind:function(arm,size=0x6c) addr:0x02111f48 local -__sinit_MapObjectChestBase.cpp kind:function(arm,size=0x30) addr:0x02111fb4 -__sinit_MapObjectUnkTRED.cpp kind:function(arm,size=0x6c) addr:0x02111fe4 -__sinit_MapObjectUnkTREW.cpp kind:function(arm,size=0x6c) addr:0x02112050 -__sinit_MapObjectUnkTREN.cpp kind:function(arm,size=0x6c) addr:0x021120bc -__sinit_MapObjectUnkTRWS.cpp kind:function(arm,size=0x50) addr:0x02112128 -__sinit_MapObjectPot.cpp kind:function(arm,size=0x50) addr:0x02112178 -__sinit_MapObjectUnkSKBN.cpp kind:function(arm,size=0x74) addr:0x021121c8 -__sinit_MapObjectUnkITFL.cpp kind:function(arm,size=0x50) addr:0x0211223c -__sinit_MapObjectUnkSKDI.cpp kind:function(arm,size=0x50) addr:0x0211228c +__sinit_MapObjectChestBase.cpp kind:function(arm,size=0x30) addr:0x02111fb4 local +__sinit_MapObjectUnkTRED.cpp kind:function(arm,size=0x6c) addr:0x02111fe4 local +__sinit_MapObjectUnkTREW.cpp kind:function(arm,size=0x6c) addr:0x02112050 local +__sinit_MapObjectUnkTREN.cpp kind:function(arm,size=0x6c) addr:0x021120bc local +__sinit_MapObjectUnkTRWS.cpp kind:function(arm,size=0x50) addr:0x02112128 local +__sinit_MapObjectPot.cpp kind:function(arm,size=0x50) addr:0x02112178 local +__sinit_MapObjectUnkSKBN.cpp kind:function(arm,size=0x74) addr:0x021121c8 local +__sinit_MapObjectUnkITFL.cpp kind:function(arm,size=0x50) addr:0x0211223c local +__sinit_MapObjectUnkSKDI.cpp kind:function(arm,size=0x50) addr:0x0211228c local __sinit_ActorUnkSKDO.cpp kind:function(arm,size=0x50) addr:0x021122dc local -__sinit_MapObjectUnkCRWL.cpp kind:function(arm,size=0x70) addr:0x0211232c -__sinit_MapObjectUnkBREX.cpp kind:function(arm,size=0x64) addr:0x0211239c -__sinit_MapObjectUnkTATZ.cpp kind:function(arm,size=0x64) addr:0x02112400 -__sinit_MapObjectUnkSTSP.cpp kind:function(arm,size=0x50) addr:0x02112464 -__sinit_MapObjectUnkBLCC.cpp kind:function(arm,size=0x5c) addr:0x021124b4 -__sinit_MapObjectUnkRLSG.cpp kind:function(arm,size=0x70) addr:0x02112510 -__sinit_MapObjectUnkSAND.cpp kind:function(arm,size=0xe0) addr:0x02112580 -__sinit_MapObjectUnkSPTB.cpp kind:function(arm,size=0x74) addr:0x02112660 -__sinit_MapObjectUnkGSST.cpp kind:function(arm,size=0x50) addr:0x021126d4 -__sinit_MapObjectUnkSWFS.cpp kind:function(arm,size=0x70) addr:0x02112724 +__sinit_MapObjectUnkCRWL.cpp kind:function(arm,size=0x70) addr:0x0211232c local +__sinit_MapObjectUnkBREX.cpp kind:function(arm,size=0x64) addr:0x0211239c local +__sinit_MapObjectUnkTATZ.cpp kind:function(arm,size=0x64) addr:0x02112400 local +__sinit_MapObjectUnkSTSP.cpp kind:function(arm,size=0x50) addr:0x02112464 local +__sinit_MapObjectUnkBLCC.cpp kind:function(arm,size=0x5c) addr:0x021124b4 local +__sinit_MapObjectUnkRLSG.cpp kind:function(arm,size=0x70) addr:0x02112510 local +__sinit_MapObjectUnkSAND.cpp kind:function(arm,size=0xe0) addr:0x02112580 local +__sinit_MapObjectUnkSPTB.cpp kind:function(arm,size=0x74) addr:0x02112660 local +__sinit_MapObjectUnkGSST.cpp kind:function(arm,size=0x50) addr:0x021126d4 local +__sinit_MapObjectUnkSWFS.cpp kind:function(arm,size=0x70) addr:0x02112724 local .p__sinit_ov031_02110fd0 kind:data(word) addr:0x02112794 .p__sinit_ov031_02110fe8 kind:data(word) addr:0x02112798 .p__sinit_ActorBomb.cpp kind:data(word) addr:0x0211279c local -.p__sinit_ActorBlast.cpp kind:data(word) addr:0x021127a0 +.p__sinit_ActorBlast.cpp kind:data(word) addr:0x021127a0 local .p__sinit_ActorUnkTLKT.cpp kind:data(word) addr:0x021127a4 local -.p__sinit_ActorItemBoomerang.cpp kind:data(word) addr:0x021127a8 -.p__sinit_ActorItemTornado.cpp kind:data(word) addr:0x021127ac -.p__sinit_ActorUnkSWBM.cpp kind:data(word) addr:0x021127b0 -.p__sinit_ActorUnkROCK.cpp kind:data(word) addr:0x021127b4 -.p__sinit_ActorRupee.cpp kind:data(word) addr:0x021127b8 -.p__sinit_ActorUnkZLSL_ZSRS.cpp kind:data(word) addr:0x021127bc -.p__sinit_ActorHeart.cpp kind:data(word) addr:0x021127c0 +.p__sinit_ActorItemBoomerang.cpp kind:data(word) addr:0x021127a8 local +.p__sinit_ActorItemTornado.cpp kind:data(word) addr:0x021127ac local +.p__sinit_ActorUnkSWBM.cpp kind:data(word) addr:0x021127b0 local +.p__sinit_ActorUnkROCK.cpp kind:data(word) addr:0x021127b4 local +.p__sinit_ActorRupee.cpp kind:data(word) addr:0x021127b8 local +.p__sinit_ActorUnkZLSL_ZSRS.cpp kind:data(word) addr:0x021127bc local +.p__sinit_ActorHeart.cpp kind:data(word) addr:0x021127c0 local .p__sinit_ActorUnkRMTG.cpp kind:data(word) addr:0x021127c4 local -.p__sinit_ActorUnkSCCN.cpp kind:data(word) addr:0x021127c8 +.p__sinit_ActorUnkSCCN.cpp kind:data(word) addr:0x021127c8 local .p__sinit_ActorPot.cpp kind:data(word) addr:0x021127cc local .p__sinit_ActorItemFlower.cpp kind:data(word) addr:0x021127d0 local -.p__sinit_ActorShotArrow.cpp kind:data(word) addr:0x021127d4 -.p__sinit_ActorUnkATTG.cpp kind:data(word) addr:0x021127d8 +.p__sinit_ActorShotArrow.cpp kind:data(word) addr:0x021127d4 local +.p__sinit_ActorUnkATTG.cpp kind:data(word) addr:0x021127d8 local .p__sinit_ActorUnkNTTZ.cpp kind:data(word) addr:0x021127dc local -.p__sinit_ov031_02111638 kind:data(word) addr:0x021127e0 -.p__sinit_ActorUnkTGTZ.cpp kind:data(word) addr:0x021127e4 +.p__sinit_ov031_02111638 kind:data(word) addr:0x021127e0 local +.p__sinit_ActorUnkTGTZ.cpp kind:data(word) addr:0x021127e4 local .p__sinit_ActorUnkSWCH.cpp kind:data(word) addr:0x021127e8 local .p__sinit_ActorUnkSWON.cpp kind:data(word) addr:0x021127ec local .p__sinit_ActorUnkNORE.cpp kind:data(word) addr:0x021127f0 local -.p__sinit_ActorUnkFLEN.cpp kind:data(word) addr:0x021127f4 -.p__sinit_ActorRollingStone.cpp kind:data(word) addr:0x021127f8 +.p__sinit_ActorUnkFLEN.cpp kind:data(word) addr:0x021127f4 local +.p__sinit_ActorRollingStone.cpp kind:data(word) addr:0x021127f8 local .p__sinit_ActorItemDrop.cpp kind:data(word) addr:0x021127fc local .p__sinit_ActorUnkMLCK.cpp kind:data(word) addr:0x02112800 local -.p__sinit_ActorUnkCLLT.cpp kind:data(word) addr:0x02112804 +.p__sinit_ActorUnkCLLT.cpp kind:data(word) addr:0x02112804 local .p__sinit_ActorUnkEFSB.cpp kind:data(word) addr:0x02112808 local .p__sinit_ActorUnkNFSP.cpp kind:data(word) addr:0x0211280c local .p__sinit_MapObjectDoorBase.cpp kind:data(word) addr:0x02112810 local -.p__sinit_MapObjectDoorDangerSpawn.cpp kind:data(word) addr:0x02112814 -.p__sinit_MapObjectDoorKey.cpp kind:data(word) addr:0x02112818 -.p__sinit_MapObjectDoorSwitch.cpp kind:data(word) addr:0x0211281c -.p__sinit_MapObjectDoorClick.cpp kind:data(word) addr:0x02112820 -.p__sinit_MapObjectDoorTouch.cpp kind:data(word) addr:0x02112824 -.p__sinit_MapObjectUnkEXIT.cpp kind:data(word) addr:0x02112828 -.p__sinit_MapObjectUnkGATE.cpp kind:data(word) addr:0x0211282c -.p__sinit_MapObjectUnkSTIR.cpp kind:data(word) addr:0x02112830 -.p__sinit_MapObjectGrass.cpp kind:data(word) addr:0x02112834 -.p__sinit_MapObjectUnkSWHT.cpp kind:data(word) addr:0x02112838 -.p__sinit_MapObjectBombFlower.cpp kind:data(word) addr:0x0211283c +.p__sinit_MapObjectDoorDangerSpawn.cpp kind:data(word) addr:0x02112814 local +.p__sinit_MapObjectDoorKey.cpp kind:data(word) addr:0x02112818 local +.p__sinit_MapObjectDoorSwitch.cpp kind:data(word) addr:0x0211281c local +.p__sinit_MapObjectDoorClick.cpp kind:data(word) addr:0x02112820 local +.p__sinit_MapObjectDoorTouch.cpp kind:data(word) addr:0x02112824 local +.p__sinit_MapObjectUnkEXIT.cpp kind:data(word) addr:0x02112828 local +.p__sinit_MapObjectUnkGATE.cpp kind:data(word) addr:0x0211282c local +.p__sinit_MapObjectUnkSTIR.cpp kind:data(word) addr:0x02112830 local +.p__sinit_MapObjectGrass.cpp kind:data(word) addr:0x02112834 local +.p__sinit_MapObjectUnkSWHT.cpp kind:data(word) addr:0x02112838 local +.p__sinit_MapObjectBombFlower.cpp kind:data(word) addr:0x0211283c local .p__sinit_MapObjectTreasureSpawned.cpp kind:data(word) addr:0x02112840 local -.p__sinit_MapObjectChestBase.cpp kind:data(word) addr:0x02112844 -.p__sinit_MapObjectUnkTRED.cpp kind:data(word) addr:0x02112848 -.p__sinit_MapObjectUnkTREW.cpp kind:data(word) addr:0x0211284c -.p__sinit_MapObjectUnkTREN.cpp kind:data(word) addr:0x02112850 -.p__sinit_MapObjectUnkTRWS.cpp kind:data(word) addr:0x02112854 -.p__sinit_MapObjectPot.cpp kind:data(word) addr:0x02112858 -.p__sinit_MapObjectUnkSKBN.cpp kind:data(word) addr:0x0211285c -.p__sinit_MapObjectUnkITFL.cpp kind:data(word) addr:0x02112860 -.p__sinit_MapObjectUnkSKDI.cpp kind:data(word) addr:0x02112864 +.p__sinit_MapObjectChestBase.cpp kind:data(word) addr:0x02112844 local +.p__sinit_MapObjectUnkTRED.cpp kind:data(word) addr:0x02112848 local +.p__sinit_MapObjectUnkTREW.cpp kind:data(word) addr:0x0211284c local +.p__sinit_MapObjectUnkTREN.cpp kind:data(word) addr:0x02112850 local +.p__sinit_MapObjectUnkTRWS.cpp kind:data(word) addr:0x02112854 local +.p__sinit_MapObjectPot.cpp kind:data(word) addr:0x02112858 local +.p__sinit_MapObjectUnkSKBN.cpp kind:data(word) addr:0x0211285c local +.p__sinit_MapObjectUnkITFL.cpp kind:data(word) addr:0x02112860 local +.p__sinit_MapObjectUnkSKDI.cpp kind:data(word) addr:0x02112864 local .p__sinit_ActorUnkSKDO.cpp kind:data(word) addr:0x02112868 local -.p__sinit_MapObjectUnkCRWL.cpp kind:data(word) addr:0x0211286c -.p__sinit_MapObjectUnkBREX.cpp kind:data(word) addr:0x02112870 -.p__sinit_MapObjectUnkTATZ.cpp kind:data(word) addr:0x02112874 -.p__sinit_MapObjectUnkSTSP.cpp kind:data(word) addr:0x02112878 -.p__sinit_MapObjectUnkBLCC.cpp kind:data(word) addr:0x0211287c -.p__sinit_MapObjectUnkRLSG.cpp kind:data(word) addr:0x02112880 -.p__sinit_MapObjectUnkSAND.cpp kind:data(word) addr:0x02112884 -.p__sinit_MapObjectUnkSPTB.cpp kind:data(word) addr:0x02112888 -.p__sinit_MapObjectUnkGSST.cpp kind:data(word) addr:0x0211288c -.p__sinit_MapObjectUnkSWFS.cpp kind:data(word) addr:0x02112890 +.p__sinit_MapObjectUnkCRWL.cpp kind:data(word) addr:0x0211286c local +.p__sinit_MapObjectUnkBREX.cpp kind:data(word) addr:0x02112870 local +.p__sinit_MapObjectUnkTATZ.cpp kind:data(word) addr:0x02112874 local +.p__sinit_MapObjectUnkSTSP.cpp kind:data(word) addr:0x02112878 local +.p__sinit_MapObjectUnkBLCC.cpp kind:data(word) addr:0x0211287c local +.p__sinit_MapObjectUnkRLSG.cpp kind:data(word) addr:0x02112880 local +.p__sinit_MapObjectUnkSAND.cpp kind:data(word) addr:0x02112884 local +.p__sinit_MapObjectUnkSPTB.cpp kind:data(word) addr:0x02112888 local +.p__sinit_MapObjectUnkGSST.cpp kind:data(word) addr:0x0211288c local +.p__sinit_MapObjectUnkSWFS.cpp kind:data(word) addr:0x02112890 local data_ov031_021128a0 kind:data(any) addr:0x021128a0 ambiguous data_ov031_021128a4 kind:data(any) addr:0x021128a4 data_ov031_021128a8 kind:data(any) addr:0x021128a8 @@ -2259,8 +2259,8 @@ _ZTV22ActorItemBoomerang_11C kind:data(any) addr:0x02112f18 _ZTV21ActorItemBoomerang_CC kind:data(any) addr:0x02112f34 _ZTV25ActorProfileItemBoomerang kind:data(any) addr:0x02112f50 _ZTV18ActorItemBoomerang kind:data(any) addr:0x02112f74 -_ZTV19data_ov031_02112fd8 kind:data(any) addr:0x02112fd0 -data_ov031_02112fdc kind:data(any) addr:0x02112fdc +_ZTV20ActorItemTornado_17C kind:data(any) addr:0x02112fd0 +data_ov031_02112fdc kind:data(any) addr:0x02112fdc local _ZTV24UnkStruct_ov031_02112ff4 kind:data(any) addr:0x02112fec _ZTV23ActorProfileItemTornado kind:data(any) addr:0x02113008 _ZTV16ActorItemTornado kind:data(any) addr:0x0211302c @@ -2520,7 +2520,7 @@ _ZGVN15ProfileInstanceI16ActorProfileBombE8sProfileE kind:bss addr:0x02116404 @10775 kind:bss addr:0x02116408 local _ZN15ProfileInstanceI16ActorProfileBombE8sProfileE kind:bss addr:0x02116414 _ZGVN15ProfileInstanceI17ActorProfileBlastE8sProfileE kind:bss addr:0x02116450 -@10781 kind:bss addr:0x02116454 +@10781 kind:bss addr:0x02116454 local _ZN15ProfileInstanceI17ActorProfileBlastE8sProfileE kind:bss addr:0x02116460 _ZGVN15ProfileInstanceI19ActorProfileUnkTLKTE8sProfileE kind:bss addr:0x0211649c @10787 kind:bss addr:0x021164a0 local diff --git a/config/eur1/arm9/overlays/ov000/relocs.txt b/config/eur1/arm9/overlays/ov000/relocs.txt index 1c594abb..7072bb56 100644 --- a/config/eur1/arm9/overlays/ov000/relocs.txt +++ b/config/eur1/arm9/overlays/ov000/relocs.txt @@ -4710,7 +4710,7 @@ from:0x020844ae kind:thumb_call to:0x02087308 module:overlay(0) from:0x02084564 kind:thumb_call_arm to:0x02085b4c module:overlay(0) from:0x02084572 kind:thumb_call_arm to:0x02085b4c module:overlay(0) from:0x02084590 kind:load to:0x020b2a90 module:overlay(0) -from:0x02084594 kind:load to:0x020b2808 module:overlay(0) +from:0x02084594 kind:load to:0x020b2800 module:overlay(0) add:0x8 from:0x02084598 kind:load to:0x020ab530 module:overlay(0) from:0x0208459c kind:load to:0x027e09a4 module:dtcm from:0x020845bc kind:thumb_call_arm to:0x0207ee1c module:overlay(0) @@ -8615,7 +8615,7 @@ from:0x020ae584 kind:load to:0x0211eb88 module:overlays(33,38) from:0x020ae588 kind:load to:0x0211ced8 module:overlay(38) from:0x020ae58c kind:load to:0x02149dec module:overlay(29) from:0x020ae590 kind:load to:0x021776ec module:overlays(89,90,91,93,94) -from:0x020ae594 kind:load to:0x020e35d4 module:overlays(20,31) +from:0x020ae594 kind:load to:0x020e35d4 module:overlay(31) from:0x020ae598 kind:load to:0x021436f0 module:overlay(70) from:0x020ae59c kind:load to:0x0216e820 module:overlay(91) from:0x020ae5a0 kind:load to:0x020e15e4 module:overlay(31) diff --git a/config/eur1/arm9/overlays/ov000/symbols.txt b/config/eur1/arm9/overlays/ov000/symbols.txt index 84908a3b..b0cf19fe 100644 --- a/config/eur1/arm9/overlays/ov000/symbols.txt +++ b/config/eur1/arm9/overlays/ov000/symbols.txt @@ -1930,7 +1930,7 @@ func_ov000_0208bbb4 kind:function(arm,size=0x10) addr:0x0208bc00 func_ov000_0208bbc4 kind:function(arm,size=0x10) addr:0x0208bc10 func_ov000_0208bbd4 kind:function(arm,size=0x2c) addr:0x0208bc20 func_ov000_0208bc00 kind:function(arm,size=0x1c) addr:0x0208bc4c -_ZN18UnkStruct_027e0ce019func_ov000_0208bc1cEiiiiPvi kind:function(arm,size=0x40) addr:0x0208bc68 +_ZN18UnkStruct_027e0ce019func_ov000_0208bc1cEiiiP8CylinderPvi kind:function(arm,size=0x40) addr:0x0208bc68 func_ov000_0208bc5c kind:function(arm,size=0x40) addr:0x0208bca8 _ZN18UnkStruct_027e0ce019func_ov000_0208bc9cEii kind:function(arm,size=0x88) addr:0x0208bce8 _ZN18UnkStruct_027e0ce019func_ov000_0208bd20Ebii kind:function(arm,size=0x10) addr:0x0208bd70 @@ -3535,7 +3535,7 @@ data_ov000_020b2758 kind:data(any) addr:0x020b2758 data_ov000_020b2784 kind:data(any) addr:0x020b2784 data_ov000_020b27b0 kind:data(any) addr:0x020b27b0 data_ov000_020b27dc kind:data(any) addr:0x020b27dc -data_ov000_020b2808 kind:data(any) addr:0x020b2808 +_ZTV24UnkStruct_ov031_Items_01 kind:data(any) addr:0x020b2800 data_ov000_020b2824 kind:data(any) addr:0x020b2824 data_ov000_020b2840 kind:data(any) addr:0x020b2840 data_ov000_020b285c kind:data(any) addr:0x020b285c diff --git a/config/eur1/arm9/overlays/ov026/relocs.txt b/config/eur1/arm9/overlays/ov026/relocs.txt index 5fcdc5ce..ce0a61fe 100644 --- a/config/eur1/arm9/overlays/ov026/relocs.txt +++ b/config/eur1/arm9/overlays/ov026/relocs.txt @@ -5730,7 +5730,7 @@ from:0x0210f304 kind:arm_call to:0x020fbddc module:overlay(26) from:0x0210f334 kind:arm_call to:0x02103290 module:overlay(26) from:0x0210f370 kind:arm_call to:0x021040c8 module:overlay(26) from:0x0210f37c kind:load to:0x021374c4 module:overlay(26) -from:0x0210f380 kind:load to:0x020b2808 module:overlay(0) +from:0x0210f380 kind:load to:0x020b2800 module:overlay(0) add:0x8 from:0x0210f418 kind:load to:0x021403a0 module:overlay(26) from:0x0210f41c kind:load to:0x02137478 module:overlay(26) from:0x0210f420 kind:load to:0x021403f0 module:overlay(26) @@ -6040,7 +6040,7 @@ from:0x02111920 kind:arm_call to:0x02098680 module:overlay(0) from:0x02111944 kind:arm_call to:0x0210148c module:overlay(26) from:0x02111950 kind:arm_call to:0x020ee658 module:overlay(26) from:0x0211195c kind:load to:0x0213796c module:overlay(26) -from:0x02111960 kind:load to:0x020b2808 module:overlay(0) +from:0x02111960 kind:load to:0x020b2800 module:overlay(0) add:0x8 from:0x02111964 kind:load to:0x02135d80 module:overlay(26) from:0x02111968 kind:load to:0x020f3d38 module:overlay(26) from:0x0211196c kind:load to:0x020f42bc module:overlay(26) @@ -7729,7 +7729,7 @@ from:0x0212242c kind:arm_call to:0x021228c4 module:overlay(26) from:0x02122444 kind:arm_call to:0x02122f0c module:overlay(26) from:0x02122460 kind:load to:0x02138600 module:overlay(26) from:0x02122464 kind:load to:0x021413e4 module:overlay(26) -from:0x0212246c kind:load to:0x020b2808 module:overlay(0) +from:0x0212246c kind:load to:0x020b2800 module:overlay(0) add:0x8 from:0x0212247c kind:arm_call to:0x0207ee1c module:overlay(0) from:0x02122484 kind:arm_call to:0x0207b6f4 module:overlay(0) from:0x0212248c kind:arm_call to:0x020a0328 module:overlay(0) @@ -7949,7 +7949,7 @@ from:0x02124004 kind:load to:0x021415b0 module:overlay(26) from:0x02124008 kind:load to:0x021387e0 module:overlay(26) from:0x0212400c kind:load to:0x02135c44 module:overlay(26) from:0x02124010 kind:load to:0x02135dac module:overlay(26) -from:0x02124018 kind:load to:0x020b2808 module:overlay(0) +from:0x02124018 kind:load to:0x020b2800 module:overlay(0) add:0x8 from:0x0212401c kind:load to:0x021415a4 module:overlay(26) from:0x02124028 kind:arm_call_thumb to:0x02057bd4 module:overlay(0) from:0x02124048 kind:arm_call to:0x021277bc module:overlay(26) @@ -8862,7 +8862,7 @@ from:0x0212bc4c kind:arm_call to:0x02101d74 module:overlay(26) from:0x0212bc58 kind:arm_call to:0x020ee658 module:overlay(26) from:0x0212bc64 kind:load to:0x02138c30 module:overlay(26) from:0x0212bc68 kind:load to:0x02138c98 module:overlay(26) -from:0x0212bc6c kind:load to:0x020b2808 module:overlay(0) +from:0x0212bc6c kind:load to:0x020b2800 module:overlay(0) add:0x8 from:0x0212bc70 kind:load to:0x02135d80 module:overlay(26) from:0x0212bc74 kind:load to:0x020f3d38 module:overlay(26) from:0x0212bc78 kind:load to:0x020f42bc module:overlay(26) diff --git a/config/eur1/arm9/overlays/ov027/relocs.txt b/config/eur1/arm9/overlays/ov027/relocs.txt index 4fb9f183..e37a1e92 100644 --- a/config/eur1/arm9/overlays/ov027/relocs.txt +++ b/config/eur1/arm9/overlays/ov027/relocs.txt @@ -583,7 +583,7 @@ from:0x02145424 kind:arm_call to:0x0210265c module:overlay(26) from:0x02145440 kind:arm_call to:0x0210148c module:overlay(26) from:0x0214544c kind:arm_call to:0x020ee658 module:overlay(26) from:0x02145458 kind:load to:0x02148ea8 module:overlay(27) -from:0x0214545c kind:load to:0x020b2808 module:overlay(0) +from:0x0214545c kind:load to:0x020b2800 module:overlay(0) add:0x8 from:0x02145460 kind:load to:0x02148520 module:overlay(27) from:0x02145464 kind:load to:0x021454b8 module:overlay(27) from:0x02145468 kind:load to:0x02145478 module:overlay(27) diff --git a/config/eur1/arm9/overlays/ov030/relocs.txt b/config/eur1/arm9/overlays/ov030/relocs.txt index 0b829349..02ce9a79 100644 --- a/config/eur1/arm9/overlays/ov030/relocs.txt +++ b/config/eur1/arm9/overlays/ov030/relocs.txt @@ -1415,7 +1415,7 @@ from:0x0214dfac kind:arm_call to:0x02098680 module:overlay(0) from:0x0214dfd0 kind:arm_call to:0x0210148c module:overlay(26) from:0x0214dfdc kind:arm_call to:0x020ee658 module:overlay(26) from:0x0214dfe8 kind:load to:0x02151e1c module:overlay(30) -from:0x0214dfec kind:load to:0x020b2808 module:overlay(0) +from:0x0214dfec kind:load to:0x020b2800 module:overlay(0) add:0x8 from:0x0214dff0 kind:load to:0x0215116c module:overlay(30) from:0x0214dff4 kind:load to:0x0214e048 module:overlay(30) from:0x0214dff8 kind:load to:0x0214e008 module:overlay(30) diff --git a/config/eur1/arm9/overlays/ov031/delinks.txt b/config/eur1/arm9/overlays/ov031/delinks.txt index c4eeed4a..e2930afc 100644 --- a/config/eur1/arm9/overlays/ov031/delinks.txt +++ b/config/eur1/arm9/overlays/ov031/delinks.txt @@ -18,6 +18,7 @@ src/031_Land/Actor/ActorBomb.cpp: .rodata start:0x02110b2c end:0x02110bb0 src/031_Land/Actor/ActorBlast.cpp: + complete .text start:0x020e35d4 end:0x020e3dc4 .init start:0x02111178 end:0x021111c8 .ctor start:0x021128d0 end:0x021128d4 @@ -40,11 +41,12 @@ src/031_Land/Actor/ActorItemBoomerang.cpp: .bss start:0x02116628 end:0x02116674 src/031_Land/Actor/ActorItemTornado.cpp: - .text start:0x020e59e8 end:0x020e65f8 + .text start:0x020e587c end:0x020e65f8 .init start:0x02111268 end:0x021112dc .ctor start:0x021128dc end:0x021128e0 - .data start:0x0211312c end:0x021131c8 + .data start:0x02113110 end:0x021131c8 .bss start:0x02116674 end:0x021166c0 + .rodata start:0x02110bb8 end:0x02110bc8 src/031_Land/Actor/ActorUnkSWBM.cpp: .text start:0x020e69f8 end:0x020e7498 diff --git a/config/eur1/arm9/overlays/ov031/relocs.txt b/config/eur1/arm9/overlays/ov031/relocs.txt index b9857c71..be6e670f 100644 --- a/config/eur1/arm9/overlays/ov031/relocs.txt +++ b/config/eur1/arm9/overlays/ov031/relocs.txt @@ -1145,8 +1145,8 @@ from:0x020e37c0 kind:arm_call to:0x0207c03c module:overlay(0) from:0x020e37d4 kind:load to:0x027e0ce4 module:dtcm from:0x020e37d8 kind:load to:0x027e0ce8 module:dtcm from:0x020e37e8 kind:arm_call to:0x020983dc module:overlay(0) -from:0x020e3850 kind:load to:0x02112ecc module:overlay(31) -from:0x020e3854 kind:load to:0x020b2808 module:overlay(0) +from:0x020e3850 kind:load to:0x02112ec4 module:overlay(31) add:0x8 +from:0x020e3854 kind:load to:0x020b2800 module:overlay(0) add:0x8 from:0x020e3858 kind:load to:0x02112e84 add:0x8 module:overlay(31) from:0x020e3864 kind:arm_call to:0x0207c030 module:overlay(0) from:0x020e38ac kind:arm_call to:0x01ffb6e4 module:itcm @@ -1444,17 +1444,17 @@ from:0x020e5bb0 kind:arm_call to:0x02057ee0 module:overlay(0) from:0x020e5bec kind:arm_call to:0x0203d160 module:main from:0x020e5bf8 kind:arm_call to:0x02057c98 module:overlay(0) from:0x020e5c04 kind:arm_call to:0x02057c98 module:overlay(0) -from:0x020e5c20 kind:load to:0x02113174 module:overlay(31) +from:0x020e5c20 kind:load to:0x0211316c module:overlay(31) add:0x8 from:0x020e5c24 kind:load to:0x02110bb8 module:overlay(31) from:0x020e5c28 kind:load to:0x027e0ce0 module:dtcm from:0x020e5c2c kind:load to:0x0211312c add:0x8 module:overlay(31) from:0x020e5c30 kind:load to:0x02113110 add:0x8 module:overlay(31) -from:0x020e5c34 kind:load to:0x020b2808 module:overlay(0) +from:0x020e5c34 kind:load to:0x020b2800 module:overlay(0) add:0x8 from:0x020e5c38 kind:load to:0x020a0328 module:overlay(0) from:0x020e5c3c kind:load to:0x020e5824 module:overlay(31) from:0x020e5c48 kind:arm_call to:0x0207c030 module:overlay(0) from:0x020e5d14 kind:load to:0x0203e964 module:main -from:0x020e5d18 kind:load to:0x02113114 add:0x8 module:overlay(31) +from:0x020e5d18 kind:load to:0x0211311c module:overlay(31) from:0x020e5d78 kind:arm_call to:0x020a0128 module:overlay(0) from:0x020e5d94 kind:arm_call to:0x02071b64 module:overlay(0) from:0x020e5dac kind:arm_call to:0x020a0388 module:overlay(0) @@ -6357,7 +6357,7 @@ from:0x02111260 kind:load to:0x020e5868 module:overlay(31) from:0x02111264 kind:load to:0x0211662c module:overlay(31) from:0x021112a0 kind:arm_call to:0x020e5a18 module:overlay(31) from:0x021112b0 kind:arm_call to:0x0203ce74 module:main -from:0x021112c4 kind:load to:0x02113114 add:0x8 module:overlay(31) +from:0x021112c4 kind:load to:0x0211311c module:overlay(31) from:0x021112cc kind:load to:0x02116674 module:overlay(31) from:0x021112d0 kind:load to:0x02116684 module:overlay(31) from:0x021112d4 kind:load to:0x020e65e4 module:overlay(31) diff --git a/config/eur1/arm9/overlays/ov031/symbols.txt b/config/eur1/arm9/overlays/ov031/symbols.txt index 04c1f551..259f8e12 100644 --- a/config/eur1/arm9/overlays/ov031/symbols.txt +++ b/config/eur1/arm9/overlays/ov031/symbols.txt @@ -450,8 +450,8 @@ _ZN21ActorItemBoomerang_A0D0Ev kind:function(arm,size=0x1c) addr:0x020e5830 _ZN21ActorItemBoomerang_CCD0Ev kind:function(arm,size=0x1c) addr:0x020e584c _ZN25ActorProfileItemBoomerangD1Ev kind:function(arm,size=0x14) addr:0x020e5868 _ZN24UnkStruct_ov031_02112ff48vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0x28) addr:0x020e587c -_ZN24UnkStruct_ov031_02112ff48vfunc_0CEPK24UnkStruct_ov031_020e54d4i kind:function(arm,size=0x114) addr:0x020e58a4 -func_ov031_020e5898 kind:function(arm,size=0x30) addr:0x020e59b8 +_ZN24UnkStruct_ov031_02112ff48vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x114) addr:0x020e58a4 +_ZN20ActorItemTornado_17C8vfunc_00Eii kind:function(arm,size=0x30) addr:0x020e59b8 _ZN23ActorProfileItemTornado10GetProfileEv kind:function(arm,size=0xc) addr:0x020e59e8 _ZN23ActorProfileItemTornado6CreateEv kind:function(arm,size=0x24) addr:0x020e59f4 _ZN23ActorProfileItemTornadoC1Ev kind:function(arm,size=0x44) addr:0x020e5a18 @@ -465,7 +465,7 @@ _ZN16ActorItemTornado8vfunc_24Ev kind:function(arm,size=0x44) addr:0x020e6278 _ZN16ActorItemTornado8vfunc_2CEP14Actor_vfunc_30 kind:function(arm,size=0x124) addr:0x020e62bc _ZN16ActorItemTornado19func_ov031_020e62c0Ev kind:function(arm,size=0x54) addr:0x020e63e0 _ZN16ActorItemTornado19func_ov031_020e6314Et kind:function(arm,size=0x2c) addr:0x020e6434 -_ZN16ActorItemTornado19func_ov031_020e6340EP7VecFx32ss kind:function(arm,size=0x58) addr:0x020e6460 +_ZN16ActorItemTornado19func_ov031_020e6340EPK7VecFx32ss kind:function(arm,size=0x58) addr:0x020e6460 _ZN16ActorItemTornado19func_ov031_020e6398Ev kind:function(arm,size=0x78) addr:0x020e64b8 _ZN24UnkStruct_ov031_02112ff4D0Ev kind:function(arm,size=0x1c) addr:0x020e6530 _ZN16ActorItemTornadoD1Ev kind:function(arm,size=0x48) addr:0x020e654c @@ -2002,7 +2002,7 @@ data_ov031_02110a10 kind:data(byte[0x18]) addr:0x02110b40 local data_ov031_02110a28 kind:data(byte[0x18]) addr:0x02110b58 local data_ov031_02110a40 kind:data(any) addr:0x02110b70 local data_ov031_02110bb0 kind:data(any) addr:0x02110bb0 -data_ov031_02110bb8 kind:data(any) addr:0x02110bb8 +@8898 kind:data(byte[0xb]) addr:0x02110bb8 local data_ov031_02110bc8_eur1 kind:data(any) addr:0x02110bc8 data_ov031_02110bcc kind:data(any) addr:0x02110bcc data_ov031_02110bd0 kind:data(any) addr:0x02110bd0 @@ -2252,7 +2252,7 @@ _ZTV16ActorProfileBomb kind:data(any) addr:0x02112e04 _ZTV9ActorBomb kind:data(any) addr:0x02112e28 _ZTV13ActorBlast_E8 kind:data(any) addr:0x02112e84 _ZTV17ActorProfileBlast kind:data(any) addr:0x02112ea0 -data_ov031_02112ecc kind:data(any) addr:0x02112ecc +_ZTV10ActorBlast kind:data(any) addr:0x02112ec4 _ZTV19data_ov031_02112de0 kind:data(any) addr:0x02112f20 _ZTV19ActorProfileUnkTLKT kind:data(any) addr:0x02112f8c _ZTV12ActorUnkTLKT kind:data(any) addr:0x02112fb0 @@ -2261,11 +2261,11 @@ _ZTV22ActorItemBoomerang_11C kind:data(any) addr:0x02113058 _ZTV21ActorItemBoomerang_CC kind:data(any) addr:0x02113074 _ZTV25ActorProfileItemBoomerang kind:data(any) addr:0x02113090 data_ov031_021130bc kind:data(any) addr:0x021130bc -_ZTV19data_ov031_02112fd8 kind:data(any) addr:0x02113110 -_ZTV24UnkStruct_ov031_02112ff4 kind:data(any) addr:0x02113114 -_ZTV23ActorProfileItemTornado kind:data(any) addr:0x0211312c -_ZTV16ActorItemTornado kind:data(any) addr:0x02113148 -data_ov031_02113174 kind:data(any) addr:0x02113174 +_ZTV20ActorItemTornado_17C kind:data(any) addr:0x02113110 +data_ov031_02112fdc kind:data(any) addr:0x0211311c local +_ZTV24UnkStruct_ov031_02112ff4 kind:data(any) addr:0x0211312c +_ZTV23ActorProfileItemTornado kind:data(any) addr:0x02113148 +_ZTV16ActorItemTornado kind:data(any) addr:0x0211316c _ZTV19data_ov031_021130a4 kind:data(any) addr:0x021131c8 data_ov031_021131ec kind:data(any) addr:0x021131ec _ZTV19data_ov031_02113250 kind:data(any) addr:0x02113248 diff --git a/config/eur1/arm9/overlays/ov043/relocs.txt b/config/eur1/arm9/overlays/ov043/relocs.txt index 28d09276..687fc78e 100644 --- a/config/eur1/arm9/overlays/ov043/relocs.txt +++ b/config/eur1/arm9/overlays/ov043/relocs.txt @@ -381,7 +381,7 @@ from:0x02126be0 kind:load to:0x0212d390 module:overlay(43) from:0x02126be4 kind:load to:0x0212dde0 module:overlay(43) from:0x02126be8 kind:load to:0x0212d344 module:overlay(43) from:0x02126bec kind:load to:0x0212d2fc module:overlay(43) -from:0x02126bf0 kind:load to:0x020b2808 module:overlay(0) +from:0x02126bf0 kind:load to:0x020b2800 module:overlay(0) add:0x8 from:0x02126bf4 kind:load to:0x027e07d4 module:dtcm from:0x02126bfc kind:load to:0x0212d2b8 module:overlay(43) from:0x02126c08 kind:arm_call_thumb to:0x0209a29c module:overlay(0) diff --git a/config/eur1/arm9/overlays/ov048/relocs.txt b/config/eur1/arm9/overlays/ov048/relocs.txt index 32979863..3708cb72 100644 --- a/config/eur1/arm9/overlays/ov048/relocs.txt +++ b/config/eur1/arm9/overlays/ov048/relocs.txt @@ -10,7 +10,7 @@ from:0x02130748 kind:arm_call to:0x020983dc module:overlay(0) from:0x0213076c kind:arm_call to:0x0207ede0 module:overlay(0) from:0x021307a4 kind:arm_call to:0x020982fc module:overlay(0) from:0x021307dc kind:load to:0x02137740 module:overlay(48) -from:0x021307e0 kind:load to:0x020b2808 module:overlay(0) +from:0x021307e0 kind:load to:0x020b2800 module:overlay(0) add:0x8 from:0x021307e4 kind:load to:0x02137724 module:overlay(48) from:0x021307f0 kind:arm_call to:0x0207c030 module:overlay(0) from:0x02130808 kind:arm_call to:0x0207c030 module:overlay(0) @@ -256,7 +256,7 @@ from:0x021323c0 kind:load to:0x02137db0 module:overlay(48) from:0x021323c4 kind:load to:0x0213785c module:overlay(48) from:0x021323cc kind:load to:0x02131140 module:overlay(48) from:0x021323d0 kind:load to:0x02132200 module:overlay(48) -from:0x021323d4 kind:load to:0x020b2808 module:overlay(0) +from:0x021323d4 kind:load to:0x020b2800 module:overlay(0) add:0x8 from:0x021323f8 kind:arm_call to:0x020a0388 module:overlay(0) from:0x02132414 kind:arm_call to:0x0207e288 module:overlay(0) from:0x0213241c kind:arm_call to:0x0207b6f4 module:overlay(0) diff --git a/config/eur1/arm9/overlays/ov052/relocs.txt b/config/eur1/arm9/overlays/ov052/relocs.txt index 6e800b7e..e0add074 100644 --- a/config/eur1/arm9/overlays/ov052/relocs.txt +++ b/config/eur1/arm9/overlays/ov052/relocs.txt @@ -319,7 +319,7 @@ from:0x02133620 kind:load to:0x02136330 module:overlay(52) from:0x02133624 kind:load to:0x02136980 module:overlay(52) from:0x02133628 kind:load to:0x021362e4 module:overlay(52) from:0x0213362c kind:load to:0x0213629c module:overlay(52) -from:0x02133630 kind:load to:0x020b2808 module:overlay(0) +from:0x02133630 kind:load to:0x020b2800 module:overlay(0) add:0x8 from:0x02133634 kind:load to:0x027e07d4 module:dtcm from:0x0213363c kind:load to:0x02136258 module:overlay(52) from:0x02133648 kind:arm_call_thumb to:0x0209a29c module:overlay(0) diff --git a/config/eur1/arm9/overlays/ov059/relocs.txt b/config/eur1/arm9/overlays/ov059/relocs.txt index ccf7667d..f914f77f 100644 --- a/config/eur1/arm9/overlays/ov059/relocs.txt +++ b/config/eur1/arm9/overlays/ov059/relocs.txt @@ -522,7 +522,7 @@ from:0x0215c8fc kind:load to:0x02163974 module:overlay(59) from:0x0215c900 kind:load to:0x021645bc module:overlay(59) from:0x0215c904 kind:load to:0x021638c8 module:overlay(59) from:0x0215c908 kind:load to:0x02163634 module:overlay(59) -from:0x0215c90c kind:load to:0x020b2808 module:overlay(0) +from:0x0215c90c kind:load to:0x020b2800 module:overlay(0) add:0x8 from:0x0215c910 kind:load to:0x021645b0 module:overlay(59) from:0x0215c91c kind:arm_call_thumb to:0x02057bd4 module:overlay(0) from:0x0215c948 kind:arm_call to:0x02057c38 module:overlay(0) @@ -1018,7 +1018,7 @@ from:0x02160fa0 kind:load to:0x02163d04 module:overlay(59) from:0x02160fac kind:arm_call to:0x020983dc module:overlay(0) from:0x02161044 kind:arm_call_thumb to:0x02057a24 module:overlay(0) from:0x02161074 kind:load to:0x02163d78 module:overlay(59) -from:0x02161078 kind:load to:0x020b2808 module:overlay(0) +from:0x02161078 kind:load to:0x020b2800 module:overlay(0) add:0x8 from:0x0216107c kind:load to:0x02164798 module:overlay(59) from:0x021610a8 kind:arm_call to:0x021610b4 module:overlay(59) from:0x021610ec kind:load to:0x02163d20 module:overlay(59) diff --git a/config/eur1/arm9/overlays/ov068/relocs.txt b/config/eur1/arm9/overlays/ov068/relocs.txt index 48c25148..b32e50fc 100644 --- a/config/eur1/arm9/overlays/ov068/relocs.txt +++ b/config/eur1/arm9/overlays/ov068/relocs.txt @@ -829,7 +829,7 @@ from:0x0215ee58 kind:load to:0x02163568 module:overlay(68) from:0x0215ee5c kind:load to:0x021645ec module:overlay(68) from:0x0215ee60 kind:load to:0x021634dc module:overlay(68) from:0x0215ee64 kind:load to:0x02162a2c module:overlay(68) -from:0x0215ee68 kind:load to:0x020b2808 module:overlay(0) +from:0x0215ee68 kind:load to:0x020b2800 module:overlay(0) add:0x8 from:0x0215ee74 kind:arm_call_thumb to:0x02057bd4 module:overlay(0) from:0x0215ee9c kind:arm_call to:0x02057c38 module:overlay(0) from:0x0215eeac kind:arm_call to:0x0209a80c module:overlay(0) diff --git a/config/eur1/arm9/overlays/ov070/relocs.txt b/config/eur1/arm9/overlays/ov070/relocs.txt index 3900d589..6336f582 100644 --- a/config/eur1/arm9/overlays/ov070/relocs.txt +++ b/config/eur1/arm9/overlays/ov070/relocs.txt @@ -1092,7 +1092,7 @@ from:0x021480a0 kind:arm_call to:0x020982fc module:overlay(0) from:0x02148108 kind:arm_call to:0x02098680 module:overlay(0) from:0x02148120 kind:load to:0x0214f4b4 module:overlay(70) from:0x02148124 kind:load to:0x02150724 module:overlay(70) -from:0x02148128 kind:load to:0x020b2808 module:overlay(0) +from:0x02148128 kind:load to:0x020b2800 module:overlay(0) add:0x8 from:0x0214812c kind:load to:0x0214f3f4 module:overlay(70) from:0x02148138 kind:arm_call to:0x0207c030 module:overlay(0) from:0x02148180 kind:arm_call to:0x021483ec module:overlay(70) diff --git a/config/eur1/arm9/overlays/ov071/relocs.txt b/config/eur1/arm9/overlays/ov071/relocs.txt index ced30686..febab823 100644 --- a/config/eur1/arm9/overlays/ov071/relocs.txt +++ b/config/eur1/arm9/overlays/ov071/relocs.txt @@ -1216,7 +1216,7 @@ from:0x0215c618 kind:load to:0x02163d94 module:overlay(71) from:0x0215c61c kind:load to:0x02163da4 module:overlay(71) from:0x0215c620 kind:load to:0x021647d4 module:overlay(71) from:0x0215c624 kind:load to:0x02163db4 module:overlay(71) -from:0x0215c628 kind:load to:0x020b2808 module:overlay(0) +from:0x0215c628 kind:load to:0x020b2800 module:overlay(0) add:0x8 from:0x0215c62c kind:load to:0x02163dc4 module:overlay(71) from:0x0215c630 kind:load to:0x021652b4 module:overlay(71) from:0x0215c634 kind:load to:0x02163d4c module:overlay(71) diff --git a/config/eur1/arm9/overlays/ov075/relocs.txt b/config/eur1/arm9/overlays/ov075/relocs.txt index c8051bb3..a57f4d1a 100644 --- a/config/eur1/arm9/overlays/ov075/relocs.txt +++ b/config/eur1/arm9/overlays/ov075/relocs.txt @@ -1479,7 +1479,7 @@ from:0x0215e790 kind:arm_call to:0x0215fbdc module:overlay(75) from:0x0215e7a0 kind:load to:0x02163350 module:overlay(75) from:0x0215e7a4 kind:load to:0x02163734 module:overlay(75) from:0x0215e7a8 kind:load to:0x02163308 module:overlay(75) -from:0x0215e7ac kind:load to:0x020b2808 module:overlay(0) +from:0x0215e7ac kind:load to:0x020b2800 module:overlay(0) add:0x8 from:0x0215e7b0 kind:load to:0x02163728 module:overlay(75) from:0x0215e7b8 kind:load to:0x027e0130 module:dtcm from:0x0215e7bc kind:load to:0x027e07d4 module:dtcm diff --git a/config/eur1/arm9/overlays/ov087/relocs.txt b/config/eur1/arm9/overlays/ov087/relocs.txt index f2796d24..433a64aa 100644 --- a/config/eur1/arm9/overlays/ov087/relocs.txt +++ b/config/eur1/arm9/overlays/ov087/relocs.txt @@ -688,7 +688,7 @@ from:0x0215b520 kind:arm_call_thumb to:0x0205778c module:overlay(0) from:0x0215b534 kind:arm_call to:0x02097c0c module:overlay(0) from:0x0215b580 kind:arm_call to:0x01ffa06c module:itcm from:0x0215b59c kind:load to:0x021627a8 module:overlay(87) -from:0x0215b5a0 kind:load to:0x020b2808 module:overlay(0) +from:0x0215b5a0 kind:load to:0x020b2800 module:overlay(0) add:0x8 from:0x0215b5a4 kind:load to:0x02162d98 module:overlay(87) from:0x0215b5a8 kind:load to:0x0216275c module:overlay(87) from:0x0215b5ac kind:load to:0x021623a8 module:overlay(87) diff --git a/config/eur1/arm9/overlays/ov091/relocs.txt b/config/eur1/arm9/overlays/ov091/relocs.txt index 979b28fe..42145528 100644 --- a/config/eur1/arm9/overlays/ov091/relocs.txt +++ b/config/eur1/arm9/overlays/ov091/relocs.txt @@ -978,7 +978,7 @@ from:0x0216dd3c kind:arm_call to:0x021040c8 module:overlay(26) from:0x0216dd4c kind:load to:0x02177bb8 module:overlay(91) from:0x0216dd50 kind:load to:0x02178d00 module:overlay(91) from:0x0216dd54 kind:load to:0x02177b6c module:overlay(91) -from:0x0216dd58 kind:load to:0x020b2808 module:overlay(0) +from:0x0216dd58 kind:load to:0x020b2800 module:overlay(0) add:0x8 from:0x0216dd64 kind:arm_call_thumb to:0x0209a29c module:overlay(0) from:0x0216de04 kind:load to:0x02178cdc module:overlay(91) from:0x0216de08 kind:load to:0x02177b20 module:overlay(91) @@ -1752,7 +1752,7 @@ from:0x02175fdc kind:arm_call to:0x01ffa06c module:itcm from:0x02175fe8 kind:load to:0x021781a4 module:overlay(91) from:0x02175fec kind:load to:0x02179054 module:overlay(91) from:0x02175ff0 kind:load to:0x020b19a0 add:0x8 module:overlay(0) -from:0x02175ff4 kind:load to:0x020b2808 module:overlay(0) +from:0x02175ff4 kind:load to:0x020b2800 module:overlay(0) add:0x8 from:0x02176030 kind:arm_call to:0x021315e0 module:overlay(26) from:0x02176048 kind:arm_call to:0x021315e0 module:overlay(26) from:0x0217605c kind:arm_call to:0x01ffb714 module:itcm diff --git a/config/eur1/arm9/overlays/ov092/relocs.txt b/config/eur1/arm9/overlays/ov092/relocs.txt index a71b0fbe..560c8ce5 100644 --- a/config/eur1/arm9/overlays/ov092/relocs.txt +++ b/config/eur1/arm9/overlays/ov092/relocs.txt @@ -2092,7 +2092,7 @@ from:0x02178eb4 kind:arm_call to:0x020fbddc module:overlay(26) from:0x02178ee4 kind:arm_call to:0x02103290 module:overlay(26) from:0x02178f20 kind:arm_call to:0x021040c8 module:overlay(26) from:0x02178f2c kind:load to:0x0217d0f0 module:overlay(92) -from:0x02178f30 kind:load to:0x020b2808 module:overlay(0) +from:0x02178f30 kind:load to:0x020b2800 module:overlay(0) add:0x8 from:0x02178fc8 kind:load to:0x0217e224 module:overlay(92) from:0x02178fcc kind:load to:0x0217d0a4 module:overlay(92) from:0x02178fd0 kind:load to:0x0217e274 module:overlay(92) diff --git a/config/eur1/arm9/overlays/ov094/relocs.txt b/config/eur1/arm9/overlays/ov094/relocs.txt index da0866bb..77e8c8cf 100644 --- a/config/eur1/arm9/overlays/ov094/relocs.txt +++ b/config/eur1/arm9/overlays/ov094/relocs.txt @@ -1178,7 +1178,7 @@ from:0x0216fcc0 kind:arm_call to:0x020fbddc module:overlay(26) from:0x0216fcf0 kind:arm_call to:0x02103290 module:overlay(26) from:0x0216fd2c kind:arm_call to:0x021040c8 module:overlay(26) from:0x0216fd38 kind:load to:0x02177fac module:overlay(94) -from:0x0216fd3c kind:load to:0x020b2808 module:overlay(0) +from:0x0216fd3c kind:load to:0x020b2800 module:overlay(0) add:0x8 from:0x0216fd48 kind:arm_call_thumb to:0x0209a29c module:overlay(0) from:0x0216fde8 kind:load to:0x02179104 module:overlay(94) from:0x0216fdec kind:load to:0x02177f60 module:overlay(94) diff --git a/config/eur1/arm9/overlays/ov096/relocs.txt b/config/eur1/arm9/overlays/ov096/relocs.txt index a2516273..34caca8c 100644 --- a/config/eur1/arm9/overlays/ov096/relocs.txt +++ b/config/eur1/arm9/overlays/ov096/relocs.txt @@ -188,7 +188,7 @@ from:0x0217b2fc kind:load to:0x0217e278 module:overlay(96) from:0x0217b300 kind:load to:0x0217e514 module:overlay(96) from:0x0217b304 kind:load to:0x0217e200 module:overlay(96) from:0x0217b308 kind:load to:0x0217e22c module:overlay(96) -from:0x0217b30c kind:load to:0x020b2808 module:overlay(0) +from:0x0217b30c kind:load to:0x020b2800 module:overlay(0) add:0x8 from:0x0217b318 kind:arm_call_thumb to:0x02057bd4 module:overlay(0) from:0x0217b32c kind:arm_call_thumb to:0x0209a29c module:overlay(0) from:0x0217b340 kind:arm_call to:0x0207c030 module:overlay(0) diff --git a/config/jp/arm9/overlays/ov000/symbols.txt b/config/jp/arm9/overlays/ov000/symbols.txt index 6f08ba46..6c7fa46c 100644 --- a/config/jp/arm9/overlays/ov000/symbols.txt +++ b/config/jp/arm9/overlays/ov000/symbols.txt @@ -1931,7 +1931,7 @@ func_ov000_0208bbb4 kind:function(arm,size=0x10) addr:0x0208d288 func_ov000_0208bbc4 kind:function(arm,size=0x10) addr:0x0208d298 func_ov000_0208bbd4 kind:function(arm,size=0x2c) addr:0x0208d2a8 func_ov000_0208bc00 kind:function(arm,size=0x1c) addr:0x0208d2d4 -_ZN18UnkStruct_027e0ce019func_ov000_0208bc1cEiiiiPvi kind:function(arm,size=0x40) addr:0x0208d2f0 +_ZN18UnkStruct_027e0ce019func_ov000_0208bc1cEiiiP8CylinderPvi kind:function(arm,size=0x40) addr:0x0208d2f0 func_ov000_0208bc5c kind:function(arm,size=0x40) addr:0x0208d330 _ZN18UnkStruct_027e0ce019func_ov000_0208bc9cEii kind:function(arm,size=0x88) addr:0x0208d370 _ZN18UnkStruct_027e0ce019func_ov000_0208bd20Ebii kind:function(arm,size=0x10) addr:0x0208d3f8 diff --git a/config/jp/arm9/overlays/ov031/delinks.txt b/config/jp/arm9/overlays/ov031/delinks.txt index 643ca507..ab48bab3 100644 --- a/config/jp/arm9/overlays/ov031/delinks.txt +++ b/config/jp/arm9/overlays/ov031/delinks.txt @@ -18,6 +18,7 @@ src/031_Land/Actor/ActorBomb.cpp: .rodata start:0x0211276c end:0x021127f0 src/031_Land/Actor/ActorBlast.cpp: + complete .text start:0x020e4ea0 end:0x020e5690 .init start:0x02112db8 end:0x02112e08 .ctor start:0x0211452c end:0x02114530 @@ -40,11 +41,12 @@ src/031_Land/Actor/ActorItemBoomerang.cpp: .bss start:0x02118288 end:0x021182d4 src/031_Land/Actor/ActorItemTornado.cpp: - .text start:0x020e72b4 end:0x020e7ec4 + .text start:0x020e7148 end:0x020e7ec4 .init start:0x02112ea8 end:0x02112f1c .ctor start:0x02114538 end:0x0211453c .data start:0x02114d70 end:0x02114e28 .bss start:0x021182d4 end:0x02118320 + .rodata start:0x021127f8 end:0x02112808 src/031_Land/Actor/ActorUnkSWBM.cpp: .text start:0x020e82c4 end:0x020e8d64 diff --git a/config/jp/arm9/overlays/ov031/relocs.txt b/config/jp/arm9/overlays/ov031/relocs.txt index f5018382..303cc445 100644 --- a/config/jp/arm9/overlays/ov031/relocs.txt +++ b/config/jp/arm9/overlays/ov031/relocs.txt @@ -1448,7 +1448,7 @@ from:0x020e74d0 kind:arm_call to:0x02059218 module:overlay(0) from:0x020e74ec kind:load to:0x02114dcc add:0x8 module:overlay(31) from:0x020e74f0 kind:load to:0x021127f8 module:overlay(31) from:0x020e74f4 kind:load to:0x027e0ce0 module:dtcm -from:0x020e74f8 kind:load to:0x02114d94 module:overlay(31) +from:0x020e74f8 kind:load to:0x02114d8c module:overlay(31) add:0x8 from:0x020e74fc kind:load to:0x02114d70 add:0x8 module:overlay(31) from:0x020e7500 kind:load to:0x020b3fc0 add:0x8 module:overlay(0) from:0x020e7504 kind:load to:0x020a1aac module:overlay(0) diff --git a/config/jp/arm9/overlays/ov031/symbols.txt b/config/jp/arm9/overlays/ov031/symbols.txt index e8ce6b0a..f0fcc113 100644 --- a/config/jp/arm9/overlays/ov031/symbols.txt +++ b/config/jp/arm9/overlays/ov031/symbols.txt @@ -449,9 +449,9 @@ _ZN26ActorItemBoomerang_Unknown19func_ov031_020e5704Ev kind:function(arm,size=0x _ZN21ActorItemBoomerang_A0D0Ev kind:function(arm,size=0x1c) addr:0x020e70fc _ZN21ActorItemBoomerang_CCD0Ev kind:function(arm,size=0x1c) addr:0x020e7118 _ZN25ActorProfileItemBoomerangD1Ev kind:function(arm,size=0x14) addr:0x020e7134 -func_ov031_020e7148 kind:function(arm,size=0x28) addr:0x020e7148 -func_ov031_020e7170 kind:function(arm,size=0x114) addr:0x020e7170 -func_ov031_020e7284 kind:function(arm,size=0x30) addr:0x020e7284 +_ZN24UnkStruct_ov031_02112ff48vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0x28) addr:0x020e7148 +_ZN24UnkStruct_ov031_02112ff48vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x114) addr:0x020e7170 +_ZN20ActorItemTornado_17C8vfunc_00Eii kind:function(arm,size=0x30) addr:0x020e7284 _ZN23ActorProfileItemTornado10GetProfileEv kind:function(arm,size=0xc) addr:0x020e72b4 _ZN23ActorProfileItemTornado6CreateEv kind:function(arm,size=0x24) addr:0x020e72c0 _ZN23ActorProfileItemTornadoC1Ev kind:function(arm,size=0x44) addr:0x020e72e4 @@ -465,7 +465,7 @@ _ZN16ActorItemTornado8vfunc_24Ev kind:function(arm,size=0x44) addr:0x020e7b44 _ZN16ActorItemTornado8vfunc_2CEP14Actor_vfunc_30 kind:function(arm,size=0x124) addr:0x020e7b88 _ZN16ActorItemTornado19func_ov031_020e62c0Ev kind:function(arm,size=0x54) addr:0x020e7cac _ZN16ActorItemTornado19func_ov031_020e6314Et kind:function(arm,size=0x2c) addr:0x020e7d00 -_ZN16ActorItemTornado19func_ov031_020e6340EP7VecFx32ss kind:function(arm,size=0x58) addr:0x020e7d2c +_ZN16ActorItemTornado19func_ov031_020e6340EPK7VecFx32ss kind:function(arm,size=0x58) addr:0x020e7d2c _ZN16ActorItemTornado19func_ov031_020e6398Ev kind:function(arm,size=0x78) addr:0x020e7d84 _ZN24UnkStruct_ov031_02112ff4D0Ev kind:function(arm,size=0x1c) addr:0x020e7dfc _ZN16ActorItemTornadoD1Ev kind:function(arm,size=0x48) addr:0x020e7e18 @@ -2002,7 +2002,7 @@ data_ov031_02110a10 kind:data(byte[0x18]) addr:0x02112780 local data_ov031_02110a28 kind:data(byte[0x18]) addr:0x02112798 local data_ov031_02110a40 kind:data(any) addr:0x021127b0 local data_ov031_021127f0 kind:data(any) addr:0x021127f0 -data_ov031_021127f8 kind:data(any) addr:0x021127f8 +@8898 kind:data(byte[0xb]) addr:0x021127f8 local data_ov031_02112808 kind:data(any) addr:0x02112808 data_ov031_0211280c kind:data(any) addr:0x0211280c data_ov031_02112810 kind:data(any) addr:0x02112810 @@ -2066,131 +2066,131 @@ data_ov031_02112cf8 kind:data(any) addr:0x02112cf8 __sinit_ov031_02112d40 kind:function(arm,size=0x18) addr:0x02112d40 __sinit_ov031_02112d58 kind:function(arm,size=0x10) addr:0x02112d58 __sinit_ActorBomb.cpp kind:function(arm,size=0x50) addr:0x02112d68 local -__sinit_ActorBlast.cpp kind:function(arm,size=0x50) addr:0x02112db8 +__sinit_ActorBlast.cpp kind:function(arm,size=0x50) addr:0x02112db8 local __sinit_ActorUnkTLKT.cpp kind:function(arm,size=0x50) addr:0x02112e08 local -__sinit_ActorItemBoomerang.cpp kind:function(arm,size=0x50) addr:0x02112e58 -__sinit_ActorItemTornado.cpp kind:function(arm,size=0x74) addr:0x02112ea8 -__sinit_ActorUnkSWBM.cpp kind:function(arm,size=0x74) addr:0x02112f1c -__sinit_ActorUnkROCK.cpp kind:function(arm,size=0x50) addr:0x02112f90 -__sinit_ActorRupee.cpp kind:function(arm,size=0x98) addr:0x02112fe0 -__sinit_ActorUnkZLSL_ZSRS.cpp kind:function(arm,size=0x94) addr:0x02113078 -__sinit_ActorHeart.cpp kind:function(arm,size=0x6c) addr:0x0211310c +__sinit_ActorItemBoomerang.cpp kind:function(arm,size=0x50) addr:0x02112e58 local +__sinit_ActorItemTornado.cpp kind:function(arm,size=0x74) addr:0x02112ea8 local +__sinit_ActorUnkSWBM.cpp kind:function(arm,size=0x74) addr:0x02112f1c local +__sinit_ActorUnkROCK.cpp kind:function(arm,size=0x50) addr:0x02112f90 local +__sinit_ActorRupee.cpp kind:function(arm,size=0x98) addr:0x02112fe0 local +__sinit_ActorUnkZLSL_ZSRS.cpp kind:function(arm,size=0x94) addr:0x02113078 local +__sinit_ActorHeart.cpp kind:function(arm,size=0x6c) addr:0x0211310c local __sinit_ActorUnkRMTG.cpp kind:function(arm,size=0x50) addr:0x02113178 local -__sinit_ActorUnkSCCN.cpp kind:function(arm,size=0x50) addr:0x021131c8 +__sinit_ActorUnkSCCN.cpp kind:function(arm,size=0x50) addr:0x021131c8 local __sinit_ActorPot.cpp kind:function(arm,size=0x50) addr:0x02113218 local __sinit_ActorItemFlower.cpp kind:function(arm,size=0x50) addr:0x02113268 local -__sinit_ActorShotArrow.cpp kind:function(arm,size=0x50) addr:0x021132b8 -__sinit_ActorUnkATTG.cpp kind:function(arm,size=0x50) addr:0x02113308 +__sinit_ActorShotArrow.cpp kind:function(arm,size=0x50) addr:0x021132b8 local +__sinit_ActorUnkATTG.cpp kind:function(arm,size=0x50) addr:0x02113308 local __sinit_ActorUnkNTTZ.cpp kind:function(arm,size=0x50) addr:0x02113358 local -__sinit_ov031_021133a8 kind:function(arm,size=0x24) addr:0x021133a8 -__sinit_ActorUnkTGTZ.cpp kind:function(arm,size=0x80) addr:0x021133cc +__sinit_ov031_021133a8 kind:function(arm,size=0x24) addr:0x021133a8 local +__sinit_ActorUnkTGTZ.cpp kind:function(arm,size=0x80) addr:0x021133cc local __sinit_ActorUnkSWCH.cpp kind:function(arm,size=0x50) addr:0x0211344c local __sinit_ActorUnkSWON.cpp kind:function(arm,size=0x50) addr:0x0211349c local __sinit_ActorUnkNORE.cpp kind:function(arm,size=0x50) addr:0x021134ec local -__sinit_ActorUnkFLEN.cpp kind:function(arm,size=0x50) addr:0x0211353c -__sinit_ActorRollingStone.cpp kind:function(arm,size=0x50) addr:0x0211358c +__sinit_ActorUnkFLEN.cpp kind:function(arm,size=0x50) addr:0x0211353c local +__sinit_ActorRollingStone.cpp kind:function(arm,size=0x50) addr:0x0211358c local __sinit_ActorItemDrop.cpp kind:function(arm,size=0x138) addr:0x021135dc local __sinit_ActorUnkMLCK.cpp kind:function(arm,size=0x74) addr:0x02113714 local -__sinit_ActorUnkCLLT.cpp kind:function(arm,size=0x50) addr:0x02113788 +__sinit_ActorUnkCLLT.cpp kind:function(arm,size=0x50) addr:0x02113788 local __sinit_ActorUnkEFSB.cpp kind:function(arm,size=0x50) addr:0x021137d8 local __sinit_ActorUnkNFSP.cpp kind:function(arm,size=0x50) addr:0x02113828 local __sinit_MapObjectDoorBase.cpp kind:function(arm,size=0x3c) addr:0x02113878 local -__sinit_MapObjectDoorDangerSpawn.cpp kind:function(arm,size=0x64) addr:0x021138b4 -__sinit_MapObjectDoorKey.cpp kind:function(arm,size=0x64) addr:0x02113918 -__sinit_MapObjectDoorSwitch.cpp kind:function(arm,size=0x64) addr:0x0211397c -__sinit_MapObjectDoorClick.cpp kind:function(arm,size=0x64) addr:0x021139e0 -__sinit_MapObjectDoorTouch.cpp kind:function(arm,size=0x50) addr:0x02113a44 -__sinit_MapObjectUnkEXIT.cpp kind:function(arm,size=0x50) addr:0x02113a94 -__sinit_MapObjectUnkGATE.cpp kind:function(arm,size=0x50) addr:0x02113ae4 -__sinit_MapObjectUnkSTIR.cpp kind:function(arm,size=0x50) addr:0x02113b34 -__sinit_MapObjectGrass.cpp kind:function(arm,size=0x90) addr:0x02113b84 -__sinit_MapObjectUnkSWHT.cpp kind:function(arm,size=0x70) addr:0x02113c14 -__sinit_MapObjectBombFlower.cpp kind:function(arm,size=0x50) addr:0x02113c84 +__sinit_MapObjectDoorDangerSpawn.cpp kind:function(arm,size=0x64) addr:0x021138b4 local +__sinit_MapObjectDoorKey.cpp kind:function(arm,size=0x64) addr:0x02113918 local +__sinit_MapObjectDoorSwitch.cpp kind:function(arm,size=0x64) addr:0x0211397c local +__sinit_MapObjectDoorClick.cpp kind:function(arm,size=0x64) addr:0x021139e0 local +__sinit_MapObjectDoorTouch.cpp kind:function(arm,size=0x50) addr:0x02113a44 local +__sinit_MapObjectUnkEXIT.cpp kind:function(arm,size=0x50) addr:0x02113a94 local +__sinit_MapObjectUnkGATE.cpp kind:function(arm,size=0x50) addr:0x02113ae4 local +__sinit_MapObjectUnkSTIR.cpp kind:function(arm,size=0x50) addr:0x02113b34 local +__sinit_MapObjectGrass.cpp kind:function(arm,size=0x90) addr:0x02113b84 local +__sinit_MapObjectUnkSWHT.cpp kind:function(arm,size=0x70) addr:0x02113c14 local +__sinit_MapObjectBombFlower.cpp kind:function(arm,size=0x50) addr:0x02113c84 local __sinit_MapObjectTreasureSpawned.cpp kind:function(arm,size=0x6c) addr:0x02113cd4 local -__sinit_MapObjectChestBase.cpp kind:function(arm,size=0x30) addr:0x02113d40 -__sinit_MapObjectUnkTRED.cpp kind:function(arm,size=0x6c) addr:0x02113d70 -__sinit_MapObjectUnkTREW.cpp kind:function(arm,size=0x6c) addr:0x02113ddc -__sinit_MapObjectUnkTREN.cpp kind:function(arm,size=0x6c) addr:0x02113e48 -__sinit_MapObjectUnkTRWS.cpp kind:function(arm,size=0x50) addr:0x02113eb4 -__sinit_MapObjectPot.cpp kind:function(arm,size=0x50) addr:0x02113f04 -__sinit_MapObjectUnkSKBN.cpp kind:function(arm,size=0x74) addr:0x02113f54 -__sinit_MapObjectUnkITFL.cpp kind:function(arm,size=0x50) addr:0x02113fc8 -__sinit_MapObjectUnkSKDI.cpp kind:function(arm,size=0x50) addr:0x02114018 +__sinit_MapObjectChestBase.cpp kind:function(arm,size=0x30) addr:0x02113d40 local +__sinit_MapObjectUnkTRED.cpp kind:function(arm,size=0x6c) addr:0x02113d70 local +__sinit_MapObjectUnkTREW.cpp kind:function(arm,size=0x6c) addr:0x02113ddc local +__sinit_MapObjectUnkTREN.cpp kind:function(arm,size=0x6c) addr:0x02113e48 local +__sinit_MapObjectUnkTRWS.cpp kind:function(arm,size=0x50) addr:0x02113eb4 local +__sinit_MapObjectPot.cpp kind:function(arm,size=0x50) addr:0x02113f04 local +__sinit_MapObjectUnkSKBN.cpp kind:function(arm,size=0x74) addr:0x02113f54 local +__sinit_MapObjectUnkITFL.cpp kind:function(arm,size=0x50) addr:0x02113fc8 local +__sinit_MapObjectUnkSKDI.cpp kind:function(arm,size=0x50) addr:0x02114018 local __sinit_ActorUnkSKDO.cpp kind:function(arm,size=0x50) addr:0x02114068 local -__sinit_MapObjectUnkCRWL.cpp kind:function(arm,size=0x70) addr:0x021140b8 -__sinit_MapObjectUnkBREX.cpp kind:function(arm,size=0x64) addr:0x02114128 -__sinit_MapObjectUnkTATZ.cpp kind:function(arm,size=0x64) addr:0x0211418c -__sinit_MapObjectUnkSTSP.cpp kind:function(arm,size=0x50) addr:0x021141f0 -__sinit_MapObjectUnkBLCC.cpp kind:function(arm,size=0x5c) addr:0x02114240 -__sinit_MapObjectUnkRLSG.cpp kind:function(arm,size=0x70) addr:0x0211429c -__sinit_MapObjectUnkSAND.cpp kind:function(arm,size=0xe0) addr:0x0211430c -__sinit_MapObjectUnkSPTB.cpp kind:function(arm,size=0x74) addr:0x021143ec -__sinit_MapObjectUnkGSST.cpp kind:function(arm,size=0x50) addr:0x02114460 -__sinit_MapObjectUnkSWFS.cpp kind:function(arm,size=0x70) addr:0x021144b0 +__sinit_MapObjectUnkCRWL.cpp kind:function(arm,size=0x70) addr:0x021140b8 local +__sinit_MapObjectUnkBREX.cpp kind:function(arm,size=0x64) addr:0x02114128 local +__sinit_MapObjectUnkTATZ.cpp kind:function(arm,size=0x64) addr:0x0211418c local +__sinit_MapObjectUnkSTSP.cpp kind:function(arm,size=0x50) addr:0x021141f0 local +__sinit_MapObjectUnkBLCC.cpp kind:function(arm,size=0x5c) addr:0x02114240 local +__sinit_MapObjectUnkRLSG.cpp kind:function(arm,size=0x70) addr:0x0211429c local +__sinit_MapObjectUnkSAND.cpp kind:function(arm,size=0xe0) addr:0x0211430c local +__sinit_MapObjectUnkSPTB.cpp kind:function(arm,size=0x74) addr:0x021143ec local +__sinit_MapObjectUnkGSST.cpp kind:function(arm,size=0x50) addr:0x02114460 local +__sinit_MapObjectUnkSWFS.cpp kind:function(arm,size=0x70) addr:0x021144b0 local .p__sinit_ov031_02112d40 kind:data(word) addr:0x02114520 .p__sinit_ov031_02112d58 kind:data(word) addr:0x02114524 .p__sinit_ActorBomb.cpp kind:data(word) addr:0x02114528 local -.p__sinit_ActorBlast.cpp kind:data(word) addr:0x0211452c +.p__sinit_ActorBlast.cpp kind:data(word) addr:0x0211452c local .p__sinit_ActorUnkTLKT.cpp kind:data(word) addr:0x02114530 local -.p__sinit_ActorItemBoomerang.cpp kind:data(word) addr:0x02114534 -.p__sinit_ActorItemTornado.cpp kind:data(word) addr:0x02114538 -.p__sinit_ActorUnkSWBM.cpp kind:data(word) addr:0x0211453c -.p__sinit_ActorUnkROCK.cpp kind:data(word) addr:0x02114540 -.p__sinit_ActorRupee.cpp kind:data(word) addr:0x02114544 -.p__sinit_ActorUnkZLSL_ZSRS.cpp kind:data(word) addr:0x02114548 -.p__sinit_ActorHeart.cpp kind:data(word) addr:0x0211454c +.p__sinit_ActorItemBoomerang.cpp kind:data(word) addr:0x02114534 local +.p__sinit_ActorItemTornado.cpp kind:data(word) addr:0x02114538 local +.p__sinit_ActorUnkSWBM.cpp kind:data(word) addr:0x0211453c local +.p__sinit_ActorUnkROCK.cpp kind:data(word) addr:0x02114540 local +.p__sinit_ActorRupee.cpp kind:data(word) addr:0x02114544 local +.p__sinit_ActorUnkZLSL_ZSRS.cpp kind:data(word) addr:0x02114548 local +.p__sinit_ActorHeart.cpp kind:data(word) addr:0x0211454c local .p__sinit_ActorUnkRMTG.cpp kind:data(word) addr:0x02114550 local -.p__sinit_ActorUnkSCCN.cpp kind:data(word) addr:0x02114554 +.p__sinit_ActorUnkSCCN.cpp kind:data(word) addr:0x02114554 local .p__sinit_ActorPot.cpp kind:data(word) addr:0x02114558 local .p__sinit_ActorItemFlower.cpp kind:data(word) addr:0x0211455c local -.p__sinit_ActorShotArrow.cpp kind:data(word) addr:0x02114560 -.p__sinit_ActorUnkATTG.cpp kind:data(word) addr:0x02114564 +.p__sinit_ActorShotArrow.cpp kind:data(word) addr:0x02114560 local +.p__sinit_ActorUnkATTG.cpp kind:data(word) addr:0x02114564 local .p__sinit_ActorUnkNTTZ.cpp kind:data(word) addr:0x02114568 local -.p__sinit_ov031_021133a8 kind:data(word) addr:0x0211456c -.p__sinit_ActorUnkTGTZ.cpp kind:data(word) addr:0x02114570 +.p__sinit_ov031_021133a8 kind:data(word) addr:0x0211456c local +.p__sinit_ActorUnkTGTZ.cpp kind:data(word) addr:0x02114570 local .p__sinit_ActorUnkSWCH.cpp kind:data(word) addr:0x02114574 local .p__sinit_ActorUnkSWON.cpp kind:data(word) addr:0x02114578 local .p__sinit_ActorUnkNORE.cpp kind:data(word) addr:0x0211457c local -.p__sinit_ActorUnkFLEN.cpp kind:data(word) addr:0x02114580 -.p__sinit_ActorRollingStone.cpp kind:data(word) addr:0x02114584 +.p__sinit_ActorUnkFLEN.cpp kind:data(word) addr:0x02114580 local +.p__sinit_ActorRollingStone.cpp kind:data(word) addr:0x02114584 local .p__sinit_ActorItemDrop.cpp kind:data(word) addr:0x02114588 local .p__sinit_ActorUnkMLCK.cpp kind:data(word) addr:0x0211458c local -.p__sinit_ActorUnkCLLT.cpp kind:data(word) addr:0x02114590 +.p__sinit_ActorUnkCLLT.cpp kind:data(word) addr:0x02114590 local .p__sinit_ActorUnkEFSB.cpp kind:data(word) addr:0x02114594 local .p__sinit_ActorUnkNFSP.cpp kind:data(word) addr:0x02114598 local .p__sinit_MapObjectDoorBase.cpp kind:data(word) addr:0x0211459c local -.p__sinit_MapObjectDoorDangerSpawn.cpp kind:data(word) addr:0x021145a0 -.p__sinit_MapObjectDoorKey.cpp kind:data(word) addr:0x021145a4 -.p__sinit_MapObjectDoorSwitch.cpp kind:data(word) addr:0x021145a8 -.p__sinit_MapObjectDoorClick.cpp kind:data(word) addr:0x021145ac -.p__sinit_MapObjectDoorTouch.cpp kind:data(word) addr:0x021145b0 -.p__sinit_MapObjectUnkEXIT.cpp kind:data(word) addr:0x021145b4 -.p__sinit_MapObjectUnkGATE.cpp kind:data(word) addr:0x021145b8 -.p__sinit_MapObjectUnkSTIR.cpp kind:data(word) addr:0x021145bc -.p__sinit_MapObjectGrass.cpp kind:data(word) addr:0x021145c0 -.p__sinit_MapObjectUnkSWHT.cpp kind:data(word) addr:0x021145c4 -.p__sinit_MapObjectBombFlower.cpp kind:data(word) addr:0x021145c8 +.p__sinit_MapObjectDoorDangerSpawn.cpp kind:data(word) addr:0x021145a0 local +.p__sinit_MapObjectDoorKey.cpp kind:data(word) addr:0x021145a4 local +.p__sinit_MapObjectDoorSwitch.cpp kind:data(word) addr:0x021145a8 local +.p__sinit_MapObjectDoorClick.cpp kind:data(word) addr:0x021145ac local +.p__sinit_MapObjectDoorTouch.cpp kind:data(word) addr:0x021145b0 local +.p__sinit_MapObjectUnkEXIT.cpp kind:data(word) addr:0x021145b4 local +.p__sinit_MapObjectUnkGATE.cpp kind:data(word) addr:0x021145b8 local +.p__sinit_MapObjectUnkSTIR.cpp kind:data(word) addr:0x021145bc local +.p__sinit_MapObjectGrass.cpp kind:data(word) addr:0x021145c0 local +.p__sinit_MapObjectUnkSWHT.cpp kind:data(word) addr:0x021145c4 local +.p__sinit_MapObjectBombFlower.cpp kind:data(word) addr:0x021145c8 local .p__sinit_MapObjectTreasureSpawned.cpp kind:data(word) addr:0x021145cc local -.p__sinit_MapObjectChestBase.cpp kind:data(word) addr:0x021145d0 -.p__sinit_MapObjectUnkTRED.cpp kind:data(word) addr:0x021145d4 -.p__sinit_MapObjectUnkTREW.cpp kind:data(word) addr:0x021145d8 -.p__sinit_MapObjectUnkTREN.cpp kind:data(word) addr:0x021145dc -.p__sinit_MapObjectUnkTRWS.cpp kind:data(word) addr:0x021145e0 -.p__sinit_MapObjectPot.cpp kind:data(word) addr:0x021145e4 -.p__sinit_MapObjectUnkSKBN.cpp kind:data(word) addr:0x021145e8 -.p__sinit_MapObjectUnkITFL.cpp kind:data(word) addr:0x021145ec -.p__sinit_MapObjectUnkSKDI.cpp kind:data(word) addr:0x021145f0 +.p__sinit_MapObjectChestBase.cpp kind:data(word) addr:0x021145d0 local +.p__sinit_MapObjectUnkTRED.cpp kind:data(word) addr:0x021145d4 local +.p__sinit_MapObjectUnkTREW.cpp kind:data(word) addr:0x021145d8 local +.p__sinit_MapObjectUnkTREN.cpp kind:data(word) addr:0x021145dc local +.p__sinit_MapObjectUnkTRWS.cpp kind:data(word) addr:0x021145e0 local +.p__sinit_MapObjectPot.cpp kind:data(word) addr:0x021145e4 local +.p__sinit_MapObjectUnkSKBN.cpp kind:data(word) addr:0x021145e8 local +.p__sinit_MapObjectUnkITFL.cpp kind:data(word) addr:0x021145ec local +.p__sinit_MapObjectUnkSKDI.cpp kind:data(word) addr:0x021145f0 local .p__sinit_ActorUnkSKDO.cpp kind:data(word) addr:0x021145f4 local -.p__sinit_MapObjectUnkCRWL.cpp kind:data(word) addr:0x021145f8 -.p__sinit_MapObjectUnkBREX.cpp kind:data(word) addr:0x021145fc -.p__sinit_MapObjectUnkTATZ.cpp kind:data(word) addr:0x02114600 -.p__sinit_MapObjectUnkSTSP.cpp kind:data(word) addr:0x02114604 -.p__sinit_MapObjectUnkBLCC.cpp kind:data(word) addr:0x02114608 -.p__sinit_MapObjectUnkRLSG.cpp kind:data(word) addr:0x0211460c -.p__sinit_MapObjectUnkSAND.cpp kind:data(word) addr:0x02114610 -.p__sinit_MapObjectUnkSPTB.cpp kind:data(word) addr:0x02114614 -.p__sinit_MapObjectUnkGSST.cpp kind:data(word) addr:0x02114618 -.p__sinit_MapObjectUnkSWFS.cpp kind:data(word) addr:0x0211461c +.p__sinit_MapObjectUnkCRWL.cpp kind:data(word) addr:0x021145f8 local +.p__sinit_MapObjectUnkBREX.cpp kind:data(word) addr:0x021145fc local +.p__sinit_MapObjectUnkTATZ.cpp kind:data(word) addr:0x02114600 local +.p__sinit_MapObjectUnkSTSP.cpp kind:data(word) addr:0x02114604 local +.p__sinit_MapObjectUnkBLCC.cpp kind:data(word) addr:0x02114608 local +.p__sinit_MapObjectUnkRLSG.cpp kind:data(word) addr:0x0211460c local +.p__sinit_MapObjectUnkSAND.cpp kind:data(word) addr:0x02114610 local +.p__sinit_MapObjectUnkSPTB.cpp kind:data(word) addr:0x02114614 local +.p__sinit_MapObjectUnkGSST.cpp kind:data(word) addr:0x02114618 local +.p__sinit_MapObjectUnkSWFS.cpp kind:data(word) addr:0x0211461c local data_ov031_02114640 kind:data(any) addr:0x02114640 ambiguous data_ov031_02114644 kind:data(any) addr:0x02114644 data_ov031_02114648 kind:data(any) addr:0x02114648 @@ -2256,11 +2256,11 @@ data_ov031_02114cc0 kind:data(any) addr:0x02114cc0 data_ov031_02114cdc kind:data(any) addr:0x02114cdc _ZTV19data_ov031_02114cf0 kind:data(any) addr:0x02114cf0 _ZTV19data_ov031_02114d14 kind:data(any) addr:0x02114d14 -_ZTV19data_ov031_02114d78 kind:data(any) addr:0x02114d70 -data_ov031_02114d7c kind:data(any) addr:0x02114d7c -data_ov031_02114d94 kind:data(any) addr:0x02114d94 -_ZTV19data_ov031_02114da8 kind:data(any) addr:0x02114da8 -_ZTV19data_ov031_02114dcc kind:data(any) addr:0x02114dcc +_ZTV20ActorItemTornado_17C kind:data(any) addr:0x02114d70 +data_ov031_02112fdc kind:data(any) addr:0x02114d7c local +_ZTV24UnkStruct_ov031_02112ff4 kind:data(any) addr:0x02114d8c +_ZTV23ActorProfileItemTornado kind:data(any) addr:0x02114da8 +_ZTV16ActorItemTornado kind:data(any) addr:0x02114dcc _ZTV19data_ov031_02114e30 kind:data(any) addr:0x02114e28 _ZTV19data_ov031_02114e44 kind:data(any) addr:0x02114e44 _ZTV15ActorUnkSWBM_C8 kind:data(any) addr:0x02114ea8 @@ -2515,7 +2515,7 @@ _ZGVN15ProfileInstanceI16ActorProfileBombE8sProfileE kind:bss addr:0x021181a4 @30775 kind:bss addr:0x021181a8 local _ZN15ProfileInstanceI16ActorProfileBombE8sProfileE kind:bss addr:0x021181b4 _ZGVN15ProfileInstanceI17ActorProfileBlastE8sProfileE kind:bss addr:0x021181f0 -@30781 kind:bss addr:0x021181f4 +@30781 kind:bss addr:0x021181f4 local _ZN15ProfileInstanceI17ActorProfileBlastE8sProfileE kind:bss addr:0x02118200 _ZGVN15ProfileInstanceI19ActorProfileUnkTLKTE8sProfileE kind:bss addr:0x0211823c @30787 kind:bss addr:0x02118240 local diff --git a/config/usa/arm9/overlays/ov000/relocs.txt b/config/usa/arm9/overlays/ov000/relocs.txt index 02877f57..d2e4e2f7 100644 --- a/config/usa/arm9/overlays/ov000/relocs.txt +++ b/config/usa/arm9/overlays/ov000/relocs.txt @@ -4710,7 +4710,7 @@ from:0x0208445a kind:thumb_call to:0x0208729c module:overlay(0) from:0x020844fc kind:thumb_call_arm to:0x02085ae0 module:overlay(0) from:0x0208450a kind:thumb_call_arm to:0x02085ae0 module:overlay(0) from:0x02084528 kind:load to:0x020b2a30 module:overlay(0) -from:0x0208452c kind:load to:0x020b27a8 module:overlay(0) +from:0x0208452c kind:load to:0x020b27a0 module:overlay(0) add:0x8 from:0x02084530 kind:load to:0x020ab4bc module:overlay(0) from:0x02084534 kind:load to:0x027e09a4 module:dtcm from:0x02084554 kind:thumb_call_arm to:0x0207edc8 module:overlay(0) @@ -8615,7 +8615,7 @@ from:0x020ae510 kind:load to:0x0211ea28 module:overlays(33,38) from:0x020ae514 kind:load to:0x0211cd78 module:overlay(38) from:0x020ae518 kind:load to:0x02149cac module:overlay(29) from:0x020ae51c kind:load to:0x0217754c module:overlays(89,90,91,93,94) -from:0x020ae520 kind:load to:0x020e3494 module:overlays(20,31) +from:0x020ae520 kind:load to:0x020e3494 module:overlay(31) from:0x020ae524 kind:load to:0x021435b0 module:overlay(70) from:0x020ae528 kind:load to:0x0216e680 module:overlay(91) from:0x020ae52c kind:load to:0x020e14a4 module:overlay(31) diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt index 94f42fc1..6862f300 100644 --- a/config/usa/arm9/overlays/ov000/symbols.txt +++ b/config/usa/arm9/overlays/ov000/symbols.txt @@ -1930,7 +1930,7 @@ func_ov000_0208bbb4 kind:function(arm,size=0x10) addr:0x0208bb94 func_ov000_0208bbc4 kind:function(arm,size=0x10) addr:0x0208bba4 func_ov000_0208bbd4 kind:function(arm,size=0x2c) addr:0x0208bbb4 func_ov000_0208bc00 kind:function(arm,size=0x1c) addr:0x0208bbe0 -_ZN18UnkStruct_027e0ce019func_ov000_0208bc1cEiiiiPvi kind:function(arm,size=0x40) addr:0x0208bbfc +_ZN18UnkStruct_027e0ce019func_ov000_0208bc1cEiiiP8CylinderPvi kind:function(arm,size=0x40) addr:0x0208bbfc func_ov000_0208bc5c kind:function(arm,size=0x40) addr:0x0208bc3c _ZN18UnkStruct_027e0ce019func_ov000_0208bc9cEii kind:function(arm,size=0x84) addr:0x0208bc7c _ZN18UnkStruct_027e0ce019func_ov000_0208bd20Ebii kind:function(arm,size=0x10) addr:0x0208bd00 @@ -3535,7 +3535,7 @@ data_ov000_020b26f8 kind:data(any) addr:0x020b26f8 data_ov000_020b2724 kind:data(any) addr:0x020b2724 data_ov000_020b2750 kind:data(any) addr:0x020b2750 data_ov000_020b277c kind:data(any) addr:0x020b277c -data_ov000_020b27a8 kind:data(any) addr:0x020b27a8 +_ZTV24UnkStruct_ov031_Items_01 kind:data(any) addr:0x020b27a0 data_ov000_020b27c4 kind:data(any) addr:0x020b27c4 data_ov000_020b27e0 kind:data(any) addr:0x020b27e0 data_ov000_020b27fc kind:data(any) addr:0x020b27fc diff --git a/config/usa/arm9/overlays/ov026/relocs.txt b/config/usa/arm9/overlays/ov026/relocs.txt index 5c011dda..2a98979e 100644 --- a/config/usa/arm9/overlays/ov026/relocs.txt +++ b/config/usa/arm9/overlays/ov026/relocs.txt @@ -5730,7 +5730,7 @@ from:0x0210f1c4 kind:arm_call to:0x020fbc9c module:overlay(26) from:0x0210f1f4 kind:arm_call to:0x02103150 module:overlay(26) from:0x0210f230 kind:arm_call to:0x02103f88 module:overlay(26) from:0x0210f23c kind:load to:0x02137384 module:overlay(26) -from:0x0210f240 kind:load to:0x020b27a8 module:overlay(0) +from:0x0210f240 kind:load to:0x020b27a0 module:overlay(0) add:0x8 from:0x0210f2d8 kind:load to:0x02140260 module:overlay(26) from:0x0210f2dc kind:load to:0x02137338 module:overlay(26) from:0x0210f2e0 kind:load to:0x021402b0 module:overlay(26) @@ -6040,7 +6040,7 @@ from:0x021117e0 kind:arm_call to:0x0209860c module:overlay(0) from:0x02111804 kind:arm_call to:0x0210134c module:overlay(26) from:0x02111810 kind:arm_call to:0x020ee518 module:overlay(26) from:0x0211181c kind:load to:0x0213782c module:overlay(26) -from:0x02111820 kind:load to:0x020b27a8 module:overlay(0) +from:0x02111820 kind:load to:0x020b27a0 module:overlay(0) add:0x8 from:0x02111824 kind:load to:0x02135c40 module:overlay(26) from:0x02111828 kind:load to:0x020f3bf8 module:overlay(26) from:0x0211182c kind:load to:0x020f417c module:overlay(26) @@ -7729,7 +7729,7 @@ from:0x021222ec kind:arm_call to:0x02122784 module:overlay(26) from:0x02122304 kind:arm_call to:0x02122dcc module:overlay(26) from:0x02122320 kind:load to:0x021384c0 module:overlay(26) from:0x02122324 kind:load to:0x021412a4 module:overlay(26) -from:0x0212232c kind:load to:0x020b27a8 module:overlay(0) +from:0x0212232c kind:load to:0x020b27a0 module:overlay(0) add:0x8 from:0x0212233c kind:arm_call to:0x0207edc8 module:overlay(0) from:0x02122344 kind:arm_call to:0x0207b6a0 module:overlay(0) from:0x0212234c kind:arm_call to:0x020a02b4 module:overlay(0) @@ -7949,7 +7949,7 @@ from:0x02123ec4 kind:load to:0x02141470 module:overlay(26) from:0x02123ec8 kind:load to:0x021386a0 module:overlay(26) from:0x02123ecc kind:load to:0x02135b04 module:overlay(26) from:0x02123ed0 kind:load to:0x02135c6c module:overlay(26) -from:0x02123ed8 kind:load to:0x020b27a8 module:overlay(0) +from:0x02123ed8 kind:load to:0x020b27a0 module:overlay(0) add:0x8 from:0x02123edc kind:load to:0x02141464 module:overlay(26) from:0x02123ee8 kind:arm_call_thumb to:0x02057bb4 module:overlay(0) from:0x02123f08 kind:arm_call to:0x0212767c module:overlay(26) @@ -8862,7 +8862,7 @@ from:0x0212bb0c kind:arm_call to:0x02101c34 module:overlay(26) from:0x0212bb18 kind:arm_call to:0x020ee518 module:overlay(26) from:0x0212bb24 kind:load to:0x02138af0 module:overlay(26) from:0x0212bb28 kind:load to:0x02138b58 module:overlay(26) -from:0x0212bb2c kind:load to:0x020b27a8 module:overlay(0) +from:0x0212bb2c kind:load to:0x020b27a0 module:overlay(0) add:0x8 from:0x0212bb30 kind:load to:0x02135c40 module:overlay(26) from:0x0212bb34 kind:load to:0x020f3bf8 module:overlay(26) from:0x0212bb38 kind:load to:0x020f417c module:overlay(26) diff --git a/config/usa/arm9/overlays/ov027/relocs.txt b/config/usa/arm9/overlays/ov027/relocs.txt index 96820fa0..d4bfedf3 100644 --- a/config/usa/arm9/overlays/ov027/relocs.txt +++ b/config/usa/arm9/overlays/ov027/relocs.txt @@ -583,7 +583,7 @@ from:0x021452e4 kind:arm_call to:0x0210251c module:overlay(26) from:0x02145300 kind:arm_call to:0x0210134c module:overlay(26) from:0x0214530c kind:arm_call to:0x020ee518 module:overlay(26) from:0x02145318 kind:load to:0x02148d68 module:overlay(27) -from:0x0214531c kind:load to:0x020b27a8 module:overlay(0) +from:0x0214531c kind:load to:0x020b27a0 module:overlay(0) add:0x8 from:0x02145320 kind:load to:0x021483e0 module:overlay(27) from:0x02145324 kind:load to:0x02145378 module:overlay(27) from:0x02145328 kind:load to:0x02145338 module:overlay(27) diff --git a/config/usa/arm9/overlays/ov030/relocs.txt b/config/usa/arm9/overlays/ov030/relocs.txt index 4b45307e..16795ee0 100644 --- a/config/usa/arm9/overlays/ov030/relocs.txt +++ b/config/usa/arm9/overlays/ov030/relocs.txt @@ -1415,7 +1415,7 @@ from:0x0214de6c kind:arm_call to:0x0209860c module:overlay(0) from:0x0214de90 kind:arm_call to:0x0210134c module:overlay(26) from:0x0214de9c kind:arm_call to:0x020ee518 module:overlay(26) from:0x0214dea8 kind:load to:0x02151cdc module:overlay(30) -from:0x0214deac kind:load to:0x020b27a8 module:overlay(0) +from:0x0214deac kind:load to:0x020b27a0 module:overlay(0) add:0x8 from:0x0214deb0 kind:load to:0x0215102c module:overlay(30) from:0x0214deb4 kind:load to:0x0214df08 module:overlay(30) from:0x0214deb8 kind:load to:0x0214dec8 module:overlay(30) diff --git a/config/usa/arm9/overlays/ov031/delinks.txt b/config/usa/arm9/overlays/ov031/delinks.txt index 2c93680b..ccd907ae 100644 --- a/config/usa/arm9/overlays/ov031/delinks.txt +++ b/config/usa/arm9/overlays/ov031/delinks.txt @@ -18,6 +18,7 @@ src/031_Land/Actor/ActorBomb.cpp: .rodata start:0x021109dc end:0x02110a60 src/031_Land/Actor/ActorBlast.cpp: + complete .text start:0x020e3494 end:0x020e3c84 .init start:0x02111028 end:0x02111078 .ctor start:0x02112780 end:0x02112784 @@ -40,11 +41,12 @@ src/031_Land/Actor/ActorItemBoomerang.cpp: .bss start:0x021164c8 end:0x02116514 src/031_Land/Actor/ActorItemTornado.cpp: - .text start:0x020e58a8 end:0x020e64b8 + .text start:0x020e573c end:0x020e64b8 .init start:0x02111118 end:0x0211118c .ctor start:0x0211278c end:0x02112790 - .data start:0x02112fcc end:0x02113068 + .data start:0x02112fb0 end:0x02113068 .bss start:0x02116514 end:0x02116560 + .rodata start:0x02110a68 end:0x02110a78 src/031_Land/Actor/ActorUnkSWBM.cpp: .text start:0x020e68b8 end:0x020e7358 diff --git a/config/usa/arm9/overlays/ov031/relocs.txt b/config/usa/arm9/overlays/ov031/relocs.txt index 9116ae53..44e9c6f7 100644 --- a/config/usa/arm9/overlays/ov031/relocs.txt +++ b/config/usa/arm9/overlays/ov031/relocs.txt @@ -1146,7 +1146,7 @@ from:0x020e3694 kind:load to:0x027e0ce4 module:dtcm from:0x020e3698 kind:load to:0x027e0ce8 module:dtcm from:0x020e36a8 kind:arm_call to:0x02098368 module:overlay(0) from:0x020e3710 kind:load to:0x02112d64 add:0x8 module:overlay(31) -from:0x020e3714 kind:load to:0x020b27a8 module:overlay(0) +from:0x020e3714 kind:load to:0x020b27a0 module:overlay(0) add:0x8 from:0x020e3718 kind:load to:0x02112d24 add:0x8 module:overlay(31) from:0x020e3724 kind:arm_call to:0x0207bfdc module:overlay(0) from:0x020e376c kind:arm_call to:0x01ffb6e4 module:itcm @@ -1449,12 +1449,12 @@ from:0x020e5ae4 kind:load to:0x02110a68 module:overlay(31) from:0x020e5ae8 kind:load to:0x027e0ce0 module:dtcm from:0x020e5aec kind:load to:0x02112fcc add:0x8 module:overlay(31) from:0x020e5af0 kind:load to:0x02112fb0 add:0x8 module:overlay(31) -from:0x020e5af4 kind:load to:0x020b27a8 module:overlay(0) +from:0x020e5af4 kind:load to:0x020b27a0 module:overlay(0) add:0x8 from:0x020e5af8 kind:load to:0x020a02b4 module:overlay(0) from:0x020e5afc kind:load to:0x020e56e4 module:overlay(31) from:0x020e5b08 kind:arm_call to:0x0207bfdc module:overlay(0) from:0x020e5bd4 kind:load to:0x0203e93c module:main -from:0x020e5bd8 kind:load to:0x02112fb4 add:0x8 module:overlay(31) +from:0x020e5bd8 kind:load to:0x02112fbc module:overlay(31) from:0x020e5c38 kind:arm_call to:0x020a00b4 module:overlay(0) from:0x020e5c54 kind:arm_call to:0x02071b10 module:overlay(0) from:0x020e5c6c kind:arm_call to:0x020a0314 module:overlay(0) @@ -6356,7 +6356,7 @@ from:0x02111110 kind:load to:0x020e5728 module:overlay(31) from:0x02111114 kind:load to:0x021164cc module:overlay(31) from:0x02111150 kind:arm_call to:0x020e58d8 module:overlay(31) from:0x02111160 kind:arm_call to:0x0203ce4c module:main -from:0x02111174 kind:load to:0x02112fb4 add:0x8 module:overlay(31) +from:0x02111174 kind:load to:0x02112fbc module:overlay(31) from:0x0211117c kind:load to:0x02116514 module:overlay(31) from:0x02111180 kind:load to:0x02116524 module:overlay(31) from:0x02111184 kind:load to:0x020e64a4 module:overlay(31) diff --git a/config/usa/arm9/overlays/ov031/symbols.txt b/config/usa/arm9/overlays/ov031/symbols.txt index e1f769e0..638d8ae5 100644 --- a/config/usa/arm9/overlays/ov031/symbols.txt +++ b/config/usa/arm9/overlays/ov031/symbols.txt @@ -450,8 +450,8 @@ _ZN21ActorItemBoomerang_A0D0Ev kind:function(arm,size=0x1c) addr:0x020e56f0 _ZN21ActorItemBoomerang_CCD0Ev kind:function(arm,size=0x1c) addr:0x020e570c _ZN25ActorProfileItemBoomerangD1Ev kind:function(arm,size=0x14) addr:0x020e5728 _ZN24UnkStruct_ov031_02112ff48vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0x28) addr:0x020e573c -_ZN24UnkStruct_ov031_02112ff48vfunc_0CEPK24UnkStruct_ov031_020e54d4i kind:function(arm,size=0x114) addr:0x020e5764 -func_ov031_020e5898 kind:function(arm,size=0x30) addr:0x020e5878 +_ZN24UnkStruct_ov031_02112ff48vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x114) addr:0x020e5764 +_ZN20ActorItemTornado_17C8vfunc_00Eii kind:function(arm,size=0x30) addr:0x020e5878 _ZN23ActorProfileItemTornado10GetProfileEv kind:function(arm,size=0xc) addr:0x020e58a8 _ZN23ActorProfileItemTornado6CreateEv kind:function(arm,size=0x24) addr:0x020e58b4 _ZN23ActorProfileItemTornadoC1Ev kind:function(arm,size=0x44) addr:0x020e58d8 @@ -465,7 +465,7 @@ _ZN16ActorItemTornado8vfunc_24Ev kind:function(arm,size=0x44) addr:0x020e6138 _ZN16ActorItemTornado8vfunc_2CEP14Actor_vfunc_30 kind:function(arm,size=0x124) addr:0x020e617c _ZN16ActorItemTornado19func_ov031_020e62c0Ev kind:function(arm,size=0x54) addr:0x020e62a0 _ZN16ActorItemTornado19func_ov031_020e6314Et kind:function(arm,size=0x2c) addr:0x020e62f4 -_ZN16ActorItemTornado19func_ov031_020e6340EP7VecFx32ss kind:function(arm,size=0x58) addr:0x020e6320 +_ZN16ActorItemTornado19func_ov031_020e6340EPK7VecFx32ss kind:function(arm,size=0x58) addr:0x020e6320 _ZN16ActorItemTornado19func_ov031_020e6398Ev kind:function(arm,size=0x78) addr:0x020e6378 _ZN24UnkStruct_ov031_02112ff4D0Ev kind:function(arm,size=0x1c) addr:0x020e63f0 _ZN16ActorItemTornadoD1Ev kind:function(arm,size=0x48) addr:0x020e640c @@ -2002,7 +2002,7 @@ data_ov031_02110a10 kind:data(byte[0x18]) addr:0x021109f0 local data_ov031_02110a28 kind:data(byte[0x18]) addr:0x02110a08 local data_ov031_02110a40 kind:data(any) addr:0x02110a20 local data_ov031_02110a60 kind:data(any) addr:0x02110a60 -data_ov031_02110a68 kind:data(any) addr:0x02110a68 +@8898 kind:data(byte[0xb]) addr:0x02110a68 local data_ov031_02110a78 kind:data(any) addr:0x02110a78 data_ov031_02110a7c kind:data(any) addr:0x02110a7c data_ov031_02110a80 kind:data(any) addr:0x02110a80 @@ -2259,11 +2259,11 @@ _ZTV22ActorItemBoomerang_11C kind:data(any) addr:0x02112ef8 _ZTV21ActorItemBoomerang_CC kind:data(any) addr:0x02112f14 _ZTV25ActorProfileItemBoomerang kind:data(any) addr:0x02112f30 _ZTV18ActorItemBoomerang kind:data(any) addr:0x02112f54 -_ZTV19data_ov031_02112fd8 kind:data(any) addr:0x02112fb0 -_ZTV24UnkStruct_ov031_02112ff4 kind:data(any) addr:0x02112fb4 -_ZTV23ActorProfileItemTornado kind:data(any) addr:0x02112fcc -_ZTV16ActorItemTornado kind:data(any) addr:0x02112fe8 -_ZTV19data_ov031_02113014 kind:data(any) addr:0x0211300c +_ZTV20ActorItemTornado_17C kind:data(any) addr:0x02112fb0 +data_ov031_02112fdc kind:data(any) addr:0x02112fbc local +_ZTV24UnkStruct_ov031_02112ff4 kind:data(any) addr:0x02112fcc +_ZTV23ActorProfileItemTornado kind:data(any) addr:0x02112fe8 +_ZTV16ActorItemTornado kind:data(any) addr:0x0211300c _ZTV19data_ov031_021130a4 kind:data(any) addr:0x02113068 data_ov031_0211308c kind:data(any) addr:0x0211308c _ZTV15ActorUnkSWBM_C8 kind:data(any) addr:0x021130e8 @@ -2525,18 +2525,18 @@ data_ov031_02116360 kind:bss addr:0x02116360 _ZGVN15ProfileInstanceI16ActorProfileBombE8sProfileE kind:bss addr:0x021163e4 @10775 kind:bss addr:0x021163e8 local _ZN15ProfileInstanceI16ActorProfileBombE8sProfileE kind:bss addr:0x021163f4 -data_ov031_02116430 kind:bss addr:0x02116430 -data_ov031_02116434 kind:bss addr:0x02116434 -data_ov031_02116440 kind:bss addr:0x02116440 +_ZGVN15ProfileInstanceI17ActorProfileBlastE8sProfileE kind:bss addr:0x02116430 +@8627 kind:bss addr:0x02116434 local +_ZN15ProfileInstanceI17ActorProfileBlastE8sProfileE kind:bss addr:0x02116440 _ZGVN15ProfileInstanceI19ActorProfileUnkTLKTE8sProfileE kind:bss addr:0x0211647c @10787 kind:bss addr:0x02116480 local _ZN15ProfileInstanceI19ActorProfileUnkTLKTE8sProfileE kind:bss addr:0x0211648c data_ov031_021164c8 kind:bss addr:0x021164c8 data_ov031_021164cc kind:bss addr:0x021164cc data_ov031_021164d8 kind:bss addr:0x021164d8 -data_ov031_02116514 kind:bss addr:0x02116514 -data_ov031_02116518 kind:bss addr:0x02116518 -data_ov031_02116524 kind:bss addr:0x02116524 +_ZGVN15ProfileInstanceI23ActorProfileItemTornadoE8sProfileE kind:bss addr:0x02116514 +@8467 kind:bss addr:0x02116518 local +_ZN15ProfileInstanceI23ActorProfileItemTornadoE8sProfileE kind:bss addr:0x02116524 data_ov031_02116560 kind:bss addr:0x02116560 data_ov031_02116564 kind:bss addr:0x02116564 data_ov031_02116570 kind:bss addr:0x02116570 diff --git a/config/usa/arm9/overlays/ov043/relocs.txt b/config/usa/arm9/overlays/ov043/relocs.txt index a603b720..69da1350 100644 --- a/config/usa/arm9/overlays/ov043/relocs.txt +++ b/config/usa/arm9/overlays/ov043/relocs.txt @@ -381,7 +381,7 @@ from:0x02126a80 kind:load to:0x0212d230 module:overlay(43) from:0x02126a84 kind:load to:0x0212dc80 module:overlay(43) from:0x02126a88 kind:load to:0x0212d1e4 module:overlay(43) from:0x02126a8c kind:load to:0x0212d19c module:overlay(43) -from:0x02126a90 kind:load to:0x020b27a8 module:overlay(0) +from:0x02126a90 kind:load to:0x020b27a0 module:overlay(0) add:0x8 from:0x02126a94 kind:load to:0x027e07d4 module:dtcm from:0x02126a9c kind:load to:0x0212d158 module:overlay(43) from:0x02126aa8 kind:arm_call_thumb to:0x0209a228 module:overlay(0) diff --git a/config/usa/arm9/overlays/ov048/relocs.txt b/config/usa/arm9/overlays/ov048/relocs.txt index 87533c89..eacc3fe5 100644 --- a/config/usa/arm9/overlays/ov048/relocs.txt +++ b/config/usa/arm9/overlays/ov048/relocs.txt @@ -10,7 +10,7 @@ from:0x021305e8 kind:arm_call to:0x02098368 module:overlay(0) from:0x0213060c kind:arm_call to:0x0207ed8c module:overlay(0) from:0x02130644 kind:arm_call to:0x02098288 module:overlay(0) from:0x0213067c kind:load to:0x021375e0 module:overlay(48) -from:0x02130680 kind:load to:0x020b27a8 module:overlay(0) +from:0x02130680 kind:load to:0x020b27a0 module:overlay(0) add:0x8 from:0x02130684 kind:load to:0x021375c4 module:overlay(48) from:0x02130690 kind:arm_call to:0x0207bfdc module:overlay(0) from:0x021306a8 kind:arm_call to:0x0207bfdc module:overlay(0) @@ -256,7 +256,7 @@ from:0x02132260 kind:load to:0x02137c50 module:overlay(48) from:0x02132264 kind:load to:0x021376fc module:overlay(48) from:0x0213226c kind:load to:0x02130fe0 module:overlay(48) from:0x02132270 kind:load to:0x021320a0 module:overlay(48) -from:0x02132274 kind:load to:0x020b27a8 module:overlay(0) +from:0x02132274 kind:load to:0x020b27a0 module:overlay(0) add:0x8 from:0x02132298 kind:arm_call to:0x020a0314 module:overlay(0) from:0x021322b4 kind:arm_call to:0x0207e234 module:overlay(0) from:0x021322bc kind:arm_call to:0x0207b6a0 module:overlay(0) diff --git a/config/usa/arm9/overlays/ov052/relocs.txt b/config/usa/arm9/overlays/ov052/relocs.txt index b6b13beb..4a2b8705 100644 --- a/config/usa/arm9/overlays/ov052/relocs.txt +++ b/config/usa/arm9/overlays/ov052/relocs.txt @@ -319,7 +319,7 @@ from:0x021334c0 kind:load to:0x021361d0 module:overlay(52) from:0x021334c4 kind:load to:0x02136820 module:overlay(52) from:0x021334c8 kind:load to:0x02136184 module:overlay(52) from:0x021334cc kind:load to:0x0213613c module:overlay(52) -from:0x021334d0 kind:load to:0x020b27a8 module:overlay(0) +from:0x021334d0 kind:load to:0x020b27a0 module:overlay(0) add:0x8 from:0x021334d4 kind:load to:0x027e07d4 module:dtcm from:0x021334dc kind:load to:0x021360f8 module:overlay(52) from:0x021334e8 kind:arm_call_thumb to:0x0209a228 module:overlay(0) diff --git a/config/usa/arm9/overlays/ov059/relocs.txt b/config/usa/arm9/overlays/ov059/relocs.txt index be37e16d..aa5a3f61 100644 --- a/config/usa/arm9/overlays/ov059/relocs.txt +++ b/config/usa/arm9/overlays/ov059/relocs.txt @@ -522,7 +522,7 @@ from:0x0215c7bc kind:load to:0x02163834 module:overlay(59) from:0x0215c7c0 kind:load to:0x0216447c module:overlay(59) from:0x0215c7c4 kind:load to:0x02163788 module:overlay(59) from:0x0215c7c8 kind:load to:0x021634f4 module:overlay(59) -from:0x0215c7cc kind:load to:0x020b27a8 module:overlay(0) +from:0x0215c7cc kind:load to:0x020b27a0 module:overlay(0) add:0x8 from:0x0215c7d0 kind:load to:0x02164470 module:overlay(59) from:0x0215c7dc kind:arm_call_thumb to:0x02057bb4 module:overlay(0) from:0x0215c808 kind:arm_call to:0x02057c18 module:overlay(0) @@ -1018,7 +1018,7 @@ from:0x02160e60 kind:load to:0x02163bc4 module:overlay(59) from:0x02160e6c kind:arm_call to:0x02098368 module:overlay(0) from:0x02160f04 kind:arm_call_thumb to:0x02057a04 module:overlay(0) from:0x02160f34 kind:load to:0x02163c38 module:overlay(59) -from:0x02160f38 kind:load to:0x020b27a8 module:overlay(0) +from:0x02160f38 kind:load to:0x020b27a0 module:overlay(0) add:0x8 from:0x02160f3c kind:load to:0x02164658 module:overlay(59) from:0x02160f68 kind:arm_call to:0x02160f74 module:overlay(59) from:0x02160fac kind:load to:0x02163be0 module:overlay(59) diff --git a/config/usa/arm9/overlays/ov068/relocs.txt b/config/usa/arm9/overlays/ov068/relocs.txt index 14aa4c16..bc5417f7 100644 --- a/config/usa/arm9/overlays/ov068/relocs.txt +++ b/config/usa/arm9/overlays/ov068/relocs.txt @@ -816,7 +816,7 @@ from:0x0215eb94 kind:load to:0x021632a8 module:overlay(68) from:0x0215eb98 kind:load to:0x0216432c module:overlay(68) from:0x0215eb9c kind:load to:0x0216321c module:overlay(68) from:0x0215eba0 kind:load to:0x0216276c module:overlay(68) -from:0x0215eba4 kind:load to:0x020b27a8 module:overlay(0) +from:0x0215eba4 kind:load to:0x020b27a0 module:overlay(0) add:0x8 from:0x0215ebb0 kind:arm_call_thumb to:0x02057bb4 module:overlay(0) from:0x0215ebd8 kind:arm_call to:0x02057c18 module:overlay(0) from:0x0215ebe8 kind:arm_call to:0x0209a798 module:overlay(0) diff --git a/config/usa/arm9/overlays/ov070/relocs.txt b/config/usa/arm9/overlays/ov070/relocs.txt index 15bbff28..b0a67a91 100644 --- a/config/usa/arm9/overlays/ov070/relocs.txt +++ b/config/usa/arm9/overlays/ov070/relocs.txt @@ -1092,7 +1092,7 @@ from:0x02147f60 kind:arm_call to:0x02098288 module:overlay(0) from:0x02147fc8 kind:arm_call to:0x0209860c module:overlay(0) from:0x02147fe0 kind:load to:0x0214f314 module:overlay(70) from:0x02147fe4 kind:load to:0x02150584 module:overlay(70) -from:0x02147fe8 kind:load to:0x020b27a8 module:overlay(0) +from:0x02147fe8 kind:load to:0x020b27a0 module:overlay(0) add:0x8 from:0x02147fec kind:load to:0x0214f254 module:overlay(70) from:0x02147ff8 kind:arm_call to:0x0207bfdc module:overlay(0) from:0x02148040 kind:arm_call to:0x021482ac module:overlay(70) diff --git a/config/usa/arm9/overlays/ov071/relocs.txt b/config/usa/arm9/overlays/ov071/relocs.txt index 81079fce..8f89efb3 100644 --- a/config/usa/arm9/overlays/ov071/relocs.txt +++ b/config/usa/arm9/overlays/ov071/relocs.txt @@ -1216,7 +1216,7 @@ from:0x0215c478 kind:load to:0x02163bf4 module:overlay(71) from:0x0215c47c kind:load to:0x02163c04 module:overlay(71) from:0x0215c480 kind:load to:0x02164634 module:overlay(71) from:0x0215c484 kind:load to:0x02163c14 module:overlay(71) -from:0x0215c488 kind:load to:0x020b27a8 module:overlay(0) +from:0x0215c488 kind:load to:0x020b27a0 module:overlay(0) add:0x8 from:0x0215c48c kind:load to:0x02163c24 module:overlay(71) from:0x0215c490 kind:load to:0x02165114 module:overlay(71) from:0x0215c494 kind:load to:0x02163bac module:overlay(71) diff --git a/config/usa/arm9/overlays/ov075/relocs.txt b/config/usa/arm9/overlays/ov075/relocs.txt index c1d8a6f2..f27cc3b0 100644 --- a/config/usa/arm9/overlays/ov075/relocs.txt +++ b/config/usa/arm9/overlays/ov075/relocs.txt @@ -1475,7 +1475,7 @@ from:0x0215e630 kind:arm_call to:0x0215fa7c module:overlay(75) from:0x0215e640 kind:load to:0x021631f0 module:overlay(75) from:0x0215e644 kind:load to:0x021635d4 module:overlay(75) from:0x0215e648 kind:load to:0x021631a8 module:overlay(75) -from:0x0215e64c kind:load to:0x020b27a8 module:overlay(0) +from:0x0215e64c kind:load to:0x020b27a0 module:overlay(0) add:0x8 from:0x0215e650 kind:load to:0x021635c8 module:overlay(75) from:0x0215e658 kind:load to:0x027e0130 module:dtcm from:0x0215e65c kind:load to:0x027e07d4 module:dtcm diff --git a/config/usa/arm9/overlays/ov087/relocs.txt b/config/usa/arm9/overlays/ov087/relocs.txt index 59f51306..28b0f39f 100644 --- a/config/usa/arm9/overlays/ov087/relocs.txt +++ b/config/usa/arm9/overlays/ov087/relocs.txt @@ -688,7 +688,7 @@ from:0x0215b380 kind:arm_call_thumb to:0x0205776c module:overlay(0) from:0x0215b394 kind:arm_call to:0x02097b98 module:overlay(0) from:0x0215b3e0 kind:arm_call to:0x01ffa06c module:itcm from:0x0215b3fc kind:load to:0x02162608 module:overlay(87) -from:0x0215b400 kind:load to:0x020b27a8 module:overlay(0) +from:0x0215b400 kind:load to:0x020b27a0 module:overlay(0) add:0x8 from:0x0215b404 kind:load to:0x02162bf8 module:overlay(87) from:0x0215b408 kind:load to:0x021625bc module:overlay(87) from:0x0215b40c kind:load to:0x02162208 module:overlay(87) diff --git a/config/usa/arm9/overlays/ov091/relocs.txt b/config/usa/arm9/overlays/ov091/relocs.txt index f272682f..e0f0a111 100644 --- a/config/usa/arm9/overlays/ov091/relocs.txt +++ b/config/usa/arm9/overlays/ov091/relocs.txt @@ -978,7 +978,7 @@ from:0x0216db9c kind:arm_call to:0x02103f88 module:overlay(26) from:0x0216dbac kind:load to:0x02177a18 module:overlay(91) from:0x0216dbb0 kind:load to:0x02178b60 module:overlay(91) from:0x0216dbb4 kind:load to:0x021779cc module:overlay(91) -from:0x0216dbb8 kind:load to:0x020b27a8 module:overlay(0) +from:0x0216dbb8 kind:load to:0x020b27a0 module:overlay(0) add:0x8 from:0x0216dbc4 kind:arm_call_thumb to:0x0209a228 module:overlay(0) from:0x0216dc64 kind:load to:0x02178b3c module:overlay(91) from:0x0216dc68 kind:load to:0x02177980 module:overlay(91) @@ -1752,7 +1752,7 @@ from:0x02175e3c kind:arm_call to:0x01ffa06c module:itcm from:0x02175e48 kind:load to:0x02178004 module:overlay(91) from:0x02175e4c kind:load to:0x02178eb4 module:overlay(91) from:0x02175e50 kind:load to:0x020b1940 add:0x8 module:overlay(0) -from:0x02175e54 kind:load to:0x020b27a8 module:overlay(0) +from:0x02175e54 kind:load to:0x020b27a0 module:overlay(0) add:0x8 from:0x02175e90 kind:arm_call to:0x021314a0 module:overlay(26) from:0x02175ea8 kind:arm_call to:0x021314a0 module:overlay(26) from:0x02175ebc kind:arm_call to:0x01ffb714 module:itcm diff --git a/config/usa/arm9/overlays/ov092/relocs.txt b/config/usa/arm9/overlays/ov092/relocs.txt index dcd1b654..8addb72c 100644 --- a/config/usa/arm9/overlays/ov092/relocs.txt +++ b/config/usa/arm9/overlays/ov092/relocs.txt @@ -2092,7 +2092,7 @@ from:0x02178d14 kind:arm_call to:0x020fbc9c module:overlay(26) from:0x02178d44 kind:arm_call to:0x02103150 module:overlay(26) from:0x02178d80 kind:arm_call to:0x02103f88 module:overlay(26) from:0x02178d8c kind:load to:0x0217cf50 module:overlay(92) -from:0x02178d90 kind:load to:0x020b27a8 module:overlay(0) +from:0x02178d90 kind:load to:0x020b27a0 module:overlay(0) add:0x8 from:0x02178e28 kind:load to:0x0217e084 module:overlay(92) from:0x02178e2c kind:load to:0x0217cf04 module:overlay(92) from:0x02178e30 kind:load to:0x0217e0d4 module:overlay(92) diff --git a/config/usa/arm9/overlays/ov094/relocs.txt b/config/usa/arm9/overlays/ov094/relocs.txt index 78c3ce1b..fedc572b 100644 --- a/config/usa/arm9/overlays/ov094/relocs.txt +++ b/config/usa/arm9/overlays/ov094/relocs.txt @@ -1178,7 +1178,7 @@ from:0x0216fb20 kind:arm_call to:0x020fbc9c module:overlay(26) from:0x0216fb50 kind:arm_call to:0x02103150 module:overlay(26) from:0x0216fb8c kind:arm_call to:0x02103f88 module:overlay(26) from:0x0216fb98 kind:load to:0x02177dac module:overlay(94) -from:0x0216fb9c kind:load to:0x020b27a8 module:overlay(0) +from:0x0216fb9c kind:load to:0x020b27a0 module:overlay(0) add:0x8 from:0x0216fba8 kind:arm_call_thumb to:0x0209a228 module:overlay(0) from:0x0216fc48 kind:load to:0x02178f04 module:overlay(94) from:0x0216fc4c kind:load to:0x02177d60 module:overlay(94) diff --git a/config/usa/arm9/overlays/ov096/relocs.txt b/config/usa/arm9/overlays/ov096/relocs.txt index 5046fca5..75efcc2c 100644 --- a/config/usa/arm9/overlays/ov096/relocs.txt +++ b/config/usa/arm9/overlays/ov096/relocs.txt @@ -188,7 +188,7 @@ from:0x0217b0fc kind:load to:0x0217e078 module:overlay(96) from:0x0217b100 kind:load to:0x0217e314 module:overlay(96) from:0x0217b104 kind:load to:0x0217e000 module:overlay(96) from:0x0217b108 kind:load to:0x0217e02c module:overlay(96) -from:0x0217b10c kind:load to:0x020b27a8 module:overlay(0) +from:0x0217b10c kind:load to:0x020b27a0 module:overlay(0) add:0x8 from:0x0217b118 kind:arm_call_thumb to:0x02057bb4 module:overlay(0) from:0x0217b12c kind:arm_call_thumb to:0x0209a228 module:overlay(0) from:0x0217b140 kind:arm_call to:0x0207bfdc module:overlay(0) diff --git a/include/Actor/ActorItemBoomerang.hpp b/include/Actor/ActorItemBoomerang.hpp index 0e6d25ad..73cb2305 100644 --- a/include/Actor/ActorItemBoomerang.hpp +++ b/include/Actor/ActorItemBoomerang.hpp @@ -52,7 +52,7 @@ public: class ActorItemBoomerang_CC : public UnkStruct_ov031_Items_01 { public: /* 00 (vtable) */ - /* 2C */ unk32 mUnk_2C; + /* 2C */ ActorRef mUnk_2C; /* 30 */ ActorItemBoomerang_Unknown mUnk_30; /* 40 */ @@ -74,8 +74,7 @@ public: /* 11C */ ActorItemBoomerang_11C mUnk_11C; /* 128 */ u32 mUnk_128; /* 12C */ UnkStruct_PlayerGet_ec mUnk_12C[0x3]; - /* 138 */ u16 mUnk_138; // timer ? - /* 13A */ u16 mUnk_13A; + /* 138 */ Timer mUnk_138; /* 13C */ u16 mUnk_13C; /* 13E */ PAD(0x13E, 0x140); /* 140 */ UnkStruct_ov031_Items_02 mUnk_140; diff --git a/include/Actor/ActorItemTornado.hpp b/include/Actor/ActorItemTornado.hpp index 7a3a1af1..355f4628 100644 --- a/include/Actor/ActorItemTornado.hpp +++ b/include/Actor/ActorItemTornado.hpp @@ -4,13 +4,22 @@ #include "Actor/ActorProfile.hpp" #include "Player/PlayerGet.hpp" #include "global.h" +#include "nitro/types.h" #include "types.h" -class UnkStruct_ov031_02112ff4 : public UnkStruct_ov031_Items_00 { +class UnkStruct_ov031_02112ff4 : public UnkStruct_ov031_Items_00_Base { public: + /* 00 (base) */ + /* 04 */ Actor *mUnk_04; + /* 08 */ + + UnkStruct_ov031_02112ff4(Actor *pActor) : + mUnk_04(pActor) {} + // data_ov031_02112ff4 /* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1, unk32 param2); - /* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 param2); + /* 0C */ virtual bool vfunc_0C(MapObjRef ref, UnkStruct_ov031_020e54d4 *param2, const VecFx32 *param3, + const VecFx32 *param4) override; }; enum ActorItemTornadoState_ { @@ -20,21 +29,40 @@ enum ActorItemTornadoState_ { ActorItemTornadoState_MAX, }; +class UnkSystem5_Derived2 { +public: + /* 00 */ UnkSystem5 mUnk_00; + /* 20 */ unk32 mUnk_20; + /* 24 */ PAD(0x24, 0x40); + /* 40 */ + + UnkSystem5_Derived2(UnkStruct_ov000_02058a84 *param1, G3d_Model *param2) : + mUnk_00(&this->mUnk_20, param2) { + this->mUnk_00.func_ov000_020577a4(param1, 0, false); + } +}; + +class ActorItemTornado_17C : public UnkStruct_PlayerGet_74 { +public: + /* 00 (base) */ + /* 18 */ + + /* 00 */ virtual void vfunc_00(unk32 param1, unk32 param2) override; + + ActorItemTornado_17C(UnkStruct_ov000_0208f820 *param1) : + UnkStruct_PlayerGet_74(param1) {} +}; + class ActorItemTornado : public Actor { public: /* 000 (base) */ /* 094 */ ModelRender mUnk_94; - /* 0F4 */ UnkSystem5 mUnk_F4; - /* 114 */ unk32 mUnk_114; - /* 118 */ PAD(0x118, 0x134); - /* 134 */ UnkSystem5 mUnk_134; - /* 154 */ unk32 mUnk_154; - /* 158 */ PAD(0x158, 0x174); + /* 0F4 */ UnkSystem5_Derived2 mUnk_F4; + /* 134 */ UnkSystem5_Derived2 mUnk_134; /* 174 */ UnkStruct_ov031_02112ff4 mUnk_174; - /* 178 */ PAD(0x178, 0x17C); - /* 17C */ UnkStruct_PlayerGet_74 mUnk_17C; + /* 17C */ ActorItemTornado_17C mUnk_17C; /* 194 */ UnkStruct_ov031_Items_01 mUnk_194; - /* 1C0 */ VecFx32 mUnk_1C0; + /* 1C0 */ VecFx32Cpp mUnk_1C0; /* 1CC */ u16 mUnk_1CC; /* 1CE */ bool mUnk_1CE; /* 1CF */ bool mUnk_1CF; @@ -59,7 +87,7 @@ public: void func_ov031_020e5d18(unk32 param1); bool func_ov031_020e62c0(); bool func_ov031_020e6314(u16 param1); - bool func_ov031_020e6340(VecFx32 *param1, unk16 param2, unk16 param3); + bool func_ov031_020e6340(const VecFx32 *param1, unk16 param2, unk16 param3); bool func_ov031_020e6398(); }; diff --git a/include/Actor/ActorRef.hpp b/include/Actor/ActorRef.hpp index 9256e276..59157561 100644 --- a/include/Actor/ActorRef.hpp +++ b/include/Actor/ActorRef.hpp @@ -1,5 +1,6 @@ #pragma once +#include "global.h" #include "types.h" // mapping: @@ -28,6 +29,52 @@ enum ActorRefId_ { //! TODO: more ids? }; +//! TODO: remove ActorRef and MapObjRef in favor of this +struct RefStruct { + union { + // common + struct { + /* 00 */ u16 index : 14; + /* 00 */ u16 type : 2; + /* 02 */ u16 id : 12; + /* 02 */ u16 unk : 4; + /* 04 */ + }; + + // ActorRef + struct { + /* 00 */ u16 type_index; + /* 02 */ u16 unk_id; + /* 04 */ + } acRef; + + // MapObjRef + struct { + union { + struct { + /* 00 */ u8 unk_00; + /* 01 */ u8 unk_01; + }; + u16 unk_00_u16; + }; + /* 02 */ Vec2b unk_02; + /* 04 */ + } moRef; + + u32 data; + }; + + RefStruct() {} + + RefStruct(u32 value) { + this->data = value; + } + + void Reset() { + this->data = 0; + } +}; + struct ActorRef { union { struct { diff --git a/include/MapObject/MapObject.hpp b/include/MapObject/MapObject.hpp index 3c92d37e..f9888037 100644 --- a/include/MapObject/MapObject.hpp +++ b/include/MapObject/MapObject.hpp @@ -58,7 +58,7 @@ public: /* 05 */ unk8 mUnk_05; /* 06 */ unk8 mUnk_06; /* 07 */ unk8 mUnk_07; - /* 08 */ unk32 mUnk_08; + /* 08 */ u32 mUnk_08; /* 0C */ VecFx32 mUnk_0C; /* 18 */ diff --git a/include/Unknown/Common.hpp b/include/Unknown/Common.hpp index 0fb6761d..a2ede32f 100644 --- a/include/Unknown/Common.hpp +++ b/include/Unknown/Common.hpp @@ -1370,3 +1370,10 @@ struct UnkStruct_ov021_02106c5c { /* 12 */ u8 unk_12; /* 13 */ u8 unk_13; }; + +class Actor; +struct UnkStruct_ov031_020e5d18_00 { + /* 00 */ Actor *mUnk_00; + /* 04 */ PAD(0x04, 0x18); + /* 18 */ +}; diff --git a/include/Unknown/UnkStruct_027e0ce0.hpp b/include/Unknown/UnkStruct_027e0ce0.hpp index 0ba5167b..8eaee272 100644 --- a/include/Unknown/UnkStruct_027e0ce0.hpp +++ b/include/Unknown/UnkStruct_027e0ce0.hpp @@ -1,5 +1,6 @@ #pragma once +#include "Physics/Cylinder.hpp" #include "Unknown/UnkStruct_0204a110.hpp" #include "flags.h" #include "global.h" @@ -333,7 +334,7 @@ public: /* 04 */ virtual void vfunc_04(); /* 08 */ virtual void vfunc_08(); /* 0C */ virtual void vfunc_0C(); - /* 10 */ virtual void vfunc_10(); + /* 10 */ virtual void vfunc_10(const VecFx32 *param1); /* 14 */ virtual void vfunc_14(const VecFx32 *param1); }; @@ -930,9 +931,7 @@ public: void func_ov000_0208ba94(unk32 param1, VecFx32 *param2); void func_ov000_0208bacc(unk32 param1, VecFx32 *param2); void func_ov000_0208bbd4(unk32 param1, VecFx32 *param2, u16 param3); - bool func_ov000_0208bc1c(unk32 param1, unk32 param2, void *param3, unk32 param4, void *param5, unk32 param6); - bool func_ov000_0208bc1c(unk32 param1, unk32 param2, unk32 param3, unk32 param4, void *param5, unk32 param6); - bool func_ov000_0208bc1c(unk32 param1, unk32 param2, unk32 param4, void *param5, unk32 param6); + bool func_ov000_0208bc1c(unk32 param1, unk32 param2, unk32 param3, Cylinder *param4, void *param5, unk32 param6); void func_ov000_0208bc9c(unk32 param1, unk32 param2); void func_ov000_0208bd20(bool param1, unk32 param2, unk32 param3); void func_ov000_0208bd30(bool param1, unk32 param2, unk32 param3, unk32 param4); diff --git a/include/timer.hpp b/include/timer.hpp index 6477b17e..6ba2b644 100644 --- a/include/timer.hpp +++ b/include/timer.hpp @@ -31,6 +31,18 @@ struct Timer { return true; } + bool HasExpiredAlt() { + bool ret = false; + + if (this->value >= this->max) { + ret = true; + } else { + this->value++; + } + + return ret; + } + void Set(u16 value, u16 max) { this->max = max; this->value = value; diff --git a/src/031_Land/Actor/ActorBlast.cpp b/src/031_Land/Actor/ActorBlast.cpp index dcf1ee48..7502a6de 100644 --- a/src/031_Land/Actor/ActorBlast.cpp +++ b/src/031_Land/Actor/ActorBlast.cpp @@ -8,12 +8,9 @@ #include "Unknown/UnkStruct_027e09c0.hpp" #include "Unknown/UnkStruct_027e0cd8.hpp" #include "Unknown/UnkStruct_027e0cec.hpp" - -struct UnkStruct_ov031_020e5d18_00 { - /* 00 */ Actor *mUnk_00; - /* 04 */ PAD(0x04, 0x18); - /* 18 */ -}; +#include "Unknown/UnkStruct_027e0d2c.hpp" +#include "global.h" +#include "math.hpp" extern VecFx32 data_027e07d4; @@ -28,8 +25,68 @@ ActorProfileBlast::ActorProfileBlast() : VecFx32_Init(FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(0.0f), &this->mUnk_04.pos); } -// non-matching -bool ActorBlast_E8::vfunc_0C(MapObjRef ref, UnkStruct_ov031_020e54d4 *param2, const VecFx32 *param3, const VecFx32 *param4) {} +bool ActorBlast_E8::vfunc_0C(MapObjRef ref, UnkStruct_ov031_020e54d4 *param2, const VecFx32 *param3, const VecFx32 *param4) { + struct { + VecFx32 unk_00; + int pad; + } sp24; + struct { + VecFx32 unk_00; + VecFx32 unk_0C; + } spC; + s32 temp_r1; + s32 temp_r2_2; + s32 var_r0; + s32 var_r0_2; + u16 *temp_r2; + Actor *temp_r0; + MapObject *temp_r0_2; + + param2->vfunc_10(&sp24.unk_00); + + if (((ActorRef *) &ref)->type != 0) { + temp_r0 = gpActorManager->func_01fff3b4(*(ActorRef *) &ref); + + if (temp_r0 != NULL) { + var_r0 = this->mUnk_04->mPos.y - (sp24.unk_00.y + temp_r0->mPos.y); + + if (var_r0 < 0) { + var_r0 = 0 - var_r0; + } + + if (var_r0 > 0x800) { + return false; + } + } + } else if (ref.unk_00_u16 & 0x1000) { + MapObjRef sp8 = ref; + Vec2bCpp sp4 = sp8.GetUnk02(); + temp_r0_2 = gpMapObjManager->func_01fff498(sp4); + + if (temp_r0_2 != NULL) { + if (temp_r0_2->GetMapObjectId() == 0x424C4354) { + param2->vfunc_14(&spC.unk_00); + + if (this->mUnk_04->mPos.y < spC.unk_00.y + temp_r0_2->mPos.y && + temp_r0_2->mPos.y + this->mUnk_04->mPos.y > spC.unk_0C.y + 0x800) { + return false; + } + } else { + var_r0_2 = this->mUnk_04->mPos.y - (sp24.unk_00.y + temp_r0_2->mPos.y); + + if (var_r0_2 < 0) { + var_r0_2 = -var_r0_2; + } + + if (var_r0_2 > 0x800) { + return false; + } + } + } + } + + return this->UnkStruct_027e0ce0_38_Base::vfunc_0C(ref, param2, param3, param4); +} ActorBlast::ActorBlast() : mUnk_94(FX_F32_TO_FX32(0.625f)), @@ -37,6 +94,8 @@ ActorBlast::ActorBlast() : mUnk_E8(this) {} bool ActorBlast::Init(unk32 param1) { +#pragma unused(param1) + this->mPos.y += FX_F32_TO_FX32(0.5f); this->mUnk_C8 = *this->mUnk_34; @@ -88,23 +147,25 @@ bool ActorBlast::Init(unk32 param1) { // non-matching void ActorBlast::Update() { - fx32 f0 = this->mUnk_F0; - fx32 newVal = this->mUnk_94 + this->mUnk_F4; - this->mUnk_94 = newVal; - if (newVal <= f0) { - this->mUnk_C8.size = newVal; - this->mUnk_D8.size = newVal; + this->mUnk_94 += this->mUnk_F4; + + if (this->mUnk_94 <= this->mUnk_F0) { + this->mUnk_C8.size = this->mUnk_94; + this->mUnk_D8.size = this->mUnk_94; } else { - this->mUnk_94 = f0; - this->mUnk_C8.size = ~FX_F32_TO_FX32(0.0f); + this->mUnk_94 = this->mUnk_F0; + this->mUnk_C8.size = -1; } + if (this->mUnk_98.HasExpired()) { this->func_ov000_020984d0(); return; } + if (this->mUnk_C8.size <= FX_F32_TO_FX32(0.0f)) { return; } + this->mUnk_9C.mUnk_0C = this->mUnk_C8; data_027e09c0->func_ov000_0207e58c(this->mRef, 0x0, 0xC, &this->mUnk_9C); @@ -112,18 +173,18 @@ void ActorBlast::Update() { UnkStruct_ov031_020e5d18_00 sp14; sp14.mUnk_00 = NULL; - func_01ffe6c4(&sp14.mUnk_00, this->mRef, &data_027e07d4, &data_027e07d4, 0x1C, NULL, &this->mUnk_E8); + UnkStruct_ov031_020e5d18_00 *psp14 = (UnkStruct_ov031_020e5d18_00 *) &sp14; + func_01ffe6c4(&psp14->mUnk_00, this->mRef, &data_027e07d4, &data_027e07d4, 0x1C, NULL, &this->mUnk_E8); - sp14.mUnk_00->func_ov000_0207df88(&this->mUnk_C8, 0x0); + ((Actor *) psp14)->func_ov000_0207df88(&this->mUnk_C8, 0x0); if (this->func_ov000_0209867c(0x0) < 0x1000) { - data_027e09c0->func_ov000_0207e458(0x4, 0x0, &this->mUnk_C8.pos, 0x1, NULL, 0x1); + data_027e09c0->func_ov000_0207e458(0x4, 0x0, &this->mUnk_C8.pos, 0x1, NULL, 0x0); } - if (!data_027e0ce0->func_01fff1a4()) { - return; + if (data_027e0ce0->func_01fff1a4()) { + data_027e09c0->func_ov000_0207e458(0x2, 0x1A, &this->mUnk_C8.pos, 0x2, NULL, 0x0); } - data_027e09c0->func_ov000_0207e458(0x2, 0x1A, &this->mUnk_C8.pos, 0x2, NULL, 0x0); } void ActorBlast::vfunc_24() { diff --git a/src/031_Land/Actor/ActorBomb.cpp b/src/031_Land/Actor/ActorBomb.cpp index 539e3a63..9a466c97 100644 --- a/src/031_Land/Actor/ActorBomb.cpp +++ b/src/031_Land/Actor/ActorBomb.cpp @@ -26,12 +26,6 @@ #pragma readonly_strings on -struct UnkStruct_ov031_020e5d18_00 { - /* 00 */ Actor *mUnk_00; - /* 04 */ PAD(0x04, 0x18); - /* 18 */ -}; - extern VecFx32 data_027e07d4; extern unk32 data_ov000_020aecf8; diff --git a/src/031_Land/Actor/ActorItemBoomerang.cpp b/src/031_Land/Actor/ActorItemBoomerang.cpp index 73a1e89a..6b8b70a0 100644 --- a/src/031_Land/Actor/ActorItemBoomerang.cpp +++ b/src/031_Land/Actor/ActorItemBoomerang.cpp @@ -1,6 +1,7 @@ #include "Actor/ActorItemBoomerang.hpp" #include "CommonFuncs.hpp" +#include "Item/Item.hpp" #include "MapObject/MapObjectManager.hpp" #include "MapObject/MapObjectUnkICEB.hpp" #include "System/SysNew.hpp" @@ -10,6 +11,10 @@ #include "Unknown/UnkStruct_027e0cd8.hpp" #include "Unknown/UnkStruct_027e0cec.hpp" #include "Unknown/UnkStruct_027e0d2c.hpp" +#include "global.h" +#include "nitro/fx.h" +#include "nitro/math.h" +#include "nitro/types.h" DECL_PROFILE(ActorProfileItemBoomerang); @@ -20,14 +25,17 @@ Actor *ActorProfileItemBoomerang::Create() { ActorProfileItemBoomerang::ActorProfileItemBoomerang() : ActorProfile(ActorId_ITBM) {} +static inline G3d_Model *GetModel() { + UnkStruct_027e0ce0_1C *ptr = data_027e0ce0->mUnk_1C; + return ptr->func_ov000_0208ed30(0x0, 0x1, ItemManager::func_ov000_020a8974(ItemFlag_Boomerang)->mUnk_10); +} + // non-matching ActorItemBoomerang::ActorItemBoomerang() : - mUnk_94(data_027e0ce0->mUnk_1C->func_ov000_0208ed30(0x0, 0x1, ItemManager::func_ov000_020a8974(0x1)->mUnk_10), true), + mUnk_94(GetModel(), true), mUnk_11C(this), - mUnk_12C(), - mUnk_138(0x0), - mUnk_13A(0x0), - mUnk_13C((u16) 0x8D71), + mUnk_138(0, 0), + mUnk_13C(0x8D71), mUnk_140(0x1000, 0x0) { this->mState = ActorItemBoomerangState_0; this->mTimer.Reset(); @@ -80,129 +88,156 @@ void ActorItemBoomerang::func_ov031_020e49b0(unk32 param1) { // non-matching void ActorItemBoomerang::Update() { - VecFx32_Copy(&this->mPos, &this->mPrevPos); - VecFx32_Add(&this->mPos, &this->mVel, &this->mPos); + VecFx32 sp6C; + UnkStruct_ov031_020e5d18_00 sp54; + VecFx32 sp48; + VecFx32 sp3C; + UnkStruct_ov031_020e5d18_00 sp24; + MapObjRef sp20; + struct { + fx32 unk_00; + fx32 unk_04; + } sp18; + RefStruct sp14; + Vec2bCpp spE; + Vec2bCpp spC; - if (func_ov000_0205aeac() && this->mUnk_128 == 0x1 || this->mUnk_128 == 0x2) { + STACK_PAD(0x04); + + VecFx32 *temp_r0 = &this->mPos; + VecFx32_Copy(&this->mPos, &this->mPrevPos); + VecFx32_Add(temp_r0, &this->mVel, temp_r0); + + if ((func_ov000_0205aeac() && this->mUnk_128 == 0x1) || this->mUnk_128 == 0x2) { VecFx32_Copy(&this->mPos, &this->mUnk_140.mUnk_00); } - this->mTimer.Update(); this->mAngle += DEG_TO_ANG(45); + this->mTimer.Update(); this->func_ov031_020e52a0(); data_027e09a8->func_ov000_02071d34(&this->mRef, this->mUnk_13C, &this->mPos, 0x0); - bool var2 = false; switch (this->mState) { case ActorItemBoomerangState_0: { - this->mUnk_A0.mUnk_0C.Init(this->mPos.x, this->mPos.y, this->mPos.z, FX_F32_TO_FX32(0.3f)); + s32 flags = 0; + bool var1 = false; + + this->mUnk_A0.mUnk_0C.Init(this->mPos.x, this->mPos.y - 0x19A, this->mPos.z, 0x666); data_027e09c0->func_ov000_0207e58c(this->mRef, 0xC, 0x8, &this->mUnk_A0); - bool var1 = false; - if (data_027e0ce0->func_ov000_0208bc1c(0x1, 0x0, 0x16, 0x0, 0x0, 0x0)) { - var1 = true; - this->mUnk_13A = 0x14; - this->mUnk_138 = 0x0; + if (data_027e0ce0->func_ov000_0208bc1c(0x1, 0x0, 0x16, &this->mUnk_A0.mUnk_0C, 0x0, 0x0)) { + this->mUnk_138.Set(0, 20); + var1 = true; } - Actor *sp54; /* actor* ? */ - func_01ffe6c4(&sp54, this->mRef, &this->mPos, &this->mPrevPos, 0x1C, NULL, &this->mUnk_11C); - unk32 tmp = sp54->func_ov000_0207df88((Cylinder *) &this->mUnk_CC.mUnk_30.mUnk_00, 0xC); - func_01ffe6c4(&sp54, this->mRef, &this->mPos, &this->mPrevPos, 0x1F, NULL, &this->mUnk_11C); + sp54.mUnk_00 = NULL; - if ((tmp | sp54->func_ov000_0207e294((Cylinder *) &this->mUnk_10C)) == 0 && !var1) { - if (data_027e0ce0->mUnk_2C->GetCurrentItem() != ItemFlag_Boomerang) { - this->SetState(ActorItemBoomerangState_1); - return; - } + func_01ffe6c4(&sp54.mUnk_00, this->mRef, &this->mPos, &this->mPrevPos, 0x1C, NULL, &this->mUnk_11C); - VecFx32 sp6C; - ActorRef sp14; - if (!data_027e0d2c->func_ov031_020d962c(&this->mPos, 0x4CD, &sp6C, &sp14)) { - this->SetState(ActorItemBoomerangState_1); - } else { - unk32 vecLength = VecFx32_Length(&this->mVel); - unk32 lengthModified = (vecLength << 0xA) + 0x800; - unk32 sp18 = lengthModified; - func_01ff916c(&sp18, 0x0, FX_MUL(vecLength, lengthModified)); - func_01ffb714(&sp6C, &this->mPos, &this->mVel); - func_01ff97c8(&this->mPos, sp18 + 0x200); - } + flags |= ((Actor *) &sp54)->func_ov000_0207df88((Cylinder *) &this->mUnk_CC.mUnk_30.mUnk_00, 0xC); - if (sp14.type != 0) { - this->mUnk_CC.mUnk_0C.pos.z = this->mPos.z; - this->mUnk_CC.mUnk_0C.pos.y = this->mPos.y + FX_F32_TO_FX32(-0.1003f); - this->mUnk_CC.mUnk_0C.size = 0xA000; - this->mUnk_CC.mUnk_0C.pos.x = this->mPos.x; - data_027e09c0->func_ov000_0207e58c(this->mRef, 0xC, 0x8, &this->mUnk_CC); - return; - } - if (!(sp14.data & 0x1000)) { - return; - } + func_01ffe6c4(&sp54.mUnk_00, this->mRef, &this->mPos, &this->mPrevPos, 0x1F, NULL, &this->mUnk_11C); - Vec2bCpp pos; - pos.x = 0x0; - pos.y = 0x0; - MapObject *object = gpMapObjManager->func_01fff498(pos); - if (object == NULL) { - return; - } - object->vfunc_1C(this->mRef, 0xC, &this->mVel); - if (object->mUnk_10 != NULL) { - unk32 val = object->mUnk_10->mUnk_0C.y; - if (val == 0x2) { - this->func_ov031_020e5034(0x1); - } else if (val == 0x4) { - this->func_ov031_020e5034(0x2); - } - } - MapObjectId objectId = object->GetMapObjectId(); - if (objectId != MapObjectId_SKDI && objectId != MapObjectId_SWHT && objectId != MapObjectId_Pot) { - this->func_ov031_020e49b0(0x8D70); - } + flags |= ((Actor *) &sp54)->func_ov000_0207e294((Cylinder *) &this->mUnk_10C); + + if (flags != 0 || var1) { + this->func_ov031_020e49b0(0x8D70); return; } - this->func_ov031_020e49b0(0x8D70); + + if (data_027e0ce0->mUnk_2C->GetCurrentItem() != ItemFlag_Boomerang) { + this->SetState(ActorItemBoomerangState_1); + return; + } + + sp14.Reset(); + + if (!data_027e0d2c->func_ov031_020d962c(&this->mPos, 0x4CD, &sp6C, (ActorRef *) &sp14)) { + this->SetState(ActorItemBoomerangState_1); + } else { + + sp18.unk_00 = VecFx32_Length(&this->mVel); + + func_01ff916c(&sp18.unk_00, 0x0, FX_MUL(sp18.unk_00, 0x400)); + func_01ffb714(&sp6C, &this->mPos, &this->mVel); + func_01ff97c8(&this->mVel, sp18.unk_00 + 0x200); + } + + if (sp14.type != 0) { + this->mUnk_CC.mUnk_0C.pos.z = this->mPos.z; + this->mUnk_CC.mUnk_0C.pos.y = this->mPos.y + FX_F32_TO_FX32(-0.1003f); + this->mUnk_CC.mUnk_0C.size = 0xA000; + this->mUnk_CC.mUnk_0C.pos.x = this->mPos.x; + data_027e09c0->func_ov000_0207e58c(this->mRef, 0xC, 0x8, &this->mUnk_CC); + return; + } + + if (!(sp14.moRef.unk_00_u16 & 0x1000)) { + return; + } + + sp20 = sp14.data; + spE = sp20.GetUnk02(); + + MapObject *temp_r0_5 = gpMapObjManager->func_01fff498(spE); + + if (temp_r0_5 == NULL) { + return; + } + + temp_r0_5->vfunc_1C(this->mRef, 0x0C, &this->mVel); + + if (temp_r0_5->mUnk_10 != NULL) { + u32 val = (temp_r0_5->mUnk_10->mUnk_08 >> 0x09) & 0x07; + + if (val == 0x02) { + this->func_ov031_020e5034(0x01); + } else if (val == 0x04) { + this->func_ov031_020e5034(0x02); + } + } + + MapObjectId objectId = temp_r0_5->GetMapObjectId(); + + if (objectId != MapObjectId_SKDI && objectId != MapObjectId_SWHT && objectId != MapObjectId_Pot) { + this->func_ov031_020e49b0(0x8D70); + return; + } + break; } case ActorItemBoomerangState_1: { - this->mUnk_A0.mUnk_0C.Init(this->mPos.x, this->mPos.y, this->mPos.z, FX_F32_TO_FX32(0.3f)); + bool var_r4_2 = false; + + this->mUnk_A0.mUnk_0C.Init(this->mPos.x, this->mPos.y - 0x19A, this->mPos.z, 0x666); data_027e09c0->func_ov000_0207e58c(this->mRef, 0xC, 0x8, &this->mUnk_A0); - Actor *sp24; /* actor* ? */ - func_01ffe6c4(&sp24, this->mRef, &this->mPos, &this->mPrevPos, 0x1C, NULL, &this->mUnk_11C); - sp24->func_ov000_0207df88((Cylinder *) &this->mUnk_CC.mUnk_30.mUnk_00, 0xC); - bool var3 = false; - if ((u32) this->mUnk_138 < (u32) this->mUnk_13A) { - ++this->mUnk_138; - } else { - var2 = true; + sp24.mUnk_00 = NULL; + func_01ffe6c4(&sp24.mUnk_00, this->mRef, &this->mPos, &this->mPrevPos, 0x1C, NULL, &this->mUnk_11C); + ((Actor *) &sp24)->func_ov000_0207df88((Cylinder *) &this->mUnk_CC.mUnk_30.mUnk_00, 0xC); + + if (this->mUnk_138.HasExpiredAlt() && + data_027e0ce0->func_ov000_0208bc1c(0x1, 0x0, 0x16, &this->mUnk_A0.mUnk_0C, 0x0, 0x0)) { + var_r4_2 = true; } - if (var2 && data_027e0ce0->func_ov000_0208bc1c(0x1, 0x0, 0x16, 0x0, 0x0, 0x0)) { - var3 = true; - } - if (var3) { - this->mUnk_13A = 0x14; - this->mUnk_138 = 0x0; + + if (var_r4_2) { + this->mUnk_138.Set(0, 20); this->func_ov031_020e49b0(0x8D70); } - Vec2bCpp spC; - VecFx32 sp3C; - VecFx32_Copy(data_027e0ce0->func_01fff148(0x0), &sp3C); + sp3C = *data_027e0ce0->func_01fff148(0x0); + sp3C.y += 0x800; if (func_01ffb9cc(&sp3C, &this->mPos) <= 0x800) { if (this->mUnk_128 == 0x2) { func_01ffedac(&spC, &sp3C); - Vec2bCpp pos; - pos.x = 0x0; - pos.y = 0x0; - MapObject *object = gpMapObjManager->func_01fff498(pos); + MapObject *object = gpMapObjManager->func_01fff498(spC); + if (object != NULL && object->GetMapObjectId() == MapObjectId_ICEB) { ((MapObjectUnkICEB *) object)->func_ov094_02174870(); } @@ -211,7 +246,7 @@ void ActorItemBoomerang::Update() { this->Kill(); return; } - VecFx32 sp48; + func_01ff93c0(&this->mVel, 0xC00); func_01ffb714(&sp3C, &this->mPos, &sp48); func_01ff97c8(&sp48, 0x200); @@ -234,7 +269,7 @@ void ActorItemBoomerang::func_ov031_020e5034(unk32 param1) { switch (this->mUnk_128) { case 0x1: this->mUnk_13C = 0x8D72; - for (ptr = this->mUnk_12C; ptr != (void *) &this->mUnk_138; ++ptr) { + for (ptr = this->mUnk_12C; ptr != &this->mUnk_12C[ARRAY_LEN(this->mUnk_12C)]; ++ptr) { ptr->func_ov000_020a0334(); } @@ -244,17 +279,20 @@ void ActorItemBoomerang::func_ov031_020e5034(unk32 param1) { if (!func_ov000_0205aeac()) { return; } + if (this->mUnk_12C[0].mUnk_00 != NULL) { this->mUnk_12C[0].mUnk_00->mUnk_A0 = 0; } + if (this->mUnk_12C[1].mUnk_00 != NULL) { this->mUnk_12C[1].mUnk_00->mUnk_A0 = 0; } + data_027e0cd8->mUnk_0C->func_ov000_02080a5c(&this->mUnk_140.mUnk_00); return; case 0x2: this->mUnk_13C = 0x8D73; - for (ptr = this->mUnk_12C; ptr != (void *) &this->mUnk_138; ++ptr) { + for (ptr = this->mUnk_12C; ptr != &this->mUnk_12C[ARRAY_LEN(this->mUnk_12C)]; ++ptr) { ptr->func_ov000_020a0334(); } @@ -289,9 +327,8 @@ void ActorItemBoomerang::func_ov031_020e5220() { data_027e0cec->func_ov000_0209feac(0x81C, &this->mPos, 0x2, 0x0, 0x0); } -// non-matching void ActorItemBoomerang::func_ov031_020e52a0() { - if (this->mUnk_128 == 0x1 || this->mUnk_128 == 0x2) { + if (!(this->mUnk_128 != 0x1 && this->mUnk_128 != 0x2)) { for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_12C; ptr != this->mUnk_12C + 0x3; ++ptr) { UnkSystem7_UnkStruct_00 *data = ptr->mUnk_00; @@ -301,10 +338,10 @@ void ActorItemBoomerang::func_ov031_020e52a0() { data->mUnk_28.z = this->mPos.z + data->mUnk_20->mUnk_00->mUnk_04.z; } } - return; - } - for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_12C; ptr != this->mUnk_12C + 0x3; ++ptr) { - ptr->func_ov000_020a0334(); + } else { + for (UnkStruct_PlayerGet_ec *ptr = this->mUnk_12C; ptr != this->mUnk_12C + 0x3; ++ptr) { + ptr->func_ov000_020a0334(); + } } } @@ -324,15 +361,16 @@ void ActorItemBoomerang_CC::vfunc_10(Actor *actor) { data_027e0d2c->func_ov031_020d95c8(actor->mRef); } -// non-matching bool ActorItemBoomerang_CC::vfunc_0C(Actor *actor, VecFx32 *param2) { if (actor != NULL) { - if (actor->mRef.Get32() == this->mUnk_2C && actor->mVel.x == FX_F32_TO_FX32(0.0f) && - actor->mVel.y == FX_F32_TO_FX32(0.0f) && actor->mVel.z == FX_F32_TO_FX32(0.0f)) { - this->mUnk_2C = 0x0; + u32 refData = *(vu32 *) &this->mUnk_2C; + + if (*(u32 *) &actor->mRef == refData && VecFx32_IsCleared(&actor->mVel)) { + this->mUnk_2C.Reset(); return UnkStruct_ov031_Items_01::vfunc_0C(actor, param2); } } + return false; } diff --git a/src/031_Land/Actor/ActorItemTornado.cpp b/src/031_Land/Actor/ActorItemTornado.cpp index 6e233546..fece3b2e 100644 --- a/src/031_Land/Actor/ActorItemTornado.cpp +++ b/src/031_Land/Actor/ActorItemTornado.cpp @@ -1,5 +1,8 @@ #include "Actor/ActorItemTornado.hpp" +#include "Actor/ActorRef.hpp" #include "CommonFuncs.hpp" +#include "Map/MapObjectId.hpp" +#include "Physics/Cylinder.hpp" #include "System/SysNew.hpp" #include "Unknown/UnkStruct_027e0958.hpp" #include "Unknown/UnkStruct_027e09a8.hpp" @@ -7,14 +10,56 @@ #include "Unknown/UnkStruct_027e0cec.hpp" #include "Unknown/UnkStruct_027e0d38.hpp" #include "Unknown/UnkStruct_ov000_020b4ec4.hpp" +#include "math.hpp" +#include "nitro/fx.h" +#include "nitro/math.h" -struct UnkStruct_ov031_020e5d18_00 { - Actor *mUnk_00; - u8 mUnk_04[0x14]; -}; +#pragma readonly_strings on extern char *data_ov031_02110a88; -extern Cylinder data_ov031_02112fdc; + +static const Cylinder data_ov031_02112fdc(0, 0xD9A, 0, 0xCCD); + +bool UnkStruct_ov031_02112ff4::vfunc_08(const UnkStruct_ov031_020f3310 *param1, unk32 param2) { +#pragma unused(param2) + return ((param1->mUnk_04->mUnk_24[param1->mUnk_00->mUnk_06] >> 0x1A) & 0x01) != 0x01; +} + +bool UnkStruct_ov031_02112ff4::vfunc_0C(MapObjRef ref, UnkStruct_ov031_020e54d4 *param2, const VecFx32 *param3, + const VecFx32 *param4) { +#pragma unused(param3, param4) + + if (((param2->mUnk_08 >> 0x1A) & 0x01) == 0x01) { + return false; + } + + if (ref.unk_00_u16 == 0x1000) { + MapObjRef sp4 = ref; + Vec2bCpp sp0 = sp4.GetUnk02(); + + MapObject *temp_r5 = gpMapObjManager->func_01fff498(sp0); + + switch (temp_r5->GetMapObjectId()) { + case MapObjectId_SWWN: + ((ActorItemTornado *) this->mUnk_04)->func_ov031_020e6340(&temp_r5->mPos, 0x32, 0x04); + break; + case MapObjectId_STNE: + case MapObjectId_Pot: + temp_r5->vfunc_1C(this->mUnk_04->mRef, 0x04, &this->mUnk_04->mVel); + return false; + default: + break; + } + } + + return true; +} + +void ActorItemTornado_17C::vfunc_00(unk32 param1, unk32 param2) { +#pragma unused(param1, param2) + ActorItemTornado *pActor = (ActorItemTornado *) this->mUnk_14; //! TODO: conflicting types + func_01ffc5a0(&pActor->mUnk_94, pActor->mUnk_1DC, pActor->mAngle, &this->mUnk_04); +} DECL_PROFILE(ActorProfileItemTornado); @@ -29,30 +74,36 @@ ActorProfileItemTornado::ActorProfileItemTornado() : // non-matching ActorItemTornado::ActorItemTornado() : - mUnk_94(data_027e0ce0->mUnk_1C->func_ov000_0208ed30(0x0, 0x1, data_ov031_02110a88)), - mUnk_F4(&this->mUnk_114, this->mUnk_94.mpModel), - mUnk_134(&this->mUnk_154, this->mUnk_94.mpModel), - mUnk_17C(NULL), - mUnk_1CC(0x0), + mUnk_94(data_027e0ce0->mUnk_1C->func_ov000_0208ed30(0x0, 0x1, "ef_tsumuji")), + mUnk_F4(data_027e0ce0->mUnk_1C->func_ov000_0208ee94(0x00, 0x01, "ef_tsumuji", 0x00), this->mUnk_94.mpModel), + mUnk_134(data_027e0ce0->mUnk_1C->func_ov000_0208ee94(0x00, 0x01, "ef_tsumuji", 0x02), this->mUnk_94.mpModel), + mUnk_174(this), + mUnk_17C((UnkStruct_ov000_0208f820 *) this), //! TODO: conflicting type + mUnk_1C0(0, 0, 0), + mUnk_1CC(0x00), + mUnk_1CE(false), + mUnk_1CF(false), + mUnk_1D0(0x00), mUnk_1D1(this->mUnk_94.func_ov000_02057ee0()->numMat), - mUnk_1D2(0x4), - mUnk_1D4(0x2), - mUnk_1D6(0x4), - mUnk_1D8(0x0), - mUnk_1DC(0x0) { - this->mUnk_94.func_ov000_02057c98(&this->mUnk_F4); - this->mUnk_94.func_ov000_02057c98(&this->mUnk_134); + mUnk_1D2(0x04), + mUnk_1D4(0x02), + mUnk_1D6(0x04), + mUnk_1D8(0x00), + mUnk_1DC(0x00) { + this->mUnk_94.func_ov000_02057c98(&this->mUnk_F4.mUnk_00); + this->mUnk_94.func_ov000_02057c98(&this->mUnk_134.mUnk_00); this->mState = ActorItemTornadoState_0; this->mTimer.Reset(); } bool ActorItemTornado::Init(unk32 param1) { - u16 tmp = (u16) this->mAngle.angle_s; +#pragma unused(param1) + u16 tmp = (u16) this->mAngle.angle_u; this->mUnk_44 = 0x1F; - this->mUnk_34 = &data_ov031_02112fdc; + this->mUnk_34 = (Cylinder *) &data_ov031_02112fdc; this->mUnk_194.mUnk_04 = this->mRef; this->mUnk_194.mUnk_0C.Init(this->mPos.x, this->mPos.y + FX_F32_TO_FX32(0.85f), this->mPos.z, FX_F32_TO_FX32(0.8f)); @@ -88,7 +139,6 @@ void ActorItemTornado::SetState(ActorState state) { this->mTimer.Reset(); } -// non-matching void ActorItemTornado::func_ov031_020e5d18(unk32 param1) { VecFx32_Copy(&this->mPos, &this->mPrevPos); VecFx32_Add(&this->mPos, &this->mVel, &this->mPos); @@ -96,6 +146,7 @@ void ActorItemTornado::func_ov031_020e5d18(unk32 param1) { if (this->mUnk_1D2 != 0x0) { --this->mUnk_1D2; } + if (this->mUnk_1D4 != 0x0) { --this->mUnk_1D4; } @@ -103,15 +154,18 @@ void ActorItemTornado::func_ov031_020e5d18(unk32 param1) { if (param1 == 0x0) { ++this->mUnk_1D8; } + this->mTimer.Update(); switch (this->mState) { case ActorItemTornadoState_0: data_027e09a8->func_ov000_02071d34(&this->mRef, 0x8D6C, &this->mPos, 0x0); + if (this->mTimer.GetValue() < 10) { this->mUnk_1DC += 0x199; break; } + this->SetState(ActorItemTornadoState_1); break; case ActorItemTornadoState_1: @@ -132,13 +186,15 @@ void ActorItemTornado::func_ov031_020e5d18(unk32 param1) { this->func_ov031_020e6314(0x4); break; } + if (func_ov000_02080998(&this->mPos)) { this->func_ov031_020e6314(0x4); break; } + if (this->mUnk_1CC != 0) { if (this->mUnk_1CE != 0) { - func_01ff993c(&this->mPos, &this->mUnk_1C0, 0x266); + func_01ff993c(&this->mPos, &this->mUnk_1C0.vec, 0x266); func_01ff916c(&this->mUnk_1DC, 0x1000, 0x19A); } --this->mUnk_1CC; @@ -152,9 +208,11 @@ void ActorItemTornado::func_ov031_020e5d18(unk32 param1) { this->Kill(); } else if (this->mUnk_1D6 != 0) { if (this->mUnk_1CE != 0) { - func_01ff993c(&this->mPos, &this->mUnk_1C0, 0x266); + func_01ff993c(&this->mPos, &this->mUnk_1C0.vec, 0x266); } + this->mUnk_1DC -= func_01ffb66c(0x1000, this->mUnk_1D6); + if (this->mUnk_1DC <= 0) { this->Kill(); } @@ -163,12 +221,14 @@ void ActorItemTornado::func_ov031_020e5d18(unk32 param1) { default: break; } - this->mUnk_F4.func_01ffc3b4(); - this->mUnk_134.func_01ffc3b4(); + + this->mUnk_F4.mUnk_00.func_01ffc3b4(); + this->mUnk_134.mUnk_00.func_01ffc3b4(); if (this->mState != ActorItemTornadoState_0 && this->mState != ActorItemTornadoState_1) { return; } + if (this->mUnk_1CC != 0x0) { return; } @@ -183,7 +243,9 @@ void ActorItemTornado::func_ov031_020e5d18(unk32 param1) { data_027e09c0->func_ov000_0207e58c(this->mRef, 0x4, 0x0, &this->mUnk_194); } } + unk32 var_r0; + if (this->mUnk_1D4 != 0) { var_r0 = 0x0; } else { @@ -191,14 +253,16 @@ void ActorItemTornado::func_ov031_020e5d18(unk32 param1) { var_sp0C.mUnk_00 = NULL; func_01ffe6c4(&var_sp0C.mUnk_00, this->mRef, &this->mPos, &this->mPrevPos, (s32) (s16) this->mUnk_44, &this->mPos, &this->mUnk_174); - Actor *actor = var_sp0C.mUnk_00; - unk32 temp_r5 = actor->func_ov000_0207df88(this->mUnk_30, 4); - var_r0 = temp_r5 | actor->func_ov000_0207e294(this->mUnk_30); + + unk32 temp_r5 = ((Actor *) &var_sp0C)->func_ov000_0207df88(this->mUnk_30, 4); + var_r0 = temp_r5 | ((Actor *) &var_sp0C)->func_ov000_0207e294(this->mUnk_30); this->mUnk_46 = var_r0; } + if (var_r0 == 0x0) { return; } + if (this->mUnk_1CC == 0x0) { this->mVel.x = FX_F32_TO_FX32(0.0f); this->mVel.y = FX_F32_TO_FX32(0.0f); @@ -219,45 +283,38 @@ void ActorItemTornado::vfunc_24() { this->func_ov031_020e5d18(0x1); } +#define MUL_FXUNK2(a, b) (fx32)((((s32) (a)) * ((s32) (b)) + 0x800) >> FX32_SHIFT) + // non-matching void ActorItemTornado::vfunc_2C(Actor_vfunc_30 *param1) { if (this->mUnk_1DC <= 0x0) { return; } + if (this->mState != ActorItemTornadoState_0 && !this->func_01fff5d0(param1, 0x0)) { return; } - unk32 var_r0 = this->mUnk_1DC; - unk32 var_r1; - if (var_r0 == FX_F32_TO_FX32(1.0f)) { - var_r1 = 0x1F; - } else { - var_r0 = var_r0 * 0x1F + FX_F32_TO_FX32(0.5f); - var_r1 = var_r0 >> 0xC; - if (var_r1 > 0x1F) { - var_r1 = 0x1F; - } else if (var_r1 < 0) { - var_r1 = 0; - } - } + + unk32 var_r1 = this->mUnk_1DC == 0x1000 ? 0x1F : CLAMP(MUL_FXUNK2(this->mUnk_1DC, 0x1F), 0, 0x1F); + if (var_r1 <= 0) { return; } - G3d_Model *model = this->mUnk_94.mpModel; - func_0200ef9c(model); + u32 var_r7; + G3d_Model *var_r8 = this->mUnk_94.mpModel; + func_0200ef9c(var_r8); - if (this->mUnk_1D1 >= 0x0) { - for (unk32 index = 0x0; index < (u32) this->mUnk_1D1; ++index) { - func_0200ea38(model, index, data_ov000_020b4ec4.func_01ffc768(0x4)); - } + for (var_r7 = 0x0; var_r7 < this->mUnk_1D1; ++var_r7) { + func_0200ea38(var_r8, var_r7, data_ov000_020b4ec4.func_01ffc768(0x4)); } VecFx32 vec = this->mPos; if (this->mState == ActorItemTornadoState_0) { - vec.y += ROUND_FX32(((FX_F32_TO_FX32(1.0f) - this->mUnk_1DC) << 0xC)); + vec.y += MUL_FXUNK2(FX_F32_TO_FX32(1.0f) - this->mUnk_1DC, FX_F32_TO_FX32(1.0f)); } + data_027e0958->func_ov000_02058fc4(&this->mUnk_17C, &vec); } @@ -281,18 +338,16 @@ bool ActorItemTornado::func_ov031_020e6314(u16 param1) { return true; } -// non-matching -bool ActorItemTornado::func_ov031_020e6340(VecFx32 *param1, unk16 param2, unk16 param3) { +bool ActorItemTornado::func_ov031_020e6340(const VecFx32 *param1, unk16 param2, unk16 param3) { if (this->mState == ActorItemTornadoState_2) { return false; } - VecFx32_Init(param1->x, param1->y, param1->z, &this->mUnk_1C0); + VecFx32_Copy(param1, &this->mUnk_1C0.vec); this->mUnk_1CC = param2; this->mUnk_1D6 = param3; this->mUnk_1CE = true; - VecFx32_Init(FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(0.0f), &this->mVel); - + VecFx32_Reset(&this->mVel); return true; } diff --git a/src/031_Land/Actor/ActorUnkSWBM.cpp b/src/031_Land/Actor/ActorUnkSWBM.cpp index 25d47951..c9be5570 100644 --- a/src/031_Land/Actor/ActorUnkSWBM.cpp +++ b/src/031_Land/Actor/ActorUnkSWBM.cpp @@ -9,11 +9,6 @@ #include "Unknown/UnkStruct_027e0d34.hpp" #include "Unknown/UnkStruct_ov000_020b4ec4.hpp" -struct UnkStruct_ov031_020e5d18_00 { - Actor *mUnk_00; - u8 mUnk_04[0x14]; -}; - static const Cylinder data_ov031_02113114(FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(0.0f), FX_F32_TO_FX32(0.35f));