From 12405715959d8cf26ee316cc4f67fcc3e3e9707e Mon Sep 17 00:00:00 2001 From: Aetias Date: Sat, 26 Apr 2025 08:41:25 +0200 Subject: [PATCH 1/6] Add relocatable overlay IDs --- include/System/OverlayManager.hpp | 193 ++++++++++++++++++++---------- libs/nds/include/nds/Overlay.h | 3 + 2 files changed, 131 insertions(+), 65 deletions(-) diff --git a/include/System/OverlayManager.hpp b/include/System/OverlayManager.hpp index 4c83bbe4..42118b57 100644 --- a/include/System/OverlayManager.hpp +++ b/include/System/OverlayManager.hpp @@ -2,74 +2,137 @@ #include "types.h" +#include + #include "Item/Item.hpp" +EXTERN_OVERLAY_ID(0); +EXTERN_OVERLAY_ID(1); +EXTERN_OVERLAY_ID(2); +EXTERN_OVERLAY_ID(3); +EXTERN_OVERLAY_ID(4); +EXTERN_OVERLAY_ID(5); +EXTERN_OVERLAY_ID(6); +EXTERN_OVERLAY_ID(7); +EXTERN_OVERLAY_ID(8); +EXTERN_OVERLAY_ID(9); +EXTERN_OVERLAY_ID(10); +EXTERN_OVERLAY_ID(11); +EXTERN_OVERLAY_ID(12); +EXTERN_OVERLAY_ID(13); +EXTERN_OVERLAY_ID(14); +EXTERN_OVERLAY_ID(15); +EXTERN_OVERLAY_ID(16); +EXTERN_OVERLAY_ID(17); +EXTERN_OVERLAY_ID(18); +EXTERN_OVERLAY_ID(19); +EXTERN_OVERLAY_ID(20); +EXTERN_OVERLAY_ID(21); +EXTERN_OVERLAY_ID(22); +EXTERN_OVERLAY_ID(23); +EXTERN_OVERLAY_ID(24); +EXTERN_OVERLAY_ID(25); +EXTERN_OVERLAY_ID(26); +EXTERN_OVERLAY_ID(27); +EXTERN_OVERLAY_ID(28); +EXTERN_OVERLAY_ID(29); +EXTERN_OVERLAY_ID(30); +EXTERN_OVERLAY_ID(31); +EXTERN_OVERLAY_ID(32); +EXTERN_OVERLAY_ID(33); +EXTERN_OVERLAY_ID(34); +EXTERN_OVERLAY_ID(35); +EXTERN_OVERLAY_ID(36); +EXTERN_OVERLAY_ID(37); +EXTERN_OVERLAY_ID(38); +EXTERN_OVERLAY_ID(39); +EXTERN_OVERLAY_ID(40); +EXTERN_OVERLAY_ID(41); +EXTERN_OVERLAY_ID(42); +EXTERN_OVERLAY_ID(43); +EXTERN_OVERLAY_ID(44); +EXTERN_OVERLAY_ID(45); +EXTERN_OVERLAY_ID(46); +EXTERN_OVERLAY_ID(47); +EXTERN_OVERLAY_ID(48); +EXTERN_OVERLAY_ID(49); +EXTERN_OVERLAY_ID(50); +EXTERN_OVERLAY_ID(51); +EXTERN_OVERLAY_ID(52); +EXTERN_OVERLAY_ID(53); +EXTERN_OVERLAY_ID(54); +EXTERN_OVERLAY_ID(55); +EXTERN_OVERLAY_ID(56); +EXTERN_OVERLAY_ID(57); +EXTERN_OVERLAY_ID(58); +EXTERN_OVERLAY_ID(59); +EXTERN_OVERLAY_ID(60); +EXTERN_OVERLAY_ID(61); + typedef u32 OverlayId; -enum OverlayId_ { - OverlayId_None = -1, - OverlayId_Core, - OverlayId_01, - OverlayId_02, - OverlayId_03, - OverlayId_Memory, - OverlayId_05, - OverlayId_06, - OverlayId_07, - OverlayId_08, - OverlayId_09, - OverlayId_10, - OverlayId_11, - OverlayId_12, - OverlayId_13, - OverlayId_Land, - OverlayId_15, - OverlayId_16, - OverlayId_17, - OverlayId_18, - OverlayId_19, - OverlayId_20, - OverlayId_21, - OverlayId_22, - OverlayId_23, - OverlayId_24, - OverlayId_25, - OverlayId_26, - OverlayId_27, - OverlayId_28, - OverlayId_29, - OverlayId_30, - OverlayId_31, - OverlayId_32, - OverlayId_33, - OverlayId_34, - OverlayId_35, - OverlayId_36, - OverlayId_37, - OverlayId_38, - OverlayId_39, - OverlayId_40, - OverlayId_41, - OverlayId_42, - OverlayId_43, - OverlayId_44, - OverlayId_45, - OverlayId_46, - OverlayId_47, - OverlayId_48, - OverlayId_49, - OverlayId_50, - OverlayId_51, - OverlayId_52, - OverlayId_PlayerBoomerang, - OverlayId_PlayerScoop, - OverlayId_PlayerBomb, - OverlayId_PlayerBow, - OverlayId_PlayerRope, - OverlayId_PlayerBombchu, - OverlayId_PlayerHammer, - OverlayId_60, - OverlayId_61, -}; +#define OverlayId_None -1 +#define OverlayId_Core OVERLAY_ID(0) +#define OverlayId_01 OVERLAY_ID(1) +#define OverlayId_02 OVERLAY_ID(2) +#define OverlayId_03 OVERLAY_ID(3) +#define OverlayId_Memory OVERLAY_ID(4) +#define OverlayId_05 OVERLAY_ID(5) +#define OverlayId_06 OVERLAY_ID(6) +#define OverlayId_07 OVERLAY_ID(7) +#define OverlayId_08 OVERLAY_ID(8) +#define OverlayId_09 OVERLAY_ID(9) +#define OverlayId_10 OVERLAY_ID(10) +#define OverlayId_11 OVERLAY_ID(11) +#define OverlayId_12 OVERLAY_ID(12) +#define OverlayId_13 OVERLAY_ID(13) +#define OverlayId_Land OVERLAY_ID(14) +#define OverlayId_15 OVERLAY_ID(15) +#define OverlayId_16 OVERLAY_ID(16) +#define OverlayId_17 OVERLAY_ID(17) +#define OverlayId_18 OVERLAY_ID(18) +#define OverlayId_19 OVERLAY_ID(19) +#define OverlayId_20 OVERLAY_ID(20) +#define OverlayId_21 OVERLAY_ID(21) +#define OverlayId_22 OVERLAY_ID(22) +#define OverlayId_23 OVERLAY_ID(23) +#define OverlayId_24 OVERLAY_ID(24) +#define OverlayId_25 OVERLAY_ID(25) +#define OverlayId_26 OVERLAY_ID(26) +#define OverlayId_27 OVERLAY_ID(27) +#define OverlayId_28 OVERLAY_ID(28) +#define OverlayId_29 OVERLAY_ID(29) +#define OverlayId_30 OVERLAY_ID(30) +#define OverlayId_31 OVERLAY_ID(31) +#define OverlayId_32 OVERLAY_ID(32) +#define OverlayId_33 OVERLAY_ID(33) +#define OverlayId_34 OVERLAY_ID(34) +#define OverlayId_35 OVERLAY_ID(35) +#define OverlayId_36 OVERLAY_ID(36) +#define OverlayId_37 OVERLAY_ID(37) +#define OverlayId_38 OVERLAY_ID(38) +#define OverlayId_39 OVERLAY_ID(39) +#define OverlayId_40 OVERLAY_ID(40) +#define OverlayId_41 OVERLAY_ID(41) +#define OverlayId_42 OVERLAY_ID(42) +#define OverlayId_43 OVERLAY_ID(43) +#define OverlayId_44 OVERLAY_ID(44) +#define OverlayId_45 OVERLAY_ID(45) +#define OverlayId_46 OVERLAY_ID(46) +#define OverlayId_47 OVERLAY_ID(47) +#define OverlayId_48 OVERLAY_ID(48) +#define OverlayId_49 OVERLAY_ID(49) +#define OverlayId_50 OVERLAY_ID(50) +#define OverlayId_51 OVERLAY_ID(51) +#define OverlayId_52 OVERLAY_ID(52) +#define OverlayId_PlayerBoomerang OVERLAY_ID(53) +#define OverlayId_PlayerScoop OVERLAY_ID(54) +#define OverlayId_PlayerBomb OVERLAY_ID(55) +#define OverlayId_PlayerBow OVERLAY_ID(56) +#define OverlayId_PlayerRope OVERLAY_ID(57) +#define OverlayId_PlayerBombchu OVERLAY_ID(58) +#define OverlayId_PlayerHammer OVERLAY_ID(59) +#define OverlayId_60 OVERLAY_ID(60) +#define OverlayId_61 OVERLAY_ID(61) typedef u32 OverlayIndex; enum OverlayIndex_ { diff --git a/libs/nds/include/nds/Overlay.h b/libs/nds/include/nds/Overlay.h index 5339a9d7..254253bd 100644 --- a/libs/nds/include/nds/Overlay.h +++ b/libs/nds/include/nds/Overlay.h @@ -5,6 +5,9 @@ extern "C" { #endif +#define EXTERN_OVERLAY_ID(name_or_index) extern u32 OVERLAY_##name_or_index##_ID; +#define OVERLAY_ID(name_or_index) ((u32) & OVERLAY_##name_or_index##_ID) + typedef struct Overlay { /* 00 */ unk32 mId; /* 04 */ void *mBaseAddress; From 5ffac795ab8e3cd6b1162e4e24b535af2bd5c52e Mon Sep 17 00:00:00 2001 From: Aetias Date: Sat, 26 Apr 2025 08:42:04 +0200 Subject: [PATCH 2/6] Clean up ItemManager --- include/Item/ItemModelLoader.hpp | 2 + include/Map/MapManager.hpp | 2 +- src/00_Core/Item/ItemManager.cpp | 147 +++++++++++++++---------------- src/00_Core/Map/MapManager.cpp | 2 +- 4 files changed, 73 insertions(+), 80 deletions(-) diff --git a/include/Item/ItemModelLoader.hpp b/include/Item/ItemModelLoader.hpp index 6b06893a..3eb3e157 100644 --- a/include/Item/ItemModelLoader.hpp +++ b/include/Item/ItemModelLoader.hpp @@ -27,3 +27,5 @@ public: static void Create(); static void Destroy(); }; + +extern ItemModelLoader *gItemModelLoader; diff --git a/include/Map/MapManager.hpp b/include/Map/MapManager.hpp index 13ca4348..f6557c07 100644 --- a/include/Map/MapManager.hpp +++ b/include/Map/MapManager.hpp @@ -210,7 +210,7 @@ public: unk8 func_ov00_0208499c(); unk8 func_ov00_020849c0(); unk8 func_ov00_020849dc(); - static bool func_ov00_020849f8(unk32 param_1); + bool func_ov00_020849f8(); unk8 func_ov00_02084a50(); void SpawnNPC(Vec3p *param_2, unk32 param_3, unk32 param_4); bool func_ov00_02084ac4(u32 actorId); diff --git a/src/00_Core/Item/ItemManager.cpp b/src/00_Core/Item/ItemManager.cpp index 3344c74e..aef0ec94 100644 --- a/src/00_Core/Item/ItemManager.cpp +++ b/src/00_Core/Item/ItemManager.cpp @@ -1,6 +1,8 @@ #include "Item/ItemManager.hpp" #include "DTCM/UnkStruct_027e0d38.hpp" #include "DTCM/UnkStruct_027e0f78.hpp" +#include "DTCM/UnkStruct_027e103c.hpp" +#include "Item/ItemModelLoader.hpp" #include "Map/MapManager.hpp" #include "Player/PlayerLinkBase.hpp" #include "Player/PlayerManager.hpp" @@ -158,17 +160,15 @@ ARM ItemModel *ItemManager::GetItemModel(ItemModelId id) { return mItemModels[id]; } -extern unk32 gItemModelLoader; -extern "C" void *func_ov00_020bb3a8(unk32 param1, u32 index); -extern "C" void func_ov00_020c0bdc(void *param1, unk32 param2); +extern "C" void func_ov000_020c0bdc(unk32 param1, unk32 param2); ARM void ItemManager::func_ov00_020ad538(unk32 param1) const { - void *unk1 = func_ov00_020bb3a8(gItemModelLoader, 6); - func_ov00_020c0bdc(unk1, param1); + unk32 unk1 = gItemModelLoader->func_ov000_020bb3a8(6); + func_ov000_020c0bdc(unk1, param1); } ARM void ItemManager::func_ov00_020ad560(unk32 param1) const { - void *unk1 = func_ov00_020bb3a8(gItemModelLoader, 7); - func_ov00_020c0bdc(unk1, param1); + unk32 unk1 = gItemModelLoader->func_ov000_020bb3a8(7); + func_ov000_020c0bdc(unk1, param1); } ARM ItemModel *ItemManager::GetDungeonItemModel(u32 index) { @@ -176,8 +176,8 @@ ARM ItemModel *ItemManager::GetDungeonItemModel(u32 index) { } ARM void ItemManager::func_ov00_020ad594(unk32 param1) const { - void *unk1 = func_ov00_020bb3a8(gItemModelLoader, 11); - func_ov00_020c0bdc(unk1, param1); + unk32 unk1 = gItemModelLoader->func_ov000_020bb3a8(11); + func_ov000_020c0bdc(unk1, param1); } ARM void ItemManager::Sword_vfunc_38(unk32 param1) { @@ -237,24 +237,22 @@ ARM void ItemManager::GiveAmmo(ItemFlag equipId, u16 amount) { (*mAmmo)[equipId] = this->GetMaxAmmo(equipId); } -extern "C" unk32 func_ov00_02078b40(UnkStruct_027e0d38 *param1); extern void *data_027e10a4; -extern "C" bool func_ov15_02136670(void *param1); -extern unk8 data_ov29_0217a4ac[]; +extern "C" bool func_ov015_02136670(void *param1); +extern u8 data_ov022_0217a4ac[]; extern "C" bool _ZN14PlayerLinkBase18func_ov00_020bbd80Ei(unk32 param1, unk32 param2); extern "C" bool _ZNK11ItemManager7HasItemEi(); extern "C" void _ZN11ItemManager12GetEquipItemEi(); ARM bool ItemManager::func_ov00_020ad790(unk32 param1) { - unk32 unk1 = func_ov00_02078b40(data_027e0d38); - if (unk1 == 2) return func_ov15_02136670(data_027e10a4); + unk32 unk1 = data_027e0d38->func_ov000_02078b40(); + if (unk1 == 2) return func_ov015_02136670(data_027e10a4); if (data_027e0d38->mUnk_14 == 1) return false; - // NONMATCH: OverlayId_29 should be in constant pool - if (gOverlayManager.mLoadedOverlays[OverlayIndex_6] == OverlayId_29 && data_ov29_0217a4ac[0x54] != 0) { + if (gOverlayManager.mLoadedOverlays[OverlayIndex_6] == OverlayId_29 && data_ov022_0217a4ac[0x54] != 0) { return false; } ItemFlag equipId = mForcedItem; - bool unk2 = !gMapManager->func_ov00_020849f8(equipId); + bool unk2 = !gMapManager->func_ov00_020849f8(); if (mEquippedItem != ItemFlag_None && (unk2 || (u32) mEquippedItem - 9 <= 1) && (gPlayerLink == 0 || gPlayerLink->func_ov000_020bbd80(param1)) && this->HasItem(mEquippedItem)) { @@ -320,7 +318,7 @@ THUMB void ItemManager::SetUnk_09e(u32 index, u16 value) { } const u16 sQuiverSizes[] = {20, 20, 30, 50}; -const u16 sBombBagSizes[] = {10, 20, 30}; +const u16 sBombBagSizes[] = {10, 20, 30, 0}; THUMB u16 ItemManager::GetMaxAmmo(ItemFlag equipId) const { switch (equipId) { @@ -379,8 +377,8 @@ THUMB void ItemManager::RemoveItem(ItemFlag item) { extern ItemModel **data_027e1058; extern ItemModel **data_027e105c; -extern "C" ItemModel *func_ov00_02079ffc(void *, const char *modelName, const char *textureName, unk32 param4, unk8 param5, - unk8 param6, bool param7); +extern "C" ItemModel *LoadNsbTexturedModel(void *, const char *modelName, const char *textureName, unk32 param4, unk8 param5, + unk8 param6, bool param7); extern "C" ItemModel *LoadTreasureItemFanfare(ItemModel **, s32 treasureType, bool, bool); static char *sDefaultItemModel = "key"; static char *sItemModelNames[70] = { @@ -391,47 +389,47 @@ static char *sItemModelNames[70] = { [ItemId_WoodenShield] = "shA", [ItemId_Unk_5] = NULL, [ItemId_Unk_6] = "force_y", - [ItemId_BombBag] = "bomb\0\0\0", + [ItemId_BombBag] = "bomb", [ItemId_Bow] = "bow", [ItemId_BigGreenRupee] = "rupee_g", - [ItemId_HeartContainer] = "heart_utu\0\0", + [ItemId_HeartContainer] = "heart_utu", [ItemId_Unk_11] = NULL, - [ItemId_Boomerang] = "boomerang\0\0", + [ItemId_Boomerang] = "boomerang", [ItemId_Scoop] = "scp", - [ItemId_BombchuBag] = "bomchu\0", + [ItemId_BombchuBag] = "bomchu", [ItemId_BossKey] = "bosskey", [ItemId_Unk_16] = "rev_bin", [ItemId_Unk_17] = NULL, [ItemId_PhantomHourglass] = NULL, - [ItemId_SWSeaChart] = "mapSea\0", - [ItemId_NWSeaChart] = "mapSea\0", - [ItemId_SESeaChart] = "mapSea\0", - [ItemId_NESeaChart] = "mapSea\0", + [ItemId_SWSeaChart] = "mapSea", + [ItemId_NWSeaChart] = "mapSea", + [ItemId_SESeaChart] = "mapSea", + [ItemId_NESeaChart] = "mapSea", [ItemId_Unk_23] = NULL, [ItemId_BlueRupee] = "rupee_b", [ItemId_RedRupee] = "rupee_r", [ItemId_BigRedRupee] = "rupee_r", - [ItemId_GoldRupee] = "rupee_go\0\0\0", + [ItemId_GoldRupee] = "rupee_go", [ItemId_Unk_28] = "force_y", [ItemId_Unk_29] = "force_r", [ItemId_Unk_30] = "force_b", [ItemId_Hammer] = "ham", - [ItemId_Rope] = "rope\0\0\0", - [ItemId_SquareCrystal] = "cstl_c\0", - [ItemId_RoundCrystal] = "cstl_s\0", - [ItemId_TriangleCrystal] = "cstl_t\0", - [ItemId_FishingRod] = "fp\0", + [ItemId_Rope] = "rope", + [ItemId_SquareCrystal] = "cstl_c", + [ItemId_RoundCrystal] = "cstl_s", + [ItemId_TriangleCrystal] = "cstl_t", + [ItemId_FishingRod] = "fp", [ItemId_Cannon] = NULL, - [ItemId_SunKey] = "key_su\0", + [ItemId_SunKey] = "key_su", [ItemId_Unk_39] = NULL, - [ItemId_Quiver] = "arrowpod\0\0\0", - [ItemId_BigBombBag] = "bmbagM\0", - [ItemId_BigBombchuBag] = "bcbagM\0", + [ItemId_Quiver] = "arrowpod", + [ItemId_BigBombBag] = "bmbagM", + [ItemId_BigBombchuBag] = "bcbagM", [ItemId_Unk_43] = NULL, - [ItemId_KingsKey] = "key_ki\0", - [ItemId_PowerGem] = "minaP\0\0", - [ItemId_WisdomGem] = "minaC\0\0", - [ItemId_CourageGem] = "minaY\0\0", + [ItemId_KingsKey] = "key_ki", + [ItemId_PowerGem] = "minaP", + [ItemId_WisdomGem] = "minaC", + [ItemId_CourageGem] = "minaY", [ItemId_PinkCoral] = NULL, [ItemId_WhitePearlLoop] = NULL, [ItemId_DarkPearlLoop] = NULL, @@ -440,44 +438,40 @@ static char *sItemModelNames[70] = { [ItemId_RutoCrown] = NULL, [ItemId_HelmarocPlume] = NULL, [ItemId_RegalRing] = NULL, - [ItemId_GhostKey] = "key_gh\0", - [ItemId_FreebieCard] = "tic_tada\0\0\0", - [ItemId_ComplimentCard] = "tic_ohome\0\0", - [ItemId_ComplimentaryCard] = "tic_rare\0\0\0", - [ItemId_RegalNecklace] = "neckl\0\0", - [ItemId_SalvageArm] = "slvarm\0", + [ItemId_GhostKey] = "key_gh", + [ItemId_FreebieCard] = "tic_tada", + [ItemId_ComplimentCard] = "tic_ohome", + [ItemId_ComplimentaryCard] = "tic_rare", + [ItemId_RegalNecklace] = "neckl", + [ItemId_SalvageArm] = "slvarm", [ItemId_HerosNewClothes] = NULL, - [ItemId_Kaleidoscope] = "telescope\0\0", - [ItemId_GuardNotebook] = "notebook\0\0\0", - [ItemId_JolenesLetter] = "letter\0", - [ItemId_PrizePostcard] = "card\0\0\0", - [ItemId_WoodHeart] = "marron\0", + [ItemId_Kaleidoscope] = "telescope", + [ItemId_GuardNotebook] = "notebook", + [ItemId_JolenesLetter] = "letter", + [ItemId_PrizePostcard] = "card", + [ItemId_WoodHeart] = "marron", [ItemId_PhantomSwordBlade] = "swBedge", [ItemId_PhantomSword] = NULL, }; static char *sItemModelNames2[8] = { - [ItemId_SwordsmanScroll - ItemId_SwordsmanScroll] = "makimono\0\0\0", - [ItemId_Crimsonine - ItemId_SwordsmanScroll] = "hagaH\0\0", - [ItemId_Azurine - ItemId_SwordsmanScroll] = "hagaK\0\0", - [ItemId_Aquanine - ItemId_SwordsmanScroll] = "hagaS\0\0", + [ItemId_SwordsmanScroll - ItemId_SwordsmanScroll] = "makimono", + [ItemId_Crimsonine - ItemId_SwordsmanScroll] = "hagaH", + [ItemId_Azurine - ItemId_SwordsmanScroll] = "hagaK", + [ItemId_Aquanine - ItemId_SwordsmanScroll] = "hagaS", [ItemId_RedPotion - ItemId_SwordsmanScroll] = "rev_bin", - [ItemId_PurplePotion - ItemId_SwordsmanScroll] = "rev_binP\0\0\0", - [ItemId_YellowPotion - ItemId_SwordsmanScroll] = "rev_binY\0\0\0", - [ItemId_SandOfHours - ItemId_SwordsmanScroll] = "sand_m\0", + [ItemId_PurplePotion - ItemId_SwordsmanScroll] = "rev_binP", + [ItemId_YellowPotion - ItemId_SwordsmanScroll] = "rev_binY", + [ItemId_SandOfHours - ItemId_SwordsmanScroll] = "sand_m", }; static char *sItemModelNames3[9] = { - [ItemId_CycloneSlate - ItemId_CycloneSlate] = "compass", - [ItemId_Unk_128 - ItemId_CycloneSlate] = "lure\0\0\0", - [ItemId_Rupoor10 - ItemId_CycloneSlate] = "rupee_bb\0\0\0", - [ItemId_Rupoor50 - ItemId_CycloneSlate] = "rupee_bb\0\0\0", - [ItemId_Unk_131 - ItemId_CycloneSlate] = NULL, - [ItemId_Unk_132 - ItemId_CycloneSlate] = NULL, - [ItemId_Unk_133 - ItemId_CycloneSlate] = NULL, - [ItemId_Unk_134 - ItemId_CycloneSlate] = NULL, - [ItemId_Unk_135 - ItemId_CycloneSlate] = NULL, + [ItemId_CycloneSlate - ItemId_CycloneSlate] = "compass", [ItemId_Unk_128 - ItemId_CycloneSlate] = "lure", + [ItemId_Rupoor10 - ItemId_CycloneSlate] = "rupee_bb", [ItemId_Rupoor50 - ItemId_CycloneSlate] = "rupee_bb", + [ItemId_Unk_131 - ItemId_CycloneSlate] = NULL, [ItemId_Unk_132 - ItemId_CycloneSlate] = NULL, + [ItemId_Unk_133 - ItemId_CycloneSlate] = NULL, [ItemId_Unk_134 - ItemId_CycloneSlate] = NULL, + [ItemId_Unk_135 - ItemId_CycloneSlate] = NULL, }; char *sSpecialItemModelNames[7] = { - "mapTakara\0\0", "arrowpodL\0\0", "bmbagL\0", "bcbagL\0", "Player/get/gd_\0", ".nsbmd\0", ".nsbtx\0", + "mapTakara", "arrowpodL", "bmbagL", "bcbagL", "Player/get/gd_", ".nsbmd", ".nsbtx", }; THUMB void ItemManager::LoadFanfareItem(ItemId id) { mFanfareItem = id; @@ -521,7 +515,7 @@ THUMB void ItemManager::LoadFanfareItem(ItemId id) { strcat(textureName, sSpecialItemModelNames[4]); strcat(textureName, itemName); strcat(textureName, sSpecialItemModelNames[6]); - model = func_ov00_02079ffc(mFanfareItemModel, modelName, textureName, 0, 0, 0, true); + model = LoadNsbTexturedModel(mFanfareItemModel, modelName, textureName, 0, 0, 0, true); } mUnk_114->vfunc_0c(model); } @@ -841,9 +835,6 @@ ARM s32 ItemManager::GetMaxRupees() const { return 9999; } -extern void *data_027e103c; -extern "C" s32 func_ov00_020cf374(void *param1, bool param2); -extern "C" void func_ov05_02104004(void *param1); ARM void ItemManager::GiveRupees(s32 amount, bool param2) { s32 newRupees = mNumRupees + amount; if (newRupees > this->GetMaxRupees()) { @@ -852,11 +843,11 @@ ARM void ItemManager::GiveRupees(s32 amount, bool param2) { newRupees = 0; } - s32 currRupees = func_ov00_020cf374(data_027e103c, true); + s32 currRupees = data_027e103c->func_ov000_020cf374(true); if (param2) { currRupees = mNumRupees; if (currRupees != newRupees) { - func_ov05_02104004(data_027e103c); + data_027e103c->WalletFull(); } } mNumRupees = newRupees; @@ -994,7 +985,7 @@ THUMB void ItemManager::LoadDungeonItemModels() { } } -extern unk32 data_ov00_020eec68; +extern unk32 data_ov000_020eec68; extern "C" void PlaySoundEffect(void *param1, SfxId sfx); THUMB void ItemManager::PlayItemFanfareSfx(ItemId item) { if (gItemManager->mMuteNextFanfare == true) { @@ -1043,7 +1034,7 @@ THUMB void ItemManager::PlayItemFanfareSfx(ItemId item) { gItemManager->mFanfareSfx = SfxId_None; } - PlaySoundEffect(&data_ov00_020eec68, sfx); + PlaySoundEffect(&data_ov000_020eec68, sfx); } THUMB bool ItemManager::HasShipPartPriceShown(ShipPart part, ShipType type) const { diff --git a/src/00_Core/Map/MapManager.cpp b/src/00_Core/Map/MapManager.cpp index 9c23a95b..82de433f 100644 --- a/src/00_Core/Map/MapManager.cpp +++ b/src/00_Core/Map/MapManager.cpp @@ -165,7 +165,7 @@ unk8 MapManager::GetMapData_Unk_07() {} unk8 MapManager::func_ov00_0208499c() {} unk8 MapManager::func_ov00_020849c0() {} unk8 MapManager::func_ov00_020849dc() {} -bool MapManager::func_ov00_020849f8(unk32 param_1) {} +bool MapManager::func_ov00_020849f8() {} unk8 MapManager::func_ov00_02084a50() {} void MapManager::SpawnNPC(Vec3p *param_2, unk32 param_3, unk32 param_4) {} bool MapManager::func_ov00_02084ac4(u32 actorId) {} From 7ebb56a48401699e871a942186ab7abc4acf4429 Mon Sep 17 00:00:00 2001 From: Aetias Date: Sat, 26 Apr 2025 08:42:16 +0200 Subject: [PATCH 3/6] Update symbols --- config/eur/arm9/overlays/ov000/symbols.txt | 14 +++++++------- config/usa/arm9/overlays/ov000/symbols.txt | 6 +++--- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index 12d18328..2f4e13e7 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -653,7 +653,7 @@ _ZN10MapManager17GetMapData_Unk_07Ev kind:function(arm,size=0xc) addr:0x02084990 _ZN10MapManager18func_ov00_0208499cEv kind:function(arm,size=0x24) addr:0x0208499c _ZN10MapManager18func_ov00_020849c0Ev kind:function(arm,size=0x1c) addr:0x020849c0 _ZN10MapManager18func_ov00_020849dcEv kind:function(arm,size=0x1c) addr:0x020849dc -_ZN10MapManager18func_ov00_020849f8Ei kind:function(arm,size=0x58) addr:0x020849f8 +_ZN10MapManager18func_ov00_020849f8Ev kind:function(arm,size=0x58) addr:0x020849f8 _ZN10MapManager18func_ov00_02084a50Ev kind:function(arm,size=0xc) addr:0x02084a50 _ZN10MapManager8SpawnNPCEP5Vec3pii kind:function(arm,size=0x68) addr:0x02084a5c _ZN10MapManager18func_ov00_02084ac4Ej kind:function(arm,size=0x44) addr:0x02084ac4 @@ -3721,8 +3721,8 @@ data_ov000_020dc55c kind:data(any) addr:0x020dc55c data_ov000_020dc560 kind:data(any) addr:0x020dc560 data_ov000_020dc574 kind:data(any) addr:0x020dc574 data_ov000_020dc674 kind:data(any) addr:0x020dc674 -sQuiverSizes kind:data(any) addr:0x020dc6c4 -sBombBagSizes kind:data(any) addr:0x020dc6cc +sQuiverSizes kind:data(any) addr:0x020dc6c4 local +sBombBagSizes kind:data(any) addr:0x020dc6cc local data_ov000_020dc6e0 kind:data(any) addr:0x020dc6e0 data_ov000_020dc6e4 kind:data(any) addr:0x020dc6e4 data_ov000_020dc6e8 kind:data(any) addr:0x020dc6e8 @@ -4808,10 +4808,10 @@ data_ov000_020e5c58 kind:data(any) addr:0x020e5c58 data_ov000_020e5c5c kind:data(any) addr:0x020e5c5c data_ov000_020e5c60 kind:data(any) addr:0x020e5c60 data_ov000_020e5c64 kind:data(any) addr:0x020e5c64 -data_ov000_020e5c68 kind:data(any) addr:0x020e5c68 -data_ov000_020e5c6c kind:data(any) addr:0x020e5c6c -data_ov000_020e5c70 kind:data(any) addr:0x020e5c70 -data_ov000_020e5c74 kind:data(any) addr:0x020e5c74 +@1377 kind:data(any) addr:0x020e5c68 local +@1376 kind:data(any) addr:0x020e5c6c local +@1375 kind:data(any) addr:0x020e5c70 local +@1374 kind:data(any) addr:0x020e5c74 local sShipPartTypes kind:data(any) addr:0x020e5c78 sDefaultItemModel kind:data(any) addr:0x020e5c98 sItemModelNames kind:data(any) addr:0x020e5c9c diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt index 58b4b4e6..d69b5332 100644 --- a/config/usa/arm9/overlays/ov000/symbols.txt +++ b/config/usa/arm9/overlays/ov000/symbols.txt @@ -653,7 +653,7 @@ _ZN10MapManager17GetMapData_Unk_07Ev kind:function(arm,size=0xc) addr:0x02084930 _ZN10MapManager18func_ov00_0208499cEv kind:function(arm,size=0x24) addr:0x0208493c _ZN10MapManager18func_ov00_020849c0Ev kind:function(arm,size=0x1c) addr:0x02084960 _ZN10MapManager18func_ov00_020849dcEv kind:function(arm,size=0x1c) addr:0x0208497c -_ZN10MapManager18func_ov00_020849f8Ei kind:function(arm,size=0x58) addr:0x02084998 +_ZN10MapManager18func_ov00_020849f8Ev kind:function(arm,size=0x58) addr:0x02084998 _ZN10MapManager18func_ov00_02084a50Ev kind:function(arm,size=0xc) addr:0x020849f0 _ZN10MapManager8SpawnNPCEP5Vec3pii kind:function(arm,size=0x68) addr:0x020849fc _ZN10MapManager18func_ov00_02084ac4Ej kind:function(arm,size=0x44) addr:0x02084a64 @@ -3721,8 +3721,8 @@ data_ov000_020dc55c kind:data(any) addr:0x020dc4fc data_ov000_020dc560 kind:data(any) addr:0x020dc500 data_ov000_020dc574 kind:data(any) addr:0x020dc514 data_ov000_020dc674 kind:data(any) addr:0x020dc614 -sQuiverSizes kind:data(any) addr:0x020dc664 -sBombBagSizes kind:data(any) addr:0x020dc66c +sQuiverSizes kind:data(any) addr:0x020dc664 local +sBombBagSizes kind:data(any) addr:0x020dc66c local data_ov000_020dc6e0 kind:data(any) addr:0x020dc680 data_ov000_020dc6e4 kind:data(any) addr:0x020dc684 data_ov000_020dc6e8 kind:data(any) addr:0x020dc688 From 989cdf5d9339d50f089a80f45bf537f2f7c92bd2 Mon Sep 17 00:00:00 2001 From: Aetias Date: Sat, 26 Apr 2025 08:42:26 +0200 Subject: [PATCH 4/6] Mark ItemManager as complete --- config/eur/arm9/overlays/ov000/delinks.txt | 1 + config/usa/arm9/overlays/ov000/delinks.txt | 1 + 2 files changed, 2 insertions(+) diff --git a/config/eur/arm9/overlays/ov000/delinks.txt b/config/eur/arm9/overlays/ov000/delinks.txt index 558720d1..a1445a05 100644 --- a/config/eur/arm9/overlays/ov000/delinks.txt +++ b/config/eur/arm9/overlays/ov000/delinks.txt @@ -71,6 +71,7 @@ src/00_Core/Item/Item.cpp: .rodata start:0x020dc574 end:0x020dc6c4 src/00_Core/Item/ItemManager.cpp: + complete .text start:0x020ad090 end:0x020ae790 .rodata start:0x020dc6c4 end:0x020dc6d4 .data start:0x020e5c58 end:0x020e6078 diff --git a/config/usa/arm9/overlays/ov000/delinks.txt b/config/usa/arm9/overlays/ov000/delinks.txt index 442437bd..39263e9d 100644 --- a/config/usa/arm9/overlays/ov000/delinks.txt +++ b/config/usa/arm9/overlays/ov000/delinks.txt @@ -71,6 +71,7 @@ src/00_Core/Item/Item.cpp: .rodata start:0x020dc514 end:0x020dc664 src/00_Core/Item/ItemManager.cpp: + complete .text start:0x020ad030 end:0x020ae730 .rodata start:0x020dc664 end:0x020dc674 .data start:0x020e5bf8 end:0x020e6018 From da1690c655ef4ee20872a6c5deba3eb292c53c7a Mon Sep 17 00:00:00 2001 From: Aetias Date: Sat, 26 Apr 2025 08:57:21 +0200 Subject: [PATCH 5/6] Apply symbols --- config/eur/arm9/overlays/ov000/symbols.txt | 186 ++++++++++----------- config/usa/arm9/overlays/ov000/symbols.txt | 186 ++++++++++----------- 2 files changed, 186 insertions(+), 186 deletions(-) diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index 2f4e13e7..c645e4b5 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -4804,92 +4804,92 @@ data_ov000_020e5c04 kind:data(any) addr:0x020e5c04 data_ov000_020e5c1c kind:data(any) addr:0x020e5c1c data_ov000_020e5c34 kind:data(any) addr:0x020e5c34 data_ov000_020e5c44 kind:data(any) addr:0x020e5c44 -data_ov000_020e5c58 kind:data(any) addr:0x020e5c58 -data_ov000_020e5c5c kind:data(any) addr:0x020e5c5c -data_ov000_020e5c60 kind:data(any) addr:0x020e5c60 -data_ov000_020e5c64 kind:data(any) addr:0x020e5c64 -@1377 kind:data(any) addr:0x020e5c68 local -@1376 kind:data(any) addr:0x020e5c6c local -@1375 kind:data(any) addr:0x020e5c70 local -@1374 kind:data(any) addr:0x020e5c74 local -sShipPartTypes kind:data(any) addr:0x020e5c78 -sDefaultItemModel kind:data(any) addr:0x020e5c98 -sItemModelNames kind:data(any) addr:0x020e5c9c -sItemModelNames2 kind:data(any) addr:0x020e5db4 -sItemModelNames3 kind:data(any) addr:0x020e5dd4 +@1437 kind:data(any) addr:0x020e5c58 local +@1436 kind:data(any) addr:0x020e5c5c local +@1435 kind:data(any) addr:0x020e5c60 local +@1434 kind:data(any) addr:0x020e5c64 local +@1433 kind:data(any) addr:0x020e5c68 local +@1432 kind:data(any) addr:0x020e5c6c local +@1431 kind:data(any) addr:0x020e5c70 local +@1430 kind:data(any) addr:0x020e5c74 local +sShipPartTypes kind:data(any) addr:0x020e5c78 local +sDefaultItemModel kind:data(any) addr:0x020e5c98 local +sItemModelNames kind:data(any) addr:0x020e5c9c local +sItemModelNames2 kind:data(any) addr:0x020e5db4 local +sItemModelNames3 kind:data(any) addr:0x020e5dd4 local sSpecialItemModelNames kind:data(any) addr:0x020e5df8 -data_ov000_020e5e14 kind:data(any) addr:0x020e5e14 -data_ov000_020e5e18 kind:data(any) addr:0x020e5e18 -data_ov000_020e5e1c kind:data(any) addr:0x020e5e1c -data_ov000_020e5e20 kind:data(any) addr:0x020e5e20 -data_ov000_020e5e28 kind:data(any) addr:0x020e5e28 -data_ov000_020e5e2c kind:data(any) addr:0x020e5e2c -data_ov000_020e5e30 kind:data(any) addr:0x020e5e30 -data_ov000_020e5e38 kind:data(any) addr:0x020e5e38 -data_ov000_020e5e40 kind:data(any) addr:0x020e5e40 -data_ov000_020e5e44 kind:data(any) addr:0x020e5e44 -data_ov000_020e5e4c kind:data(any) addr:0x020e5e4c -data_ov000_020e5e58 kind:data(any) addr:0x020e5e58 -data_ov000_020e5e64 kind:data(any) addr:0x020e5e64 -data_ov000_020e5e68 kind:data(any) addr:0x020e5e68 -data_ov000_020e5e70 kind:data(any) addr:0x020e5e70 -data_ov000_020e5e78 kind:data(any) addr:0x020e5e78 -data_ov000_020e5e80 kind:data(any) addr:0x020e5e80 -data_ov000_020e5e88 kind:data(any) addr:0x020e5e88 -data_ov000_020e5e90 kind:data(any) addr:0x020e5e90 -data_ov000_020e5e98 kind:data(any) addr:0x020e5e98 -data_ov000_020e5ea0 kind:data(any) addr:0x020e5ea0 -data_ov000_020e5ea8 kind:data(any) addr:0x020e5ea8 -data_ov000_020e5eb0 kind:data(any) addr:0x020e5eb0 -data_ov000_020e5eb8 kind:data(any) addr:0x020e5eb8 -data_ov000_020e5ec4 kind:data(any) addr:0x020e5ec4 -data_ov000_020e5ecc kind:data(any) addr:0x020e5ecc -data_ov000_020e5ed4 kind:data(any) addr:0x020e5ed4 -data_ov000_020e5edc kind:data(any) addr:0x020e5edc -data_ov000_020e5ee0 kind:data(any) addr:0x020e5ee0 -data_ov000_020e5ee8 kind:data(any) addr:0x020e5ee8 -data_ov000_020e5ef0 kind:data(any) addr:0x020e5ef0 -data_ov000_020e5ef8 kind:data(any) addr:0x020e5ef8 -data_ov000_020e5f00 kind:data(any) addr:0x020e5f00 -data_ov000_020e5f04 kind:data(any) addr:0x020e5f04 -data_ov000_020e5f0c kind:data(any) addr:0x020e5f0c -data_ov000_020e5f18 kind:data(any) addr:0x020e5f18 -data_ov000_020e5f20 kind:data(any) addr:0x020e5f20 -data_ov000_020e5f28 kind:data(any) addr:0x020e5f28 -data_ov000_020e5f30 kind:data(any) addr:0x020e5f30 -data_ov000_020e5f38 kind:data(any) addr:0x020e5f38 -data_ov000_020e5f40 kind:data(any) addr:0x020e5f40 -data_ov000_020e5f48 kind:data(any) addr:0x020e5f48 -data_ov000_020e5f50 kind:data(any) addr:0x020e5f50 -data_ov000_020e5f5c kind:data(any) addr:0x020e5f5c -data_ov000_020e5f68 kind:data(any) addr:0x020e5f68 -data_ov000_020e5f74 kind:data(any) addr:0x020e5f74 -data_ov000_020e5f7c kind:data(any) addr:0x020e5f7c -data_ov000_020e5f84 kind:data(any) addr:0x020e5f84 -data_ov000_020e5f90 kind:data(any) addr:0x020e5f90 -data_ov000_020e5f9c kind:data(any) addr:0x020e5f9c -data_ov000_020e5fa4 kind:data(any) addr:0x020e5fa4 -data_ov000_020e5fac kind:data(any) addr:0x020e5fac -data_ov000_020e5fb4 kind:data(any) addr:0x020e5fb4 -data_ov000_020e5fbc kind:data(any) addr:0x020e5fbc -data_ov000_020e5fc8 kind:data(any) addr:0x020e5fc8 -data_ov000_020e5fd0 kind:data(any) addr:0x020e5fd0 -data_ov000_020e5fd8 kind:data(any) addr:0x020e5fd8 -data_ov000_020e5fe0 kind:data(any) addr:0x020e5fe0 -data_ov000_020e5fe8 kind:data(any) addr:0x020e5fe8 -data_ov000_020e5ff4 kind:data(any) addr:0x020e5ff4 -data_ov000_020e6000 kind:data(any) addr:0x020e6000 -data_ov000_020e6008 kind:data(any) addr:0x020e6008 -data_ov000_020e6010 kind:data(any) addr:0x020e6010 -data_ov000_020e6018 kind:data(any) addr:0x020e6018 -data_ov000_020e6024 kind:data(any) addr:0x020e6024 -data_ov000_020e6030 kind:data(any) addr:0x020e6030 -data_ov000_020e603c kind:data(any) addr:0x020e603c -data_ov000_020e6048 kind:data(any) addr:0x020e6048 -data_ov000_020e6050 kind:data(any) addr:0x020e6050 -data_ov000_020e6058 kind:data(any) addr:0x020e6058 -data_ov000_020e6068 kind:data(any) addr:0x020e6068 -data_ov000_020e6070 kind:data(any) addr:0x020e6070 +@2138 kind:data(any) addr:0x020e5e14 local +@2139 kind:data(any) addr:0x020e5e18 local +@2140 kind:data(any) addr:0x020e5e1c local +@2141 kind:data(any) addr:0x020e5e20 local +@2142 kind:data(any) addr:0x020e5e28 local +@2143 kind:data(any) addr:0x020e5e2c local +@2144 kind:data(any) addr:0x020e5e30 local +@2145 kind:data(any) addr:0x020e5e38 local +@2146 kind:data(any) addr:0x020e5e40 local +@2147 kind:data(any) addr:0x020e5e44 local +@2148 kind:data(any) addr:0x020e5e4c local +@2149 kind:data(any) addr:0x020e5e58 local +@2150 kind:data(any) addr:0x020e5e64 local +@2151 kind:data(any) addr:0x020e5e68 local +@2152 kind:data(any) addr:0x020e5e70 local +@2153 kind:data(any) addr:0x020e5e78 local +@2154 kind:data(any) addr:0x020e5e80 local +@2155 kind:data(any) addr:0x020e5e88 local +@2156 kind:data(any) addr:0x020e5e90 local +@2157 kind:data(any) addr:0x020e5e98 local +@2158 kind:data(any) addr:0x020e5ea0 local +@2159 kind:data(any) addr:0x020e5ea8 local +@2160 kind:data(any) addr:0x020e5eb0 local +@2161 kind:data(any) addr:0x020e5eb8 local +@2162 kind:data(any) addr:0x020e5ec4 local +@2163 kind:data(any) addr:0x020e5ecc local +@2164 kind:data(any) addr:0x020e5ed4 local +@2165 kind:data(any) addr:0x020e5edc local +@2166 kind:data(any) addr:0x020e5ee0 local +@2167 kind:data(any) addr:0x020e5ee8 local +@2168 kind:data(any) addr:0x020e5ef0 local +@2169 kind:data(any) addr:0x020e5ef8 local +@2170 kind:data(any) addr:0x020e5f00 local +@2171 kind:data(any) addr:0x020e5f04 local +@2172 kind:data(any) addr:0x020e5f0c local +@2173 kind:data(any) addr:0x020e5f18 local +@2174 kind:data(any) addr:0x020e5f20 local +@2175 kind:data(any) addr:0x020e5f28 local +@2176 kind:data(any) addr:0x020e5f30 local +@2177 kind:data(any) addr:0x020e5f38 local +@2178 kind:data(any) addr:0x020e5f40 local +@2179 kind:data(any) addr:0x020e5f48 local +@2180 kind:data(any) addr:0x020e5f50 local +@2181 kind:data(any) addr:0x020e5f5c local +@2182 kind:data(any) addr:0x020e5f68 local +@2183 kind:data(any) addr:0x020e5f74 local +@2184 kind:data(any) addr:0x020e5f7c local +@2185 kind:data(any) addr:0x020e5f84 local +@2186 kind:data(any) addr:0x020e5f90 local +@2187 kind:data(any) addr:0x020e5f9c local +@2188 kind:data(any) addr:0x020e5fa4 local +@2189 kind:data(any) addr:0x020e5fac local +@2190 kind:data(any) addr:0x020e5fb4 local +@2191 kind:data(any) addr:0x020e5fbc local +@2192 kind:data(any) addr:0x020e5fc8 local +@2193 kind:data(any) addr:0x020e5fd0 local +@2194 kind:data(any) addr:0x020e5fd8 local +@2195 kind:data(any) addr:0x020e5fe0 local +@2196 kind:data(any) addr:0x020e5fe8 local +@2197 kind:data(any) addr:0x020e5ff4 local +@2198 kind:data(any) addr:0x020e6000 local +@2199 kind:data(any) addr:0x020e6008 local +@2200 kind:data(any) addr:0x020e6010 local +@2201 kind:data(any) addr:0x020e6018 local +@2202 kind:data(any) addr:0x020e6024 local +@2203 kind:data(any) addr:0x020e6030 local +@2204 kind:data(any) addr:0x020e603c local +@2205 kind:data(any) addr:0x020e6048 local +@2206 kind:data(any) addr:0x020e6050 local +@2207 kind:data(any) addr:0x020e6058 local +@2208 kind:data(any) addr:0x020e6068 local +@2209 kind:data(any) addr:0x020e6070 local data_ov000_020e6078 kind:data(any) addr:0x020e6078 data_ov000_020e6088 kind:data(any) addr:0x020e6088 data_ov000_020e6098 kind:data(any) addr:0x020e6098 @@ -5070,14 +5070,14 @@ data_ov000_020e71bc kind:data(any) addr:0x020e71bc sShipTypes kind:data(any) addr:0x020e71c0 _ZTV17KillPickupsFilter kind:data(any) addr:0x020e71e8 _ZTV5Actor kind:data(any) addr:0x020e71f4 -@965 kind:data(any) addr:0x020e72a8 local -@964 kind:data(any) addr:0x020e72ac local -@963 kind:data(any) addr:0x020e72b0 local -@962 kind:data(any) addr:0x020e72b4 local -@961 kind:data(any) addr:0x020e72b8 local -@960 kind:data(any) addr:0x020e72bc local -@959 kind:data(any) addr:0x020e72c0 local -@958 kind:data(any) addr:0x020e72c4 local +@964 kind:data(any) addr:0x020e72a8 local +@963 kind:data(any) addr:0x020e72ac local +@962 kind:data(any) addr:0x020e72b0 local +@961 kind:data(any) addr:0x020e72b4 local +@960 kind:data(any) addr:0x020e72b8 local +@959 kind:data(any) addr:0x020e72bc local +@958 kind:data(any) addr:0x020e72c0 local +@957 kind:data(any) addr:0x020e72c4 local _ZTV11FilterActor kind:data(any) addr:0x020e72e8 data_ov000_020e72fc kind:data(any) addr:0x020e72fc data_ov000_020e7300 kind:data(any) addr:0x020e7300 diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt index d69b5332..06272250 100644 --- a/config/usa/arm9/overlays/ov000/symbols.txt +++ b/config/usa/arm9/overlays/ov000/symbols.txt @@ -4804,92 +4804,92 @@ data_ov000_020e5c04 kind:data(any) addr:0x020e5ba4 data_ov000_020e5c1c kind:data(any) addr:0x020e5bbc data_ov000_020e5c34 kind:data(any) addr:0x020e5bd4 data_ov000_020e5c44 kind:data(any) addr:0x020e5be4 -data_ov000_020e5c58 kind:data(any) addr:0x020e5bf8 -data_ov000_020e5c5c kind:data(any) addr:0x020e5bfc -data_ov000_020e5c60 kind:data(any) addr:0x020e5c00 -data_ov000_020e5c64 kind:data(any) addr:0x020e5c04 -data_ov000_020e5c68 kind:data(any) addr:0x020e5c08 -data_ov000_020e5c6c kind:data(any) addr:0x020e5c0c -data_ov000_020e5c70 kind:data(any) addr:0x020e5c10 -data_ov000_020e5c74 kind:data(any) addr:0x020e5c14 -sShipPartTypes kind:data(any) addr:0x020e5c18 -sDefaultItemModel kind:data(any) addr:0x020e5c38 -sItemModelNames kind:data(any) addr:0x020e5c3c -sItemModelNames2 kind:data(any) addr:0x020e5d54 -sItemModelNames3 kind:data(any) addr:0x020e5d74 +@1437 kind:data(any) addr:0x020e5bf8 local +@1436 kind:data(any) addr:0x020e5bfc local +@1435 kind:data(any) addr:0x020e5c00 local +@1434 kind:data(any) addr:0x020e5c04 local +@1433 kind:data(any) addr:0x020e5c08 local +@1432 kind:data(any) addr:0x020e5c0c local +@1431 kind:data(any) addr:0x020e5c10 local +@1430 kind:data(any) addr:0x020e5c14 local +sShipPartTypes kind:data(any) addr:0x020e5c18 local +sDefaultItemModel kind:data(any) addr:0x020e5c38 local +sItemModelNames kind:data(any) addr:0x020e5c3c local +sItemModelNames2 kind:data(any) addr:0x020e5d54 local +sItemModelNames3 kind:data(any) addr:0x020e5d74 local sSpecialItemModelNames kind:data(any) addr:0x020e5d98 -data_ov000_020e5e14 kind:data(any) addr:0x020e5db4 -data_ov000_020e5e18 kind:data(any) addr:0x020e5db8 -data_ov000_020e5e1c kind:data(any) addr:0x020e5dbc -data_ov000_020e5e20 kind:data(any) addr:0x020e5dc0 -data_ov000_020e5e28 kind:data(any) addr:0x020e5dc8 -data_ov000_020e5e2c kind:data(any) addr:0x020e5dcc -data_ov000_020e5e30 kind:data(any) addr:0x020e5dd0 -data_ov000_020e5e38 kind:data(any) addr:0x020e5dd8 -data_ov000_020e5e40 kind:data(any) addr:0x020e5de0 -data_ov000_020e5e44 kind:data(any) addr:0x020e5de4 -data_ov000_020e5e4c kind:data(any) addr:0x020e5dec -data_ov000_020e5e58 kind:data(any) addr:0x020e5df8 -data_ov000_020e5e64 kind:data(any) addr:0x020e5e04 -data_ov000_020e5e68 kind:data(any) addr:0x020e5e08 -data_ov000_020e5e70 kind:data(any) addr:0x020e5e10 -data_ov000_020e5e78 kind:data(any) addr:0x020e5e18 -data_ov000_020e5e80 kind:data(any) addr:0x020e5e20 -data_ov000_020e5e88 kind:data(any) addr:0x020e5e28 -data_ov000_020e5e90 kind:data(any) addr:0x020e5e30 -data_ov000_020e5e98 kind:data(any) addr:0x020e5e38 -data_ov000_020e5ea0 kind:data(any) addr:0x020e5e40 -data_ov000_020e5ea8 kind:data(any) addr:0x020e5e48 -data_ov000_020e5eb0 kind:data(any) addr:0x020e5e50 -data_ov000_020e5eb8 kind:data(any) addr:0x020e5e58 -data_ov000_020e5ec4 kind:data(any) addr:0x020e5e64 -data_ov000_020e5ecc kind:data(any) addr:0x020e5e6c -data_ov000_020e5ed4 kind:data(any) addr:0x020e5e74 -data_ov000_020e5edc kind:data(any) addr:0x020e5e7c -data_ov000_020e5ee0 kind:data(any) addr:0x020e5e80 -data_ov000_020e5ee8 kind:data(any) addr:0x020e5e88 -data_ov000_020e5ef0 kind:data(any) addr:0x020e5e90 -data_ov000_020e5ef8 kind:data(any) addr:0x020e5e98 -data_ov000_020e5f00 kind:data(any) addr:0x020e5ea0 -data_ov000_020e5f04 kind:data(any) addr:0x020e5ea4 -data_ov000_020e5f0c kind:data(any) addr:0x020e5eac -data_ov000_020e5f18 kind:data(any) addr:0x020e5eb8 -data_ov000_020e5f20 kind:data(any) addr:0x020e5ec0 -data_ov000_020e5f28 kind:data(any) addr:0x020e5ec8 -data_ov000_020e5f30 kind:data(any) addr:0x020e5ed0 -data_ov000_020e5f38 kind:data(any) addr:0x020e5ed8 -data_ov000_020e5f40 kind:data(any) addr:0x020e5ee0 -data_ov000_020e5f48 kind:data(any) addr:0x020e5ee8 -data_ov000_020e5f50 kind:data(any) addr:0x020e5ef0 -data_ov000_020e5f5c kind:data(any) addr:0x020e5efc -data_ov000_020e5f68 kind:data(any) addr:0x020e5f08 -data_ov000_020e5f74 kind:data(any) addr:0x020e5f14 -data_ov000_020e5f7c kind:data(any) addr:0x020e5f1c -data_ov000_020e5f84 kind:data(any) addr:0x020e5f24 -data_ov000_020e5f90 kind:data(any) addr:0x020e5f30 -data_ov000_020e5f9c kind:data(any) addr:0x020e5f3c -data_ov000_020e5fa4 kind:data(any) addr:0x020e5f44 -data_ov000_020e5fac kind:data(any) addr:0x020e5f4c -data_ov000_020e5fb4 kind:data(any) addr:0x020e5f54 -data_ov000_020e5fbc kind:data(any) addr:0x020e5f5c -data_ov000_020e5fc8 kind:data(any) addr:0x020e5f68 -data_ov000_020e5fd0 kind:data(any) addr:0x020e5f70 -data_ov000_020e5fd8 kind:data(any) addr:0x020e5f78 -data_ov000_020e5fe0 kind:data(any) addr:0x020e5f80 -data_ov000_020e5fe8 kind:data(any) addr:0x020e5f88 -data_ov000_020e5ff4 kind:data(any) addr:0x020e5f94 -data_ov000_020e6000 kind:data(any) addr:0x020e5fa0 -data_ov000_020e6008 kind:data(any) addr:0x020e5fa8 -data_ov000_020e6010 kind:data(any) addr:0x020e5fb0 -data_ov000_020e6018 kind:data(any) addr:0x020e5fb8 -data_ov000_020e6024 kind:data(any) addr:0x020e5fc4 -data_ov000_020e6030 kind:data(any) addr:0x020e5fd0 -data_ov000_020e603c kind:data(any) addr:0x020e5fdc -data_ov000_020e6048 kind:data(any) addr:0x020e5fe8 -data_ov000_020e6050 kind:data(any) addr:0x020e5ff0 -data_ov000_020e6058 kind:data(any) addr:0x020e5ff8 -data_ov000_020e6068 kind:data(any) addr:0x020e6008 -data_ov000_020e6070 kind:data(any) addr:0x020e6010 +@2138 kind:data(any) addr:0x020e5db4 local +@2139 kind:data(any) addr:0x020e5db8 local +@2140 kind:data(any) addr:0x020e5dbc local +@2141 kind:data(any) addr:0x020e5dc0 local +@2142 kind:data(any) addr:0x020e5dc8 local +@2143 kind:data(any) addr:0x020e5dcc local +@2144 kind:data(any) addr:0x020e5dd0 local +@2145 kind:data(any) addr:0x020e5dd8 local +@2146 kind:data(any) addr:0x020e5de0 local +@2147 kind:data(any) addr:0x020e5de4 local +@2148 kind:data(any) addr:0x020e5dec local +@2149 kind:data(any) addr:0x020e5df8 local +@2150 kind:data(any) addr:0x020e5e04 local +@2151 kind:data(any) addr:0x020e5e08 local +@2152 kind:data(any) addr:0x020e5e10 local +@2153 kind:data(any) addr:0x020e5e18 local +@2154 kind:data(any) addr:0x020e5e20 local +@2155 kind:data(any) addr:0x020e5e28 local +@2156 kind:data(any) addr:0x020e5e30 local +@2157 kind:data(any) addr:0x020e5e38 local +@2158 kind:data(any) addr:0x020e5e40 local +@2159 kind:data(any) addr:0x020e5e48 local +@2160 kind:data(any) addr:0x020e5e50 local +@2161 kind:data(any) addr:0x020e5e58 local +@2162 kind:data(any) addr:0x020e5e64 local +@2163 kind:data(any) addr:0x020e5e6c local +@2164 kind:data(any) addr:0x020e5e74 local +@2165 kind:data(any) addr:0x020e5e7c local +@2166 kind:data(any) addr:0x020e5e80 local +@2167 kind:data(any) addr:0x020e5e88 local +@2168 kind:data(any) addr:0x020e5e90 local +@2169 kind:data(any) addr:0x020e5e98 local +@2170 kind:data(any) addr:0x020e5ea0 local +@2171 kind:data(any) addr:0x020e5ea4 local +@2172 kind:data(any) addr:0x020e5eac local +@2173 kind:data(any) addr:0x020e5eb8 local +@2174 kind:data(any) addr:0x020e5ec0 local +@2175 kind:data(any) addr:0x020e5ec8 local +@2176 kind:data(any) addr:0x020e5ed0 local +@2177 kind:data(any) addr:0x020e5ed8 local +@2178 kind:data(any) addr:0x020e5ee0 local +@2179 kind:data(any) addr:0x020e5ee8 local +@2180 kind:data(any) addr:0x020e5ef0 local +@2181 kind:data(any) addr:0x020e5efc local +@2182 kind:data(any) addr:0x020e5f08 local +@2183 kind:data(any) addr:0x020e5f14 local +@2184 kind:data(any) addr:0x020e5f1c local +@2185 kind:data(any) addr:0x020e5f24 local +@2186 kind:data(any) addr:0x020e5f30 local +@2187 kind:data(any) addr:0x020e5f3c local +@2188 kind:data(any) addr:0x020e5f44 local +@2189 kind:data(any) addr:0x020e5f4c local +@2190 kind:data(any) addr:0x020e5f54 local +@2191 kind:data(any) addr:0x020e5f5c local +@2192 kind:data(any) addr:0x020e5f68 local +@2193 kind:data(any) addr:0x020e5f70 local +@2194 kind:data(any) addr:0x020e5f78 local +@2195 kind:data(any) addr:0x020e5f80 local +@2196 kind:data(any) addr:0x020e5f88 local +@2197 kind:data(any) addr:0x020e5f94 local +@2198 kind:data(any) addr:0x020e5fa0 local +@2199 kind:data(any) addr:0x020e5fa8 local +@2200 kind:data(any) addr:0x020e5fb0 local +@2201 kind:data(any) addr:0x020e5fb8 local +@2202 kind:data(any) addr:0x020e5fc4 local +@2203 kind:data(any) addr:0x020e5fd0 local +@2204 kind:data(any) addr:0x020e5fdc local +@2205 kind:data(any) addr:0x020e5fe8 local +@2206 kind:data(any) addr:0x020e5ff0 local +@2207 kind:data(any) addr:0x020e5ff8 local +@2208 kind:data(any) addr:0x020e6008 local +@2209 kind:data(any) addr:0x020e6010 local data_ov000_020e6078 kind:data(any) addr:0x020e6018 data_ov000_020e6088 kind:data(any) addr:0x020e6028 data_ov000_020e6098 kind:data(any) addr:0x020e6038 @@ -5070,14 +5070,14 @@ data_ov000_020e71bc kind:data(any) addr:0x020e715c sShipTypes kind:data(any) addr:0x020e7160 _ZTV17KillPickupsFilter kind:data(any) addr:0x020e7188 _ZTV5Actor kind:data(any) addr:0x020e7194 -@965 kind:data(any) addr:0x020e7248 local -@964 kind:data(any) addr:0x020e724c local -@963 kind:data(any) addr:0x020e7250 local -@962 kind:data(any) addr:0x020e7254 local -@961 kind:data(any) addr:0x020e7258 local -@960 kind:data(any) addr:0x020e725c local -@959 kind:data(any) addr:0x020e7260 local -@958 kind:data(any) addr:0x020e7264 local +@964 kind:data(any) addr:0x020e7248 local +@963 kind:data(any) addr:0x020e724c local +@962 kind:data(any) addr:0x020e7250 local +@961 kind:data(any) addr:0x020e7254 local +@960 kind:data(any) addr:0x020e7258 local +@959 kind:data(any) addr:0x020e725c local +@958 kind:data(any) addr:0x020e7260 local +@957 kind:data(any) addr:0x020e7264 local _ZTV11FilterActor kind:data(any) addr:0x020e7288 data_ov000_020e72fc kind:data(any) addr:0x020e729c data_ov000_020e7300 kind:data(any) addr:0x020e72a0 From 9aabd1a53f2822d5da59f9be7d35f42f567a8b89 Mon Sep 17 00:00:00 2001 From: Aetias Date: Sat, 26 Apr 2025 13:39:41 +0200 Subject: [PATCH 6/6] Add overlay ID relocations to ItemManager --- config/eur/arm9/overlays/ov000/relocs.txt | 1 + config/usa/arm9/overlays/ov000/relocs.txt | 1 + 2 files changed, 2 insertions(+) diff --git a/config/eur/arm9/overlays/ov000/relocs.txt b/config/eur/arm9/overlays/ov000/relocs.txt index 5513c2e0..211e8b34 100644 --- a/config/eur/arm9/overlays/ov000/relocs.txt +++ b/config/eur/arm9/overlays/ov000/relocs.txt @@ -5464,6 +5464,7 @@ from:0x020ad8a4 kind:arm_call to:0x020ad714 module:overlay(0) from:0x020ad8c4 kind:load to:0x027e0d38 module:dtcm from:0x020ad8c8 kind:load to:0x027e10a4 module:dtcm from:0x020ad8cc kind:load to:0x027e0900 module:dtcm +from:0x020ad8d0 kind:overlay_id to:29 module:none from:0x020ad8d4 kind:load to:0x0217a4ac module:overlays(22,23,24,25,26,29,61) from:0x020ad8d8 kind:load to:0x027e0e60 module:dtcm from:0x020ad8dc kind:load to:0x027e0fc8 module:dtcm diff --git a/config/usa/arm9/overlays/ov000/relocs.txt b/config/usa/arm9/overlays/ov000/relocs.txt index 5ae92103..9e9a093e 100644 --- a/config/usa/arm9/overlays/ov000/relocs.txt +++ b/config/usa/arm9/overlays/ov000/relocs.txt @@ -5464,6 +5464,7 @@ from:0x020ad844 kind:arm_call to:0x020ad6b4 module:overlay(0) from:0x020ad864 kind:load to:0x027e0d38 module:dtcm from:0x020ad868 kind:load to:0x027e10a4 module:dtcm from:0x020ad86c kind:load to:0x027e0900 module:dtcm +from:0x020ad870 kind:overlay_id to:29 module:none from:0x020ad874 kind:load to:0x0217a40c module:overlays(22,23,24,25,26,29,61) from:0x020ad878 kind:load to:0x027e0e60 module:dtcm from:0x020ad87c kind:load to:0x027e0fc8 module:dtcm