From 89dedbb3d1c3ddd4208b14ba655df897634a3ab3 Mon Sep 17 00:00:00 2001 From: Yanis <35189056+Yanis002@users.noreply.github.com> Date: Thu, 8 Oct 2026 03:35:12 +0200 Subject: [PATCH] Match ActorBomb (#158) * actor prog from overlay 0 * fix build issues * ActorBomb OK for eur * ActorBomb OK for eur1, usa and jp * fix regressions --- config/eur/arm9/itcm/symbols.txt | 2 +- config/eur/arm9/overlays/ov000/delinks.txt | 2 + config/eur/arm9/overlays/ov000/symbols.txt | 16 +- config/eur/arm9/overlays/ov031/delinks.txt | 2 + config/eur/arm9/overlays/ov031/relocs.txt | 6 +- config/eur/arm9/overlays/ov031/symbols.txt | 48 ++- config/eur/arm9/overlays/ov032/symbols.txt | 4 +- config/eur/arm9/overlays/ov063/symbols.txt | 2 +- config/eur1/arm9/itcm/symbols.txt | 2 +- config/eur1/arm9/overlays/ov000/delinks.txt | 2 + config/eur1/arm9/overlays/ov000/relocs.txt | 2 +- config/eur1/arm9/overlays/ov000/symbols.txt | 22 +- config/eur1/arm9/overlays/ov031/delinks.txt | 2 + config/eur1/arm9/overlays/ov031/relocs.txt | 8 +- config/eur1/arm9/overlays/ov031/symbols.txt | 44 +- config/eur1/arm9/overlays/ov032/symbols.txt | 4 +- config/eur1/arm9/overlays/ov063/symbols.txt | 2 +- config/eur1/arm9/overlays/ov093/symbols.txt | 2 +- config/jp/arm9/itcm/symbols.txt | 2 +- config/jp/arm9/overlays/ov000/delinks.txt | 2 + config/jp/arm9/overlays/ov000/symbols.txt | 16 +- config/jp/arm9/overlays/ov031/delinks.txt | 2 + config/jp/arm9/overlays/ov031/relocs.txt | 6 +- config/jp/arm9/overlays/ov031/symbols.txt | 48 ++- config/jp/arm9/overlays/ov032/symbols.txt | 4 +- config/jp/arm9/overlays/ov063/symbols.txt | 2 +- config/usa/arm9/itcm/symbols.txt | 2 +- config/usa/arm9/overlays/ov000/delinks.txt | 2 + config/usa/arm9/overlays/ov000/relocs.txt | 2 +- config/usa/arm9/overlays/ov000/symbols.txt | 22 +- config/usa/arm9/overlays/ov031/delinks.txt | 2 + config/usa/arm9/overlays/ov031/relocs.txt | 6 +- config/usa/arm9/overlays/ov031/symbols.txt | 48 ++- config/usa/arm9/overlays/ov032/symbols.txt | 4 +- config/usa/arm9/overlays/ov063/symbols.txt | 2 +- include/Actor/ActorBlast.hpp | 4 +- include/Actor/ActorBomb.hpp | 14 +- include/Actor/ActorItemBoomerang.hpp | 4 +- include/Actor/ActorItemFlower.hpp | 2 +- include/Actor/ActorKeese.hpp | 15 +- include/Actor/ActorRollingStone.hpp | 4 +- include/Actor/ActorShotArrow.hpp | 3 +- include/Actor/ActorUnkCANS.hpp | 3 +- include/Actor/ActorUnkSWBM.hpp | 3 +- include/Actor/ActorUnkZLSL_ZSRS.hpp | 2 +- include/CommonFuncs.hpp | 4 +- include/MapObject/MapObject.hpp | 5 +- include/MapObject/MapObjectChestBase.hpp | 2 +- include/MapObject/MapObjectManager.hpp | 3 +- include/MapObject/MapObjectRef.hpp | 64 +++ include/MapObject/MapObjectSwitchStep.hpp | 2 +- include/MapObject/MapObjectUnkSWSW.hpp | 2 +- include/Player/PlayerActorBase.hpp | 4 +- include/Render/ModelRender.hpp | 34 +- include/Unknown/UnkStruct_027e0ce0.hpp | 20 +- include/Unknown/UnkStruct_ov000_020b34c4.hpp | 6 +- include/profile.hpp | 4 +- libs/nns/include/nns/g3d/sbc.h | 16 +- src/000_Second/Actor/Actor.cpp | 10 +- src/000_Second/Actor/ActorUnkSWTM.cpp | 5 +- src/000_Second/MapObject/MapObject.cpp | 22 +- .../MapObject/MapObjectMiniBlocks.cpp | 2 +- .../MapObject/MapObjectPot_Base.cpp | 2 +- .../MapObject/MapObjectSwitchStep.cpp | 23 +- .../MapObject/MapObjectManager_017.cpp | 2 +- .../Unknown/UnkStruct_027e0998_024.cpp | 2 +- src/031_Land/Actor/ActorBlast.cpp | 2 +- src/031_Land/Actor/ActorBomb.cpp | 390 ++++++++++++++---- src/031_Land/Actor/ActorItemBoomerang.cpp | 63 +-- src/031_Land/Actor/ActorRollingStone.cpp | 3 +- src/031_Land/Actor/ActorShotArrow.cpp | 3 +- src/031_Land/Actor/ActorUnkSWBM.cpp | 9 +- .../MapObject/MapObjectBombFlower.cpp | 3 +- src/031_Land/MapObject/MapObjectChestBase.cpp | 42 +- src/031_Land/MapObject/MapObjectDoorBase.cpp | 2 +- src/031_Land/MapObject/MapObjectDoorClick.cpp | 2 +- .../MapObject/MapObjectDoorDangerSpawn.cpp | 8 +- src/031_Land/MapObject/MapObjectDoorKey.cpp | 2 +- .../MapObject/MapObjectDoorSwitch.cpp | 4 +- src/031_Land/MapObject/MapObjectDoorTouch.cpp | 2 +- src/032_MapA1/Actor/ActorKeese.cpp | 2 +- src/032_MapA1/MapObject/MapObjectUnkSWSW.cpp | 9 +- src/063_Shrine/Actor/ActorUnkCANS.cpp | 19 +- .../MapObjectUnkSAND_102.cpp | 2 +- .../PlayerSceneChange.cpp | 4 +- src/ITCM/ITCM_MapObjectManager.cpp | 1 + 86 files changed, 746 insertions(+), 458 deletions(-) create mode 100644 include/MapObject/MapObjectRef.hpp diff --git a/config/eur/arm9/itcm/symbols.txt b/config/eur/arm9/itcm/symbols.txt index 1346f5fe..ae287c81 100644 --- a/config/eur/arm9/itcm/symbols.txt +++ b/config/eur/arm9/itcm/symbols.txt @@ -131,7 +131,7 @@ _ZN15ModelRenderBase13func_01ffc634EP7VecFx3214UnkAngleStructS1_ kind:function(a _ZN15ModelRenderBase13func_01ffc6d4E14UnkAngleStructP7VecFx32 kind:function(arm,size=0x70) addr:0x01ffc6d4 func_01ffc744 kind:function(arm,size=0x24) addr:0x01ffc744 _ZN24UnkStruct_ov000_020b4ec413func_01ffc768Ei kind:function(arm,size=0x3c) addr:0x01ffc768 -_ZN20ModelRender_Derived18vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0xb4) addr:0x01ffc7a4 +_ZN20ModelRender_Derived18vfunc_1CEP16G3d_RenderState_ kind:function(arm,size=0xb4) addr:0x01ffc7a4 func_01ffc858 kind:function(arm,size=0x88) addr:0x01ffc858 func_01ffc8e0 kind:function(arm,size=0x2b4) addr:0x01ffc8e0 func_01ffcb94 kind:function(arm,size=0x98) addr:0x01ffcb94 diff --git a/config/eur/arm9/overlays/ov000/delinks.txt b/config/eur/arm9/overlays/ov000/delinks.txt index 7909802d..10f76dea 100644 --- a/config/eur/arm9/overlays/ov000/delinks.txt +++ b/config/eur/arm9/overlays/ov000/delinks.txt @@ -28,6 +28,7 @@ src/000_Second/UnkSystem1_Derived1.cpp: .data start:0x020b209c end:0x020b20d0 src/000_Second/Actor/Actor.cpp: + complete .text start:0x02098388 end:0x02098654 .data start:0x020b30e4 end:0x020b3140 @@ -40,6 +41,7 @@ src/000_Second/Actor/ActorUnkSWOB.cpp: .bss start:0x020b5bfc end:0x020b5c48 src/000_Second/Actor/ActorUnkSWTM.cpp: + complete .text start:0x0209aca8 end:0x0209b22c .init start:0x020b0838 end:0x020b0888 .ctor start:0x020b190c end:0x020b1910 diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index c30518b7..4ec929bb 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -67,7 +67,7 @@ func_ov000_02057750 kind:function(thumb,size=0xc) addr:0x02057750 _ZN31ModelRender_UnkSystem1_Derived1C1EP10G3d_Model_m kind:function(thumb,size=0x20) addr:0x0205775c _ZN22ModelRender_UnkSystem1D1Ev kind:function(thumb,size=0xe) addr:0x0205777c _ZN10UnkSystem5C1EPvP10G3d_Model_ kind:function(thumb,size=0x18) addr:0x0205778c -_ZN10UnkSystem519func_ov000_020577a4EP24UnkStruct_ov000_02058a84ii kind:function(arm,size=0x54) addr:0x020577a4 +_ZN10UnkSystem519func_ov000_020577a4EP24UnkStruct_ov000_02058a84ib kind:function(arm,size=0x54) addr:0x020577a4 _ZN10UnkSystem519func_ov000_020577f8Ei kind:function(arm,size=0x38) addr:0x020577f8 func_ov000_02057830 kind:function(arm,size=0x3c) addr:0x02057830 func_ov000_0205786c kind:function(arm,size=0x38) addr:0x0205786c @@ -97,7 +97,7 @@ _ZN11ModelRenderD0Ev kind:function(thumb,size=0x28) addr:0x02057bac _ZN11ModelRenderD2Ev kind:function(thumb,size=0x20) addr:0x02057bd4 _ZN11ModelRender8vfunc_08EP10G3d_Model_ kind:function(arm,size=0x20) addr:0x02057bf4 func_ov000_02057c14 kind:function(arm,size=0x20) addr:0x02057c14 -_ZN11ModelRender8vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0x4) addr:0x02057c34 +_ZN11ModelRender8vfunc_1CEP16G3d_RenderState_ kind:function(arm,size=0x4) addr:0x02057c34 _ZN11ModelRender19func_ov000_02057c38Eii kind:function(arm,size=0x34) addr:0x02057c38 func_ov000_02057c6c kind:function(arm,size=0x2c) addr:0x02057c6c _ZN11ModelRender19func_ov000_02057c98EP10UnkSystem5 kind:function(arm,size=0x18) addr:0x02057c98 @@ -1414,7 +1414,7 @@ _ZN24UnkStruct_ov000_020b28388vfunc_00Ev kind:function(arm,size=0x4) addr:0x0207 _ZN24UnkStruct_ov000_020b2838D0Ev kind:function(arm,size=0x14) addr:0x0207bfe8 _ZN29UnkStruct_ov031_Items_00_BaseD2Ev kind:function(arm,size=0x4) addr:0x0207bffc _ZN26UnkStruct_027e0ce0_38_Base8vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0x8) addr:0x0207c000 -_ZN26UnkStruct_027e0ce0_38_Base8vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0x8) addr:0x0207c008 +_ZN26UnkStruct_027e0ce0_38_Base8vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x8) addr:0x0207c008 _ZN26UnkStruct_027e0ce0_38_Base8vfunc_10E8ActorRefi kind:function(arm,size=0x8) addr:0x0207c010 _ZN17MapObject_10_BaseC2Ev kind:function(arm,size=0x30) addr:0x0207c018 func_ov000_0207c048 kind:function(arm,size=0x30) addr:0x0207c048 @@ -2423,7 +2423,7 @@ _ZN24UnkStruct_ov000_020b31f08vfunc_3CEv kind:function(arm,size=0x24) addr:0x020 _ZN24UnkStruct_ov000_020b31f08vfunc_38Ev kind:function(arm,size=0x2c) addr:0x0209a738 _ZN24UnkStruct_ov000_020b3268C2EP10G3d_Model_ kind:function(thumb,size=0x1c) addr:0x0209a764 func_ov000_0209a780 kind:function(thumb,size=0x1c) addr:0x0209a780 -_ZN26ModelRender_ov000_020b4d648vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0x1c) addr:0x0209a79c +_ZN26ModelRender_ov000_020b4d648vfunc_1CEP16G3d_RenderState_ kind:function(arm,size=0x1c) addr:0x0209a79c _ZN11ModelRender19func_ov000_0209a7b8EPvPFvS0_iE kind:function(arm,size=0xc) addr:0x0209a7b8 func_ov000_0209a7c4 kind:function(arm,size=0x28) addr:0x0209a7c4 func_ov000_0209a7ec kind:function(arm,size=0x28) addr:0x0209a7ec @@ -2602,7 +2602,7 @@ _ZN26MapObjectProfileSwitchStep6CreateEv kind:function(arm,size=0x24) addr:0x020 _ZN26MapObjectProfileSwitchStepC1Ev kind:function(arm,size=0x94) addr:0x0209dd10 _ZN22MapObjectSwitchStep_40C1Ev kind:function(arm,size=0x3c) addr:0x0209dda4 _ZN22MapObjectSwitchStep_4019func_ov000_0209dde0Ev kind:function(arm,size=0x30) addr:0x0209dde0 -_ZN22MapObjectSwitchStep_408vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0x90) addr:0x0209de10 +_ZN22MapObjectSwitchStep_408vfunc_1CEP16G3d_RenderState_ kind:function(arm,size=0x90) addr:0x0209de10 _ZN19MapObjectSwitchStepC1Ev kind:function(arm,size=0xfc) addr:0x0209dea0 _ZN22MapObjectSwitchStep_40D1Ev kind:function(arm,size=0x14) addr:0x0209df9c _ZN19MapObjectSwitchStepD1Ev kind:function(arm,size=0x58) addr:0x0209dfb0 @@ -3343,7 +3343,7 @@ __sinit_ov000_020b0760 kind:function(arm,size=0x14) addr:0x020b0760 __sinit_ov000_020b0774 kind:function(arm,size=0x34) addr:0x020b0774 __sinit_ov000_020b07a8 kind:function(arm,size=0x40) addr:0x020b07a8 __sinit_ActorUnkSWOB.cpp kind:function(arm,size=0x50) addr:0x020b07e8 local -__sinit_ActorUnkSWTM.cpp kind:function(arm,size=0x50) addr:0x020b0838 +__sinit_ActorUnkSWTM.cpp kind:function(arm,size=0x50) addr:0x020b0838 local __sinit_ActorEventIcon.cpp kind:function(arm,size=0x50) addr:0x020b0888 local __sinit_ActorUnkEFIK.cpp kind:function(arm,size=0x50) addr:0x020b08d8 local __sinit_MapObjectProfile.cpp kind:function(arm,size=0x28) addr:0x020b0928 local @@ -3378,7 +3378,7 @@ __sinit_ov000_020b18a0 kind:function(arm,size=0x14) addr:0x020b18a0 .p__sinit_ov000_020b0774 kind:data(word) addr:0x020b1900 .p__sinit_ov000_020b07a8 kind:data(word) addr:0x020b1904 .p__sinit_ActorUnkSWOB.cpp kind:data(word) addr:0x020b1908 local -.p__sinit_ActorUnkSWTM.cpp kind:data(word) addr:0x020b190c +.p__sinit_ActorUnkSWTM.cpp kind:data(word) addr:0x020b190c local .p__sinit_ActorEventIcon.cpp kind:data(word) addr:0x020b1910 local .p__sinit_ActorUnkEFIK.cpp kind:data(word) addr:0x020b1914 local .p__sinit_MapObjectProfile.cpp kind:data(word) addr:0x020b1918 local @@ -4045,7 +4045,7 @@ _ZGVN15ProfileInstanceI19ActorProfileUnkSWOBE8sProfileE kind:bss addr:0x020b5bfc @10033 kind:bss addr:0x020b5c00 local _ZN15ProfileInstanceI19ActorProfileUnkSWOBE8sProfileE kind:bss addr:0x020b5c0c _ZGVN15ProfileInstanceI19ActorProfileUnkSWTME8sProfileE kind:bss addr:0x020b5c48 -@10039 kind:bss addr:0x020b5c4c +@10039 kind:bss addr:0x020b5c4c local _ZN15ProfileInstanceI19ActorProfileUnkSWTME8sProfileE kind:bss addr:0x020b5c58 data_ov000_020b5c94 kind:bss addr:0x020b5c94 _ZGVN15ProfileInstanceI21ActorProfileEventIconE8sProfileE kind:bss addr:0x020b5c98 diff --git a/config/eur/arm9/overlays/ov031/delinks.txt b/config/eur/arm9/overlays/ov031/delinks.txt index e14532b4..dc4404b0 100644 --- a/config/eur/arm9/overlays/ov031/delinks.txt +++ b/config/eur/arm9/overlays/ov031/delinks.txt @@ -9,10 +9,12 @@ src/031_Land/UnkStruct_027e0d34.cpp: .text start:0x020d9834 end:0x020d9854 src/031_Land/Actor/ActorBomb.cpp: + complete .text start:0x020e14c4 end:0x020e34b4 .init start:0x02110ff8 end:0x02111048 .ctor start:0x0211279c end:0x021127a0 .data start:0x02112be8 end:0x02112d44 + .rodata start:0x021109fc end:0x02110a80 .bss start:0x02116404 end:0x02116450 src/031_Land/Actor/ActorBlast.cpp: diff --git a/config/eur/arm9/overlays/ov031/relocs.txt b/config/eur/arm9/overlays/ov031/relocs.txt index 59fdece6..9ced9382 100644 --- a/config/eur/arm9/overlays/ov031/relocs.txt +++ b/config/eur/arm9/overlays/ov031/relocs.txt @@ -902,15 +902,15 @@ from:0x020e1534 kind:load to:0x02112cc4 add:0x8 module:overlay(31) from:0x020e1564 kind:arm_call_thumb to:0x0208ed30 module:overlay(0) from:0x020e1574 kind:arm_call to:0x0209c6b8 module:overlay(0) from:0x020e15c0 kind:load to:0x027e0ce0 module:dtcm -from:0x020e15c4 kind:load to:0x02110a60 module:overlay(31) +from:0x020e15c4 kind:load to:0x02110a40 add:0x20 module:overlay(31) from:0x020e15c8 kind:load to:0x020b5d34 module:overlay(0) from:0x020e15f8 kind:arm_call to:0x0208ee94 module:overlay(0) from:0x020e1608 kind:arm_call to:0x0209c6b8 module:overlay(0) from:0x020e1618 kind:arm_call to:0x02058a84 module:overlay(0) from:0x020e1620 kind:load to:0x027e0ce0 module:dtcm -from:0x020e1624 kind:load to:0x02110a70 module:overlay(31) +from:0x020e1624 kind:load to:0x02110a40 add:0x30 module:overlay(31) from:0x020e1628 kind:load to:0x020b5d34 module:overlay(0) -from:0x020e1630 kind:load to:0x02110a50 module:overlay(31) +from:0x020e1630 kind:load to:0x02110a40 add:0x10 module:overlay(31) from:0x020e1660 kind:arm_call to:0x0200f218 module:main from:0x020e1688 kind:load to:0x021109fc module:overlay(31) from:0x020e1698 kind:arm_call to:0x02098388 module:overlay(0) diff --git a/config/eur/arm9/overlays/ov031/symbols.txt b/config/eur/arm9/overlays/ov031/symbols.txt index b9ead01f..83468892 100644 --- a/config/eur/arm9/overlays/ov031/symbols.txt +++ b/config/eur/arm9/overlays/ov031/symbols.txt @@ -310,7 +310,7 @@ _ZN16ActorProfileBomb6CreateEv kind:function(arm,size=0x24) addr:0x020e14d0 _ZN16ActorProfileBombC1Ev kind:function(arm,size=0x4c) addr:0x020e14f4 _ZN9ActorBomb19func_ov031_020e1540Et kind:function(arm,size=0x90) addr:0x020e1540 _ZN9ActorBomb19func_ov031_020e15d0Et kind:function(arm,size=0x64) addr:0x020e15d0 -_ZN9ActorBomb19func_ov031_020e1634Ev kind:function(arm,size=0x58) addr:0x020e1634 +_ZN9ActorBomb19func_ov031_020e1634EP16G3d_RenderState_ kind:function(arm,size=0x58) addr:0x020e1634 _ZN9ActorBombC1Ev kind:function(arm,size=0x168) addr:0x020e168c _ZN13ActorBomb_unkD1Ev kind:function(arm,size=0x14) addr:0x020e17f4 _ZN13ActorBomb_19CD1Ev kind:function(arm,size=0x14) addr:0x020e1808 @@ -318,7 +318,7 @@ _ZN9ActorBomb4InitEi kind:function(arm,size=0x84) addr:0x020e181c _ZN9ActorBomb19func_ov031_020e18a0Ev kind:function(arm,size=0x24) addr:0x020e18a0 _ZN9ActorBomb8SetStateEs kind:function(arm,size=0x44) addr:0x020e18c4 _ZN9ActorBomb19func_ov031_020e1908Ev kind:function(arm,size=0x18) addr:0x020e1908 -_ZN9ActorBomb19func_ov031_020e1920EP7VecFx32 kind:function(arm,size=0x1c) addr:0x020e1920 +_ZN9ActorBomb19func_ov031_020e1920EPK7VecFx32 kind:function(arm,size=0x1c) addr:0x020e1920 _ZN9ActorBomb19func_ov031_020e193cEv kind:function(arm,size=0xec) addr:0x020e193c _ZN9ActorBomb6UpdateEv kind:function(arm,size=0xd0) addr:0x020e1a28 _ZN9ActorBomb8vfunc_24Ev kind:function(arm,size=0x24) addr:0x020e1af8 @@ -359,7 +359,7 @@ _ZN13ActorBomb_180C1EP5Actor kind:function(arm,size=0x3c) addr:0x020e2d78 _ZN13ActorBomb_180D1Ev kind:function(arm,size=0x1c) addr:0x020e2db4 _ZN13ActorBomb_180D0Ev kind:function(arm,size=0x24) addr:0x020e2dd0 _ZN13ActorBomb_1808vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0x48) addr:0x020e2df4 -_ZN13ActorBomb_1808vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0x450) addr:0x020e2e3c +_ZN13ActorBomb_1808vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x450) addr:0x020e2e3c _ZN13ActorBomb_1808vfunc_10E8ActorRefi kind:function(arm,size=0x84) addr:0x020e328c _ZN24ActorBomb_ov031_020e21348vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0x30) addr:0x020e3310 _ZN13ActorBomb_19CC1EP5Actor kind:function(arm,size=0x3c) addr:0x020e3340 @@ -373,7 +373,7 @@ _ZN16ActorProfileBombD1Ev kind:function(arm,size=0x14) addr:0x020e34a0 _ZN17ActorProfileBlast10GetProfileEv kind:function(arm,size=0xc) addr:0x020e34b4 _ZN17ActorProfileBlast6CreateEv kind:function(arm,size=0x24) addr:0x020e34c0 _ZN17ActorProfileBlastC1Ev kind:function(arm,size=0x38) addr:0x020e34e4 -_ZN13ActorBlast_E88vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0x1a4) addr:0x020e351c +_ZN13ActorBlast_E88vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x1a4) addr:0x020e351c _ZN10ActorBlastC1Ev kind:function(arm,size=0x7c) addr:0x020e36c0 _ZN13ActorBlast_E8D1Ev kind:function(arm,size=0x14) addr:0x020e373c _ZN10ActorBlast4InitEi kind:function(arm,size=0x274) addr:0x020e3750 @@ -444,7 +444,7 @@ _ZN22ActorItemBoomerang_11CC1EP18ActorItemBoomerang kind:function(arm,size=0x28) _ZN22ActorItemBoomerang_11CD1Ev kind:function(arm,size=0x14) addr:0x020e5474 _ZN22ActorItemBoomerang_11CD0Ev kind:function(arm,size=0x1c) addr:0x020e5488 _ZN22ActorItemBoomerang_11C8vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0x30) addr:0x020e54a4 -_ZN22ActorItemBoomerang_11C8vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0x230) addr:0x020e54d4 +_ZN22ActorItemBoomerang_11C8vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x230) addr:0x020e54d4 _ZN26ActorItemBoomerang_Unknown19func_ov031_020e5704Ev kind:function(arm,size=0xc) addr:0x020e5704 _ZN21ActorItemBoomerang_A0D0Ev kind:function(arm,size=0x1c) addr:0x020e5710 _ZN21ActorItemBoomerang_CCD0Ev kind:function(arm,size=0x1c) addr:0x020e572c @@ -482,7 +482,7 @@ func_ov031_020e67dc kind:function(arm,size=0x7c) addr:0x020e67dc func_ov031_020e6858 kind:function(arm,size=0x64) addr:0x020e6858 _ZN19func_ov031_020e68bcD0Ev kind:function(arm,size=0x1c) addr:0x020e68bc _ZN15ActorUnkSWBM_948vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0x28) addr:0x020e68d8 -_ZN15ActorUnkSWBM_948vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0x1c) addr:0x020e6900 +_ZN15ActorUnkSWBM_948vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x1c) addr:0x020e6900 _ZN15ActorUnkSWBM_988vfunc_0CEP5ActorP7VecFx32 kind:function(arm,size=0x58) addr:0x020e691c _ZN15ActorUnkSWBM_988vfunc_10EP5Actor kind:function(arm,size=0x58) addr:0x020e6974 _ZN15ActorUnkSWBM_C88vfunc_00Eii kind:function(arm,size=0x168) addr:0x020e69cc @@ -924,7 +924,7 @@ _ZN18ActorShotArrow_178D1Ev kind:function(arm,size=0x1c) addr:0x020f32c4 _ZN18ActorShotArrow_178D0Ev kind:function(arm,size=0x24) addr:0x020f32e0 _ZN18ActorShotArrow_17819func_ov031_020f3304Ev kind:function(arm,size=0xc) addr:0x020f3304 _ZN18ActorShotArrow_1788vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0xac) addr:0x020f3310 -_ZN18ActorShotArrow_1788vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0x350) addr:0x020f33bc +_ZN18ActorShotArrow_1788vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x350) addr:0x020f33bc _ZN18ActorShotArrow_194C1EP14ActorShotArrow kind:function(arm,size=0x40) addr:0x020f370c _ZN18ActorShotArrow_19419func_ov031_020f374cEP5Actor kind:function(arm,size=0x164) addr:0x020f374c _ZN18ActorShotArrow_1948vfunc_10EP5Actor kind:function(arm,size=0x388) addr:0x020f38b0 @@ -1110,7 +1110,7 @@ _ZN19ActorProfileUnkFLEND1Ev kind:function(arm,size=0x14) addr:0x020f82cc _ZN24ActorProfileRollingStone10GetProfileEv kind:function(arm,size=0xc) addr:0x020f82e0 _ZN24ActorProfileRollingStone6CreateEv kind:function(arm,size=0x24) addr:0x020f82ec _ZN24ActorProfileRollingStoneC1Ev kind:function(arm,size=0x44) addr:0x020f8310 -_ZN21ActorRollingStone_1048vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0x90) addr:0x020f8354 +_ZN21ActorRollingStone_1048vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x90) addr:0x020f8354 _ZN21ActorRollingStone_1048vfunc_10E8ActorRefi kind:function(arm,size=0xb8) addr:0x020f83e4 _ZN20ActorRollingStone_D48vfunc_10EP5Actor kind:function(arm,size=0x44) addr:0x020f849c _ZN17ActorRollingStoneC1Ev kind:function(arm,size=0x194) addr:0x020f84e0 @@ -1538,11 +1538,11 @@ _ZN24MapObjectTreasureSpawned8vfunc_54Ev kind:function(arm,size=0xc) addr:0x0210 _ZN24MapObjectTreasureSpawnedD1Ev kind:function(arm,size=0x14) addr:0x02102fa4 _ZN24MapObjectTreasureSpawnedD0Ev kind:function(arm,size=0x1c) addr:0x02102fb8 _ZN31MapObjectProfileTreasureSpawnedD1Ev kind:function(arm,size=0x14) addr:0x02102fd4 -_ZN19MapObjectUnkTRES_74C1Ei kind:function(arm,size=0x28) addr:0x02102fe8 -_ZN19MapObjectUnkTRES_748vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0x5c) addr:0x02103010 -_ZN19MapObjectUnkTRES_7419func_ov031_0210306cEv kind:function(arm,size=0x10) addr:0x0210306c +_ZN27MapObjectTreasureSpawned_74C1EP10G3d_Model_ kind:function(arm,size=0x28) addr:0x02102fe8 +_ZN27MapObjectTreasureSpawned_748vfunc_1CEP16G3d_RenderState_ kind:function(arm,size=0x5c) addr:0x02103010 +_ZN27MapObjectTreasureSpawned_7419func_ov031_0210306cEv kind:function(arm,size=0x10) addr:0x0210306c _ZN18MapObjectChestBaseC2Ei kind:function(arm,size=0x80) addr:0x0210307c -_ZN19MapObjectUnkTRES_74D1Ev kind:function(arm,size=0x14) addr:0x021030fc +_ZN27MapObjectTreasureSpawned_74D1Ev kind:function(arm,size=0x14) addr:0x021030fc _ZN18MapObjectChestBaseD1Ev kind:function(arm,size=0x20) addr:0x02103110 _ZN18MapObjectChestBaseD0Ev kind:function(arm,size=0x28) addr:0x02103130 _ZN18MapObjectChestBaseD2Ev kind:function(arm,size=0x20) addr:0x02103158 @@ -1564,7 +1564,7 @@ _ZN18MapObjectChestBase19func_ov031_02103f48Ev kind:function(arm,size=0x58) addr _ZN18MapObjectChestBase8vfunc_4CEv kind:function(arm,size=0x28) addr:0x02103fa0 _ZN18MapObjectChestBase8vfunc_50Ev kind:function(arm,size=0x2c) addr:0x02103fc8 _ZN18MapObjectChestBase8vfunc_54Ev kind:function(arm,size=0xc) addr:0x02103ff4 -_ZN19MapObjectUnkTRES_74D0Ev kind:function(arm,size=0x1c) addr:0x02104000 +_ZN27MapObjectTreasureSpawned_74D0Ev kind:function(arm,size=0x1c) addr:0x02104000 _ZN23MapObjectProfileUnkTRED10GetProfileEv kind:function(arm,size=0xc) addr:0x0210401c _ZN23MapObjectProfileUnkTRED6CreateEv kind:function(arm,size=0x24) addr:0x02104028 _ZN23MapObjectProfileUnkTREDC1Ev kind:function(arm,size=0x44) addr:0x0210404c @@ -1997,12 +1997,10 @@ data_ov031_021109ea kind:data(any) addr:0x021109ea data_ov031_021109ec kind:data(any) addr:0x021109ec data_ov031_021109ee kind:data(any) addr:0x021109ee data_ov031_021109f0 kind:data(any) addr:0x021109f0 -data_ov031_021109fc kind:data(any) addr:0x021109fc -data_ov031_02110a10 kind:data(any) addr:0x02110a10 -data_ov031_02110a28 kind:data(any) addr:0x02110a28 -data_ov031_02110a50 kind:data(any) addr:0x02110a50 -data_ov031_02110a60 kind:data(any) addr:0x02110a60 -data_ov031_02110a70 kind:data(any) addr:0x02110a70 +data_ov031_021109fc kind:data(any) addr:0x021109fc local +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 data_ov031_02110a98 kind:data(any) addr:0x02110a98 @@ -2070,7 +2068,7 @@ data_ov031_02110f74 kind:data(any) addr:0x02110f74 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 +__sinit_ActorBomb.cpp kind:function(arm,size=0x50) addr:0x02110ff8 local __sinit_ActorBlast.cpp kind:function(arm,size=0x50) addr:0x02111048 __sinit_ActorUnkTLKT.cpp kind:function(arm,size=0x50) addr:0x02111098 local __sinit_ActorItemBoomerang.cpp kind:function(arm,size=0x50) addr:0x021110e8 @@ -2134,7 +2132,7 @@ __sinit_MapObjectUnkGSST.cpp kind:function(arm,size=0x50) addr:0x021126d4 __sinit_MapObjectUnkSWFS.cpp kind:function(arm,size=0x70) addr:0x02112724 .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 +.p__sinit_ActorBomb.cpp kind:data(word) addr:0x0211279c local .p__sinit_ActorBlast.cpp kind:data(word) addr:0x021127a0 .p__sinit_ActorUnkTLKT.cpp kind:data(word) addr:0x021127a4 local .p__sinit_ActorItemBoomerang.cpp kind:data(word) addr:0x021127a8 @@ -2242,9 +2240,9 @@ data_ov031_02112b78 kind:data(any) addr:0x02112b78 _ZTV19data_ov031_02112b84 kind:data(any) addr:0x02112b84 _ZTV19data_ov031_02112bac kind:data(any) addr:0x02112bac data_ov031_02112bdc kind:data(any) addr:0x02112bdc -data_ov031_02112be8 kind:data(any) addr:0x02112be8 -data_ov031_02112c00 kind:data(any) addr:0x02112c00 -data_ov031_02112c38 kind:data(any) addr:0x02112c38 +data_ov031_02112be8 kind:data(any) addr:0x02112be8 local +data_ov031_02112c00 kind:data(any) addr:0x02112c00 local +data_ov031_02112c38 kind:data(any) addr:0x02112c38 local _ZTV13ActorBomb_180 kind:data(any) addr:0x02112c70 _ZTV13ActorBomb_19C kind:data(any) addr:0x02112c8c _ZTV24ActorBomb_ov031_020e2134 kind:data(any) addr:0x02112ca8 @@ -2519,7 +2517,7 @@ data_ov031_02116340 kind:data(any) addr:0x02116340 ambiguous data_ov031_02116358 kind:data(any) addr:0x02116358 data_ov031_02116380 kind:bss addr:0x02116380 _ZGVN15ProfileInstanceI16ActorProfileBombE8sProfileE kind:bss addr:0x02116404 -@10775 kind:bss addr:0x02116408 +@10775 kind:bss addr:0x02116408 local _ZN15ProfileInstanceI16ActorProfileBombE8sProfileE kind:bss addr:0x02116414 _ZGVN15ProfileInstanceI17ActorProfileBlastE8sProfileE kind:bss addr:0x02116450 @10781 kind:bss addr:0x02116454 diff --git a/config/eur/arm9/overlays/ov032/symbols.txt b/config/eur/arm9/overlays/ov032/symbols.txt index 632f444d..b7b91453 100644 --- a/config/eur/arm9/overlays/ov032/symbols.txt +++ b/config/eur/arm9/overlays/ov032/symbols.txt @@ -123,7 +123,7 @@ _ZN14ActorKeese_2ACC1EP10ActorKeese kind:function(arm,size=0x38) addr:0x0211de34 _ZN14ActorKeese_2ACD1Ev kind:function(arm,size=0x1c) addr:0x0211de6c _ZN14ActorKeese_2ACD0Ev kind:function(arm,size=0x24) addr:0x0211de88 _ZN14ActorKeese_2AC8vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0x24) addr:0x0211deac -_ZN14ActorKeese_2AC8vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0x144) addr:0x0211ded0 +_ZN14ActorKeese_2AC8vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x144) addr:0x0211ded0 _ZN10ActorKeese4InitEi kind:function(arm,size=0xac) addr:0x0211e014 _ZN10ActorKeese19func_ov032_0211e0c0Ev kind:function(arm,size=0x14) addr:0x0211e0c0 _ZN10ActorKeese19func_ov032_0211e0d4Esi kind:function(arm,size=0x234) addr:0x0211e0d4 @@ -200,7 +200,7 @@ _ZN23MapObjectProfileUnkSWSW10GetProfileEv kind:function(arm,size=0xc) addr:0x02 _ZN23MapObjectProfileUnkSWSW6CreateEv kind:function(arm,size=0x24) addr:0x02120e9c _ZN23MapObjectProfileUnkSWSWC1Ev kind:function(arm,size=0xb8) addr:0x02120ec0 _ZN19MapObjectUnkSWSW_40C1EP10G3d_Model_ kind:function(arm,size=0x6c) addr:0x02120f78 -_ZN19MapObjectUnkSWSW_408vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0xbc) addr:0x02120fe4 +_ZN19MapObjectUnkSWSW_408vfunc_1CEP16G3d_RenderState_ kind:function(arm,size=0xbc) addr:0x02120fe4 _ZN19MapObjectUnkSWSW_4019func_ov032_021210a0Ei kind:function(arm,size=0x64) addr:0x021210a0 _ZN16MapObjectUnkSWSWC1Ev kind:function(arm,size=0xc4) addr:0x02121104 _ZN19MapObjectUnkSWSW_40D1Ev kind:function(arm,size=0x14) addr:0x021211c8 diff --git a/config/eur/arm9/overlays/ov063/symbols.txt b/config/eur/arm9/overlays/ov063/symbols.txt index 8eb3819b..1b4dfe0f 100644 --- a/config/eur/arm9/overlays/ov063/symbols.txt +++ b/config/eur/arm9/overlays/ov063/symbols.txt @@ -54,7 +54,7 @@ _ZN24UnkStruct_ov063_02162ea8C1Ev kind:function(arm,size=0x30) addr:0x0215a7d4 _ZN24UnkStruct_ov063_02162ea8D1Ev kind:function(arm,size=0x14) addr:0x0215a804 _ZN24UnkStruct_ov063_02162ea8D0Ev kind:function(arm,size=0x1c) addr:0x0215a818 _ZN24UnkStruct_ov063_02162ea88vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0x4c) addr:0x0215a834 -_ZN24UnkStruct_ov063_02162ea88vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0xcc) addr:0x0215a880 +_ZN24UnkStruct_ov063_02162ea88vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0xcc) addr:0x0215a880 _ZN24UnkStruct_ov063_02162f148vfunc_3CEv kind:function(arm,size=0x24) addr:0x0215a94c _ZN24UnkStruct_ov063_02162f148vfunc_38Eii kind:function(arm,size=0x2c) addr:0x0215a970 _ZN24UnkStruct_ov063_02162ee8D0Ev kind:function(arm,size=0x1c) addr:0x0215a99c diff --git a/config/eur1/arm9/itcm/symbols.txt b/config/eur1/arm9/itcm/symbols.txt index 1346f5fe..ae287c81 100644 --- a/config/eur1/arm9/itcm/symbols.txt +++ b/config/eur1/arm9/itcm/symbols.txt @@ -131,7 +131,7 @@ _ZN15ModelRenderBase13func_01ffc634EP7VecFx3214UnkAngleStructS1_ kind:function(a _ZN15ModelRenderBase13func_01ffc6d4E14UnkAngleStructP7VecFx32 kind:function(arm,size=0x70) addr:0x01ffc6d4 func_01ffc744 kind:function(arm,size=0x24) addr:0x01ffc744 _ZN24UnkStruct_ov000_020b4ec413func_01ffc768Ei kind:function(arm,size=0x3c) addr:0x01ffc768 -_ZN20ModelRender_Derived18vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0xb4) addr:0x01ffc7a4 +_ZN20ModelRender_Derived18vfunc_1CEP16G3d_RenderState_ kind:function(arm,size=0xb4) addr:0x01ffc7a4 func_01ffc858 kind:function(arm,size=0x88) addr:0x01ffc858 func_01ffc8e0 kind:function(arm,size=0x2b4) addr:0x01ffc8e0 func_01ffcb94 kind:function(arm,size=0x98) addr:0x01ffcb94 diff --git a/config/eur1/arm9/overlays/ov000/delinks.txt b/config/eur1/arm9/overlays/ov000/delinks.txt index 048e9ecb..d01f0fb3 100644 --- a/config/eur1/arm9/overlays/ov000/delinks.txt +++ b/config/eur1/arm9/overlays/ov000/delinks.txt @@ -28,6 +28,7 @@ src/000_Second/UnkSystem1_Derived1.cpp: .data start:0x020b20dc end:0x020b2110 src/000_Second/Actor/Actor.cpp: + complete .text start:0x020983dc end:0x020986a8 .data start:0x020b3124 end:0x020b3180 @@ -40,6 +41,7 @@ src/000_Second/Actor/ActorUnkSWOB.cpp: .bss start:0x020b5c44 end:0x020b5c90 src/000_Second/Actor/ActorUnkSWTM.cpp: + complete .text start:0x0209acfc end:0x0209b280 .init start:0x020b088c end:0x020b08dc .ctor start:0x020b1960 end:0x020b1964 diff --git a/config/eur1/arm9/overlays/ov000/relocs.txt b/config/eur1/arm9/overlays/ov000/relocs.txt index 8038f4ec..1c594abb 100644 --- a/config/eur1/arm9/overlays/ov000/relocs.txt +++ b/config/eur1/arm9/overlays/ov000/relocs.txt @@ -8618,7 +8618,7 @@ from:0x020ae590 kind:load to:0x021776ec module:overlays(89,90,91,93,94) from:0x020ae594 kind:load to:0x020e35d4 module:overlays(20,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:overlays(20,31) +from:0x020ae5a0 kind:load to:0x020e15e4 module:overlay(31) from:0x020ae5a4 kind:load to:0x020f3810 module:overlays(21,22,23) from:0x020ae5a8 kind:load to:0x0217af10 module:overlay(96) from:0x020ae5ac kind:load to:0x02140178 module:overlays(26,70) diff --git a/config/eur1/arm9/overlays/ov000/symbols.txt b/config/eur1/arm9/overlays/ov000/symbols.txt index 0133ab14..84908a3b 100644 --- a/config/eur1/arm9/overlays/ov000/symbols.txt +++ b/config/eur1/arm9/overlays/ov000/symbols.txt @@ -67,7 +67,7 @@ func_ov000_02057750 kind:function(thumb,size=0xc) addr:0x02057750 _ZN31ModelRender_UnkSystem1_Derived1C1EP10G3d_Model_m kind:function(thumb,size=0x20) addr:0x0205775c _ZN22ModelRender_UnkSystem1D1Ev kind:function(thumb,size=0xe) addr:0x0205777c _ZN10UnkSystem5C1EPvP10G3d_Model_ kind:function(thumb,size=0x18) addr:0x0205778c -_ZN10UnkSystem519func_ov000_020577a4Eiii kind:function(arm,size=0x54) addr:0x020577a4 +_ZN10UnkSystem519func_ov000_020577a4EP24UnkStruct_ov000_02058a84ib kind:function(arm,size=0x54) addr:0x020577a4 _ZN10UnkSystem519func_ov000_020577f8Ei kind:function(arm,size=0x38) addr:0x020577f8 func_ov000_02057830 kind:function(arm,size=0x3c) addr:0x02057830 func_ov000_0205786c kind:function(arm,size=0x38) addr:0x0205786c @@ -97,13 +97,13 @@ _ZN11ModelRenderD0Ev kind:function(thumb,size=0x28) addr:0x02057bac _ZN11ModelRenderD2Ev kind:function(thumb,size=0x20) addr:0x02057bd4 _ZN11ModelRender8vfunc_08EP10G3d_Model_ kind:function(arm,size=0x20) addr:0x02057bf4 func_ov000_02057c14 kind:function(arm,size=0x20) addr:0x02057c14 -_ZN11ModelRender8vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0x4) addr:0x02057c34 +_ZN11ModelRender8vfunc_1CEP16G3d_RenderState_ kind:function(arm,size=0x4) addr:0x02057c34 _ZN11ModelRender19func_ov000_02057c38Eii kind:function(arm,size=0x34) addr:0x02057c38 func_ov000_02057c6c kind:function(arm,size=0x2c) addr:0x02057c6c _ZN11ModelRender19func_ov000_02057c98EP10UnkSystem5 kind:function(arm,size=0x18) addr:0x02057c98 _ZN15ModelRenderBase19func_ov000_02057cb0Ev kind:function(arm,size=0x18) addr:0x02057cb0 func_ov000_02057cc8 kind:function(arm,size=0x2c) addr:0x02057cc8 -func_ov000_02057cf4 kind:function(arm,size=0x2c) addr:0x02057cf4 +_ZN11ModelRender19func_ov000_02057cf4Ev kind:function(arm,size=0x2c) addr:0x02057cf4 _ZN11ModelRender19func_ov000_02057d20Eh kind:function(thumb,size=0x1c) addr:0x02057d20 _ZN11ModelRender19func_ov000_02057d3cEP18G3d_BoneMtxStruct_ kind:function(arm,size=0x30) addr:0x02057d3c func_ov000_02057d6c kind:function(arm,size=0x18) addr:0x02057d6c @@ -1414,7 +1414,7 @@ _ZN24UnkStruct_ov000_020b28388vfunc_00Ev kind:function(arm,size=0x4) addr:0x0207 _ZN24UnkStruct_ov000_020b2838D0Ev kind:function(arm,size=0x14) addr:0x0207c01c _ZN29UnkStruct_ov031_Items_00_BaseD2Ev kind:function(arm,size=0x4) addr:0x0207c030 _ZN26UnkStruct_027e0ce0_38_Base8vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0x8) addr:0x0207c034 -_ZN26UnkStruct_027e0ce0_38_Base8vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0x8) addr:0x0207c03c +_ZN26UnkStruct_027e0ce0_38_Base8vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x8) addr:0x0207c03c _ZN26UnkStruct_027e0ce0_38_Base8vfunc_10E8ActorRefi kind:function(arm,size=0x8) addr:0x0207c044 _ZN17MapObject_10_BaseC2Ev kind:function(arm,size=0x30) addr:0x0207c04c func_ov000_0207c048 kind:function(arm,size=0x30) addr:0x0207c07c @@ -2062,10 +2062,10 @@ func_ov000_0208eb90 kind:function(arm,size=0x104) addr:0x0208ebe4 func_ov000_0208ec94 kind:function(arm,size=0x60) addr:0x0208ece8 func_ov000_0208ecf4 kind:function(thumb,size=0x1c) addr:0x0208ed48 func_ov000_0208ed10 kind:function(thumb,size=0x20) addr:0x0208ed64 -_ZN18UnkStruct_027e0ce019func_ov000_0208ed30EiiPc kind:function(thumb,size=0x34) addr:0x0208ed84 +_ZN21UnkStruct_027e0ce0_1C19func_ov000_0208ed30EiiPc kind:function(thumb,size=0x34) addr:0x0208ed84 func_ov000_0208ed64 kind:function(thumb,size=0xc4) addr:0x0208edb8 func_ov000_0208ee28 kind:function(thumb,size=0x6c) addr:0x0208ee7c -func_ov000_0208ee94 kind:function(arm,size=0x8c) addr:0x0208eee8 +_ZN21UnkStruct_027e0ce0_1C19func_ov000_0208ee94EiiPci kind:function(arm,size=0x8c) addr:0x0208eee8 func_ov000_0208ef20 kind:function(arm,size=0x68) addr:0x0208ef74 func_ov000_0208ef88 kind:function(thumb,size=0x34) addr:0x0208efdc func_ov000_0208efbc kind:function(thumb,size=0x12) addr:0x0208f010 @@ -2423,7 +2423,7 @@ func_ov000_0209a714 kind:function(arm,size=0x24) addr:0x0209a768 func_ov000_0209a738 kind:function(arm,size=0x2c) addr:0x0209a78c _ZN24UnkStruct_ov000_020b3268C2EP10G3d_Model_ kind:function(thumb,size=0x1c) addr:0x0209a7b8 func_ov000_0209a780 kind:function(thumb,size=0x1c) addr:0x0209a7d4 -_ZN26ModelRender_ov000_020b4d648vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0x1c) addr:0x0209a7f0 +_ZN26ModelRender_ov000_020b4d648vfunc_1CEP16G3d_RenderState_ kind:function(arm,size=0x1c) addr:0x0209a7f0 _ZN11ModelRender19func_ov000_0209a7b8EPvPFvS0_iE kind:function(arm,size=0xc) addr:0x0209a80c func_ov000_0209a7c4 kind:function(arm,size=0x28) addr:0x0209a818 func_ov000_0209a7ec kind:function(arm,size=0x28) addr:0x0209a840 @@ -2602,7 +2602,7 @@ _ZN26MapObjectProfileSwitchStep6CreateEv kind:function(arm,size=0x24) addr:0x020 _ZN26MapObjectProfileSwitchStepC1Ev kind:function(arm,size=0x94) addr:0x0209dd64 _ZN22MapObjectSwitchStep_40C1Ev kind:function(arm,size=0x3c) addr:0x0209ddf8 _ZN22MapObjectSwitchStep_4019func_ov000_0209dde0Ev kind:function(arm,size=0x30) addr:0x0209de34 -_ZN22MapObjectSwitchStep_408vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0x90) addr:0x0209de64 +_ZN22MapObjectSwitchStep_408vfunc_1CEP16G3d_RenderState_ kind:function(arm,size=0x90) addr:0x0209de64 _ZN19MapObjectSwitchStepC1Ev kind:function(arm,size=0xfc) addr:0x0209def4 _ZN22MapObjectSwitchStep_40D1Ev kind:function(arm,size=0x14) addr:0x0209dff0 _ZN19MapObjectSwitchStepD1Ev kind:function(arm,size=0x58) addr:0x0209e004 @@ -4049,9 +4049,9 @@ data_ov000_020b53d0 kind:bss addr:0x020b5418 _ZGVN15ProfileInstanceI19ActorProfileUnkSWOBE8sProfileE kind:bss addr:0x020b5c44 @5649 kind:bss addr:0x020b5c48 local _ZN15ProfileInstanceI19ActorProfileUnkSWOBE8sProfileE kind:bss addr:0x020b5c54 -data_ov000_020b5c90 kind:bss addr:0x020b5c90 -data_ov000_020b5c94 kind:bss addr:0x020b5c94 -data_ov000_020b5ca0 kind:bss addr:0x020b5ca0 +_ZGVN15ProfileInstanceI19ActorProfileUnkSWTME8sProfileE kind:bss addr:0x020b5c90 +@6523 kind:bss addr:0x020b5c94 local +_ZN15ProfileInstanceI19ActorProfileUnkSWTME8sProfileE kind:bss addr:0x020b5ca0 data_ov000_020b5cdc kind:bss addr:0x020b5cdc _ZGVN15ProfileInstanceI21ActorProfileEventIconE8sProfileE kind:bss addr:0x020b5ce0 @3699 kind:bss addr:0x020b5ce4 local diff --git a/config/eur1/arm9/overlays/ov031/delinks.txt b/config/eur1/arm9/overlays/ov031/delinks.txt index ea2fed98..c4eeed4a 100644 --- a/config/eur1/arm9/overlays/ov031/delinks.txt +++ b/config/eur1/arm9/overlays/ov031/delinks.txt @@ -9,11 +9,13 @@ src/031_Land/UnkStruct_027e0d34.cpp: .text start:0x020d9954 end:0x020d9974 src/031_Land/Actor/ActorBomb.cpp: + complete .text start:0x020e15e4 end:0x020e35d4 .init start:0x02111128 end:0x02111178 .ctor start:0x021128cc end:0x021128d0 .data start:0x02112d28 end:0x02112e84 .bss start:0x02116544 end:0x02116590 + .rodata start:0x02110b2c end:0x02110bb0 src/031_Land/Actor/ActorBlast.cpp: .text start:0x020e35d4 end:0x020e3dc4 diff --git a/config/eur1/arm9/overlays/ov031/relocs.txt b/config/eur1/arm9/overlays/ov031/relocs.txt index 6cabaaa2..b9857c71 100644 --- a/config/eur1/arm9/overlays/ov031/relocs.txt +++ b/config/eur1/arm9/overlays/ov031/relocs.txt @@ -902,15 +902,15 @@ from:0x020e1654 kind:load to:0x02112e04 add:0x8 module:overlay(31) from:0x020e1684 kind:arm_call_thumb to:0x0208ed84 module:overlay(0) from:0x020e1694 kind:arm_call to:0x0209c70c module:overlay(0) from:0x020e16e0 kind:load to:0x027e0ce0 module:dtcm -from:0x020e16e4 kind:load to:0x02110b90 module:overlay(31) +from:0x020e16e4 kind:load to:0x02110b70 add:0x20 module:overlay(31) from:0x020e16e8 kind:load to:0x020b5d7c module:overlay(0) from:0x020e1718 kind:arm_call to:0x0208eee8 module:overlay(0) from:0x020e1728 kind:arm_call to:0x0209c70c module:overlay(0) from:0x020e1738 kind:arm_call to:0x02058a84 module:overlay(0) from:0x020e1740 kind:load to:0x027e0ce0 module:dtcm -from:0x020e1744 kind:load to:0x02110ba0 module:overlay(31) +from:0x020e1744 kind:load to:0x02110b70 add:0x30 module:overlay(31) from:0x020e1748 kind:load to:0x020b5d7c module:overlay(0) -from:0x020e1750 kind:load to:0x02110b80 module:overlay(31) +from:0x020e1750 kind:load to:0x02110b70 add:0x10 module:overlay(31) from:0x020e1780 kind:arm_call to:0x0200f218 module:main from:0x020e17a8 kind:load to:0x02110b2c module:overlay(31) from:0x020e17b8 kind:arm_call to:0x020983dc module:overlay(0) @@ -924,7 +924,7 @@ from:0x020e1830 kind:arm_call to:0x020e2e98 module:overlay(31) from:0x020e183c kind:arm_call to:0x020e3460 module:overlay(31) from:0x020e1880 kind:arm_call to:0x0207ede0 module:overlay(0) from:0x020e18b0 kind:arm_call to:0x0200b578 module:main -from:0x020e18f8 kind:load to:0x02112e30 module:overlay(31) +from:0x020e18f8 kind:load to:0x02112e28 module:overlay(31) add:0x8 from:0x020e18fc kind:load to:0x020e1914 module:overlay(31) from:0x020e1900 kind:load to:0x020e34cc module:overlay(31) from:0x020e1904 kind:load to:0x027e07d4 module:dtcm diff --git a/config/eur1/arm9/overlays/ov031/symbols.txt b/config/eur1/arm9/overlays/ov031/symbols.txt index cf40ad85..04c1f551 100644 --- a/config/eur1/arm9/overlays/ov031/symbols.txt +++ b/config/eur1/arm9/overlays/ov031/symbols.txt @@ -310,7 +310,7 @@ _ZN16ActorProfileBomb6CreateEv kind:function(arm,size=0x24) addr:0x020e15f0 _ZN16ActorProfileBombC1Ev kind:function(arm,size=0x4c) addr:0x020e1614 _ZN9ActorBomb19func_ov031_020e1540Et kind:function(arm,size=0x90) addr:0x020e1660 _ZN9ActorBomb19func_ov031_020e15d0Et kind:function(arm,size=0x64) addr:0x020e16f0 -_ZN9ActorBomb19func_ov031_020e1634Ev kind:function(arm,size=0x58) addr:0x020e1754 +_ZN9ActorBomb19func_ov031_020e1634EP16G3d_RenderState_ kind:function(arm,size=0x58) addr:0x020e1754 _ZN9ActorBombC1Ev kind:function(arm,size=0x168) addr:0x020e17ac _ZN13ActorBomb_unkD1Ev kind:function(arm,size=0x14) addr:0x020e1914 _ZN13ActorBomb_19CD1Ev kind:function(arm,size=0x14) addr:0x020e1928 @@ -318,7 +318,7 @@ _ZN9ActorBomb4InitEi kind:function(arm,size=0x84) addr:0x020e193c _ZN9ActorBomb19func_ov031_020e18a0Ev kind:function(arm,size=0x24) addr:0x020e19c0 _ZN9ActorBomb8SetStateEs kind:function(arm,size=0x44) addr:0x020e19e4 _ZN9ActorBomb19func_ov031_020e1908Ev kind:function(arm,size=0x18) addr:0x020e1a28 -_ZN9ActorBomb19func_ov031_020e1920EP7VecFx32 kind:function(arm,size=0x1c) addr:0x020e1a40 +_ZN9ActorBomb19func_ov031_020e1920EPK7VecFx32 kind:function(arm,size=0x1c) addr:0x020e1a40 _ZN9ActorBomb19func_ov031_020e193cEv kind:function(arm,size=0xec) addr:0x020e1a5c _ZN9ActorBomb6UpdateEv kind:function(arm,size=0xd0) addr:0x020e1b48 _ZN9ActorBomb8vfunc_24Ev kind:function(arm,size=0x24) addr:0x020e1c18 @@ -359,7 +359,7 @@ _ZN13ActorBomb_180C1EP5Actor kind:function(arm,size=0x3c) addr:0x020e2e98 _ZN13ActorBomb_180D1Ev kind:function(arm,size=0x1c) addr:0x020e2ed4 _ZN13ActorBomb_180D0Ev kind:function(arm,size=0x24) addr:0x020e2ef0 _ZN13ActorBomb_1808vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0x48) addr:0x020e2f14 -_ZN13ActorBomb_1808vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0x450) addr:0x020e2f5c +_ZN13ActorBomb_1808vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x450) addr:0x020e2f5c _ZN13ActorBomb_1808vfunc_10E8ActorRefi kind:function(arm,size=0x84) addr:0x020e33ac _ZN24ActorBomb_ov031_020e21348vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0x30) addr:0x020e3430 _ZN13ActorBomb_19CC1EP5Actor kind:function(arm,size=0x3c) addr:0x020e3460 @@ -373,7 +373,7 @@ _ZN16ActorProfileBombD1Ev kind:function(arm,size=0x14) addr:0x020e35c0 _ZN17ActorProfileBlast10GetProfileEv kind:function(arm,size=0xc) addr:0x020e35d4 _ZN17ActorProfileBlast6CreateEv kind:function(arm,size=0x24) addr:0x020e35e0 _ZN17ActorProfileBlastC1Ev kind:function(arm,size=0x38) addr:0x020e3604 -_ZN13ActorBlast_E88vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0x1a4) addr:0x020e363c +_ZN13ActorBlast_E88vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x1a4) addr:0x020e363c _ZN10ActorBlastC1Ev kind:function(arm,size=0x7c) addr:0x020e37e0 _ZN13ActorBlast_E8D1Ev kind:function(arm,size=0x14) addr:0x020e385c _ZN10ActorBlast4InitEi kind:function(arm,size=0x274) addr:0x020e3870 @@ -444,7 +444,7 @@ _ZN22ActorItemBoomerang_11CC1EP18ActorItemBoomerang kind:function(arm,size=0x28) _ZN22ActorItemBoomerang_11CD1Ev kind:function(arm,size=0x14) addr:0x020e5594 _ZN22ActorItemBoomerang_11CD0Ev kind:function(arm,size=0x1c) addr:0x020e55a8 _ZN22ActorItemBoomerang_11C8vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0x30) addr:0x020e55c4 -_ZN22ActorItemBoomerang_11C8vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0x230) addr:0x020e55f4 +_ZN22ActorItemBoomerang_11C8vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x230) addr:0x020e55f4 _ZN26ActorItemBoomerang_Unknown19func_ov031_020e5704Ev kind:function(arm,size=0xc) addr:0x020e5824 _ZN21ActorItemBoomerang_A0D0Ev kind:function(arm,size=0x1c) addr:0x020e5830 _ZN21ActorItemBoomerang_CCD0Ev kind:function(arm,size=0x1c) addr:0x020e584c @@ -482,7 +482,7 @@ func_ov031_020e67dc kind:function(arm,size=0x7c) addr:0x020e68fc func_ov031_020e6858 kind:function(arm,size=0x64) addr:0x020e6978 _ZN19func_ov031_020e68bcD0Ev kind:function(arm,size=0x1c) addr:0x020e69dc _ZN15ActorUnkSWBM_948vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0x28) addr:0x020e69f8 -_ZN15ActorUnkSWBM_948vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0x1c) addr:0x020e6a20 +_ZN15ActorUnkSWBM_948vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x1c) addr:0x020e6a20 _ZN15ActorUnkSWBM_988vfunc_0CEP5ActorP7VecFx32 kind:function(arm,size=0x58) addr:0x020e6a3c _ZN15ActorUnkSWBM_988vfunc_10EP5Actor kind:function(arm,size=0x58) addr:0x020e6a94 _ZN15ActorUnkSWBM_C88vfunc_00Eii kind:function(arm,size=0x168) addr:0x020e6aec @@ -924,7 +924,7 @@ _ZN18ActorShotArrow_178D1Ev kind:function(arm,size=0x1c) addr:0x020f33f4 _ZN18ActorShotArrow_178D0Ev kind:function(arm,size=0x24) addr:0x020f3410 _ZN18ActorShotArrow_17819func_ov031_020f3304Ev kind:function(arm,size=0xc) addr:0x020f3434 _ZN18ActorShotArrow_1788vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0xac) addr:0x020f3440 -_ZN18ActorShotArrow_1788vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0x350) addr:0x020f34ec +_ZN18ActorShotArrow_1788vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x350) addr:0x020f34ec _ZN18ActorShotArrow_194C1EP14ActorShotArrow kind:function(arm,size=0x40) addr:0x020f383c _ZN18ActorShotArrow_19419func_ov031_020f374cEP5Actor kind:function(arm,size=0x164) addr:0x020f387c _ZN18ActorShotArrow_1948vfunc_10EP5Actor kind:function(arm,size=0x388) addr:0x020f39e0 @@ -1110,7 +1110,7 @@ _ZN19ActorProfileUnkFLEND1Ev kind:function(arm,size=0x14) addr:0x020f83fc _ZN24ActorProfileRollingStone10GetProfileEv kind:function(arm,size=0xc) addr:0x020f8410 _ZN24ActorProfileRollingStone6CreateEv kind:function(arm,size=0x24) addr:0x020f841c _ZN24ActorProfileRollingStoneC1Ev kind:function(arm,size=0x44) addr:0x020f8440 -_ZN21ActorRollingStone_1048vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0x90) addr:0x020f8484 +_ZN21ActorRollingStone_1048vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x90) addr:0x020f8484 _ZN21ActorRollingStone_1048vfunc_10E8ActorRefi kind:function(arm,size=0xb8) addr:0x020f8514 _ZN20ActorRollingStone_D48vfunc_10EP5Actor kind:function(arm,size=0x44) addr:0x020f85cc _ZN17ActorRollingStoneC1Ev kind:function(arm,size=0x194) addr:0x020f8610 @@ -1538,11 +1538,11 @@ _ZN24MapObjectTreasureSpawned8vfunc_54Ev kind:function(arm,size=0xc) addr:0x0210 _ZN24MapObjectTreasureSpawnedD1Ev kind:function(arm,size=0x14) addr:0x021030d4 _ZN24MapObjectTreasureSpawnedD0Ev kind:function(arm,size=0x1c) addr:0x021030e8 _ZN31MapObjectProfileTreasureSpawnedD1Ev kind:function(arm,size=0x14) addr:0x02103104 -_ZN19MapObjectUnkTRES_74C1Ei kind:function(arm,size=0x28) addr:0x02103118 -_ZN19MapObjectUnkTRES_748vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0x5c) addr:0x02103140 -_ZN19MapObjectUnkTRES_7419func_ov031_0210306cEv kind:function(arm,size=0x10) addr:0x0210319c +_ZN27MapObjectTreasureSpawned_74C1EP10G3d_Model_ kind:function(arm,size=0x28) addr:0x02103118 +_ZN27MapObjectTreasureSpawned_748vfunc_1CEP16G3d_RenderState_ kind:function(arm,size=0x5c) addr:0x02103140 +_ZN27MapObjectTreasureSpawned_7419func_ov031_0210306cEv kind:function(arm,size=0x10) addr:0x0210319c _ZN18MapObjectChestBaseC2Ei kind:function(arm,size=0x80) addr:0x021031ac -_ZN19MapObjectUnkTRES_74D1Ev kind:function(arm,size=0x14) addr:0x0210322c +_ZN27MapObjectTreasureSpawned_74D1Ev kind:function(arm,size=0x14) addr:0x0210322c _ZN18MapObjectChestBaseD1Ev kind:function(arm,size=0x20) addr:0x02103240 _ZN18MapObjectChestBaseD0Ev kind:function(arm,size=0x28) addr:0x02103260 _ZN18MapObjectChestBaseD2Ev kind:function(arm,size=0x20) addr:0x02103288 @@ -1564,7 +1564,7 @@ _ZN18MapObjectChestBase19func_ov031_02103f48Ev kind:function(arm,size=0x58) addr _ZN18MapObjectChestBase8vfunc_4CEv kind:function(arm,size=0x28) addr:0x021040d0 _ZN18MapObjectChestBase8vfunc_50Ev kind:function(arm,size=0x2c) addr:0x021040f8 _ZN18MapObjectChestBase8vfunc_54Ev kind:function(arm,size=0xc) addr:0x02104124 -_ZN19MapObjectUnkTRES_74D0Ev kind:function(arm,size=0x1c) addr:0x02104130 +_ZN27MapObjectTreasureSpawned_74D0Ev kind:function(arm,size=0x1c) addr:0x02104130 _ZN23MapObjectProfileUnkTRED10GetProfileEv kind:function(arm,size=0xc) addr:0x0210414c _ZN23MapObjectProfileUnkTRED6CreateEv kind:function(arm,size=0x24) addr:0x02104158 _ZN23MapObjectProfileUnkTREDC1Ev kind:function(arm,size=0x44) addr:0x0210417c @@ -1997,12 +1997,10 @@ data_ov031_02110b1a kind:data(any) addr:0x02110b1a data_ov031_02110b1c kind:data(any) addr:0x02110b1c data_ov031_02110b1e kind:data(any) addr:0x02110b1e data_ov031_02110b20 kind:data(any) addr:0x02110b20 -data_ov031_02110b2c kind:data(any) addr:0x02110b2c -data_ov031_02110b40 kind:data(any) addr:0x02110b40 -data_ov031_02110b58 kind:data(any) addr:0x02110b58 -data_ov031_02110b80 kind:data(any) addr:0x02110b80 -data_ov031_02110b90 kind:data(any) addr:0x02110b90 -data_ov031_02110ba0 kind:data(any) addr:0x02110ba0 +data_ov031_021109fc kind:data(any) addr:0x02110b2c local +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 data_ov031_02110bc8_eur1 kind:data(any) addr:0x02110bc8 @@ -2244,14 +2242,14 @@ data_ov031_02112cb8 kind:data(any) addr:0x02112cb8 data_ov031_02112ccc kind:data(any) addr:0x02112ccc _ZTV19data_ov031_02112bac kind:data(any) addr:0x02112cec data_ov031_02112d1c kind:data(any) addr:0x02112d1c -data_ov031_02112d28 kind:data(any) addr:0x02112d28 -data_ov031_02112d40 kind:data(any) addr:0x02112d40 -data_ov031_02112d78 kind:data(any) addr:0x02112d78 +data_ov031_02112be8 kind:data(any) addr:0x02112d28 local +data_ov031_02112c00 kind:data(any) addr:0x02112d40 local +data_ov031_02112c38 kind:data(any) addr:0x02112d78 local _ZTV13ActorBomb_180 kind:data(any) addr:0x02112db0 _ZTV13ActorBomb_19C kind:data(any) addr:0x02112dcc _ZTV24ActorBomb_ov031_020e2134 kind:data(any) addr:0x02112de8 _ZTV16ActorProfileBomb kind:data(any) addr:0x02112e04 -data_ov031_02112e30 kind:data(any) addr:0x02112e30 +_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 diff --git a/config/eur1/arm9/overlays/ov032/symbols.txt b/config/eur1/arm9/overlays/ov032/symbols.txt index 477c2449..9361e866 100644 --- a/config/eur1/arm9/overlays/ov032/symbols.txt +++ b/config/eur1/arm9/overlays/ov032/symbols.txt @@ -123,7 +123,7 @@ _ZN14ActorKeese_2ACC1EP10ActorKeese kind:function(arm,size=0x38) addr:0x0211df74 _ZN14ActorKeese_2ACD1Ev kind:function(arm,size=0x1c) addr:0x0211dfac _ZN14ActorKeese_2ACD0Ev kind:function(arm,size=0x24) addr:0x0211dfc8 _ZN14ActorKeese_2AC8vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0x24) addr:0x0211dfec -_ZN14ActorKeese_2AC8vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0x144) addr:0x0211e010 +_ZN14ActorKeese_2AC8vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x144) addr:0x0211e010 _ZN10ActorKeese4InitEi kind:function(arm,size=0xac) addr:0x0211e154 _ZN10ActorKeese19func_ov032_0211e0c0Ev kind:function(arm,size=0x14) addr:0x0211e200 _ZN10ActorKeese19func_ov032_0211e0d4Esi kind:function(arm,size=0x234) addr:0x0211e214 @@ -200,7 +200,7 @@ _ZN23MapObjectProfileUnkSWSW10GetProfileEv kind:function(arm,size=0xc) addr:0x02 _ZN23MapObjectProfileUnkSWSW6CreateEv kind:function(arm,size=0x24) addr:0x02121058 _ZN23MapObjectProfileUnkSWSWC1Ev kind:function(arm,size=0xb8) addr:0x0212107c _ZN19MapObjectUnkSWSW_40C1EP10G3d_Model_ kind:function(arm,size=0x6c) addr:0x02121134 -_ZN19MapObjectUnkSWSW_408vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0xbc) addr:0x021211a0 +_ZN19MapObjectUnkSWSW_408vfunc_1CEP16G3d_RenderState_ kind:function(arm,size=0xbc) addr:0x021211a0 _ZN19MapObjectUnkSWSW_4019func_ov032_021210a0Ei kind:function(arm,size=0x64) addr:0x0212125c _ZN16MapObjectUnkSWSWC1Ev kind:function(arm,size=0xc4) addr:0x021212c0 _ZN19MapObjectUnkSWSW_40D1Ev kind:function(arm,size=0x14) addr:0x02121384 diff --git a/config/eur1/arm9/overlays/ov063/symbols.txt b/config/eur1/arm9/overlays/ov063/symbols.txt index d91674fc..827ba9c7 100644 --- a/config/eur1/arm9/overlays/ov063/symbols.txt +++ b/config/eur1/arm9/overlays/ov063/symbols.txt @@ -54,7 +54,7 @@ _ZN24UnkStruct_ov063_02162ea8C1Ev kind:function(arm,size=0x30) addr:0x0215a8f4 _ZN24UnkStruct_ov063_02162ea8D1Ev kind:function(arm,size=0x14) addr:0x0215a924 _ZN24UnkStruct_ov063_02162ea8D0Ev kind:function(arm,size=0x1c) addr:0x0215a938 _ZN24UnkStruct_ov063_02162ea88vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0x4c) addr:0x0215a954 -_ZN24UnkStruct_ov063_02162ea88vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0xcc) addr:0x0215a9a0 +_ZN24UnkStruct_ov063_02162ea88vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0xcc) addr:0x0215a9a0 _ZN24UnkStruct_ov063_02162f148vfunc_3CEv kind:function(arm,size=0x24) addr:0x0215aa6c _ZN24UnkStruct_ov063_02162f148vfunc_38Eii kind:function(arm,size=0x2c) addr:0x0215aa90 _ZN24UnkStruct_ov063_02162ee8D0Ev kind:function(arm,size=0x1c) addr:0x0215aabc diff --git a/config/eur1/arm9/overlays/ov093/symbols.txt b/config/eur1/arm9/overlays/ov093/symbols.txt index 65040742..3d2e601b 100644 --- a/config/eur1/arm9/overlays/ov093/symbols.txt +++ b/config/eur1/arm9/overlays/ov093/symbols.txt @@ -26,7 +26,7 @@ func_ov093_02166178 kind:function(arm,size=0x10) addr:0x021662f8 func_ov093_02166188 kind:function(arm,size=0x14) addr:0x02166308 func_ov093_0216619c kind:function(arm,size=0x14) addr:0x0216631c func_ov093_021661b0 kind:function(arm,size=0x10) addr:0x02166330 -func_ov093_021661c0 kind:function(arm,size=0x20) addr:0x02166340 +_ZN18UnkStruct_027e0d8c19func_ov093_021661c0E8ActorRef kind:function(arm,size=0x20) addr:0x02166340 func_ov093_021661e0 kind:function(arm,size=0x10) addr:0x02166360 func_ov093_021661f0 kind:function(arm,size=0x10) addr:0x02166370 func_ov093_02166200 kind:function(arm,size=0x10) addr:0x02166380 diff --git a/config/jp/arm9/itcm/symbols.txt b/config/jp/arm9/itcm/symbols.txt index 1346f5fe..ae287c81 100644 --- a/config/jp/arm9/itcm/symbols.txt +++ b/config/jp/arm9/itcm/symbols.txt @@ -131,7 +131,7 @@ _ZN15ModelRenderBase13func_01ffc634EP7VecFx3214UnkAngleStructS1_ kind:function(a _ZN15ModelRenderBase13func_01ffc6d4E14UnkAngleStructP7VecFx32 kind:function(arm,size=0x70) addr:0x01ffc6d4 func_01ffc744 kind:function(arm,size=0x24) addr:0x01ffc744 _ZN24UnkStruct_ov000_020b4ec413func_01ffc768Ei kind:function(arm,size=0x3c) addr:0x01ffc768 -_ZN20ModelRender_Derived18vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0xb4) addr:0x01ffc7a4 +_ZN20ModelRender_Derived18vfunc_1CEP16G3d_RenderState_ kind:function(arm,size=0xb4) addr:0x01ffc7a4 func_01ffc858 kind:function(arm,size=0x88) addr:0x01ffc858 func_01ffc8e0 kind:function(arm,size=0x2b4) addr:0x01ffc8e0 func_01ffcb94 kind:function(arm,size=0x98) addr:0x01ffcb94 diff --git a/config/jp/arm9/overlays/ov000/delinks.txt b/config/jp/arm9/overlays/ov000/delinks.txt index 9aef02cd..399e7b1c 100644 --- a/config/jp/arm9/overlays/ov000/delinks.txt +++ b/config/jp/arm9/overlays/ov000/delinks.txt @@ -28,6 +28,7 @@ src/000_Second/UnkSystem1_Derived1.cpp: .data start:0x020b389c end:0x020b38d0 src/000_Second/Actor/Actor.cpp: + complete .text start:0x02099b30 end:0x02099dfc .data start:0x020b48e4 end:0x020b4940 @@ -40,6 +41,7 @@ src/000_Second/Actor/ActorUnkSWOB.cpp: .bss start:0x020b740c end:0x020b7458 src/000_Second/Actor/ActorUnkSWTM.cpp: + complete .text start:0x0209c474 end:0x0209c9f8 .init start:0x020b2048 end:0x020b2098 .ctor start:0x020b311c end:0x020b3120 diff --git a/config/jp/arm9/overlays/ov000/symbols.txt b/config/jp/arm9/overlays/ov000/symbols.txt index 28232cb9..6f08ba46 100644 --- a/config/jp/arm9/overlays/ov000/symbols.txt +++ b/config/jp/arm9/overlays/ov000/symbols.txt @@ -67,7 +67,7 @@ func_ov000_02057750 kind:function(thumb,size=0xc) addr:0x02058cd0 _ZN31ModelRender_UnkSystem1_Derived1C1EP10G3d_Model_m kind:function(thumb,size=0x20) addr:0x02058cdc _ZN22ModelRender_UnkSystem1D1Ev kind:function(thumb,size=0xe) addr:0x02058cfc _ZN10UnkSystem5C1EPvP10G3d_Model_ kind:function(thumb,size=0x18) addr:0x02058d0c -_ZN10UnkSystem519func_ov000_020577a4EP24UnkStruct_ov000_02058a84ii kind:function(arm,size=0x54) addr:0x02058d24 +_ZN10UnkSystem519func_ov000_020577a4EP24UnkStruct_ov000_02058a84ib kind:function(arm,size=0x54) addr:0x02058d24 _ZN10UnkSystem519func_ov000_020577f8Ei kind:function(arm,size=0x38) addr:0x02058d78 func_ov000_02057830 kind:function(arm,size=0x3c) addr:0x02058db0 func_ov000_0205786c kind:function(arm,size=0x38) addr:0x02058dec @@ -97,7 +97,7 @@ _ZN11ModelRenderD0Ev kind:function(thumb,size=0x28) addr:0x0205912c _ZN11ModelRenderD2Ev kind:function(thumb,size=0x20) addr:0x02059154 _ZN11ModelRender8vfunc_08EP10G3d_Model_ kind:function(arm,size=0x20) addr:0x02059174 func_ov000_02057c14 kind:function(arm,size=0x20) addr:0x02059194 -_ZN11ModelRender8vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0x4) addr:0x020591b4 +_ZN11ModelRender8vfunc_1CEP16G3d_RenderState_ kind:function(arm,size=0x4) addr:0x020591b4 _ZN11ModelRender19func_ov000_02057c38Eii kind:function(arm,size=0x34) addr:0x020591b8 func_ov000_02057c6c kind:function(arm,size=0x2c) addr:0x020591ec _ZN11ModelRender19func_ov000_02057c98EP10UnkSystem5 kind:function(arm,size=0x18) addr:0x02059218 @@ -1415,7 +1415,7 @@ _ZN24UnkStruct_ov000_020b28388vfunc_00Ev kind:function(arm,size=0x4) addr:0x0207 _ZN24UnkStruct_ov000_020b2838D0Ev kind:function(arm,size=0x14) addr:0x0207d6a0 _ZN29UnkStruct_ov031_Items_00_BaseD2Ev kind:function(arm,size=0x4) addr:0x0207d6b4 _ZN26UnkStruct_027e0ce0_38_Base8vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0x8) addr:0x0207d6b8 -_ZN26UnkStruct_027e0ce0_38_Base8vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0x8) addr:0x0207d6c0 +_ZN26UnkStruct_027e0ce0_38_Base8vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x8) addr:0x0207d6c0 _ZN26UnkStruct_027e0ce0_38_Base8vfunc_10E8ActorRefi kind:function(arm,size=0x8) addr:0x0207d6c8 _ZN17MapObject_10_BaseC2Ev kind:function(arm,size=0x30) addr:0x0207d6d0 func_ov000_0207c048 kind:function(arm,size=0x30) addr:0x0207d700 @@ -2423,7 +2423,7 @@ _ZN24UnkStruct_ov000_020b31f08vfunc_3CEv kind:function(arm,size=0x24) addr:0x020 _ZN24UnkStruct_ov000_020b31f08vfunc_38Ev kind:function(arm,size=0x2c) addr:0x0209bf04 _ZN24UnkStruct_ov000_020b3268C2EP10G3d_Model_ kind:function(thumb,size=0x1c) addr:0x0209bf30 func_ov000_0209a780 kind:function(thumb,size=0x1c) addr:0x0209bf4c -_ZN26ModelRender_ov000_020b4d648vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0x1c) addr:0x0209bf68 +_ZN26ModelRender_ov000_020b4d648vfunc_1CEP16G3d_RenderState_ kind:function(arm,size=0x1c) addr:0x0209bf68 _ZN11ModelRender19func_ov000_0209a7b8EPvPFvS0_iE kind:function(arm,size=0xc) addr:0x0209bf84 func_ov000_0209a7c4 kind:function(arm,size=0x28) addr:0x0209bf90 func_ov000_0209a7ec kind:function(arm,size=0x28) addr:0x0209bfb8 @@ -2601,7 +2601,7 @@ _ZN26MapObjectProfileSwitchStep6CreateEv kind:function(arm,size=0x24) addr:0x020 _ZN26MapObjectProfileSwitchStepC1Ev kind:function(arm,size=0x94) addr:0x0209f4d4 _ZN22MapObjectSwitchStep_40C1Ev kind:function(arm,size=0x3c) addr:0x0209f568 _ZN22MapObjectSwitchStep_4019func_ov000_0209dde0Ev kind:function(arm,size=0x30) addr:0x0209f5a4 -_ZN22MapObjectSwitchStep_408vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0x90) addr:0x0209f5d4 +_ZN22MapObjectSwitchStep_408vfunc_1CEP16G3d_RenderState_ kind:function(arm,size=0x90) addr:0x0209f5d4 _ZN19MapObjectSwitchStepC1Ev kind:function(arm,size=0xfc) addr:0x0209f664 _ZN22MapObjectSwitchStep_40D1Ev kind:function(arm,size=0x14) addr:0x0209f760 _ZN19MapObjectSwitchStepD1Ev kind:function(arm,size=0x58) addr:0x0209f774 @@ -3346,7 +3346,7 @@ __sinit_ov000_020b1f70 kind:function(arm,size=0x14) addr:0x020b1f70 __sinit_ov000_020b1f84 kind:function(arm,size=0x34) addr:0x020b1f84 __sinit_ov000_020b1fb8 kind:function(arm,size=0x40) addr:0x020b1fb8 __sinit_ActorUnkSWOB.cpp kind:function(arm,size=0x50) addr:0x020b1ff8 local -__sinit_ActorUnkSWTM.cpp kind:function(arm,size=0x50) addr:0x020b2048 +__sinit_ActorUnkSWTM.cpp kind:function(arm,size=0x50) addr:0x020b2048 local __sinit_ActorEventIcon.cpp kind:function(arm,size=0x50) addr:0x020b2098 local __sinit_ActorUnkEFIK.cpp kind:function(arm,size=0x50) addr:0x020b20e8 local __sinit_MapObjectProfile.cpp kind:function(arm,size=0x28) addr:0x020b2138 local @@ -3381,7 +3381,7 @@ __sinit_ov000_020b30b0 kind:function(arm,size=0x14) addr:0x020b30b0 .p__sinit_ov000_020b1f84 kind:data(word) addr:0x020b3110 .p__sinit_ov000_020b1fb8 kind:data(word) addr:0x020b3114 .p__sinit_ActorUnkSWOB.cpp kind:data(word) addr:0x020b3118 local -.p__sinit_ActorUnkSWTM.cpp kind:data(word) addr:0x020b311c +.p__sinit_ActorUnkSWTM.cpp kind:data(word) addr:0x020b311c local .p__sinit_ActorEventIcon.cpp kind:data(word) addr:0x020b3120 local .p__sinit_ActorUnkEFIK.cpp kind:data(word) addr:0x020b3124 local .p__sinit_MapObjectProfile.cpp kind:data(word) addr:0x020b3128 local @@ -4048,7 +4048,7 @@ _ZGVN15ProfileInstanceI19ActorProfileUnkSWOBE8sProfileE kind:bss addr:0x020b740c @30032 kind:bss addr:0x020b7410 local _ZN15ProfileInstanceI19ActorProfileUnkSWOBE8sProfileE kind:bss addr:0x020b741c _ZGVN15ProfileInstanceI19ActorProfileUnkSWTME8sProfileE kind:bss addr:0x020b7458 -@30038 kind:bss addr:0x020b745c +@30038 kind:bss addr:0x020b745c local _ZN15ProfileInstanceI19ActorProfileUnkSWTME8sProfileE kind:bss addr:0x020b7468 data_ov000_020b74a4 kind:bss addr:0x020b74a4 _ZGVN15ProfileInstanceI21ActorProfileEventIconE8sProfileE kind:bss addr:0x020b74a8 diff --git a/config/jp/arm9/overlays/ov031/delinks.txt b/config/jp/arm9/overlays/ov031/delinks.txt index 9f206644..643ca507 100644 --- a/config/jp/arm9/overlays/ov031/delinks.txt +++ b/config/jp/arm9/overlays/ov031/delinks.txt @@ -9,11 +9,13 @@ src/031_Land/UnkStruct_027e0d34.cpp: .text start:0x020db1d4 end:0x020db1f4 src/031_Land/Actor/ActorBomb.cpp: + complete .text start:0x020e2e94 end:0x020e4ea0 .init start:0x02112d68 end:0x02112db8 .ctor start:0x02114528 end:0x0211452c .data start:0x02114988 end:0x02114ae4 .bss start:0x021181a4 end:0x021181f0 + .rodata start:0x0211276c end:0x021127f0 src/031_Land/Actor/ActorBlast.cpp: .text start:0x020e4ea0 end:0x020e5690 diff --git a/config/jp/arm9/overlays/ov031/relocs.txt b/config/jp/arm9/overlays/ov031/relocs.txt index f8d58b70..f5018382 100644 --- a/config/jp/arm9/overlays/ov031/relocs.txt +++ b/config/jp/arm9/overlays/ov031/relocs.txt @@ -903,15 +903,15 @@ from:0x020e2f04 kind:load to:0x02114a64 add:0x8 module:overlay(31) from:0x020e2f34 kind:arm_call_thumb to:0x0209040c module:overlay(0) from:0x020e2f44 kind:arm_call to:0x0209de84 module:overlay(0) from:0x020e2f90 kind:load to:0x027e0ce0 module:dtcm -from:0x020e2f94 kind:load to:0x021127d0 module:overlay(31) +from:0x020e2f94 kind:load to:0x021127b0 add:0x20 module:overlay(31) from:0x020e2f98 kind:load to:0x020b7544 module:overlay(0) from:0x020e2fc8 kind:arm_call to:0x02090570 module:overlay(0) from:0x020e2fd8 kind:arm_call to:0x0209de84 module:overlay(0) from:0x020e2fe8 kind:arm_call to:0x0205a004 module:overlay(0) from:0x020e2ff0 kind:load to:0x027e0ce0 module:dtcm -from:0x020e2ff4 kind:load to:0x021127e0 module:overlay(31) +from:0x020e2ff4 kind:load to:0x021127b0 add:0x30 module:overlay(31) from:0x020e2ff8 kind:load to:0x020b7544 module:overlay(0) -from:0x020e3000 kind:load to:0x021127c0 module:overlay(31) +from:0x020e3000 kind:load to:0x021127b0 add:0x10 module:overlay(31) from:0x020e3030 kind:arm_call to:0x0200f218 module:main from:0x020e3058 kind:load to:0x0211276c module:overlay(31) from:0x020e3068 kind:arm_call to:0x02099b30 module:overlay(0) diff --git a/config/jp/arm9/overlays/ov031/symbols.txt b/config/jp/arm9/overlays/ov031/symbols.txt index 01b1b340..e8ce6b0a 100644 --- a/config/jp/arm9/overlays/ov031/symbols.txt +++ b/config/jp/arm9/overlays/ov031/symbols.txt @@ -310,7 +310,7 @@ _ZN16ActorProfileBomb6CreateEv kind:function(arm,size=0x24) addr:0x020e2ea0 _ZN16ActorProfileBombC1Ev kind:function(arm,size=0x4c) addr:0x020e2ec4 _ZN9ActorBomb19func_ov031_020e1540Et kind:function(arm,size=0x90) addr:0x020e2f10 _ZN9ActorBomb19func_ov031_020e15d0Et kind:function(arm,size=0x64) addr:0x020e2fa0 -_ZN9ActorBomb19func_ov031_020e1634Ev kind:function(arm,size=0x58) addr:0x020e3004 +_ZN9ActorBomb19func_ov031_020e1634EP16G3d_RenderState_ kind:function(arm,size=0x58) addr:0x020e3004 _ZN9ActorBombC1Ev kind:function(arm,size=0x16c) addr:0x020e305c _ZN13ActorBomb_unkD1Ev kind:function(arm,size=0x14) addr:0x020e31c8 _ZN13ActorBomb_19CD1Ev kind:function(arm,size=0x14) addr:0x020e31dc @@ -318,7 +318,7 @@ _ZN9ActorBomb4InitEi kind:function(arm,size=0x84) addr:0x020e31f0 _ZN9ActorBomb19func_ov031_020e18a0Ev kind:function(arm,size=0x24) addr:0x020e3274 _ZN9ActorBomb8SetStateEs kind:function(arm,size=0x44) addr:0x020e3298 _ZN9ActorBomb19func_ov031_020e1908Ev kind:function(arm,size=0x18) addr:0x020e32dc -_ZN9ActorBomb19func_ov031_020e1920EP7VecFx32 kind:function(arm,size=0x1c) addr:0x020e32f4 +_ZN9ActorBomb19func_ov031_020e1920EPK7VecFx32 kind:function(arm,size=0x1c) addr:0x020e32f4 _ZN9ActorBomb19func_ov031_020e193cEv kind:function(arm,size=0xec) addr:0x020e3310 _ZN9ActorBomb6UpdateEv kind:function(arm,size=0xd0) addr:0x020e33fc _ZN9ActorBomb8vfunc_24Ev kind:function(arm,size=0x24) addr:0x020e34cc @@ -359,7 +359,7 @@ _ZN13ActorBomb_180C1EP5Actor kind:function(arm,size=0x3c) addr:0x020e4764 _ZN13ActorBomb_180D1Ev kind:function(arm,size=0x1c) addr:0x020e47a0 _ZN13ActorBomb_180D0Ev kind:function(arm,size=0x24) addr:0x020e47bc _ZN13ActorBomb_1808vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0x48) addr:0x020e47e0 -_ZN13ActorBomb_1808vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0x450) addr:0x020e4828 +_ZN13ActorBomb_1808vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x450) addr:0x020e4828 _ZN13ActorBomb_1808vfunc_10E8ActorRefi kind:function(arm,size=0x84) addr:0x020e4c78 _ZN24ActorBomb_ov031_020e21348vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0x30) addr:0x020e4cfc _ZN13ActorBomb_19CC1EP5Actor kind:function(arm,size=0x3c) addr:0x020e4d2c @@ -373,7 +373,7 @@ _ZN16ActorProfileBombD1Ev kind:function(arm,size=0x14) addr:0x020e4e8c _ZN17ActorProfileBlast10GetProfileEv kind:function(arm,size=0xc) addr:0x020e4ea0 _ZN17ActorProfileBlast6CreateEv kind:function(arm,size=0x24) addr:0x020e4eac _ZN17ActorProfileBlastC1Ev kind:function(arm,size=0x38) addr:0x020e4ed0 -_ZN13ActorBlast_E88vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0x1a4) addr:0x020e4f08 +_ZN13ActorBlast_E88vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x1a4) addr:0x020e4f08 _ZN10ActorBlastC1Ev kind:function(arm,size=0x7c) addr:0x020e50ac _ZN13ActorBlast_E8D1Ev kind:function(arm,size=0x14) addr:0x020e5128 _ZN10ActorBlast4InitEi kind:function(arm,size=0x274) addr:0x020e513c @@ -444,7 +444,7 @@ _ZN22ActorItemBoomerang_11CC1EP18ActorItemBoomerang kind:function(arm,size=0x28) _ZN22ActorItemBoomerang_11CD1Ev kind:function(arm,size=0x14) addr:0x020e6e60 _ZN22ActorItemBoomerang_11CD0Ev kind:function(arm,size=0x1c) addr:0x020e6e74 _ZN22ActorItemBoomerang_11C8vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0x30) addr:0x020e6e90 -_ZN22ActorItemBoomerang_11C8vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0x230) addr:0x020e6ec0 +_ZN22ActorItemBoomerang_11C8vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x230) addr:0x020e6ec0 _ZN26ActorItemBoomerang_Unknown19func_ov031_020e5704Ev kind:function(arm,size=0xc) addr:0x020e70f0 _ZN21ActorItemBoomerang_A0D0Ev kind:function(arm,size=0x1c) addr:0x020e70fc _ZN21ActorItemBoomerang_CCD0Ev kind:function(arm,size=0x1c) addr:0x020e7118 @@ -482,7 +482,7 @@ func_ov031_020e81c8 kind:function(arm,size=0x7c) addr:0x020e81c8 func_ov031_020e8244 kind:function(arm,size=0x64) addr:0x020e8244 _ZN19func_ov031_020e68bcD0Ev kind:function(arm,size=0x1c) addr:0x020e82a8 _ZN15ActorUnkSWBM_948vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0x28) addr:0x020e82c4 -_ZN15ActorUnkSWBM_948vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0x1c) addr:0x020e82ec +_ZN15ActorUnkSWBM_948vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x1c) addr:0x020e82ec _ZN15ActorUnkSWBM_988vfunc_0CEP5ActorP7VecFx32 kind:function(arm,size=0x58) addr:0x020e8308 _ZN15ActorUnkSWBM_988vfunc_10EP5Actor kind:function(arm,size=0x58) addr:0x020e8360 _ZN15ActorUnkSWBM_C88vfunc_00Eii kind:function(arm,size=0x168) addr:0x020e83b8 @@ -924,7 +924,7 @@ _ZN18ActorShotArrow_178D1Ev kind:function(arm,size=0x1c) addr:0x020f4cc0 _ZN18ActorShotArrow_178D0Ev kind:function(arm,size=0x24) addr:0x020f4cdc _ZN18ActorShotArrow_17819func_ov031_020f3304Ev kind:function(arm,size=0xc) addr:0x020f4d00 _ZN18ActorShotArrow_1788vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0xac) addr:0x020f4d0c -_ZN18ActorShotArrow_1788vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0x3f8) addr:0x020f4db8 +_ZN18ActorShotArrow_1788vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x3f8) addr:0x020f4db8 _ZN18ActorShotArrow_194C1EP14ActorShotArrow kind:function(arm,size=0x40) addr:0x020f51b0 _ZN18ActorShotArrow_19419func_ov031_020f374cEP5Actor kind:function(arm,size=0x164) addr:0x020f51f0 _ZN18ActorShotArrow_1948vfunc_10EP5Actor kind:function(arm,size=0x388) addr:0x020f5354 @@ -1109,7 +1109,7 @@ _ZN19ActorProfileUnkFLEND1Ev kind:function(arm,size=0x14) addr:0x020f9d10 _ZN24ActorProfileRollingStone10GetProfileEv kind:function(arm,size=0xc) addr:0x020f9d24 _ZN24ActorProfileRollingStone6CreateEv kind:function(arm,size=0x24) addr:0x020f9d30 _ZN24ActorProfileRollingStoneC1Ev kind:function(arm,size=0x44) addr:0x020f9d54 -_ZN21ActorRollingStone_1048vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0x90) addr:0x020f9d98 +_ZN21ActorRollingStone_1048vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x90) addr:0x020f9d98 _ZN21ActorRollingStone_1048vfunc_10E8ActorRefi kind:function(arm,size=0xb8) addr:0x020f9e28 _ZN20ActorRollingStone_D48vfunc_10EP5Actor kind:function(arm,size=0x44) addr:0x020f9ee0 _ZN17ActorRollingStoneC1Ev kind:function(arm,size=0x194) addr:0x020f9f24 @@ -1537,11 +1537,11 @@ _ZN24MapObjectTreasureSpawned8vfunc_54Ev kind:function(arm,size=0xc) addr:0x0210 _ZN24MapObjectTreasureSpawnedD1Ev kind:function(arm,size=0x14) addr:0x02104d00 _ZN24MapObjectTreasureSpawnedD0Ev kind:function(arm,size=0x1c) addr:0x02104d14 _ZN31MapObjectProfileTreasureSpawnedD1Ev kind:function(arm,size=0x14) addr:0x02104d30 -_ZN19MapObjectUnkTRES_74C1Ei kind:function(arm,size=0x28) addr:0x02104d44 -_ZN19MapObjectUnkTRES_748vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0x5c) addr:0x02104d6c -_ZN19MapObjectUnkTRES_7419func_ov031_0210306cEv kind:function(arm,size=0x10) addr:0x02104dc8 +_ZN27MapObjectTreasureSpawned_74C1EP10G3d_Model_ kind:function(arm,size=0x28) addr:0x02104d44 +_ZN27MapObjectTreasureSpawned_748vfunc_1CEP16G3d_RenderState_ kind:function(arm,size=0x5c) addr:0x02104d6c +_ZN27MapObjectTreasureSpawned_7419func_ov031_0210306cEv kind:function(arm,size=0x10) addr:0x02104dc8 _ZN18MapObjectChestBaseC2Ei kind:function(arm,size=0x80) addr:0x02104dd8 -_ZN19MapObjectUnkTRES_74D1Ev kind:function(arm,size=0x14) addr:0x02104e58 +_ZN27MapObjectTreasureSpawned_74D1Ev kind:function(arm,size=0x14) addr:0x02104e58 _ZN18MapObjectChestBaseD1Ev kind:function(arm,size=0x20) addr:0x02104e6c _ZN18MapObjectChestBaseD0Ev kind:function(arm,size=0x28) addr:0x02104e8c _ZN18MapObjectChestBaseD2Ev kind:function(arm,size=0x20) addr:0x02104eb4 @@ -1563,7 +1563,7 @@ _ZN18MapObjectChestBase19func_ov031_02103f48Ev kind:function(arm,size=0x58) addr _ZN18MapObjectChestBase8vfunc_4CEv kind:function(arm,size=0x28) addr:0x02105cfc _ZN18MapObjectChestBase8vfunc_50Ev kind:function(arm,size=0x2c) addr:0x02105d24 _ZN18MapObjectChestBase8vfunc_54Ev kind:function(arm,size=0xc) addr:0x02105d50 -_ZN19MapObjectUnkTRES_74D0Ev kind:function(arm,size=0x1c) addr:0x02105d5c +_ZN27MapObjectTreasureSpawned_74D0Ev kind:function(arm,size=0x1c) addr:0x02105d5c _ZN23MapObjectProfileUnkTRED10GetProfileEv kind:function(arm,size=0xc) addr:0x02105d78 _ZN23MapObjectProfileUnkTRED6CreateEv kind:function(arm,size=0x24) addr:0x02105d84 _ZN23MapObjectProfileUnkTREDC1Ev kind:function(arm,size=0x44) addr:0x02105da8 @@ -1997,12 +1997,10 @@ data_ov031_0211275a kind:data(any) addr:0x0211275a data_ov031_0211275c kind:data(any) addr:0x0211275c data_ov031_0211275e kind:data(any) addr:0x0211275e data_ov031_02112760 kind:data(any) addr:0x02112760 -data_ov031_0211276c kind:data(any) addr:0x0211276c -data_ov031_02110a10 kind:data(any) addr:0x02112780 -data_ov031_02110a28 kind:data(any) addr:0x02112798 -data_ov031_02110a50 kind:data(any) addr:0x021127c0 -data_ov031_02110a60 kind:data(any) addr:0x021127d0 -data_ov031_02110a70 kind:data(any) addr:0x021127e0 +data_ov031_021109fc kind:data(any) addr:0x0211276c local +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 data_ov031_02112808 kind:data(any) addr:0x02112808 @@ -2067,7 +2065,7 @@ data_ov031_02112ce4 kind:data(any) addr:0x02112ce4 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 +__sinit_ActorBomb.cpp kind:function(arm,size=0x50) addr:0x02112d68 local __sinit_ActorBlast.cpp kind:function(arm,size=0x50) addr:0x02112db8 __sinit_ActorUnkTLKT.cpp kind:function(arm,size=0x50) addr:0x02112e08 local __sinit_ActorItemBoomerang.cpp kind:function(arm,size=0x50) addr:0x02112e58 @@ -2131,7 +2129,7 @@ __sinit_MapObjectUnkGSST.cpp kind:function(arm,size=0x50) addr:0x02114460 __sinit_MapObjectUnkSWFS.cpp kind:function(arm,size=0x70) addr:0x021144b0 .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 +.p__sinit_ActorBomb.cpp kind:data(word) addr:0x02114528 local .p__sinit_ActorBlast.cpp kind:data(word) addr:0x0211452c .p__sinit_ActorUnkTLKT.cpp kind:data(word) addr:0x02114530 local .p__sinit_ActorItemBoomerang.cpp kind:data(word) addr:0x02114534 @@ -2239,9 +2237,9 @@ data_ov031_02114918 kind:data(any) addr:0x02114918 _ZTV19data_ov031_02114924 kind:data(any) addr:0x02114924 _ZTV19data_ov031_0211494c kind:data(any) addr:0x0211494c data_ov031_0211497c kind:data(any) addr:0x0211497c -data_ov031_02112be8 kind:data(any) addr:0x02114988 -data_ov031_02112c00 kind:data(any) addr:0x021149a0 -data_ov031_02112c38 kind:data(any) addr:0x021149d8 +data_ov031_02112be8 kind:data(any) addr:0x02114988 local +data_ov031_02112c00 kind:data(any) addr:0x021149a0 local +data_ov031_02112c38 kind:data(any) addr:0x021149d8 local _ZTV13ActorBomb_180 kind:data(any) addr:0x02114a10 _ZTV13ActorBomb_19C kind:data(any) addr:0x02114a2c _ZTV24ActorBomb_ov031_020e2134 kind:data(any) addr:0x02114a48 @@ -2514,7 +2512,7 @@ data_ov031_021180e0 kind:data(any) addr:0x021180e0 ambiguous data_ov031_021180f8 kind:data(any) addr:0x021180f8 data_ov031_02118120 kind:bss addr:0x02118120 _ZGVN15ProfileInstanceI16ActorProfileBombE8sProfileE kind:bss addr:0x021181a4 -@30775 kind:bss addr:0x021181a8 +@30775 kind:bss addr:0x021181a8 local _ZN15ProfileInstanceI16ActorProfileBombE8sProfileE kind:bss addr:0x021181b4 _ZGVN15ProfileInstanceI17ActorProfileBlastE8sProfileE kind:bss addr:0x021181f0 @30781 kind:bss addr:0x021181f4 diff --git a/config/jp/arm9/overlays/ov032/symbols.txt b/config/jp/arm9/overlays/ov032/symbols.txt index f4d7e0bf..d210b39c 100644 --- a/config/jp/arm9/overlays/ov032/symbols.txt +++ b/config/jp/arm9/overlays/ov032/symbols.txt @@ -123,7 +123,7 @@ _ZN14ActorKeese_2ACC1EP10ActorKeese kind:function(arm,size=0x38) addr:0x0211fbd4 _ZN14ActorKeese_2ACD1Ev kind:function(arm,size=0x1c) addr:0x0211fc0c _ZN14ActorKeese_2ACD0Ev kind:function(arm,size=0x24) addr:0x0211fc28 _ZN14ActorKeese_2AC8vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0x24) addr:0x0211fc4c -_ZN14ActorKeese_2AC8vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0x144) addr:0x0211fc70 +_ZN14ActorKeese_2AC8vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x144) addr:0x0211fc70 _ZN10ActorKeese4InitEi kind:function(arm,size=0xac) addr:0x0211fdb4 _ZN10ActorKeese19func_ov032_0211e0c0Ev kind:function(arm,size=0x14) addr:0x0211fe60 _ZN10ActorKeese19func_ov032_0211e0d4Esi kind:function(arm,size=0x234) addr:0x0211fe74 @@ -204,7 +204,7 @@ _ZN23MapObjectProfileUnkSWSW10GetProfileEv kind:function(arm,size=0xc) addr:0x02 _ZN23MapObjectProfileUnkSWSW6CreateEv kind:function(arm,size=0x24) addr:0x02122e74 _ZN23MapObjectProfileUnkSWSWC1Ev kind:function(arm,size=0xb8) addr:0x02122e98 _ZN19MapObjectUnkSWSW_40C1EP10G3d_Model_ kind:function(arm,size=0x6c) addr:0x02122f50 -_ZN19MapObjectUnkSWSW_408vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0xbc) addr:0x02122fbc +_ZN19MapObjectUnkSWSW_408vfunc_1CEP16G3d_RenderState_ kind:function(arm,size=0xbc) addr:0x02122fbc _ZN19MapObjectUnkSWSW_4019func_ov032_021210a0Ei kind:function(arm,size=0x64) addr:0x02123078 _ZN16MapObjectUnkSWSWC1Ev kind:function(arm,size=0xc4) addr:0x021230dc _ZN19MapObjectUnkSWSW_40D1Ev kind:function(arm,size=0x14) addr:0x021231a0 diff --git a/config/jp/arm9/overlays/ov063/symbols.txt b/config/jp/arm9/overlays/ov063/symbols.txt index a0a25e29..9f1794bf 100644 --- a/config/jp/arm9/overlays/ov063/symbols.txt +++ b/config/jp/arm9/overlays/ov063/symbols.txt @@ -54,7 +54,7 @@ _ZN24UnkStruct_ov063_02162ea8C1Ev kind:function(arm,size=0x30) addr:0x0215c570 _ZN24UnkStruct_ov063_02162ea8D1Ev kind:function(arm,size=0x14) addr:0x0215c5a0 _ZN24UnkStruct_ov063_02162ea8D0Ev kind:function(arm,size=0x1c) addr:0x0215c5b4 _ZN24UnkStruct_ov063_02162ea88vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0x4c) addr:0x0215c5d0 -_ZN24UnkStruct_ov063_02162ea88vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0xcc) addr:0x0215c61c +_ZN24UnkStruct_ov063_02162ea88vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0xcc) addr:0x0215c61c _ZN24UnkStruct_ov063_02162f148vfunc_3CEv kind:function(arm,size=0x24) addr:0x0215c6e8 _ZN24UnkStruct_ov063_02162f148vfunc_38Eii kind:function(arm,size=0x2c) addr:0x0215c70c _ZN24UnkStruct_ov063_02162ee8D0Ev kind:function(arm,size=0x1c) addr:0x0215c738 diff --git a/config/usa/arm9/itcm/symbols.txt b/config/usa/arm9/itcm/symbols.txt index 1346f5fe..ae287c81 100644 --- a/config/usa/arm9/itcm/symbols.txt +++ b/config/usa/arm9/itcm/symbols.txt @@ -131,7 +131,7 @@ _ZN15ModelRenderBase13func_01ffc634EP7VecFx3214UnkAngleStructS1_ kind:function(a _ZN15ModelRenderBase13func_01ffc6d4E14UnkAngleStructP7VecFx32 kind:function(arm,size=0x70) addr:0x01ffc6d4 func_01ffc744 kind:function(arm,size=0x24) addr:0x01ffc744 _ZN24UnkStruct_ov000_020b4ec413func_01ffc768Ei kind:function(arm,size=0x3c) addr:0x01ffc768 -_ZN20ModelRender_Derived18vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0xb4) addr:0x01ffc7a4 +_ZN20ModelRender_Derived18vfunc_1CEP16G3d_RenderState_ kind:function(arm,size=0xb4) addr:0x01ffc7a4 func_01ffc858 kind:function(arm,size=0x88) addr:0x01ffc858 func_01ffc8e0 kind:function(arm,size=0x2b4) addr:0x01ffc8e0 func_01ffcb94 kind:function(arm,size=0x98) addr:0x01ffcb94 diff --git a/config/usa/arm9/overlays/ov000/delinks.txt b/config/usa/arm9/overlays/ov000/delinks.txt index ba689076..b5cf2d91 100644 --- a/config/usa/arm9/overlays/ov000/delinks.txt +++ b/config/usa/arm9/overlays/ov000/delinks.txt @@ -28,6 +28,7 @@ src/000_Second/UnkSystem1_Derived1.cpp: .data start:0x020b207c end:0x020b20b0 src/000_Second/Actor/Actor.cpp: + complete .text start:0x02098368 end:0x02098634 .data start:0x020b30c4 end:0x020b3120 @@ -40,6 +41,7 @@ src/000_Second/Actor/ActorUnkSWOB.cpp: .bss start:0x020b5bdc end:0x020b5c28 src/000_Second/Actor/ActorUnkSWTM.cpp: + complete .text start:0x0209ac88 end:0x0209b20c .init start:0x020b0818 end:0x020b0868 .ctor start:0x020b18ec end:0x020b18f0 diff --git a/config/usa/arm9/overlays/ov000/relocs.txt b/config/usa/arm9/overlays/ov000/relocs.txt index 3f199f63..02877f57 100644 --- a/config/usa/arm9/overlays/ov000/relocs.txt +++ b/config/usa/arm9/overlays/ov000/relocs.txt @@ -8618,7 +8618,7 @@ from:0x020ae51c kind:load to:0x0217754c module:overlays(89,90,91,93,94) from:0x020ae520 kind:load to:0x020e3494 module:overlays(20,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:overlays(20,31) +from:0x020ae52c kind:load to:0x020e14a4 module:overlay(31) from:0x020ae530 kind:load to:0x020f37b0 module:overlays(21,22,23) from:0x020ae534 kind:load to:0x0217ad10 module:overlays(92,96) from:0x020ae538 kind:load to:0x02140038 module:overlays(26,70) diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt index f2567e50..94f42fc1 100644 --- a/config/usa/arm9/overlays/ov000/symbols.txt +++ b/config/usa/arm9/overlays/ov000/symbols.txt @@ -67,7 +67,7 @@ func_ov000_02057750 kind:function(thumb,size=0xc) addr:0x02057730 _ZN31ModelRender_UnkSystem1_Derived1C1EP10G3d_Model_m kind:function(thumb,size=0x20) addr:0x0205773c _ZN22ModelRender_UnkSystem1D1Ev kind:function(thumb,size=0xe) addr:0x0205775c _ZN10UnkSystem5C1EPvP10G3d_Model_ kind:function(thumb,size=0x18) addr:0x0205776c -_ZN10UnkSystem519func_ov000_020577a4Eiii kind:function(arm,size=0x54) addr:0x02057784 +_ZN10UnkSystem519func_ov000_020577a4EP24UnkStruct_ov000_02058a84ib kind:function(arm,size=0x54) addr:0x02057784 _ZN10UnkSystem519func_ov000_020577f8Ei kind:function(arm,size=0x38) addr:0x020577d8 func_ov000_02057830 kind:function(arm,size=0x3c) addr:0x02057810 func_ov000_0205786c kind:function(arm,size=0x38) addr:0x0205784c @@ -97,13 +97,13 @@ _ZN11ModelRenderD0Ev kind:function(thumb,size=0x28) addr:0x02057b8c _ZN11ModelRenderD2Ev kind:function(thumb,size=0x20) addr:0x02057bb4 _ZN11ModelRender8vfunc_08EP10G3d_Model_ kind:function(arm,size=0x20) addr:0x02057bd4 func_ov000_02057c14 kind:function(arm,size=0x20) addr:0x02057bf4 -_ZN11ModelRender8vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0x4) addr:0x02057c14 +_ZN11ModelRender8vfunc_1CEP16G3d_RenderState_ kind:function(arm,size=0x4) addr:0x02057c14 _ZN11ModelRender19func_ov000_02057c38Eii kind:function(arm,size=0x34) addr:0x02057c18 func_ov000_02057c6c kind:function(arm,size=0x2c) addr:0x02057c4c _ZN11ModelRender19func_ov000_02057c98EP10UnkSystem5 kind:function(arm,size=0x18) addr:0x02057c78 func_ov000_02057cb0 kind:function(arm,size=0x18) addr:0x02057c90 func_ov000_02057cc8 kind:function(arm,size=0x2c) addr:0x02057ca8 -func_ov000_02057cf4 kind:function(arm,size=0x2c) addr:0x02057cd4 +_ZN11ModelRender19func_ov000_02057cf4Ev kind:function(arm,size=0x2c) addr:0x02057cd4 _ZN11ModelRender19func_ov000_02057d20Eh kind:function(thumb,size=0x1c) addr:0x02057d00 _ZN11ModelRender19func_ov000_02057d3cEP18G3d_BoneMtxStruct_ kind:function(arm,size=0x30) addr:0x02057d1c func_ov000_02057d6c kind:function(arm,size=0x18) addr:0x02057d4c @@ -1414,7 +1414,7 @@ _ZN24UnkStruct_ov000_020b28388vfunc_00Ev kind:function(arm,size=0x4) addr:0x0207 _ZN24UnkStruct_ov000_020b2838D0Ev kind:function(arm,size=0x14) addr:0x0207bfc8 _ZN29UnkStruct_ov031_Items_00_BaseD2Ev kind:function(arm,size=0x4) addr:0x0207bfdc _ZN26UnkStruct_027e0ce0_38_Base8vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0x8) addr:0x0207bfe0 -_ZN26UnkStruct_027e0ce0_38_Base8vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0x8) addr:0x0207bfe8 +_ZN26UnkStruct_027e0ce0_38_Base8vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x8) addr:0x0207bfe8 _ZN26UnkStruct_027e0ce0_38_Base8vfunc_10E8ActorRefi kind:function(arm,size=0x8) addr:0x0207bff0 _ZN17MapObject_10_BaseC2Ev kind:function(arm,size=0x30) addr:0x0207bff8 func_ov000_0207c048 kind:function(arm,size=0x30) addr:0x0207c028 @@ -2062,10 +2062,10 @@ func_ov000_0208eb90 kind:function(arm,size=0x104) addr:0x0208eb70 func_ov000_0208ec94 kind:function(arm,size=0x60) addr:0x0208ec74 func_ov000_0208ecf4 kind:function(thumb,size=0x1c) addr:0x0208ecd4 func_ov000_0208ed10 kind:function(thumb,size=0x20) addr:0x0208ecf0 -_ZN18UnkStruct_027e0ce019func_ov000_0208ed30EiiPc kind:function(thumb,size=0x34) addr:0x0208ed10 +_ZN21UnkStruct_027e0ce0_1C19func_ov000_0208ed30EiiPc kind:function(thumb,size=0x34) addr:0x0208ed10 func_ov000_0208ed64 kind:function(thumb,size=0xc4) addr:0x0208ed44 func_ov000_0208ee28 kind:function(thumb,size=0x6c) addr:0x0208ee08 -func_ov000_0208ee94 kind:function(arm,size=0x8c) addr:0x0208ee74 +_ZN21UnkStruct_027e0ce0_1C19func_ov000_0208ee94EiiPci kind:function(arm,size=0x8c) addr:0x0208ee74 func_ov000_0208ef20 kind:function(arm,size=0x68) addr:0x0208ef00 func_ov000_0208ef88 kind:function(thumb,size=0x34) addr:0x0208ef68 func_ov000_0208efbc kind:function(thumb,size=0x12) addr:0x0208ef9c @@ -2423,7 +2423,7 @@ func_ov000_0209a714 kind:function(arm,size=0x24) addr:0x0209a6f4 func_ov000_0209a738 kind:function(arm,size=0x2c) addr:0x0209a718 _ZN24UnkStruct_ov000_020b3268C2EP10G3d_Model_ kind:function(thumb,size=0x1c) addr:0x0209a744 func_ov000_0209a780 kind:function(thumb,size=0x1c) addr:0x0209a760 -_ZN26ModelRender_ov000_020b4d648vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0x1c) addr:0x0209a77c +_ZN26ModelRender_ov000_020b4d648vfunc_1CEP16G3d_RenderState_ kind:function(arm,size=0x1c) addr:0x0209a77c _ZN11ModelRender19func_ov000_0209a7b8EPvPFvS0_iE kind:function(arm,size=0xc) addr:0x0209a798 func_ov000_0209a7c4 kind:function(arm,size=0x28) addr:0x0209a7a4 func_ov000_0209a7ec kind:function(arm,size=0x28) addr:0x0209a7cc @@ -2602,7 +2602,7 @@ _ZN26MapObjectProfileSwitchStep6CreateEv kind:function(arm,size=0x24) addr:0x020 _ZN26MapObjectProfileSwitchStepC1Ev kind:function(arm,size=0x94) addr:0x0209dcf0 _ZN22MapObjectSwitchStep_40C1Ev kind:function(arm,size=0x3c) addr:0x0209dd84 _ZN22MapObjectSwitchStep_4019func_ov000_0209dde0Ev kind:function(arm,size=0x30) addr:0x0209ddc0 -_ZN22MapObjectSwitchStep_408vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0x90) addr:0x0209ddf0 +_ZN22MapObjectSwitchStep_408vfunc_1CEP16G3d_RenderState_ kind:function(arm,size=0x90) addr:0x0209ddf0 _ZN19MapObjectSwitchStepC1Ev kind:function(arm,size=0xfc) addr:0x0209de80 _ZN22MapObjectSwitchStep_40D1Ev kind:function(arm,size=0x14) addr:0x0209df7c _ZN19MapObjectSwitchStepD1Ev kind:function(arm,size=0x58) addr:0x0209df90 @@ -4049,9 +4049,9 @@ data_ov000_020b53d0 kind:bss addr:0x020b53b0 _ZGVN15ProfileInstanceI19ActorProfileUnkSWOBE8sProfileE kind:bss addr:0x020b5bdc @5649 kind:bss addr:0x020b5be0 local _ZN15ProfileInstanceI19ActorProfileUnkSWOBE8sProfileE kind:bss addr:0x020b5bec -data_ov000_020b5c28 kind:bss addr:0x020b5c28 -data_ov000_020b5c2c kind:bss addr:0x020b5c2c -data_ov000_020b5c38 kind:bss addr:0x020b5c38 +_ZGVN15ProfileInstanceI19ActorProfileUnkSWTME8sProfileE kind:bss addr:0x020b5c28 +@6523 kind:bss addr:0x020b5c2c local +_ZN15ProfileInstanceI19ActorProfileUnkSWTME8sProfileE kind:bss addr:0x020b5c38 data_ov000_020b5c74 kind:bss addr:0x020b5c74 _ZGVN15ProfileInstanceI21ActorProfileEventIconE8sProfileE kind:bss addr:0x020b5c78 @3699 kind:bss addr:0x020b5c7c local diff --git a/config/usa/arm9/overlays/ov031/delinks.txt b/config/usa/arm9/overlays/ov031/delinks.txt index 11032939..2c93680b 100644 --- a/config/usa/arm9/overlays/ov031/delinks.txt +++ b/config/usa/arm9/overlays/ov031/delinks.txt @@ -9,11 +9,13 @@ src/031_Land/UnkStruct_027e0d34.cpp: .text start:0x020d9814 end:0x020d9834 src/031_Land/Actor/ActorBomb.cpp: + complete .text start:0x020e14a4 end:0x020e3494 .init start:0x02110fd8 end:0x02111028 .ctor start:0x0211277c end:0x02112780 .data start:0x02112bc8 end:0x02112d24 .bss start:0x021163e4 end:0x02116430 + .rodata start:0x021109dc end:0x02110a60 src/031_Land/Actor/ActorBlast.cpp: .text start:0x020e3494 end:0x020e3c84 diff --git a/config/usa/arm9/overlays/ov031/relocs.txt b/config/usa/arm9/overlays/ov031/relocs.txt index a0af75fd..9116ae53 100644 --- a/config/usa/arm9/overlays/ov031/relocs.txt +++ b/config/usa/arm9/overlays/ov031/relocs.txt @@ -902,15 +902,15 @@ from:0x020e1514 kind:load to:0x02112ca4 add:0x8 module:overlay(31) from:0x020e1544 kind:arm_call_thumb to:0x0208ed10 module:overlay(0) from:0x020e1554 kind:arm_call to:0x0209c698 module:overlay(0) from:0x020e15a0 kind:load to:0x027e0ce0 module:dtcm -from:0x020e15a4 kind:load to:0x02110a40 module:overlay(31) +from:0x020e15a4 kind:load to:0x02110a20 add:0x20 module:overlay(31) from:0x020e15a8 kind:load to:0x020b5d14 module:overlay(0) from:0x020e15d8 kind:arm_call to:0x0208ee74 module:overlay(0) from:0x020e15e8 kind:arm_call to:0x0209c698 module:overlay(0) from:0x020e15f8 kind:arm_call to:0x02058a64 module:overlay(0) from:0x020e1600 kind:load to:0x027e0ce0 module:dtcm -from:0x020e1604 kind:load to:0x02110a50 module:overlay(31) +from:0x020e1604 kind:load to:0x02110a20 add:0x30 module:overlay(31) from:0x020e1608 kind:load to:0x020b5d14 module:overlay(0) -from:0x020e1610 kind:load to:0x02110a30 module:overlay(31) +from:0x020e1610 kind:load to:0x02110a20 add:0x10 module:overlay(31) from:0x020e1640 kind:arm_call to:0x0200f218 module:main from:0x020e1668 kind:load to:0x021109dc module:overlay(31) from:0x020e1678 kind:arm_call to:0x02098368 module:overlay(0) diff --git a/config/usa/arm9/overlays/ov031/symbols.txt b/config/usa/arm9/overlays/ov031/symbols.txt index eef97870..e1f769e0 100644 --- a/config/usa/arm9/overlays/ov031/symbols.txt +++ b/config/usa/arm9/overlays/ov031/symbols.txt @@ -310,7 +310,7 @@ _ZN16ActorProfileBomb6CreateEv kind:function(arm,size=0x24) addr:0x020e14b0 _ZN16ActorProfileBombC1Ev kind:function(arm,size=0x4c) addr:0x020e14d4 _ZN9ActorBomb19func_ov031_020e1540Et kind:function(arm,size=0x90) addr:0x020e1520 _ZN9ActorBomb19func_ov031_020e15d0Et kind:function(arm,size=0x64) addr:0x020e15b0 -_ZN9ActorBomb19func_ov031_020e1634Ev kind:function(arm,size=0x58) addr:0x020e1614 +_ZN9ActorBomb19func_ov031_020e1634EP16G3d_RenderState_ kind:function(arm,size=0x58) addr:0x020e1614 _ZN9ActorBombC1Ev kind:function(arm,size=0x168) addr:0x020e166c _ZN13ActorBomb_unkD1Ev kind:function(arm,size=0x14) addr:0x020e17d4 _ZN13ActorBomb_19CD1Ev kind:function(arm,size=0x14) addr:0x020e17e8 @@ -318,7 +318,7 @@ _ZN9ActorBomb4InitEi kind:function(arm,size=0x84) addr:0x020e17fc _ZN9ActorBomb19func_ov031_020e18a0Ev kind:function(arm,size=0x24) addr:0x020e1880 _ZN9ActorBomb8SetStateEs kind:function(arm,size=0x44) addr:0x020e18a4 _ZN9ActorBomb19func_ov031_020e1908Ev kind:function(arm,size=0x18) addr:0x020e18e8 -_ZN9ActorBomb19func_ov031_020e1920EP7VecFx32 kind:function(arm,size=0x1c) addr:0x020e1900 +_ZN9ActorBomb19func_ov031_020e1920EPK7VecFx32 kind:function(arm,size=0x1c) addr:0x020e1900 _ZN9ActorBomb19func_ov031_020e193cEv kind:function(arm,size=0xec) addr:0x020e191c _ZN9ActorBomb6UpdateEv kind:function(arm,size=0xd0) addr:0x020e1a08 _ZN9ActorBomb8vfunc_24Ev kind:function(arm,size=0x24) addr:0x020e1ad8 @@ -359,7 +359,7 @@ _ZN13ActorBomb_180C1EP5Actor kind:function(arm,size=0x3c) addr:0x020e2d58 _ZN13ActorBomb_180D1Ev kind:function(arm,size=0x1c) addr:0x020e2d94 _ZN13ActorBomb_180D0Ev kind:function(arm,size=0x24) addr:0x020e2db0 _ZN13ActorBomb_1808vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0x48) addr:0x020e2dd4 -_ZN13ActorBomb_1808vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0x450) addr:0x020e2e1c +_ZN13ActorBomb_1808vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x450) addr:0x020e2e1c _ZN13ActorBomb_1808vfunc_10E8ActorRefi kind:function(arm,size=0x84) addr:0x020e326c _ZN24ActorBomb_ov031_020e21348vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0x30) addr:0x020e32f0 _ZN13ActorBomb_19CC1EP5Actor kind:function(arm,size=0x3c) addr:0x020e3320 @@ -373,7 +373,7 @@ _ZN16ActorProfileBombD1Ev kind:function(arm,size=0x14) addr:0x020e3480 _ZN17ActorProfileBlast10GetProfileEv kind:function(arm,size=0xc) addr:0x020e3494 _ZN17ActorProfileBlast6CreateEv kind:function(arm,size=0x24) addr:0x020e34a0 _ZN17ActorProfileBlastC1Ev kind:function(arm,size=0x38) addr:0x020e34c4 -_ZN13ActorBlast_E88vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0x1a4) addr:0x020e34fc +_ZN13ActorBlast_E88vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x1a4) addr:0x020e34fc _ZN10ActorBlastC1Ev kind:function(arm,size=0x7c) addr:0x020e36a0 _ZN13ActorBlast_E8D1Ev kind:function(arm,size=0x14) addr:0x020e371c _ZN10ActorBlast4InitEi kind:function(arm,size=0x274) addr:0x020e3730 @@ -444,7 +444,7 @@ _ZN22ActorItemBoomerang_11CC1EP18ActorItemBoomerang kind:function(arm,size=0x28) _ZN22ActorItemBoomerang_11CD1Ev kind:function(arm,size=0x14) addr:0x020e5454 _ZN22ActorItemBoomerang_11CD0Ev kind:function(arm,size=0x1c) addr:0x020e5468 _ZN22ActorItemBoomerang_11C8vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0x30) addr:0x020e5484 -_ZN22ActorItemBoomerang_11C8vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0x230) addr:0x020e54b4 +_ZN22ActorItemBoomerang_11C8vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x230) addr:0x020e54b4 _ZN26ActorItemBoomerang_Unknown19func_ov031_020e5704Ev kind:function(arm,size=0xc) addr:0x020e56e4 _ZN21ActorItemBoomerang_A0D0Ev kind:function(arm,size=0x1c) addr:0x020e56f0 _ZN21ActorItemBoomerang_CCD0Ev kind:function(arm,size=0x1c) addr:0x020e570c @@ -482,7 +482,7 @@ func_ov031_020e67dc kind:function(arm,size=0x7c) addr:0x020e67bc func_ov031_020e6858 kind:function(arm,size=0x64) addr:0x020e6838 _ZN19func_ov031_020e68bcD0Ev kind:function(arm,size=0x1c) addr:0x020e689c _ZN15ActorUnkSWBM_948vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0x28) addr:0x020e68b8 -_ZN15ActorUnkSWBM_948vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0x1c) addr:0x020e68e0 +_ZN15ActorUnkSWBM_948vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x1c) addr:0x020e68e0 _ZN15ActorUnkSWBM_988vfunc_0CEP5ActorP7VecFx32 kind:function(arm,size=0x58) addr:0x020e68fc _ZN15ActorUnkSWBM_988vfunc_10EP5Actor kind:function(arm,size=0x58) addr:0x020e6954 _ZN15ActorUnkSWBM_C88vfunc_00Eii kind:function(arm,size=0x168) addr:0x020e69ac @@ -924,7 +924,7 @@ _ZN18ActorShotArrow_178D1Ev kind:function(arm,size=0x1c) addr:0x020f32a4 _ZN18ActorShotArrow_178D0Ev kind:function(arm,size=0x24) addr:0x020f32c0 _ZN18ActorShotArrow_17819func_ov031_020f3304Ev kind:function(arm,size=0xc) addr:0x020f32e4 _ZN18ActorShotArrow_1788vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0xac) addr:0x020f32f0 -_ZN18ActorShotArrow_1788vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0x350) addr:0x020f339c +_ZN18ActorShotArrow_1788vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x350) addr:0x020f339c _ZN18ActorShotArrow_194C1EP14ActorShotArrow kind:function(arm,size=0x40) addr:0x020f36ec _ZN18ActorShotArrow_19419func_ov031_020f374cEP5Actor kind:function(arm,size=0x164) addr:0x020f372c _ZN18ActorShotArrow_1948vfunc_10EP5Actor kind:function(arm,size=0x388) addr:0x020f3890 @@ -1110,7 +1110,7 @@ _ZN19ActorProfileUnkFLEND1Ev kind:function(arm,size=0x14) addr:0x020f82ac _ZN24ActorProfileRollingStone10GetProfileEv kind:function(arm,size=0xc) addr:0x020f82c0 _ZN24ActorProfileRollingStone6CreateEv kind:function(arm,size=0x24) addr:0x020f82cc _ZN24ActorProfileRollingStoneC1Ev kind:function(arm,size=0x44) addr:0x020f82f0 -_ZN21ActorRollingStone_1048vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0x90) addr:0x020f8334 +_ZN21ActorRollingStone_1048vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x90) addr:0x020f8334 _ZN21ActorRollingStone_1048vfunc_10E8ActorRefi kind:function(arm,size=0xb8) addr:0x020f83c4 _ZN20ActorRollingStone_D48vfunc_10EP5Actor kind:function(arm,size=0x44) addr:0x020f847c _ZN17ActorRollingStoneC1Ev kind:function(arm,size=0x194) addr:0x020f84c0 @@ -1538,11 +1538,11 @@ _ZN24MapObjectTreasureSpawned8vfunc_54Ev kind:function(arm,size=0xc) addr:0x0210 _ZN24MapObjectTreasureSpawnedD1Ev kind:function(arm,size=0x14) addr:0x02102f84 _ZN24MapObjectTreasureSpawnedD0Ev kind:function(arm,size=0x1c) addr:0x02102f98 _ZN31MapObjectProfileTreasureSpawnedD1Ev kind:function(arm,size=0x14) addr:0x02102fb4 -_ZN19MapObjectUnkTRES_74C1Ei kind:function(arm,size=0x28) addr:0x02102fc8 -_ZN19MapObjectUnkTRES_748vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0x5c) addr:0x02102ff0 -_ZN19MapObjectUnkTRES_7419func_ov031_0210306cEv kind:function(arm,size=0x10) addr:0x0210304c +_ZN27MapObjectTreasureSpawned_74C1EP10G3d_Model_ kind:function(arm,size=0x28) addr:0x02102fc8 +_ZN27MapObjectTreasureSpawned_748vfunc_1CEP16G3d_RenderState_ kind:function(arm,size=0x5c) addr:0x02102ff0 +_ZN27MapObjectTreasureSpawned_7419func_ov031_0210306cEv kind:function(arm,size=0x10) addr:0x0210304c _ZN18MapObjectChestBaseC2Ei kind:function(arm,size=0x80) addr:0x0210305c -_ZN19MapObjectUnkTRES_74D1Ev kind:function(arm,size=0x14) addr:0x021030dc +_ZN27MapObjectTreasureSpawned_74D1Ev kind:function(arm,size=0x14) addr:0x021030dc _ZN18MapObjectChestBaseD1Ev kind:function(arm,size=0x20) addr:0x021030f0 _ZN18MapObjectChestBaseD0Ev kind:function(arm,size=0x28) addr:0x02103110 _ZN18MapObjectChestBaseD2Ev kind:function(arm,size=0x20) addr:0x02103138 @@ -1564,7 +1564,7 @@ _ZN18MapObjectChestBase19func_ov031_02103f48Ev kind:function(arm,size=0x58) addr _ZN18MapObjectChestBase8vfunc_4CEv kind:function(arm,size=0x28) addr:0x02103f80 _ZN18MapObjectChestBase8vfunc_50Ev kind:function(arm,size=0x2c) addr:0x02103fa8 _ZN18MapObjectChestBase8vfunc_54Ev kind:function(arm,size=0xc) addr:0x02103fd4 -_ZN19MapObjectUnkTRES_74D0Ev kind:function(arm,size=0x1c) addr:0x02103fe0 +_ZN27MapObjectTreasureSpawned_74D0Ev kind:function(arm,size=0x1c) addr:0x02103fe0 _ZN23MapObjectProfileUnkTRED10GetProfileEv kind:function(arm,size=0xc) addr:0x02103ffc _ZN23MapObjectProfileUnkTRED6CreateEv kind:function(arm,size=0x24) addr:0x02104008 _ZN23MapObjectProfileUnkTREDC1Ev kind:function(arm,size=0x44) addr:0x0210402c @@ -1997,12 +1997,10 @@ data_ov031_021109ca kind:data(any) addr:0x021109ca data_ov031_021109cc kind:data(any) addr:0x021109cc data_ov031_021109ce kind:data(any) addr:0x021109ce data_ov031_021109d0 kind:data(any) addr:0x021109d0 -data_ov031_021109dc kind:data(any) addr:0x021109dc -data_ov031_021109f0 kind:data(any) addr:0x021109f0 -data_ov031_02110a08 kind:data(any) addr:0x02110a08 -data_ov031_02110a30 kind:data(any) addr:0x02110a30 -data_ov031_02110a40 kind:data(any) addr:0x02110a40 -data_ov031_02110a50 kind:data(any) addr:0x02110a50 +data_ov031_021109fc kind:data(any) addr:0x021109dc local +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 data_ov031_02110a78 kind:data(any) addr:0x02110a78 @@ -2242,9 +2240,9 @@ data_ov031_02112b58 kind:data(any) addr:0x02112b58 _ZTV19data_ov031_02112b6c kind:data(any) addr:0x02112b64 _ZTV19data_ov031_02112bac kind:data(any) addr:0x02112b8c data_ov031_02112bbc kind:data(any) addr:0x02112bbc -data_ov031_02112bc8 kind:data(any) addr:0x02112bc8 -data_ov031_02112be0 kind:data(any) addr:0x02112be0 -data_ov031_02112c18 kind:data(any) addr:0x02112c18 +data_ov031_02112be8 kind:data(any) addr:0x02112bc8 local +data_ov031_02112c00 kind:data(any) addr:0x02112be0 local +data_ov031_02112c38 kind:data(any) addr:0x02112c18 local _ZTV13ActorBomb_180 kind:data(any) addr:0x02112c50 _ZTV13ActorBomb_19C kind:data(any) addr:0x02112c6c _ZTV24ActorBomb_ov031_020e2134 kind:data(any) addr:0x02112c88 @@ -2524,9 +2522,9 @@ data_ov031_0211630c kind:data(any) addr:0x0211630c data_ov031_02116320 kind:data(any) addr:0x02116320 ambiguous data_ov031_02116338 kind:data(any) addr:0x02116338 data_ov031_02116360 kind:bss addr:0x02116360 -data_ov031_021163e4 kind:bss addr:0x021163e4 -data_ov031_021163e8 kind:bss addr:0x021163e8 -data_ov031_021163f4 kind:bss addr:0x021163f4 +_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 diff --git a/config/usa/arm9/overlays/ov032/symbols.txt b/config/usa/arm9/overlays/ov032/symbols.txt index 14778cd2..4acb2d74 100644 --- a/config/usa/arm9/overlays/ov032/symbols.txt +++ b/config/usa/arm9/overlays/ov032/symbols.txt @@ -123,7 +123,7 @@ _ZN14ActorKeese_2ACC1EP10ActorKeese kind:function(arm,size=0x38) addr:0x0211de14 _ZN14ActorKeese_2ACD1Ev kind:function(arm,size=0x1c) addr:0x0211de4c _ZN14ActorKeese_2ACD0Ev kind:function(arm,size=0x24) addr:0x0211de68 _ZN14ActorKeese_2AC8vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0x24) addr:0x0211de8c -_ZN14ActorKeese_2AC8vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0x144) addr:0x0211deb0 +_ZN14ActorKeese_2AC8vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0x144) addr:0x0211deb0 _ZN10ActorKeese4InitEi kind:function(arm,size=0xac) addr:0x0211dff4 _ZN10ActorKeese19func_ov032_0211e0c0Ev kind:function(arm,size=0x14) addr:0x0211e0a0 _ZN10ActorKeese19func_ov032_0211e0d4Esi kind:function(arm,size=0x234) addr:0x0211e0b4 @@ -200,7 +200,7 @@ _ZN23MapObjectProfileUnkSWSW10GetProfileEv kind:function(arm,size=0xc) addr:0x02 _ZN23MapObjectProfileUnkSWSW6CreateEv kind:function(arm,size=0x24) addr:0x02120e7c _ZN23MapObjectProfileUnkSWSWC1Ev kind:function(arm,size=0xb8) addr:0x02120ea0 _ZN19MapObjectUnkSWSW_40C1EP10G3d_Model_ kind:function(arm,size=0x6c) addr:0x02120f58 -_ZN19MapObjectUnkSWSW_408vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0xbc) addr:0x02120fc4 +_ZN19MapObjectUnkSWSW_408vfunc_1CEP16G3d_RenderState_ kind:function(arm,size=0xbc) addr:0x02120fc4 _ZN19MapObjectUnkSWSW_4019func_ov032_021210a0Ei kind:function(arm,size=0x64) addr:0x02121080 _ZN16MapObjectUnkSWSWC1Ev kind:function(arm,size=0xc4) addr:0x021210e4 _ZN19MapObjectUnkSWSW_40D1Ev kind:function(arm,size=0x14) addr:0x021211a8 diff --git a/config/usa/arm9/overlays/ov063/symbols.txt b/config/usa/arm9/overlays/ov063/symbols.txt index 0f719825..2786b8f6 100644 --- a/config/usa/arm9/overlays/ov063/symbols.txt +++ b/config/usa/arm9/overlays/ov063/symbols.txt @@ -54,7 +54,7 @@ _ZN24UnkStruct_ov063_02162ea8C1Ev kind:function(arm,size=0x30) addr:0x0215a7b4 _ZN24UnkStruct_ov063_02162ea8D1Ev kind:function(arm,size=0x14) addr:0x0215a7e4 _ZN24UnkStruct_ov063_02162ea8D0Ev kind:function(arm,size=0x1c) addr:0x0215a7f8 _ZN24UnkStruct_ov063_02162ea88vfunc_08EPK24UnkStruct_ov031_020f3310i kind:function(arm,size=0x4c) addr:0x0215a814 -_ZN24UnkStruct_ov063_02162ea88vfunc_0CEPK24UnkStruct_ov031_020e54d4Pii kind:function(arm,size=0xcc) addr:0x0215a860 +_ZN24UnkStruct_ov063_02162ea88vfunc_0CE9MapObjRefP24UnkStruct_ov031_020e54d4PK7VecFx32S5_ kind:function(arm,size=0xcc) addr:0x0215a860 _ZN24UnkStruct_ov063_02162f148vfunc_3CEv kind:function(arm,size=0x24) addr:0x0215a92c _ZN24UnkStruct_ov063_02162f148vfunc_38Eii kind:function(arm,size=0x2c) addr:0x0215a950 _ZN24UnkStruct_ov063_02162ee8D0Ev kind:function(arm,size=0x1c) addr:0x0215a97c diff --git a/include/Actor/ActorBlast.hpp b/include/Actor/ActorBlast.hpp index b704be26..284214f1 100644 --- a/include/Actor/ActorBlast.hpp +++ b/include/Actor/ActorBlast.hpp @@ -2,6 +2,7 @@ #include "Actor/Actor.hpp" #include "Actor/ActorProfile.hpp" +#include "MapObject/MapObjectRef.hpp" #include "global.h" #include "types.h" @@ -17,7 +18,8 @@ public: mUnk_04(param1) {} // data_ov031_02112d4c - /* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 *param2, unk32 param3) override; + /* 0C */ virtual bool vfunc_0C(MapObjRef ref, UnkStruct_ov031_020e54d4 *param2, const VecFx32 *param3, + const VecFx32 *param4) override; }; class ActorBlast : public Actor { diff --git a/include/Actor/ActorBomb.hpp b/include/Actor/ActorBomb.hpp index 4f75a5ce..b3549a8f 100644 --- a/include/Actor/ActorBomb.hpp +++ b/include/Actor/ActorBomb.hpp @@ -3,7 +3,9 @@ #include "Actor/Actor.hpp" #include "Actor/ActorProfile.hpp" #include "Actor_Derived1.hpp" +#include "MapObject/MapObjectRef.hpp" #include "global.h" +#include "nns/g3d/sbc.h" #include "types.h" enum ActorBombState_ { @@ -53,16 +55,19 @@ public: // data_ov031_02112c78 /* 00 */ virtual ~ActorBomb_180() override; /* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1, unk32 param2) override; - /* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 *param2, unk32 param3) override; + /* 0C */ virtual bool vfunc_0C(MapObjRef ref, UnkStruct_ov031_020e54d4 *param2, const VecFx32 *param3, + const VecFx32 *param4) override; /* 10 */ virtual bool vfunc_10(ActorRef param1, unk32 param2) override; }; class ActorBomb_ov031_020e2134 : public UnkStruct_ov031_Items_00 { public: /* 00 (base) */ - /* 04 */ PAD(0x4, 0x8); + /* 04 */ PAD(0x04, 0x08); /* 08 */ + ~ActorBomb_ov031_020e2134() {} // required to fix function order + // data_ov031_02112cb0 /* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1, unk32 param2) override; }; @@ -112,14 +117,15 @@ public: // check if really in ActorUnkBomb G3d_Model *func_ov031_020e1540(u16 param1); UnkStruct_ov000_02058a84 *func_ov031_020e15d0(u16 param1); - static void func_ov031_020e1634(); void func_ov031_020e17f4(); + static void func_ov031_020e1634(G3d_RenderState *param1); + // void func_ov031_020e18a0(); void SetState(ActorState state); void func_ov031_020e1908(); - void func_ov031_020e1920(VecFx32 *param1); + void func_ov031_020e1920(const VecFx32 *param1); void func_ov031_020e193c(); void func_ov031_020e1b1c(); void func_ov031_020e1b7c(); diff --git a/include/Actor/ActorItemBoomerang.hpp b/include/Actor/ActorItemBoomerang.hpp index 78f1bf76..0e6d25ad 100644 --- a/include/Actor/ActorItemBoomerang.hpp +++ b/include/Actor/ActorItemBoomerang.hpp @@ -2,6 +2,7 @@ #include "Actor/Actor.hpp" #include "Actor/ActorProfile.hpp" +#include "MapObject/MapObjectRef.hpp" #include "Render/ModelRender.hpp" #include "Unknown/UnkStruct_ov031_Items.hpp" #include "global.h" @@ -36,7 +37,8 @@ public: /* 00 */ virtual ~ActorItemBoomerang_11C() override; /* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1, unk32 param2) override; - /* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 *param2, unk32 param3) override; + /* 0C */ virtual bool vfunc_0C(MapObjRef ref, UnkStruct_ov031_020e54d4 *param2, const VecFx32 *param3, + const VecFx32 *param4) override; }; class ActorItemBoomerang_A0 : public UnkStruct_ov031_Items_01 { diff --git a/include/Actor/ActorItemFlower.hpp b/include/Actor/ActorItemFlower.hpp index b648bf6b..a216e41c 100644 --- a/include/Actor/ActorItemFlower.hpp +++ b/include/Actor/ActorItemFlower.hpp @@ -14,7 +14,7 @@ public: ModelRender_ov031_0211578c(const G3d_Model *model, unk32 param1, unk32 param2); // data_ov031_0211578c - /* 1C */ virtual void vfunc_1C(UnkSystem4_vfunc_1C *param1) override; + /* 1C */ virtual void vfunc_1C(G3d_RenderState *param1) override; void func_ov031_02102c00(); }; diff --git a/include/Actor/ActorKeese.hpp b/include/Actor/ActorKeese.hpp index 9fb5a72a..fd31ca8f 100644 --- a/include/Actor/ActorKeese.hpp +++ b/include/Actor/ActorKeese.hpp @@ -22,18 +22,6 @@ enum ActorKeeseState_ { }; class ActorKeese; -class UnkStruct_ov000_020b34c4 { -public: - /* 00 (vtable) */ - /* 04 */ MapObjectId mUnk_04; - /* 08 */ - - UnkStruct_ov000_020b34c4(MapObjectId param1) : - mUnk_04(param1) {} - - // data_ov000_020b34c4 - /* 00 */ virtual bool vfunc_00(MapObject *param1); -}; class UnkStruct_ov032_0212251c : public UnkStruct_ov000_020b34c4 { public: @@ -61,7 +49,8 @@ public: // data_ov032_02122528 /* 00 */ virtual ~ActorKeese_2AC() override; /* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1, unk32 param2) override; - /* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 *param2, unk32 param3) override; + /* 0C */ virtual bool vfunc_0C(MapObjRef ref, UnkStruct_ov031_020e54d4 *param2, const VecFx32 *param3, + const VecFx32 *param4) override; }; class ModelRender_ov032_02122568 : public UnkStruct_ov000_020b3268 { diff --git a/include/Actor/ActorRollingStone.hpp b/include/Actor/ActorRollingStone.hpp index b5b7b3d7..60372aab 100644 --- a/include/Actor/ActorRollingStone.hpp +++ b/include/Actor/ActorRollingStone.hpp @@ -33,8 +33,8 @@ public: /* 04 */ // data_ov031_02114a5c - /* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 *param2, - unk32 param3) override; // func_ov031_020f8354 + /* 0C */ virtual bool vfunc_0C(MapObjRef ref, UnkStruct_ov031_020e54d4 *param2, const VecFx32 *param3, + const VecFx32 *param4) override; /* 10 */ virtual bool vfunc_10(ActorRef param1, unk32 param2) override; // func_ov031_020f83e4 /* 14 */ }; diff --git a/include/Actor/ActorShotArrow.hpp b/include/Actor/ActorShotArrow.hpp index 9e7c187b..33f932a1 100644 --- a/include/Actor/ActorShotArrow.hpp +++ b/include/Actor/ActorShotArrow.hpp @@ -50,7 +50,8 @@ public: // data_ov031_02114288 /* 00 */ virtual ~ActorShotArrow_178() override; /* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1, unk32 param2) override; - /* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 *param2, unk32 param3) override; + /* 0C */ virtual bool vfunc_0C(MapObjRef ref, UnkStruct_ov031_020e54d4 *param2, const VecFx32 *param3, + const VecFx32 *param4) override; void func_ov031_020f3304(); }; diff --git a/include/Actor/ActorUnkCANS.hpp b/include/Actor/ActorUnkCANS.hpp index 0c88e426..e1b0cf0a 100644 --- a/include/Actor/ActorUnkCANS.hpp +++ b/include/Actor/ActorUnkCANS.hpp @@ -42,7 +42,8 @@ public: /* 00 */ virtual ~UnkStruct_ov063_02162ea8(); /* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1, unk32 param2) override; - /* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 *param2, unk32 param3) override; + /* 0C */ virtual bool vfunc_0C(MapObjRef ref, UnkStruct_ov031_020e54d4 *param2, const VecFx32 *param3, + const VecFx32 *param4) override; }; class UnkStruct_ov063_02162ee8 : public UnkStruct_ov000_020b3268 { diff --git a/include/Actor/ActorUnkSWBM.hpp b/include/Actor/ActorUnkSWBM.hpp index 3723075b..9b6c0bc3 100644 --- a/include/Actor/ActorUnkSWBM.hpp +++ b/include/Actor/ActorUnkSWBM.hpp @@ -21,7 +21,8 @@ public: // data_ov031_02113148 /* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1, unk32 param2) override; - /* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 *param2, unk32 param3) override; + /* 0C */ virtual bool vfunc_0C(MapObjRef ref, UnkStruct_ov031_020e54d4 *param2, const VecFx32 *param3, + const VecFx32 *param4) override; }; class ActorUnkSWBM_98 : public UnkStruct_ov031_Items_01 { diff --git a/include/Actor/ActorUnkZLSL_ZSRS.hpp b/include/Actor/ActorUnkZLSL_ZSRS.hpp index 16c76e06..9f713470 100644 --- a/include/Actor/ActorUnkZLSL_ZSRS.hpp +++ b/include/Actor/ActorUnkZLSL_ZSRS.hpp @@ -21,7 +21,7 @@ public: // data_ov000_020b4d64 /* 0C */ virtual void vfunc_0C() override; - /* 1C */ virtual void vfunc_1C(UnkSystem4_vfunc_1C *param1) override; + /* 1C */ virtual void vfunc_1C(G3d_RenderState *param1) override; }; class ModelRender_ov031_02113670 : public ModelRender_ov000_020b4d64 { diff --git a/include/CommonFuncs.hpp b/include/CommonFuncs.hpp index 62e07ce6..ac9869df 100644 --- a/include/CommonFuncs.hpp +++ b/include/CommonFuncs.hpp @@ -126,14 +126,14 @@ void func_0200240c(unk32); BOOL NNS_SndArcLoadBank(unk32 param1, unk32 param2); void func_02006aa8(unk32, unk32); void func_02006d8c(u16, unk32); -void func_0200b578(G3d_RenderObject *, void (*)(), unk32, unk32, unk32); +void func_0200b578(G3d_RenderObject *, G3d_CallbackFunction, unk32, unk32, unk32); void func_0200b58c(G3d_RenderObject *); void G3d_GetCurrentMtx(MtxFx43 *mtx1, MtxFx33 *mtx2); void func_0200ea38(G3d_Model *, unk32, unk32); void func_0200eab0(G3d_Model *, unk32, u8); void func_0200ef9c(G3d_Model *); UnkResourceStruct2 *func_0200f05c(G3d_NameList *, char *); -unk32 func_0200f218(unk32, const char *); +unk32 func_0200f218(G3d_NameList *, const char name[16]); void *func_02012ec8(unk32, unk16, const char *, size_t *, unk32, u8); void *func_02012ee4(const char *, unk32, unk32, size_t *, u8); void *func_02012f6c(const char *, size_t *); diff --git a/include/MapObject/MapObject.hpp b/include/MapObject/MapObject.hpp index 79a640ed..3c92d37e 100644 --- a/include/MapObject/MapObject.hpp +++ b/include/MapObject/MapObject.hpp @@ -3,6 +3,7 @@ #include "Actor/ActorRef.hpp" #include "Map/MapObjectId.hpp" #include "MapObject/MapObjectProfile.hpp" +#include "MapObject/MapObjectRef.hpp" #include "Physics/Cylinder.hpp" #include "Render/ModelRender.hpp" #include "System/SysNew.hpp" @@ -134,9 +135,7 @@ public: /* 1C */ MapObjFlags mFlags[1]; /* 1E */ unk16 mUnk_1E; /* 20 */ MapObject_20 mUnk_20; // parameters - /* 38 */ unk8 mUnk_38; - /* 39 */ unk8 mUnk_39; - /* 3A */ Vec2bCpp mUnk_3A; + /* 38 */ MapObjRef mRef; /* 3C */ MapObjectProfile *mpProfile; /* 40 */ diff --git a/include/MapObject/MapObjectChestBase.hpp b/include/MapObject/MapObjectChestBase.hpp index 19e069de..b23c5bbf 100644 --- a/include/MapObject/MapObjectChestBase.hpp +++ b/include/MapObject/MapObjectChestBase.hpp @@ -20,7 +20,7 @@ public: // data_ov031_02115844 /* 00 */ virtual ~MapObjectTreasureSpawned_74() override {} - /* 1C */ virtual void vfunc_1C(UnkSystem4_vfunc_1C *param1) override; + /* 1C */ virtual void vfunc_1C(G3d_RenderState *param1) override; void func_ov000_0209dde0(void); diff --git a/include/MapObject/MapObjectManager.hpp b/include/MapObject/MapObjectManager.hpp index 12640655..ae65a307 100644 --- a/include/MapObject/MapObjectManager.hpp +++ b/include/MapObject/MapObjectManager.hpp @@ -1,12 +1,13 @@ #pragma once -#include "MapObject/MapObject.hpp" #include "Unknown/UnkStruct_ov000_020b34c4.hpp" #include "files.h" #include "types.h" #include "math.hpp" +struct MapObject; + typedef void (*UnkCallback_func_01fff4cc)(void *, void *); struct UnkStruct_MapObjCreateData { diff --git a/include/MapObject/MapObjectRef.hpp b/include/MapObject/MapObjectRef.hpp new file mode 100644 index 00000000..9cc1b29c --- /dev/null +++ b/include/MapObject/MapObjectRef.hpp @@ -0,0 +1,64 @@ +#pragma once + +#include "MapObject/MapObjectManager.hpp" +#include "global.h" +#include "math.hpp" +#include "types.h" + +struct MapObject; + +struct MapObjRef { + union { + struct { + union { + struct { + /* 00 */ u8 unk_00; + /* 01 */ u8 unk_01; + }; + u16 unk_00_u16; + }; + /* 02 */ Vec2b unk_02; + /* 04 */ + }; + u32 data; + }; + + MapObjRef() {} + + MapObjRef(u32 value) { + this->data = value; + } + + void Reset() { + this->data = 0; + } + + const bool operator==(const MapObjRef &other) const { + return other.data == this->data; + } + + const bool operator!=(const MapObjRef &other) const { + return !(*this == other); + } + + void operator=(const MapObjRef &other) { + this->data = other.data; + } + + const u32 Get32() const { + return this->data; + } + + Vec2bCpp &GetUnk02() { + return *(Vec2bCpp *) &this->unk_02; + } +}; + +// for arrays +struct MapObjRefElem { + MapObjRef ref; + + MapObjRefElem() { + this->ref.Reset(); + } +}; diff --git a/include/MapObject/MapObjectSwitchStep.hpp b/include/MapObject/MapObjectSwitchStep.hpp index eeec96fc..984efd47 100644 --- a/include/MapObject/MapObjectSwitchStep.hpp +++ b/include/MapObject/MapObjectSwitchStep.hpp @@ -20,7 +20,7 @@ public: // data_ov000_020b36e0 /* 00 */ virtual ~MapObjectSwitchStep_40() override {} - /* 1C */ virtual void vfunc_1C(UnkSystem4_vfunc_1C *param1) override; + /* 1C */ virtual void vfunc_1C(G3d_RenderState *param1) override; void func_ov000_0209dde0(void); }; diff --git a/include/MapObject/MapObjectUnkSWSW.hpp b/include/MapObject/MapObjectUnkSWSW.hpp index 120c8bc5..0fa005bf 100644 --- a/include/MapObject/MapObjectUnkSWSW.hpp +++ b/include/MapObject/MapObjectUnkSWSW.hpp @@ -20,7 +20,7 @@ public: MapObjectUnkSWSW_40(G3d_Model *pModel); // data_ov032_021227ac - /* 1C */ virtual void vfunc_1C(UnkSystem4_vfunc_1C *param1) override; + /* 1C */ virtual void vfunc_1C(G3d_RenderState *param1) override; void func_ov032_021210a0(fx32 param1); }; diff --git a/include/Player/PlayerActorBase.hpp b/include/Player/PlayerActorBase.hpp index da872d2e..fc0d6795 100644 --- a/include/Player/PlayerActorBase.hpp +++ b/include/Player/PlayerActorBase.hpp @@ -147,7 +147,7 @@ public: ModelRender_Derived4(PlayerCharacter character, unk32 param2, G3d_Model *pModel, G3d_BoneMtxStruct *pCacheJntAnm); // data_ov000_020b2b70 - /* 1C */ virtual void vfunc_1C(UnkSystem4_vfunc_1C *param1) override; + /* 1C */ virtual void vfunc_1C(G3d_RenderState *param1) override; // overlay 0 void func_ov000_02057fe8(UnkAngleStruct param1, UnkAngleStruct param2, VecFx32 *param3); @@ -166,7 +166,7 @@ public: // data_ov093_021787e8 /* 00 */ virtual ~ModelRender_Derived5() override {} - /* 1C */ virtual void vfunc_1C(UnkSystem4_vfunc_1C *param1) override; + /* 1C */ virtual void vfunc_1C(G3d_RenderState *param1) override; }; class PlayerActorBase_38 { diff --git a/include/Render/ModelRender.hpp b/include/Render/ModelRender.hpp index 9add75bb..8caa768c 100644 --- a/include/Render/ModelRender.hpp +++ b/include/Render/ModelRender.hpp @@ -3,7 +3,9 @@ #include "global.h" #include "math.hpp" #include "nitro/fx.h" +#include "nns/g3d/sbc.h" #include "profile.hpp" +#include "stdbool.h" #include "types.h" #include @@ -20,25 +22,6 @@ struct ActorUnkZLSL_AnimationTag { typedef void (*UnkSystem4_UnkCallback)(void *, unk32); -class UnkSystem4_vfunc_1C_B4 { -public: - /* 00 */ unk32 mUnk_00; - /* 00 */ PAD(0x04, 0x28); - /* 28 */ MtxFx33 mUnk_28; - /* 4C */ unk32 mUnk_4C; - /* 50 */ unk32 mUnk_50; - /* 54 */ unk32 mUnk_54; -}; - -class UnkSystem4_vfunc_1C { -public: - /* 00 */ u8 *mUnk_00; - /* 04 */ unk32 *mUnk_04; - /* 08 */ PAD(0x08, 0xB4); - /* B4 */ UnkSystem4_vfunc_1C_B4 *mUnk_B4; - /* 00 */ unk32 *mUnk_B8; -}; - class ModelRenderBase { public: /* 00 (vtable) */ @@ -82,7 +65,7 @@ public: /* 10 */ virtual void vfunc_10(VecFx32 *param1, MtxFx33 *param2, VecFx32 *param3) override; // SetTransform? /* 14 */ virtual void vfunc_14(MtxFx33 *param1, VecFx32 *param2) override; // SetRotationTranslation? /* 18 */ virtual void vfunc_18(VecFx32 *param1) override; - /* 1C */ virtual void vfunc_1C(UnkSystem4_vfunc_1C *param1); + /* 1C */ virtual void vfunc_1C(G3d_RenderState *param1); /* 20 */ virtual void vfunc_20(); void func_ov000_02057c38(unk32 param1, unk32 param2); @@ -183,7 +166,7 @@ public: void func_01ffc3b4(); - void func_ov000_020577a4(UnkStruct_ov000_02058a84 *param1, unk32 param2, unk32 param3); + void func_ov000_020577a4(UnkStruct_ov000_02058a84 *param1, unk32 param2, bool param3); void func_ov000_020577f8(unk32 param1); void func_ov000_020578a4(unk32 param1, unk32 param2); }; @@ -192,11 +175,10 @@ class UnkSystem5_Derived1 : public UnkSystem5 { public: UnkSystem5_Derived1(void *param1, G3d_Model *param2, UnkStruct_ov000_02058a84 *param3) : UnkSystem5(param1, param2) { - unk32 value = 0; + bool value = false; - //! TODO: struct - if (!(*((u32 *) param3 + 2) & 2)) { - value = 1; + if (!(param3->mUnk_08 & 2)) { + value = true; } this->func_ov000_020577a4(param3, 0, value); @@ -216,7 +198,7 @@ public: // data_ov000_020b1be4 /* 00 */ virtual ~ModelRender_Derived1() override {} /* 08 */ virtual void vfunc_08(G3d_Model *pModel) override; - /* 1C */ virtual void vfunc_1C(UnkSystem4_vfunc_1C *param1) override; + /* 1C */ virtual void vfunc_1C(G3d_RenderState *param1) override; unk32 func_ov000_0205a778(const char *param1); VecFx32 *func_ov000_0205a7a8(unk32 param1); diff --git a/include/Unknown/UnkStruct_027e0ce0.hpp b/include/Unknown/UnkStruct_027e0ce0.hpp index de14b246..0ba5167b 100644 --- a/include/Unknown/UnkStruct_027e0ce0.hpp +++ b/include/Unknown/UnkStruct_027e0ce0.hpp @@ -9,6 +9,7 @@ #include "Actor/ActorRef.hpp" #include "Item/ItemManager.hpp" #include "LinkList.hpp" +#include "MapObject/MapObjectRef.hpp" #include "Player/PlayerLink.hpp" #include "Player/PlayerZelda.hpp" #include "Player/TouchControl.hpp" @@ -307,7 +308,10 @@ public: class UnkStruct_ov031_020f3310_04 { public: /* 00 */ PAD(0x00, 0x24); - /* 24 */ unk32 mUnk_24[4]; + /* 24 */ u32 *mUnk_24; + /* 28 */ unk32 mUnk_28; + /* 2C */ unk32 mUnk_2C; + /* 30 */ unk32 mUnk_30; /* 34 */ }; @@ -321,9 +325,16 @@ public: class UnkStruct_ov031_020e54d4 { public: - /* 00 */ PAD(0x00, 0x04); - /* 04 */ unk32 mUnk_04; + /* 00 (vtable) */ + /* 04 */ u8 mUnk_04; /* 08 */ u32 mUnk_08; + + /* 00 */ virtual unk32 vfunc_00(); + /* 04 */ virtual void vfunc_04(); + /* 08 */ virtual void vfunc_08(); + /* 0C */ virtual void vfunc_0C(); + /* 10 */ virtual void vfunc_10(); + /* 14 */ virtual void vfunc_14(const VecFx32 *param1); }; class UnkStruct_027e0ce0_38_Base { @@ -334,7 +345,8 @@ public: // data_ov000_020b2838 /* 00 */ virtual ~UnkStruct_027e0ce0_38_Base(); /* 08 */ virtual bool vfunc_08(const UnkStruct_ov031_020f3310 *param1, unk32 param2); - /* 0C */ virtual bool vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 *param2, unk32 param3); + /* 0C */ virtual bool vfunc_0C(MapObjRef ref, UnkStruct_ov031_020e54d4 *param2, const VecFx32 *param3, + const VecFx32 *param4); /* 10 */ virtual bool vfunc_10(ActorRef param1, unk32 param2); /* 14 */ }; diff --git a/include/Unknown/UnkStruct_ov000_020b34c4.hpp b/include/Unknown/UnkStruct_ov000_020b34c4.hpp index 1007e500..e790363a 100644 --- a/include/Unknown/UnkStruct_ov000_020b34c4.hpp +++ b/include/Unknown/UnkStruct_ov000_020b34c4.hpp @@ -1,9 +1,10 @@ #pragma once #include "Map/MapObjectId.hpp" -#include "MapObject/MapObject.hpp" #include "nitro/fx.h" +struct MapObject; + class UnkStruct_ov000_020b34c4 { public: /* 00 (vtable) */ @@ -16,7 +17,8 @@ public: UnkStruct_ov000_020b34c4(MapObjectId mapObjId) : mUnk_04(mapObjId) {} - virtual bool vfunc_00(MapObject *param1); + // data_ov000_020b34c4 + /* 00 */ virtual bool vfunc_00(MapObject *param1); }; extern UnkStruct_ov000_020b34c4 data_ov000_020b34c4; diff --git a/include/profile.hpp b/include/profile.hpp index 85f53bcf..7c2f8ddb 100644 --- a/include/profile.hpp +++ b/include/profile.hpp @@ -51,8 +51,8 @@ public: class UnkStruct_ov000_02058a84 { public: /* 0 */ PAD(0x0, 0x6); - /* 6 */ u16 mUnk_6; - /* 8 */ + /* 6 */ u16 mUnk_06; + /* 8 */ u32 mUnk_08; }; class MapObjectProfile_Derived2_20_Base { diff --git a/libs/nns/include/nns/g3d/sbc.h b/libs/nns/include/nns/g3d/sbc.h index cda0dd99..e30919be 100644 --- a/libs/nns/include/nns/g3d/sbc.h +++ b/libs/nns/include/nns/g3d/sbc.h @@ -35,6 +35,15 @@ typedef enum { G3D_RENDERST_FLAG_SKIP_SBC_MTXCALC = 0x400 // skips the execution of matrix calculation commands } G3d_RenderStateFlag; +typedef struct G3d_RenderState_B4_ { + /* 00 */ s32 mUnk_00; + /* 04 */ PAD(0x04, 0x28); + /* 28 */ MtxFx33 mUnk_28; + /* 4C */ s32 mUnk_4C; + /* 50 */ s32 mUnk_50; + /* 54 */ s32 mUnk_54; +} G3d_RenderState_B4; // size = ? + typedef struct G3d_RenderState_ { /* 00 */ u8 *currentCmd; // current command being processed /* 04 */ G3d_RenderObject *renderObj; // current render object being processed @@ -46,8 +55,8 @@ typedef struct G3d_RenderState_ { /* AE */ u8 currentBoneMtxId; /* AF */ u8 dummy; /* B0 */ G3d_MaterialAnimation *matAnim; - /* B4 */ void *mUnk_19; - /* B8 */ u8 *visibilityPtr; // points to isVisible (0x187) + /* B4 */ G3d_RenderState_B4 *mUnk_B4; + /* B8 */ BOOL *visibilityPtr; // points to isVisible (0x187) /* BC */ u32 mUnk_BC[2]; /* C4 */ u32 mUnk_C4[2]; /* CC */ u32 mUnk_CC[2]; @@ -61,8 +70,7 @@ typedef struct G3d_RenderState_ { /* F0 */ void *textureHandler; // texture matrix handler /* F4 */ u8 mUnk_F4[0x93]; /* 187 */ u8 isVisible; - /* 188 */ -} G3d_RenderState; +} G3d_RenderState; // size = 0x188 typedef struct UnkStruct_0205ae08_ { /* 00 */ u8 mUnk_00[0x1400]; diff --git a/src/000_Second/Actor/Actor.cpp b/src/000_Second/Actor/Actor.cpp index fdeba27b..f5a9d696 100644 --- a/src/000_Second/Actor/Actor.cpp +++ b/src/000_Second/Actor/Actor.cpp @@ -33,16 +33,14 @@ Actor::Actor() { Actor::~Actor() {} -// non-matching (equivalent) void Actor::func_ov000_0209848c(ActorProfile *param1) { Cylinder *temp_r3 = ¶m1->mUnk_04; - unk32 unk_1c = param1->mUnk_1C; + unk32 temp_r2 = param1->mUnk_1C; this->mpProfile = param1; - - this->mUnk_34 = ¶m1->mUnk_04; - this->mUnk_30 = ¶m1->mUnk_04; - this->mYOffset = unk_1c; + this->mUnk_34 = temp_r3; + this->mUnk_30 = temp_r3; + this->mYOffset = temp_r2; } bool Actor::Init(unk32 param1) { diff --git a/src/000_Second/Actor/ActorUnkSWTM.cpp b/src/000_Second/Actor/ActorUnkSWTM.cpp index 79b2e09f..4f825b4f 100644 --- a/src/000_Second/Actor/ActorUnkSWTM.cpp +++ b/src/000_Second/Actor/ActorUnkSWTM.cpp @@ -28,11 +28,12 @@ ActorUnkSWTM::~ActorUnkSWTM() { } } -// https://decomp.me/scratch/qkP8m bool ActorUnkSWTM::Init(unk32 param1) { - this->mUnk_9E = this->mUnk_5C.mUnk_1A[1]; +#pragma unused(param1) + this->mUnk_98 = this->mUnk_5C.mParams[2]; this->mUnk_A4 = this->mUnk_5C.mParams[1] * 30; + this->mUnk_9E = this->mUnk_5C.mUnk_1A[1]; this->mUnk_A0 = this->mUnk_9E + this->mUnk_5C.mParams[0]; this->mUnk_A2 = this->mUnk_5C.mUnk_18[1]; this->mUnk_9C = this->mUnk_9E; diff --git a/src/000_Second/MapObject/MapObject.cpp b/src/000_Second/MapObject/MapObject.cpp index 6dc40d73..021140ab 100644 --- a/src/000_Second/MapObject/MapObject.cpp +++ b/src/000_Second/MapObject/MapObject.cpp @@ -17,14 +17,14 @@ MapObject::MapObject() { this->mState = MapObjState_None; this->mFlags[0] = 0; this->mUnk_20.Init(); - *(u32 *) &this->mUnk_38 = 0; + this->mRef.Reset(); UnkStruct_ov000_020b5d34 *ptr1 = &data_ov000_020b5d34; this->mpProfile = ptr1->mpProfile; UnkStruct_ov000_020b5d34_00 *ptr2 = ptr1->mUnk_00; - *(u32 *) &this->mUnk_38 = *ptr2->mUnk_00; + this->mRef = *ptr2->mUnk_00; VecFx32 *ptr = ptr2->mUnk_08; this->mPos.x = ptr->x; @@ -144,24 +144,24 @@ void MapObject::func_ov000_0209d2f0(unk32 param1, unk32 param2, Vec2bCpp *param3 UnkStruct_027e0cd8_0C_Base *temp_r5 = data_027e0cd8->mUnk_0C; Vec2bCpp sp0(0, 0); - sp0.x = this->mUnk_3A.x; + sp0.x = this->mRef.unk_02.x; s32 tempX = param3->x; - tempX += this->mUnk_3A.x; + tempX += this->mRef.unk_02.x; - if (this->mUnk_3A.x < tempX) { + if (this->mRef.unk_02.x < tempX) { do { - sp0.y = this->mUnk_3A.y; + sp0.y = this->mRef.unk_02.y; s32 tempY = param3->y; - tempY += this->mUnk_3A.y; + tempY += this->mRef.unk_02.y; - if (this->mUnk_3A.y < tempY) { + if (this->mRef.unk_02.y < tempY) { do { temp_r5->func_ov000_020801b0(&sp0, param1, param2); - } while (++sp0.y < param3->y + this->mUnk_3A.y); + } while (++sp0.y < param3->y + this->mRef.unk_02.y); } - } while (++sp0.x < param3->x + this->mUnk_3A.x); + } while (++sp0.x < param3->x + this->mRef.unk_02.x); } } @@ -208,7 +208,7 @@ void MapObject::func_ov000_0209d434(s8 *param1, UnkStruct_ov019_020d24c8_28_258_ return; } - if (data_027e0998->vfunc_00(&this->mPos, &sp10, (ActorRef *) &this->mUnk_38)) { + if (data_027e0998->vfunc_00(&this->mPos, &sp10, (ActorRef *) &this->mRef)) { //! TODO: ref conflicts spC.mUnk_06 = 0x00; MI_CpuFill32(0, &spC, sizeof(spC)); spC.mUnk_05 = -1; diff --git a/src/000_Second/MapObject/MapObjectMiniBlocks.cpp b/src/000_Second/MapObject/MapObjectMiniBlocks.cpp index c8869d31..f1923ec5 100644 --- a/src/000_Second/MapObject/MapObjectMiniBlocks.cpp +++ b/src/000_Second/MapObject/MapObjectMiniBlocks.cpp @@ -39,7 +39,7 @@ bool MapObjectMiniBlocks::Init(void) { u8 uVar6; if (this->mUnk_20.mParams[1] != MiniBlocksVariant_BLKF) { - Vec2bCpp vec(this->mUnk_3A.x, this->mUnk_3A.y); + Vec2bCpp vec(this->mRef.unk_02.x, this->mRef.unk_02.y); this->mPos.y = pUnkStruct_027e0cd8_0C->func_01ffedf4(&vec); } diff --git a/src/000_Second/MapObject/MapObjectPot_Base.cpp b/src/000_Second/MapObject/MapObjectPot_Base.cpp index 029f261b..0b3d18c0 100644 --- a/src/000_Second/MapObject/MapObjectPot_Base.cpp +++ b/src/000_Second/MapObject/MapObjectPot_Base.cpp @@ -28,7 +28,7 @@ bool MapObjectPot_Base::SetState(MapObjState state, unk32 param2) { case MapObjPot_BaseState_1: this->vfunc_48(); if (this->vfunc_40()) { - func_ov000_020a14e4(this->mUnk_38, &this->mPos); + func_ov000_020a14e4(this->mRef.unk_00, &this->mPos); } else { if (this->vfunc_4C()) { unk32 val = this->vfunc_54(); diff --git a/src/000_Second/MapObject/MapObjectSwitchStep.cpp b/src/000_Second/MapObject/MapObjectSwitchStep.cpp index d8029dcd..fef8b05b 100644 --- a/src/000_Second/MapObject/MapObjectSwitchStep.cpp +++ b/src/000_Second/MapObject/MapObjectSwitchStep.cpp @@ -52,29 +52,18 @@ void MapObjectSwitchStep_40::func_ov000_0209dde0(void) { this->func_ov000_02057c38(6, 2); } -void MapObjectSwitchStep_40::vfunc_1C(UnkSystem4_vfunc_1C *param1) { - unk32 iVar1 = param1->mUnk_04[1]; - if (iVar1 != 0) { - iVar1 += 0x40; - } else { - iVar1 = 0; - } +void MapObjectSwitchStep_40::vfunc_1C(G3d_RenderState *param1) { + G3d_NameList *iVar1 = G3d_GetBoneList(param1->renderObj->model); + uint uVar2 = iVar1 != NULL ? func_0200f218(iVar1, data_ov000_020af560) : -1; - unk32 uVar2; - if (iVar1 == 0) { - uVar2 = -1; - } else { - uVar2 = func_0200f218(iVar1, data_ov000_020af560); - } - - if (param1->mUnk_00[1] == uVar2) { + if (param1->currentCmd[1] == uVar2) { if (this->mUnk_62) { param1->mUnk_B4->mUnk_00 &= ~0x04; param1->mUnk_B4->mUnk_50 = this->mUnk_60; param1->mUnk_B4->mUnk_4C = 0; param1->mUnk_B4->mUnk_54 = 0; } else { - param1->mUnk_B8[0] = 0; + *param1->visibilityPtr = false; } } } @@ -205,7 +194,7 @@ void MapObjectSwitchStep::vfunc_18(s8 *param1) { ActorRef sp4; //! TODO: fake match? - sp4 = *(ActorRef *) &this->mUnk_38; + sp4 = *(ActorRef *) &this->mRef; if (data_027e0998->vfunc_00(&this->mPos, &sp10, &sp4)) { sp8.mUnk_06 = 0x00; diff --git a/src/017_CourseExec/MapObject/MapObjectManager_017.cpp b/src/017_CourseExec/MapObject/MapObjectManager_017.cpp index 5553c190..abe899c7 100644 --- a/src/017_CourseExec/MapObject/MapObjectManager_017.cpp +++ b/src/017_CourseExec/MapObject/MapObjectManager_017.cpp @@ -159,7 +159,7 @@ void MapObjectManager::func_ov017_020c033c(unk32 *param1, MapObjectManager *this sp16.y = param2->y; if (pMapObj->func_ov000_0209d144(&sp16, param3, temp_r0)) { - *param1 = *(s32 *) &pMapObj->mUnk_38; + *param1 = pMapObj->mRef.Get32(); return; } } diff --git a/src/024_MainGame/Unknown/UnkStruct_027e0998_024.cpp b/src/024_MainGame/Unknown/UnkStruct_027e0998_024.cpp index 7abaef38..0cf12c27 100644 --- a/src/024_MainGame/Unknown/UnkStruct_027e0998_024.cpp +++ b/src/024_MainGame/Unknown/UnkStruct_027e0998_024.cpp @@ -51,7 +51,7 @@ bool UnkStruct_027e0998::vfunc_00(VecFx32 *pPos, Vec2s *param2, ActorRef *param3 return this->func_ov024_020c727c(param2, param3); case 4: if (data_027e09a4->IsTrain()) { - u32 value = *(u32 *) param3; + u32 value = param3->Get32(); // position? param3 could be a Vec2us u16 stack[4]; diff --git a/src/031_Land/Actor/ActorBlast.cpp b/src/031_Land/Actor/ActorBlast.cpp index 508b291c..dcf1ee48 100644 --- a/src/031_Land/Actor/ActorBlast.cpp +++ b/src/031_Land/Actor/ActorBlast.cpp @@ -29,7 +29,7 @@ ActorProfileBlast::ActorProfileBlast() : } // non-matching -bool ActorBlast_E8::vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 *param2, unk32 param3) {} +bool ActorBlast_E8::vfunc_0C(MapObjRef ref, UnkStruct_ov031_020e54d4 *param2, const VecFx32 *param3, const VecFx32 *param4) {} ActorBlast::ActorBlast() : mUnk_94(FX_F32_TO_FX32(0.625f)), diff --git a/src/031_Land/Actor/ActorBomb.cpp b/src/031_Land/Actor/ActorBomb.cpp index 070a8139..539e3a63 100644 --- a/src/031_Land/Actor/ActorBomb.cpp +++ b/src/031_Land/Actor/ActorBomb.cpp @@ -7,6 +7,7 @@ #include "MainGame/AdventureMode.hpp" #include "Map/MapObjectId.hpp" #include "MapObject/MapObjectBombFlower.hpp" +#include "MapObject/MapObjectManager.hpp" #include "MapObject/MapObjectProfile.hpp" #include "System/SysNew.hpp" #include "Unknown/UnkStruct_027e09a8.hpp" @@ -17,6 +18,13 @@ #include "Unknown/UnkStruct_027e0d38.hpp" #include "Unknown/UnkStruct_027e0d8c.hpp" #include "Unknown/UnkStruct_ov000_020b5d34.hpp" +#include "global.h" +#include "math.hpp" +#include "nitro/fx.h" +#include "nitro/math.h" +#include "nns/g3d/sbc.h" + +#pragma readonly_strings on struct UnkStruct_ov031_020e5d18_00 { /* 00 */ Actor *mUnk_00; @@ -26,13 +34,28 @@ struct UnkStruct_ov031_020e5d18_00 { extern VecFx32 data_027e07d4; extern unk32 data_ov000_020aecf8; -extern VecFx32 data_ov031_02110a10; -extern VecFx32 data_ov031_02110a28; -extern char data_ov031_02110a50; -extern char data_ov031_02110a60; -extern char data_ov031_02110a70; -static ActorUnkZLSL_AnimationTag data_ov031_02112be8 = {.index = 0, .name = "bomb_clanim", .unknown = 0}; +static const VecFx32 data_ov031_02110a28[] = { + {0xCD, 0xD9A, 0x00}, + {0xCD, 0xC00, 0x00}, +}; + +static const VecFx32 data_ov031_02110a10[] = { + {0x00, 0xC00, 0x00}, + {0x00, 0xB33, 0x00}, +}; + +static const char data_ov031_021109fc[20] = "Fbomb_h"; + +static const char data_ov031_02110a40[][16] = { + "Fbomb", + "Fbomb_clanim", + "bomb", + "bomb_clanim", +}; + +static ActorUnkZLSL_AnimationTag data_ov031_02112be8 = {.index = 0, .name = "bomb_clanim", .unknown = 0}; + static PTMF data_ov031_02112c00[ActorBombState_Max] = { &ActorBomb::func_ov031_020e1da0, // ActorUnkBOMBState_0 &ActorBomb::func_ov031_020e1ed8, // ActorUnkBOMBState_1 @@ -66,7 +89,7 @@ ActorProfileBomb::ActorProfileBomb() : G3d_Model *ActorBomb::func_ov031_020e1540(u16 param1) { if (param1 == 0x0) { - return data_027e0ce0->mUnk_1C->func_ov000_0208ed30(0x0, 0x1, &data_ov031_02110a60); + return data_027e0ce0->mUnk_1C->func_ov000_0208ed30(0x0, 0x1, (char *) data_ov031_02110a40[2]); } return G3d_GetModelPtr( @@ -75,19 +98,24 @@ G3d_Model *ActorBomb::func_ov031_020e1540(u16 param1) { UnkStruct_ov000_02058a84 *ActorBomb::func_ov031_020e15d0(u16 param1) { if (param1 == 0x0) { - return data_027e0ce0->mUnk_1C->func_ov000_0208ee94(0x0, 0x1, &data_ov031_02110a70, 0x1); + return data_027e0ce0->mUnk_1C->func_ov000_0208ee94(0x0, 0x1, (char *) data_ov031_02110a40[3], 0x1); } - return ((MapObjectProfileBombFlower *) data_ov000_020b5d34.GetProfileFromId(MapObjectId_BombFlower)) - ->mUnk_20.func_ov000_02058a84(0x1, &data_ov031_02110a50); + + MapObjectProfileBombFlower *pProfile = + ((MapObjectProfileBombFlower *) data_ov000_020b5d34.GetProfileFromId(MapObjectId_BombFlower)); + + return pProfile->mUnk_20.func_ov000_02058a84(0x1, (char *) data_ov031_02110a40[1]); } -// non-matching -// seems not to be in the actor -// use a pattern like this->mUnk_04->mUnk_04 -// so it's not ActorBomb and the class has at -// least 0xB3 bytes so it does not seem to be -// one of the auxiliary classes -void ActorBomb::func_ov031_020e1634() {} +void ActorBomb::func_ov031_020e1634(G3d_RenderState *param1) { + G3d_NameList *iVar1 = G3d_GetBoneList(param1->renderObj->model); + uint uVar2 = iVar1 != NULL ? func_0200f218(iVar1, data_ov031_021109fc) : -1; + uint uVar3 = param1->flag & 0x04 ? param1->currentBoneId : -1; + + if (uVar2 == uVar3) { + *param1->visibilityPtr = false; + } +} ActorBomb::ActorBomb() : mUnk_094(this->func_ov031_020e1540(this->mUnk_5C.mParams[0])), @@ -112,10 +140,10 @@ ActorBomb::ActorBomb() : { if (this->mUnk_5C.mParams[0] != 0x1) { this->mUnk_1EF = false; - this->mUnk_17C = &data_ov031_02110a28; + this->mUnk_17C = (VecFx32 *) &data_ov031_02110a28; } else { - func_0200b578(&this->mUnk_094.mRenderObj, this->func_ov031_020e1634, 0x0, 0x2, 0x2); - this->mUnk_17C = &data_ov031_02110a10; + func_0200b578(&this->mUnk_094.mRenderObj, ActorBomb::func_ov031_020e1634, 0x0, 0x2, 0x2); + this->mUnk_17C = (VecFx32 *) &data_ov031_02110a10; this->mUnk_1EF = true; } this->mUnk_164[0].mUnk_04 = 0x810; @@ -165,14 +193,8 @@ void ActorBomb::func_ov031_020e1908() { this->mUnk_1F0 = true; } -// non-matching -void ActorBomb::func_ov031_020e1920(VecFx32 *param1) { - fx32 y = param1->y; - fx32 z = param1->z; - fx32 x = param1->x; - this->mUnk_1CC.x = x; - this->mUnk_1CC.y = y; - this->mUnk_1CC.z = z; +void ActorBomb::func_ov031_020e1920(const VecFx32 *param1) { + VecFx32_Copy(param1, &this->mUnk_1CC); } void ActorBomb::func_ov031_020e193c() { @@ -232,26 +254,30 @@ void ActorBomb::Update() { } void ActorBomb::vfunc_24() { - if (this->mState != ActorBombState_1) { - return; + if (this->mState == ActorBombState_1) { + this->func_ov031_020e1ed8(); + this->func_ov031_020e193c(); } - this->func_ov031_020e1ed8(); - this->func_ov031_020e193c(); } -// non-matching void ActorBomb::func_ov031_020e1b1c() { UnkStruct_ov000_02058a84 *param1 = this->func_ov031_020e15d0(this->mUnk_5C.mParams[0]); + bool var_r3; - bool param3 = !(param1->mUnk_6 & 0x2); - - this->mUnk_0F4.func_ov000_020577a4(param1, 0x0, param3); + // weird but less weird than `func_ov019_020d0c90` + switch (param1->mUnk_06 & 2) { + default: + var_r3 = false; + break; + case 0: + var_r3 = true; + break; + } + this->mUnk_0F4.func_ov000_020577a4(param1, 0, var_r3); this->mUnk_0F4.mUnk_04.mUnk_04 = 0x1000; this->mUnk_0F4.mUnk_04.mUnk_00 = data_ov031_02112be8.unknown; - this->mUnk_094.func_ov000_02057cf4(); - this->mUnk_094.func_ov000_02057c98(&this->mUnk_0F4); } @@ -523,15 +549,16 @@ void ActorBomb::vfunc_2C(Actor_vfunc_30 *param1) { data_027e09b4->func_ov017_020c08c4(&sp0C, 0x59A, 0x59A, 0x1F, 0x0, 0x1); } -// non-matching (switch case) void ActorBomb::func_ov031_020e238c() { this->Actor::func_ov000_020989e0(); + if (!(this->mUnk_134.mUnk_08 & 0x3FFFF)) { return; } - u16 value = this->mUnk_134.mUnk_1C; - switch ((s32) value) { + switch (this->mUnk_134.mUnk_1C) { + case 14: + break; case 15: this->mUnk_134.mUnk_04 &= ~0x8000; data_027e0d8c->func_ov093_021661c0(this->mRef); @@ -540,6 +567,7 @@ void ActorBomb::func_ov031_020e238c() { if (!data_027e0d38->func_ov031_020d9c04(0x1, 0x0, 0x0)) { break; } + this->SetState(ActorBombState_4); break; case 0: @@ -655,76 +683,108 @@ void ActorBomb::func_ov031_020e2780(VecFx32 *param1) { this->mVel.z = ROUND_FX32(this->mVel.z * FX_F32_TO_FX32(0.75f)); } -// non-matching fx32 ActorBomb::func_ov031_020e2820(UnkStruct_ov031_Items_00 *param1) { UnkStruct_ov031_020e5d18_00 sp60; - sp60.mUnk_00 = NULL; - VecFx32 sp54 = this->mPos; - VecFx32 sp48 = this->mPrevPos; + VecFx32 sp54; + VecFx32 sp48; VecFx32 sp3C; + VecFx32 sp30; + VecFx32 sp24; + VecFx32 sp18; + VecFx32 sp0C; + fx32 var_r11; + fx32 var_r8; + + var_r11 = 0; + sp60.mUnk_00 = NULL; + + sp54 = this->mPos; + sp48 = this->mPrevPos; func_01ffb714(&sp54, &sp48, &sp3C); - fx32 sp3CLength = VecFx32_Length(&sp3C); + var_r8 = VecFx32_Length(&sp3C); - VecFx32 sp0C = sp48; - VecFx32 sp30 = sp0C; - VecFx32 sp24 = sp0C; - VecFx32 sp18 = sp3C; + sp0C = sp48; + sp30 = sp0C; + sp24 = sp0C; + sp18 = sp3C; if (VecFx32_TryNormalize(&sp18) != 0x0) { - while (sp3CLength != FX_F32_TO_FX32(0.0f)) { - if (sp3CLength > FX_F32_TO_FX32(0.5f)) { + while (var_r8 != FX_F32_TO_FX32(0.0f)) { + if (var_r8 > FX_F32_TO_FX32(0.5f)) { func_01ffb974(FX_F32_TO_FX32(0.5f), &sp18, &sp24, &sp24); - sp3CLength -= FX_F32_TO_FX32(0.5f); + var_r8 -= FX_F32_TO_FX32(0.5f); } else { - func_01ffb974(sp3CLength, &sp18, &sp24, &sp24); - sp3CLength = FX_F32_TO_FX32(0.0f); + func_01ffb974(var_r8, &sp18, &sp24, &sp24); + var_r8 = FX_F32_TO_FX32(0.0f); } + func_01ffe6c4(&sp60.mUnk_00, this->mRef, &sp24, &sp30, (s16) this->mUnk_44, &this->mPos, param1); - if (!this->Actor::func_ov000_0207e294(this->mUnk_30)) { - VecFx32_Copy(&sp24, &sp30); + //! TODO: fake match? + var_r11 = ((Actor *) &sp60)->func_ov000_0207e294(this->mUnk_30); + + if (var_r11 != 0) { + break; } + + VecFx32_Copy(&sp24, &sp30); } } - return sp3CLength; + return var_r11; } -// non-matching fx32 ActorBomb::func_ov031_020e295c(UnkStruct_ov031_Items_00 *param1) { UnkStruct_ov031_020e5d18_00 sp60; - sp60.mUnk_00 = NULL; - VecFx32 sp54 = this->mPos; - VecFx32 sp48 = this->mPrevPos; + VecFx32 sp54; + VecFx32 sp48; VecFx32 sp3C; + VecFx32 sp30; + VecFx32 sp24; + VecFx32 sp18; + VecFx32 sp0C; + fx32 var_r11; + fx32 var_r8; + + var_r11 = 0; + sp60.mUnk_00 = NULL; + + sp54 = this->mPos; + sp48 = this->mPrevPos; func_01ffb714(&sp54, &sp48, &sp3C); - fx32 sp3CLength = VecFx32_Length(&sp3C); + var_r8 = VecFx32_Length(&sp3C); - VecFx32 sp0C = sp48; - VecFx32 sp30 = sp0C; - VecFx32 sp24 = sp0C; - VecFx32 sp18 = sp3C; + sp0C = sp48; + sp30 = sp0C; + sp24 = sp0C; + sp18 = sp3C; if (VecFx32_TryNormalize(&sp18) != 0x0) { - while (sp3CLength != FX_F32_TO_FX32(0.0f)) { - if (sp3CLength > FX_F32_TO_FX32(0.5f)) { + while (var_r8 != FX_F32_TO_FX32(0.0f)) { + if (var_r8 > FX_F32_TO_FX32(0.5f)) { func_01ffb974(FX_F32_TO_FX32(0.5f), &sp18, &sp24, &sp24); - sp3CLength -= FX_F32_TO_FX32(0.5f); + var_r8 -= FX_F32_TO_FX32(0.5f); } else { - func_01ffb974(sp3CLength, &sp18, &sp24, &sp24); - sp3CLength = FX_F32_TO_FX32(0.0f); + func_01ffb974(var_r8, &sp18, &sp24, &sp24); + var_r8 = FX_F32_TO_FX32(0.0f); } + func_01ffe6c4(&sp60.mUnk_00, this->mRef, &sp24, &sp30, (s16) this->mUnk_44, &this->mPos, param1); - if (!this->Actor::func_ov000_0207df88(this->mUnk_30, 0x10)) { - VecFx32_Copy(&sp24, &sp30); + //! TODO: fake match? + var_r11 = ((Actor *) &sp60)->func_ov000_0207df88(this->mUnk_30, 0x10); + + if (var_r11 != 0) { + break; } + + VecFx32_Copy(&sp24, &sp30); } } - return sp3CLength; + return var_r11; } void ActorBomb::func_ov031_020e2a9c() { @@ -821,18 +881,182 @@ ActorBomb_180::~ActorBomb_180() { this->mUnk_08 = NULL; } -// non-matching (wrong instruction in condition) bool ActorBomb_180::vfunc_08(const UnkStruct_ov031_020f3310 *param1, unk32 param2) { - if (((((u32) param1->mUnk_04->mUnk_24[param1->mUnk_00->mUnk_06]) >> 0x19) & 1) == 1) { + if (((param1->mUnk_04->mUnk_24[param1->mUnk_00->mUnk_06] >> 0x19) & 0x01) == 0x01) { return false; } - VecFx16_Copy2VecFx32(¶m1->mUnk_08, &this->mUnk_0C); + this->mUnk_0C.y = param1->mUnk_08.y; + this->mUnk_0C.z = param1->mUnk_08.z; + this->mUnk_0C.x = param1->mUnk_08.x; + return this->UnkStruct_ov031_Items_00::vfunc_08(param1, param2); } -// non-matching -bool ActorBomb_180::vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 *param2, unk32 param3) {} +bool ActorBomb_180::vfunc_0C(MapObjRef ref, UnkStruct_ov031_020e54d4 *param2, const VecFx32 *param3, const VecFx32 *param4) { + MapObjRef sp54; + VecFx32 sp24; + VecFx32 sp18; + VecFx32 spC; + Vec2bCpp sp0; + s32 var_r0; + s32 var_r0_2; + s32 var_r0_3; + s32 var_r1; + s32 var_r2; + s32 var_r3; + s32 var_r4; + s32 var_r5; + + if (((param2->mUnk_08 >> 0x19) & 0x01) == 0x01) { + return false; + } + + var_r4 = 0; + + if (ref.unk_00_u16 == 0x1000) { + sp54 = ref; + sp0 = sp54.GetUnk02(); + + MapObject *temp_r0 = gpMapObjManager->func_01fff498(sp0); + + if (temp_r0 != NULL) { + switch (temp_r0->GetMapObjectId()) { + case MapObjectId_TMLV: + case MapObjectId_SWHT: + case MapObjectId_MLVC: + case MapObjectId_LVVT: + case MapObjectId_FRWL: + case MapObjectId_LVCM: { + ActorBlast::func_ov031_020e3b9c(this->mUnk_08, 0, 0); + this->mUnk_08->Kill(); + return false; + } + case MapObjectId_BombFlower: + if (temp_r0->mState == 0) { + ActorBlast::func_ov031_020e3b9c(this->mUnk_08, 0, 0); + this->mUnk_08->Kill(); + return false; + } + + break; + case MapObjectId_FLSP: + var_r4 = 1; + break; + default: + break; + } + } + } + + var_r5 = 0; + + switch (param2->vfunc_00()) { + case 0: + case 1: + func_01ffb714(&this->mUnk_08->mPos, param4, &sp24); + sp24.y = 0; + break; + case 2: + param2->vfunc_14(&spC); + VecFx32_Add(&spC, param4, &spC); + VecFx32_Add(&sp18, param4, &sp18); + + var_r0 = 0; + if (param3->x > spC.x && param3->x < sp18.x) { + var_r0 = 1; + } + + var_r1 = 0; + if (param3->z > spC.z && param3->z < sp18.z) { + var_r1 = 1; + } + + if (var_r4 != 0) { + if (var_r0 != 0 && var_r1 != 0) { + ActorBlast::func_ov031_020e3b9c(this->mUnk_08, 0, 0); + this->mUnk_08->Kill(); + return false; + } + } + + if (var_r0 != 0 && var_r1 != 0) { + if (param2->mUnk_04 & 0x01) { + sp24.x = 0; + sp24.y = 0x1000; + sp24.z = 0; + var_r5 = 1; + } else { + func_01ffb714(&this->mUnk_08->mPos, param4, &sp24); + + var_r2 = ABS2(sp24.z); + var_r3 = ABS2(sp24.x); + + if (var_r3 > var_r2) { + if (sp24.x > 0) { + sp24.x = 0x1000; + sp24.y = 0; + sp24.z = 0; + } else { + sp24.x = -0x1000; + sp24.y = 0; + sp24.z = 0; + } + } else if (sp24.z > 0) { + sp24.x = 0; + sp24.y = 0; + sp24.z = 0x1000; + } else { + sp24.x = 0; + sp24.y = 0; + sp24.z = -0x1000; + } + } + } else if (var_r1 != 0) { + var_r0_3 = param3->z <= param4->z ? -0x1000 : 0x1000; + sp24.x = 0; + sp24.y = 0; + sp24.z = var_r0_3; + } else { + if (param3->x <= param4->x) { + var_r0_2 = -0x1000; + } else { + var_r0_2 = 0x1000; + } + + sp24.x = var_r0_2; + sp24.y = 0; + sp24.z = 0; + } + break; + default: + break; + } + + if (VecFx32_IsCleared(&this->mUnk_0C)) { + this->mUnk_0C.x = sp24.x; + this->mUnk_0C.y = sp24.y; + this->mUnk_0C.z = sp24.z; + } + + MapObjRef reffffff = ref; + u32 refdata = ref.Get32(); + if (this->mUnk_18 == reffffff.Get32()) { + return true; + } + + this->mUnk_18 = refdata; + + if (var_r5 != 0) { + if (((ActorBomb *) this->mUnk_08)->func_ov031_020e1d58()) { + ((ActorBomb *) this->mUnk_08)->func_ov031_020e2680(&sp24); + } + } else { + ((ActorBomb *) this->mUnk_08)->func_ov031_020e2780(&sp24); + } + + return true; +} bool ActorBomb_180::vfunc_10(ActorRef param1, unk32 param2) { if (param1.type == 0x1) { @@ -846,11 +1070,13 @@ bool ActorBomb_180::vfunc_10(ActorRef param1, unk32 param2) { return true; } -// non-matching (unreachable code ?) bool ActorBomb_ov031_020e2134::vfunc_08(const UnkStruct_ov031_020f3310 *param1, unk32 param2) { - if ((((u32) param1->mUnk_04->mUnk_24[param1->mUnk_00->mUnk_06] >> 0x9) & 0x7) == 0xA) { + // the cast is required otherwise the compiler will ignore that condition since it's always false + //! TODO: is this a macro/inline? + if ((s32) ((param1->mUnk_04->mUnk_24[param1->mUnk_00->mUnk_06] >> 0x09) & 0x07) == 0x0A) { return false; } + return this->UnkStruct_ov031_Items_00::vfunc_08(param1, param2); } diff --git a/src/031_Land/Actor/ActorItemBoomerang.cpp b/src/031_Land/Actor/ActorItemBoomerang.cpp index 84438657..73a1e89a 100644 --- a/src/031_Land/Actor/ActorItemBoomerang.cpp +++ b/src/031_Land/Actor/ActorItemBoomerang.cpp @@ -348,7 +348,6 @@ ActorItemBoomerang_11C::ActorItemBoomerang_11C(ActorItemBoomerang *param1) : ActorItemBoomerang_11C::~ActorItemBoomerang_11C() {} -// non-matching bool ActorItemBoomerang_11C::vfunc_08(const UnkStruct_ov031_020f3310 *param1, unk32 param2) { u32 var = param1->mUnk_04->mUnk_24[param1->mUnk_00->mUnk_06]; @@ -359,54 +358,64 @@ bool ActorItemBoomerang_11C::vfunc_08(const UnkStruct_ov031_020f3310 *param1, un return this->UnkStruct_ov031_Items_00::vfunc_08(param1, param2); } -bool ActorItemBoomerang_11C::vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 *param2, unk32 param3) { - u32 val = (param1->mUnk_08 >> 9) & 7; +bool ActorItemBoomerang_11C::vfunc_0C(MapObjRef ref, UnkStruct_ov031_020e54d4 *param2, const VecFx32 *param3, + const VecFx32 *param4) { + u32 val = (param2->mUnk_08 >> 9) & 7; + if (val == 0x2) { this->mUnk_08->func_ov031_020e5034(0x1); - } - - if (val == 0x4) { + } else if (val == 0x4) { this->mUnk_08->func_ov031_020e5034(0x2); } - if (param1->mUnk_08 >> 0x18 & 1) { + if (((param2->mUnk_08 >> 0x18) & 1) == 1) { return false; } - Vec2bCpp pos; if (this->mUnk_08->mState == ActorItemBoomerangState_1) { - if (*param2 & 0x1000) { - pos.x = (u8) *param2 >> 16; - pos.y = (u8) *param2 >> 24; + if (ref.unk_00_u16 & 0x1000) { + MapObjRef ref2 = ref; + Vec2bCpp pos = ref2.GetUnk02(); MapObject *mapObject = gpMapObjManager->func_01fff498(pos); - if (mapObject != NULL) { - if (mapObject->GetMapObjectId() == MapObjectId_ICEB || mapObject->GetMapObjectId() == MapObjectId_THAW) { + + if (mapObject == NULL) { + return false; + } + + switch (mapObject->GetMapObjectId()) { + case MapObjectId_ICEB: + case MapObjectId_THAW: mapObject->vfunc_1C(this->mUnk_08->mRef, 0xC, &this->mUnk_08->mVel); - } + break; + default: + break; } } return false; } - if (*param2 & 0x1000) { - pos.x = (u8) *param2 >> 16; - pos.y = (u8) *param2 >> 24; + if (ref.unk_00_u16 & 0x1000) { + MapObjRef ref2 = ref; + Vec2bCpp pos = ref2.GetUnk02(); MapObject *mapObject = gpMapObjManager->func_01fff498(pos); - if (mapObject != NULL) { - switch (mapObject->GetMapObjectId()) { - case MapObjectId_SKDI: - case MapObjectId_SWHT: - data_027e0d2c->func_ov031_020d95c8(*param2); - case MapObjectId_Pot: - mapObject->vfunc_1C(this->mUnk_08->mRef, 0xC, &this->mUnk_08->mVel); - return false; - } + + if (mapObject == NULL) { + return false; + } + + switch (mapObject->GetMapObjectId()) { + case MapObjectId_SKDI: + case MapObjectId_SWHT: + data_027e0d2c->func_ov031_020d95c8(*(ActorRef *) &ref); //! TODO: ref conflicts + case MapObjectId_Pot: + mapObject->vfunc_1C(this->mUnk_08->mRef, 0xC, &this->mUnk_08->mVel); + return false; } } - UnkStruct_027e0ce0_38_Base::vfunc_0C(param1, param2, param3); + return this->UnkStruct_027e0ce0_38_Base::vfunc_0C(ref, param2, param3, param4); } void ActorItemBoomerang_Unknown::func_ov031_020e5704() { diff --git a/src/031_Land/Actor/ActorRollingStone.cpp b/src/031_Land/Actor/ActorRollingStone.cpp index 05cc4f03..dccf33dd 100644 --- a/src/031_Land/Actor/ActorRollingStone.cpp +++ b/src/031_Land/Actor/ActorRollingStone.cpp @@ -59,7 +59,8 @@ ActorProfileRollingStone::ActorProfileRollingStone() : } // non-matching -bool ActorRollingStone_104::vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 *param2, unk32 param3) {} +bool ActorRollingStone_104::vfunc_0C(MapObjRef ref, UnkStruct_ov031_020e54d4 *param2, const VecFx32 *param3, + const VecFx32 *param4) {} bool ActorRollingStone_104::vfunc_10(ActorRef param1, unk32 param2) { if (param1.type != 0x0) { diff --git a/src/031_Land/Actor/ActorShotArrow.cpp b/src/031_Land/Actor/ActorShotArrow.cpp index 64ccc0be..6817ef33 100644 --- a/src/031_Land/Actor/ActorShotArrow.cpp +++ b/src/031_Land/Actor/ActorShotArrow.cpp @@ -965,7 +965,8 @@ bool ActorShotArrow_178::vfunc_08(const UnkStruct_ov031_020f3310 *param1, unk32 } // non-matching -bool ActorShotArrow_178::vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 *param2, unk32 param3) {} +bool ActorShotArrow_178::vfunc_0C(MapObjRef ref, UnkStruct_ov031_020e54d4 *param2, const VecFx32 *param3, + const VecFx32 *param4) {} ActorShotArrow_194::ActorShotArrow_194(ActorShotArrow *param1) { this->mUnk_2C = param1; diff --git a/src/031_Land/Actor/ActorUnkSWBM.cpp b/src/031_Land/Actor/ActorUnkSWBM.cpp index 1f2507b0..25d47951 100644 --- a/src/031_Land/Actor/ActorUnkSWBM.cpp +++ b/src/031_Land/Actor/ActorUnkSWBM.cpp @@ -17,13 +17,13 @@ struct UnkStruct_ov031_020e5d18_00 { 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)); -// non-matching bool ActorUnkSWBM_94::vfunc_08(const UnkStruct_ov031_020f3310 *param1, unk32 param2) { return (((u32) param1->mUnk_04->mUnk_24[param1->mUnk_00->mUnk_06] >> 0x16) & 0x1) != 0x1; } -bool ActorUnkSWBM_94::vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 *param2, unk32 param3) { - return (((u32) param2[0x2] >> 0x16) & 0x1) != 0x1; +bool ActorUnkSWBM_94::vfunc_0C(MapObjRef ref, UnkStruct_ov031_020e54d4 *param2, const VecFx32 *param3, const VecFx32 *param4) { +#pragma unused(ref, param3, param4) + return ((param2->mUnk_08 >> 0x16) & 0x1) != 0x1; } bool ActorUnkSWBM_98::vfunc_0C(Actor *param1, VecFx32 *vector) { @@ -42,13 +42,14 @@ bool ActorUnkSWBM_98::vfunc_0C(Actor *param1, VecFx32 *vector) { void ActorUnkSWBM_98::vfunc_10(Actor *actor) { switch (GET_FLAG(actor->mFlags, ActorFlag_17)) { - case false: + case false: { ActorUnkSWBM *actorSWBM = this->mUnk_2C; if (actorSWBM->mState != ActorUnkSWBMState_0) { break; } actorSWBM->func_ov031_020e6e84(ActorUnkSWBMState_1); break; + } case true: this->mUnk_2C->func_ov031_020e6d80(0x8C98); break; diff --git a/src/031_Land/MapObject/MapObjectBombFlower.cpp b/src/031_Land/MapObject/MapObjectBombFlower.cpp index aca71b3d..8d796f93 100644 --- a/src/031_Land/MapObject/MapObjectBombFlower.cpp +++ b/src/031_Land/MapObject/MapObjectBombFlower.cpp @@ -1,4 +1,5 @@ #include "MapObject/MapObjectBombFlower.hpp" +#include "Actor/ActorRef.hpp" #include "CommonFuncs.hpp" #include "Actor/ActorBomb.hpp" @@ -103,7 +104,7 @@ void MapObjectBombFlower::func_ov031_02102728(unk32 param1) { params.mUnk_28 = 0; params.func_ov000_020975f8(); - params.mUnk_28 = *(unk32 *) &this->mUnk_38; + params.mUnk_28 = *(ActorRef *) &this->mRef; //! TODO: ref conflicts VecFx32_Copy(&this->mPos, ¶ms.mInitialPos); params.mParams[0] = 0x0; diff --git a/src/031_Land/MapObject/MapObjectChestBase.cpp b/src/031_Land/MapObject/MapObjectChestBase.cpp index df496634..9f6e4efa 100644 --- a/src/031_Land/MapObject/MapObjectChestBase.cpp +++ b/src/031_Land/MapObject/MapObjectChestBase.cpp @@ -25,26 +25,12 @@ MapObjectTreasureSpawned_74::MapObjectTreasureSpawned_74(G3d_Model *param1) : ModelRender(param1), mUnk_60(1) {} -void MapObjectTreasureSpawned_74::vfunc_1C(UnkSystem4_vfunc_1C *param1) { - unk32 iVar1; - unk32 uVar2; +void MapObjectTreasureSpawned_74::vfunc_1C(G3d_RenderState *param1) { + G3d_NameList *iVar1 = G3d_GetBoneList(param1->renderObj->model); + uint uVar2 = iVar1 != NULL ? func_0200f218(iVar1, "box_B") : -1; - if (param1->mUnk_04[1] != 0) { - iVar1 = param1->mUnk_04[1] + 0x40; - } else { - iVar1 = 0; - } - - if (iVar1 != 0) { - uVar2 = func_0200f218(iVar1, "box_B"); - } else { - uVar2 = -1; - } - - if (param1->mUnk_00[1] == uVar2) { - if (!this->mUnk_60) { - *param1->mUnk_B8 = 0; - } + if (param1->currentCmd[1] == uVar2 && !this->mUnk_60) { + *param1->visibilityPtr = false; } } @@ -74,7 +60,7 @@ bool MapObjectChestBase::Init() { if (this->mUnk_20.mParams[3] == 1) { this->mPos.x += 0x7FC; - Vec2bCpp sp48(this->mUnk_3A.x, this->mUnk_3A.y); + Vec2bCpp sp48(this->mRef.unk_02.x, this->mRef.unk_02.y); pUVar2->func_ov000_020801b0(&sp48, 7, 1); sp48.x++; @@ -125,12 +111,12 @@ void MapObjectChestBase::Setup() { VecFx32_Add((VecFx32 *) &sp3C, &spC, (VecFx32 *) &sp3C); - local_68.x = this->mUnk_3A.x; - local_68.y = this->mUnk_3A.y; + local_68.x = this->mRef.unk_02.x; + local_68.y = this->mRef.unk_02.y; iVar2 = pUVar5->func_01ffedf4((Vec2bCpp *) &local_68); if (this->mUnk_20.mParams[3] == 1) { - Vec2bCpp temp_r0(this->mUnk_3A.x, this->mUnk_3A.y); + Vec2bCpp temp_r0(this->mRef.unk_02.x, this->mRef.unk_02.y); temp_r0.x--; if (pUVar5->func_01ffedf4((Vec2bCpp *) &temp_r0) > iVar2 || gpMapObjManager->func_01fff498(local_5e) != NULL) { @@ -142,10 +128,10 @@ void MapObjectChestBase::Setup() { sp3C.x += FX_F32_TO_FX32(0.5f); } } else { - Vec2bCpp temp_r0(this->mUnk_3A.x, this->mUnk_3A.y); + Vec2bCpp temp_r0(this->mRef.unk_02.x, this->mRef.unk_02.y); temp_r0.x--; temp_r0.y += 2; - // local_5e.y = this->mUnk_3A.y + (this->mUnk_3A.x - 1); + // local_5e.y = this->mRef.unk_02.y + (this->mRef.unk_02.x - 1); // local_6c.y += local_5e.y; // local_5e.y += 2; @@ -159,7 +145,7 @@ void MapObjectChestBase::Setup() { } } - local_62.x = (this->mUnk_3A.y - 1) + this->mUnk_3A.x; + local_62.x = (this->mRef.unk_02.y - 1) + this->mRef.unk_02.x; if (gpMapObjManager->func_ov000_0209c3a8(&local_62) == MapObjectId_MiniBlocks && iVar2 == pUVar5->func_01ffedf4(&local_62)) { @@ -167,8 +153,8 @@ void MapObjectChestBase::Setup() { } if (data_027e09a4->CurrentSceneIndex() == SceneIndex_d_flame) { - local_64.x = this->mUnk_3A.x; - local_66.y = this->mUnk_3A.y; + local_64.x = this->mRef.unk_02.x; + local_66.y = this->mRef.unk_02.y; local_66.x = local_64.x - 1; local_64.y = local_66.y - 1; diff --git a/src/031_Land/MapObject/MapObjectDoorBase.cpp b/src/031_Land/MapObject/MapObjectDoorBase.cpp index f5f40e39..06bad4a4 100644 --- a/src/031_Land/MapObject/MapObjectDoorBase.cpp +++ b/src/031_Land/MapObject/MapObjectDoorBase.cpp @@ -550,7 +550,7 @@ void MapObjectDoorBase::func_ov031_020fcb78(s8 *param1) { bool uVar4 = (this->mUnk_84 % 0x1A) >= 0x0D ? true : false; //! TODO: fake match? - sp4 = *(ActorRef *) &this->mUnk_38; + sp4 = *(ActorRef *) &this->mRef; //! TODO: ref conflicts if (data_027e0998->vfunc_00(&this->mPos, &sp10, &sp4) && uVar4 != 0) { MtxFx22 m; diff --git a/src/031_Land/MapObject/MapObjectDoorClick.cpp b/src/031_Land/MapObject/MapObjectDoorClick.cpp index e534e2c1..7bcae2a9 100644 --- a/src/031_Land/MapObject/MapObjectDoorClick.cpp +++ b/src/031_Land/MapObject/MapObjectDoorClick.cpp @@ -409,7 +409,7 @@ void MapObjectDoorClick::vfunc_40(void) { } void MapObjectDoorClick::vfunc_44(void) { - unk32 local_c = *(u32 *) &this->mUnk_38; + unk32 local_c = *(u32 *) &this->mRef; data_027e09a8->func_ov000_02071d34(&local_c, 0x142, &this->mPos, 0); } diff --git a/src/031_Land/MapObject/MapObjectDoorDangerSpawn.cpp b/src/031_Land/MapObject/MapObjectDoorDangerSpawn.cpp index ebc625c3..e3fb006f 100644 --- a/src/031_Land/MapObject/MapObjectDoorDangerSpawn.cpp +++ b/src/031_Land/MapObject/MapObjectDoorDangerSpawn.cpp @@ -95,8 +95,8 @@ void MapObjectDoorDangerSpawn::Setup(void) { u32 temp2; if (pMapObject != NULL) { - temp1 = *(u32 *) &this->mUnk_38; - temp2 = *(u32 *) &pMapObject->mUnk_38; + temp1 = *(u32 *) &this->mRef; + temp2 = *(u32 *) &pMapObject->mRef; if (temp2 != temp1 && pMapObject->mUnk_A2) { run = false; @@ -649,7 +649,7 @@ void MapObjectDoorDangerSpawn::vfunc_40(void) { } void MapObjectDoorDangerSpawn::vfunc_44(void) { - unk32 local_c = *(u32 *) &this->mUnk_38; + unk32 local_c = *(u32 *) &this->mRef; data_027e09a8->func_ov000_02071d34(&local_c, 0x137, &this->mPos, 0); } @@ -658,7 +658,7 @@ void MapObjectDoorDangerSpawn::vfunc_48(void) { } void MapObjectDoorDangerSpawn::vfunc_4C(void) { - unk32 local_c = *(u32 *) &this->mUnk_38; + unk32 local_c = *(u32 *) &this->mRef; data_027e09a8->func_ov000_02071d34(&local_c, 0x139, &this->mPos, 0); } diff --git a/src/031_Land/MapObject/MapObjectDoorKey.cpp b/src/031_Land/MapObject/MapObjectDoorKey.cpp index e09d924a..3785254b 100644 --- a/src/031_Land/MapObject/MapObjectDoorKey.cpp +++ b/src/031_Land/MapObject/MapObjectDoorKey.cpp @@ -231,7 +231,7 @@ void MapObjectDoorKey::vfunc_40(void) { } void MapObjectDoorKey::vfunc_44(void) { - unk32 stack = *(u32 *) &this->mUnk_38; + unk32 stack = *(u32 *) &this->mRef; data_027e09a8->func_ov000_02071d34(&stack, 0x135, &this->mPos, 0); } diff --git a/src/031_Land/MapObject/MapObjectDoorSwitch.cpp b/src/031_Land/MapObject/MapObjectDoorSwitch.cpp index 4d0d9452..fd0f95a2 100644 --- a/src/031_Land/MapObject/MapObjectDoorSwitch.cpp +++ b/src/031_Land/MapObject/MapObjectDoorSwitch.cpp @@ -320,7 +320,7 @@ void MapObjectDoorSwitch::vfunc_40(void) { } void MapObjectDoorSwitch::vfunc_44(void) { - unk32 local_c = *(u32 *) &this->mUnk_38; + unk32 local_c = *(u32 *) &this->mRef; data_027e09a8->func_ov000_02071d34(&local_c, 0x130, &this->mPos, 0); } @@ -329,7 +329,7 @@ void MapObjectDoorSwitch::vfunc_48(void) { } void MapObjectDoorSwitch::vfunc_4C(void) { - unk32 local_c = *(u32 *) &this->mUnk_38; + unk32 local_c = *(u32 *) &this->mRef; data_027e09a8->func_ov000_02071d34(&local_c, 0x132, &this->mPos, 0); } diff --git a/src/031_Land/MapObject/MapObjectDoorTouch.cpp b/src/031_Land/MapObject/MapObjectDoorTouch.cpp index 28d2e5e4..8c02acaf 100644 --- a/src/031_Land/MapObject/MapObjectDoorTouch.cpp +++ b/src/031_Land/MapObject/MapObjectDoorTouch.cpp @@ -38,7 +38,7 @@ void MapObjectDoorTouch::vfunc_40(void) { } void MapObjectDoorTouch::vfunc_44(void) { - unk32 local_c = *(u32 *) &this->mUnk_38; + unk32 local_c = *(u32 *) &this->mRef; data_027e09a8->func_ov000_02071d34(&local_c, 0x147, &this->mPos, 0); } diff --git a/src/032_MapA1/Actor/ActorKeese.cpp b/src/032_MapA1/Actor/ActorKeese.cpp index ea7c49dc..c0cf6c60 100644 --- a/src/032_MapA1/Actor/ActorKeese.cpp +++ b/src/032_MapA1/Actor/ActorKeese.cpp @@ -105,7 +105,7 @@ bool ActorKeese_2AC::vfunc_08(const UnkStruct_ov031_020f3310 *param1, unk32 para } // non-matching -bool ActorKeese_2AC::vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 *param2, unk32 param3) {} +bool ActorKeese_2AC::vfunc_0C(MapObjRef ref, UnkStruct_ov031_020e54d4 *param2, const VecFx32 *param3, const VecFx32 *param4) {} bool ActorKeese::Init(unk32 param1) { this->mUnk_0B0.func_ov000_02057c38(0x6, 0x2); diff --git a/src/032_MapA1/MapObject/MapObjectUnkSWSW.cpp b/src/032_MapA1/MapObject/MapObjectUnkSWSW.cpp index f2052bc5..9b617038 100644 --- a/src/032_MapA1/MapObject/MapObjectUnkSWSW.cpp +++ b/src/032_MapA1/MapObject/MapObjectUnkSWSW.cpp @@ -49,15 +49,16 @@ MapObjectUnkSWSW_40::MapObjectUnkSWSW_40(G3d_Model *pModel) : this->ModelRender::func_ov000_02057c38(0x6, 0x2); } -void MapObjectUnkSWSW_40::vfunc_1C(UnkSystem4_vfunc_1C *param1) { - if (param1->mUnk_00[0x1] == this->mUnk_60) { +void MapObjectUnkSWSW_40::vfunc_1C(G3d_RenderState *param1) { + if (param1->currentCmd[1] == this->mUnk_60) { param1->mUnk_B4->mUnk_00 &= ~0x2; MtxFx33_InitXRotation(¶m1->mUnk_B4->mUnk_28, SIN((u16) this->mUnk_68), COS((u16) this->mUnk_68)); } - if (param1->mUnk_00[0x1] != this->mUnk_64) { + if (param1->currentCmd[1] != this->mUnk_64) { return; } + param1->mUnk_B4->mUnk_00 &= ~0x2; MtxFx33_InitXRotation(¶m1->mUnk_B4->mUnk_28, SIN((u16) this->mUnk_6A), COS((u16) this->mUnk_6A)); } @@ -492,7 +493,7 @@ ActorUnkNSSW *MapObjectUnkSWSW::func_ov032_02121dc8(VecFx32 *param1) { params.func_ov000_020975f8(); params.mInitialAngle = this->mAngle.angle_s; - params.mUnk_28 = *(unk32 *) &this->mUnk_38; + params.mUnk_28 = this->mRef.Get32(); //! TODO: ref conflicts VecFx32_Init(param1->x, param1->y, param1->z, ¶ms.mInitialPos); diff --git a/src/063_Shrine/Actor/ActorUnkCANS.cpp b/src/063_Shrine/Actor/ActorUnkCANS.cpp index 913e7a17..f0d7574d 100644 --- a/src/063_Shrine/Actor/ActorUnkCANS.cpp +++ b/src/063_Shrine/Actor/ActorUnkCANS.cpp @@ -1173,17 +1173,13 @@ bool UnkStruct_ov063_02162ea8::vfunc_08(const UnkStruct_ov031_020f3310 *param1, return retVal; } -// non-matching -bool UnkStruct_ov063_02162ea8::vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, unk32 *param2, unk32 param3) { - UnkStruct_02162ea8_vfunc_0C *param2Struct = (UnkStruct_02162ea8_vfunc_0C *) param2; - if ((*(u16 *) ¶m2Struct->mUnk_04 & 0x1000) != 0) { - UnkStruct_02162ea8_vfunc_0C tmp; - tmp.mUnk_04 = *(volatile unk32 *) ¶m2Struct->mUnk_04; +bool UnkStruct_ov063_02162ea8::vfunc_0C(MapObjRef ref, UnkStruct_ov031_020e54d4 *param2, const VecFx32 *param3, + const VecFx32 *param4) { + if (ref.unk_00_u16 & 0x1000) { + MapObjRef ref2 = ref; + Vec2bCpp pos = ref2.GetUnk02(); - Vec2bCpp vec; - *(unk32 *) &vec = tmp.mUnk_04; - - MapObject *mapObject = gpMapObjManager->func_01fff498(vec); + MapObject *mapObject = gpMapObjManager->func_01fff498(pos); if (mapObject != NULL) { MapObjectId id = mapObject->GetMapObjectId(); @@ -1193,8 +1189,7 @@ bool UnkStruct_ov063_02162ea8::vfunc_0C(const UnkStruct_ov031_020e54d4 *param1, } } - return UnkStruct_027e0ce0_38_Base::vfunc_0C((const UnkStruct_ov031_020e54d4 *) param2Struct->mUnk_04, param2, - param2Struct->mUnk_04); + return UnkStruct_027e0ce0_38_Base::vfunc_0C(ref, param2, param3, param4); } void UnkStruct_ov063_02162f14::vfunc_3C() { diff --git a/src/102_CourseExecLand/MapObjectUnkSAND_102.cpp b/src/102_CourseExecLand/MapObjectUnkSAND_102.cpp index 2a7f7808..81b79602 100644 --- a/src/102_CourseExecLand/MapObjectUnkSAND_102.cpp +++ b/src/102_CourseExecLand/MapObjectUnkSAND_102.cpp @@ -218,7 +218,7 @@ void MapObjectUnkSAND::vfunc_0C() { void MapObjectUnkSAND::vfunc_14(unk32 param1) { VecFx32 sp4 = this->mPos; - Vec2bCpp sp0 = this->mUnk_3A; + Vec2bCpp sp0 = this->mRef.GetUnk02(); for (int var_r7 = 0; var_r7 < ARRAY_LEN(this->mUnk_40); var_r7++) { if (this->mUnk_40[var_r7].mUnk_00 != 0) { diff --git a/src/112_PlayerSceneChange/PlayerSceneChange.cpp b/src/112_PlayerSceneChange/PlayerSceneChange.cpp index 54c01422..1bbda5d9 100644 --- a/src/112_PlayerSceneChange/PlayerSceneChange.cpp +++ b/src/112_PlayerSceneChange/PlayerSceneChange.cpp @@ -163,9 +163,9 @@ void PlayerSceneChange::vfunc_0C(UnkStruct_PlayerGet_vfunc_0C_param1 *param1) { if (this->mUnk_68 == 0x19) { pDRTY->func_ov034_02121d84(); - this->mUnk_8C = pDRTY->mUnk_38; + this->mUnk_8C = pDRTY->mRef.Get32(); } else if (pDRTY->GetMapObjectId() == MapObjectId_DRTY) { - *(u32 *) this->mUnk_94 = pDRTY->mUnk_38; + *(u32 *) this->mUnk_94 = pDRTY->mRef.Get32(); switch (pDRTY->mUnk_CC) { case 1: diff --git a/src/ITCM/ITCM_MapObjectManager.cpp b/src/ITCM/ITCM_MapObjectManager.cpp index 3e2c4a08..ee1392ce 100644 --- a/src/ITCM/ITCM_MapObjectManager.cpp +++ b/src/ITCM/ITCM_MapObjectManager.cpp @@ -1,4 +1,5 @@ #include "CommonFuncs.hpp" +#include "MapObject/MapObject.hpp" #include "MapObject/MapObjectManager.hpp" MapObject *MapObjectManager::func_01fff498(Vec2bCpp param1) {