From 04d20febb162b7086cd2cfe833f1ef4c6a3bc502 Mon Sep 17 00:00:00 2001 From: Yanis <35189056+Yanis002@users.noreply.github.com> Date: Mon, 20 Jul 2026 01:30:08 +0200 Subject: [PATCH] Decompile overlay 101 (#118) * delink the overlay * ItemManager_101 OK * UnkStruct_027e0ce0_40_101 OK * PlayerLinkActor_A0_1C_101 OK * UnkStruct_027e09a4_54_101 OK * UnkStruct_027e0cd8_0C_101 OK and MapObjectProfile_Derived6_101 OK --- config/eur/arm9/overlays/ov000/symbols.txt | 6 +- config/eur/arm9/overlays/ov001/symbols.txt | 8 +- config/eur/arm9/overlays/ov031/relocs.txt | 2 +- config/eur/arm9/overlays/ov031/symbols.txt | 46 ++-- config/eur/arm9/overlays/ov093/symbols.txt | 16 +- config/eur/arm9/overlays/ov096/symbols.txt | 4 +- config/eur/arm9/overlays/ov101/delinks.txt | 29 +++ config/eur/arm9/overlays/ov101/relocs.txt | 16 +- config/eur/arm9/overlays/ov101/symbols.txt | 84 ++++---- config/jp/arm9/overlays/ov000/symbols.txt | 6 +- config/jp/arm9/overlays/ov001/symbols.txt | 8 +- config/jp/arm9/overlays/ov031/relocs.txt | 4 +- config/jp/arm9/overlays/ov031/symbols.txt | 50 ++--- config/jp/arm9/overlays/ov093/symbols.txt | 16 +- config/jp/arm9/overlays/ov096/symbols.txt | 4 +- config/jp/arm9/overlays/ov101/delinks.txt | 29 +++ config/jp/arm9/overlays/ov101/relocs.txt | 14 +- config/jp/arm9/overlays/ov101/symbols.txt | 84 ++++---- include/Item/Item.hpp | 1 + include/Item/ItemManager.hpp | 202 ++++++++++++++++-- include/MapObject/MapObjectProfile.hpp | 9 + include/MapObject/MapObjectUnkSAND.hpp | 5 +- include/Player/PlayerActorBase.hpp | 8 +- include/Player/PlayerLink.hpp | 21 +- include/Unknown/UnkStruct_027e09a4.hpp | 48 ++++- include/Unknown/UnkStruct_027e0cd8.hpp | 47 ++-- include/Unknown/UnkStruct_027e0ce0.hpp | 54 +++-- include/Unknown/UnkStruct_027e0d2c.hpp | 3 + include/Unknown/UnkStruct_027e0d30.hpp | 6 +- include/Unknown/UnkStruct_027e0d38.hpp | 7 +- include/Unknown/UnkSystem1.hpp | 3 +- libs/nitro/include/nitro/math.h | 4 + src/000_Second/Item/ItemManager.cpp | 18 +- .../Player/PlayerActorBase_001.cpp | 5 +- .../Player/PlayerLinkActor_001.cpp | 13 +- .../UnkStruct_027e0cd8_0C_001.cpp | 42 +--- src/001_SceneInit/UnkStruct_027e0ce0_001.cpp | 12 +- src/017_CourseExec/CargoManager_017.cpp | 2 +- src/031_Land/MapObject/MapObjectUnkSAND.cpp | 4 +- .../Item/ItemManager_101.cpp | 68 ++++++ .../MapObjectProfile_Derived6_101.cpp | 23 ++ .../Player/PlayerLinkActor_A0_1C_101.cpp | 32 +++ .../UnkStruct_027e09a4_54_101.cpp | 52 +++++ .../UnkStruct_027e0cd8_0C_101.cpp | 176 +++++++++++++++ .../UnkStruct_027e0ce0_40_101.cpp | 182 ++++++++++++++++ tools/configure.py | 12 ++ 46 files changed, 1170 insertions(+), 315 deletions(-) create mode 100644 src/101_SceneInitLand/Item/ItemManager_101.cpp create mode 100644 src/101_SceneInitLand/MapObjectProfile_Derived6_101.cpp create mode 100644 src/101_SceneInitLand/Player/PlayerLinkActor_A0_1C_101.cpp create mode 100644 src/101_SceneInitLand/UnkStruct_027e09a4_54_101.cpp create mode 100644 src/101_SceneInitLand/UnkStruct_027e0cd8_0C_101.cpp create mode 100644 src/101_SceneInitLand/UnkStruct_027e0ce0_40_101.cpp diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index a24c6295..d0dc6a2e 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -992,7 +992,7 @@ _ZN18UnkStruct_027e09a017GetRoomEntryIndexEv kind:function(arm,size=0x40) addr:0 _ZN18UnkStruct_027e09a012GetRoomEntryEji kind:function(arm,size=0x14) addr:0x020702fc _ZN18UnkStruct_027e09a019func_ov000_02070310EjhPv kind:function(arm,size=0x68) addr:0x02070310 _ZN18UnkStruct_027e09a019func_ov000_02070378Ej kind:function(arm,size=0x44) addr:0x02070378 -func_ov000_020703bc kind:function(arm,size=0x8) addr:0x020703bc +_ZN26UnkStruct_027e09a4_54_Base8vfunc_00EPv kind:function(arm,size=0x8) addr:0x020703bc func_ov000_020703c4 kind:function(arm,size=0x5c) addr:0x020703c4 func_ov000_02070420 kind:function(arm,size=0xa8) addr:0x02070420 func_ov000_020704c8 kind:function(arm,size=0x2c) addr:0x020704c8 @@ -1801,7 +1801,7 @@ func_ov000_02087e24 kind:function(arm,size=0xc4) addr:0x02087e24 func_ov000_02087ee8 kind:function(arm,size=0x90) addr:0x02087ee8 func_ov000_02087f78 kind:function(arm,size=0x50) addr:0x02087f78 func_ov000_02087fc8 kind:function(arm,size=0x98) addr:0x02087fc8 -func_ov000_02088060 kind:function(arm,size=0x10c) addr:0x02088060 +_ZN21UnkStruct_027e0ce0_4019func_ov000_02088060Eb kind:function(arm,size=0x10c) addr:0x02088060 func_ov000_0208816c kind:function(arm,size=0xfc) addr:0x0208816c _ZN21PlayerLinkActor_A0_0419func_ov000_02088268Ev kind:function(arm,size=0x60) addr:0x02088268 func_ov000_020882c8 kind:function(arm,size=0x64) addr:0x020882c8 @@ -2114,7 +2114,7 @@ func_ov000_0209167c kind:function(arm,size=0x40) addr:0x0209167c _ZN19func_ov000_020916bcD0Ev kind:function(arm,size=0x48) addr:0x020916bc func_ov000_02091704 kind:function(arm,size=0xe4) addr:0x02091704 func_ov000_020917e8 kind:function(arm,size=0x4c4) addr:0x020917e8 -_ZN18PlayerLinkActor_A0C1EiP21UnkStruct_027e0ce0_40P15PlayerActorBaseP18PlayerLinkActor_9C kind:function(thumb,size=0x1f4) addr:0x02091cac +_ZN18PlayerLinkActor_A0C1EP11ItemManagerP21UnkStruct_027e0ce0_40P15PlayerActorBaseP18PlayerLinkActor_9C kind:function(thumb,size=0x1f4) addr:0x02091cac _ZN18PlayerLinkActor_A019func_ov000_02091ea0Ev kind:function(arm,size=0x18) addr:0x02091ea0 func_ov000_02091eb8 kind:function(arm,size=0x50) addr:0x02091eb8 _ZN18PlayerLinkActor_A019func_ov000_02091f08Ei kind:function(arm,size=0x28) addr:0x02091f08 diff --git a/config/eur/arm9/overlays/ov001/symbols.txt b/config/eur/arm9/overlays/ov001/symbols.txt index 58052e3a..164ae193 100644 --- a/config/eur/arm9/overlays/ov001/symbols.txt +++ b/config/eur/arm9/overlays/ov001/symbols.txt @@ -67,7 +67,7 @@ _ZN18UnkStruct_027e0cd819func_ov001_020b8120Ej kind:function(thumb,size=0x6c) ad _ZN18UnkStruct_027e0cd819func_ov001_020b818cEv kind:function(thumb,size=0x3c) addr:0x020b818c _ZN8InstanceI18UnkStruct_027e0cd8EC2Ev kind:function(thumb,size=0xc) addr:0x020b81c8 _ZN8InstanceI18UnkStruct_027e0cd8ED2Ev kind:function(thumb,size=0xc) addr:0x020b81d4 -_ZN26UnkStruct_027e0cd8_0C_BaseC1EP18UnkStruct_027e0cd8 kind:function(thumb,size=0x218) addr:0x020b81e0 +_ZN26UnkStruct_027e0cd8_0C_BaseC2EP18UnkStruct_027e0cd8 kind:function(thumb,size=0x218) addr:0x020b81e0 _ZN26UnkStruct_027e0cd8_0C_BaseD1Ev kind:function(thumb,size=0x98) addr:0x020b83f8 _ZN26UnkStruct_027e0cd8_0C_BaseD0Ev kind:function(thumb,size=0xa0) addr:0x020b8490 _ZN26UnkStruct_027e0cd8_0C_BaseD2Ev kind:function(thumb,size=0x98) addr:0x020b8530 @@ -235,13 +235,13 @@ _ZN8InstanceI18UnkStruct_027e0ce0ED2Ev kind:function(thumb,size=0xc) addr:0x020b _ZN18UnkStruct_027e0cdc7DestroyEv kind:function(thumb,size=0x20) addr:0x020bc768 _ZN8InstanceI18UnkStruct_027e0cdcED2Ev kind:function(thumb,size=0xc) addr:0x020bc788 _ZN20ModelRender_Derived4C1EiiP10G3d_Model_P18G3d_BoneMtxStruct_ kind:function(thumb,size=0x8c) addr:0x020bc794 -_ZN15PlayerActorBaseC2EiiiP21UnkStruct_027e0ce0_40 kind:function(thumb,size=0x124) addr:0x020bc820 +_ZN15PlayerActorBaseC2EiiP11ItemManagerP21UnkStruct_027e0ce0_40 kind:function(thumb,size=0x124) addr:0x020bc820 _ZN15PlayerActorBaseD2Ev kind:function(thumb,size=0x28) addr:0x020bc944 _ZN15PlayerActorBase19func_ov001_020bc96cEv kind:function(thumb,size=0x2e) addr:0x020bc96c -_ZN15PlayerLinkActorC1EiiP21UnkStruct_027e0ce0_40Pb kind:function(thumb,size=0x138) addr:0x020bc99c +_ZN15PlayerLinkActorC1EiP11ItemManagerP21UnkStruct_027e0ce0_40P25UnkStruct_027e0ce0_40_150 kind:function(thumb,size=0x138) addr:0x020bc99c _ZN19PlayerLinkActor_1B0D1Ev kind:function(thumb,size=0xc) addr:0x020bcad4 _ZN15PlayerLinkActorD1Ev kind:function(thumb,size=0x80) addr:0x020bcae0 -_ZN15PlayerLinkActor19func_ov001_020bcb60Ei kind:function(thumb,size=0x10) addr:0x020bcb60 +_ZN15PlayerLinkActor19func_ov001_020bcb60EP25UnkStruct_027e0ce0_40_328 kind:function(thumb,size=0x10) addr:0x020bcb60 _ZN15PlayerLinkActor19func_ov001_020bcb70Ev kind:function(thumb,size=0x36) addr:0x020bcb70 _ZN15PlayerLinkActor19func_ov001_020bcba8Ev kind:function(thumb,size=0x26) addr:0x020bcba8 _ZN15PlayerLinkActor19func_ov001_020bcbd0EP7VecFx32 kind:function(thumb,size=0x98) addr:0x020bcbd0 diff --git a/config/eur/arm9/overlays/ov031/relocs.txt b/config/eur/arm9/overlays/ov031/relocs.txt index e5ea3b6b..02e9d6d7 100644 --- a/config/eur/arm9/overlays/ov031/relocs.txt +++ b/config/eur/arm9/overlays/ov031/relocs.txt @@ -5587,7 +5587,7 @@ from:0x0210ac6c kind:arm_call to:0x0207f4fc module:overlay(0) from:0x0210ac90 kind:arm_call to:0x02028c4c module:main from:0x0210acb0 kind:load to:0x02115b8c module:overlay(31) from:0x0210acb4 kind:load to:0x02113f10 add:0x8 module:overlay(31) -from:0x0210acb8 kind:load to:0x021839dc module:overlay(101) +from:0x0210acb8 kind:load to:0x021839d4 module:overlay(101) add:0x8 from:0x0210acc4 kind:load to:0x02116000 module:overlay(31) from:0x0210acc8 kind:load to:0x02118918 module:overlay(31) from:0x0210accc kind:load to:0x021188e0 module:overlay(31) diff --git a/config/eur/arm9/overlays/ov031/symbols.txt b/config/eur/arm9/overlays/ov031/symbols.txt index 578f711d..0be6e5e5 100644 --- a/config/eur/arm9/overlays/ov031/symbols.txt +++ b/config/eur/arm9/overlays/ov031/symbols.txt @@ -1,7 +1,7 @@ func_ov031_020d8720 kind:function(arm,size=0x18) addr:0x020d8720 -func_ov031_020d8738 kind:function(arm,size=0x188) addr:0x020d8738 -func_ov031_020d88c0 kind:function(arm,size=0x224) addr:0x020d88c0 -func_ov031_020d8ae4 kind:function(arm,size=0x6c) addr:0x020d8ae4 +_ZN21UnkStruct_027e0cd8_0C19func_ov031_020d8738Ev kind:function(arm,size=0x188) addr:0x020d8738 +_ZN21UnkStruct_027e0cd8_0C19func_ov031_020d88c0Ev kind:function(arm,size=0x224) addr:0x020d88c0 +_ZN21UnkStruct_027e0cd8_0C19func_ov031_020d8ae4Ev kind:function(arm,size=0x6c) addr:0x020d8ae4 func_ov031_020d8b50 kind:function(arm,size=0x168) addr:0x020d8b50 func_ov031_020d8cb8 kind:function(arm,size=0x18) addr:0x020d8cb8 func_ov031_020d8cd0 kind:function(arm,size=0x28) addr:0x020d8cd0 @@ -33,14 +33,14 @@ func_ov031_020d94d0 kind:function(arm,size=0x54) addr:0x020d94d0 func_ov031_020d9524 kind:function(arm,size=0x44) addr:0x020d9524 _ZN19func_ov031_020d9568D1Ev kind:function(arm,size=0x14) addr:0x020d9568 _ZN19func_ov031_020d957cD0Ev kind:function(arm,size=0x1c) addr:0x020d957c -func_ov031_020d9598 kind:function(thumb,size=0x1a) addr:0x020d9598 +_ZN27UnkStruct_ItemManager_20_0419func_ov031_020d9598Ev kind:function(thumb,size=0x1a) addr:0x020d9598 _ZN18UnkStruct_027e0d2c19func_ov031_020d95b4Ev kind:function(arm,size=0x14) addr:0x020d95b4 _ZN18UnkStruct_027e0d2c19func_ov031_020d95c8E8ActorRef kind:function(arm,size=0x24) addr:0x020d95c8 func_ov031_020d95ec kind:function(arm,size=0x30) addr:0x020d95ec func_ov031_020d961c kind:function(arm,size=0x10) addr:0x020d961c _ZN18UnkStruct_027e0d2c19func_ov031_020d962cEP7VecFx32iS1_P8ActorRef kind:function(arm,size=0x1c) addr:0x020d962c func_ov031_020d9648 kind:function(arm,size=0x10) addr:0x020d9648 -func_ov031_020d9658 kind:function(thumb,size=0x1a) addr:0x020d9658 +_ZN27UnkStruct_ItemManager_20_0819func_ov031_020d9658Ev kind:function(thumb,size=0x1a) addr:0x020d9658 func_ov031_020d9674 kind:function(arm,size=0x10) addr:0x020d9674 _ZN18UnkStruct_027e0d3019func_ov031_020d9684EtP7VecFx32 kind:function(arm,size=0x10) addr:0x020d9684 func_ov031_020d9694 kind:function(arm,size=0x10) addr:0x020d9694 @@ -99,7 +99,7 @@ func_ov031_020d9b98 kind:function(arm,size=0x10) addr:0x020d9b98 func_ov031_020d9ba8 kind:function(thumb,size=0xc) addr:0x020d9ba8 func_ov031_020d9bb4 kind:function(thumb,size=0xc) addr:0x020d9bb4 func_ov031_020d9bc0 kind:function(arm,size=0x10) addr:0x020d9bc0 -func_ov031_020d9bd0 kind:function(thumb,size=0x1a) addr:0x020d9bd0 +_ZN27UnkStruct_ItemManager_20_0019func_ov031_020d9bd0Ev kind:function(thumb,size=0x1a) addr:0x020d9bd0 _ZN18UnkStruct_027e0d3819func_ov031_020d9becEv kind:function(arm,size=0x18) addr:0x020d9bec _ZN18UnkStruct_027e0d3819func_ov031_020d9c04Eiii kind:function(arm,size=0x10) addr:0x020d9c04 func_ov031_020d9c14 kind:function(arm,size=0x20) addr:0x020d9c14 @@ -141,9 +141,9 @@ func_ov031_020db120 kind:function(arm,size=0x40) addr:0x020db120 func_ov031_020db160 kind:function(arm,size=0x30) addr:0x020db160 _ZN18PlayerActorBase_7419func_ov001_020db190Ev kind:function(arm,size=0x24) addr:0x020db190 func_ov031_020db1b4 kind:function(arm,size=0xfc) addr:0x020db1b4 -func_ov031_020db2b0 kind:function(arm,size=0x2c) addr:0x020db2b0 +_ZN27UnkStruct_ItemManager_20_1019func_ov031_020db2b0Ev kind:function(arm,size=0x2c) addr:0x020db2b0 func_ov031_020db2dc kind:function(arm,size=0x5c) addr:0x020db2dc -func_ov031_020db338 kind:function(arm,size=0x18) addr:0x020db338 +_ZN27UnkStruct_ItemManager_20_0419func_ov031_020db338Ev kind:function(arm,size=0x18) addr:0x020db338 func_ov031_020db350 kind:function(arm,size=0x24) addr:0x020db350 func_ov031_020db374 kind:function(arm,size=0x74) addr:0x020db374 func_ov031_020db3e8 kind:function(arm,size=0x18) addr:0x020db3e8 @@ -151,25 +151,25 @@ func_ov031_020db400 kind:function(arm,size=0x98) addr:0x020db400 func_ov031_020db498 kind:function(arm,size=0x58) addr:0x020db498 func_ov031_020db4f0 kind:function(arm,size=0x38) addr:0x020db4f0 func_ov031_020db528 kind:function(arm,size=0x8c) addr:0x020db528 -func_ov031_020db5b4 kind:function(arm,size=0x20) addr:0x020db5b4 +_ZN27UnkStruct_ItemManager_20_0819func_ov031_020db5b4Ev kind:function(arm,size=0x20) addr:0x020db5b4 func_ov031_020db5d4 kind:function(arm,size=0x14) addr:0x020db5d4 func_ov031_020db5e8 kind:function(arm,size=0x2c) addr:0x020db5e8 func_ov031_020db614 kind:function(arm,size=0x90) addr:0x020db614 func_ov031_020db6a4 kind:function(arm,size=0x60) addr:0x020db6a4 func_ov031_020db704 kind:function(arm,size=0xbc) addr:0x020db704 -func_ov031_020db7c0 kind:function(thumb,size=0x16) addr:0x020db7c0 +_ZN27UnkStruct_ItemManager_20_14C1Ev kind:function(thumb,size=0x16) addr:0x020db7c0 _ZN27UnkStruct_ItemManager_20_1419func_ov031_020db7d8Ev kind:function(thumb,size=0x1a) addr:0x020db7d8 func_ov031_020db7f4 kind:function(arm,size=0x50) addr:0x020db7f4 func_ov031_020db844 kind:function(arm,size=0x30) addr:0x020db844 _ZN24UnkStruct_ItemManager_2019func_ov031_020db874Ej kind:function(arm,size=0x58) addr:0x020db874 _ZN24UnkStruct_ItemManager_2019func_ov031_020db8ccEv kind:function(arm,size=0x2c) addr:0x020db8cc _ZN24UnkStruct_ItemManager_2019func_ov031_020db8f8Ev kind:function(arm,size=0x44) addr:0x020db8f8 -func_ov031_020db93c kind:function(thumb,size=0x12) addr:0x020db93c -func_ov031_020db950 kind:function(thumb,size=0x2) addr:0x020db950 -func_ov031_020db954 kind:function(arm,size=0x4) addr:0x020db954 +_ZN27UnkStruct_ItemManager_20_0CC1Ev kind:function(thumb,size=0x12) addr:0x020db93c +_ZN27UnkStruct_ItemManager_20_0CD1Ev kind:function(thumb,size=0x2) addr:0x020db950 +_ZN27UnkStruct_ItemManager_20_0C19func_ov031_020db954Ev kind:function(arm,size=0x4) addr:0x020db954 func_ov031_020db958 kind:function(arm,size=0xe4) addr:0x020db958 func_ov031_020dba3c kind:function(arm,size=0x4) addr:0x020dba3c -func_ov031_020dba40 kind:function(arm,size=0x34) addr:0x020dba40 +_ZN27UnkStruct_ItemManager_20_0019func_ov031_020dba40Ev kind:function(arm,size=0x34) addr:0x020dba40 func_ov031_020dba74 kind:function(arm,size=0x18) addr:0x020dba74 func_ov031_020dba8c kind:function(arm,size=0xac) addr:0x020dba8c func_ov031_020dbb38 kind:function(arm,size=0x1c) addr:0x020dbb38 @@ -202,8 +202,8 @@ func_ov031_020dc2fc kind:function(arm,size=0x88) addr:0x020dc2fc func_ov031_020dc384 kind:function(arm,size=0x5c) addr:0x020dc384 func_ov031_020dc3e0 kind:function(arm,size=0x20) addr:0x020dc3e0 func_ov031_020dc400 kind:function(arm,size=0x14) addr:0x020dc400 -func_ov031_020dc414 kind:function(thumb,size=0x5c) addr:0x020dc414 -func_ov031_020dc470 kind:function(thumb,size=0xe) addr:0x020dc470 +_ZN30UnkStruct_ItemManager_20_04_08C1Ev kind:function(thumb,size=0x5c) addr:0x020dc414 +_ZN30UnkStruct_ItemManager_20_04_08D1Ev kind:function(thumb,size=0xe) addr:0x020dc470 func_ov031_020dc480 kind:function(arm,size=0x38) addr:0x020dc480 func_ov031_020dc4b8 kind:function(arm,size=0x248) addr:0x020dc4b8 func_ov031_020dc700 kind:function(arm,size=0x1a0) addr:0x020dc700 @@ -287,7 +287,7 @@ func_ov031_020e0888 kind:function(arm,size=0x1c) addr:0x020e0888 func_ov031_020e08a4 kind:function(arm,size=0x50) addr:0x020e08a4 func_ov031_020e08f4 kind:function(arm,size=0x30) addr:0x020e08f4 func_ov031_020e0924 kind:function(arm,size=0x48) addr:0x020e0924 -func_ov031_020e096c kind:function(arm,size=0x20) addr:0x020e096c +_ZN30UnkStruct_ItemManager_20_00_2019func_ov031_020e096cEv kind:function(arm,size=0x20) addr:0x020e096c func_ov031_020e098c kind:function(arm,size=0x60) addr:0x020e098c func_ov031_020e09ec kind:function(arm,size=0xe8) addr:0x020e09ec func_ov031_020e0ad4 kind:function(arm,size=0x34) addr:0x020e0ad4 @@ -299,7 +299,7 @@ func_ov031_020e0c9c kind:function(arm,size=0x54) addr:0x020e0c9c func_ov031_020e0cf0 kind:function(arm,size=0xa8) addr:0x020e0cf0 func_ov031_020e0d98 kind:function(arm,size=0x198) addr:0x020e0d98 func_ov031_020e0f30 kind:function(arm,size=0x78) addr:0x020e0f30 -func_ov031_020e0fa8 kind:function(arm,size=0x30) addr:0x020e0fa8 +_ZN30UnkStruct_ItemManager_20_00_08C1Ev kind:function(arm,size=0x30) addr:0x020e0fa8 func_ov031_020e0fd8 kind:function(arm,size=0x50) addr:0x020e0fd8 func_ov031_020e1028 kind:function(arm,size=0x84) addr:0x020e1028 func_ov031_020e10ac kind:function(arm,size=0xa8) addr:0x020e10ac @@ -2224,7 +2224,7 @@ data_ov031_021129ac kind:data(any) addr:0x021129ac data_ov031_021129bc kind:data(any) addr:0x021129bc data_ov031_021129d4 kind:data(any) addr:0x021129d4 data_ov031_021129ec kind:data(any) addr:0x021129ec -data_ov031_02112a0c kind:data(any) addr:0x02112a0c ambiguous +_ZTV21UnkStruct_027e0cd8_0C kind:data(any) addr:0x02112a04 ambiguous data_ov031_02112a50 kind:data(any) addr:0x02112a50 data_ov031_02112a64 kind:data(any) addr:0x02112a64 _ZTV16MapObject_10_Pot kind:data(any) addr:0x02112a70 @@ -2236,7 +2236,7 @@ data_ov031_02112b18 kind:data(any) addr:0x02112b18 data_ov031_02112b24 kind:data(any) addr:0x02112b24 data_ov031_02112b40 kind:data(any) addr:0x02112b40 data_ov031_02112b54 kind:data(any) addr:0x02112b54 -data_ov031_02112b60 kind:data(any) addr:0x02112b60 ambiguous +_ZTV25UnkStruct_027e0ce0_40_108 kind:data(any) addr:0x02112b58 ambiguous data_ov031_02112b6c kind:data(any) addr:0x02112b6c data_ov031_02112b78 kind:data(any) addr:0x02112b78 _ZTV19data_ov031_02112b84 kind:data(any) addr:0x02112b84 @@ -2723,9 +2723,9 @@ data_ov031_021188bc kind:bss addr:0x021188bc data_ov031_021188e0 kind:bss addr:0x021188e0 data_ov031_021188e8 kind:bss addr:0x021188e8 data_ov031_021188f4 kind:bss addr:0x021188f4 -_ZGVN15ProfileInstanceI23MapObjectProfileUnkSANDE8sProfileE kind:bss addr:0x02118900 -@11095 kind:bss addr:0x02118918 -_ZN15ProfileInstanceI23MapObjectProfileUnkSANDE8sProfileE kind:bss addr:0x021189d0 +data_ov031_02118900 kind:bss addr:0x02118900 +data_ov031_02118918 kind:bss addr:0x02118918 +data_ov031_021189d0 kind:bss addr:0x021189d0 data_ov031_02118aa4 kind:bss addr:0x02118aa4 data_ov031_02118ac8 kind:bss addr:0x02118ac8 data_ov031_02118aec kind:bss addr:0x02118aec diff --git a/config/eur/arm9/overlays/ov093/symbols.txt b/config/eur/arm9/overlays/ov093/symbols.txt index f66e26af..69c59eb6 100644 --- a/config/eur/arm9/overlays/ov093/symbols.txt +++ b/config/eur/arm9/overlays/ov093/symbols.txt @@ -93,9 +93,9 @@ func_ov093_02168484 kind:function(arm,size=0xd0) addr:0x02168484 func_ov093_02168554 kind:function(arm,size=0x24) addr:0x02168554 func_ov093_02168578 kind:function(arm,size=0x78) addr:0x02168578 func_ov093_021685f0 kind:function(arm,size=0x240) addr:0x021685f0 -func_ov093_02168830 kind:function(thumb,size=0x1c) addr:0x02168830 -func_ov093_0216884c kind:function(thumb,size=0x2) addr:0x0216884c -func_ov093_02168850 kind:function(thumb,size=0x14) addr:0x02168850 +_ZN25UnkStruct_027e0ce0_40_14CC1Ev kind:function(thumb,size=0x1c) addr:0x02168830 +_ZN25UnkStruct_027e0ce0_40_14CD1Ev kind:function(thumb,size=0x2) addr:0x0216884c +_ZN25UnkStruct_027e0ce0_40_14C19func_ov093_02168850Ev kind:function(thumb,size=0x14) addr:0x02168850 func_ov093_02168864 kind:function(arm,size=0x184) addr:0x02168864 func_ov093_021689e8 kind:function(arm,size=0x43c) addr:0x021689e8 func_ov093_02168e24 kind:function(arm,size=0x6c) addr:0x02168e24 @@ -163,11 +163,11 @@ func_ov093_0216ccd8 kind:function(thumb,size=0x14) addr:0x0216ccd8 func_ov093_0216ccec kind:function(arm,size=0x94) addr:0x0216ccec func_ov093_0216cd80 kind:function(arm,size=0xa4) addr:0x0216cd80 func_ov093_0216ce24 kind:function(arm,size=0x3c) addr:0x0216ce24 -func_ov093_0216ce60 kind:function(thumb,size=0x1bc) addr:0x0216ce60 -func_ov093_0216d01c kind:function(thumb,size=0xb6) addr:0x0216d01c -func_ov093_0216d0d4 kind:function(thumb,size=0x8c) addr:0x0216d0d4 -func_ov093_0216d160 kind:function(thumb,size=0x6c) addr:0x0216d160 -func_ov093_0216d1cc kind:function(thumb,size=0x1cc) addr:0x0216d1cc +_ZN25UnkStruct_027e0ce0_40_328C1EPvP21UnkStruct_027e0ce0_40P25UnkStruct_027e0ce0_40_150Pj kind:function(thumb,size=0x1bc) addr:0x0216ce60 +_ZN25UnkStruct_027e0ce0_40_328D1Ev kind:function(thumb,size=0xb6) addr:0x0216d01c +_ZN25UnkStruct_027e0ce0_40_32819func_ov093_0216d0d4Ev kind:function(thumb,size=0x8c) addr:0x0216d0d4 +_ZN25UnkStruct_027e0ce0_40_32819func_ov093_0216d160Ev kind:function(thumb,size=0x6c) addr:0x0216d160 +_ZN25UnkStruct_027e0ce0_40_32819func_ov093_0216d1ccEiPK24UnkStruct_ov001_020c40f4bb kind:function(thumb,size=0x1cc) addr:0x0216d1cc func_ov093_0216d398 kind:function(arm,size=0x64) addr:0x0216d398 func_ov093_0216d3fc kind:function(arm,size=0x30) addr:0x0216d3fc func_ov093_0216d42c kind:function(arm,size=0x14) addr:0x0216d42c diff --git a/config/eur/arm9/overlays/ov096/symbols.txt b/config/eur/arm9/overlays/ov096/symbols.txt index 60ee187c..97cdf38c 100644 --- a/config/eur/arm9/overlays/ov096/symbols.txt +++ b/config/eur/arm9/overlays/ov096/symbols.txt @@ -1,11 +1,11 @@ _ZN9Inventory19func_ov096_02179b20Ev kind:function(arm,size=0x9c) addr:0x02179b20 func_ov096_02179bbc kind:function(thumb,size=0x20) addr:0x02179bbc func_ov096_02179bdc kind:function(thumb,size=0x20) addr:0x02179bdc -func_ov096_02179bfc kind:function(thumb,size=0xc) addr:0x02179bfc +_ZN25UnkStruct_027e0ce0_40_150C1Ev kind:function(thumb,size=0xc) addr:0x02179bfc func_ov096_02179c08 kind:function(thumb,size=0xc) addr:0x02179c08 func_ov096_02179c14 kind:function(thumb,size=0x2c) addr:0x02179c14 func_ov096_02179c40 kind:function(thumb,size=0x14) addr:0x02179c40 -func_ov096_02179c54 kind:function(thumb,size=0x118) addr:0x02179c54 +_ZN25UnkStruct_027e0ce0_40_15019func_ov096_02179c54Ebb kind:function(thumb,size=0x118) addr:0x02179c54 func_ov096_02179d6c kind:function(arm,size=0x36c) addr:0x02179d6c func_ov096_0217a0d8 kind:function(arm,size=0x168) addr:0x0217a0d8 _ZN19func_ov096_0217a240D1Ev kind:function(arm,size=0x14) addr:0x0217a240 diff --git a/config/eur/arm9/overlays/ov101/delinks.txt b/config/eur/arm9/overlays/ov101/delinks.txt index d221ed17..779d6822 100644 --- a/config/eur/arm9/overlays/ov101/delinks.txt +++ b/config/eur/arm9/overlays/ov101/delinks.txt @@ -3,3 +3,32 @@ .ctor start:0x021838e8 end:0x021838ec kind:rodata align:4 .data start:0x02183900 end:0x02183a00 kind:data align:32 .bss start:0x02183a00 end:0x02183a00 kind:bss align:32 + +src/101_SceneInitLand/Item/ItemManager_101.cpp: + complete + .text start:0x02182c20 end:0x02182e0c + +src/101_SceneInitLand/UnkStruct_027e0ce0_40_101.cpp: + complete + .text start:0x02182e0c end:0x02183284 + .data start:0x02183900 end:0x0218390c + +src/101_SceneInitLand/Player/PlayerLinkActor_A0_1C_101.cpp: + complete + .text start:0x02183284 end:0x021832d8 + +src/101_SceneInitLand/UnkStruct_027e09a4_54_101.cpp: + complete + .text start:0x021832d8 end:0x02183480 + .data start:0x0218390c end:0x021839b8 + +src/101_SceneInitLand/UnkStruct_027e0cd8_0C_101.cpp: + .text start:0x02183480 end:0x021838bc + .data start:0x021839b8 end:0x021839c8 + +src/101_SceneInitLand/MapObjectProfile_Derived6_101.cpp: + complete + .text start:0x021838bc end:0x021838d0 + .init start:0x021838d0 end:0x021838e8 + .ctor start:0x021838e8 end:0x021838ec + .data start:0x021839c8 end:0x02183a00 diff --git a/config/eur/arm9/overlays/ov101/relocs.txt b/config/eur/arm9/overlays/ov101/relocs.txt index 85732299..aba7c156 100644 --- a/config/eur/arm9/overlays/ov101/relocs.txt +++ b/config/eur/arm9/overlays/ov101/relocs.txt @@ -55,8 +55,8 @@ from:0x02182ea6 kind:thumb_call to:0x020bc99c module:overlay(1) from:0x02182eb8 kind:thumb_call_arm to:0x02011f3c module:main from:0x02182ec8 kind:thumb_call to:0x0216ce60 module:overlay(93) from:0x02182f32 kind:thumb_call to:0x020bcb60 module:overlay(1) -from:0x02182f48 kind:load to:0x02183908 module:overlay(101) -from:0x02182f4c kind:load to:0x02112b60 module:overlay(31) +from:0x02182f48 kind:load to:0x02183900 module:overlay(101) add:0x8 +from:0x02182f4c kind:load to:0x02112b58 module:overlay(31) add:0x8 from:0x02182f50 kind:load to:0x02043e50 module:main from:0x02182f54 kind:load to:0x027e09a4 module:dtcm from:0x02182f70 kind:thumb_call to:0x0216d01c module:overlay(93) @@ -84,7 +84,7 @@ from:0x021832d0 kind:load to:0x027e0ce4 module:dtcm from:0x021832dc kind:thumb_call to:0x020b6d58 module:overlay(1) from:0x021832f2 kind:thumb_call_arm to:0x02011ff4 module:main from:0x02183300 kind:thumb_call_arm to:0x02011f3c module:main -from:0x02183324 kind:load to:0x02183914 module:overlay(101) +from:0x02183324 kind:load to:0x0218390c module:overlay(101) add:0x8 from:0x0218332e kind:thumb_call to:0x020b6f3c module:overlay(1) from:0x02183338 kind:thumb_call_arm to:0x0207029c module:overlay(0) from:0x02183352 kind:thumb_call_arm to:0x020591ec module:overlay(0) @@ -119,14 +119,14 @@ from:0x02183464 kind:thumb_call to:0x020b6eac module:overlay(1) from:0x02183470 kind:thumb_call to:0x020b6eac module:overlay(1) from:0x02183476 kind:thumb_call_arm to:0x02011ff4 module:main from:0x02183484 kind:thumb_call to:0x020b81e0 module:overlays(1,14) -from:0x021834e4 kind:load to:0x02112a0c module:overlay(31) +from:0x021834e4 kind:load to:0x02112a04 module:overlay(31) add:0x8 from:0x02183514 kind:thumb_call to:0x0201547c module:main from:0x02183528 kind:thumb_call to:0x0201547c module:main from:0x0218352e kind:thumb_call_arm to:0x02011ff4 module:main from:0x02183570 kind:thumb_call to:0x0205777c module:overlay(0) from:0x02183576 kind:thumb_call_arm to:0x02011ff4 module:main from:0x021835b2 kind:thumb_call to:0x020b8530 module:overlay(1) -from:0x021835bc kind:load to:0x02112a0c module:overlay(31) +from:0x021835bc kind:load to:0x02112a04 module:overlay(31) add:0x8 from:0x021835ec kind:thumb_call to:0x0201547c module:main from:0x02183600 kind:thumb_call to:0x0201547c module:main from:0x02183606 kind:thumb_call_arm to:0x02011ff4 module:main @@ -134,7 +134,7 @@ from:0x02183648 kind:thumb_call to:0x0205777c module:overlay(0) from:0x0218364e kind:thumb_call_arm to:0x02011ff4 module:main from:0x0218368a kind:thumb_call to:0x020b8530 module:overlay(1) from:0x02183690 kind:thumb_call_arm to:0x02011ff4 module:main -from:0x0218369c kind:load to:0x02112a0c module:overlay(31) +from:0x0218369c kind:load to:0x02112a04 module:overlay(31) add:0x8 from:0x021836a6 kind:thumb_call to:0x020b85c8 module:overlay(1) from:0x021836ae kind:thumb_call to:0x020b8c80 module:overlay(1) from:0x021836b8 kind:thumb_call_arm to:0x02028c60 module:main @@ -155,12 +155,12 @@ from:0x02183764 kind:load to:0x027e09a4 module:dtcm from:0x02183768 kind:load to:0x027e09b8 module:dtcm from:0x0218376c kind:load to:0x0204a088 module:main from:0x0218377c kind:thumb_call to:0x021837a0 module:overlay(101) -from:0x0218378c kind:load to:0x021839c0 module:overlay(101) +from:0x0218378c kind:load to:0x021839b8 module:overlay(101) add:0x8 from:0x02183798 kind:thumb_call_arm to:0x02011ff4 module:main from:0x021837b0 kind:thumb_call to:0x02183884 module:overlay(101) from:0x021837ce kind:thumb_call_arm to:0x01ffd400 module:itcm from:0x021837da kind:thumb_call_arm to:0x01ffd400 module:itcm -from:0x021837fa kind:thumb_call_arm to:0x02143fe4 module:overlays(29,70) +from:0x021837fa kind:thumb_call_arm to:0x02143fe4 module:overlay(70) from:0x02183812 kind:thumb_call_arm to:0x02081d5c module:overlay(0) from:0x0218383e kind:thumb_call_arm to:0x020975f8 module:overlay(0) from:0x02183844 kind:thumb_call_arm to:0x020975f8 module:overlay(0) diff --git a/config/eur/arm9/overlays/ov101/symbols.txt b/config/eur/arm9/overlays/ov101/symbols.txt index 41b0bc98..000c34be 100644 --- a/config/eur/arm9/overlays/ov101/symbols.txt +++ b/config/eur/arm9/overlays/ov101/symbols.txt @@ -1,51 +1,51 @@ -func_ov101_02182c20 kind:function(thumb,size=0x16) addr:0x02182c20 -func_ov101_02182c38 kind:function(thumb,size=0xe) addr:0x02182c38 +_ZN27UnkStruct_ItemManager_20_04C1Ev kind:function(thumb,size=0x16) addr:0x02182c20 +_ZN27UnkStruct_ItemManager_20_04D1Ev kind:function(thumb,size=0xe) addr:0x02182c38 _ZN24UnkStruct_ItemManager_20C1Ev kind:function(thumb,size=0xb8) addr:0x02182c48 _ZN24UnkStruct_ItemManager_20D1Ev kind:function(thumb,size=0x5a) addr:0x02182d00 _ZN24UnkStruct_ItemManager_2019func_ov101_02182d5cEv kind:function(thumb,size=0x2c) addr:0x02182d5c -func_ov101_02182d88 kind:function(thumb,size=0x20) addr:0x02182d88 -func_ov101_02182da8 kind:function(thumb,size=0x20) addr:0x02182da8 -func_ov101_02182dc8 kind:function(thumb,size=0x20) addr:0x02182dc8 -func_ov101_02182de8 kind:function(thumb,size=0xc) addr:0x02182de8 -func_ov101_02182df4 kind:function(thumb,size=0xc) addr:0x02182df4 -func_ov101_02182e00 kind:function(thumb,size=0xc) addr:0x02182e00 -_ZN21UnkStruct_027e0ce0_40C1EbP21UnkStruct_027e0ce0_20PPiP11ItemManager kind:function(thumb,size=0x154) addr:0x02182e0c +_ZN18UnkStruct_027e0d307DestroyEv kind:function(thumb,size=0x20) addr:0x02182d88 +_ZN18UnkStruct_027e0d2c7DestroyEv kind:function(thumb,size=0x20) addr:0x02182da8 +_ZN18UnkStruct_027e0d387DestroyEv kind:function(thumb,size=0x20) addr:0x02182dc8 +_ZN8InstanceI18UnkStruct_027e0d30ED2Ev kind:function(thumb,size=0xc) addr:0x02182de8 +_ZN8InstanceI18UnkStruct_027e0d2cED2Ev kind:function(thumb,size=0xc) addr:0x02182df4 +_ZN8InstanceI18UnkStruct_027e0d38ED2Ev kind:function(thumb,size=0xc) addr:0x02182e00 +_ZN21UnkStruct_027e0ce0_40C1EbP21UnkStruct_027e0ce0_20PjP11ItemManager kind:function(thumb,size=0x154) addr:0x02182e0c _ZN21UnkStruct_027e0ce0_40D1Ev kind:function(thumb,size=0x54) addr:0x02182f60 _ZN21UnkStruct_027e0ce0_4019func_ov101_02182fb4Eb kind:function(thumb,size=0x50) addr:0x02182fb4 _ZN21UnkStruct_027e0ce0_4019func_ov101_02183004Ev kind:function(thumb,size=0x1e) addr:0x02183004 _ZN21UnkStruct_027e0ce0_4019func_ov101_02183024EPK24UnkStruct_ov001_020c40f4S2_iiP11ItemManagerP21UnkStruct_027e0ce0_30bb kind:function(thumb,size=0x260) addr:0x02183024 -func_ov101_02183284 kind:function(thumb,size=0xc) addr:0x02183284 +_ZN21PlayerLinkActor_A0_1CC1Ei kind:function(thumb,size=0xc) addr:0x02183284 _ZN21PlayerLinkActor_A0_1C19func_ov101_02183290Ev kind:function(thumb,size=0x48) addr:0x02183290 -func_ov101_021832d8 kind:function(thumb,size=0x50) addr:0x021832d8 -func_ov101_02183328 kind:function(thumb,size=0x134) addr:0x02183328 -func_ov101_0218345c kind:function(thumb,size=0x2) addr:0x0218345c -func_ov101_02183460 kind:function(thumb,size=0xc) addr:0x02183460 -func_ov101_0218346c kind:function(thumb,size=0x12) addr:0x0218346c +_ZN30UnkStruct_027e09a4_54_Derived1C2EPi kind:function(thumb,size=0x50) addr:0x021832d8 +_ZN30UnkStruct_027e09a4_54_Derived18vfunc_0CEv kind:function(thumb,size=0x134) addr:0x02183328 +_ZN30UnkStruct_027e09a4_54_Derived18vfunc_10EP26UnkStruct_StackTitleScreen kind:function(thumb,size=0x2) addr:0x0218345c +_ZN30UnkStruct_027e09a4_54_Derived1D1Ev kind:function(thumb,size=0xc) addr:0x02183460 +_ZN30UnkStruct_027e09a4_54_Derived1D0Ev kind:function(thumb,size=0x12) addr:0x0218346c _ZN21UnkStruct_027e0cd8_0CC1EP18UnkStruct_027e0cd8 kind:function(thumb,size=0x68) addr:0x02183480 -func_ov101_021834e8 kind:function(thumb,size=0xd8) addr:0x021834e8 -func_ov101_021835c0 kind:function(thumb,size=0xe0) addr:0x021835c0 -func_ov101_021836a0 kind:function(thumb,size=0xd0) addr:0x021836a0 -func_ov101_02183770 kind:function(thumb,size=0x12) addr:0x02183770 -func_ov101_02183784 kind:function(thumb,size=0xc) addr:0x02183784 -func_ov101_02183790 kind:function(thumb,size=0x2) addr:0x02183790 -_ZN19func_ov101_02183794D0Ev kind:function(thumb,size=0xc) addr:0x02183794 -func_ov101_021837a0 kind:function(thumb,size=0xe4) addr:0x021837a0 -func_ov101_02183884 kind:function(thumb,size=0x38) addr:0x02183884 -func_ov101_021838bc kind:function(thumb,size=0x14) addr:0x021838bc -__sinit_ov101_021838d0 kind:function(thumb,size=0x18) addr:0x021838d0 -.p__sinit_ov101_021838d1 kind:data(word) addr:0x021838e8 -data_ov101_02183908 kind:data(any) addr:0x02183908 -data_ov101_02183914 kind:data(any) addr:0x02183914 -data_ov101_02183928 kind:data(any) addr:0x02183928 -data_ov101_0218393c kind:data(any) addr:0x0218393c -data_ov101_0218394c kind:data(any) addr:0x0218394c -data_ov101_02183958 kind:data(any) addr:0x02183958 -data_ov101_02183968 kind:data(any) addr:0x02183968 -data_ov101_02183978 kind:data(any) addr:0x02183978 -data_ov101_02183988 kind:data(any) addr:0x02183988 -data_ov101_02183990 kind:data(any) addr:0x02183990 -data_ov101_02183998 kind:data(any) addr:0x02183998 -data_ov101_021839ac kind:data(any) addr:0x021839ac -data_ov101_021839c0 kind:data(any) addr:0x021839c0 -data_ov101_021839c8 kind:data(any) addr:0x021839c8 -data_ov101_021839dc kind:data(any) addr:0x021839dc ambiguous +_ZN21UnkStruct_027e0cd8_0CD1Ev kind:function(thumb,size=0xd8) addr:0x021834e8 +_ZN21UnkStruct_027e0cd8_0CD0Ev kind:function(thumb,size=0xe0) addr:0x021835c0 +_ZN21UnkStruct_027e0cd8_0C8vfunc_38Ev kind:function(thumb,size=0xd0) addr:0x021836a0 +_ZN21UnkStruct_027e0cd8_0C8vfunc_08Ev kind:function(thumb,size=0x12) addr:0x02183770 +_ZN25UnkStruct_027e0cd8_0C_1D0C1Ev kind:function(thumb,size=0xc) addr:0x02183784 +_ZN25UnkStruct_027e0cd8_0C_1D0D1Ev kind:function(thumb,size=0x2) addr:0x02183790 +_ZN25UnkStruct_027e0cd8_0C_1D0D0Ev kind:function(thumb,size=0xc) addr:0x02183794 +_ZN25UnkStruct_027e0cd8_0C_1D019func_ov101_021837a0Ev kind:function(thumb,size=0xe4) addr:0x021837a0 +_Z19func_ov101_02183884iii kind:function(thumb,size=0x38) addr:0x02183884 +_ZN25MapObjectProfile_Derived68vfunc_10Ev kind:function(thumb,size=0x14) addr:0x021838bc +__sinit_MapObjectProfile_Derived6_101.cpp kind:function(thumb,size=0x18) addr:0x021838d0 local +.p__sinit_MapObjectProfile_Derived6_101.cpp kind:data(word) addr:0x021838e8 local +_ZTV30UnkStruct_027e0ce0_40_108_Base kind:data(any) addr:0x02183900 +_ZTV30UnkStruct_027e09a4_54_Derived1 kind:data(any) addr:0x0218390c +@0 kind:data(byte[0x11]) addr:0x02183928 local +@1 kind:data(byte[0xf]) addr:0x0218393c local +@2 kind:data(byte[0xb]) addr:0x0218394c local +@3 kind:data(byte[0xd]) addr:0x02183958 local +@4 kind:data(byte[0xd]) addr:0x02183968 local +@5 kind:data(byte[0xd]) addr:0x02183978 local +@6 kind:data(byte[0x8]) addr:0x02183988 local +@7 kind:data(byte[0x7]) addr:0x02183990 local +@8 kind:data(byte[0x12]) addr:0x02183998 local +@9 kind:data(byte[0xc]) addr:0x021839ac local +_ZTV25UnkStruct_027e0cd8_0C_1D0 kind:data(any) addr:0x021839b8 +data_ov101_021839c8 kind:data(any) addr:0x021839c8 local +_ZTV25MapObjectProfile_Derived6 kind:data(byte[0x1c]) addr:0x021839d4 diff --git a/config/jp/arm9/overlays/ov000/symbols.txt b/config/jp/arm9/overlays/ov000/symbols.txt index f6e8a2ec..933f721d 100644 --- a/config/jp/arm9/overlays/ov000/symbols.txt +++ b/config/jp/arm9/overlays/ov000/symbols.txt @@ -993,7 +993,7 @@ _ZN18UnkStruct_027e09a017GetRoomEntryIndexEv kind:function(arm,size=0x40) addr:0 _ZN18UnkStruct_027e09a012GetRoomEntryEji kind:function(arm,size=0x14) addr:0x020719b4 _ZN18UnkStruct_027e09a019func_ov000_02070310EjhPv kind:function(arm,size=0x68) addr:0x020719c8 _ZN18UnkStruct_027e09a019func_ov000_02070378Ej kind:function(arm,size=0x44) addr:0x02071a30 -func_ov000_02071a74 kind:function(arm,size=0x8) addr:0x02071a74 +_ZN26UnkStruct_027e09a4_54_Base8vfunc_00EPv kind:function(arm,size=0x8) addr:0x02071a74 func_ov000_02071a7c kind:function(arm,size=0x5c) addr:0x02071a7c func_ov000_02071ad8 kind:function(arm,size=0xa8) addr:0x02071ad8 func_ov000_02071b80 kind:function(arm,size=0x2c) addr:0x02071b80 @@ -1799,7 +1799,7 @@ func_ov000_020894f8 kind:function(arm,size=0xc4) addr:0x020894f8 func_ov000_020895bc kind:function(arm,size=0x90) addr:0x020895bc func_ov000_0208964c kind:function(arm,size=0x50) addr:0x0208964c func_ov000_0208969c kind:function(arm,size=0x98) addr:0x0208969c -func_ov000_02089734 kind:function(arm,size=0x10c) addr:0x02089734 +_ZN21UnkStruct_027e0ce0_4019func_ov000_02088060Eb kind:function(arm,size=0x10c) addr:0x02089734 func_ov000_02089840 kind:function(arm,size=0xfc) addr:0x02089840 _ZN21PlayerLinkActor_A0_0419func_ov000_02088268Ev kind:function(arm,size=0x60) addr:0x0208993c func_ov000_0208999c kind:function(arm,size=0x64) addr:0x0208999c @@ -2112,7 +2112,7 @@ func_ov000_02092d58 kind:function(arm,size=0x40) addr:0x02092d58 _ZN19func_ov000_02092d98D0Ev kind:function(arm,size=0x48) addr:0x02092d98 func_ov000_02092de0 kind:function(arm,size=0xe4) addr:0x02092de0 func_ov000_02092ec4 kind:function(arm,size=0x4c4) addr:0x02092ec4 -_ZN18PlayerLinkActor_A0C1EiP21UnkStruct_027e0ce0_40P15PlayerActorBaseP18PlayerLinkActor_9C kind:function(thumb,size=0x1f4) addr:0x02093388 +_ZN18PlayerLinkActor_A0C1EP11ItemManagerP21UnkStruct_027e0ce0_40P15PlayerActorBaseP18PlayerLinkActor_9C kind:function(thumb,size=0x1f4) addr:0x02093388 _ZN18PlayerLinkActor_A019func_ov000_02091ea0Ev kind:function(arm,size=0x18) addr:0x0209357c func_ov000_02093594 kind:function(arm,size=0x50) addr:0x02093594 _ZN18PlayerLinkActor_A019func_ov000_02091f08Ei kind:function(arm,size=0x28) addr:0x020935e4 diff --git a/config/jp/arm9/overlays/ov001/symbols.txt b/config/jp/arm9/overlays/ov001/symbols.txt index 2be56012..d58cdd23 100644 --- a/config/jp/arm9/overlays/ov001/symbols.txt +++ b/config/jp/arm9/overlays/ov001/symbols.txt @@ -67,7 +67,7 @@ _ZN18UnkStruct_027e0cd819func_ov001_020b8120Ej kind:function(thumb,size=0x6c) ad _ZN18UnkStruct_027e0cd819func_ov001_020b818cEv kind:function(thumb,size=0x3c) addr:0x020b99cc _ZN8InstanceI18UnkStruct_027e0cd8EC2Ev kind:function(thumb,size=0xc) addr:0x020b9a08 _ZN8InstanceI18UnkStruct_027e0cd8ED2Ev kind:function(thumb,size=0xc) addr:0x020b9a14 -_ZN26UnkStruct_027e0cd8_0C_BaseC1EP18UnkStruct_027e0cd8 kind:function(thumb,size=0x218) addr:0x020b9a20 +_ZN26UnkStruct_027e0cd8_0C_BaseC2EP18UnkStruct_027e0cd8 kind:function(thumb,size=0x218) addr:0x020b9a20 _ZN26UnkStruct_027e0cd8_0C_BaseD1Ev kind:function(thumb,size=0x98) addr:0x020b9c38 _ZN26UnkStruct_027e0cd8_0C_BaseD0Ev kind:function(thumb,size=0xa0) addr:0x020b9cd0 _ZN26UnkStruct_027e0cd8_0C_BaseD2Ev kind:function(thumb,size=0x98) addr:0x020b9d70 @@ -235,13 +235,13 @@ _ZN8InstanceI18UnkStruct_027e0ce0ED2Ev kind:function(thumb,size=0xc) addr:0x020b _ZN18UnkStruct_027e0cdc7DestroyEv kind:function(thumb,size=0x20) addr:0x020bdfb0 _ZN8InstanceI18UnkStruct_027e0cdcED2Ev kind:function(thumb,size=0xc) addr:0x020bdfd0 _ZN20ModelRender_Derived4C1EiiP10G3d_Model_P18G3d_BoneMtxStruct_ kind:function(thumb,size=0x8c) addr:0x020bdfdc -_ZN15PlayerActorBaseC2EiiiP21UnkStruct_027e0ce0_40 kind:function(thumb,size=0x124) addr:0x020be068 +_ZN15PlayerActorBaseC2EiiP11ItemManagerP21UnkStruct_027e0ce0_40 kind:function(thumb,size=0x124) addr:0x020be068 _ZN15PlayerActorBaseD2Ev kind:function(thumb,size=0x28) addr:0x020be18c _ZN15PlayerActorBase19func_ov001_020bc96cEv kind:function(thumb,size=0x2e) addr:0x020be1b4 -_ZN15PlayerLinkActorC1EiiP21UnkStruct_027e0ce0_40Pb kind:function(thumb,size=0x138) addr:0x020be1e4 +_ZN15PlayerLinkActorC1EiP11ItemManagerP21UnkStruct_027e0ce0_40P25UnkStruct_027e0ce0_40_150 kind:function(thumb,size=0x138) addr:0x020be1e4 _ZN19PlayerLinkActor_1B0D1Ev kind:function(thumb,size=0xc) addr:0x020be31c _ZN15PlayerLinkActorD1Ev kind:function(thumb,size=0x80) addr:0x020be328 -_ZN15PlayerLinkActor19func_ov001_020bcb60Ei kind:function(thumb,size=0x10) addr:0x020be3a8 +_ZN15PlayerLinkActor19func_ov001_020bcb60EP25UnkStruct_027e0ce0_40_328 kind:function(thumb,size=0x10) addr:0x020be3a8 _ZN15PlayerLinkActor19func_ov001_020bcb70Ev kind:function(thumb,size=0x36) addr:0x020be3b8 _ZN15PlayerLinkActor19func_ov001_020bcba8Ev kind:function(thumb,size=0x26) addr:0x020be3f0 _ZN15PlayerLinkActor19func_ov001_020bcbd0EP7VecFx32 kind:function(thumb,size=0x98) addr:0x020be418 diff --git a/config/jp/arm9/overlays/ov031/relocs.txt b/config/jp/arm9/overlays/ov031/relocs.txt index 742e841a..4c951a6f 100644 --- a/config/jp/arm9/overlays/ov031/relocs.txt +++ b/config/jp/arm9/overlays/ov031/relocs.txt @@ -5598,7 +5598,7 @@ from:0x0210c9d4 kind:arm_call to:0x02080bb4 module:overlay(0) from:0x0210c9f8 kind:arm_call to:0x0202a17c module:main from:0x0210ca18 kind:load to:0x02117900 module:overlay(31) from:0x0210ca1c kind:load to:0x02115cb0 add:0x8 module:overlay(31) -from:0x0210ca20 kind:load to:0x0218555c module:overlay(101) +from:0x0210ca20 kind:load to:0x02185554 module:overlay(101) add:0x8 from:0x0210ca2c kind:load to:0x02117da0 module:overlay(31) from:0x0210ca30 kind:load to:0x0211a6b8 module:overlay(31) from:0x0210ca34 kind:load to:0x0211a680 module:overlay(31) @@ -9377,7 +9377,7 @@ from:0x02117dac kind:load to:0x0209e21c module:overlay(0) from:0x02117db0 kind:load to:0x0218543d module:overlay(101) from:0x02117dbc kind:load to:0x02187c44 module:overlays(107,108,110) from:0x02117dc0 kind:load to:0x0209e87c module:overlay(0) -from:0x02117dc4 kind:load to:0x021854e8 module:overlays(101,102) +from:0x02117dc4 kind:load to:0x021854e8 module:overlay(102) from:0x02117dc8 kind:load to:0x021856a8 module:overlay(102) from:0x02117dcc kind:load to:0x020c1dc0 module:overlay(17) from:0x02117dd0 kind:load to:0x021856f0 module:overlay(102) diff --git a/config/jp/arm9/overlays/ov031/symbols.txt b/config/jp/arm9/overlays/ov031/symbols.txt index 8d31cd31..f565e2de 100644 --- a/config/jp/arm9/overlays/ov031/symbols.txt +++ b/config/jp/arm9/overlays/ov031/symbols.txt @@ -1,7 +1,7 @@ func_ov031_020da0c0 kind:function(arm,size=0x18) addr:0x020da0c0 -func_ov031_020da0d8 kind:function(arm,size=0x188) addr:0x020da0d8 -func_ov031_020da260 kind:function(arm,size=0x224) addr:0x020da260 -func_ov031_020da484 kind:function(arm,size=0x6c) addr:0x020da484 +_ZN21UnkStruct_027e0cd8_0C19func_ov031_020d8738Ev kind:function(arm,size=0x188) addr:0x020da0d8 +_ZN21UnkStruct_027e0cd8_0C19func_ov031_020d88c0Ev kind:function(arm,size=0x224) addr:0x020da260 +_ZN21UnkStruct_027e0cd8_0C19func_ov031_020d8ae4Ev kind:function(arm,size=0x6c) addr:0x020da484 func_ov031_020da4f0 kind:function(arm,size=0x168) addr:0x020da4f0 func_ov031_020da658 kind:function(arm,size=0x18) addr:0x020da658 func_ov031_020da670 kind:function(arm,size=0x28) addr:0x020da670 @@ -33,14 +33,14 @@ func_ov031_020dae70 kind:function(arm,size=0x54) addr:0x020dae70 func_ov031_020daec4 kind:function(arm,size=0x44) addr:0x020daec4 _ZN19func_ov031_020daf08D1Ev kind:function(arm,size=0x14) addr:0x020daf08 _ZN19func_ov031_020daf1cD0Ev kind:function(arm,size=0x1c) addr:0x020daf1c -func_ov031_020daf38 kind:function(thumb,size=0x1a) addr:0x020daf38 +_ZN27UnkStruct_ItemManager_20_0419func_ov031_020d9598Ev kind:function(thumb,size=0x1a) addr:0x020daf38 _ZN18UnkStruct_027e0d2c19func_ov031_020d95b4Ev kind:function(arm,size=0x14) addr:0x020daf54 _ZN18UnkStruct_027e0d2c19func_ov031_020d95c8E8ActorRef kind:function(arm,size=0x24) addr:0x020daf68 func_ov031_020daf8c kind:function(arm,size=0x30) addr:0x020daf8c func_ov031_020dafbc kind:function(arm,size=0x10) addr:0x020dafbc _ZN18UnkStruct_027e0d2c19func_ov031_020d962cEP7VecFx32iS1_P8ActorRef kind:function(arm,size=0x1c) addr:0x020dafcc func_ov031_020dafe8 kind:function(arm,size=0x10) addr:0x020dafe8 -func_ov031_020daff8 kind:function(thumb,size=0x1a) addr:0x020daff8 +_ZN27UnkStruct_ItemManager_20_0819func_ov031_020d9658Ev kind:function(thumb,size=0x1a) addr:0x020daff8 func_ov031_020db014 kind:function(arm,size=0x10) addr:0x020db014 _ZN18UnkStruct_027e0d3019func_ov031_020d9684EtP7VecFx32 kind:function(arm,size=0x10) addr:0x020db024 func_ov031_020db034 kind:function(arm,size=0x10) addr:0x020db034 @@ -99,9 +99,9 @@ func_ov031_020db538 kind:function(arm,size=0x10) addr:0x020db538 func_ov031_020db548 kind:function(thumb,size=0xc) addr:0x020db548 func_ov031_020db554 kind:function(thumb,size=0xc) addr:0x020db554 func_ov031_020db560 kind:function(arm,size=0x10) addr:0x020db560 -func_ov031_020db570 kind:function(thumb,size=0x1a) addr:0x020db570 -func_ov031_020db58c kind:function(arm,size=0x18) addr:0x020db58c -func_ov031_020db5a4 kind:function(arm,size=0x10) addr:0x020db5a4 +_ZN27UnkStruct_ItemManager_20_0019func_ov031_020d9bd0Ev kind:function(thumb,size=0x1a) addr:0x020db570 +_ZN18UnkStruct_027e0d3819func_ov031_020d9becEv kind:function(arm,size=0x18) addr:0x020db58c +_ZN18UnkStruct_027e0d3819func_ov031_020d9c04Eiii kind:function(arm,size=0x10) addr:0x020db5a4 func_ov031_020db5b4 kind:function(arm,size=0x20) addr:0x020db5b4 func_ov031_020db5d4 kind:function(arm,size=0x10) addr:0x020db5d4 _ZN18UnkStruct_027e0d3819func_ov031_020d9c44Ei kind:function(arm,size=0x10) addr:0x020db5e4 @@ -141,9 +141,9 @@ func_ov031_020dcac0 kind:function(arm,size=0x40) addr:0x020dcac0 func_ov031_020dcb00 kind:function(arm,size=0x30) addr:0x020dcb00 _ZN18PlayerActorBase_7419func_ov001_020db190Ev kind:function(arm,size=0x24) addr:0x020dcb30 func_ov031_020dcb54 kind:function(arm,size=0xfc) addr:0x020dcb54 -func_ov031_020dcc50 kind:function(arm,size=0x2c) addr:0x020dcc50 +_ZN27UnkStruct_ItemManager_20_1019func_ov031_020db2b0Ev kind:function(arm,size=0x2c) addr:0x020dcc50 func_ov031_020dcc7c kind:function(arm,size=0x5c) addr:0x020dcc7c -func_ov031_020dccd8 kind:function(arm,size=0x18) addr:0x020dccd8 +_ZN27UnkStruct_ItemManager_20_0419func_ov031_020db338Ev kind:function(arm,size=0x18) addr:0x020dccd8 func_ov031_020dccf0 kind:function(arm,size=0x24) addr:0x020dccf0 func_ov031_020dcd14 kind:function(arm,size=0x74) addr:0x020dcd14 func_ov031_020dcd88 kind:function(arm,size=0x18) addr:0x020dcd88 @@ -151,25 +151,25 @@ func_ov031_020dcda0 kind:function(arm,size=0x98) addr:0x020dcda0 func_ov031_020dce38 kind:function(arm,size=0x58) addr:0x020dce38 func_ov031_020dce90 kind:function(arm,size=0x38) addr:0x020dce90 func_ov031_020dcec8 kind:function(arm,size=0x8c) addr:0x020dcec8 -func_ov031_020dcf54 kind:function(arm,size=0x20) addr:0x020dcf54 +_ZN27UnkStruct_ItemManager_20_0819func_ov031_020db5b4Ev kind:function(arm,size=0x20) addr:0x020dcf54 func_ov031_020dcf74 kind:function(arm,size=0x14) addr:0x020dcf74 func_ov031_020dcf88 kind:function(arm,size=0x2c) addr:0x020dcf88 func_ov031_020dcfb4 kind:function(arm,size=0x90) addr:0x020dcfb4 func_ov031_020dd044 kind:function(arm,size=0x60) addr:0x020dd044 func_ov031_020dd0a4 kind:function(arm,size=0xbc) addr:0x020dd0a4 -func_ov031_020dd160 kind:function(thumb,size=0x16) addr:0x020dd160 +_ZN27UnkStruct_ItemManager_20_14C1Ev kind:function(thumb,size=0x16) addr:0x020dd160 _ZN27UnkStruct_ItemManager_20_1419func_ov031_020db7d8Ev kind:function(thumb,size=0x1a) addr:0x020dd178 func_ov031_020dd194 kind:function(arm,size=0x50) addr:0x020dd194 func_ov031_020dd1e4 kind:function(arm,size=0x30) addr:0x020dd1e4 _ZN24UnkStruct_ItemManager_2019func_ov031_020db874Ej kind:function(arm,size=0x58) addr:0x020dd214 _ZN24UnkStruct_ItemManager_2019func_ov031_020db8ccEv kind:function(arm,size=0x2c) addr:0x020dd26c _ZN24UnkStruct_ItemManager_2019func_ov031_020db8f8Ev kind:function(arm,size=0x44) addr:0x020dd298 -func_ov031_020dd2dc kind:function(thumb,size=0x12) addr:0x020dd2dc -func_ov031_020dd2f0 kind:function(thumb,size=0x2) addr:0x020dd2f0 -func_ov031_020dd2f4 kind:function(arm,size=0x4) addr:0x020dd2f4 +_ZN27UnkStruct_ItemManager_20_0CC1Ev kind:function(thumb,size=0x12) addr:0x020dd2dc +_ZN27UnkStruct_ItemManager_20_0CD1Ev kind:function(thumb,size=0x2) addr:0x020dd2f0 +_ZN27UnkStruct_ItemManager_20_0C19func_ov031_020db954Ev kind:function(arm,size=0x4) addr:0x020dd2f4 func_ov031_020dd2f8 kind:function(arm,size=0xe4) addr:0x020dd2f8 func_ov031_020dd3dc kind:function(arm,size=0x4) addr:0x020dd3dc -func_ov031_020dd3e0 kind:function(arm,size=0x34) addr:0x020dd3e0 +_ZN27UnkStruct_ItemManager_20_0019func_ov031_020dba40Ev kind:function(arm,size=0x34) addr:0x020dd3e0 func_ov031_020dd414 kind:function(arm,size=0x18) addr:0x020dd414 func_ov031_020dd42c kind:function(arm,size=0xac) addr:0x020dd42c func_ov031_020dd4d8 kind:function(arm,size=0x1c) addr:0x020dd4d8 @@ -202,8 +202,8 @@ func_ov031_020ddc9c kind:function(arm,size=0x88) addr:0x020ddc9c func_ov031_020ddd24 kind:function(arm,size=0x5c) addr:0x020ddd24 func_ov031_020ddd80 kind:function(arm,size=0x20) addr:0x020ddd80 func_ov031_020ddda0 kind:function(arm,size=0x14) addr:0x020ddda0 -func_ov031_020dddb4 kind:function(thumb,size=0x5c) addr:0x020dddb4 -func_ov031_020dde10 kind:function(thumb,size=0xe) addr:0x020dde10 +_ZN30UnkStruct_ItemManager_20_04_08C1Ev kind:function(thumb,size=0x5c) addr:0x020dddb4 +_ZN30UnkStruct_ItemManager_20_04_08D1Ev kind:function(thumb,size=0xe) addr:0x020dde10 func_ov031_020dde20 kind:function(arm,size=0x38) addr:0x020dde20 func_ov031_020dde58 kind:function(arm,size=0x248) addr:0x020dde58 func_ov031_020de0a0 kind:function(arm,size=0x1a0) addr:0x020de0a0 @@ -287,7 +287,7 @@ func_ov031_020e2258 kind:function(arm,size=0x1c) addr:0x020e2258 func_ov031_020e2274 kind:function(arm,size=0x50) addr:0x020e2274 func_ov031_020e22c4 kind:function(arm,size=0x30) addr:0x020e22c4 func_ov031_020e22f4 kind:function(arm,size=0x48) addr:0x020e22f4 -func_ov031_020e233c kind:function(arm,size=0x20) addr:0x020e233c +_ZN30UnkStruct_ItemManager_20_00_2019func_ov031_020e096cEv kind:function(arm,size=0x20) addr:0x020e233c func_ov031_020e235c kind:function(arm,size=0x60) addr:0x020e235c func_ov031_020e23bc kind:function(arm,size=0xe8) addr:0x020e23bc func_ov031_020e24a4 kind:function(arm,size=0x34) addr:0x020e24a4 @@ -299,7 +299,7 @@ func_ov031_020e266c kind:function(arm,size=0x54) addr:0x020e266c func_ov031_020e26c0 kind:function(arm,size=0xa8) addr:0x020e26c0 func_ov031_020e2768 kind:function(arm,size=0x198) addr:0x020e2768 func_ov031_020e2900 kind:function(arm,size=0x78) addr:0x020e2900 -func_ov031_020e2978 kind:function(arm,size=0x30) addr:0x020e2978 +_ZN30UnkStruct_ItemManager_20_00_08C1Ev kind:function(arm,size=0x30) addr:0x020e2978 func_ov031_020e29a8 kind:function(arm,size=0x50) addr:0x020e29a8 func_ov031_020e29f8 kind:function(arm,size=0x84) addr:0x020e29f8 func_ov031_020e2a7c kind:function(arm,size=0xa8) addr:0x020e2a7c @@ -2221,7 +2221,7 @@ data_ov031_0211474c kind:data(any) addr:0x0211474c data_ov031_0211475c kind:data(any) addr:0x0211475c data_ov031_02114774 kind:data(any) addr:0x02114774 data_ov031_0211478c kind:data(any) addr:0x0211478c -data_ov031_021147ac kind:data(any) addr:0x021147ac ambiguous +_ZTV21UnkStruct_027e0cd8_0C kind:data(any) addr:0x021147a4 ambiguous data_ov031_021147f0 kind:data(any) addr:0x021147f0 data_ov031_02114804 kind:data(any) addr:0x02114804 data_ov031_02114818 kind:data(any) addr:0x02114818 @@ -2233,7 +2233,7 @@ data_ov031_021148b8 kind:data(any) addr:0x021148b8 data_ov031_021148c4 kind:data(any) addr:0x021148c4 data_ov031_021148e0 kind:data(any) addr:0x021148e0 data_ov031_021148f4 kind:data(any) addr:0x021148f4 -data_ov031_02114900 kind:data(any) addr:0x02114900 ambiguous +_ZTV25UnkStruct_027e0ce0_40_108 kind:data(any) addr:0x021148f8 ambiguous data_ov031_0211490c kind:data(any) addr:0x0211490c data_ov031_02114918 kind:data(any) addr:0x02114918 _ZTV19data_ov031_02114924 kind:data(any) addr:0x02114924 @@ -2719,9 +2719,9 @@ data_ov031_0211a65c kind:bss addr:0x0211a65c data_ov031_0211a680 kind:bss addr:0x0211a680 data_ov031_0211a688 kind:bss addr:0x0211a688 data_ov031_0211a694 kind:bss addr:0x0211a694 -_ZGVN15ProfileInstanceI23MapObjectProfileUnkSANDE8sProfileE kind:bss addr:0x0211a6a0 -@31095 kind:bss addr:0x0211a6b8 -_ZN15ProfileInstanceI23MapObjectProfileUnkSANDE8sProfileE kind:bss addr:0x0211a770 +data_ov031_02118900 kind:bss addr:0x0211a6a0 +data_ov031_02118918 kind:bss addr:0x0211a6b8 +data_ov031_021189d0 kind:bss addr:0x0211a770 data_ov031_0211a844 kind:bss addr:0x0211a844 data_ov031_0211a868 kind:bss addr:0x0211a868 data_ov031_0211a88c kind:bss addr:0x0211a88c diff --git a/config/jp/arm9/overlays/ov093/symbols.txt b/config/jp/arm9/overlays/ov093/symbols.txt index 8bfb3d06..ac4b2d8a 100644 --- a/config/jp/arm9/overlays/ov093/symbols.txt +++ b/config/jp/arm9/overlays/ov093/symbols.txt @@ -94,9 +94,9 @@ func_ov093_0216a710 kind:function(arm,size=0xd0) addr:0x0216a710 func_ov093_0216a7e0 kind:function(arm,size=0x24) addr:0x0216a7e0 func_ov093_0216a804 kind:function(arm,size=0x78) addr:0x0216a804 func_ov093_0216a87c kind:function(arm,size=0x240) addr:0x0216a87c -func_ov093_0216aabc kind:function(thumb,size=0x1c) addr:0x0216aabc -func_ov093_0216aad8 kind:function(thumb,size=0x2) addr:0x0216aad8 -func_ov093_0216aadc kind:function(thumb,size=0x14) addr:0x0216aadc +_ZN25UnkStruct_027e0ce0_40_14CC1Ev kind:function(thumb,size=0x1c) addr:0x0216aabc +_ZN25UnkStruct_027e0ce0_40_14CD1Ev kind:function(thumb,size=0x2) addr:0x0216aad8 +_ZN25UnkStruct_027e0ce0_40_14C19func_ov093_02168850Ev kind:function(thumb,size=0x14) addr:0x0216aadc func_ov093_0216aaf0 kind:function(arm,size=0x184) addr:0x0216aaf0 func_ov093_0216ac74 kind:function(arm,size=0x43c) addr:0x0216ac74 func_ov093_0216b0b0 kind:function(arm,size=0x6c) addr:0x0216b0b0 @@ -164,11 +164,11 @@ func_ov093_0216ef64 kind:function(thumb,size=0x14) addr:0x0216ef64 func_ov093_0216ef78 kind:function(arm,size=0x94) addr:0x0216ef78 func_ov093_0216f00c kind:function(arm,size=0xa4) addr:0x0216f00c func_ov093_0216f0b0 kind:function(arm,size=0x3c) addr:0x0216f0b0 -func_ov093_0216f0ec kind:function(thumb,size=0x1bc) addr:0x0216f0ec -func_ov093_0216f2a8 kind:function(thumb,size=0xb6) addr:0x0216f2a8 -func_ov093_0216f360 kind:function(thumb,size=0x8c) addr:0x0216f360 -func_ov093_0216f3ec kind:function(thumb,size=0x6c) addr:0x0216f3ec -func_ov093_0216f458 kind:function(thumb,size=0x1cc) addr:0x0216f458 +_ZN25UnkStruct_027e0ce0_40_328C1EPvP21UnkStruct_027e0ce0_40P25UnkStruct_027e0ce0_40_150Pj kind:function(thumb,size=0x1bc) addr:0x0216f0ec +_ZN25UnkStruct_027e0ce0_40_328D1Ev kind:function(thumb,size=0xb6) addr:0x0216f2a8 +_ZN25UnkStruct_027e0ce0_40_32819func_ov093_0216d0d4Ev kind:function(thumb,size=0x8c) addr:0x0216f360 +_ZN25UnkStruct_027e0ce0_40_32819func_ov093_0216d160Ev kind:function(thumb,size=0x6c) addr:0x0216f3ec +_ZN25UnkStruct_027e0ce0_40_32819func_ov093_0216d1ccEiPK24UnkStruct_ov001_020c40f4bb kind:function(thumb,size=0x1cc) addr:0x0216f458 func_ov093_0216f624 kind:function(arm,size=0x64) addr:0x0216f624 func_ov093_0216f688 kind:function(arm,size=0x30) addr:0x0216f688 func_ov093_0216f6b8 kind:function(arm,size=0x14) addr:0x0216f6b8 diff --git a/config/jp/arm9/overlays/ov096/symbols.txt b/config/jp/arm9/overlays/ov096/symbols.txt index 1b4fc1d2..062116fb 100644 --- a/config/jp/arm9/overlays/ov096/symbols.txt +++ b/config/jp/arm9/overlays/ov096/symbols.txt @@ -1,11 +1,11 @@ _ZN9Inventory19func_ov096_02179b20Ev kind:function(arm,size=0x9c) addr:0x0217bde0 func_ov096_0217be7c kind:function(thumb,size=0x20) addr:0x0217be7c func_ov096_0217be9c kind:function(thumb,size=0x20) addr:0x0217be9c -func_ov096_0217bebc kind:function(thumb,size=0xc) addr:0x0217bebc +_ZN25UnkStruct_027e0ce0_40_150C1Ev kind:function(thumb,size=0xc) addr:0x0217bebc func_ov096_0217bec8 kind:function(thumb,size=0xc) addr:0x0217bec8 func_ov096_0217bed4 kind:function(thumb,size=0x2c) addr:0x0217bed4 func_ov096_0217bf00 kind:function(thumb,size=0x14) addr:0x0217bf00 -func_ov096_0217bf14 kind:function(thumb,size=0x118) addr:0x0217bf14 +_ZN25UnkStruct_027e0ce0_40_15019func_ov096_02179c54Ebb kind:function(thumb,size=0x118) addr:0x0217bf14 func_ov096_0217c02c kind:function(arm,size=0x36c) addr:0x0217c02c func_ov096_0217c398 kind:function(arm,size=0x168) addr:0x0217c398 _ZN19func_ov096_0217c500D1Ev kind:function(arm,size=0x14) addr:0x0217c500 diff --git a/config/jp/arm9/overlays/ov101/delinks.txt b/config/jp/arm9/overlays/ov101/delinks.txt index 2d184116..14aa1bd3 100644 --- a/config/jp/arm9/overlays/ov101/delinks.txt +++ b/config/jp/arm9/overlays/ov101/delinks.txt @@ -3,3 +3,32 @@ .ctor start:0x02185468 end:0x0218546c kind:rodata align:4 .data start:0x02185480 end:0x02185580 kind:data align:32 .bss start:0x02185580 end:0x02185580 kind:bss align:32 + +src/101_SceneInitLand/Item/ItemManager_101.cpp: + complete + .text start:0x021847a0 end:0x0218498c + +src/101_SceneInitLand/UnkStruct_027e0ce0_40_101.cpp: + complete + .text start:0x0218498c end:0x02184e04 + .data start:0x02185480 end:0x0218548c + +src/101_SceneInitLand/Player/PlayerLinkActor_A0_1C_101.cpp: + complete + .text start:0x02184e04 end:0x02184e58 + +src/101_SceneInitLand/UnkStruct_027e09a4_54_101.cpp: + complete + .text start:0x02184e58 end:0x02185000 + .data start:0x0218548c end:0x02185538 + +src/101_SceneInitLand/UnkStruct_027e0cd8_0C_101.cpp: + .text start:0x02185000 end:0x0218543c + .data start:0x02185538 end:0x02185548 + +src/101_SceneInitLand/MapObjectProfile_Derived6_101.cpp: + complete + .text start:0x0218543c end:0x02185450 + .init start:0x02185450 end:0x02185468 + .ctor start:0x02185468 end:0x0218546c + .data start:0x02185548 end:0x02185580 diff --git a/config/jp/arm9/overlays/ov101/relocs.txt b/config/jp/arm9/overlays/ov101/relocs.txt index a503c625..bce8c06e 100644 --- a/config/jp/arm9/overlays/ov101/relocs.txt +++ b/config/jp/arm9/overlays/ov101/relocs.txt @@ -55,8 +55,8 @@ from:0x02184a26 kind:thumb_call to:0x020be1e4 module:overlay(1) from:0x02184a38 kind:thumb_call_arm to:0x02011f3c module:main from:0x02184a48 kind:thumb_call to:0x0216f0ec module:overlay(93) from:0x02184ab2 kind:thumb_call to:0x020be3a8 module:overlay(1) -from:0x02184ac8 kind:load to:0x02185488 module:overlay(101) -from:0x02184acc kind:load to:0x02114900 module:overlay(31) +from:0x02184ac8 kind:load to:0x02185480 module:overlay(101) add:0x8 +from:0x02184acc kind:load to:0x021148f8 module:overlay(31) add:0x8 from:0x02184ad0 kind:load to:0x020453b0 module:main from:0x02184ad4 kind:load to:0x027e09a4 module:dtcm from:0x02184af0 kind:thumb_call to:0x0216f2a8 module:overlay(93) @@ -84,7 +84,7 @@ from:0x02184e50 kind:load to:0x027e0ce4 module:dtcm from:0x02184e5c kind:thumb_call to:0x020b8578 module:overlay(1) from:0x02184e72 kind:thumb_call_arm to:0x02011ff4 module:main from:0x02184e80 kind:thumb_call_arm to:0x02011f3c module:main -from:0x02184ea4 kind:load to:0x02185494 module:overlay(101) +from:0x02184ea4 kind:load to:0x0218548c module:overlay(101) add:0x8 from:0x02184eae kind:thumb_call to:0x020b875c module:overlay(1) from:0x02184eb8 kind:thumb_call_arm to:0x02071954 module:overlay(0) from:0x02184ed2 kind:thumb_call_arm to:0x0205a76c module:overlay(0) @@ -119,14 +119,14 @@ from:0x02184fe4 kind:thumb_call to:0x020b86cc module:overlay(1) from:0x02184ff0 kind:thumb_call to:0x020b86cc module:overlay(1) from:0x02184ff6 kind:thumb_call_arm to:0x02011ff4 module:main from:0x02185004 kind:thumb_call to:0x020b9a20 module:overlay(1) -from:0x02185064 kind:load to:0x021147ac module:overlay(31) +from:0x02185064 kind:load to:0x021147a4 module:overlay(31) add:0x8 from:0x02185094 kind:thumb_call to:0x02015414 module:main from:0x021850a8 kind:thumb_call to:0x02015414 module:main from:0x021850ae kind:thumb_call_arm to:0x02011ff4 module:main from:0x021850f0 kind:thumb_call to:0x02058cfc module:overlay(0) from:0x021850f6 kind:thumb_call_arm to:0x02011ff4 module:main from:0x02185132 kind:thumb_call to:0x020b9d70 module:overlay(1) -from:0x0218513c kind:load to:0x021147ac module:overlay(31) +from:0x0218513c kind:load to:0x021147a4 module:overlay(31) add:0x8 from:0x0218516c kind:thumb_call to:0x02015414 module:main from:0x02185180 kind:thumb_call to:0x02015414 module:main from:0x02185186 kind:thumb_call_arm to:0x02011ff4 module:main @@ -134,7 +134,7 @@ from:0x021851c8 kind:thumb_call to:0x02058cfc module:overlay(0) from:0x021851ce kind:thumb_call_arm to:0x02011ff4 module:main from:0x0218520a kind:thumb_call to:0x020b9d70 module:overlay(1) from:0x02185210 kind:thumb_call_arm to:0x02011ff4 module:main -from:0x0218521c kind:load to:0x021147ac module:overlay(31) +from:0x0218521c kind:load to:0x021147a4 module:overlay(31) add:0x8 from:0x02185226 kind:thumb_call to:0x020b9e08 module:overlay(1) from:0x0218522e kind:thumb_call to:0x020ba4c0 module:overlay(1) from:0x02185238 kind:thumb_call_arm to:0x0202a190 module:main @@ -155,7 +155,7 @@ from:0x021852e4 kind:load to:0x027e09a4 module:dtcm from:0x021852e8 kind:load to:0x027e09b8 module:dtcm from:0x021852ec kind:load to:0x0204b608 module:main from:0x021852fc kind:thumb_call to:0x02185320 module:overlay(101) -from:0x0218530c kind:load to:0x02185540 module:overlay(101) +from:0x0218530c kind:load to:0x02185538 module:overlay(101) add:0x8 from:0x02185318 kind:thumb_call_arm to:0x02011ff4 module:main from:0x02185330 kind:thumb_call to:0x02185404 module:overlay(101) from:0x0218534e kind:thumb_call_arm to:0x01ffd400 module:itcm diff --git a/config/jp/arm9/overlays/ov101/symbols.txt b/config/jp/arm9/overlays/ov101/symbols.txt index 45534281..a73c2b59 100644 --- a/config/jp/arm9/overlays/ov101/symbols.txt +++ b/config/jp/arm9/overlays/ov101/symbols.txt @@ -1,51 +1,51 @@ -func_ov101_021847a0 kind:function(thumb,size=0x16) addr:0x021847a0 -func_ov101_021847b8 kind:function(thumb,size=0xe) addr:0x021847b8 +_ZN27UnkStruct_ItemManager_20_04C1Ev kind:function(thumb,size=0x16) addr:0x021847a0 +_ZN27UnkStruct_ItemManager_20_04D1Ev kind:function(thumb,size=0xe) addr:0x021847b8 _ZN24UnkStruct_ItemManager_20C1Ev kind:function(thumb,size=0xb8) addr:0x021847c8 _ZN24UnkStruct_ItemManager_20D1Ev kind:function(thumb,size=0x5a) addr:0x02184880 _ZN24UnkStruct_ItemManager_2019func_ov101_02182d5cEv kind:function(thumb,size=0x2c) addr:0x021848dc -func_ov101_02184908 kind:function(thumb,size=0x20) addr:0x02184908 -func_ov101_02184928 kind:function(thumb,size=0x20) addr:0x02184928 -func_ov101_02184948 kind:function(thumb,size=0x20) addr:0x02184948 -func_ov101_02184968 kind:function(thumb,size=0xc) addr:0x02184968 -func_ov101_02184974 kind:function(thumb,size=0xc) addr:0x02184974 -func_ov101_02184980 kind:function(thumb,size=0xc) addr:0x02184980 -_ZN21UnkStruct_027e0ce0_40C1EbP21UnkStruct_027e0ce0_20PPiP11ItemManager kind:function(thumb,size=0x154) addr:0x0218498c +_ZN18UnkStruct_027e0d307DestroyEv kind:function(thumb,size=0x20) addr:0x02184908 +_ZN18UnkStruct_027e0d2c7DestroyEv kind:function(thumb,size=0x20) addr:0x02184928 +_ZN18UnkStruct_027e0d387DestroyEv kind:function(thumb,size=0x20) addr:0x02184948 +_ZN8InstanceI18UnkStruct_027e0d30ED2Ev kind:function(thumb,size=0xc) addr:0x02184968 +_ZN8InstanceI18UnkStruct_027e0d2cED2Ev kind:function(thumb,size=0xc) addr:0x02184974 +_ZN8InstanceI18UnkStruct_027e0d38ED2Ev kind:function(thumb,size=0xc) addr:0x02184980 +_ZN21UnkStruct_027e0ce0_40C1EbP21UnkStruct_027e0ce0_20PjP11ItemManager kind:function(thumb,size=0x154) addr:0x0218498c _ZN21UnkStruct_027e0ce0_40D1Ev kind:function(thumb,size=0x54) addr:0x02184ae0 _ZN21UnkStruct_027e0ce0_4019func_ov101_02182fb4Eb kind:function(thumb,size=0x50) addr:0x02184b34 _ZN21UnkStruct_027e0ce0_4019func_ov101_02183004Ev kind:function(thumb,size=0x1e) addr:0x02184b84 _ZN21UnkStruct_027e0ce0_4019func_ov101_02183024EPK24UnkStruct_ov001_020c40f4S2_iiP11ItemManagerP21UnkStruct_027e0ce0_30bb kind:function(thumb,size=0x260) addr:0x02184ba4 -func_ov101_02184e04 kind:function(thumb,size=0xc) addr:0x02184e04 +_ZN21PlayerLinkActor_A0_1CC1Ei kind:function(thumb,size=0xc) addr:0x02184e04 _ZN21PlayerLinkActor_A0_1C19func_ov101_02183290Ev kind:function(thumb,size=0x48) addr:0x02184e10 -func_ov101_02184e58 kind:function(thumb,size=0x50) addr:0x02184e58 -func_ov101_02184ea8 kind:function(thumb,size=0x134) addr:0x02184ea8 -func_ov101_02184fdc kind:function(thumb,size=0x2) addr:0x02184fdc -func_ov101_02184fe0 kind:function(thumb,size=0xc) addr:0x02184fe0 -func_ov101_02184fec kind:function(thumb,size=0x12) addr:0x02184fec +_ZN30UnkStruct_027e09a4_54_Derived1C2EPi kind:function(thumb,size=0x50) addr:0x02184e58 +_ZN30UnkStruct_027e09a4_54_Derived18vfunc_0CEv kind:function(thumb,size=0x134) addr:0x02184ea8 +_ZN30UnkStruct_027e09a4_54_Derived18vfunc_10EP26UnkStruct_StackTitleScreen kind:function(thumb,size=0x2) addr:0x02184fdc +_ZN30UnkStruct_027e09a4_54_Derived1D1Ev kind:function(thumb,size=0xc) addr:0x02184fe0 +_ZN30UnkStruct_027e09a4_54_Derived1D0Ev kind:function(thumb,size=0x12) addr:0x02184fec _ZN21UnkStruct_027e0cd8_0CC1EP18UnkStruct_027e0cd8 kind:function(thumb,size=0x68) addr:0x02185000 -func_ov101_02185068 kind:function(thumb,size=0xd8) addr:0x02185068 -func_ov101_02185140 kind:function(thumb,size=0xe0) addr:0x02185140 -func_ov101_02185220 kind:function(thumb,size=0xd0) addr:0x02185220 -func_ov101_021852f0 kind:function(thumb,size=0x12) addr:0x021852f0 -func_ov101_02185304 kind:function(thumb,size=0xc) addr:0x02185304 -func_ov101_02185310 kind:function(thumb,size=0x2) addr:0x02185310 -_ZN19func_ov101_02185314D0Ev kind:function(thumb,size=0xc) addr:0x02185314 -func_ov101_02185320 kind:function(thumb,size=0xe4) addr:0x02185320 -func_ov101_02185404 kind:function(thumb,size=0x38) addr:0x02185404 -func_ov101_0218543c kind:function(thumb,size=0x14) addr:0x0218543c -__sinit_ov101_02185450 kind:function(thumb,size=0x18) addr:0x02185450 -.p__sinit_ov101_02185450 kind:data(word) addr:0x02185468 -data_ov101_02185488 kind:data(any) addr:0x02185488 -data_ov101_02185494 kind:data(any) addr:0x02185494 -data_ov101_021854a8 kind:data(any) addr:0x021854a8 -data_ov101_021854bc kind:data(any) addr:0x021854bc -data_ov101_021854cc kind:data(any) addr:0x021854cc -data_ov101_021854d8 kind:data(any) addr:0x021854d8 -data_ov101_021854e8 kind:data(any) addr:0x021854e8 -data_ov101_021854f8 kind:data(any) addr:0x021854f8 -data_ov101_02185508 kind:data(any) addr:0x02185508 -data_ov101_02185510 kind:data(any) addr:0x02185510 -data_ov101_02185518 kind:data(any) addr:0x02185518 -data_ov101_0218552c kind:data(any) addr:0x0218552c -data_ov101_02185540 kind:data(any) addr:0x02185540 -data_ov101_02185548 kind:data(any) addr:0x02185548 -data_ov101_0218555c kind:data(any) addr:0x0218555c ambiguous +_ZN21UnkStruct_027e0cd8_0CD1Ev kind:function(thumb,size=0xd8) addr:0x02185068 +_ZN21UnkStruct_027e0cd8_0CD0Ev kind:function(thumb,size=0xe0) addr:0x02185140 +_ZN21UnkStruct_027e0cd8_0C8vfunc_38Ev kind:function(thumb,size=0xd0) addr:0x02185220 +_ZN21UnkStruct_027e0cd8_0C8vfunc_08Ev kind:function(thumb,size=0x12) addr:0x021852f0 +_ZN25UnkStruct_027e0cd8_0C_1D0C1Ev kind:function(thumb,size=0xc) addr:0x02185304 +_ZN25UnkStruct_027e0cd8_0C_1D0D1Ev kind:function(thumb,size=0x2) addr:0x02185310 +_ZN25UnkStruct_027e0cd8_0C_1D0D0Ev kind:function(thumb,size=0xc) addr:0x02185314 +_ZN25UnkStruct_027e0cd8_0C_1D019func_ov101_021837a0Ev kind:function(thumb,size=0xe4) addr:0x02185320 +_Z19func_ov101_02183884iii kind:function(thumb,size=0x38) addr:0x02185404 +_ZN25MapObjectProfile_Derived68vfunc_10Ev kind:function(thumb,size=0x14) addr:0x0218543c +__sinit_MapObjectProfile_Derived6_101.cpp kind:function(thumb,size=0x18) addr:0x02185450 local +.p__sinit_MapObjectProfile_Derived6_101.cpp kind:data(word) addr:0x02185468 local +_ZTV30UnkStruct_027e0ce0_40_108_Base kind:data(any) addr:0x02185480 +_ZTV30UnkStruct_027e09a4_54_Derived1 kind:data(any) addr:0x0218548c +@0 kind:data(byte[0x11]) addr:0x021854a8 local +@1 kind:data(byte[0xf]) addr:0x021854bc local +@2 kind:data(byte[0xb]) addr:0x021854cc local +@3 kind:data(byte[0xd]) addr:0x021854d8 local +@4 kind:data(byte[0xd]) addr:0x021854e8 local +@5 kind:data(byte[0xd]) addr:0x021854f8 local +@6 kind:data(byte[0x8]) addr:0x02185508 local +@7 kind:data(byte[0x7]) addr:0x02185510 local +@8 kind:data(byte[0x12]) addr:0x02185518 local +@9 kind:data(byte[0xc]) addr:0x0218552c local +_ZTV25UnkStruct_027e0cd8_0C_1D0 kind:data(any) addr:0x02185538 +data_ov101_021839c8 kind:data(any) addr:0x02185548 local +_ZTV25MapObjectProfile_Derived6 kind:data(byte[0x1c]) addr:0x02185554 diff --git a/include/Item/Item.hpp b/include/Item/Item.hpp index c58c753a..076c20d0 100644 --- a/include/Item/Item.hpp +++ b/include/Item/Item.hpp @@ -27,6 +27,7 @@ typedef u32 ItemFlag; typedef u16 ItemFlag_u16; enum ItemFlag_ { ItemFlag_None = -1, + ItemFlag_Nothing = 0, ItemFlag_Whirlwind = FLAG(0, 0), ItemFlag_Boomerang = FLAG(0, 1), ItemFlag_Whip = FLAG(0, 2), diff --git a/include/Item/ItemManager.hpp b/include/Item/ItemManager.hpp index e248d08f..12ecfb01 100644 --- a/include/Item/ItemManager.hpp +++ b/include/Item/ItemManager.hpp @@ -4,6 +4,7 @@ #include "Save/AdventureFlags.hpp" #include "System/SysNew.hpp" #include "Unknown/UnkStruct_027e09a4.hpp" +#include "Unknown/UnkSystem1.hpp" #include "global.h" #include "types.h" @@ -19,25 +20,183 @@ struct UnkStruct_ov000_020afc48 { /* 20 */ }; -class UnkStruct_ItemManager_20_14 { +class UnkStruct_ItemManager_20_00_08 { public: - /* 00 (vtable) */ + /* 00 */ unk32 mUnk_00; + /* 04 */ unk32 mUnk_04; + /* 08 */ bool mUnk_08; + /* 09 */ bool mUnk_09; + /* 0A */ unk16 mUnk_0A; + /* 0C */ unk32 mUnk_0C; + /* 10 */ unk16 mUnk_10; + /* 12 */ unk16 mUnk_12; + /* 14 */ + + UnkStruct_ItemManager_20_00_08(); +}; + +class UnkStruct_ItemManager_20_00_20 { +public: + /* 00 */ unk32 mUnk_00; + + // overlay 31 + void func_ov031_020e096c(); +}; + +class UnkStruct_ItemManager_20_00 { +public: + /* 00 */ unk32 mUnk_00; + /* 04 */ unk32 mUnk_04; + /* 08 */ UnkStruct_ItemManager_20_00_08 mUnk_08; + /* 1C */ unk32 mUnk_1C; + /* 20 */ UnkStruct_ItemManager_20_00_20 mUnk_20; + /* 24 */ STRUCT_PAD(0x24, 0x2C); + /* 2C */ unk16 mUnk_2C; + /* 2E */ unk16 mUnk_2E; // pad? + /* 30 */ + + UnkStruct_ItemManager_20_00() : + mUnk_00(0), + mUnk_04(0), + mUnk_2C(0) { + this->mUnk_20.func_ov031_020e096c(); + this->func_ov031_020dba40(); + } + + // overlay 31 + void func_ov031_020d9bd0(); + void func_ov031_020dba40(); +}; + +class UnkStruct_ItemManager_20_04_08_310 { +public: + /* 00 */ unk32 mUnk_00; /* 04 */ unk32 mUnk_04; /* 08 */ unk32 mUnk_08; + /* 0C */ bool mUnk_0C; + /* 0D */ STRUCT_PAD(0x0D, 0x10); + /* 10 */ - /* 00 */ virtual void vfunc_00(); //! TODO: name symbol func_ov000_020667d8 - /* 04 */ virtual void vfunc_04(); //! TODO: name symbol func_ov000_020667f4 - /* 08 */ virtual void vfunc_08(); //! TODO: name symbol func_ov000_020673c8 - /* 0C */ virtual void vfunc_0C(); //! TODO: name symbol func_ov000_02067434 - /* 10 */ virtual void vfunc_10(); //! TODO: name symbol func_ov000_02067474 - /* 14 */ virtual void vfunc_14(); //! TODO: name symbol func_ov000_02066dfc - /* 18 */ virtual void vfunc_18(); //! TODO: name symbol func_ov000_020669d8 - /* 1C */ virtual void vfunc_1C(); //! TODO: name symbol func_ov000_02067234 - /* 20 */ virtual void vfunc_20(); //! TODO: name symbol func_ov000_0206723c - /* 24 */ virtual ~UnkStruct_ItemManager_20_14(); //! TODO: name symbols func_ov000_020672ac, func_ov000_020672f4 + UnkStruct_ItemManager_20_04_08_310(); //! TODO: params +}; + +class UnkStruct_ItemManager_20_04_08 : public LinkList { +public: + /* 000 (vtable) */ + /* 004 (base) */ + /* 00C */ unk32 mUnk_00C; + /* 010 */ STRUCT_PAD(0x10, 0x310); + /* 310 */ UnkStruct_ItemManager_20_04_08_310 mUnk_310; + /* 320 */ unk32 mUnk_320; + /* 324 */ unk16 mUnk_324; + /* 326 */ bool mUnk_326; + /* 327 */ bool mUnk_327; + /* 328 */ unk32 mUnk_328; + /* 32C */ STRUCT_PAD(0x32C, 0x3CC); + /* 3CC */ void *mUnk_3CC; + /* 3D0 */ unk32 mUnk_3D0; + /* 3D4 */ + + UnkStruct_ItemManager_20_04_08(); + ~UnkStruct_ItemManager_20_04_08(); + + // data_ov031_02112b6c + /* 00 */ virtual void vfunc_00(); + /* 04 */ +}; + +class UnkStruct_ItemManager_20_04 { +public: + /* 000 */ unk32 mUnk_000; + /* 004 */ bool mUnk_004; + /* 005 */ unk8 mUnk_005; // pad? + /* 006 */ unk8 mUnk_006; // pad? + /* 007 */ unk8 mUnk_007; // pad? + /* 008 */ UnkStruct_ItemManager_20_04_08 mUnk_008; + /* 3DC */ + + UnkStruct_ItemManager_20_04(); + ~UnkStruct_ItemManager_20_04(); + + // overlay 31 + void func_ov031_020d9598(); + void func_ov031_020db338(); +}; + +class UnkStruct_ItemManager_20_08 { +public: + /* 00 */ unk16 mUnk_00; + /* 02 */ unk16 mUnk_02; + /* 04 */ unk32 mUnk_04; + /* 08 */ unk32 mUnk_08; + /* 0C */ unk32 mUnk_0C; + /* 10 */ unk16 mUnk_10; + /* 12 */ bool mUnk_12; + /* 13 */ bool mUnk_13; + /* 14 */ + + UnkStruct_ItemManager_20_08() { + this->mUnk_10 = 0; + this->mUnk_00 = 0; + this->mUnk_02 = 0x01; + this->func_ov031_020db5b4(); + } + + // overlay 31 + void func_ov031_020d9658(); + void func_ov031_020db5b4(); +}; + +class UnkStruct_ItemManager_20_0C { +public: + /* 00 */ unk32 mUnk_00; + /* 04 */ unk8 mUnk_04; + /* 05 */ unk8 mUnk_05; + /* 06 */ unk8 mUnk_06; + /* 07 */ unk8 mUnk_07; + /* 08 */ unk16 mUnk_08; + /* 0A */ unk16 mUnk_0A; // pad? + /* 0C */ + + UnkStruct_ItemManager_20_0C(); + ~UnkStruct_ItemManager_20_0C(); + + // overlay 31 + void func_ov031_020db954(); +}; + +struct UnkStruct_ItemManager_20_10_00 { + /* 00 */ unk32 unk_00; + /* 04 */ + + UnkStruct_ItemManager_20_10_00() : + unk_00(0) {} +}; + +class UnkStruct_ItemManager_20_10 { +public: + /* 00 */ UnkStruct_ItemManager_20_10_00 mUnk_00[3]; + + UnkStruct_ItemManager_20_10() { + this->func_ov031_020db2b0(); + } + + // overlay 31 + void func_ov031_020db2b0(); +}; + +class UnkStruct_ItemManager_20_14 { +public: + /* 00 */ UnkSystem1_ov000_Derived1 mUnk_00; + /* 14 */ unk32 mUnk_14; + /* 18 */ UnkStruct_ItemManager_20_14(); + ~UnkStruct_ItemManager_20_14() { + this->func_ov031_020db7d8(); + } + // overlay 31 void func_ov031_020db7d8(); @@ -47,13 +206,12 @@ public: class UnkStruct_ItemManager_20 { public: - /* 00 */ unk32 mUnk_00; - /* 04 */ unk32 mUnk_04; - /* 08 */ unk32 mUnk_08; - /* 0C */ unk32 mUnk_0C; - /* 10 */ unk32 mUnk_10; + /* 00 */ UnkStruct_ItemManager_20_00 *mUnk_00; + /* 04 */ UnkStruct_ItemManager_20_04 *mUnk_04; + /* 08 */ UnkStruct_ItemManager_20_08 *mUnk_08; + /* 0C */ UnkStruct_ItemManager_20_0C *mUnk_0C; + /* 10 */ UnkStruct_ItemManager_20_10 *mUnk_10; /* 14 */ UnkStruct_ItemManager_20_14 mUnk_14; - /* 20 */ STRUCT_PAD(0x20, 0x2C); /* 2C */ UnkStruct_ItemManager_20(); @@ -224,10 +382,10 @@ public: bool func_ov000_020a8a0c(); void func_ov000_020a8a5c(); bool func_ov000_020a8a74(); - unk32 func_ov000_020a8a90(); - unk32 func_ov000_020a8aa4(); - unk32 func_ov000_020a8ab8(); - unk32 func_ov000_020a8acc(); + UnkStruct_ItemManager_20_00 *func_ov000_020a8a90(); + UnkStruct_ItemManager_20_04 *func_ov000_020a8aa4(); + UnkStruct_ItemManager_20_0C *func_ov000_020a8ab8(); + UnkStruct_ItemManager_20_10 *func_ov000_020a8acc(); static UnkStruct_ov000_020afc48 *func_ov000_020a8974(ItemFlag itemFlag); static ItemFlag GetEquippedItemFlag(ItemId itemId); diff --git a/include/MapObject/MapObjectProfile.hpp b/include/MapObject/MapObjectProfile.hpp index e282a018..7c751904 100644 --- a/include/MapObject/MapObjectProfile.hpp +++ b/include/MapObject/MapObjectProfile.hpp @@ -115,4 +115,13 @@ class MapObjectProfile_Derived4 : public MapObjectProfile_Derived2 { /* 0C */ virtual void vfunc_0C() override; }; +class MapObjectProfile_Derived6 : public MapObjectProfile_Derived2 { +public: + MapObjectProfile_Derived6(MapObjectId mapObjId1, MapObjectId mapObjId2) : + MapObjectProfile_Derived2(mapObjId1, mapObjId2) {} + ~MapObjectProfile_Derived6(); + + /* 0C */ virtual void vfunc_10() override; +}; + typedef MapObjectProfile *(*GetMapObjectProfile)(); diff --git a/include/MapObject/MapObjectUnkSAND.hpp b/include/MapObject/MapObjectUnkSAND.hpp index 7c1b4739..8fcc759a 100644 --- a/include/MapObject/MapObjectUnkSAND.hpp +++ b/include/MapObject/MapObjectUnkSAND.hpp @@ -33,14 +33,15 @@ public: void func_ov031_0210b34c(void); }; -class MapObjectProfileUnkSAND : public MapObjectProfile { +class MapObjectProfileUnkSAND : public MapObjectProfile_Derived6 { public: /* 00 (base) */ MapObjectProfileUnkSAND(); ~MapObjectProfileUnkSAND(); - /* 0C */ virtual MapObject *Create(); + /* 00 */ virtual MapObject *Create(); + /* 10 */ virtual void vfunc_10() override; static MapObjectProfileUnkSAND *GetProfile(); }; diff --git a/include/Player/PlayerActorBase.hpp b/include/Player/PlayerActorBase.hpp index 10677117..63df1e20 100644 --- a/include/Player/PlayerActorBase.hpp +++ b/include/Player/PlayerActorBase.hpp @@ -10,6 +10,8 @@ #include class Actor_C4; +class UnkStruct_027e0ce0_40_328; +class ItemManager; struct ActorGrabParams; extern "C" void func_ov000_0205d500(ActorGrabParams *, unk32, unk32); @@ -412,7 +414,7 @@ public: /* 004 */ STRUCT_PAD(0x04, 0x34); /* 034 */ PlayerLinkActor_9C_34 mUnk_34; /* 004 */ STRUCT_PAD(0x50, 0xF4); - /* 0F4 */ unk32 mUnk_0F4; + /* 0F4 */ UnkStruct_027e0ce0_40_328 *mUnk_0F4; /* 0F8 */ STRUCT_PAD(0xF8, 0x154); /* 154 */ @@ -440,7 +442,7 @@ public: /* 48 */ PlayerCharacter mCharacter; /* 4C */ unk32 mUnk_4C; /* 50 */ ActorGrabParams mUnk_50; - /* 54 */ unk32 mUnk_54; + /* 54 */ ItemManager *mUnk_54; /* 58 */ UnkStruct_027e0ce0_40 *mUnk_58; /* 5C */ PlayerActorBase_5C mUnk_5C; /* 70 */ PlayerActorBase_70 *mUnk_70; @@ -451,7 +453,7 @@ public: /* 90 */ PlayerLinkActor_9C *mUnk_90; /* 94 */ - PlayerActorBase(PlayerCharacter character, unk32 param2, unk32 param3, UnkStruct_027e0ce0_40 *param4); + PlayerActorBase(PlayerCharacter character, unk32 param2, ItemManager *pItemMgr, UnkStruct_027e0ce0_40 *param4); ~PlayerActorBase(); // overlay 0 diff --git a/include/Player/PlayerLink.hpp b/include/Player/PlayerLink.hpp index 8b4bc6e9..8cd60123 100644 --- a/include/Player/PlayerLink.hpp +++ b/include/Player/PlayerLink.hpp @@ -3,7 +3,10 @@ #include "Player/PlayerActorBase.hpp" class UnkStruct_027e0ce0_40; +class UnkStruct_027e0ce0_40_328; +class UnkStruct_027e0ce0_40_150; class PlayerLinkActor_A0_38; +class ItemManager; class PlayerLinkActor_A0_04 { public: @@ -44,6 +47,13 @@ public: class PlayerLinkActor_A0_1C { public: /* 00 */ unk32 mUnk_00; + /* 04 */ unk16 mUnk_04; + /* 06 */ bool mUnk_06; + /* 07 */ STRUCT_PAD(0x07, 0x0C); + /* 0C */ ActorRef mUnk_0C; + /* 10 */ + + PlayerLinkActor_A0_1C(unk32 param1); // overlay 101 void func_ov101_02183290(); @@ -176,7 +186,8 @@ public: /* 90 */ unk32 mUnk_90; /* 94 */ - PlayerLinkActor_A0(unk32 param1, UnkStruct_027e0ce0_40 *param2, PlayerActorBase *pPlayer, PlayerLinkActor_9C *param4); + PlayerLinkActor_A0(ItemManager *pItemMgr, UnkStruct_027e0ce0_40 *param2, PlayerActorBase *pPlayer, + PlayerLinkActor_9C *param4); ~PlayerLinkActor_A0(); // overlay 0 @@ -241,8 +252,8 @@ public: class PlayerLinkActor : public PlayerActorBase { public: /* 000 (base) */ - /* 094 */ bool *mUnk_094; - /* 098 */ unk32 mUnk_098; + /* 094 */ UnkStruct_027e0ce0_40_150 *mUnk_094; + /* 098 */ UnkStruct_027e0ce0_40_328 *mUnk_098; /* 09C */ PlayerLinkActor_9C *mUnk_09C; /* 0A0 */ PlayerLinkActor_A0 *mUnk_0A0; /* 0A4 */ PlayerLinkActor_A4 mUnk_0A4; @@ -261,11 +272,11 @@ public: /* 1B0 */ PlayerLinkActor_1B0 mUnk_1B0[3]; /* 1D4 */ - PlayerLinkActor(unk32 param1, unk32 param2, UnkStruct_027e0ce0_40 *param3, bool *param4); + PlayerLinkActor(unk32 param1, ItemManager *param2, UnkStruct_027e0ce0_40 *param3, UnkStruct_027e0ce0_40_150 *param4); ~PlayerLinkActor(); // overlay 1 - void func_ov001_020bcb60(unk32 param1); + void func_ov001_020bcb60(UnkStruct_027e0ce0_40_328 *param1); void func_ov001_020bcb70(); void func_ov001_020bcba8(); void func_ov001_020bcbd0(VecFx32 *pVec); diff --git a/include/Unknown/UnkStruct_027e09a4.hpp b/include/Unknown/UnkStruct_027e09a4.hpp index 19dff354..dcdad8b9 100644 --- a/include/Unknown/UnkStruct_027e09a4.hpp +++ b/include/Unknown/UnkStruct_027e09a4.hpp @@ -14,6 +14,7 @@ struct GameSaveSlot; class UnkStruct_027e09a4; +class UnkStruct_StackTitleScreen; #define ROOM_INDEX_NONE 0xFF @@ -98,6 +99,19 @@ struct EntranceInfo { EntranceInfo(const EntranceInfo &refSource) { MI_CpuCopy32((void *) &refSource, this, sizeof(EntranceInfo)); } + + EntranceInfo(s32 sceneIndex, unk32 param2, unk16 param3, u8 roomIndex, u8 spawnIndex, bool isCS, u8 param7) { + this->sceneIndex = sceneIndex; + this->unk_04 = param2; + this->unk_08 = param3; + this->roomIndex = roomIndex; + this->spawnIndex = spawnIndex; + this->isCS = isCS; + this->unk_0D = param7; + this->csIndex = CutsceneIndex_None; + this->unk_0F = 0; + this->unk_10 = 0; + } }; class UnkStruct_WarpUnk1_24 : public UnkStruct_0204a060_Base3 { @@ -162,9 +176,14 @@ struct UnkStruct_027e09a4_2C { class UnkStruct_027e09a4_54_04 { public: - /* 00 */ STRUCT_PAD(0x00, 0x10); + /* 00 */ unk32 mUnk_00; + /* 04 */ unk32 mUnk_04; + /* 08 */ unk32 mUnk_08; + /* 0C */ unk32 mUnk_0C; /* 10 */ + UnkStruct_027e09a4_54_04() : + mUnk_00(-1) {} ~UnkStruct_027e09a4_54_04() {} }; @@ -190,7 +209,20 @@ public: void func_ov001_020b7048(); }; -class UnkStruct_027e09a4_54_Type1 : public UnkStruct_027e09a4_54_Base { +class UnkStruct_027e09a4_54_Derived1 : public UnkStruct_027e09a4_54_Base { +public: + /* 00 (base) */ + /* 34 */ + + UnkStruct_027e09a4_54_Derived1(unk32 *param1); + + // data_ov101_02183914 + /* 0C */ virtual void vfunc_0C() override; + /* 10 */ virtual void vfunc_10(UnkStruct_StackTitleScreen *param1); + /* 14 */ +}; + +class UnkStruct_027e09a4_54_Type1 : public UnkStruct_027e09a4_54_Derived1 { public: UnkStruct_027e09a4_54_Type1(UnkStruct_027e09a4 *param1); }; @@ -205,12 +237,12 @@ public: UnkStruct_027e09a4_54_Type3(UnkStruct_027e09a4 *param1); }; -class UnkStruct_027e09a4_54_Type4 : public UnkStruct_027e09a4_54_Base { +class UnkStruct_027e09a4_54_Type4 : public UnkStruct_027e09a4_54_Derived1 { public: UnkStruct_027e09a4_54_Type4(UnkStruct_027e09a4 *param1); }; -class UnkStruct_027e09a4_54_Type5 : public UnkStruct_027e09a4_54_Base { +class UnkStruct_027e09a4_54_Type5 : public UnkStruct_027e09a4_54_Derived1 { public: UnkStruct_027e09a4_54_Type5(UnkStruct_027e09a4 *param1); }; @@ -248,11 +280,17 @@ public: return this->mUnk_00.sceneIndex <= SceneIndex_t_eviltrain3 && this->mUnk_00.sceneIndex >= SceneIndex_t_eviltrain; } + const bool IsBossByrne() const { return this->mUnk_00.sceneIndex == SceneIndex_b_deago; } const bool IsDungeonTower() const { return this->mUnk_00.sceneIndex == SceneIndex_d_main; } - const bool IsPirate() const { return this->mUnk_00.sceneIndex == SceneIndex_f_pirate; } + const bool IsTowerOutsideStairs() const { return this->mUnk_00.sceneIndex == SceneIndex_d_main_s; } + const bool IsTowerInsideStairs() const { return this->mUnk_00.sceneIndex == SceneIndex_d_main_w; } const bool IsWater3() const { return this->mUnk_00.sceneIndex == SceneIndex_f_water3; } const bool IsSnowdriftStation() const { return this->mUnk_00.sceneIndex == SceneIndex_f_kakushi1; } + const bool IsPirate() const { return this->mUnk_00.sceneIndex == SceneIndex_f_pirate; } const bool IsPassenger() const { return this->mUnk_00.sceneIndex == SceneIndex_f_passenger; } + const bool IsHyruleCastle() const { return this->mUnk_00.sceneIndex == SceneIndex_f_hyral; } + const bool IsCastleTown() const { return this->mUnk_00.sceneIndex == SceneIndex_f_htown; } + const BOOL IsCastleOrTown() const { return this->IsHyruleCastle() || this->IsCastleTown(); } const bool IsSceneModeAdventure() const { return this->mSceneMode == SceneMode_AdventureMode; } const bool IsSceneModeBattle() const { return this->mSceneMode == SceneMode_BattleMode; } diff --git a/include/Unknown/UnkStruct_027e0cd8.hpp b/include/Unknown/UnkStruct_027e0cd8.hpp index 76d83a04..1cb7f45e 100644 --- a/include/Unknown/UnkStruct_027e0cd8.hpp +++ b/include/Unknown/UnkStruct_027e0cd8.hpp @@ -11,6 +11,7 @@ #include "Unknown/Common.hpp" #include "Unknown/UnkFileSystem.hpp" #include "Unknown/UnkStruct_027e09a4.hpp" +#include "profile.hpp" #include #include @@ -52,7 +53,7 @@ public: class UnkStruct_ov001_020c40f4 { public: /* 00 */ VecFx32 mUnk_00; - /* 0C */ unk16 mUnk_0C; + /* 0C */ s16 mUnk_0C; /* 0E */ u8 mUnk_0E; /* 0F */ u8 mUnk_0F; /* 10 */ unk32 mUnk_10; @@ -85,6 +86,8 @@ public: class UnkStruct_027e0cd8_0C_160 { public: + /* 00 */ UnkSystem3 mUnk_00; + bool func_ov026_02106aa8(); }; @@ -274,7 +277,7 @@ public: void func_ov001_020b8aec(); void func_ov001_020b8b94(ZMBEntryARAB *pARAB); void func_ov001_020b8c30(const EntranceInfo ¶m1); - void *func_ov001_020b8c80(unk32 param1); + const EntranceInfo *func_ov001_020b8c80(unk32 param1); void func_ov001_020b8c90(ZMBSectionCMPT *pCMPT); void func_ov001_020b8c98(ZMBSectionCAME *pCAME); void func_ov001_020b8db8(); @@ -282,27 +285,43 @@ public: void func_ov001_020b8e54(); }; +class UnkStruct_027e0cd8_0C_1D0 { +public: + /* 00 (vtable) */ + /* 04 */ + + UnkStruct_027e0cd8_0C_1D0(); + + /* ?? */ virtual ~UnkStruct_027e0cd8_0C_1D0(); + + // overlay 101 + void func_ov101_021837a0(); +}; + class UnkStruct_027e0cd8_0C : public UnkStruct_027e0cd8_0C_Base { public: /* 000 (base) */ - /* 160 */ UnkStruct_027e0cd8_0C_160 *mUnk_160; - /* 164 */ STRUCT_PAD(0x164, 0x1E0); + /* 160 */ UnkStruct_027e0cd8_0C_160 *mUnk_160[4]; + /* 170 */ ModelRender_UnkSystem1 *mUnk_170[4][5]; + /* 1C0 */ void *mUnk_1C0[4]; + /* 1D0 */ UnkStruct_027e0cd8_0C_1D0 *mUnk_1D0; + /* 1D4 */ unk32 mUnk_1D4; + /* 1D8 */ unk32 mUnk_1D8; + /* 1DC */ bool mUnk_1DC; + /* 1DD */ bool mUnk_1DD; /* 1E0 */ UnkStruct_027e0cd8_0C(UnkStruct_027e0cd8 *param1); // data_ov031_02112a0c /* 00 */ virtual ~UnkStruct_027e0cd8_0C() override; - /* 08 */ virtual void vfunc_08() override; - /* 0C */ virtual void vfunc_0C() override; - /* 10 */ virtual void vfunc_10() override; - /* 14 */ virtual void vfunc_14() override; - /* 18 */ virtual void vfunc_18() override; - /* 1C */ virtual void vfunc_1C(const EntranceInfo *param1, bool param2, bool param3) override; - /* 20 */ virtual void vfunc_20() override; - /* 24 */ virtual void vfunc_24() override; - /* 28 */ virtual fx32 vfunc_28(VecFx32 *param1, unk32 param2, unk32 param3) override; - /* 2C */ virtual void vfunc_2C() override; + /* 08 */ virtual void vfunc_08(); + /* 38 */ virtual void vfunc_38(); + + // overlay 31 + void func_ov031_020d8738(); + void func_ov031_020d88c0(); + void func_ov031_020d8ae4(); }; class UnkStruct_027e0cd8_0C_Derived2 : public UnkStruct_027e0cd8_0C_Base { diff --git a/include/Unknown/UnkStruct_027e0ce0.hpp b/include/Unknown/UnkStruct_027e0ce0.hpp index 6ecb3315..40907866 100644 --- a/include/Unknown/UnkStruct_027e0ce0.hpp +++ b/include/Unknown/UnkStruct_027e0ce0.hpp @@ -623,10 +623,10 @@ class UnkStruct_027e0ce0_40_108_Base : public LinkListSetPrev(NULL); + this->mUnk_0C = 0; } // data_ov101_02183908 @@ -636,34 +636,58 @@ public: class UnkStruct_027e0ce0_40_108 : public UnkStruct_027e0ce0_40_108_Base { public: /* 00 (base) */ - /* 0C */ STRUCT_PAD(0x0C, 0x40); - /* 40 */ + /* 10 */ unk32 mUnk_10; + /* 14 */ STRUCT_PAD(0x14, 0x40); + /* 40 */ void *mUnk_40; + /* 44 */ - UnkStruct_027e0ce0_40_108() {} + UnkStruct_027e0ce0_40_108() : + mUnk_40(&this->mUnk_10) {} // data_ov031_02112b60 /* 00 */ virtual void vfunc_00() override; }; class UnkStruct_027e0ce0_40_14C { +public: /* 00 */ STRUCT_PAD(0x00, 0x94); /* 94 */ UnkStruct_027e0ce0_40_14C(); + ~UnkStruct_027e0ce0_40_14C(); + + // overlay 93 + void func_ov093_02168850(); }; class UnkStruct_027e0ce0_40_150 { - /* 00 */ STRUCT_PAD(0x00, 0x0C); +public: + /* 00 */ bool mUnk_00; + /* 01 */ bool mUnk_01; + /* 02 */ STRUCT_PAD(0x02, 0x0C); /* 0C */ UnkStruct_027e0ce0_40_150(); + + // overlay 96 + bool func_ov096_02179c54(bool param1, bool param2); }; class UnkStruct_027e0ce0_40_328 { - /* 000 */ STRUCT_PAD(0x00, 0x154); +public: + /* 000 */ STRUCT_PAD(0x00, 0x98); + /* 098 */ PlayerActorBase *mpPlayer; + /* 09C */ STRUCT_PAD(0x9C, 0x154); /* 154 */ - UnkStruct_027e0ce0_40_328(); + UnkStruct_027e0ce0_40_328(void *param1, UnkStruct_027e0ce0_40 *param2, UnkStruct_027e0ce0_40_150 *param3, + ItemFlag *pEquippedItem); + ~UnkStruct_027e0ce0_40_328(); + + // overlay 93 + void func_ov093_0216d0d4(); + void func_ov093_0216d160(); + void func_ov093_0216d1cc(unk32 param1, const UnkStruct_ov001_020c40f4 *param2, bool param3, bool param4); }; // land player stuff @@ -671,7 +695,6 @@ class UnkStruct_027e0ce0_40 : public UnkStruct_027e0ce0_40_Base { public: /* 000 (base) */ /* 108 */ UnkStruct_027e0ce0_40_108 mUnk_108; - /* 148 */ void *mUnk_148; /* 14C */ UnkStruct_027e0ce0_40_14C *mUnk_14C; /* 150 */ UnkStruct_027e0ce0_40_150 *mUnk_150; /* 154 */ PlayerLinkActor mPlayer; @@ -679,15 +702,18 @@ public: /* 32C */ PlayerLinkActor *mpPlayer; // set to mPlayer /* 330 */ UnkStruct_027e0ce0_40_328 *mUnk_330; // set to mUnk_328 /* 334 */ ItemFlag mEquippedItem; - /* 338 */ bool mIsSceneTowerInteriorStairs; - /* 339 */ bool mIsSceneTowerExteriorStairs; + /* 338 */ bool mIsSceneTowerInsideStairs; + /* 339 */ bool mIsSceneTowerOutsideStairs; /* 33A */ bool mIsSceneBossByrne; - /* 33B */ unk8 mUnk_33B; + /* 33B */ bool mUnk_33B; /* 33C */ - UnkStruct_027e0ce0_40(bool param1, UnkStruct_027e0ce0_20 *param2, unk32 **param3, ItemManager *pItemMgr); + UnkStruct_027e0ce0_40(bool param1, UnkStruct_027e0ce0_20 *param2, ItemFlag *pEquippedItem, ItemManager *pItemMgr); ~UnkStruct_027e0ce0_40(); + // overlay 0 + void func_ov000_02088060(bool param1); + // overlay 101 bool func_ov101_02182fb4(bool param1); void func_ov101_02183004(); @@ -716,7 +742,7 @@ class UnkStruct_027e0ce0 : public AutoInstance, public UnkSt public: /* 02 */ bool mUnk_02; /* 03 */ bool mUnk_03; - /* 04 */ unk32 *mUnk_04; + /* 04 */ ItemFlag mEquippedItem; /* 08 */ bool mUnk_08; /* 0C */ UnkStruct_027e0ce0_0C mUnk_0C; /* 1C */ UnkStruct_027e0ce0_1C *mUnk_1C; diff --git a/include/Unknown/UnkStruct_027e0d2c.hpp b/include/Unknown/UnkStruct_027e0d2c.hpp index f4d51940..8936f08f 100644 --- a/include/Unknown/UnkStruct_027e0d2c.hpp +++ b/include/Unknown/UnkStruct_027e0d2c.hpp @@ -10,6 +10,9 @@ public: void func_ov031_020d95b4(); void func_ov031_020d95c8(ActorRef param1); bool func_ov031_020d962c(VecFx32 *param1, unk32 param2, VecFx32 *param3, ActorRef *param4); + + // overlay 101 + static void Destroy(); }; extern UnkStruct_027e0d2c *data_027e0d2c; diff --git a/include/Unknown/UnkStruct_027e0d30.hpp b/include/Unknown/UnkStruct_027e0d30.hpp index ea721a8d..f53e9087 100644 --- a/include/Unknown/UnkStruct_027e0d30.hpp +++ b/include/Unknown/UnkStruct_027e0d30.hpp @@ -3,9 +3,13 @@ #include #include -class UnkStruct_027e0d30 { +class UnkStruct_027e0d30 : public AutoInstance { public: + // overlay 31 void func_ov031_020d9684(u16 param1, VecFx32 *param2); + + // overlay 101 + static void Destroy(); }; extern UnkStruct_027e0d30 *data_027e0d30; diff --git a/include/Unknown/UnkStruct_027e0d38.hpp b/include/Unknown/UnkStruct_027e0d38.hpp index 0ca0d5cf..46825219 100644 --- a/include/Unknown/UnkStruct_027e0d38.hpp +++ b/include/Unknown/UnkStruct_027e0d38.hpp @@ -3,16 +3,19 @@ #include "global.h" #include "types.h" -class UnkStruct_027e0d38 { +class UnkStruct_027e0d38 : public AutoInstance { public: /* 00 */ unk32 mUnk_00; UnkStruct_027e0d38(); - ~UnkStruct_027e0d38(); + // overlay 31 bool func_ov031_020d9bec(); bool func_ov031_020d9c04(unk32 param1, unk32 param2, unk32 param3); void func_ov031_020d9c44(unk32 param1); + + // overlay 101 + static void Destroy(); }; extern UnkStruct_027e0d38 *data_027e0d38; diff --git a/include/Unknown/UnkSystem1.hpp b/include/Unknown/UnkSystem1.hpp index 4fb26aad..02cc4671 100644 --- a/include/Unknown/UnkSystem1.hpp +++ b/include/Unknown/UnkSystem1.hpp @@ -1,11 +1,12 @@ #pragma once #include "Message/BMG.hpp" -#include "Save/SaveManager.hpp" #include "System/SysNew.hpp" #include "global.h" #include "types.h" +struct SaveFile; + struct UnkStruct5 { unk8 mUnk_00; u8 mUnk_01; diff --git a/libs/nitro/include/nitro/math.h b/libs/nitro/include/nitro/math.h index 01166021..e2f21905 100644 --- a/libs/nitro/include/nitro/math.h +++ b/libs/nitro/include/nitro/math.h @@ -200,6 +200,10 @@ static inline void VecFx32_Init(fx32 x, fx32 y, fx32 z, VecFx32 *dst) { dst->z = z; } +static inline BOOL VecFx32_IsEqual(const VecFx32 *a, const VecFx32 *b) { + return a->x == b->x && a->y == b->y && a->z == b->z; +} + void Mat2p_InitIdentity(Mat2p *m); void Mat2p_InitRotation(Mat2p *m, fx32 sin, fx32 cos); void Mat2p_Multiply(Mat2p *a, Mat2p *b, Mat2p *out); diff --git a/src/000_Second/Item/ItemManager.cpp b/src/000_Second/Item/ItemManager.cpp index f71e7b5f..35871007 100644 --- a/src/000_Second/Item/ItemManager.cpp +++ b/src/000_Second/Item/ItemManager.cpp @@ -221,7 +221,7 @@ THUMB_END bool ItemManager::func_ov000_020a89d4() { if (this->mUnk_20 != NULL) { - return (this->mUnk_20->mUnk_14.mUnk_08 & 0xFFFF) != 0xFFFF; + return (this->mUnk_20->mUnk_14.mUnk_00.mUnk_08 & 0xFFFF) != 0xFFFF; } return false; @@ -253,18 +253,18 @@ bool ItemManager::func_ov000_020a8a74() { return this->mUnk_20->func_ov031_020db8f8(); } -unk32 ItemManager::func_ov000_020a8a90() { - return this->mUnk_20 != NULL ? this->mUnk_20->mUnk_00 : 0; +UnkStruct_ItemManager_20_00 *ItemManager::func_ov000_020a8a90() { + return this->mUnk_20 != NULL ? this->mUnk_20->mUnk_00 : NULL; } -unk32 ItemManager::func_ov000_020a8aa4() { - return this->mUnk_20 != NULL ? this->mUnk_20->mUnk_04 : 0; +UnkStruct_ItemManager_20_04 *ItemManager::func_ov000_020a8aa4() { + return this->mUnk_20 != NULL ? this->mUnk_20->mUnk_04 : NULL; } -unk32 ItemManager::func_ov000_020a8ab8() { - return this->mUnk_20 != NULL ? this->mUnk_20->mUnk_0C : 0; +UnkStruct_ItemManager_20_0C *ItemManager::func_ov000_020a8ab8() { + return this->mUnk_20 != NULL ? this->mUnk_20->mUnk_0C : NULL; } -unk32 ItemManager::func_ov000_020a8acc() { - return this->mUnk_20 != NULL ? this->mUnk_20->mUnk_10 : 0; +UnkStruct_ItemManager_20_10 *ItemManager::func_ov000_020a8acc() { + return this->mUnk_20 != NULL ? this->mUnk_20->mUnk_10 : NULL; } diff --git a/src/001_SceneInit/Player/PlayerActorBase_001.cpp b/src/001_SceneInit/Player/PlayerActorBase_001.cpp index 7678db91..1efb3afc 100644 --- a/src/001_SceneInit/Player/PlayerActorBase_001.cpp +++ b/src/001_SceneInit/Player/PlayerActorBase_001.cpp @@ -38,7 +38,8 @@ ModelRender_Derived4::ModelRender_Derived4(PlayerCharacter character, unk32 para this->func_ov000_0208c058(this->mUnk_7C[1]); } -PlayerActorBase::PlayerActorBase(PlayerCharacter character, unk32 param2, unk32 param3, UnkStruct_027e0ce0_40 *param4) : +PlayerActorBase::PlayerActorBase(PlayerCharacter character, unk32 param2, ItemManager *pItemMgr, + UnkStruct_027e0ce0_40 *param4) : mPos(0, 0, 0), mPrevPos(0, 0, 0), mVel(0, 0, 0), @@ -52,7 +53,7 @@ PlayerActorBase::PlayerActorBase(PlayerCharacter character, unk32 param2, unk32 mCharacter(character), mUnk_4C(param2), mUnk_50(param2, this->mUnk_44), - mUnk_54(param3), + mUnk_54(pItemMgr), mUnk_58(param4) { this->mUnk_5C.mUnk_04 = 0; this->mUnk_5C.mUnk_10 = &this->mUnk_5C.mUnk_08; diff --git a/src/001_SceneInit/Player/PlayerLinkActor_001.cpp b/src/001_SceneInit/Player/PlayerLinkActor_001.cpp index a25cc9de..eda28cea 100644 --- a/src/001_SceneInit/Player/PlayerLinkActor_001.cpp +++ b/src/001_SceneInit/Player/PlayerLinkActor_001.cpp @@ -5,12 +5,13 @@ #include "Unknown/UnkStruct_027e0cd8.hpp" #include "Unknown/UnkStruct_027e0d34.hpp" -PlayerLinkActor::PlayerLinkActor(unk32 param1, unk32 param2, UnkStruct_027e0ce0_40 *param3, bool *param4) : - PlayerActorBase(PlayerCharacter_Link, param1, param2, param3), +PlayerLinkActor::PlayerLinkActor(unk32 param1, ItemManager *pItemMgr, UnkStruct_027e0ce0_40 *param3, + UnkStruct_027e0ce0_40_150 *param4) : + PlayerActorBase(PlayerCharacter_Link, param1, pItemMgr, param3), mUnk_094(param4), mUnk_098(0), mUnk_09C(new(HeapIndex_1) PlayerLinkActor_9C(param3, *(u32 *) &this->mUnk_50, this->mCharacter)), - mUnk_0A0(new(HeapIndex_1) PlayerLinkActor_A0(param2, param3, this, this->mUnk_09C)), + mUnk_0A0(new(HeapIndex_1) PlayerLinkActor_A0(pItemMgr, param3, this, this->mUnk_09C)), mUnk_0A4(this, this->mUnk_0A0), mUnk_0B0(-1), mUnk_0B4(false), @@ -45,7 +46,7 @@ PlayerLinkActor::~PlayerLinkActor() { delete this->mUnk_09C; } -void PlayerLinkActor::func_ov001_020bcb60(unk32 param1) { +void PlayerLinkActor::func_ov001_020bcb60(UnkStruct_027e0ce0_40_328 *param1) { this->mUnk_098 = param1; this->mUnk_09C->mUnk_0F4 = param1; } @@ -79,8 +80,8 @@ void PlayerLinkActor::func_ov001_020bcbd0(VecFx32 *pVec) { this->mUnk_0A0->func_ov000_0209378c()); bool uVar1 = false; - if (this->mUnk_094 != 0) { - uVar1 = *this->mUnk_094; + if (this->mUnk_094 != NULL) { + uVar1 = this->mUnk_094->mUnk_00; } this->mUnk_0A0->func_ov001_020bd388(uVar1, this->mUnk_0B6); diff --git a/src/001_SceneInit/UnkStruct_027e0cd8_0C_001.cpp b/src/001_SceneInit/UnkStruct_027e0cd8_0C_001.cpp index 51ee60f5..dd483eb4 100644 --- a/src/001_SceneInit/UnkStruct_027e0cd8_0C_001.cpp +++ b/src/001_SceneInit/UnkStruct_027e0cd8_0C_001.cpp @@ -24,39 +24,11 @@ extern int data_ov089_02171540; static UnkStruct_ov001_020c40f4 data_ov001_020c40f4[0x40]; -struct UnkStruct_ov001_020c2a40 { - /* 00 */ unk32 unk_00; - /* 04 */ unk32 unk_04; - /* 08 */ unk16 unk_08; - /* 0A */ u8 unk_0A; - /* 0B */ u8 unk_0B; - /* 0C */ u8 unk_0C; - /* 0D */ u8 unk_0D; - /* 0E */ u8 unk_0E; - /* 0F */ u8 unk_0F; - /* 10 */ u8 unk_10; - /* 11 */ STRUCT_PAD(0x11, 0x14); // pad? - /* 14 */ - - UnkStruct_ov001_020c2a40(unk32 param1, unk32 param2, unk16 param3, unk8 param4, unk8 param5, unk8 param6, unk8 param7) { - this->unk_00 = param1; - this->unk_04 = param2; - this->unk_08 = param3; - this->unk_0A = param4; - this->unk_0B = param5; - this->unk_0C = param6; - this->unk_0D = param7; - this->unk_0E = 0x2B; - this->unk_0F = 0; - this->unk_10 = 0; - } -}; - -static const UnkStruct_ov001_020c2a40 data_ov001_020c2a40[] = { - UnkStruct_ov001_020c2a40(0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C), - UnkStruct_ov001_020c2a40(0x29, 0x00, 0x00, 0x0B, 0x01, 0x00, 0x3D), - UnkStruct_ov001_020c2a40(0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E), - UnkStruct_ov001_020c2a40(0x04, 0x00, 0x00, 0x00, 0xFA, 0x00, 0x3F), +static const EntranceInfo data_ov001_020c2a40[] = { + EntranceInfo(SceneIndex_f_bridge, 0x00, 0x00, 0, 0, false, 0x3C), + EntranceInfo(SceneIndex_f_htown, 0x00, 0x00, 11, 1, false, 0x3D), + EntranceInfo(SceneIndex_f_tetsuo, 0x00, 0x00, 0, 0, false, 0x3E), + EntranceInfo(SceneIndex_t_area0, 0x00, 0x00, 0, 0xFA, false, 0x3F), }; // https://decomp.me/scratch/JcRNn @@ -356,8 +328,8 @@ void UnkStruct_027e0cd8_0C_Base::func_ov001_020b8c30(const EntranceInfo ¶m1) this->mUnk_154.push_back(param1); } -void *UnkStruct_027e0cd8_0C_Base::func_ov001_020b8c80(unk32 param1) { - return (void *) &data_ov001_020c2a40[param1 - 0x3C]; +const EntranceInfo *UnkStruct_027e0cd8_0C_Base::func_ov001_020b8c80(unk32 param1) { + return &data_ov001_020c2a40[param1 - 0x3C]; } void UnkStruct_027e0cd8_0C_Base::func_ov001_020b8c90(ZMBSectionCMPT *pCMPT) { diff --git a/src/001_SceneInit/UnkStruct_027e0ce0_001.cpp b/src/001_SceneInit/UnkStruct_027e0ce0_001.cpp index 71463bd1..e4b95eab 100644 --- a/src/001_SceneInit/UnkStruct_027e0ce0_001.cpp +++ b/src/001_SceneInit/UnkStruct_027e0ce0_001.cpp @@ -37,7 +37,7 @@ UnkStruct_027e0ce0 *UnkStruct_027e0ce0::Create() { UnkStruct_027e0ce0::UnkStruct_027e0ce0() : mUnk_02(false), mUnk_03(false), - mUnk_04(NULL), + mEquippedItem(ItemFlag_Nothing), mUnk_08(false), mUnk_0C(this), mUnk_1C(new(HeapIndex_1) UnkStruct_027e0ce0_1C()), @@ -100,9 +100,9 @@ void UnkStruct_027e0ce0::func_ov001_020bc524(bool param1) { this->mUnk_24->func_ov021_020eaa08(this->mUnk_20); } else { if (data_027e09a4->IsTrain()) { - this->mUnk_03 = false; - this->mUnk_04 = NULL; - this->mUnk_38 = &data_027e0478.train; + this->mUnk_03 = false; + this->mEquippedItem = ItemFlag_Nothing; + this->mUnk_38 = &data_027e0478.train; new(this->mUnk_38) UnkStruct_027e0ce0_38(0); this->mUnk_38->func_ov026_020dc8f0(); } else { @@ -111,7 +111,7 @@ void UnkStruct_027e0ce0::func_ov001_020bc524(bool param1) { this->func_ov000_0208a2c4(0x0C, 0); } - this->mUnk_04 = NULL; + this->mEquippedItem = ItemFlag_Nothing; } else if (this->mHealth == 0) { this->func_ov000_0208a2c4(0x01, 0); } @@ -120,7 +120,7 @@ void UnkStruct_027e0ce0::func_ov001_020bc524(bool param1) { this->mUnk_3C = new(HeapIndex_1) UnkStruct_027e0ce0_3C(); } else { this->mUnk_40 = &data_027e0478.land; - new(this->mUnk_40) UnkStruct_027e0ce0_40(param1, this->mUnk_20, &this->mUnk_04, this->mUnk_28); + new(this->mUnk_40) UnkStruct_027e0ce0_40(param1, this->mUnk_20, &this->mEquippedItem, this->mUnk_28); uVar3 = this->mUnk_40; } } diff --git a/src/017_CourseExec/CargoManager_017.cpp b/src/017_CourseExec/CargoManager_017.cpp index 1574a7e3..ab3a001f 100644 --- a/src/017_CourseExec/CargoManager_017.cpp +++ b/src/017_CourseExec/CargoManager_017.cpp @@ -173,7 +173,7 @@ void CargoManager::RemoveAmount(unk32 decr) { bool CargoManager::func_ov017_020bec9c() { if (data_027e09a4->IsTrain()) { - return data_027e0cd8->GetUnk0C()->mUnk_160->func_ov026_02106aa8(); + return data_027e0cd8->GetUnk0C()->mUnk_160[0]->func_ov026_02106aa8(); } return false; diff --git a/src/031_Land/MapObject/MapObjectUnkSAND.cpp b/src/031_Land/MapObject/MapObjectUnkSAND.cpp index ea013be0..fb1fb493 100644 --- a/src/031_Land/MapObject/MapObjectUnkSAND.cpp +++ b/src/031_Land/MapObject/MapObjectUnkSAND.cpp @@ -10,9 +10,7 @@ MapObject *MapObjectProfileUnkSAND::Create() { } MapObjectProfileUnkSAND::MapObjectProfileUnkSAND() : - MapObjectProfile(MapObjectId_SAND) {} - -MapObjectUnkSAND::MapObjectUnkSAND() {} + MapObjectProfile_Derived6(MapObjectId_SAND, MapObjectId_SAND) {} void MapObjectUnkSAND::func_ov031_0210acd4(void) {} void MapObjectUnkSAND::func_ov031_0210ad64(void) {} diff --git a/src/101_SceneInitLand/Item/ItemManager_101.cpp b/src/101_SceneInitLand/Item/ItemManager_101.cpp new file mode 100644 index 00000000..83f1b4a2 --- /dev/null +++ b/src/101_SceneInitLand/Item/ItemManager_101.cpp @@ -0,0 +1,68 @@ +#include "Item/ItemManager.hpp" +#include "System/SysNew.hpp" +#include "Unknown/UnkStruct_027e0d2c.hpp" +#include "Unknown/UnkStruct_027e0d30.hpp" +#include "Unknown/UnkStruct_027e0d38.hpp" + +UnkStruct_ItemManager_20_04::UnkStruct_ItemManager_20_04() : + mUnk_000(0), + mUnk_004(false) {} + +UnkStruct_ItemManager_20_04::~UnkStruct_ItemManager_20_04() {} + +UnkStruct_ItemManager_20::UnkStruct_ItemManager_20() : + mUnk_00(new(HeapIndex_1) UnkStruct_ItemManager_20_00()), + mUnk_04(new(HeapIndex_1) UnkStruct_ItemManager_20_04()), + mUnk_08(new(HeapIndex_1) UnkStruct_ItemManager_20_08()), + mUnk_0C(new(HeapIndex_1) UnkStruct_ItemManager_20_0C()), + mUnk_10(new(HeapIndex_1) UnkStruct_ItemManager_20_10()) { + this->mUnk_00->func_ov031_020d9bd0(); + this->mUnk_04->func_ov031_020d9598(); + this->mUnk_08->func_ov031_020d9658(); +} + +UnkStruct_ItemManager_20::~UnkStruct_ItemManager_20() { + UnkStruct_027e0d30::Destroy(); + UnkStruct_027e0d2c::Destroy(); + UnkStruct_027e0d38::Destroy(); + delete this->mUnk_10; + delete this->mUnk_0C; + delete this->mUnk_08; + delete this->mUnk_04; + delete this->mUnk_00; +} + +void UnkStruct_ItemManager_20::func_ov101_02182d5c() { + this->mUnk_00->func_ov031_020dba40(); + this->mUnk_04->func_ov031_020db338(); + + UnkStruct_ItemManager_20_08 *pUnk_08 = this->mUnk_08; + pUnk_08->mUnk_00 = 0; + pUnk_08->mUnk_02 = 1; + pUnk_08->func_ov031_020db5b4(); + + this->mUnk_0C->func_ov031_020db954(); + this->mUnk_10->func_ov031_020db2b0(); +} + +void UnkStruct_027e0d30::Destroy() { + if (data_027e0d30 != NULL) { + delete data_027e0d30; + } +} + +void UnkStruct_027e0d2c::Destroy() { + if (data_027e0d2c != NULL) { + delete data_027e0d2c; + } +} + +void UnkStruct_027e0d38::Destroy() { + if (data_027e0d38 != NULL) { + delete data_027e0d38; + } +} + +DECL_INSTANCE_DTOR(UnkStruct_027e0d30, data_027e0d30); +DECL_INSTANCE_DTOR(UnkStruct_027e0d2c, data_027e0d2c); +DECL_INSTANCE_DTOR(UnkStruct_027e0d38, data_027e0d38); diff --git a/src/101_SceneInitLand/MapObjectProfile_Derived6_101.cpp b/src/101_SceneInitLand/MapObjectProfile_Derived6_101.cpp new file mode 100644 index 00000000..22c5d043 --- /dev/null +++ b/src/101_SceneInitLand/MapObjectProfile_Derived6_101.cpp @@ -0,0 +1,23 @@ +#include "MapObject/MapObjectProfile.hpp" +#include "Unknown/UnkStruct_027e09c0.hpp" + +extern UnkStruct_027e09c0_04 data_ov031_02118900; + +// probably not here but this is unused +struct UnkStruct_ov101_021839c8 { + /* 00 */ unk32 mUnk_00; + /* 00 */ unk32 mUnk_04; + /* 00 */ unk32 mUnk_08; + + UnkStruct_ov101_021839c8() { + this->mUnk_04 = 0x10002; + this->mUnk_00 = 0x10006; + this->mUnk_08 = 0x10009; + } +}; +static const UnkStruct_ov101_021839c8 data_ov101_021839c8; + +void MapObjectProfile_Derived6::vfunc_10() { + this->MapObjectProfile_Derived2::vfunc_10(); + data_ov031_02118900.func_ov000_0207f4d4(); +} diff --git a/src/101_SceneInitLand/Player/PlayerLinkActor_A0_1C_101.cpp b/src/101_SceneInitLand/Player/PlayerLinkActor_A0_1C_101.cpp new file mode 100644 index 00000000..eb2f88cc --- /dev/null +++ b/src/101_SceneInitLand/Player/PlayerLinkActor_A0_1C_101.cpp @@ -0,0 +1,32 @@ +#include "Actor/ActorManager.hpp" +#include "Player/PlayerLink.hpp" + +extern unk32 data_ov000_020b3000; + +PlayerLinkActor_A0_1C::PlayerLinkActor_A0_1C(unk32 param1) { + this->mUnk_00 = param1; + this->mUnk_04 = 0x00; + this->mUnk_06 = false; + this->mUnk_0C.Reset(); +} + +void PlayerLinkActor_A0_1C::func_ov101_02183290() { + this->mUnk_06 = false; + this->mUnk_0C.Reset(); + + struct { + void *ptr; + unk32 actorId; + } local_14; + local_14.ptr = &data_ov000_020b3000; + local_14.actorId = ActorId_IWTS; + + Actor **ppActor = gpActorManager->func_01fff350(&local_14, gpActorManager->mActorTable); + + // why is this a loop + while (ppActor != gpActorManager->mUnk_08) { + ActorRef ref = (*ppActor)->mRef; + this->mUnk_0C = ref; + break; + } +} diff --git a/src/101_SceneInitLand/UnkStruct_027e09a4_54_101.cpp b/src/101_SceneInitLand/UnkStruct_027e09a4_54_101.cpp new file mode 100644 index 00000000..144c7f61 --- /dev/null +++ b/src/101_SceneInitLand/UnkStruct_027e09a4_54_101.cpp @@ -0,0 +1,52 @@ +#include "Unknown/Common.hpp" +#include "Unknown/UnkStruct_02049be0.hpp" +#include "Unknown/UnkStruct_027e09a0.hpp" +#include "Unknown/UnkStruct_027e09a4.hpp" + +#include + +UnkStruct_027e09a4_54_Derived1::UnkStruct_027e09a4_54_Derived1(unk32 *param1) : + UnkStruct_027e09a4_54_Base(param1) { + this->mUnk_04.Init(sizeof(UnkStruct_027e09a4_54_04) * 4); +} + +void UnkStruct_027e09a4_54_Derived1::vfunc_0C() { + this->UnkStruct_027e09a4_54_Base::vfunc_0C(); + + bool unk_1B_and_0x40 = data_027e09a0->GetCourseEntry(this->mUnk_1C.sceneIndex)->unk_1B & 0x40; + + { + UnkStruct_StackTitleScreen auStack_2c("Screen/tex2d.bin", 0x01); + + if (unk_1B_and_0x40) { + auStack_2c.func_ov000_02059270(0x28, "scratchBalloon", 0x35B00000); + auStack_2c.func_ov000_02059270(0x29, "scratchPen", 0x35A00000); + auStack_2c.func_ov000_02059270(0x2A, "scratchArrow", 0x34B00000); + auStack_2c.func_ov000_02059270(0x2B, "scratchLink0", 0x2D200000); + auStack_2c.func_ov000_02059270(0x2C, "scratchLink1", 0x34A00000); + } + + auStack_2c.func_ov000_02059270(0x2E, "boomhit", 0x29200000); + auStack_2c.func_ov000_02059270(0x2F, "subhit", 0x29200000); + + this->vfunc_10(&auStack_2c); + } + + if (unk_1B_and_0x40) { + const char *pcVar2 = data_02049be0.func_02014ff4(); + + wchar_t acStack_6c[32]; + acStack_6c[ARRAY_LEN(acStack_6c) - 1] = L'\0'; + + strncpy((char *) acStack_6c, pcVar2, sizeof(acStack_6c) - 1); + + const char *pathEnd = "/Screen/tex2d.bin"; + size_t length = strlen((char *) acStack_6c); + strncpy((char *) acStack_6c + length, pathEnd, sizeof(acStack_6c) - 1 - length); + + UnkStruct_StackTitleScreen austack_80((char *) acStack_6c, 0x01); + austack_80.func_ov000_02059270(0x2D, "scratchText", 0x34B00000); + } +} + +void UnkStruct_027e09a4_54_Derived1::vfunc_10(UnkStruct_StackTitleScreen *param1) {} diff --git a/src/101_SceneInitLand/UnkStruct_027e0cd8_0C_101.cpp b/src/101_SceneInitLand/UnkStruct_027e0cd8_0C_101.cpp new file mode 100644 index 00000000..a787aff0 --- /dev/null +++ b/src/101_SceneInitLand/UnkStruct_027e0cd8_0C_101.cpp @@ -0,0 +1,176 @@ +#include "Actor/Actor.hpp" +#include "System/SysNew.hpp" +#include "Unknown/UnkStruct_0204a088.hpp" +#include "Unknown/UnkStruct_027e09b8.hpp" +#include "Unknown/UnkStruct_027e0cd8.hpp" + +#include + +struct UnkStruct_ov070_0214dc74 { + /* 00 */ SceneIndex sceneIndex; + /* 04 */ u8 unk_04[4]; + /* 08 */ +}; +extern UnkStruct_ov070_0214dc74 data_ov070_0214dc74[18]; +extern "C" UnkStruct_ov070_0214dc74 *func_ov070_02143fe4(int index); + +UnkStruct_027e0cd8_0C::UnkStruct_027e0cd8_0C(UnkStruct_027e0cd8 *param1) : + UnkStruct_027e0cd8_0C_Base(param1) { + this->mUnk_1D0 = 0x00; + this->mUnk_1D4 = 0x00; + this->mUnk_1D8 = -1; + this->mUnk_1DC = false; + this->mUnk_1DD = false; + + for (int i = 0; i < ARRAY_LEN(this->mUnk_170); i++) { + this->mUnk_160[i] = NULL; + this->mUnk_1C0[i] = NULL; + + for (int j = 0; j < ARRAY_LEN(this->mUnk_170[i]); j++) { + this->mUnk_170[i][j] = NULL; + } + } +} + +UnkStruct_027e0cd8_0C::~UnkStruct_027e0cd8_0C() { + for (int i = 0; i < this->mUnk_1D4; i++) { + if (this->mUnk_160[i] != NULL) { + this->mUnk_160[i]->~UnkStruct_027e0cd8_0C_160(); + DELETE(this->mUnk_160[i]); + } + + this->mUnk_1C0[i] = NULL; + + for (int j = 0; j < ARRAY_LEN(this->mUnk_170[i]); j++) { + DELETE(this->mUnk_170[i][j]); + } + } + + if (this->mUnk_1D0 != NULL) { + delete this->mUnk_1D0; + } +} + +void UnkStruct_027e0cd8_0C::vfunc_38() { + this->UnkStruct_027e0cd8_0C_Base::vfunc_38(); + + EntranceInfo local_28; + MI_CpuCopy32((void *) this->func_ov001_020b8c80(0x3F), &local_28, sizeof(EntranceInfo)); + local_28.sceneIndex = data_027e09a4->mUnk_2C.mSceneIndex; + this->func_ov001_020b8c30(local_28); + + EntranceInfo auStack_3c; + MI_CpuCopy32((void *) this->func_ov001_020b8c80(0x3D), &auStack_3c, sizeof(EntranceInfo)); + this->func_ov001_020b8c30(auStack_3c); + + this->func_ov031_020d8738(); + this->func_ov031_020d88c0(); + this->func_ov031_020d8ae4(); + + if (data_027e09a4->CurrentCSIndex() == CutsceneIndex_PassengerCarBeforeMalladusFight && + !data_027e09b8->HasAdventureFlag(AdventureFlag_DefeatedDemonTrain2)) { + stack_ov000_02073578 local_48; + local_48.unk_08 = 0x16; + local_48.unk_00 = 0x01; + data_027e09b8->func_ov000_02073578(&local_48, 0x01); + } else { + data_0204a088->func_ov000_020611fc(0x01); + data_0204a088->func_ov000_02061230(); + } + + if (data_027e09a4->IsSceneModeAdventure()) { + this->mUnk_1D0 = new(HeapIndex_1) UnkStruct_027e0cd8_0C_1D0(); + } +} + +void UnkStruct_027e0cd8_0C::vfunc_08() { + if (this->mUnk_1D0 != NULL) { + this->mUnk_1D0->func_ov101_021837a0(); + } +} + +UnkStruct_027e0cd8_0C_1D0::UnkStruct_027e0cd8_0C_1D0() {} + +UnkStruct_027e0cd8_0C_1D0::~UnkStruct_027e0cd8_0C_1D0() {} + +void func_ov101_02183884(int index, unk32 param2, unk32 param3); + +void UnkStruct_027e0cd8_0C_1D0::func_ov101_021837a0() { + ActorParams sp14; + ActorRef sp10; + bool spC; + + struct { + u32 i; + SceneIndex sceneIndex; + } stack; + + for (int i = 0; i < 5; i++) { + func_ov101_02183884(i, 0x00, 0x00); + } + + spC = false; + + bool var_r6; + if (data_027e09a4->IsCutscene()) { + var_r6 = false; + } else { + var_r6 = true; + bool var_r4_2 = true; + + UnkStruct_027e09a4 *ptr = data_027e09a4; + if (ptr->GetCurrentCourseEntry()->unk_10 != 0x01 && ptr->GetCurrentCourseEntry()->unk_10 != 0x03) { + var_r4_2 = false; + } + + if (var_r4_2) { + + stack.sceneIndex = data_027e09a4->CurrentSceneIndex(); + + for (stack.i = 0; stack.i < ARRAY_LEN(data_ov070_0214dc74); stack.i++) { + UnkStruct_ov070_0214dc74 *pEntry = func_ov070_02143fe4(stack.i); + + if (stack.sceneIndex == pEntry->sceneIndex) { + spC = true; + var_r6 = false; + + for (int j = 0; j < ARRAY_LEN(pEntry->unk_04); j++) { + if (pEntry->unk_04[j] == data_027e0cd8->func_ov000_02081d5c()) { + var_r6 = true; + } + } + } + } + } + } + + if (spC) { + sp14.mUnk_28.Reset(); + sp14.func_ov000_020975f8(); + sp14.func_ov000_020975f8(); + + if (var_r6) { + sp14.mParams[1] = 0x01; + } + + Actor::func_ov000_020973f4(&sp10, &data_ov000_020b539c_eur, ActorId_RCSG, &sp14, 0x00); + } + + if (var_r6) { + data_027e0cd8->mUnk_17 = true; + } +} + +void func_ov101_02183884(int index, unk32 param2, unk32 param3) { + ActorParams params; + ActorRef ref; + + params.mUnk_28.Reset(); + params.func_ov000_020975f8(); + + params.mParams[0] = index; + params.mUnk_18[0] = param2; + params.mUnk_1A[0] = param3; + + Actor::func_ov000_020973f4(&ref, &data_ov000_020b539c_eur, ActorId_MLCK, ¶ms, 0x00); +} diff --git a/src/101_SceneInitLand/UnkStruct_027e0ce0_40_101.cpp b/src/101_SceneInitLand/UnkStruct_027e0ce0_40_101.cpp new file mode 100644 index 00000000..0df7c2e0 --- /dev/null +++ b/src/101_SceneInitLand/UnkStruct_027e0ce0_40_101.cpp @@ -0,0 +1,182 @@ +#include "System/OverlayManager.hpp" +#include "System/SysNew.hpp" +#include "Unknown/UnkStruct_027e09a4.hpp" +#include "Unknown/UnkStruct_027e0cd8.hpp" +#include "Unknown/UnkStruct_027e0ce0.hpp" + +#include + +UnkStruct_027e0ce0_40::UnkStruct_027e0ce0_40(bool param1, UnkStruct_027e0ce0_20 *param2, ItemFlag *pEquippedItem, + ItemManager *pItemMgr) : + UnkStruct_027e0ce0_40_Base(-1, param2, pItemMgr), + mUnk_14C(gOverlayManager.IsPlayerSub() ? new(HeapIndex_1) UnkStruct_027e0ce0_40_14C() : NULL), + mUnk_150(data_027e09a4->IsCastleOrTown() ? new(HeapIndex_1) UnkStruct_027e0ce0_40_150() : NULL), + mPlayer(-1, pItemMgr, this, this->mUnk_150), + mUnk_328(gOverlayManager.IsPlayerSub() ? new(HeapIndex_1) + UnkStruct_027e0ce0_40_328(pItemMgr, this, this->mUnk_150, pEquippedItem) + : NULL), + mEquippedItem(*pEquippedItem), + mIsSceneTowerInsideStairs(data_027e09a4->IsTowerInsideStairs()), + mIsSceneTowerOutsideStairs(data_027e09a4->IsTowerOutsideStairs()), + mIsSceneBossByrne(data_027e09a4->IsBossByrne()), + mUnk_33B(param1) { + this->mpPlayer = &this->mPlayer; + this->mUnk_330 = this->mUnk_328; + this->mPlayer.func_ov001_020bcb60(this->mUnk_328); + + if (this->mUnk_328 != NULL) { + this->mUnk_328->mpPlayer = &this->mPlayer; + } +} + +UnkStruct_027e0ce0_40::~UnkStruct_027e0ce0_40() { + delete this->mUnk_328; + delete this->mUnk_150; + delete this->mUnk_14C; +} + +bool UnkStruct_027e0ce0_40::func_ov101_02182fb4(bool param1) { + this->func_ov001_020bc0e0(true); + + if (this->mUnk_14C != NULL) { + this->mUnk_14C->func_ov093_02168850(); + } + + if (this->mUnk_150 != NULL) { + param1 = this->mUnk_150->func_ov096_02179c54(param1, this->mUnk_33B); + } + + this->mPlayer.func_ov001_020bcb70(); + + if (this->mUnk_328 != NULL) { + this->mUnk_328->func_ov093_0216d0d4(); + } + + return param1; +} + +void UnkStruct_027e0ce0_40::func_ov101_02183004() { + if (this->mUnk_328 != NULL) { + this->mUnk_328->func_ov093_0216d160(); + } + + this->mPlayer.func_ov001_020bcba8(); +} + +void UnkStruct_027e0ce0_40::func_ov101_02183024(const UnkStruct_ov001_020c40f4 *param1, const UnkStruct_ov001_020c40f4 *param2, + unk32 param3, unk32 param4, ItemManager *pItemMgr, + UnkStruct_027e0ce0_30 *param6, bool param7, bool param8) { + bool var_r7 = false; + + if (this->mUnk_328 != NULL) { + if (GET_FLAG2(this->mUnk_104, UnkFlags3_4)) { + var_r7 = true; + } + + switch (param4) { + case 0x00: + if (this->mIsSceneTowerInsideStairs || this->mIsSceneTowerOutsideStairs || this->mIsSceneBossByrne) { + var_r7 = true; + + if (this->mEquippedItem == ItemFlag_Nothing) { + var_r7 = false; + } + + if (this->mIsSceneTowerInsideStairs && pItemMgr != NULL) { + if (pItemMgr->GetTearsAmount() != 0 && pItemMgr->GetTearsAmount() != MAX_TEARS_OF_LIGHT) { + pItemMgr->SetTearsAmount(0); + } + } + } + break; + case 0x01: + var_r7 = true; + break; + case 0x02: + var_r7 = false; + break; + default: + break; + } + + if (this->mUnk_150 != NULL && this->mUnk_150->mUnk_01) { + var_r7 = false; + } else if (param7 || param8) { + var_r7 = true; + } + } + + bool sp8 = var_r7; + if (var_r7) { + if (!VecFx32_IsEqual(¶m1->mUnk_00, ¶m2->mUnk_00)) { + sp8 = false; + } + } + + this->func_ov000_02088060(var_r7); + + if (this->mUnk_33B && !var_r7 && pItemMgr != NULL) { + pItemMgr->SetTearsAmount(0); + } + + UnkStruct_ov001_020c40f4 sp40 = *param1; + + if (sp8) { + VecFx32 sp34 = sp40.mUnk_00; + + //! TODO: fake match? + switch ((u32) ((sp40.mUnk_0C + 0x2000) << 0x10) >> 0x1E) { + case 0x03: + sp34.z += FLOAT_TO_FX32(0.5f); + break; + case 0x01: + sp34.z -= FLOAT_TO_FX32(0.5f); + break; + case 0x02: + sp34.x -= FLOAT_TO_FX32(0.5f); + break; + case 0x00: + sp34.x += FLOAT_TO_FX32(0.5f); + break; + default: + break; + } + + VecFx32_Copy(&sp34, &sp40.mUnk_00); + } + + this->mPlayer.func_ov001_020bcbd0(&sp40.mUnk_00); + + if (this->mUnk_328 != NULL) { + UnkStruct_ov001_020c40f4 sp1C = *param2; + + if (sp8) { + VecFx32 sp10 = sp1C.mUnk_00; + + //! TODO: fake match? + switch ((u32) ((sp1C.mUnk_0C + 0x2000) << 0x10) >> 0x1E) { + case 0x03: + sp10.z -= FLOAT_TO_FX32(0.5f); + break; + case 0x01: + sp10.z += FLOAT_TO_FX32(0.5f); + break; + case 0x02: + sp10.x += FLOAT_TO_FX32(0.5f); + break; + case 0x00: + sp10.x -= FLOAT_TO_FX32(0.5f); + break; + default: + break; + } + + VecFx32_Copy(&sp10, &sp1C.mUnk_00); + } + + this->mUnk_328->func_ov093_0216d1cc(param3, &sp1C, var_r7, param8); + } + + param6->func_ov001_020bbf7c((unk32) this, (unk32 *) &this->mPlayer, (unk32) this->mUnk_328); + this->mUnk_33B = false; +} diff --git a/tools/configure.py b/tools/configure.py index 452f483b..5ad27195 100755 --- a/tools/configure.py +++ b/tools/configure.py @@ -1416,6 +1416,18 @@ config.libs = [ Object("100_CollectMsg/CollectMsg.cpp"), ] ), + GameLib( + "Overlay 101", + [ + Object("101_SceneInitLand/Item/ItemManager_101.cpp"), + Object("101_SceneInitLand/UnkStruct_027e0ce0_40_101.cpp"), + Object("101_SceneInitLand/Player/PlayerLinkActor_A0_1C_101.cpp"), + Object("101_SceneInitLand/UnkStruct_027e09a4_54_101.cpp"), + Object("101_SceneInitLand/UnkStruct_027e0cd8_0C_101.cpp"), + Object("101_SceneInitLand/MapObjectProfile_Derived6_101.cpp"), + ], + extra_cflags=["-thumb"], + ), GameLib( "Overlay 105", [