From b44496319d3027a625fcf876cf22e467720355df Mon Sep 17 00:00:00 2001 From: Aetias <144526980+AetiasHax@users.noreply.github.com> Date: Mon, 4 May 2026 22:07:42 +0200 Subject: [PATCH] ActorShopItem 98% (#151) * ActorShopItem 93% * Fix build * Add missing symbols to usa * Document BMG message ID functions * Create bmg.py for inspecting BMG files * ActorShopItem 98% * Match func_ov031_0217dfec * Port reloc changes to usa * Make `ModelRender::GetLcdcAddress` non-const --- .clangd | 1 + config/eur/arm9/overlays/ov000/relocs.txt | 18 +- config/eur/arm9/overlays/ov000/symbols.txt | 8 +- config/eur/arm9/overlays/ov003/symbols.txt | 2 +- config/eur/arm9/overlays/ov004/relocs.txt | 44 +- config/eur/arm9/overlays/ov009/relocs.txt | 4 +- config/eur/arm9/overlays/ov015/relocs.txt | 14 +- config/eur/arm9/overlays/ov018/relocs.txt | 2 +- config/eur/arm9/overlays/ov025/relocs.txt | 2 +- config/eur/arm9/overlays/ov026/relocs.txt | 2 +- config/eur/arm9/overlays/ov031/delinks.txt | 5 + config/eur/arm9/overlays/ov031/relocs.txt | 72 +- config/eur/arm9/overlays/ov031/symbols.txt | 599 ++++---- config/eur/arm9/overlays/ov040/relocs.txt | 2 +- config/eur/arm9/relocs.txt | 4 +- config/eur/arm9/symbols.txt | 4 +- config/usa/arm9/overlays/ov000/relocs.txt | 18 +- config/usa/arm9/overlays/ov000/symbols.txt | 8 +- config/usa/arm9/overlays/ov003/symbols.txt | 2 +- config/usa/arm9/overlays/ov004/relocs.txt | 44 +- config/usa/arm9/overlays/ov009/relocs.txt | 4 +- config/usa/arm9/overlays/ov015/relocs.txt | 14 +- config/usa/arm9/overlays/ov018/relocs.txt | 2 +- config/usa/arm9/overlays/ov031/delinks.txt | 5 + config/usa/arm9/overlays/ov031/relocs.txt | 72 +- config/usa/arm9/overlays/ov031/symbols.txt | 599 ++++---- config/usa/arm9/overlays/ov040/relocs.txt | 2 +- config/usa/arm9/relocs.txt | 4 +- config/usa/arm9/symbols.txt | 4 +- include/Actor/ActorShopItem.hpp | 292 ++-- include/Actor/ActorTypeId.hpp | 19 +- include/DTCM/UnkStruct_027e0f64.hpp | 14 +- include/Message/BMG.hpp | 2 + include/Message/MsgProc.hpp | 2 +- include/Save/AdventureFlags.hpp | 9 + include/System/SysNew.hpp | 2 - include/Unknown/UnkStruct_027e0dbc.hpp | 1 + include/Unknown/UnkStruct_ov000_020c0c08.hpp | 7 +- include/lib/files.hpp | 17 +- include/types.h | 1 + libs/nds/include/nds/g3d/g3d.h | 4 +- libs/nds/include/nds/g3d/sbc.h | 4 +- src/00_Core/Map/MapManager.cpp | 10 +- src/00_Core/Player/PlayerControl.cpp | 4 +- src/00_Core/Render/ModelRender.cpp | 2 - src/09_Adventure/Game/GameModeAdventure.cpp | 2 +- src/31_Shop/Actor/ActorShopItem.cpp | 1400 ++++++++++++++++-- src/Main/Unknown/UnkStruct_020397f8.cpp | 2 +- tools/bmg.py | 115 ++ tools/requirements.txt | 1 + tools/vtable_sym.py | 129 ++ 51 files changed, 2545 insertions(+), 1055 deletions(-) create mode 100644 tools/bmg.py create mode 100644 tools/vtable_sym.py diff --git a/.clangd b/.clangd index 617e5d9b..4e544a02 100644 --- a/.clangd +++ b/.clangd @@ -8,3 +8,4 @@ CompileFlags: - -Ilibs/nds/include - -Ilibs/nitro/include - -Ilibs/nns/include + - -Wno-c99-designator diff --git a/config/eur/arm9/overlays/ov000/relocs.txt b/config/eur/arm9/overlays/ov000/relocs.txt index 25cbeb02..cef7adca 100644 --- a/config/eur/arm9/overlays/ov000/relocs.txt +++ b/config/eur/arm9/overlays/ov000/relocs.txt @@ -3349,12 +3349,12 @@ from:0x0209bb2c kind:arm_call to:0x0204f614 module:main from:0x0209bb44 kind:arm_call to:0x020a5b38 module:overlay(0) from:0x0209bb98 kind:arm_call to:0x02080f64 module:overlay(0) from:0x0209bba8 kind:load to:0x027e0ce0 module:dtcm -from:0x0209bbac kind:load to:0x02057878 module:main -from:0x0209bbb0 kind:load to:0x0205785c module:main +from:0x0209bbac kind:load to:0x02057870 add:0x8 module:main +from:0x0209bbb0 kind:load to:0x02057854 add:0x8 module:main from:0x0209bbb4 kind:load to:0x0203010d module:main from:0x0209bbb8 kind:load to:0x0209bbc0 module:overlay(0) from:0x0209bbbc kind:load to:0x020db058 module:overlay(0) -from:0x0209bbe0 kind:load to:0x02057878 module:main +from:0x0209bbe0 kind:load to:0x02057870 add:0x8 module:main from:0x0209bbe4 kind:load to:0x02057840 module:main from:0x0209bc18 kind:arm_call to:0x020a5d74 module:overlay(0) from:0x0209bc68 kind:arm_call to:0x020a5e08 module:overlay(0) @@ -4288,9 +4288,9 @@ from:0x020a5788 kind:arm_call to:0x020c0e5c module:overlay(0) from:0x020a57f4 kind:load to:0x020dc294 module:overlay(0) from:0x020a57f8 kind:load to:0x027e0ce0 module:dtcm from:0x020a57fc kind:load to:0x020dc354 module:overlay(0) -from:0x020a5800 kind:load to:0x02057878 module:main +from:0x020a5800 kind:load to:0x02057870 add:0x8 module:main from:0x020a5804 kind:load to:0x0209bbc0 module:overlay(0) -from:0x020a5808 kind:load to:0x0205785c module:main +from:0x020a5808 kind:load to:0x02057854 add:0x8 module:main from:0x020a580c kind:load to:0x0203010d module:main from:0x020a5810 kind:load to:0x020dc2c4 module:overlay(0) from:0x020a5814 kind:load to:0x020dc324 module:overlay(0) @@ -7721,10 +7721,10 @@ from:0x020c42cc kind:load to:0x027e0fe4 module:dtcm from:0x020c42d4 kind:load to:0x027e0e60 module:dtcm from:0x020c42e8 kind:load to:0x020ddfa0 module:overlay(0) from:0x020c4318 kind:load to:0x020ddad8 module:overlay(0) -from:0x020c4378 kind:load to:0x02057878 module:main +from:0x020c4378 kind:load to:0x02057870 add:0x8 module:main from:0x020c437c kind:load to:0x02057840 module:main from:0x020c4380 kind:load to:0x020e835c module:overlay(0) -from:0x020c4384 kind:load to:0x0205785c module:main +from:0x020c4384 kind:load to:0x02057854 add:0x8 module:main from:0x020c43ac kind:arm_call_thumb to:0x0202d5dc module:main from:0x020c43e8 kind:arm_call to:0x020c42d8 module:overlay(0) from:0x020c43fc kind:arm_call to:0x02047024 module:main @@ -11220,10 +11220,10 @@ from:0x020e191c kind:arm_call to:0x0204f8d4 module:main from:0x020e1948 kind:arm_call to:0x0204f8d4 module:main from:0x020e1974 kind:arm_call to:0x0204f8d4 module:main from:0x020e19a4 kind:arm_call to:0x0204f8d4 module:main -from:0x020e19ac kind:load to:0x02057878 module:main +from:0x020e19ac kind:load to:0x02057870 add:0x8 module:main from:0x020e19b0 kind:load to:0x020ee1fc module:overlay(0) from:0x020e19b4 kind:load to:0x020e699c module:overlay(0) -from:0x020e19b8 kind:load to:0x0205785c module:main +from:0x020e19b8 kind:load to:0x02057854 add:0x8 module:main from:0x020e19bc kind:load to:0x020ee408 module:overlay(0) from:0x020e19c0 kind:load to:0x0203005d module:main from:0x020e19c4 kind:load to:0x020ee2d4 module:overlay(0) diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index 2a9873f8..f6f84a60 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -137,10 +137,10 @@ func_ov000_02079e04 kind:function(arm,size=0x38) addr:0x02079e04 _Z19func_ov000_02079e3cv kind:function(arm,size=0x2c) addr:0x02079e3c _ZN18UnkStruct_020e936019func_ov000_02079e68Ei kind:function(arm,size=0x4c) addr:0x02079e68 func_ov000_02079eb4 kind:function(arm,size=0x24) addr:0x02079eb4 -func_ov000_02079ed8 kind:function(thumb,size=0x22) addr:0x02079ed8 +_ZN29ActorShopItemCollectable_Unk1C1Ev kind:function(thumb,size=0x22) addr:0x02079ed8 func_ov000_02079efc kind:function(thumb,size=0x3e) addr:0x02079efc -func_ov000_02079f3c kind:function(thumb,size=0x20) addr:0x02079f3c -func_ov000_02079f5c kind:function(thumb,size=0xa0) addr:0x02079f5c +_ZN29ActorShopItemCollectable_Unk1D1Ev kind:function(thumb,size=0x20) addr:0x02079f3c +_ZN29ActorShopItemCollectable_Unk119func_ov000_02079f5cEiiiihi kind:function(thumb,size=0xa0) addr:0x02079f5c LoadNsbTexturedModel kind:function(thumb,size=0x3a) addr:0x02079ffc func_ov000_0207a038 kind:function(thumb,size=0x102) addr:0x0207a038 _ZN19Actor_UnkStruct_012C1Ev kind:function(arm,size=0x4c) addr:0x0207a13c @@ -223,7 +223,7 @@ func_ov000_0207bb14 kind:function(arm,size=0x4) addr:0x0207bb14 func_ov000_0207bb18 kind:function(arm,size=0x4) addr:0x0207bb18 _ZN18UnkStruct_027e0de419func_ov000_0207bb1cEiPFvPvES0_ kind:function(arm,size=0x30) addr:0x0207bb1c func_ov000_0207bb4c kind:function(arm,size=0xfc) addr:0x0207bb4c -func_ov000_0207bc48 kind:function(arm,size=0x20) addr:0x0207bc48 +_ZN17UnkClass_027e0e2819func_ov000_0207bc48Ev kind:function(arm,size=0x20) addr:0x0207bc48 func_ov000_0207bc68 kind:function(arm,size=0x14) addr:0x0207bc68 func_ov000_0207bc7c kind:function(thumb,size=0x1e) addr:0x0207bc7c func_ov000_0207bc9c kind:function(arm,size=0x18) addr:0x0207bc9c diff --git a/config/eur/arm9/overlays/ov003/symbols.txt b/config/eur/arm9/overlays/ov003/symbols.txt index ee39ed3a..600d1128 100644 --- a/config/eur/arm9/overlays/ov003/symbols.txt +++ b/config/eur/arm9/overlays/ov003/symbols.txt @@ -117,7 +117,7 @@ func_ov003_020f3c84 kind:function(thumb,size=0x42) addr:0x020f3c84 func_ov003_020f3cc8 kind:function(arm,size=0x8) addr:0x020f3cc8 func_ov003_020f3cd0 kind:function(arm,size=0x8c) addr:0x020f3cd0 _ZN18UnkStruct_027e0dbc19func_ov003_020f3d5cEi kind:function(thumb,size=0x16) addr:0x020f3d5c -func_ov003_020f3d74 kind:function(thumb,size=0xc) addr:0x020f3d74 +_ZN18UnkStruct_027e0dbc19func_ov003_020f3d74Ei kind:function(thumb,size=0xc) addr:0x020f3d74 func_ov003_020f3d80 kind:function(thumb,size=0xc) addr:0x020f3d80 func_ov003_020f3d8c kind:function(thumb,size=0x6) addr:0x020f3d8c func_ov003_020f3d94 kind:function(thumb,size=0x6) addr:0x020f3d94 diff --git a/config/eur/arm9/overlays/ov004/relocs.txt b/config/eur/arm9/overlays/ov004/relocs.txt index 9279e6d9..27da7103 100644 --- a/config/eur/arm9/overlays/ov004/relocs.txt +++ b/config/eur/arm9/overlays/ov004/relocs.txt @@ -137,9 +137,9 @@ from:0x021013f0 kind:thumb_call to:0x021014bc module:overlay(4) from:0x021013fc kind:thumb_call_arm to:0x0202e9dc module:main from:0x02101406 kind:thumb_call to:0x0210168c module:overlay(4) from:0x02101410 kind:load to:0x027e0ce0 module:dtcm -from:0x02101414 kind:load to:0x02057878 module:main +from:0x02101414 kind:load to:0x02057870 add:0x8 module:main from:0x02101418 kind:load to:0x0210fda0 module:overlay(4) -from:0x0210141c kind:load to:0x0205785c module:main +from:0x0210141c kind:load to:0x02057854 add:0x8 module:main from:0x0210142e kind:thumb_call to:0x021016c0 module:overlay(4) from:0x02101434 kind:thumb_call_arm to:0x0202ea0c module:main from:0x0210145e kind:thumb_call_arm to:0x0202ea18 module:main @@ -181,9 +181,9 @@ from:0x021018d6 kind:thumb_call_arm to:0x02007908 module:main from:0x021018e6 kind:thumb_call_arm to:0x02007908 module:main from:0x0210193c kind:thumb_call_arm to:0x0204f754 module:main from:0x02101958 kind:thumb_call to:0x0203005c module:main -from:0x02101960 kind:load to:0x02057878 module:main +from:0x02101960 kind:load to:0x02057870 add:0x8 module:main from:0x02101964 kind:load to:0x0210fdb4 module:overlay(4) -from:0x02101968 kind:load to:0x0205785c module:main +from:0x02101968 kind:load to:0x02057854 add:0x8 module:main from:0x02101974 kind:load to:0x020eaa98 module:overlay(0) from:0x02101978 kind:load to:0x020eaaf8 module:overlay(0) from:0x0210197c kind:load to:0x020eab34 module:overlay(0) @@ -333,8 +333,8 @@ from:0x02102494 kind:thumb_call_arm to:0x0209d884 module:overlay(0) from:0x0210249c kind:load to:0x027e0ce0 module:dtcm from:0x021024a0 kind:load to:0x020e2508 module:overlay(0) from:0x021024a4 kind:load to:0x020e250c module:overlay(0) -from:0x021024a8 kind:load to:0x02057878 module:main -from:0x021024ac kind:load to:0x0205785c module:main +from:0x021024a8 kind:load to:0x02057870 add:0x8 module:main +from:0x021024ac kind:load to:0x02057854 add:0x8 module:main from:0x021024b0 kind:load to:0x027e0f68 module:dtcm from:0x021024b4 kind:load to:0x027e0fe4 module:dtcm from:0x021024b8 kind:load to:0x027e0fec module:dtcm @@ -2043,9 +2043,9 @@ from:0x0210a176 kind:thumb_call_arm to:0x0202e9dc module:main from:0x0210a17e kind:thumb_call to:0x02030274 module:main from:0x0210a460 kind:load to:0x020e6c88 module:overlay(0) from:0x0210a464 kind:load to:0x027e0ce0 module:dtcm -from:0x0210a468 kind:load to:0x02057878 module:main +from:0x0210a468 kind:load to:0x02057870 add:0x8 module:main from:0x0210a46c kind:load to:0x02110934 module:overlay(4) -from:0x0210a470 kind:load to:0x0205785c module:main +from:0x0210a470 kind:load to:0x02057854 add:0x8 module:main from:0x0210a474 kind:load to:0x021104a0 module:overlay(4) from:0x0210a478 kind:load to:0x027e0fc8 module:dtcm from:0x0210a47c kind:load to:0x027e0fcc module:dtcm @@ -2520,8 +2520,8 @@ from:0x0210c4da kind:thumb_call_arm to:0x02097674 module:overlay(0) from:0x0210c4e0 kind:thumb_call to:0x0203005c module:main from:0x0210c4e6 kind:thumb_call to:0x0203005c module:main from:0x0210c4f0 kind:load to:0x027e0d44 module:dtcm -from:0x0210c4f8 kind:load to:0x02057878 module:main -from:0x0210c4fc kind:load to:0x0205785c module:main +from:0x0210c4f8 kind:load to:0x02057870 add:0x8 module:main +from:0x0210c4fc kind:load to:0x02057854 add:0x8 module:main from:0x0210c500 kind:load to:0x027e0f68 module:dtcm from:0x0210c504 kind:load to:0x027e0fec module:dtcm from:0x0210c508 kind:load to:0x027e0c68 module:dtcm @@ -2572,8 +2572,8 @@ from:0x0210c7c8 kind:thumb_call_arm to:0x0201b3c4 module:main from:0x0210c7d2 kind:thumb_call_arm to:0x0201e4cc module:main from:0x0210c7f0 kind:load to:0x020ec820 module:overlay(0) from:0x0210c7f4 kind:load to:0x027e0ce0 module:dtcm -from:0x0210c7f8 kind:load to:0x02057878 module:main -from:0x0210c7fc kind:load to:0x0205785c module:main +from:0x0210c7f8 kind:load to:0x02057870 add:0x8 module:main +from:0x0210c7fc kind:load to:0x02057854 add:0x8 module:main from:0x0210c820 kind:thumb_call_arm to:0x02047024 module:main from:0x0210c826 kind:thumb_call to:0x020bd718 module:overlay(0) from:0x0210c84a kind:thumb_call_arm to:0x02018f78 module:main @@ -2593,7 +2593,7 @@ from:0x0210ca6c kind:load to:0x027e0ce0 module:dtcm from:0x0210ca70 kind:load to:0x0210f9c8 module:overlay(4) from:0x0210ca74 kind:load to:0x0210f9cc module:overlay(4) from:0x0210ca78 kind:load to:0x02110d0c module:overlay(4) -from:0x0210ca7c kind:load to:0x02057878 module:main +from:0x0210ca7c kind:load to:0x02057870 add:0x8 module:main from:0x0210ca80 kind:load to:0x02057840 module:main from:0x0210caee kind:thumb_call to:0x0202d5dc module:main from:0x0210cb10 kind:thumb_call to:0x021026f0 module:overlay(4) @@ -2856,7 +2856,7 @@ from:0x0210e2c8 kind:thumb_call to:0x0210de48 module:overlay(4) from:0x0210e2e8 kind:load to:0x027e0d38 module:dtcm from:0x0210e2ec kind:load to:0x027e1060 module:dtcm from:0x0210e2f0 kind:load to:0x02111058 module:overlay(4) -from:0x0210e2f4 kind:load to:0x02057878 module:main +from:0x0210e2f4 kind:load to:0x02057870 add:0x8 module:main from:0x0210e2f8 kind:load to:0x02057840 module:main from:0x0210e302 kind:thumb_call to:0x0203014c module:main from:0x0210e332 kind:thumb_call_arm to:0x0202e9dc module:main @@ -2901,7 +2901,7 @@ from:0x0210e6c0 kind:thumb_call_arm to:0x020c0bdc module:overlay(0) from:0x0210e6c8 kind:load to:0x027e0ce0 module:dtcm from:0x0210e6cc kind:load to:0x021110a0 module:overlay(4) from:0x0210e6d0 kind:load to:0x02111088 module:overlay(4) -from:0x0210e6d4 kind:load to:0x02057878 module:main +from:0x0210e6d4 kind:load to:0x02057870 add:0x8 module:main from:0x0210e6d8 kind:load to:0x02057840 module:main from:0x0210e6dc kind:load to:0x0210fcf8 module:overlay(4) from:0x0210e6e0 kind:load to:0x02111070 module:overlay(4) @@ -2949,7 +2949,7 @@ from:0x0210ea68 kind:thumb_call_arm to:0x020c0bdc module:overlay(0) from:0x0210ea70 kind:load to:0x027e0d38 module:dtcm from:0x0210ea74 kind:load to:0x027e0900 module:dtcm from:0x0210ea7c kind:load to:0x0216d918 module:overlay(29) -from:0x0210ea80 kind:load to:0x02057878 module:main +from:0x0210ea80 kind:load to:0x02057870 add:0x8 module:main from:0x0210ea84 kind:load to:0x02057808 module:main from:0x0210ea88 kind:load to:0x021110a0 module:overlay(4) from:0x0210ea8c kind:load to:0x027e0ce0 module:dtcm @@ -2988,9 +2988,9 @@ from:0x0210ecf2 kind:thumb_call to:0x02101c88 module:overlay(4) from:0x0210ecfc kind:thumb_call to:0x020300cc module:main from:0x0210ed02 kind:thumb_call to:0x020300cc module:main from:0x0210ed08 kind:thumb_call to:0x0203005c module:main -from:0x0210ed10 kind:load to:0x02057878 module:main +from:0x0210ed10 kind:load to:0x02057870 add:0x8 module:main from:0x0210ed14 kind:load to:0x02111024 module:overlay(4) -from:0x0210ed18 kind:load to:0x0205785c module:main +from:0x0210ed18 kind:load to:0x02057854 add:0x8 module:main from:0x0210edbc kind:thumb_call_arm to:0x0202e9dc module:main from:0x0210edc4 kind:thumb_call_arm to:0x020a33fc module:overlay(0) from:0x0210ede4 kind:thumb_call_arm to:0x020078f4 module:main @@ -3010,8 +3010,8 @@ from:0x0210ef6e kind:thumb_call to:0x0210f010 module:overlay(4) from:0x0210ef74 kind:thumb_call to:0x0203005c module:main from:0x0210ef80 kind:load to:0x027e0d38 module:dtcm from:0x0210ef84 kind:load to:0x027e0f7c module:dtcm -from:0x0210ef88 kind:load to:0x02057878 module:main -from:0x0210ef8c kind:load to:0x0205785c module:main +from:0x0210ef88 kind:load to:0x02057870 add:0x8 module:main +from:0x0210ef8c kind:load to:0x02057854 add:0x8 module:main from:0x0210ef9c kind:thumb_call_arm to:0x0207cd74 module:overlay(0) from:0x0210efba kind:thumb_call to:0x0203009c module:main from:0x0210efcc kind:thumb_call_arm to:0x0209d710 module:overlay(0) @@ -3019,8 +3019,8 @@ from:0x0210efdc kind:thumb_call to:0x02101cfc module:overlay(4) from:0x0210efe6 kind:thumb_call to:0x0203005c module:main from:0x0210eff4 kind:thumb_call_arm to:0x020a34c8 module:overlay(0) from:0x0210effa kind:thumb_call to:0x0203005c module:main -from:0x0210f004 kind:load to:0x02057878 module:main -from:0x0210f008 kind:load to:0x0205785c module:main +from:0x0210f004 kind:load to:0x02057870 add:0x8 module:main +from:0x0210f008 kind:load to:0x02057854 add:0x8 module:main from:0x0210f00c kind:load to:0x027e0f7c module:dtcm from:0x0210f040 kind:thumb_call_arm to:0x020078f4 module:main from:0x0210f05c kind:thumb_call_arm to:0x02097354 module:overlay(0) diff --git a/config/eur/arm9/overlays/ov009/relocs.txt b/config/eur/arm9/overlays/ov009/relocs.txt index f970ca04..4b8e0c74 100644 --- a/config/eur/arm9/overlays/ov009/relocs.txt +++ b/config/eur/arm9/overlays/ov009/relocs.txt @@ -1999,10 +1999,10 @@ from:0x0211e4b4 kind:load to:0x0211f530 module:overlay(9) from:0x0211e4f8 kind:arm_call to:0x0204f8d4 module:main from:0x0211e538 kind:arm_call to:0x0204f8d4 module:main from:0x0211e574 kind:arm_call to:0x0204f8d4 module:main -from:0x0211e57c kind:load to:0x02057878 module:main +from:0x0211e57c kind:load to:0x02057870 add:0x8 module:main from:0x0211e580 kind:load to:0x0211f538 module:overlay(9) from:0x0211e584 kind:load to:0x0211ea50 module:overlay(9) -from:0x0211e588 kind:load to:0x0205785c module:main +from:0x0211e588 kind:load to:0x02057854 add:0x8 module:main from:0x0211e58c kind:load to:0x0211f544 module:overlay(9) from:0x0211e590 kind:load to:0x0203005d module:main from:0x0211e594 kind:load to:0x0211f538 module:overlay(9) diff --git a/config/eur/arm9/overlays/ov015/relocs.txt b/config/eur/arm9/overlays/ov015/relocs.txt index d10bd648..83b49b7c 100644 --- a/config/eur/arm9/overlays/ov015/relocs.txt +++ b/config/eur/arm9/overlays/ov015/relocs.txt @@ -1331,8 +1331,8 @@ from:0x0212a240 kind:arm_call to:0x0212b5dc module:overlay(15) from:0x0212a254 kind:arm_call to:0x0202e9f4 module:main from:0x0212a270 kind:arm_call to:0x0212b7f4 module:overlay(15) from:0x0212a278 kind:arm_call_thumb to:0x0203010c module:main -from:0x0212a288 kind:load to:0x02057878 module:main -from:0x0212a28c kind:load to:0x0205785c module:main +from:0x0212a288 kind:load to:0x02057870 add:0x8 module:main +from:0x0212a28c kind:load to:0x02057854 add:0x8 module:main from:0x0212a290 kind:load to:0x02057840 module:main from:0x0212a294 kind:load to:0x0218a348 module:overlay(15) from:0x0212a298 kind:load to:0x027e0ce0 module:dtcm @@ -11767,12 +11767,12 @@ from:0x02184f84 kind:arm_call to:0x0202e9dc module:main from:0x02184f98 kind:arm_call to:0x020a5d10 module:overlay(0) from:0x02184fa4 kind:arm_call_thumb to:0x020a9588 module:overlay(0) from:0x02184fc4 kind:load to:0x027e0ce0 module:dtcm -from:0x02184fc8 kind:load to:0x02057878 module:main -from:0x02184fcc kind:load to:0x0205785c module:main +from:0x02184fc8 kind:load to:0x02057870 add:0x8 module:main +from:0x02184fcc kind:load to:0x02057854 add:0x8 module:main from:0x02184fd0 kind:load to:0x0203010d module:main from:0x02184fd4 kind:load to:0x02184fdc module:overlay(15) from:0x02184fd8 kind:load to:0x0218726c module:overlay(15) -from:0x02184ffc kind:load to:0x02057878 module:main +from:0x02184ffc kind:load to:0x02057870 add:0x8 module:main from:0x02185000 kind:load to:0x02057840 module:main from:0x0218505c kind:arm_call to:0x020a5ccc module:overlay(0) from:0x02185070 kind:arm_call to:0x0204f754 module:main @@ -12185,7 +12185,7 @@ from:0x02187dd0 kind:arm_call to:0x0204f8d4 module:main from:0x02187e08 kind:arm_call to:0x0204f8d4 module:main from:0x02187e44 kind:arm_call to:0x0204f8d4 module:main from:0x02187e84 kind:arm_call to:0x0204f8d4 module:main -from:0x02187e8c kind:load to:0x02057878 module:main +from:0x02187e8c kind:load to:0x02057870 add:0x8 module:main from:0x02187e90 kind:load to:0x0218f55c module:overlay(15) from:0x02187e94 kind:load to:0x0218b8fc module:overlay(15) from:0x02187e98 kind:load to:0x02057840 module:main @@ -12196,7 +12196,7 @@ from:0x02187ea8 kind:load to:0x0218b90c module:overlay(15) from:0x02187eac kind:load to:0x0218f588 module:overlay(15) from:0x02187eb0 kind:load to:0x0218f57c module:overlay(15) from:0x02187eb4 kind:load to:0x0218b91c module:overlay(15) -from:0x02187eb8 kind:load to:0x0205785c module:main +from:0x02187eb8 kind:load to:0x02057854 add:0x8 module:main from:0x02187ebc kind:load to:0x0218f5a4 module:overlay(15) from:0x02187ec0 kind:load to:0x0203005d module:main from:0x02187ec4 kind:load to:0x0218f598 module:overlay(15) diff --git a/config/eur/arm9/overlays/ov018/relocs.txt b/config/eur/arm9/overlays/ov018/relocs.txt index 2a6ff2f0..2b3aa4ae 100644 --- a/config/eur/arm9/overlays/ov018/relocs.txt +++ b/config/eur/arm9/overlays/ov018/relocs.txt @@ -127,7 +127,7 @@ from:0x0215c8f4 kind:arm_call_thumb to:0x0203005c module:main from:0x0215c8fc kind:arm_call_thumb to:0x0203010c module:main from:0x0215c908 kind:load to:0x0216c0c0 module:overlay(18) from:0x0215c90c kind:load to:0x02057840 module:main -from:0x0215c910 kind:load to:0x0205785c module:main +from:0x0215c910 kind:load to:0x02057854 add:0x8 module:main from:0x0215c914 kind:load to:0x027e0ce0 module:dtcm from:0x0215c918 kind:load to:0x0216b45c module:overlay(18) from:0x0215c930 kind:arm_call_thumb to:0x020c0c08 module:overlay(0) diff --git a/config/eur/arm9/overlays/ov025/relocs.txt b/config/eur/arm9/overlays/ov025/relocs.txt index c1e77cfd..fd60c489 100644 --- a/config/eur/arm9/overlays/ov025/relocs.txt +++ b/config/eur/arm9/overlays/ov025/relocs.txt @@ -665,7 +665,7 @@ from:0x02173580 kind:load to:0x020e72e8 add:0x8 module:overlay(0) from:0x02173588 kind:load to:0x027e0fe4 module:dtcm from:0x021735a0 kind:arm_call to:0x0217345c module:overlay(25) from:0x02173600 kind:load to:0x027e10b4 module:dtcm -from:0x02173604 kind:load to:0x02183f78 module:overlays(30,31) +from:0x02173604 kind:load to:0x02183f78 module:overlay(30) from:0x021737b8 kind:arm_call to:0x020c37ec module:overlay(0) from:0x02173804 kind:arm_call to:0x020c3674 module:overlay(0) from:0x02173898 kind:arm_call to:0x020c3674 module:overlay(0) diff --git a/config/eur/arm9/overlays/ov026/relocs.txt b/config/eur/arm9/overlays/ov026/relocs.txt index 64465e87..43a0f011 100644 --- a/config/eur/arm9/overlays/ov026/relocs.txt +++ b/config/eur/arm9/overlays/ov026/relocs.txt @@ -414,7 +414,7 @@ from:0x0217076c kind:arm_call to:0x020c5774 module:overlay(0) from:0x0217078c kind:load to:0x027e0e60 module:dtcm from:0x02170790 kind:load to:0x027e0f94 module:dtcm from:0x021707a4 kind:load to:0x027e10b4 module:dtcm -from:0x021707a8 kind:load to:0x02183f84 module:overlays(30,31,32) +from:0x021707a8 kind:load to:0x02183f84 module:overlays(30,32) from:0x021707c0 kind:arm_call to:0x020c1bfc module:overlay(0) from:0x021707e4 kind:arm_call to:0x020cbee8 module:overlay(0) from:0x021707ec kind:arm_call to:0x020cc138 module:overlay(0) diff --git a/config/eur/arm9/overlays/ov031/delinks.txt b/config/eur/arm9/overlays/ov031/delinks.txt index 238d43d7..5d5e1607 100644 --- a/config/eur/arm9/overlays/ov031/delinks.txt +++ b/config/eur/arm9/overlays/ov031/delinks.txt @@ -7,3 +7,8 @@ src/31_Shop/Actor/ActorShopItem.cpp: .text start:0x0217dbdc end:0x02180708 + .rodata start:0x021818e8 end:0x02181a88 + .init start:0x02181b6c end:0x02181f58 + .ctor start:0x02182080 end:0x02182084 + .data start:0x02182290 end:0x02183a98 + .bss start:0x02183e88 end:0x02184154 diff --git a/config/eur/arm9/overlays/ov031/relocs.txt b/config/eur/arm9/overlays/ov031/relocs.txt index e57ef64b..5d23e731 100644 --- a/config/eur/arm9/overlays/ov031/relocs.txt +++ b/config/eur/arm9/overlays/ov031/relocs.txt @@ -283,39 +283,39 @@ from:0x0217dbb4 kind:arm_call to:0x0202b894 module:main from:0x0217dbf4 kind:arm_call to:0x0202e9dc module:main from:0x0217dc00 kind:arm_call to:0x0217e40c module:overlay(31) from:0x0217dc14 kind:load to:0x027e0fe0 module:dtcm -from:0x0217dc18 kind:load to:0x021832d4 module:overlay(31) +from:0x0217dc18 kind:load to:0x021832cc module:overlay(31) add:0x8 from:0x0217dc34 kind:arm_call to:0x0202e9dc module:main from:0x0217dc40 kind:arm_call to:0x0217e40c module:overlay(31) from:0x0217dc54 kind:load to:0x027e0fe0 module:dtcm -from:0x0217dc58 kind:load to:0x021831e8 module:overlay(31) +from:0x0217dc58 kind:load to:0x021831e0 module:overlay(31) add:0x8 from:0x0217dc74 kind:arm_call to:0x0202e9dc module:main from:0x0217dc80 kind:arm_call to:0x0217e40c module:overlay(31) from:0x0217dc94 kind:load to:0x027e0fe0 module:dtcm -from:0x0217dc98 kind:load to:0x021830fc module:overlay(31) +from:0x0217dc98 kind:load to:0x021830f4 module:overlay(31) add:0x8 from:0x0217dcb4 kind:arm_call to:0x0202e9dc module:main from:0x0217dcc0 kind:arm_call to:0x0217e40c module:overlay(31) from:0x0217dcd4 kind:load to:0x027e0fe0 module:dtcm -from:0x0217dcd8 kind:load to:0x02183010 module:overlay(31) +from:0x0217dcd8 kind:load to:0x02183008 module:overlay(31) add:0x8 from:0x0217dcf4 kind:arm_call to:0x0202e9dc module:main from:0x0217dd00 kind:arm_call to:0x0217e40c module:overlay(31) from:0x0217dd14 kind:load to:0x027e0fe0 module:dtcm -from:0x0217dd18 kind:load to:0x02182e38 module:overlay(31) +from:0x0217dd18 kind:load to:0x02182e30 module:overlay(31) add:0x8 from:0x0217dd34 kind:arm_call to:0x0202e9dc module:main from:0x0217dd40 kind:arm_call to:0x0217e40c module:overlay(31) from:0x0217dd54 kind:load to:0x027e0fe0 module:dtcm -from:0x0217dd58 kind:load to:0x02182c60 module:overlay(31) +from:0x0217dd58 kind:load to:0x02182c58 module:overlay(31) add:0x8 from:0x0217dd74 kind:arm_call to:0x0202e9dc module:main from:0x0217dd80 kind:arm_call to:0x0217e40c module:overlay(31) from:0x0217dd94 kind:load to:0x027e0fe0 module:dtcm -from:0x0217dd98 kind:load to:0x02182f24 module:overlay(31) +from:0x0217dd98 kind:load to:0x02182f1c module:overlay(31) add:0x8 from:0x0217ddb4 kind:arm_call to:0x0202e9dc module:main from:0x0217ddc0 kind:arm_call to:0x0217e40c module:overlay(31) from:0x0217ddd4 kind:load to:0x027e0fe0 module:dtcm -from:0x0217ddd8 kind:load to:0x02182d4c module:overlay(31) +from:0x0217ddd8 kind:load to:0x02182d44 module:overlay(31) add:0x8 from:0x0217ddf4 kind:arm_call to:0x0202e9dc module:main from:0x0217de00 kind:arm_call to:0x0217e40c module:overlay(31) from:0x0217de14 kind:load to:0x027e0fe0 module:dtcm -from:0x0217de18 kind:load to:0x02182b74 module:overlay(31) +from:0x0217de18 kind:load to:0x02182b6c module:overlay(31) add:0x8 from:0x0217de34 kind:arm_call to:0x0202e9dc module:main from:0x0217de40 kind:arm_call to:0x0217e4f4 module:overlay(31) from:0x0217de48 kind:load to:0x027e0fe0 module:dtcm @@ -325,23 +325,23 @@ from:0x0217de78 kind:load to:0x027e0fe0 module:dtcm from:0x0217de94 kind:arm_call to:0x0202e9dc module:main from:0x0217dea0 kind:arm_call to:0x0217e40c module:overlay(31) from:0x0217deb4 kind:load to:0x027e0fe0 module:dtcm -from:0x0217deb8 kind:load to:0x021828b0 module:overlay(31) +from:0x0217deb8 kind:load to:0x021828a8 module:overlay(31) add:0x8 from:0x0217ded4 kind:arm_call to:0x0202e9dc module:main from:0x0217dee0 kind:arm_call to:0x0217e40c module:overlay(31) from:0x0217def4 kind:load to:0x027e0fe0 module:dtcm -from:0x0217def8 kind:load to:0x021827c4 module:overlay(31) +from:0x0217def8 kind:load to:0x021827bc module:overlay(31) add:0x8 from:0x0217df14 kind:arm_call to:0x0202e9dc module:main from:0x0217df20 kind:arm_call to:0x0217e40c module:overlay(31) from:0x0217df34 kind:load to:0x027e0fe0 module:dtcm -from:0x0217df38 kind:load to:0x021826d8 module:overlay(31) +from:0x0217df38 kind:load to:0x021826d0 module:overlay(31) add:0x8 from:0x0217df54 kind:arm_call to:0x0202e9dc module:main from:0x0217df60 kind:arm_call to:0x0217e588 module:overlay(31) from:0x0217df74 kind:load to:0x027e0fe0 module:dtcm -from:0x0217df78 kind:load to:0x02182550 module:overlay(31) +from:0x0217df78 kind:load to:0x02182548 module:overlay(31) add:0x8 from:0x0217df94 kind:arm_call to:0x0202e9dc module:main from:0x0217dfa0 kind:arm_call to:0x0217e588 module:overlay(31) from:0x0217dfb4 kind:load to:0x027e0fe0 module:dtcm -from:0x0217dfb8 kind:load to:0x0218248c module:overlay(31) +from:0x0217dfb8 kind:load to:0x02182484 module:overlay(31) add:0x8 from:0x0217dfd4 kind:arm_call to:0x0202e9dc module:main from:0x0217dfe0 kind:arm_call to:0x0217e5b8 module:overlay(31) from:0x0217dfe8 kind:load to:0x027e0fe0 module:dtcm @@ -357,8 +357,8 @@ from:0x0217e194 kind:arm_call to:0x0202e9dc module:main from:0x0217e1dc kind:arm_call to:0x0202e9dc module:main from:0x0217e224 kind:arm_call to:0x0202e9dc module:main from:0x0217e268 kind:arm_call to:0x0217dfec module:overlay(31) -from:0x0217e278 kind:load to:0x02057878 module:main -from:0x0217e27c kind:load to:0x0205785c module:main +from:0x0217e278 kind:load to:0x02057870 add:0x8 module:main +from:0x0217e27c kind:load to:0x02057854 add:0x8 module:main from:0x0217e280 kind:load to:0x027e0fb4 module:dtcm from:0x0217e284 kind:load to:0x021822b0 module:overlay(31) from:0x0217e288 kind:load to:0x027e0ce0 module:dtcm @@ -371,71 +371,71 @@ from:0x0217e2a0 kind:load to:0x02183e88 module:overlay(31) from:0x0217e2a4 kind:load to:0x02183a44 module:overlay(31) from:0x0217e2a8 kind:load to:0x02183a60 module:overlay(31) from:0x0217e2ac kind:load to:0x02183a7c module:overlay(31) -from:0x0217e2b0 kind:load to:0x021818f8 module:overlay(31) +from:0x0217e2b0 kind:load to:0x021818e8 add:0x10 module:overlay(31) from:0x0217e3cc kind:load to:0x021840a8 module:overlay(31) from:0x0217e3d0 kind:load to:0x021840f0 module:overlay(31) from:0x0217e3d4 kind:load to:0x02183e88 module:overlay(31) from:0x0217e3e0 kind:arm_call to:0x020c1554 module:overlay(0) -from:0x0217e408 kind:load to:0x021834ac module:overlay(31) +from:0x0217e408 kind:load to:0x021834a4 add:0x8 module:overlay(31) from:0x0217e414 kind:arm_call to:0x0217e3d8 module:overlay(31) -from:0x0217e45c kind:load to:0x021833c0 module:overlay(31) +from:0x0217e45c kind:load to:0x021833b8 module:overlay(31) add:0x8 from:0x0217e46c kind:arm_call to:0x0217e40c module:overlay(31) from:0x0217e498 kind:arm_call to:0x0202e9dc module:main from:0x0217e4a4 kind:arm_call_thumb to:0x02079ed8 module:overlay(0) from:0x0217e4d8 kind:arm_call_thumb to:0x02079f5c module:overlay(0) -from:0x0217e4e8 kind:load to:0x02182a88 module:overlay(31) +from:0x0217e4e8 kind:load to:0x02182a80 module:overlay(31) add:0x8 from:0x0217e4ec kind:load to:0x027e0ce0 module:dtcm from:0x0217e4f0 kind:load to:0x021818e8 module:overlay(31) from:0x0217e500 kind:arm_call to:0x0217e40c module:overlay(31) from:0x0217e52c kind:arm_call to:0x0202e9dc module:main from:0x0217e538 kind:arm_call_thumb to:0x02079ed8 module:overlay(0) from:0x0217e56c kind:arm_call_thumb to:0x02079f5c module:overlay(0) -from:0x0217e57c kind:load to:0x0218299c module:overlay(31) +from:0x0217e57c kind:load to:0x02182994 module:overlay(31) add:0x8 from:0x0217e580 kind:load to:0x027e0ce0 module:dtcm from:0x0217e584 kind:load to:0x021818e8 module:overlay(31) from:0x0217e590 kind:arm_call to:0x0217e3d8 module:overlay(31) -from:0x0217e5b4 kind:load to:0x02182614 module:overlay(31) +from:0x0217e5b4 kind:load to:0x0218260c module:overlay(31) add:0x8 from:0x0217e5c0 kind:arm_call to:0x0217e588 module:overlay(31) -from:0x0217e5d4 kind:load to:0x021823c8 module:overlay(31) +from:0x0217e5d4 kind:load to:0x021823c0 module:overlay(31) add:0x8 from:0x0217e5e0 kind:arm_call to:0x020c1730 module:overlay(0) from:0x0217e5f4 kind:arm_call to:0x020c1730 module:overlay(0) from:0x0217e5fc kind:arm_call to:0x0202ea0c module:main from:0x0217e610 kind:arm_call to:0x020c1730 module:overlay(0) from:0x0217e654 kind:arm_call to:0x0217e608 module:overlay(31) -from:0x0217e660 kind:load to:0x021833c0 module:overlay(31) +from:0x0217e660 kind:load to:0x021833b8 module:overlay(31) add:0x8 from:0x0217e69c kind:arm_call to:0x0217e608 module:overlay(31) from:0x0217e6a4 kind:arm_call to:0x0202ea0c module:main -from:0x0217e6b0 kind:load to:0x021833c0 module:overlay(31) +from:0x0217e6b0 kind:load to:0x021833b8 module:overlay(31) add:0x8 from:0x0217e6ec kind:arm_call to:0x0217e608 module:overlay(31) -from:0x0217e6f8 kind:load to:0x021833c0 module:overlay(31) +from:0x0217e6f8 kind:load to:0x021833b8 module:overlay(31) add:0x8 from:0x0217e70c kind:arm_call to:0x0217e6b4 module:overlay(31) from:0x0217e728 kind:arm_call to:0x0217e6b4 module:overlay(31) from:0x0217e730 kind:arm_call to:0x0202ea0c module:main from:0x0217e75c kind:arm_call_thumb to:0x02079f3c module:overlay(0) from:0x0217e764 kind:arm_call to:0x0202ea0c module:main from:0x0217e7f8 kind:arm_call to:0x0217e6b4 module:overlay(31) -from:0x0217e804 kind:load to:0x02182a88 module:overlay(31) +from:0x0217e804 kind:load to:0x02182a80 module:overlay(31) add:0x8 from:0x0217e808 kind:load to:0x02183e88 module:overlay(31) from:0x0217e82c kind:arm_call_thumb to:0x02079f3c module:overlay(0) from:0x0217e834 kind:arm_call to:0x0202ea0c module:main from:0x0217e8c8 kind:arm_call to:0x0217e6b4 module:overlay(31) from:0x0217e8d0 kind:arm_call to:0x0202ea0c module:main -from:0x0217e8dc kind:load to:0x02182a88 module:overlay(31) +from:0x0217e8dc kind:load to:0x02182a80 module:overlay(31) add:0x8 from:0x0217e8e0 kind:load to:0x02183e88 module:overlay(31) from:0x0217e904 kind:arm_call_thumb to:0x02079f3c module:overlay(0) from:0x0217e90c kind:arm_call to:0x0202ea0c module:main from:0x0217e91c kind:arm_call to:0x0217e6b4 module:overlay(31) -from:0x0217e928 kind:load to:0x0218299c module:overlay(31) +from:0x0217e928 kind:load to:0x02182994 module:overlay(31) add:0x8 from:0x0217e94c kind:arm_call_thumb to:0x02079f3c module:overlay(0) from:0x0217e954 kind:arm_call to:0x0202ea0c module:main from:0x0217e964 kind:arm_call to:0x0217e6b4 module:overlay(31) from:0x0217e96c kind:arm_call to:0x0202ea0c module:main -from:0x0217e978 kind:load to:0x0218299c module:overlay(31) +from:0x0217e978 kind:load to:0x02182994 module:overlay(31) add:0x8 from:0x0217ea00 kind:arm_call to:0x0217dfec module:overlay(31) from:0x0217ea0c kind:load to:0x027e0fb4 module:dtcm -from:0x0217ea10 kind:load to:0x02181a08 module:overlay(31) -from:0x0217ea14 kind:load to:0x02181a18 module:overlay(31) -from:0x0217ea18 kind:load to:0x02181a28 module:overlay(31) +from:0x0217ea10 kind:load to:0x021818e8 add:0x120 module:overlay(31) +from:0x0217ea14 kind:load to:0x021818e8 add:0x130 module:overlay(31) +from:0x0217ea18 kind:load to:0x021818e8 add:0x140 module:overlay(31) from:0x0217ea1c kind:load to:0x021818e8 module:overlay(31) from:0x0217ea20 kind:load to:0x021840a8 module:overlay(31) from:0x0217ea24 kind:load to:0x021840f0 module:overlay(31) @@ -450,8 +450,8 @@ from:0x0217eb10 kind:arm_call to:0x0217dfec module:overlay(31) from:0x0217eb20 kind:load to:0x027e1058 module:dtcm from:0x0217eb24 kind:load to:0x027e0ce0 module:dtcm from:0x0217eb28 kind:load to:0x02183e88 module:overlay(31) -from:0x0217eb2c kind:load to:0x02181a38 module:overlay(31) -from:0x0217eb30 kind:load to:0x02181a48 module:overlay(31) +from:0x0217eb2c kind:load to:0x021818e8 add:0x150 module:overlay(31) +from:0x0217eb30 kind:load to:0x021818e8 add:0x160 module:overlay(31) from:0x0217eb44 kind:arm_call to:0x02180278 module:overlay(31) from:0x0217eb58 kind:arm_call_thumb to:0x0211c144 module:overlay(9) from:0x0217eb70 kind:arm_call to:0x0202e9dc module:main @@ -573,7 +573,7 @@ from:0x0217fc74 kind:arm_call to:0x0217fc08 module:overlay(31) from:0x0217fcac kind:arm_call to:0x02180248 module:overlay(31) from:0x0217fcb8 kind:arm_call to:0x02180260 module:overlay(31) from:0x0217fcc4 kind:arm_call_thumb to:0x0211c980 module:overlay(9) -from:0x0217fcdc kind:load to:0x021819e8 module:overlay(31) +from:0x0217fcdc kind:load to:0x021818e8 add:0x100 module:overlay(31) from:0x0217fce8 kind:arm_call to:0x0217bdb8 module:overlay(31) from:0x0217fd0c kind:arm_call to:0x0217bdb8 module:overlay(31) from:0x0217fd10 kind:arm_call to:0x0217ce6c module:overlay(31) diff --git a/config/eur/arm9/overlays/ov031/symbols.txt b/config/eur/arm9/overlays/ov031/symbols.txt index 8113abda..0473807f 100644 --- a/config/eur/arm9/overlays/ov031/symbols.txt +++ b/config/eur/arm9/overlays/ov031/symbols.txt @@ -1,4 +1,4 @@ -func_ov031_0217bd80 kind:function(arm,size=0x8) addr:0x0217bd80 +_ZN24UnkStruct_ov031_02183e8019func_ov031_0217bd80Ev kind:function(arm,size=0x8) addr:0x0217bd80 func_ov031_0217bd88 kind:function(arm,size=0x18) addr:0x0217bd88 func_ov031_0217bda0 kind:function(arm,size=0xc) addr:0x0217bda0 func_ov031_0217bdac kind:function(arm,size=0x8) addr:0x0217bdac @@ -31,10 +31,10 @@ func_ov031_0217cdd8 kind:function(arm,size=0x20) addr:0x0217cdd8 func_ov031_0217cdf8 kind:function(arm,size=0x20) addr:0x0217cdf8 func_ov031_0217ce18 kind:function(arm,size=0x54) addr:0x0217ce18 func_ov031_0217ce6c kind:function(arm,size=0x24) addr:0x0217ce6c -func_ov031_0217ce90 kind:function(arm,size=0x30) addr:0x0217ce90 -func_ov031_0217cec0 kind:function(arm,size=0x40) addr:0x0217cec0 +HasFreebieCard kind:function(arm,size=0x30) addr:0x0217ce90 +_ZN24UnkStruct_ov031_02183e8019func_ov031_0217cec0Ev kind:function(arm,size=0x40) addr:0x0217cec0 func_ov031_0217cf00 kind:function(arm,size=0x1c) addr:0x0217cf00 -func_ov031_0217cf1c kind:function(arm,size=0x10) addr:0x0217cf1c +_Z19func_ov031_0217cf1cv kind:function(arm,size=0x10) addr:0x0217cf1c func_ov031_0217cf2c kind:function(arm,size=0x34) addr:0x0217cf2c func_ov031_0217cf60 kind:function(arm,size=0x24) addr:0x0217cf60 func_ov031_0217cf84 kind:function(arm,size=0x2c) addr:0x0217cf84 @@ -69,175 +69,175 @@ func_ov031_0217da80 kind:function(arm,size=0x38) addr:0x0217da80 func_ov031_0217dab8 kind:function(arm,size=0x90) addr:0x0217dab8 func_ov031_0217db48 kind:function(arm,size=0x8) addr:0x0217db48 func_ov031_0217db50 kind:function(arm,size=0x8c) addr:0x0217db50 -func_ov031_0217dbdc kind:function(arm,size=0x40) addr:0x0217dbdc -func_ov031_0217dc1c kind:function(arm,size=0x40) addr:0x0217dc1c -func_ov031_0217dc5c kind:function(arm,size=0x40) addr:0x0217dc5c -func_ov031_0217dc9c kind:function(arm,size=0x40) addr:0x0217dc9c -func_ov031_0217dcdc kind:function(arm,size=0x40) addr:0x0217dcdc -func_ov031_0217dd1c kind:function(arm,size=0x40) addr:0x0217dd1c -func_ov031_0217dd5c kind:function(arm,size=0x40) addr:0x0217dd5c -func_ov031_0217dd9c kind:function(arm,size=0x40) addr:0x0217dd9c -func_ov031_0217dddc kind:function(arm,size=0x40) addr:0x0217dddc -func_ov031_0217de1c kind:function(arm,size=0x30) addr:0x0217de1c -func_ov031_0217de4c kind:function(arm,size=0x30) addr:0x0217de4c -func_ov031_0217de7c kind:function(arm,size=0x40) addr:0x0217de7c -func_ov031_0217debc kind:function(arm,size=0x40) addr:0x0217debc -func_ov031_0217defc kind:function(arm,size=0x40) addr:0x0217defc -func_ov031_0217df3c kind:function(arm,size=0x40) addr:0x0217df3c -func_ov031_0217df7c kind:function(arm,size=0x40) addr:0x0217df7c -func_ov031_0217dfbc kind:function(arm,size=0x30) addr:0x0217dfbc -func_ov031_0217dfec kind:function(arm,size=0x54) addr:0x0217dfec -func_ov031_0217e040 kind:function(arm,size=0x274) addr:0x0217e040 -func_ov031_0217e2b4 kind:function(arm,size=0x124) addr:0x0217e2b4 -func_ov031_0217e3d8 kind:function(arm,size=0x34) addr:0x0217e3d8 -func_ov031_0217e40c kind:function(arm,size=0x54) addr:0x0217e40c -func_ov031_0217e460 kind:function(arm,size=0x94) addr:0x0217e460 -func_ov031_0217e4f4 kind:function(arm,size=0x94) addr:0x0217e4f4 -func_ov031_0217e588 kind:function(arm,size=0x30) addr:0x0217e588 -func_ov031_0217e5b8 kind:function(arm,size=0x20) addr:0x0217e5b8 -func_ov031_0217e5d8 kind:function(arm,size=0x14) addr:0x0217e5d8 -func_ov031_0217e5ec kind:function(arm,size=0x1c) addr:0x0217e5ec -func_ov031_0217e608 kind:function(arm,size=0x14) addr:0x0217e608 -func_ov031_0217e61c kind:function(arm,size=0x48) addr:0x0217e61c -func_ov031_0217e664 kind:function(arm,size=0x50) addr:0x0217e664 -func_ov031_0217e6b4 kind:function(arm,size=0x48) addr:0x0217e6b4 -func_ov031_0217e6fc kind:function(arm,size=0x1c) addr:0x0217e6fc -func_ov031_0217e718 kind:function(arm,size=0x24) addr:0x0217e718 -func_ov031_0217e73c kind:function(arm,size=0xd0) addr:0x0217e73c -func_ov031_0217e80c kind:function(arm,size=0xd8) addr:0x0217e80c -func_ov031_0217e8e4 kind:function(arm,size=0x48) addr:0x0217e8e4 -func_ov031_0217e92c kind:function(arm,size=0x50) addr:0x0217e92c -func_ov031_0217e97c kind:function(arm,size=0xac) addr:0x0217e97c -func_ov031_0217ea28 kind:function(arm,size=0x18) addr:0x0217ea28 -func_ov031_0217ea40 kind:function(arm,size=0x1c) addr:0x0217ea40 -func_ov031_0217ea5c kind:function(arm,size=0xd8) addr:0x0217ea5c -func_ov031_0217eb34 kind:function(arm,size=0x60) addr:0x0217eb34 -func_ov031_0217eb94 kind:function(arm,size=0xc) addr:0x0217eb94 -func_ov031_0217eba0 kind:function(arm,size=0x20) addr:0x0217eba0 -func_ov031_0217ebc0 kind:function(arm,size=0x14) addr:0x0217ebc0 -func_ov031_0217ebd4 kind:function(arm,size=0x14) addr:0x0217ebd4 -func_ov031_0217ebe8 kind:function(arm,size=0x1c) addr:0x0217ebe8 -func_ov031_0217ec04 kind:function(arm,size=0x14) addr:0x0217ec04 -func_ov031_0217ec18 kind:function(arm,size=0x1c) addr:0x0217ec18 -func_ov031_0217ec34 kind:function(arm,size=0x14) addr:0x0217ec34 -func_ov031_0217ec48 kind:function(arm,size=0x1c) addr:0x0217ec48 -func_ov031_0217ec64 kind:function(arm,size=0x14) addr:0x0217ec64 -func_ov031_0217ec78 kind:function(arm,size=0x1c) addr:0x0217ec78 -func_ov031_0217ec94 kind:function(arm,size=0x24) addr:0x0217ec94 -func_ov031_0217ecb8 kind:function(arm,size=0x30) addr:0x0217ecb8 -func_ov031_0217ece8 kind:function(arm,size=0x64) addr:0x0217ece8 -func_ov031_0217ed4c kind:function(arm,size=0x1c) addr:0x0217ed4c -func_ov031_0217ed68 kind:function(arm,size=0x60) addr:0x0217ed68 -func_ov031_0217edc8 kind:function(arm,size=0x14) addr:0x0217edc8 -func_ov031_0217eddc kind:function(arm,size=0x98) addr:0x0217eddc -func_ov031_0217ee74 kind:function(arm,size=0x154) addr:0x0217ee74 -func_ov031_0217efc8 kind:function(arm,size=0x68) addr:0x0217efc8 -func_ov031_0217f030 kind:function(arm,size=0x60) addr:0x0217f030 -func_ov031_0217f090 kind:function(arm,size=0x14) addr:0x0217f090 -func_ov031_0217f0a4 kind:function(arm,size=0xc) addr:0x0217f0a4 -func_ov031_0217f0b0 kind:function(arm,size=0x4) addr:0x0217f0b0 -func_ov031_0217f0b4 kind:function(arm,size=0x38) addr:0x0217f0b4 -func_ov031_0217f0ec kind:function(arm,size=0x20) addr:0x0217f0ec -func_ov031_0217f10c kind:function(arm,size=0x8) addr:0x0217f10c -func_ov031_0217f114 kind:function(arm,size=0xc) addr:0x0217f114 -func_ov031_0217f120 kind:function(arm,size=0x334) addr:0x0217f120 -func_ov031_0217f454 kind:function(arm,size=0x50) addr:0x0217f454 -func_ov031_0217f4a4 kind:function(arm,size=0x194) addr:0x0217f4a4 -func_ov031_0217f638 kind:function(arm,size=0x4) addr:0x0217f638 -func_ov031_0217f63c kind:function(arm,size=0x4) addr:0x0217f63c -func_ov031_0217f640 kind:function(arm,size=0xb8) addr:0x0217f640 -func_ov031_0217f6f8 kind:function(arm,size=0xb8) addr:0x0217f6f8 -func_ov031_0217f7b0 kind:function(arm,size=0xb8) addr:0x0217f7b0 -func_ov031_0217f868 kind:function(arm,size=0x24) addr:0x0217f868 -func_ov031_0217f88c kind:function(arm,size=0x8) addr:0x0217f88c -func_ov031_0217f894 kind:function(arm,size=0xc) addr:0x0217f894 -func_ov031_0217f8a0 kind:function(arm,size=0x24) addr:0x0217f8a0 -func_ov031_0217f8c4 kind:function(arm,size=0xc) addr:0x0217f8c4 -func_ov031_0217f8d0 kind:function(arm,size=0xc) addr:0x0217f8d0 -func_ov031_0217f8dc kind:function(arm,size=0xc) addr:0x0217f8dc -func_ov031_0217f8e8 kind:function(arm,size=0x38) addr:0x0217f8e8 -func_ov031_0217f920 kind:function(arm,size=0xc) addr:0x0217f920 -func_ov031_0217f92c kind:function(arm,size=0x48) addr:0x0217f92c -func_ov031_0217f974 kind:function(arm,size=0x98) addr:0x0217f974 -func_ov031_0217fa0c kind:function(arm,size=0x98) addr:0x0217fa0c -func_ov031_0217faa4 kind:function(arm,size=0x60) addr:0x0217faa4 -func_ov031_0217fb04 kind:function(arm,size=0xc) addr:0x0217fb04 -func_ov031_0217fb10 kind:function(arm,size=0xf8) addr:0x0217fb10 -func_ov031_0217fc08 kind:function(arm,size=0x14) addr:0x0217fc08 -func_ov031_0217fc1c kind:function(arm,size=0x28) addr:0x0217fc1c -func_ov031_0217fc44 kind:function(arm,size=0x38) addr:0x0217fc44 -func_ov031_0217fc7c kind:function(arm,size=0x64) addr:0x0217fc7c -func_ov031_0217fce0 kind:function(arm,size=0x18) addr:0x0217fce0 -func_ov031_0217fcf8 kind:function(arm,size=0x5c) addr:0x0217fcf8 -func_ov031_0217fd54 kind:function(arm,size=0x30) addr:0x0217fd54 -func_ov031_0217fd84 kind:function(arm,size=0x7c) addr:0x0217fd84 -func_ov031_0217fe00 kind:function(arm,size=0x2c) addr:0x0217fe00 -func_ov031_0217fe2c kind:function(arm,size=0x2c) addr:0x0217fe2c -func_ov031_0217fe58 kind:function(arm,size=0x2c) addr:0x0217fe58 -func_ov031_0217fe84 kind:function(arm,size=0x2c) addr:0x0217fe84 -func_ov031_0217feb0 kind:function(arm,size=0x2c) addr:0x0217feb0 -func_ov031_0217fedc kind:function(arm,size=0x2c) addr:0x0217fedc -func_ov031_0217ff08 kind:function(arm,size=0x54) addr:0x0217ff08 -func_ov031_0217ff5c kind:function(arm,size=0x40) addr:0x0217ff5c -func_ov031_0217ff9c kind:function(arm,size=0x7c) addr:0x0217ff9c -func_ov031_02180018 kind:function(arm,size=0xc) addr:0x02180018 -func_ov031_02180024 kind:function(arm,size=0xc) addr:0x02180024 -func_ov031_02180030 kind:function(arm,size=0x40) addr:0x02180030 -func_ov031_02180070 kind:function(arm,size=0x54) addr:0x02180070 -func_ov031_021800c4 kind:function(arm,size=0x54) addr:0x021800c4 -func_ov031_02180118 kind:function(arm,size=0x54) addr:0x02180118 -func_ov031_0218016c kind:function(arm,size=0x40) addr:0x0218016c -func_ov031_021801ac kind:function(arm,size=0x34) addr:0x021801ac -func_ov031_021801e0 kind:function(arm,size=0x34) addr:0x021801e0 -func_ov031_02180214 kind:function(arm,size=0x34) addr:0x02180214 -func_ov031_02180248 kind:function(arm,size=0x18) addr:0x02180248 -func_ov031_02180260 kind:function(arm,size=0x18) addr:0x02180260 -func_ov031_02180278 kind:function(arm,size=0x18) addr:0x02180278 -func_ov031_02180290 kind:function(arm,size=0x8) addr:0x02180290 -func_ov031_02180298 kind:function(arm,size=0x8) addr:0x02180298 -func_ov031_021802a0 kind:function(arm,size=0x8) addr:0x021802a0 -func_ov031_021802a8 kind:function(arm,size=0x3c) addr:0x021802a8 -func_ov031_021802e4 kind:function(arm,size=0x8) addr:0x021802e4 -func_ov031_021802ec kind:function(arm,size=0x3c) addr:0x021802ec -func_ov031_02180328 kind:function(arm,size=0x8) addr:0x02180328 -func_ov031_02180330 kind:function(arm,size=0x3c) addr:0x02180330 -func_ov031_0218036c kind:function(arm,size=0x8) addr:0x0218036c -func_ov031_02180374 kind:function(arm,size=0x50) addr:0x02180374 -func_ov031_021803c4 kind:function(arm,size=0x3c) addr:0x021803c4 -func_ov031_02180400 kind:function(arm,size=0x8) addr:0x02180400 -func_ov031_02180408 kind:function(arm,size=0x8) addr:0x02180408 -func_ov031_02180410 kind:function(arm,size=0x8) addr:0x02180410 -func_ov031_02180418 kind:function(arm,size=0x20) addr:0x02180418 -func_ov031_02180438 kind:function(arm,size=0x1c) addr:0x02180438 -func_ov031_02180454 kind:function(arm,size=0x14) addr:0x02180454 -func_ov031_02180468 kind:function(arm,size=0x1c) addr:0x02180468 -func_ov031_02180484 kind:function(arm,size=0x14) addr:0x02180484 -func_ov031_02180498 kind:function(arm,size=0x1c) addr:0x02180498 -func_ov031_021804b4 kind:function(arm,size=0x14) addr:0x021804b4 -func_ov031_021804c8 kind:function(arm,size=0x1c) addr:0x021804c8 -func_ov031_021804e4 kind:function(arm,size=0x14) addr:0x021804e4 -func_ov031_021804f8 kind:function(arm,size=0x1c) addr:0x021804f8 -func_ov031_02180514 kind:function(arm,size=0x14) addr:0x02180514 -func_ov031_02180528 kind:function(arm,size=0x1c) addr:0x02180528 -func_ov031_02180544 kind:function(arm,size=0x14) addr:0x02180544 -func_ov031_02180558 kind:function(arm,size=0x1c) addr:0x02180558 -func_ov031_02180574 kind:function(arm,size=0x14) addr:0x02180574 -func_ov031_02180588 kind:function(arm,size=0x1c) addr:0x02180588 -func_ov031_021805a4 kind:function(arm,size=0x14) addr:0x021805a4 -func_ov031_021805b8 kind:function(arm,size=0x1c) addr:0x021805b8 -func_ov031_021805d4 kind:function(arm,size=0x14) addr:0x021805d4 -func_ov031_021805e8 kind:function(arm,size=0x1c) addr:0x021805e8 -func_ov031_02180604 kind:function(arm,size=0x14) addr:0x02180604 -func_ov031_02180618 kind:function(arm,size=0x1c) addr:0x02180618 -func_ov031_02180634 kind:function(arm,size=0x14) addr:0x02180634 -func_ov031_02180648 kind:function(arm,size=0x1c) addr:0x02180648 -func_ov031_02180664 kind:function(arm,size=0x14) addr:0x02180664 -func_ov031_02180678 kind:function(arm,size=0x1c) addr:0x02180678 -func_ov031_02180694 kind:function(arm,size=0x14) addr:0x02180694 -func_ov031_021806a8 kind:function(arm,size=0x1c) addr:0x021806a8 -func_ov031_021806c4 kind:function(arm,size=0x14) addr:0x021806c4 -func_ov031_021806d8 kind:function(arm,size=0x1c) addr:0x021806d8 -func_ov031_021806f4 kind:function(arm,size=0x14) addr:0x021806f4 +_ZN15ActorShopItemDM6CreateEv kind:function(arm,size=0x40) addr:0x0217dbdc +_ZN20ActorShopItemSoldOut6CreateEv kind:function(arm,size=0x40) addr:0x0217dc1c +_ZN27ActorShopItemHeartContainer6CreateEv kind:function(arm,size=0x40) addr:0x0217dc5c +_ZN19ActorShopItemArrows6CreateEv kind:function(arm,size=0x40) addr:0x0217dc9c +_ZN18ActorShopItemBombs6CreateEv kind:function(arm,size=0x40) addr:0x0217dcdc +_ZN21ActorShopItemBombchus6CreateEv kind:function(arm,size=0x40) addr:0x0217dd1c +_ZN19ActorShopItemQuiver6CreateEv kind:function(arm,size=0x40) addr:0x0217dd5c +_ZN20ActorShopItemBombBag6CreateEv kind:function(arm,size=0x40) addr:0x0217dd9c +_ZN23ActorShopItemBombchuBag6CreateEv kind:function(arm,size=0x40) addr:0x0217dddc +_ZN21ActorShopItemTreasure6CreateEv kind:function(arm,size=0x30) addr:0x0217de1c +_ZN21ActorShopItemShipPart6CreateEv kind:function(arm,size=0x30) addr:0x0217de4c +_ZN16ActorShopItemGem6CreateEv kind:function(arm,size=0x40) addr:0x0217de7c +_ZN19ActorShopItemShield6CreateEv kind:function(arm,size=0x40) addr:0x0217debc +_ZN19ActorShopItemPotion6CreateEv kind:function(arm,size=0x40) addr:0x0217defc +_ZN15ActorShopItemBK6CreateEv kind:function(arm,size=0x40) addr:0x0217df3c +_ZN15ActorShopItemCC6CreateEv kind:function(arm,size=0x40) addr:0x0217df7c +_ZN15ActorShopItemBY6CreateEv kind:function(arm,size=0x30) addr:0x0217dfbc +_Z19func_ov031_0217dfecP9FileEntryS0_PKc kind:function(arm,size=0x54) addr:0x0217dfec +_Z19func_ov031_0217e040v kind:function(arm,size=0x274) addr:0x0217e040 +_Z19func_ov031_0217e2b4v kind:function(arm,size=0x124) addr:0x0217e2b4 +_ZN17ActorShopItemBaseC1Ev kind:function(arm,size=0x34) addr:0x0217e3d8 +_ZN13ActorShopItemC2Ev kind:function(arm,size=0x54) addr:0x0217e40c +_ZN21ActorShopItemShipPartC1Ev kind:function(arm,size=0x94) addr:0x0217e460 +_ZN21ActorShopItemTreasureC1Ev kind:function(arm,size=0x94) addr:0x0217e4f4 +_ZN16ActorShopItemUnkC2Ev kind:function(arm,size=0x30) addr:0x0217e588 +_ZN15ActorShopItemBYC1Ev kind:function(arm,size=0x20) addr:0x0217e5b8 +_ZN17ActorShopItemBaseD1Ev kind:function(arm,size=0x14) addr:0x0217e5d8 +_ZN17ActorShopItemBaseD0Ev kind:function(arm,size=0x1c) addr:0x0217e5ec +_ZN17ActorShopItemBaseD2Ev kind:function(arm,size=0x14) addr:0x0217e608 +_ZN13ActorShopItemD1Ev kind:function(arm,size=0x48) addr:0x0217e61c +_ZN13ActorShopItemD0Ev kind:function(arm,size=0x50) addr:0x0217e664 +_ZN13ActorShopItemD2Ev kind:function(arm,size=0x48) addr:0x0217e6b4 +_ZN20ActorShopItemSoldOutD1Ev kind:function(arm,size=0x1c) addr:0x0217e6fc +_ZN20ActorShopItemSoldOutD0Ev kind:function(arm,size=0x24) addr:0x0217e718 +_ZN21ActorShopItemShipPartD1Ev kind:function(arm,size=0xd0) addr:0x0217e73c +_ZN21ActorShopItemShipPartD0Ev kind:function(arm,size=0xd8) addr:0x0217e80c +_ZN21ActorShopItemTreasureD1Ev kind:function(arm,size=0x48) addr:0x0217e8e4 +_ZN21ActorShopItemTreasureD0Ev kind:function(arm,size=0x50) addr:0x0217e92c +_ZN13ActorShopItem8vfunc_d4Ev kind:function(arm,size=0xac) addr:0x0217e97c +_ZN15ActorShopItemDM8vfunc_d4Ev kind:function(arm,size=0x18) addr:0x0217ea28 +_ZN20ActorShopItemSoldOut8vfunc_d4Ev kind:function(arm,size=0x1c) addr:0x0217ea40 +_ZN21ActorShopItemShipPart8vfunc_d4Ev kind:function(arm,size=0xd8) addr:0x0217ea5c +_ZN21ActorShopItemTreasure8vfunc_d4Ev kind:function(arm,size=0x60) addr:0x0217eb34 +_ZN17ActorShopItemBase4InitEv kind:function(arm,size=0xc) addr:0x0217eb94 +_ZN13ActorShopItem4InitEv kind:function(arm,size=0x20) addr:0x0217eba0 +_ZN15ActorShopItemDM4InitEv kind:function(arm,size=0x14) addr:0x0217ebc0 +_ZN20ActorShopItemSoldOut4InitEv kind:function(arm,size=0x14) addr:0x0217ebd4 +_ZN27ActorShopItemHeartContainer4InitEv kind:function(arm,size=0x1c) addr:0x0217ebe8 +_ZN19ActorShopItemArrows4InitEv kind:function(arm,size=0x14) addr:0x0217ec04 +_ZN19ActorShopItemQuiver4InitEv kind:function(arm,size=0x1c) addr:0x0217ec18 +_ZN18ActorShopItemBombs4InitEv kind:function(arm,size=0x14) addr:0x0217ec34 +_ZN20ActorShopItemBombBag4InitEv kind:function(arm,size=0x1c) addr:0x0217ec48 +_ZN21ActorShopItemBombchus4InitEv kind:function(arm,size=0x14) addr:0x0217ec64 +_ZN23ActorShopItemBombchuBag4InitEv kind:function(arm,size=0x1c) addr:0x0217ec78 +_ZN21ActorShopItemShipPart4InitEv kind:function(arm,size=0x24) addr:0x0217ec94 +_ZN21ActorShopItemTreasure4InitEv kind:function(arm,size=0x30) addr:0x0217ecb8 +_ZN16ActorShopItemGem4InitEv kind:function(arm,size=0x64) addr:0x0217ece8 +_ZN19ActorShopItemShield4InitEv kind:function(arm,size=0x1c) addr:0x0217ed4c +_ZN19ActorShopItemPotion4InitEv kind:function(arm,size=0x60) addr:0x0217ed68 +_ZN16ActorShopItemUnk4InitEv kind:function(arm,size=0x14) addr:0x0217edc8 +_ZN17ActorShopItemBase8vfunc_14Ej kind:function(arm,size=0x98) addr:0x0217eddc +_ZN13ActorShopItem8vfunc_14Ej kind:function(arm,size=0x154) addr:0x0217ee74 +_ZN21ActorShopItemShipPart8vfunc_14Ej kind:function(arm,size=0x68) addr:0x0217efc8 +_ZN16ActorShopItemUnk8vfunc_14Ej kind:function(arm,size=0x60) addr:0x0217f030 +_ZN17ActorShopItemBase8vfunc_18Ej kind:function(arm,size=0x14) addr:0x0217f090 +_ZN13ActorShopItem8vfunc_c8Ev kind:function(arm,size=0xc) addr:0x0217f0a4 +_ZN13ActorShopItem8vfunc_ccEv kind:function(arm,size=0x4) addr:0x0217f0b0 +_ZN13ActorShopItem19func_ov031_0217f0b4Ev kind:function(arm,size=0x38) addr:0x0217f0b4 +_ZN13ActorShopItem8GetPitchEv kind:function(arm,size=0x20) addr:0x0217f0ec +_ZN13ActorShopItem6GetYawEv kind:function(arm,size=0x8) addr:0x0217f10c +_Z19func_ov031_0217f114Pv kind:function(arm,size=0xc) addr:0x0217f114 +_ZN13ActorShopItem19func_ov031_0217f120Ev kind:function(arm,size=0x334) addr:0x0217f120 +_ZN13ActorShopItem8vfunc_20Eb kind:function(arm,size=0x50) addr:0x0217f454 +_ZN21ActorShopItemShipPart8vfunc_20Eb kind:function(arm,size=0x194) addr:0x0217f4a4 +_ZN15ActorShopItemDM8vfunc_20Eb kind:function(arm,size=0x4) addr:0x0217f638 +_ZN16ActorShopItemUnk8vfunc_20Eb kind:function(arm,size=0x4) addr:0x0217f63c +_ZN15ActorShopItemBK8vfunc_1cEPt kind:function(arm,size=0xb8) addr:0x0217f640 +_ZN15ActorShopItemCC8vfunc_1cEPt kind:function(arm,size=0xb8) addr:0x0217f6f8 +_ZN15ActorShopItemBY8vfunc_1cEPt kind:function(arm,size=0xb8) addr:0x0217f7b0 +_ZN13ActorShopItem19GetSoldOutMessageIdEv kind:function(arm,size=0x24) addr:0x0217f868 +_ZN15ActorShopItemDM12GetMessageIdEv kind:function(arm,size=0x8) addr:0x0217f88c +_ZN20ActorShopItemSoldOut12GetMessageIdEv kind:function(arm,size=0xc) addr:0x0217f894 +_ZN27ActorShopItemHeartContainer12GetMessageIdEv kind:function(arm,size=0x24) addr:0x0217f8a0 +_ZN19ActorShopItemArrows12GetMessageIdEv kind:function(arm,size=0xc) addr:0x0217f8c4 +_ZN19ActorShopItemQuiver12GetMessageIdEv kind:function(arm,size=0xc) addr:0x0217f8d0 +_ZN18ActorShopItemBombs12GetMessageIdEv kind:function(arm,size=0xc) addr:0x0217f8dc +_ZN20ActorShopItemBombBag12GetMessageIdEv kind:function(arm,size=0x38) addr:0x0217f8e8 +_ZN21ActorShopItemBombchus12GetMessageIdEv kind:function(arm,size=0xc) addr:0x0217f920 +_ZN23ActorShopItemBombchuBag12GetMessageIdEv kind:function(arm,size=0x48) addr:0x0217f92c +_ZN21ActorShopItemShipPart12GetMessageIdEv kind:function(arm,size=0x98) addr:0x0217f974 +_ZN21ActorShopItemTreasure12GetMessageIdEv kind:function(arm,size=0x98) addr:0x0217fa0c +_ZN16ActorShopItemGem12GetMessageIdEv kind:function(arm,size=0x60) addr:0x0217faa4 +_ZN19ActorShopItemShield12GetMessageIdEv kind:function(arm,size=0xc) addr:0x0217fb04 +_ZN19ActorShopItemPotion12GetMessageIdEv kind:function(arm,size=0xf8) addr:0x0217fb10 +_ZN13ActorShopItem8GetPriceEv kind:function(arm,size=0x14) addr:0x0217fc08 +_ZN27ActorShopItemHeartContainer8GetPriceEv kind:function(arm,size=0x28) addr:0x0217fc1c +_ZN19ActorShopItemPotion8GetPriceEv kind:function(arm,size=0x38) addr:0x0217fc44 +_ZN21ActorShopItemShipPart8GetPriceEv kind:function(arm,size=0x64) addr:0x0217fc7c +_ZN21ActorShopItemTreasure8GetPriceEv kind:function(arm,size=0x18) addr:0x0217fce0 +_ZN13ActorShopItem8vfunc_c0Ev kind:function(arm,size=0x5c) addr:0x0217fcf8 +_ZN13ActorShopItem8vfunc_c4Ev kind:function(arm,size=0x30) addr:0x0217fd54 +_ZN27ActorShopItemHeartContainer8vfunc_c4Ev kind:function(arm,size=0x7c) addr:0x0217fd84 +_ZN19ActorShopItemArrows8vfunc_c4Ev kind:function(arm,size=0x2c) addr:0x0217fe00 +_ZN19ActorShopItemQuiver8vfunc_c4Ev kind:function(arm,size=0x2c) addr:0x0217fe2c +_ZN18ActorShopItemBombs8vfunc_c4Ev kind:function(arm,size=0x2c) addr:0x0217fe58 +_ZN20ActorShopItemBombBag8vfunc_c4Ev kind:function(arm,size=0x2c) addr:0x0217fe84 +_ZN21ActorShopItemBombchus8vfunc_c4Ev kind:function(arm,size=0x2c) addr:0x0217feb0 +_ZN23ActorShopItemBombchuBag8vfunc_c4Ev kind:function(arm,size=0x2c) addr:0x0217fedc +_ZN21ActorShopItemShipPart8vfunc_c4Ev kind:function(arm,size=0x54) addr:0x0217ff08 +_ZN21ActorShopItemTreasure8vfunc_c4Ev kind:function(arm,size=0x40) addr:0x0217ff5c +_ZN16ActorShopItemGem8vfunc_c4Ev kind:function(arm,size=0x7c) addr:0x0217ff9c +_ZN19ActorShopItemShield8vfunc_c4Ev kind:function(arm,size=0xc) addr:0x02180018 +_ZN19ActorShopItemPotion8vfunc_c4Ev kind:function(arm,size=0xc) addr:0x02180024 +_ZN17ActorShopItemBase8vfunc_b4Ev kind:function(arm,size=0x40) addr:0x02180030 +_ZN15ActorShopItemBK8vfunc_b4Ev kind:function(arm,size=0x54) addr:0x02180070 +_ZN15ActorShopItemCC8vfunc_b4Ev kind:function(arm,size=0x54) addr:0x021800c4 +_ZN15ActorShopItemBY8vfunc_b4Ev kind:function(arm,size=0x54) addr:0x02180118 +_ZN17ActorShopItemBase8vfunc_b8Ev kind:function(arm,size=0x40) addr:0x0218016c +_ZN15ActorShopItemBK8vfunc_b8Ev kind:function(arm,size=0x34) addr:0x021801ac +_ZN15ActorShopItemCC8vfunc_b8Ev kind:function(arm,size=0x34) addr:0x021801e0 +_ZN15ActorShopItemBY8vfunc_b8Ev kind:function(arm,size=0x34) addr:0x02180214 +_ZN21ActorShopItemShipPart19func_ov031_02180248Ev kind:function(arm,size=0x18) addr:0x02180248 +_ZN21ActorShopItemShipPart19func_ov031_02180260Ev kind:function(arm,size=0x18) addr:0x02180260 +_ZN21ActorShopItemTreasure19func_ov031_02180278Ev kind:function(arm,size=0x18) addr:0x02180278 +_ZN15ActorShopItemDM8vfunc_d0Ev kind:function(arm,size=0x8) addr:0x02180290 +_ZN20ActorShopItemSoldOut8vfunc_d0Ev kind:function(arm,size=0x8) addr:0x02180298 +_ZN27ActorShopItemHeartContainer8vfunc_d0Ev kind:function(arm,size=0x8) addr:0x021802a0 +_ZN19ActorShopItemArrows8vfunc_d0Ev kind:function(arm,size=0x3c) addr:0x021802a8 +_ZN19ActorShopItemQuiver8vfunc_d0Ev kind:function(arm,size=0x8) addr:0x021802e4 +_ZN18ActorShopItemBombs8vfunc_d0Ev kind:function(arm,size=0x3c) addr:0x021802ec +_ZN20ActorShopItemBombBag8vfunc_d0Ev kind:function(arm,size=0x8) addr:0x02180328 +_ZN21ActorShopItemBombchus8vfunc_d0Ev kind:function(arm,size=0x3c) addr:0x02180330 +_ZN23ActorShopItemBombchuBag8vfunc_d0Ev kind:function(arm,size=0x8) addr:0x0218036c +_ZN21ActorShopItemShipPart8vfunc_d0Ev kind:function(arm,size=0x50) addr:0x02180374 +_ZN21ActorShopItemTreasure8vfunc_d0Ev kind:function(arm,size=0x3c) addr:0x021803c4 +_ZN16ActorShopItemGem8vfunc_d0Ev kind:function(arm,size=0x8) addr:0x02180400 +_ZN19ActorShopItemShield8vfunc_d0Ev kind:function(arm,size=0x8) addr:0x02180408 +_ZN19ActorShopItemPotion8vfunc_d0Ev kind:function(arm,size=0x8) addr:0x02180410 +_ZN16ActorShopItemUnk19func_ov031_02180418Ev kind:function(arm,size=0x20) addr:0x02180418 +_ZN15ActorShopItemBYD0Ev kind:function(arm,size=0x1c) addr:0x02180438 +_ZN15ActorShopItemBYD1Ev kind:function(arm,size=0x14) addr:0x02180454 +_ZN15ActorShopItemCCD0Ev kind:function(arm,size=0x1c) addr:0x02180468 +_ZN15ActorShopItemCCD1Ev kind:function(arm,size=0x14) addr:0x02180484 +_ZN15ActorShopItemBKD0Ev kind:function(arm,size=0x1c) addr:0x02180498 +_ZN15ActorShopItemBKD1Ev kind:function(arm,size=0x14) addr:0x021804b4 +_ZN16ActorShopItemUnkD0Ev kind:function(arm,size=0x1c) addr:0x021804c8 +_ZN16ActorShopItemUnkD1Ev kind:function(arm,size=0x14) addr:0x021804e4 +_ZN19ActorShopItemPotionD0Ev kind:function(arm,size=0x1c) addr:0x021804f8 +_ZN19ActorShopItemPotionD1Ev kind:function(arm,size=0x14) addr:0x02180514 +_ZN19ActorShopItemShieldD0Ev kind:function(arm,size=0x1c) addr:0x02180528 +_ZN19ActorShopItemShieldD1Ev kind:function(arm,size=0x14) addr:0x02180544 +_ZN16ActorShopItemGemD0Ev kind:function(arm,size=0x1c) addr:0x02180558 +_ZN16ActorShopItemGemD1Ev kind:function(arm,size=0x14) addr:0x02180574 +_ZN23ActorShopItemBombchuBagD0Ev kind:function(arm,size=0x1c) addr:0x02180588 +_ZN23ActorShopItemBombchuBagD1Ev kind:function(arm,size=0x14) addr:0x021805a4 +_ZN21ActorShopItemBombchusD0Ev kind:function(arm,size=0x1c) addr:0x021805b8 +_ZN21ActorShopItemBombchusD1Ev kind:function(arm,size=0x14) addr:0x021805d4 +_ZN20ActorShopItemBombBagD0Ev kind:function(arm,size=0x1c) addr:0x021805e8 +_ZN20ActorShopItemBombBagD1Ev kind:function(arm,size=0x14) addr:0x02180604 +_ZN18ActorShopItemBombsD0Ev kind:function(arm,size=0x1c) addr:0x02180618 +_ZN18ActorShopItemBombsD1Ev kind:function(arm,size=0x14) addr:0x02180634 +_ZN19ActorShopItemQuiverD0Ev kind:function(arm,size=0x1c) addr:0x02180648 +_ZN19ActorShopItemQuiverD1Ev kind:function(arm,size=0x14) addr:0x02180664 +_ZN19ActorShopItemArrowsD0Ev kind:function(arm,size=0x1c) addr:0x02180678 +_ZN19ActorShopItemArrowsD1Ev kind:function(arm,size=0x14) addr:0x02180694 +_ZN27ActorShopItemHeartContainerD0Ev kind:function(arm,size=0x1c) addr:0x021806a8 +_ZN27ActorShopItemHeartContainerD1Ev kind:function(arm,size=0x14) addr:0x021806c4 +_ZN15ActorShopItemDMD0Ev kind:function(arm,size=0x1c) addr:0x021806d8 +_ZN15ActorShopItemDMD1Ev kind:function(arm,size=0x14) addr:0x021806f4 func_ov031_02180708 kind:function(arm,size=0x44) addr:0x02180708 func_ov031_0218074c kind:function(arm,size=0x44) addr:0x0218074c func_ov031_02180790 kind:function(arm,size=0x44) addr:0x02180790 @@ -290,14 +290,10 @@ func_ov031_0218186c kind:function(arm,size=0x1c) addr:0x0218186c func_ov031_02181888 kind:function(arm,size=0x14) addr:0x02181888 func_ov031_0218189c kind:function(arm,size=0x4) addr:0x0218189c data_ov031_021818a0 kind:data(any) addr:0x021818a0 -data_ov031_021818e8 kind:data(any) addr:0x021818e8 -data_ov031_021818f8 kind:data(any) addr:0x021818f8 -data_ov031_021819e8 kind:data(any) addr:0x021819e8 -data_ov031_02181a08 kind:data(any) addr:0x02181a08 -data_ov031_02181a18 kind:data(any) addr:0x02181a18 -data_ov031_02181a28 kind:data(any) addr:0x02181a28 -data_ov031_02181a38 kind:data(any) addr:0x02181a38 -data_ov031_02181a48 kind:data(any) addr:0x02181a48 +sShopItemBaseNames kind:data(any) addr:0x021818e8 local +unk$1534 kind:data(any) addr:0x02181a58 local +unk$1554 kind:data(any) addr:0x02181a6c local +@2460 kind:data(any) addr:0x02181a80 local data_ov031_02181a88 kind:data(any) addr:0x02181a88 data_ov031_02181a94 kind:data(any) addr:0x02181a94 data_ov031_02181abc kind:data(any) addr:0x02181abc @@ -306,11 +302,11 @@ data_ov031_02181ad4 kind:data(any) addr:0x02181ad4 data_ov031_02181b10 kind:data(any) addr:0x02181b10 data_ov031_02181b24 kind:data(any) addr:0x02181b24 data_ov031_02181b30 kind:data(any) addr:0x02181b30 -__sinit_ov031_02181b6c kind:function(arm,size=0x3ec) addr:0x02181b6c +__sinit_ActorShopItem.cpp kind:function(arm,size=0x3ec) addr:0x02181b6c local __sinit_ov031_02181f58 kind:function(arm,size=0xa8) addr:0x02181f58 __sinit_ov031_02182000 kind:function(arm,size=0x40) addr:0x02182000 __sinit_ov031_02182040 kind:function(arm,size=0x40) addr:0x02182040 -.p__sinit_ov031_02181b6c kind:data(word) addr:0x02182080 +.p__sinit_ActorShopItem.cpp kind:data(word) addr:0x02182080 local .p__sinit_ov031_02181f58 kind:data(word) addr:0x02182084 .p__sinit_ov031_02182000 kind:data(word) addr:0x02182088 .p__sinit_ov031_02182040 kind:data(word) addr:0x0218208c @@ -332,84 +328,84 @@ data_ov031_0218213c kind:data(any) addr:0x0218213c data_ov031_02182140 kind:data(any) addr:0x02182140 data_ov031_02182144 kind:data(any) addr:0x02182144 data_ov031_02182170 kind:data(any) addr:0x02182170 -data_ov031_02182290 kind:data(any) addr:0x02182290 -data_ov031_02182294 kind:data(any) addr:0x02182294 -data_ov031_02182298 kind:data(any) addr:0x02182298 -data_ov031_0218229c kind:data(any) addr:0x0218229c -data_ov031_021822a0 kind:data(any) addr:0x021822a0 -data_ov031_021822a4 kind:data(any) addr:0x021822a4 -data_ov031_021822a8 kind:data(any) addr:0x021822a8 -data_ov031_021822ac kind:data(any) addr:0x021822ac -data_ov031_021822b0 kind:data(any) addr:0x021822b0 -data_ov031_021822d0 kind:data(any) addr:0x021822d0 -data_ov031_02182318 kind:data(any) addr:0x02182318 -data_ov031_0218236c kind:data(any) addr:0x0218236c -data_ov031_021823c8 kind:data(any) addr:0x021823c8 -data_ov031_0218248c kind:data(any) addr:0x0218248c -data_ov031_02182550 kind:data(any) addr:0x02182550 -data_ov031_02182614 kind:data(any) addr:0x02182614 -data_ov031_021826d8 kind:data(any) addr:0x021826d8 -data_ov031_021827c4 kind:data(any) addr:0x021827c4 -data_ov031_021828b0 kind:data(any) addr:0x021828b0 -data_ov031_0218299c kind:data(any) addr:0x0218299c -data_ov031_02182a88 kind:data(any) addr:0x02182a88 -data_ov031_02182b74 kind:data(any) addr:0x02182b74 -data_ov031_02182c60 kind:data(any) addr:0x02182c60 -data_ov031_02182d4c kind:data(any) addr:0x02182d4c -data_ov031_02182e38 kind:data(any) addr:0x02182e38 -data_ov031_02182f24 kind:data(any) addr:0x02182f24 -data_ov031_02183010 kind:data(any) addr:0x02183010 -data_ov031_021830fc kind:data(any) addr:0x021830fc -data_ov031_021831e8 kind:data(any) addr:0x021831e8 -data_ov031_021832d4 kind:data(any) addr:0x021832d4 -data_ov031_021833c0 kind:data(any) addr:0x021833c0 -data_ov031_021834ac kind:data(any) addr:0x021834ac -data_ov031_02183568 kind:data(any) addr:0x02183568 -data_ov031_02183584 kind:data(any) addr:0x02183584 -data_ov031_021835a0 kind:data(any) addr:0x021835a0 -data_ov031_021835bc kind:data(any) addr:0x021835bc -data_ov031_021835dc kind:data(any) addr:0x021835dc -data_ov031_021835f8 kind:data(any) addr:0x021835f8 -data_ov031_02183618 kind:data(any) addr:0x02183618 -data_ov031_02183634 kind:data(any) addr:0x02183634 -data_ov031_02183654 kind:data(any) addr:0x02183654 -data_ov031_02183670 kind:data(any) addr:0x02183670 -data_ov031_0218368c kind:data(any) addr:0x0218368c -data_ov031_021836a8 kind:data(any) addr:0x021836a8 -data_ov031_021836c4 kind:data(any) addr:0x021836c4 -data_ov031_021836e0 kind:data(any) addr:0x021836e0 -data_ov031_021836fc kind:data(any) addr:0x021836fc -data_ov031_02183714 kind:data(any) addr:0x02183714 -data_ov031_02183730 kind:data(any) addr:0x02183730 -data_ov031_02183750 kind:data(any) addr:0x02183750 -data_ov031_02183770 kind:data(any) addr:0x02183770 -data_ov031_0218378c kind:data(any) addr:0x0218378c -data_ov031_021837ac kind:data(any) addr:0x021837ac -data_ov031_021837c8 kind:data(any) addr:0x021837c8 -data_ov031_021837e4 kind:data(any) addr:0x021837e4 -data_ov031_02183800 kind:data(any) addr:0x02183800 -data_ov031_0218381c kind:data(any) addr:0x0218381c -data_ov031_0218383c kind:data(any) addr:0x0218383c -data_ov031_02183858 kind:data(any) addr:0x02183858 -data_ov031_02183878 kind:data(any) addr:0x02183878 -data_ov031_02183894 kind:data(any) addr:0x02183894 -data_ov031_021838b4 kind:data(any) addr:0x021838b4 -data_ov031_021838d0 kind:data(any) addr:0x021838d0 -data_ov031_021838ec kind:data(any) addr:0x021838ec -data_ov031_02183908 kind:data(any) addr:0x02183908 -data_ov031_02183924 kind:data(any) addr:0x02183924 -data_ov031_02183940 kind:data(any) addr:0x02183940 -data_ov031_0218395c kind:data(any) addr:0x0218395c -data_ov031_02183974 kind:data(any) addr:0x02183974 -data_ov031_02183990 kind:data(any) addr:0x02183990 -data_ov031_021839b0 kind:data(any) addr:0x021839b0 -data_ov031_021839d0 kind:data(any) addr:0x021839d0 -data_ov031_021839ec kind:data(any) addr:0x021839ec -data_ov031_02183a0c kind:data(any) addr:0x02183a0c -data_ov031_02183a28 kind:data(any) addr:0x02183a28 -data_ov031_02183a44 kind:data(any) addr:0x02183a44 -data_ov031_02183a60 kind:data(any) addr:0x02183a60 -data_ov031_02183a7c kind:data(any) addr:0x02183a7c +@1183 kind:data(any) addr:0x02182290 local +@1184 kind:data(any) addr:0x02182294 local +@1185 kind:data(any) addr:0x02182298 local +@1186 kind:data(any) addr:0x0218229c local +@1187 kind:data(any) addr:0x021822a0 local +@1188 kind:data(any) addr:0x021822a4 local +@1189 kind:data(any) addr:0x021822a8 local +@1190 kind:data(any) addr:0x021822ac local +sShipTypes kind:data(any) addr:0x021822b0 local +sShopItemPrices kind:data(any) addr:0x021822d0 +sShopItemModelPaths kind:data(any) addr:0x02182318 +sShopItemTexturePaths kind:data(any) addr:0x0218236c +_ZTV15ActorShopItemBY kind:data(any) addr:0x021823c0 +_ZTV15ActorShopItemCC kind:data(any) addr:0x02182484 +_ZTV15ActorShopItemBK kind:data(any) addr:0x02182548 +_ZTV16ActorShopItemUnk kind:data(any) addr:0x0218260c +_ZTV19ActorShopItemPotion kind:data(any) addr:0x021826d0 +_ZTV19ActorShopItemShield kind:data(any) addr:0x021827bc +_ZTV16ActorShopItemGem kind:data(any) addr:0x021828a8 +_ZTV21ActorShopItemTreasure kind:data(any) addr:0x02182994 +_ZTV21ActorShopItemShipPart kind:data(any) addr:0x02182a80 +_ZTV23ActorShopItemBombchuBag kind:data(any) addr:0x02182b6c +_ZTV21ActorShopItemBombchus kind:data(any) addr:0x02182c58 +_ZTV20ActorShopItemBombBag kind:data(any) addr:0x02182d44 +_ZTV18ActorShopItemBombs kind:data(any) addr:0x02182e30 +_ZTV19ActorShopItemQuiver kind:data(any) addr:0x02182f1c +_ZTV19ActorShopItemArrows kind:data(any) addr:0x02183008 +_ZTV27ActorShopItemHeartContainer kind:data(any) addr:0x021830f4 +_ZTV20ActorShopItemSoldOut kind:data(any) addr:0x021831e0 +_ZTV15ActorShopItemDM kind:data(any) addr:0x021832cc +_ZTV13ActorShopItem kind:data(any) addr:0x021833b8 +_ZTV17ActorShopItemBase kind:data(any) addr:0x021834a4 +@1267 kind:data(any) addr:0x02183568 local +@1268 kind:data(any) addr:0x02183584 local +@1269 kind:data(any) addr:0x021835a0 local +@1270 kind:data(any) addr:0x021835bc local +@1271 kind:data(any) addr:0x021835dc local +@1272 kind:data(any) addr:0x021835f8 local +@1273 kind:data(any) addr:0x02183618 local +@1274 kind:data(any) addr:0x02183634 local +@1275 kind:data(any) addr:0x02183654 local +@1276 kind:data(any) addr:0x02183670 local +@1277 kind:data(any) addr:0x0218368c local +@1278 kind:data(any) addr:0x021836a8 local +@1279 kind:data(any) addr:0x021836c4 local +@1280 kind:data(any) addr:0x021836e0 local +@1281 kind:data(any) addr:0x021836fc local +@1282 kind:data(any) addr:0x02183714 local +@1283 kind:data(any) addr:0x02183730 local +@1284 kind:data(any) addr:0x02183750 local +@1285 kind:data(any) addr:0x02183770 local +@1286 kind:data(any) addr:0x0218378c local +@1287 kind:data(any) addr:0x021837ac local +@1288 kind:data(any) addr:0x021837c8 local +@1289 kind:data(any) addr:0x021837e4 local +@1290 kind:data(any) addr:0x02183800 local +@1291 kind:data(any) addr:0x0218381c local +@1292 kind:data(any) addr:0x0218383c local +@1293 kind:data(any) addr:0x02183858 local +@1294 kind:data(any) addr:0x02183878 local +@1295 kind:data(any) addr:0x02183894 local +@1296 kind:data(any) addr:0x021838b4 local +@1297 kind:data(any) addr:0x021838d0 local +@1298 kind:data(any) addr:0x021838ec local +@1299 kind:data(any) addr:0x02183908 local +@1300 kind:data(any) addr:0x02183924 local +@1301 kind:data(any) addr:0x02183940 local +@1302 kind:data(any) addr:0x0218395c local +@1303 kind:data(any) addr:0x02183974 local +@1304 kind:data(any) addr:0x02183990 local +@1305 kind:data(any) addr:0x021839b0 local +@1306 kind:data(any) addr:0x021839d0 local +@1307 kind:data(any) addr:0x021839ec local +@1308 kind:data(any) addr:0x02183a0c local +@1261 kind:data(any) addr:0x02183a28 local +@1262 kind:data(any) addr:0x02183a44 local +@1263 kind:data(any) addr:0x02183a60 local +@1264 kind:data(any) addr:0x02183a7c local data_ov031_02183a98 kind:data(any) addr:0x02183a98 data_ov031_02183a9c kind:data(any) addr:0x02183a9c data_ov031_02183aa0 kind:data(any) addr:0x02183aa0 @@ -433,44 +429,49 @@ data_ov031_02183d6c kind:data(any) addr:0x02183d6c data_ov031_02183d7c kind:data(any) addr:0x02183d7c data_ov031_02183e80 kind:bss addr:0x02183e80 data_ov031_02183e84 kind:bss addr:0x02183e84 -data_ov031_02183e88 kind:bss addr:0x02183e88 -data_ov031_02183e94 kind:bss addr:0x02183e94 -data_ov031_02183ea8 kind:bss addr:0x02183ea8 -data_ov031_02183eb4 kind:bss addr:0x02183eb4 -data_ov031_02183ec8 kind:bss addr:0x02183ec8 -data_ov031_02183ed4 kind:bss addr:0x02183ed4 -data_ov031_02183ee8 kind:bss addr:0x02183ee8 -data_ov031_02183ef4 kind:bss addr:0x02183ef4 -data_ov031_02183f08 kind:bss addr:0x02183f08 -data_ov031_02183f14 kind:bss addr:0x02183f14 -data_ov031_02183f28 kind:bss addr:0x02183f28 -data_ov031_02183f34 kind:bss addr:0x02183f34 -data_ov031_02183f48 kind:bss addr:0x02183f48 -data_ov031_02183f54 kind:bss addr:0x02183f54 -data_ov031_02183f68 kind:bss addr:0x02183f68 -data_ov031_02183f74 kind:bss addr:0x02183f74 -data_ov031_02183f78 kind:bss addr:0x02183f78 ambiguous -data_ov031_02183f84 kind:bss addr:0x02183f84 ambiguous -data_ov031_02183f88 kind:bss addr:0x02183f88 -data_ov031_02183f94 kind:bss addr:0x02183f94 -data_ov031_02183fa8 kind:bss addr:0x02183fa8 -data_ov031_02183fb4 kind:bss addr:0x02183fb4 -data_ov031_02183fc8 kind:bss addr:0x02183fc8 -data_ov031_02183fd4 kind:bss addr:0x02183fd4 -data_ov031_02183fe8 kind:bss addr:0x02183fe8 -data_ov031_02183ff4 kind:bss addr:0x02183ff4 -data_ov031_02184008 kind:bss addr:0x02184008 -data_ov031_02184014 kind:bss addr:0x02184014 -data_ov031_02184028 kind:bss addr:0x02184028 -data_ov031_02184034 kind:bss addr:0x02184034 -data_ov031_02184048 kind:bss addr:0x02184048 -data_ov031_02184054 kind:bss addr:0x02184054 -data_ov031_02184068 kind:bss addr:0x02184068 -data_ov031_02184074 kind:bss addr:0x02184074 -data_ov031_02184088 kind:bss addr:0x02184088 -data_ov031_02184094 kind:bss addr:0x02184094 -data_ov031_021840a8 kind:bss addr:0x021840a8 -data_ov031_021840f0 kind:bss addr:0x021840f0 +@792 kind:bss addr:0x02183e88 local +_ZN15ActorShopItemDM5gTypeE kind:bss addr:0x02183e94 +@794 kind:bss addr:0x02183ea8 local +_ZN20ActorShopItemSoldOut5gTypeE kind:bss addr:0x02183eb4 +@796 kind:bss addr:0x02183ec8 local +_ZN27ActorShopItemHeartContainer5gTypeE kind:bss addr:0x02183ed4 +@798 kind:bss addr:0x02183ee8 local +_ZN19ActorShopItemArrows5gTypeE kind:bss addr:0x02183ef4 +@800 kind:bss addr:0x02183f08 local +_ZN18ActorShopItemBombs5gTypeE kind:bss addr:0x02183f14 +@802 kind:bss addr:0x02183f28 local +_ZN21ActorShopItemBombchus5gTypeE kind:bss addr:0x02183f34 +@804 kind:bss addr:0x02183f48 local +_ZN19ActorShopItemQuiver5gTypeE kind:bss addr:0x02183f54 +@806 kind:bss addr:0x02183f68 local +_ZN20ActorShopItemBombBag5gTypeE kind:bss addr:0x02183f74 +@808 kind:bss addr:0x02183f88 local +_ZN23ActorShopItemBombchuBag5gTypeE kind:bss addr:0x02183f94 +@810 kind:bss addr:0x02183fa8 local +_ZN21ActorShopItemTreasure5gTypeE kind:bss addr:0x02183fb4 +@812 kind:bss addr:0x02183fc8 local +_ZN21ActorShopItemShipPart5gTypeE kind:bss addr:0x02183fd4 +@814 kind:bss addr:0x02183fe8 local +_ZN16ActorShopItemGem5gTypeE kind:bss addr:0x02183ff4 +@816 kind:bss addr:0x02184008 local +_ZN19ActorShopItemShield5gTypeE kind:bss addr:0x02184014 +@818 kind:bss addr:0x02184028 local +_ZN19ActorShopItemPotion5gTypeE kind:bss addr:0x02184034 +@820 kind:bss addr:0x02184048 local +_ZN15ActorShopItemBK5gTypeE kind:bss addr:0x02184054 +@822 kind:bss addr:0x02184068 local +_ZN15ActorShopItemCC5gTypeE kind:bss addr:0x02184074 +@824 kind:bss addr:0x02184088 local +_ZN15ActorShopItemBY5gTypeE kind:bss addr:0x02184094 +sShopItemModelFiles kind:bss addr:0x021840a8 local +sShopItemTextureFiles kind:bss addr:0x021840f0 local +sShopItemShipModelFile kind:bss addr:0x02184138 local +sShopItemShip2ModelFile kind:bss addr:0x0218413c local +sShopItemShipTextureFile kind:bss addr:0x02184140 local +sShopItemShip2TextureFile kind:bss addr:0x02184144 local +sSoldOutModel kind:bss addr:0x02184148 local +sShipModel kind:bss addr:0x0218414c local +sShip2Model kind:bss addr:0x02184150 local data_ov031_02184154 kind:bss addr:0x02184154 data_ov031_02184160 kind:bss addr:0x02184160 data_ov031_02184174 kind:bss addr:0x02184174 diff --git a/config/eur/arm9/overlays/ov040/relocs.txt b/config/eur/arm9/overlays/ov040/relocs.txt index cda57e8d..379fbb2e 100644 --- a/config/eur/arm9/overlays/ov040/relocs.txt +++ b/config/eur/arm9/overlays/ov040/relocs.txt @@ -697,7 +697,7 @@ from:0x02183040 kind:arm_call to:0x0217e190 module:overlay(40) from:0x0218304c kind:arm_call to:0x02182e28 module:overlay(40) from:0x02183084 kind:arm_call to:0x02182f8c module:overlay(40) from:0x021830d4 kind:arm_call to:0x0217e004 module:overlay(40) -from:0x02183110 kind:load to:0x02057878 module:main +from:0x02183110 kind:load to:0x02057870 add:0x8 module:main from:0x02183114 kind:load to:0x02057840 module:main from:0x02183120 kind:arm_call to:0x021831c0 module:overlay(40) from:0x02183128 kind:arm_call_thumb to:0x0203010c module:main diff --git a/config/eur/arm9/relocs.txt b/config/eur/arm9/relocs.txt index ece84d28..200939f2 100644 --- a/config/eur/arm9/relocs.txt +++ b/config/eur/arm9/relocs.txt @@ -3849,10 +3849,10 @@ from:0x02030034 kind:overlay_id to:7 from:0x02030038 kind:load to:0x027e0ce0 module:dtcm from:0x02030044 kind:thumb_call_arm to:0x0202ea0c module:main from:0x0203006c kind:thumb_call to:0x0203004c module:main -from:0x02030074 kind:load to:0x0205785c module:main +from:0x02030074 kind:load to:0x02057854 add:0x8 module:main from:0x02030088 kind:thumb_call to:0x0203004c module:main from:0x0203008e kind:thumb_call_arm to:0x0202ea0c module:main -from:0x02030098 kind:load to:0x0205785c module:main +from:0x02030098 kind:load to:0x02057854 add:0x8 module:main from:0x020300ba kind:thumb_call to:0x0202d550 module:main from:0x020300c8 kind:load to:0x027e0ce0 module:dtcm from:0x020300d8 kind:thumb_call to:0x0202d590 module:main diff --git a/config/eur/arm9/symbols.txt b/config/eur/arm9/symbols.txt index 2d63bb34..ce7f52fd 100644 --- a/config/eur/arm9/symbols.txt +++ b/config/eur/arm9/symbols.txt @@ -2698,8 +2698,8 @@ data_020577f0 kind:data(any) addr:0x020577f0 data_020577f8 kind:data(any) addr:0x020577f8 data_02057808 kind:data(any) addr:0x02057808 data_02057840 kind:data(any) addr:0x02057840 -data_0205785c kind:data(any) addr:0x0205785c -data_02057878 kind:data(any) addr:0x02057878 +_ZTV13FileEntryFlag kind:data(any) addr:0x02057854 +_ZTV9FileEntry kind:data(any) addr:0x02057870 _ZTV8BhioBase kind:data(any) addr:0x02057894 data_020578d4 kind:data(any) addr:0x020578d4 data_020578d8 kind:data(any) addr:0x020578d8 diff --git a/config/usa/arm9/overlays/ov000/relocs.txt b/config/usa/arm9/overlays/ov000/relocs.txt index f346ec9b..00718f4d 100644 --- a/config/usa/arm9/overlays/ov000/relocs.txt +++ b/config/usa/arm9/overlays/ov000/relocs.txt @@ -3349,12 +3349,12 @@ from:0x0209bacc kind:arm_call to:0x0204f5d0 module:main from:0x0209bae4 kind:arm_call to:0x020a5ad8 module:overlay(0) from:0x0209bb38 kind:arm_call to:0x02080f04 module:overlay(0) from:0x0209bb48 kind:load to:0x027e0ce0 module:dtcm -from:0x0209bb4c kind:load to:0x02057830 module:main -from:0x0209bb50 kind:load to:0x02057814 module:main +from:0x0209bb4c kind:load to:0x02057828 add:0x8 module:main +from:0x0209bb50 kind:load to:0x0205780c add:0x8 module:main from:0x0209bb54 kind:load to:0x02030109 module:main from:0x0209bb58 kind:load to:0x0209bb60 module:overlay(0) from:0x0209bb5c kind:load to:0x020daff8 module:overlay(0) -from:0x0209bb80 kind:load to:0x02057830 module:main +from:0x0209bb80 kind:load to:0x02057828 add:0x8 module:main from:0x0209bb84 kind:load to:0x020577f8 module:main from:0x0209bbb8 kind:arm_call to:0x020a5d14 module:overlay(0) from:0x0209bc08 kind:arm_call to:0x020a5da8 module:overlay(0) @@ -4288,9 +4288,9 @@ from:0x020a5728 kind:arm_call to:0x020c0dfc module:overlay(0) from:0x020a5794 kind:load to:0x020dc234 module:overlay(0) from:0x020a5798 kind:load to:0x027e0ce0 module:dtcm from:0x020a579c kind:load to:0x020dc2f4 module:overlay(0) -from:0x020a57a0 kind:load to:0x02057830 module:main +from:0x020a57a0 kind:load to:0x02057828 add:0x8 module:main from:0x020a57a4 kind:load to:0x0209bb60 module:overlay(0) -from:0x020a57a8 kind:load to:0x02057814 module:main +from:0x020a57a8 kind:load to:0x0205780c add:0x8 module:main from:0x020a57ac kind:load to:0x02030109 module:main from:0x020a57b0 kind:load to:0x020dc264 module:overlay(0) from:0x020a57b4 kind:load to:0x020dc2c4 module:overlay(0) @@ -7721,10 +7721,10 @@ from:0x020c426c kind:load to:0x027e0fe4 module:dtcm from:0x020c4274 kind:load to:0x027e0e60 module:dtcm from:0x020c4288 kind:load to:0x020ddf40 module:overlay(0) from:0x020c42b8 kind:load to:0x020dda78 module:overlay(0) -from:0x020c4318 kind:load to:0x02057830 module:main +from:0x020c4318 kind:load to:0x02057828 add:0x8 module:main from:0x020c431c kind:load to:0x020577f8 module:main from:0x020c4320 kind:load to:0x020e82fc module:overlay(0) -from:0x020c4324 kind:load to:0x02057814 module:main +from:0x020c4324 kind:load to:0x0205780c add:0x8 module:main from:0x020c434c kind:arm_call_thumb to:0x0202d5d8 module:main from:0x020c4388 kind:arm_call to:0x020c4278 module:overlay(0) from:0x020c439c kind:arm_call to:0x02046fe0 module:main @@ -11220,10 +11220,10 @@ from:0x020e18bc kind:arm_call to:0x0204f890 module:main from:0x020e18e8 kind:arm_call to:0x0204f890 module:main from:0x020e1914 kind:arm_call to:0x0204f890 module:main from:0x020e1944 kind:arm_call to:0x0204f890 module:main -from:0x020e194c kind:load to:0x02057830 module:main +from:0x020e194c kind:load to:0x02057828 add:0x8 module:main from:0x020e1950 kind:load to:0x020ee19c module:overlay(0) from:0x020e1954 kind:load to:0x020e693c module:overlay(0) -from:0x020e1958 kind:load to:0x02057814 module:main +from:0x020e1958 kind:load to:0x0205780c add:0x8 module:main from:0x020e195c kind:load to:0x020ee3a8 module:overlay(0) from:0x020e1960 kind:load to:0x02030059 module:main from:0x020e1964 kind:load to:0x020ee274 module:overlay(0) diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt index 3b5b344d..dc43fb71 100644 --- a/config/usa/arm9/overlays/ov000/symbols.txt +++ b/config/usa/arm9/overlays/ov000/symbols.txt @@ -137,10 +137,10 @@ func_ov000_02079e04 kind:function(arm,size=0x38) addr:0x02079da4 _Z19func_ov000_02079e3cv kind:function(arm,size=0x2c) addr:0x02079ddc _ZN18UnkStruct_020e936019func_ov000_02079e68Ei kind:function(arm,size=0x4c) addr:0x02079e08 func_ov000_02079eb4 kind:function(arm,size=0x24) addr:0x02079e54 -func_ov000_02079ed8 kind:function(thumb,size=0x22) addr:0x02079e78 +_ZN29ActorShopItemCollectable_Unk1C1Ev kind:function(thumb,size=0x22) addr:0x02079e78 func_ov000_02079efc kind:function(thumb,size=0x3e) addr:0x02079e9c -func_ov000_02079f3c kind:function(thumb,size=0x20) addr:0x02079edc -func_ov000_02079f5c kind:function(thumb,size=0xa0) addr:0x02079efc +_ZN29ActorShopItemCollectable_Unk1D1Ev kind:function(thumb,size=0x20) addr:0x02079edc +_ZN29ActorShopItemCollectable_Unk119func_ov000_02079f5cEiiiihi kind:function(thumb,size=0xa0) addr:0x02079efc LoadNsbTexturedModel kind:function(thumb,size=0x3a) addr:0x02079f9c func_ov000_0207a038 kind:function(thumb,size=0x102) addr:0x02079fd8 _ZN19Actor_UnkStruct_012C1Ev kind:function(arm,size=0x4c) addr:0x0207a0dc @@ -223,7 +223,7 @@ func_ov000_0207bb14 kind:function(arm,size=0x4) addr:0x0207bab4 func_ov000_0207bb18 kind:function(arm,size=0x4) addr:0x0207bab8 _ZN18UnkStruct_027e0de419func_ov000_0207bb1cEiPFvPvES0_ kind:function(arm,size=0x30) addr:0x0207babc func_ov000_0207bb4c kind:function(arm,size=0xfc) addr:0x0207baec -func_ov000_0207bc48 kind:function(arm,size=0x20) addr:0x0207bbe8 +_ZN17UnkClass_027e0e2819func_ov000_0207bc48Ev kind:function(arm,size=0x20) addr:0x0207bbe8 func_ov000_0207bc68 kind:function(arm,size=0x14) addr:0x0207bc08 func_ov000_0207bc7c kind:function(thumb,size=0x1e) addr:0x0207bc1c func_ov000_0207bc9c kind:function(arm,size=0x18) addr:0x0207bc3c diff --git a/config/usa/arm9/overlays/ov003/symbols.txt b/config/usa/arm9/overlays/ov003/symbols.txt index 105805cd..94cd1206 100644 --- a/config/usa/arm9/overlays/ov003/symbols.txt +++ b/config/usa/arm9/overlays/ov003/symbols.txt @@ -117,7 +117,7 @@ func_ov003_020f3c84 kind:function(thumb,size=0x42) addr:0x020f3c24 func_ov003_020f3cc8 kind:function(arm,size=0x8) addr:0x020f3c68 func_ov003_020f3cd0 kind:function(arm,size=0x8c) addr:0x020f3c70 _ZN18UnkStruct_027e0dbc19func_ov003_020f3d5cEi kind:function(thumb,size=0x16) addr:0x020f3cfc -func_ov003_020f3d74 kind:function(thumb,size=0xc) addr:0x020f3d14 +_ZN18UnkStruct_027e0dbc19func_ov003_020f3d74Ei kind:function(thumb,size=0xc) addr:0x020f3d14 func_ov003_020f3d80 kind:function(thumb,size=0xc) addr:0x020f3d20 func_ov003_020f3d8c kind:function(thumb,size=0x6) addr:0x020f3d2c func_ov003_020f3d94 kind:function(thumb,size=0x6) addr:0x020f3d34 diff --git a/config/usa/arm9/overlays/ov004/relocs.txt b/config/usa/arm9/overlays/ov004/relocs.txt index be093516..2cd5e266 100644 --- a/config/usa/arm9/overlays/ov004/relocs.txt +++ b/config/usa/arm9/overlays/ov004/relocs.txt @@ -137,9 +137,9 @@ from:0x02101370 kind:thumb_call to:0x0210143c module:overlay(4) from:0x0210137c kind:thumb_call_arm to:0x0202e9d8 module:main from:0x02101386 kind:thumb_call to:0x0210160c module:overlay(4) from:0x02101390 kind:load to:0x027e0ce0 module:dtcm -from:0x02101394 kind:load to:0x02057830 module:main +from:0x02101394 kind:load to:0x02057828 add:0x8 module:main from:0x02101398 kind:load to:0x0210fd20 module:overlay(4) -from:0x0210139c kind:load to:0x02057814 module:main +from:0x0210139c kind:load to:0x0205780c add:0x8 module:main from:0x021013ae kind:thumb_call to:0x02101640 module:overlay(4) from:0x021013b4 kind:thumb_call_arm to:0x0202ea08 module:main from:0x021013de kind:thumb_call_arm to:0x0202ea14 module:main @@ -181,9 +181,9 @@ from:0x02101856 kind:thumb_call_arm to:0x02007908 module:main from:0x02101866 kind:thumb_call_arm to:0x02007908 module:main from:0x021018bc kind:thumb_call_arm to:0x0204f710 module:main from:0x021018d8 kind:thumb_call to:0x02030058 module:main -from:0x021018e0 kind:load to:0x02057830 module:main +from:0x021018e0 kind:load to:0x02057828 add:0x8 module:main from:0x021018e4 kind:load to:0x0210fd34 module:overlay(4) -from:0x021018e8 kind:load to:0x02057814 module:main +from:0x021018e8 kind:load to:0x0205780c add:0x8 module:main from:0x021018f4 kind:load to:0x020eaa38 module:overlay(0) from:0x021018f8 kind:load to:0x020eaa98 module:overlay(0) from:0x021018fc kind:load to:0x020eaad4 module:overlay(0) @@ -333,8 +333,8 @@ from:0x02102414 kind:thumb_call_arm to:0x0209d824 module:overlay(0) from:0x0210241c kind:load to:0x027e0ce0 module:dtcm from:0x02102420 kind:load to:0x020e24a8 module:overlay(0) from:0x02102424 kind:load to:0x020e24ac module:overlay(0) -from:0x02102428 kind:load to:0x02057830 module:main -from:0x0210242c kind:load to:0x02057814 module:main +from:0x02102428 kind:load to:0x02057828 add:0x8 module:main +from:0x0210242c kind:load to:0x0205780c add:0x8 module:main from:0x02102430 kind:load to:0x027e0f68 module:dtcm from:0x02102434 kind:load to:0x027e0fe4 module:dtcm from:0x02102438 kind:load to:0x027e0fec module:dtcm @@ -2043,9 +2043,9 @@ from:0x0210a0f6 kind:thumb_call_arm to:0x0202e9d8 module:main from:0x0210a0fe kind:thumb_call to:0x02030270 module:main from:0x0210a3e0 kind:load to:0x020e6c28 module:overlay(0) from:0x0210a3e4 kind:load to:0x027e0ce0 module:dtcm -from:0x0210a3e8 kind:load to:0x02057830 module:main +from:0x0210a3e8 kind:load to:0x02057828 add:0x8 module:main from:0x0210a3ec kind:load to:0x021108b4 module:overlay(4) -from:0x0210a3f0 kind:load to:0x02057814 module:main +from:0x0210a3f0 kind:load to:0x0205780c add:0x8 module:main from:0x0210a3f4 kind:load to:0x02110420 module:overlay(4) from:0x0210a3f8 kind:load to:0x027e0fc8 module:dtcm from:0x0210a3fc kind:load to:0x027e0fcc module:dtcm @@ -2520,8 +2520,8 @@ from:0x0210c45a kind:thumb_call_arm to:0x02097614 module:overlay(0) from:0x0210c460 kind:thumb_call to:0x02030058 module:main from:0x0210c466 kind:thumb_call to:0x02030058 module:main from:0x0210c470 kind:load to:0x027e0d44 module:dtcm -from:0x0210c478 kind:load to:0x02057830 module:main -from:0x0210c47c kind:load to:0x02057814 module:main +from:0x0210c478 kind:load to:0x02057828 add:0x8 module:main +from:0x0210c47c kind:load to:0x0205780c add:0x8 module:main from:0x0210c480 kind:load to:0x027e0f68 module:dtcm from:0x0210c484 kind:load to:0x027e0fec module:dtcm from:0x0210c488 kind:load to:0x027e0c68 module:dtcm @@ -2572,8 +2572,8 @@ from:0x0210c748 kind:thumb_call_arm to:0x0201b3c4 module:main from:0x0210c752 kind:thumb_call_arm to:0x0201e4cc module:main from:0x0210c770 kind:load to:0x020ec7c0 module:overlay(0) from:0x0210c774 kind:load to:0x027e0ce0 module:dtcm -from:0x0210c778 kind:load to:0x02057830 module:main -from:0x0210c77c kind:load to:0x02057814 module:main +from:0x0210c778 kind:load to:0x02057828 add:0x8 module:main +from:0x0210c77c kind:load to:0x0205780c add:0x8 module:main from:0x0210c7a0 kind:thumb_call_arm to:0x02046fe0 module:main from:0x0210c7a6 kind:thumb_call to:0x020bd6b8 module:overlay(0) from:0x0210c7ca kind:thumb_call_arm to:0x02018f78 module:main @@ -2593,7 +2593,7 @@ from:0x0210c9ec kind:load to:0x027e0ce0 module:dtcm from:0x0210c9f0 kind:load to:0x0210f948 module:overlay(4) from:0x0210c9f4 kind:load to:0x0210f94c module:overlay(4) from:0x0210c9f8 kind:load to:0x02110c8c module:overlay(4) -from:0x0210c9fc kind:load to:0x02057830 module:main +from:0x0210c9fc kind:load to:0x02057828 add:0x8 module:main from:0x0210ca00 kind:load to:0x020577f8 module:main from:0x0210ca6e kind:thumb_call to:0x0202d5d8 module:main from:0x0210ca90 kind:thumb_call to:0x02102670 module:overlay(4) @@ -2856,7 +2856,7 @@ from:0x0210e248 kind:thumb_call to:0x0210ddc8 module:overlay(4) from:0x0210e268 kind:load to:0x027e0d38 module:dtcm from:0x0210e26c kind:load to:0x027e1060 module:dtcm from:0x0210e270 kind:load to:0x02110fd8 module:overlay(4) -from:0x0210e274 kind:load to:0x02057830 module:main +from:0x0210e274 kind:load to:0x02057828 add:0x8 module:main from:0x0210e278 kind:load to:0x020577f8 module:main from:0x0210e282 kind:thumb_call to:0x02030148 module:main from:0x0210e2b2 kind:thumb_call_arm to:0x0202e9d8 module:main @@ -2901,7 +2901,7 @@ from:0x0210e640 kind:thumb_call_arm to:0x020c0b7c module:overlay(0) from:0x0210e648 kind:load to:0x027e0ce0 module:dtcm from:0x0210e64c kind:load to:0x02111020 module:overlay(4) from:0x0210e650 kind:load to:0x02111008 module:overlay(4) -from:0x0210e654 kind:load to:0x02057830 module:main +from:0x0210e654 kind:load to:0x02057828 add:0x8 module:main from:0x0210e658 kind:load to:0x020577f8 module:main from:0x0210e65c kind:load to:0x0210fc78 module:overlay(4) from:0x0210e660 kind:load to:0x02110ff0 module:overlay(4) @@ -2949,7 +2949,7 @@ from:0x0210e9e8 kind:thumb_call_arm to:0x020c0b7c module:overlay(0) from:0x0210e9f0 kind:load to:0x027e0d38 module:dtcm from:0x0210e9f4 kind:load to:0x027e0900 module:dtcm from:0x0210e9fc kind:load to:0x0216d878 module:overlay(29) -from:0x0210ea00 kind:load to:0x02057830 module:main +from:0x0210ea00 kind:load to:0x02057828 add:0x8 module:main from:0x0210ea04 kind:load to:0x020577c0 module:main from:0x0210ea08 kind:load to:0x02111020 module:overlay(4) from:0x0210ea0c kind:load to:0x027e0ce0 module:dtcm @@ -2988,9 +2988,9 @@ from:0x0210ec72 kind:thumb_call to:0x02101c08 module:overlay(4) from:0x0210ec7c kind:thumb_call to:0x020300c8 module:main from:0x0210ec82 kind:thumb_call to:0x020300c8 module:main from:0x0210ec88 kind:thumb_call to:0x02030058 module:main -from:0x0210ec90 kind:load to:0x02057830 module:main +from:0x0210ec90 kind:load to:0x02057828 add:0x8 module:main from:0x0210ec94 kind:load to:0x02110fa4 module:overlay(4) -from:0x0210ec98 kind:load to:0x02057814 module:main +from:0x0210ec98 kind:load to:0x0205780c add:0x8 module:main from:0x0210ed3c kind:thumb_call_arm to:0x0202e9d8 module:main from:0x0210ed44 kind:thumb_call_arm to:0x020a339c module:overlay(0) from:0x0210ed64 kind:thumb_call_arm to:0x020078f4 module:main @@ -3010,8 +3010,8 @@ from:0x0210eeee kind:thumb_call to:0x0210ef90 module:overlay(4) from:0x0210eef4 kind:thumb_call to:0x02030058 module:main from:0x0210ef00 kind:load to:0x027e0d38 module:dtcm from:0x0210ef04 kind:load to:0x027e0f7c module:dtcm -from:0x0210ef08 kind:load to:0x02057830 module:main -from:0x0210ef0c kind:load to:0x02057814 module:main +from:0x0210ef08 kind:load to:0x02057828 add:0x8 module:main +from:0x0210ef0c kind:load to:0x0205780c add:0x8 module:main from:0x0210ef1c kind:thumb_call_arm to:0x0207cd14 module:overlay(0) from:0x0210ef3a kind:thumb_call to:0x02030098 module:main from:0x0210ef4c kind:thumb_call_arm to:0x0209d6b0 module:overlay(0) @@ -3019,8 +3019,8 @@ from:0x0210ef5c kind:thumb_call to:0x02101c7c module:overlay(4) from:0x0210ef66 kind:thumb_call to:0x02030058 module:main from:0x0210ef74 kind:thumb_call_arm to:0x020a3468 module:overlay(0) from:0x0210ef7a kind:thumb_call to:0x02030058 module:main -from:0x0210ef84 kind:load to:0x02057830 module:main -from:0x0210ef88 kind:load to:0x02057814 module:main +from:0x0210ef84 kind:load to:0x02057828 add:0x8 module:main +from:0x0210ef88 kind:load to:0x0205780c add:0x8 module:main from:0x0210ef8c kind:load to:0x027e0f7c module:dtcm from:0x0210efc0 kind:thumb_call_arm to:0x020078f4 module:main from:0x0210efdc kind:thumb_call_arm to:0x020972f4 module:overlay(0) diff --git a/config/usa/arm9/overlays/ov009/relocs.txt b/config/usa/arm9/overlays/ov009/relocs.txt index fac38039..81578eb6 100644 --- a/config/usa/arm9/overlays/ov009/relocs.txt +++ b/config/usa/arm9/overlays/ov009/relocs.txt @@ -1999,10 +1999,10 @@ from:0x0211e434 kind:load to:0x0211f4b0 module:overlay(9) from:0x0211e478 kind:arm_call to:0x0204f890 module:main from:0x0211e4b8 kind:arm_call to:0x0204f890 module:main from:0x0211e4f4 kind:arm_call to:0x0204f890 module:main -from:0x0211e4fc kind:load to:0x02057830 module:main +from:0x0211e4fc kind:load to:0x02057828 add:0x8 module:main from:0x0211e500 kind:load to:0x0211f4b8 module:overlay(9) from:0x0211e504 kind:load to:0x0211e9d0 module:overlay(9) -from:0x0211e508 kind:load to:0x02057814 module:main +from:0x0211e508 kind:load to:0x0205780c add:0x8 module:main from:0x0211e50c kind:load to:0x0211f4c4 module:overlay(9) from:0x0211e510 kind:load to:0x02030059 module:main from:0x0211e514 kind:load to:0x0211f4b8 module:overlay(9) diff --git a/config/usa/arm9/overlays/ov015/relocs.txt b/config/usa/arm9/overlays/ov015/relocs.txt index a26a50d5..b698719e 100644 --- a/config/usa/arm9/overlays/ov015/relocs.txt +++ b/config/usa/arm9/overlays/ov015/relocs.txt @@ -1331,8 +1331,8 @@ from:0x0212a1c0 kind:arm_call to:0x0212b55c module:overlay(15) from:0x0212a1d4 kind:arm_call to:0x0202e9f0 module:main from:0x0212a1f0 kind:arm_call to:0x0212b774 module:overlay(15) from:0x0212a1f8 kind:arm_call_thumb to:0x02030108 module:main -from:0x0212a208 kind:load to:0x02057830 module:main -from:0x0212a20c kind:load to:0x02057814 module:main +from:0x0212a208 kind:load to:0x02057828 add:0x8 module:main +from:0x0212a20c kind:load to:0x0205780c add:0x8 module:main from:0x0212a210 kind:load to:0x020577f8 module:main from:0x0212a214 kind:load to:0x0218a2c8 module:overlay(15) from:0x0212a218 kind:load to:0x027e0ce0 module:dtcm @@ -11767,12 +11767,12 @@ from:0x02184f04 kind:arm_call to:0x0202e9d8 module:main from:0x02184f18 kind:arm_call to:0x020a5cb0 module:overlay(0) from:0x02184f24 kind:arm_call_thumb to:0x020a9528 module:overlay(0) from:0x02184f44 kind:load to:0x027e0ce0 module:dtcm -from:0x02184f48 kind:load to:0x02057830 module:main -from:0x02184f4c kind:load to:0x02057814 module:main +from:0x02184f48 kind:load to:0x02057828 add:0x8 module:main +from:0x02184f4c kind:load to:0x0205780c add:0x8 module:main from:0x02184f50 kind:load to:0x02030109 module:main from:0x02184f54 kind:load to:0x02184f5c module:overlay(15) from:0x02184f58 kind:load to:0x021871ec module:overlay(15) -from:0x02184f7c kind:load to:0x02057830 module:main +from:0x02184f7c kind:load to:0x02057828 add:0x8 module:main from:0x02184f80 kind:load to:0x020577f8 module:main from:0x02184fdc kind:arm_call to:0x020a5c6c module:overlay(0) from:0x02184ff0 kind:arm_call to:0x0204f710 module:main @@ -12185,7 +12185,7 @@ from:0x02187d50 kind:arm_call to:0x0204f890 module:main from:0x02187d88 kind:arm_call to:0x0204f890 module:main from:0x02187dc4 kind:arm_call to:0x0204f890 module:main from:0x02187e04 kind:arm_call to:0x0204f890 module:main -from:0x02187e0c kind:load to:0x02057830 module:main +from:0x02187e0c kind:load to:0x02057828 add:0x8 module:main from:0x02187e10 kind:load to:0x0218f4dc module:overlay(15) from:0x02187e14 kind:load to:0x0218b87c module:overlay(15) from:0x02187e18 kind:load to:0x020577f8 module:main @@ -12196,7 +12196,7 @@ from:0x02187e28 kind:load to:0x0218b88c module:overlay(15) from:0x02187e2c kind:load to:0x0218f508 module:overlay(15) from:0x02187e30 kind:load to:0x0218f4fc module:overlay(15) from:0x02187e34 kind:load to:0x0218b89c module:overlay(15) -from:0x02187e38 kind:load to:0x02057814 module:main +from:0x02187e38 kind:load to:0x0205780c add:0x8 module:main from:0x02187e3c kind:load to:0x0218f524 module:overlay(15) from:0x02187e40 kind:load to:0x02030059 module:main from:0x02187e44 kind:load to:0x0218f518 module:overlay(15) diff --git a/config/usa/arm9/overlays/ov018/relocs.txt b/config/usa/arm9/overlays/ov018/relocs.txt index 58be9719..d62f08d0 100644 --- a/config/usa/arm9/overlays/ov018/relocs.txt +++ b/config/usa/arm9/overlays/ov018/relocs.txt @@ -127,7 +127,7 @@ from:0x0215c854 kind:arm_call_thumb to:0x02030058 module:main from:0x0215c85c kind:arm_call_thumb to:0x02030108 module:main from:0x0215c868 kind:load to:0x0216c020 module:overlay(18) from:0x0215c86c kind:load to:0x020577f8 module:main -from:0x0215c870 kind:load to:0x02057814 module:main +from:0x0215c870 kind:load to:0x0205780c add:0x8 module:main from:0x0215c874 kind:load to:0x027e0ce0 module:dtcm from:0x0215c878 kind:load to:0x0216b3bc module:overlay(18) from:0x0215c890 kind:arm_call_thumb to:0x020c0ba8 module:overlay(0) diff --git a/config/usa/arm9/overlays/ov031/delinks.txt b/config/usa/arm9/overlays/ov031/delinks.txt index e9049fd1..14857467 100644 --- a/config/usa/arm9/overlays/ov031/delinks.txt +++ b/config/usa/arm9/overlays/ov031/delinks.txt @@ -7,3 +7,8 @@ src/31_Shop/Actor/ActorShopItem.cpp: .text start:0x0217db3c end:0x02180668 + .rodata start:0x02181848 end:0x021819e8 + .init start:0x02181acc end:0x02181eb8 + .ctor start:0x02181fe0 end:0x02181fe4 + .data start:0x021821f0 end:0x021839f8 + .bss start:0x02183de8 end:0x021840b4 diff --git a/config/usa/arm9/overlays/ov031/relocs.txt b/config/usa/arm9/overlays/ov031/relocs.txt index 05d27eb6..45729ad7 100644 --- a/config/usa/arm9/overlays/ov031/relocs.txt +++ b/config/usa/arm9/overlays/ov031/relocs.txt @@ -283,39 +283,39 @@ from:0x0217db14 kind:arm_call to:0x0202b87c module:main from:0x0217db54 kind:arm_call to:0x0202e9d8 module:main from:0x0217db60 kind:arm_call to:0x0217e36c module:overlay(31) from:0x0217db74 kind:load to:0x027e0fe0 module:dtcm -from:0x0217db78 kind:load to:0x02183234 module:overlay(31) +from:0x0217db78 kind:load to:0x0218322c module:overlay(31) add:0x8 from:0x0217db94 kind:arm_call to:0x0202e9d8 module:main from:0x0217dba0 kind:arm_call to:0x0217e36c module:overlay(31) from:0x0217dbb4 kind:load to:0x027e0fe0 module:dtcm -from:0x0217dbb8 kind:load to:0x02183148 module:overlay(31) +from:0x0217dbb8 kind:load to:0x02183140 module:overlay(31) add:0x8 from:0x0217dbd4 kind:arm_call to:0x0202e9d8 module:main from:0x0217dbe0 kind:arm_call to:0x0217e36c module:overlay(31) from:0x0217dbf4 kind:load to:0x027e0fe0 module:dtcm -from:0x0217dbf8 kind:load to:0x0218305c module:overlay(31) +from:0x0217dbf8 kind:load to:0x02183054 module:overlay(31) add:0x8 from:0x0217dc14 kind:arm_call to:0x0202e9d8 module:main from:0x0217dc20 kind:arm_call to:0x0217e36c module:overlay(31) from:0x0217dc34 kind:load to:0x027e0fe0 module:dtcm -from:0x0217dc38 kind:load to:0x02182f70 module:overlay(31) +from:0x0217dc38 kind:load to:0x02182f68 module:overlay(31) add:0x8 from:0x0217dc54 kind:arm_call to:0x0202e9d8 module:main from:0x0217dc60 kind:arm_call to:0x0217e36c module:overlay(31) from:0x0217dc74 kind:load to:0x027e0fe0 module:dtcm -from:0x0217dc78 kind:load to:0x02182d98 module:overlay(31) +from:0x0217dc78 kind:load to:0x02182d90 module:overlay(31) add:0x8 from:0x0217dc94 kind:arm_call to:0x0202e9d8 module:main from:0x0217dca0 kind:arm_call to:0x0217e36c module:overlay(31) from:0x0217dcb4 kind:load to:0x027e0fe0 module:dtcm -from:0x0217dcb8 kind:load to:0x02182bc0 module:overlay(31) +from:0x0217dcb8 kind:load to:0x02182bb8 module:overlay(31) add:0x8 from:0x0217dcd4 kind:arm_call to:0x0202e9d8 module:main from:0x0217dce0 kind:arm_call to:0x0217e36c module:overlay(31) from:0x0217dcf4 kind:load to:0x027e0fe0 module:dtcm -from:0x0217dcf8 kind:load to:0x02182e84 module:overlay(31) +from:0x0217dcf8 kind:load to:0x02182e7c module:overlay(31) add:0x8 from:0x0217dd14 kind:arm_call to:0x0202e9d8 module:main from:0x0217dd20 kind:arm_call to:0x0217e36c module:overlay(31) from:0x0217dd34 kind:load to:0x027e0fe0 module:dtcm -from:0x0217dd38 kind:load to:0x02182cac module:overlay(31) +from:0x0217dd38 kind:load to:0x02182ca4 module:overlay(31) add:0x8 from:0x0217dd54 kind:arm_call to:0x0202e9d8 module:main from:0x0217dd60 kind:arm_call to:0x0217e36c module:overlay(31) from:0x0217dd74 kind:load to:0x027e0fe0 module:dtcm -from:0x0217dd78 kind:load to:0x02182ad4 module:overlay(31) +from:0x0217dd78 kind:load to:0x02182acc module:overlay(31) add:0x8 from:0x0217dd94 kind:arm_call to:0x0202e9d8 module:main from:0x0217dda0 kind:arm_call to:0x0217e454 module:overlay(31) from:0x0217dda8 kind:load to:0x027e0fe0 module:dtcm @@ -325,23 +325,23 @@ from:0x0217ddd8 kind:load to:0x027e0fe0 module:dtcm from:0x0217ddf4 kind:arm_call to:0x0202e9d8 module:main from:0x0217de00 kind:arm_call to:0x0217e36c module:overlay(31) from:0x0217de14 kind:load to:0x027e0fe0 module:dtcm -from:0x0217de18 kind:load to:0x02182810 module:overlay(31) +from:0x0217de18 kind:load to:0x02182808 module:overlay(31) add:0x8 from:0x0217de34 kind:arm_call to:0x0202e9d8 module:main from:0x0217de40 kind:arm_call to:0x0217e36c module:overlay(31) from:0x0217de54 kind:load to:0x027e0fe0 module:dtcm -from:0x0217de58 kind:load to:0x02182724 module:overlay(31) +from:0x0217de58 kind:load to:0x0218271c module:overlay(31) add:0x8 from:0x0217de74 kind:arm_call to:0x0202e9d8 module:main from:0x0217de80 kind:arm_call to:0x0217e36c module:overlay(31) from:0x0217de94 kind:load to:0x027e0fe0 module:dtcm -from:0x0217de98 kind:load to:0x02182638 module:overlay(31) +from:0x0217de98 kind:load to:0x02182630 module:overlay(31) add:0x8 from:0x0217deb4 kind:arm_call to:0x0202e9d8 module:main from:0x0217dec0 kind:arm_call to:0x0217e4e8 module:overlay(31) from:0x0217ded4 kind:load to:0x027e0fe0 module:dtcm -from:0x0217ded8 kind:load to:0x021824b0 module:overlay(31) +from:0x0217ded8 kind:load to:0x021824a8 module:overlay(31) add:0x8 from:0x0217def4 kind:arm_call to:0x0202e9d8 module:main from:0x0217df00 kind:arm_call to:0x0217e4e8 module:overlay(31) from:0x0217df14 kind:load to:0x027e0fe0 module:dtcm -from:0x0217df18 kind:load to:0x021823ec module:overlay(31) +from:0x0217df18 kind:load to:0x021823e4 module:overlay(31) add:0x8 from:0x0217df34 kind:arm_call to:0x0202e9d8 module:main from:0x0217df40 kind:arm_call to:0x0217e518 module:overlay(31) from:0x0217df48 kind:load to:0x027e0fe0 module:dtcm @@ -357,8 +357,8 @@ from:0x0217e0f4 kind:arm_call to:0x0202e9d8 module:main from:0x0217e13c kind:arm_call to:0x0202e9d8 module:main from:0x0217e184 kind:arm_call to:0x0202e9d8 module:main from:0x0217e1c8 kind:arm_call to:0x0217df4c module:overlay(31) -from:0x0217e1d8 kind:load to:0x02057830 module:main -from:0x0217e1dc kind:load to:0x02057814 module:main +from:0x0217e1d8 kind:load to:0x02057828 add:0x8 module:main +from:0x0217e1dc kind:load to:0x0205780c add:0x8 module:main from:0x0217e1e0 kind:load to:0x027e0fb4 module:dtcm from:0x0217e1e4 kind:load to:0x02182210 module:overlay(31) from:0x0217e1e8 kind:load to:0x027e0ce0 module:dtcm @@ -371,71 +371,71 @@ from:0x0217e200 kind:load to:0x02183de8 module:overlay(31) from:0x0217e204 kind:load to:0x021839a4 module:overlay(31) from:0x0217e208 kind:load to:0x021839c0 module:overlay(31) from:0x0217e20c kind:load to:0x021839dc module:overlay(31) -from:0x0217e210 kind:load to:0x02181858 module:overlay(31) +from:0x0217e210 kind:load to:0x02181848 add:0x10 module:overlay(31) from:0x0217e32c kind:load to:0x02184008 module:overlay(31) from:0x0217e330 kind:load to:0x02184050 module:overlay(31) from:0x0217e334 kind:load to:0x02183de8 module:overlay(31) from:0x0217e340 kind:arm_call to:0x020c14f4 module:overlay(0) -from:0x0217e368 kind:load to:0x0218340c module:overlay(31) +from:0x0217e368 kind:load to:0x02183404 add:0x8 module:overlay(31) from:0x0217e374 kind:arm_call to:0x0217e338 module:overlay(31) -from:0x0217e3bc kind:load to:0x02183320 module:overlay(31) +from:0x0217e3bc kind:load to:0x02183318 module:overlay(31) add:0x8 from:0x0217e3cc kind:arm_call to:0x0217e36c module:overlay(31) from:0x0217e3f8 kind:arm_call to:0x0202e9d8 module:main from:0x0217e404 kind:arm_call_thumb to:0x02079e78 module:overlay(0) from:0x0217e438 kind:arm_call_thumb to:0x02079efc module:overlay(0) -from:0x0217e448 kind:load to:0x021829e8 module:overlay(31) +from:0x0217e448 kind:load to:0x021829e0 module:overlay(31) add:0x8 from:0x0217e44c kind:load to:0x027e0ce0 module:dtcm from:0x0217e450 kind:load to:0x02181848 module:overlay(31) from:0x0217e460 kind:arm_call to:0x0217e36c module:overlay(31) from:0x0217e48c kind:arm_call to:0x0202e9d8 module:main from:0x0217e498 kind:arm_call_thumb to:0x02079e78 module:overlay(0) from:0x0217e4cc kind:arm_call_thumb to:0x02079efc module:overlay(0) -from:0x0217e4dc kind:load to:0x021828fc module:overlay(31) +from:0x0217e4dc kind:load to:0x021828f4 module:overlay(31) add:0x8 from:0x0217e4e0 kind:load to:0x027e0ce0 module:dtcm from:0x0217e4e4 kind:load to:0x02181848 module:overlay(31) from:0x0217e4f0 kind:arm_call to:0x0217e338 module:overlay(31) -from:0x0217e514 kind:load to:0x02182574 module:overlay(31) +from:0x0217e514 kind:load to:0x0218256c module:overlay(31) add:0x8 from:0x0217e520 kind:arm_call to:0x0217e4e8 module:overlay(31) -from:0x0217e534 kind:load to:0x02182328 module:overlay(31) +from:0x0217e534 kind:load to:0x02182320 module:overlay(31) add:0x8 from:0x0217e540 kind:arm_call to:0x020c16d0 module:overlay(0) from:0x0217e554 kind:arm_call to:0x020c16d0 module:overlay(0) from:0x0217e55c kind:arm_call to:0x0202ea08 module:main from:0x0217e570 kind:arm_call to:0x020c16d0 module:overlay(0) from:0x0217e5b4 kind:arm_call to:0x0217e568 module:overlay(31) -from:0x0217e5c0 kind:load to:0x02183320 module:overlay(31) +from:0x0217e5c0 kind:load to:0x02183318 module:overlay(31) add:0x8 from:0x0217e5fc kind:arm_call to:0x0217e568 module:overlay(31) from:0x0217e604 kind:arm_call to:0x0202ea08 module:main -from:0x0217e610 kind:load to:0x02183320 module:overlay(31) +from:0x0217e610 kind:load to:0x02183318 module:overlay(31) add:0x8 from:0x0217e64c kind:arm_call to:0x0217e568 module:overlay(31) -from:0x0217e658 kind:load to:0x02183320 module:overlay(31) +from:0x0217e658 kind:load to:0x02183318 module:overlay(31) add:0x8 from:0x0217e66c kind:arm_call to:0x0217e614 module:overlay(31) from:0x0217e688 kind:arm_call to:0x0217e614 module:overlay(31) from:0x0217e690 kind:arm_call to:0x0202ea08 module:main from:0x0217e6bc kind:arm_call_thumb to:0x02079edc module:overlay(0) from:0x0217e6c4 kind:arm_call to:0x0202ea08 module:main from:0x0217e758 kind:arm_call to:0x0217e614 module:overlay(31) -from:0x0217e764 kind:load to:0x021829e8 module:overlay(31) +from:0x0217e764 kind:load to:0x021829e0 module:overlay(31) add:0x8 from:0x0217e768 kind:load to:0x02183de8 module:overlay(31) from:0x0217e78c kind:arm_call_thumb to:0x02079edc module:overlay(0) from:0x0217e794 kind:arm_call to:0x0202ea08 module:main from:0x0217e828 kind:arm_call to:0x0217e614 module:overlay(31) from:0x0217e830 kind:arm_call to:0x0202ea08 module:main -from:0x0217e83c kind:load to:0x021829e8 module:overlay(31) +from:0x0217e83c kind:load to:0x021829e0 module:overlay(31) add:0x8 from:0x0217e840 kind:load to:0x02183de8 module:overlay(31) from:0x0217e864 kind:arm_call_thumb to:0x02079edc module:overlay(0) from:0x0217e86c kind:arm_call to:0x0202ea08 module:main from:0x0217e87c kind:arm_call to:0x0217e614 module:overlay(31) -from:0x0217e888 kind:load to:0x021828fc module:overlay(31) +from:0x0217e888 kind:load to:0x021828f4 module:overlay(31) add:0x8 from:0x0217e8ac kind:arm_call_thumb to:0x02079edc module:overlay(0) from:0x0217e8b4 kind:arm_call to:0x0202ea08 module:main from:0x0217e8c4 kind:arm_call to:0x0217e614 module:overlay(31) from:0x0217e8cc kind:arm_call to:0x0202ea08 module:main -from:0x0217e8d8 kind:load to:0x021828fc module:overlay(31) +from:0x0217e8d8 kind:load to:0x021828f4 module:overlay(31) add:0x8 from:0x0217e960 kind:arm_call to:0x0217df4c module:overlay(31) from:0x0217e96c kind:load to:0x027e0fb4 module:dtcm -from:0x0217e970 kind:load to:0x02181968 module:overlay(31) -from:0x0217e974 kind:load to:0x02181978 module:overlay(31) -from:0x0217e978 kind:load to:0x02181988 module:overlay(31) +from:0x0217e970 kind:load to:0x02181848 add:0x120 module:overlay(31) +from:0x0217e974 kind:load to:0x02181848 add:0x130 module:overlay(31) +from:0x0217e978 kind:load to:0x02181848 add:0x140 module:overlay(31) from:0x0217e97c kind:load to:0x02181848 module:overlay(31) from:0x0217e980 kind:load to:0x02184008 module:overlay(31) from:0x0217e984 kind:load to:0x02184050 module:overlay(31) @@ -450,8 +450,8 @@ from:0x0217ea70 kind:arm_call to:0x0217df4c module:overlay(31) from:0x0217ea80 kind:load to:0x027e1058 module:dtcm from:0x0217ea84 kind:load to:0x027e0ce0 module:dtcm from:0x0217ea88 kind:load to:0x02183de8 module:overlay(31) -from:0x0217ea8c kind:load to:0x02181998 module:overlay(31) -from:0x0217ea90 kind:load to:0x021819a8 module:overlay(31) +from:0x0217ea8c kind:load to:0x02181848 add:0x150 module:overlay(31) +from:0x0217ea90 kind:load to:0x02181848 add:0x160 module:overlay(31) from:0x0217eaa4 kind:arm_call to:0x021801d8 module:overlay(31) from:0x0217eab8 kind:arm_call_thumb to:0x0211c0c4 module:overlay(9) from:0x0217ead0 kind:arm_call to:0x0202e9d8 module:main @@ -573,7 +573,7 @@ from:0x0217fbd4 kind:arm_call to:0x0217fb68 module:overlay(31) from:0x0217fc0c kind:arm_call to:0x021801a8 module:overlay(31) from:0x0217fc18 kind:arm_call to:0x021801c0 module:overlay(31) from:0x0217fc24 kind:arm_call_thumb to:0x0211c900 module:overlay(9) -from:0x0217fc3c kind:load to:0x02181948 module:overlay(31) +from:0x0217fc3c kind:load to:0x02181848 add:0x100 module:overlay(31) from:0x0217fc48 kind:arm_call to:0x0217bd18 module:overlay(31) from:0x0217fc6c kind:arm_call to:0x0217bd18 module:overlay(31) from:0x0217fc70 kind:arm_call to:0x0217cdcc module:overlay(31) diff --git a/config/usa/arm9/overlays/ov031/symbols.txt b/config/usa/arm9/overlays/ov031/symbols.txt index 7c07e509..d5c2da62 100644 --- a/config/usa/arm9/overlays/ov031/symbols.txt +++ b/config/usa/arm9/overlays/ov031/symbols.txt @@ -1,4 +1,4 @@ -func_ov031_0217bd80 kind:function(arm,size=0x8) addr:0x0217bce0 +_ZN24UnkStruct_ov031_02183e8019func_ov031_0217bd80Ev kind:function(arm,size=0x8) addr:0x0217bce0 func_ov031_0217bd88 kind:function(arm,size=0x18) addr:0x0217bce8 func_ov031_0217bda0 kind:function(arm,size=0xc) addr:0x0217bd00 func_ov031_0217bdac kind:function(arm,size=0x8) addr:0x0217bd0c @@ -31,10 +31,10 @@ func_ov031_0217cdd8 kind:function(arm,size=0x20) addr:0x0217cd38 func_ov031_0217cdf8 kind:function(arm,size=0x20) addr:0x0217cd58 func_ov031_0217ce18 kind:function(arm,size=0x54) addr:0x0217cd78 func_ov031_0217ce6c kind:function(arm,size=0x24) addr:0x0217cdcc -func_ov031_0217ce90 kind:function(arm,size=0x30) addr:0x0217cdf0 -func_ov031_0217cec0 kind:function(arm,size=0x40) addr:0x0217ce20 +HasFreebieCard kind:function(arm,size=0x30) addr:0x0217cdf0 +_ZN24UnkStruct_ov031_02183e8019func_ov031_0217cec0Ev kind:function(arm,size=0x40) addr:0x0217ce20 func_ov031_0217cf00 kind:function(arm,size=0x1c) addr:0x0217ce60 -func_ov031_0217cf1c kind:function(arm,size=0x10) addr:0x0217ce7c +_Z19func_ov031_0217cf1cv kind:function(arm,size=0x10) addr:0x0217ce7c func_ov031_0217cf2c kind:function(arm,size=0x34) addr:0x0217ce8c func_ov031_0217cf60 kind:function(arm,size=0x24) addr:0x0217cec0 func_ov031_0217cf84 kind:function(arm,size=0x2c) addr:0x0217cee4 @@ -69,175 +69,175 @@ func_ov031_0217da80 kind:function(arm,size=0x38) addr:0x0217d9e0 func_ov031_0217dab8 kind:function(arm,size=0x90) addr:0x0217da18 func_ov031_0217db48 kind:function(arm,size=0x8) addr:0x0217daa8 func_ov031_0217db50 kind:function(arm,size=0x8c) addr:0x0217dab0 -func_ov031_0217dbdc kind:function(arm,size=0x40) addr:0x0217db3c -func_ov031_0217dc1c kind:function(arm,size=0x40) addr:0x0217db7c -func_ov031_0217dc5c kind:function(arm,size=0x40) addr:0x0217dbbc -func_ov031_0217dc9c kind:function(arm,size=0x40) addr:0x0217dbfc -func_ov031_0217dcdc kind:function(arm,size=0x40) addr:0x0217dc3c -func_ov031_0217dd1c kind:function(arm,size=0x40) addr:0x0217dc7c -func_ov031_0217dd5c kind:function(arm,size=0x40) addr:0x0217dcbc -func_ov031_0217dd9c kind:function(arm,size=0x40) addr:0x0217dcfc -func_ov031_0217dddc kind:function(arm,size=0x40) addr:0x0217dd3c -func_ov031_0217de1c kind:function(arm,size=0x30) addr:0x0217dd7c -func_ov031_0217de4c kind:function(arm,size=0x30) addr:0x0217ddac -func_ov031_0217de7c kind:function(arm,size=0x40) addr:0x0217dddc -func_ov031_0217debc kind:function(arm,size=0x40) addr:0x0217de1c -func_ov031_0217defc kind:function(arm,size=0x40) addr:0x0217de5c -func_ov031_0217df3c kind:function(arm,size=0x40) addr:0x0217de9c -func_ov031_0217df7c kind:function(arm,size=0x40) addr:0x0217dedc -func_ov031_0217dfbc kind:function(arm,size=0x30) addr:0x0217df1c -func_ov031_0217dfec kind:function(arm,size=0x54) addr:0x0217df4c -func_ov031_0217e040 kind:function(arm,size=0x274) addr:0x0217dfa0 -func_ov031_0217e2b4 kind:function(arm,size=0x124) addr:0x0217e214 -func_ov031_0217e3d8 kind:function(arm,size=0x34) addr:0x0217e338 -func_ov031_0217e40c kind:function(arm,size=0x54) addr:0x0217e36c -func_ov031_0217e460 kind:function(arm,size=0x94) addr:0x0217e3c0 -func_ov031_0217e4f4 kind:function(arm,size=0x94) addr:0x0217e454 -func_ov031_0217e588 kind:function(arm,size=0x30) addr:0x0217e4e8 -func_ov031_0217e5b8 kind:function(arm,size=0x20) addr:0x0217e518 -func_ov031_0217e5d8 kind:function(arm,size=0x14) addr:0x0217e538 -func_ov031_0217e5ec kind:function(arm,size=0x1c) addr:0x0217e54c -func_ov031_0217e608 kind:function(arm,size=0x14) addr:0x0217e568 -func_ov031_0217e61c kind:function(arm,size=0x48) addr:0x0217e57c -func_ov031_0217e664 kind:function(arm,size=0x50) addr:0x0217e5c4 -func_ov031_0217e6b4 kind:function(arm,size=0x48) addr:0x0217e614 -func_ov031_0217e6fc kind:function(arm,size=0x1c) addr:0x0217e65c -func_ov031_0217e718 kind:function(arm,size=0x24) addr:0x0217e678 -func_ov031_0217e73c kind:function(arm,size=0xd0) addr:0x0217e69c -func_ov031_0217e80c kind:function(arm,size=0xd8) addr:0x0217e76c -func_ov031_0217e8e4 kind:function(arm,size=0x48) addr:0x0217e844 -func_ov031_0217e92c kind:function(arm,size=0x50) addr:0x0217e88c -func_ov031_0217e97c kind:function(arm,size=0xac) addr:0x0217e8dc -func_ov031_0217ea28 kind:function(arm,size=0x18) addr:0x0217e988 -func_ov031_0217ea40 kind:function(arm,size=0x1c) addr:0x0217e9a0 -func_ov031_0217ea5c kind:function(arm,size=0xd8) addr:0x0217e9bc -func_ov031_0217eb34 kind:function(arm,size=0x60) addr:0x0217ea94 -func_ov031_0217eb94 kind:function(arm,size=0xc) addr:0x0217eaf4 -func_ov031_0217eba0 kind:function(arm,size=0x20) addr:0x0217eb00 -func_ov031_0217ebc0 kind:function(arm,size=0x14) addr:0x0217eb20 -func_ov031_0217ebd4 kind:function(arm,size=0x14) addr:0x0217eb34 -func_ov031_0217ebe8 kind:function(arm,size=0x1c) addr:0x0217eb48 -func_ov031_0217ec04 kind:function(arm,size=0x14) addr:0x0217eb64 -func_ov031_0217ec18 kind:function(arm,size=0x1c) addr:0x0217eb78 -func_ov031_0217ec34 kind:function(arm,size=0x14) addr:0x0217eb94 -func_ov031_0217ec48 kind:function(arm,size=0x1c) addr:0x0217eba8 -func_ov031_0217ec64 kind:function(arm,size=0x14) addr:0x0217ebc4 -func_ov031_0217ec78 kind:function(arm,size=0x1c) addr:0x0217ebd8 -func_ov031_0217ec94 kind:function(arm,size=0x24) addr:0x0217ebf4 -func_ov031_0217ecb8 kind:function(arm,size=0x30) addr:0x0217ec18 -func_ov031_0217ece8 kind:function(arm,size=0x64) addr:0x0217ec48 -func_ov031_0217ed4c kind:function(arm,size=0x1c) addr:0x0217ecac -func_ov031_0217ed68 kind:function(arm,size=0x60) addr:0x0217ecc8 -func_ov031_0217edc8 kind:function(arm,size=0x14) addr:0x0217ed28 -func_ov031_0217eddc kind:function(arm,size=0x98) addr:0x0217ed3c -func_ov031_0217ee74 kind:function(arm,size=0x154) addr:0x0217edd4 -func_ov031_0217efc8 kind:function(arm,size=0x68) addr:0x0217ef28 -func_ov031_0217f030 kind:function(arm,size=0x60) addr:0x0217ef90 -func_ov031_0217f090 kind:function(arm,size=0x14) addr:0x0217eff0 -func_ov031_0217f0a4 kind:function(arm,size=0xc) addr:0x0217f004 -func_ov031_0217f0b0 kind:function(arm,size=0x4) addr:0x0217f010 -func_ov031_0217f0b4 kind:function(arm,size=0x38) addr:0x0217f014 -func_ov031_0217f0ec kind:function(arm,size=0x20) addr:0x0217f04c -func_ov031_0217f10c kind:function(arm,size=0x8) addr:0x0217f06c -func_ov031_0217f114 kind:function(arm,size=0xc) addr:0x0217f074 -func_ov031_0217f120 kind:function(arm,size=0x334) addr:0x0217f080 -func_ov031_0217f454 kind:function(arm,size=0x50) addr:0x0217f3b4 -func_ov031_0217f4a4 kind:function(arm,size=0x194) addr:0x0217f404 -func_ov031_0217f638 kind:function(arm,size=0x4) addr:0x0217f598 -func_ov031_0217f63c kind:function(arm,size=0x4) addr:0x0217f59c -func_ov031_0217f640 kind:function(arm,size=0xb8) addr:0x0217f5a0 -func_ov031_0217f6f8 kind:function(arm,size=0xb8) addr:0x0217f658 -func_ov031_0217f7b0 kind:function(arm,size=0xb8) addr:0x0217f710 -func_ov031_0217f868 kind:function(arm,size=0x24) addr:0x0217f7c8 -func_ov031_0217f88c kind:function(arm,size=0x8) addr:0x0217f7ec -func_ov031_0217f894 kind:function(arm,size=0xc) addr:0x0217f7f4 -func_ov031_0217f8a0 kind:function(arm,size=0x24) addr:0x0217f800 -func_ov031_0217f8c4 kind:function(arm,size=0xc) addr:0x0217f824 -func_ov031_0217f8d0 kind:function(arm,size=0xc) addr:0x0217f830 -func_ov031_0217f8dc kind:function(arm,size=0xc) addr:0x0217f83c -func_ov031_0217f8e8 kind:function(arm,size=0x38) addr:0x0217f848 -func_ov031_0217f920 kind:function(arm,size=0xc) addr:0x0217f880 -func_ov031_0217f92c kind:function(arm,size=0x48) addr:0x0217f88c -func_ov031_0217f974 kind:function(arm,size=0x98) addr:0x0217f8d4 -func_ov031_0217fa0c kind:function(arm,size=0x98) addr:0x0217f96c -func_ov031_0217faa4 kind:function(arm,size=0x60) addr:0x0217fa04 -func_ov031_0217fb04 kind:function(arm,size=0xc) addr:0x0217fa64 -func_ov031_0217fb10 kind:function(arm,size=0xf8) addr:0x0217fa70 -func_ov031_0217fc08 kind:function(arm,size=0x14) addr:0x0217fb68 -func_ov031_0217fc1c kind:function(arm,size=0x28) addr:0x0217fb7c -func_ov031_0217fc44 kind:function(arm,size=0x38) addr:0x0217fba4 -func_ov031_0217fc7c kind:function(arm,size=0x64) addr:0x0217fbdc -func_ov031_0217fce0 kind:function(arm,size=0x18) addr:0x0217fc40 -func_ov031_0217fcf8 kind:function(arm,size=0x5c) addr:0x0217fc58 -func_ov031_0217fd54 kind:function(arm,size=0x30) addr:0x0217fcb4 -func_ov031_0217fd84 kind:function(arm,size=0x7c) addr:0x0217fce4 -func_ov031_0217fe00 kind:function(arm,size=0x2c) addr:0x0217fd60 -func_ov031_0217fe2c kind:function(arm,size=0x2c) addr:0x0217fd8c -func_ov031_0217fe58 kind:function(arm,size=0x2c) addr:0x0217fdb8 -func_ov031_0217fe84 kind:function(arm,size=0x2c) addr:0x0217fde4 -func_ov031_0217feb0 kind:function(arm,size=0x2c) addr:0x0217fe10 -func_ov031_0217fedc kind:function(arm,size=0x2c) addr:0x0217fe3c -func_ov031_0217ff08 kind:function(arm,size=0x54) addr:0x0217fe68 -func_ov031_0217ff5c kind:function(arm,size=0x40) addr:0x0217febc -func_ov031_0217ff9c kind:function(arm,size=0x7c) addr:0x0217fefc -func_ov031_02180018 kind:function(arm,size=0xc) addr:0x0217ff78 -func_ov031_02180024 kind:function(arm,size=0xc) addr:0x0217ff84 -func_ov031_02180030 kind:function(arm,size=0x40) addr:0x0217ff90 -func_ov031_02180070 kind:function(arm,size=0x54) addr:0x0217ffd0 -func_ov031_021800c4 kind:function(arm,size=0x54) addr:0x02180024 -func_ov031_02180118 kind:function(arm,size=0x54) addr:0x02180078 -func_ov031_0218016c kind:function(arm,size=0x40) addr:0x021800cc -func_ov031_021801ac kind:function(arm,size=0x34) addr:0x0218010c -func_ov031_021801e0 kind:function(arm,size=0x34) addr:0x02180140 -func_ov031_02180214 kind:function(arm,size=0x34) addr:0x02180174 -func_ov031_02180248 kind:function(arm,size=0x18) addr:0x021801a8 -func_ov031_02180260 kind:function(arm,size=0x18) addr:0x021801c0 -func_ov031_02180278 kind:function(arm,size=0x18) addr:0x021801d8 -func_ov031_02180290 kind:function(arm,size=0x8) addr:0x021801f0 -func_ov031_02180298 kind:function(arm,size=0x8) addr:0x021801f8 -func_ov031_021802a0 kind:function(arm,size=0x8) addr:0x02180200 -func_ov031_021802a8 kind:function(arm,size=0x3c) addr:0x02180208 -func_ov031_021802e4 kind:function(arm,size=0x8) addr:0x02180244 -func_ov031_021802ec kind:function(arm,size=0x3c) addr:0x0218024c -func_ov031_02180328 kind:function(arm,size=0x8) addr:0x02180288 -func_ov031_02180330 kind:function(arm,size=0x3c) addr:0x02180290 -func_ov031_0218036c kind:function(arm,size=0x8) addr:0x021802cc -func_ov031_02180374 kind:function(arm,size=0x50) addr:0x021802d4 -func_ov031_021803c4 kind:function(arm,size=0x3c) addr:0x02180324 -func_ov031_02180400 kind:function(arm,size=0x8) addr:0x02180360 -func_ov031_02180408 kind:function(arm,size=0x8) addr:0x02180368 -func_ov031_02180410 kind:function(arm,size=0x8) addr:0x02180370 -func_ov031_02180418 kind:function(arm,size=0x20) addr:0x02180378 -func_ov031_02180438 kind:function(arm,size=0x1c) addr:0x02180398 -func_ov031_02180454 kind:function(arm,size=0x14) addr:0x021803b4 -func_ov031_02180468 kind:function(arm,size=0x1c) addr:0x021803c8 -func_ov031_02180484 kind:function(arm,size=0x14) addr:0x021803e4 -func_ov031_02180498 kind:function(arm,size=0x1c) addr:0x021803f8 -func_ov031_021804b4 kind:function(arm,size=0x14) addr:0x02180414 -func_ov031_021804c8 kind:function(arm,size=0x1c) addr:0x02180428 -func_ov031_021804e4 kind:function(arm,size=0x14) addr:0x02180444 -func_ov031_021804f8 kind:function(arm,size=0x1c) addr:0x02180458 -func_ov031_02180514 kind:function(arm,size=0x14) addr:0x02180474 -func_ov031_02180528 kind:function(arm,size=0x1c) addr:0x02180488 -func_ov031_02180544 kind:function(arm,size=0x14) addr:0x021804a4 -func_ov031_02180558 kind:function(arm,size=0x1c) addr:0x021804b8 -func_ov031_02180574 kind:function(arm,size=0x14) addr:0x021804d4 -func_ov031_02180588 kind:function(arm,size=0x1c) addr:0x021804e8 -func_ov031_021805a4 kind:function(arm,size=0x14) addr:0x02180504 -func_ov031_021805b8 kind:function(arm,size=0x1c) addr:0x02180518 -func_ov031_021805d4 kind:function(arm,size=0x14) addr:0x02180534 -func_ov031_021805e8 kind:function(arm,size=0x1c) addr:0x02180548 -func_ov031_02180604 kind:function(arm,size=0x14) addr:0x02180564 -func_ov031_02180618 kind:function(arm,size=0x1c) addr:0x02180578 -func_ov031_02180634 kind:function(arm,size=0x14) addr:0x02180594 -func_ov031_02180648 kind:function(arm,size=0x1c) addr:0x021805a8 -func_ov031_02180664 kind:function(arm,size=0x14) addr:0x021805c4 -func_ov031_02180678 kind:function(arm,size=0x1c) addr:0x021805d8 -func_ov031_02180694 kind:function(arm,size=0x14) addr:0x021805f4 -func_ov031_021806a8 kind:function(arm,size=0x1c) addr:0x02180608 -func_ov031_021806c4 kind:function(arm,size=0x14) addr:0x02180624 -func_ov031_021806d8 kind:function(arm,size=0x1c) addr:0x02180638 -func_ov031_021806f4 kind:function(arm,size=0x14) addr:0x02180654 +_ZN15ActorShopItemDM6CreateEv kind:function(arm,size=0x40) addr:0x0217db3c +_ZN20ActorShopItemSoldOut6CreateEv kind:function(arm,size=0x40) addr:0x0217db7c +_ZN27ActorShopItemHeartContainer6CreateEv kind:function(arm,size=0x40) addr:0x0217dbbc +_ZN19ActorShopItemArrows6CreateEv kind:function(arm,size=0x40) addr:0x0217dbfc +_ZN18ActorShopItemBombs6CreateEv kind:function(arm,size=0x40) addr:0x0217dc3c +_ZN21ActorShopItemBombchus6CreateEv kind:function(arm,size=0x40) addr:0x0217dc7c +_ZN19ActorShopItemQuiver6CreateEv kind:function(arm,size=0x40) addr:0x0217dcbc +_ZN20ActorShopItemBombBag6CreateEv kind:function(arm,size=0x40) addr:0x0217dcfc +_ZN23ActorShopItemBombchuBag6CreateEv kind:function(arm,size=0x40) addr:0x0217dd3c +_ZN21ActorShopItemTreasure6CreateEv kind:function(arm,size=0x30) addr:0x0217dd7c +_ZN21ActorShopItemShipPart6CreateEv kind:function(arm,size=0x30) addr:0x0217ddac +_ZN16ActorShopItemGem6CreateEv kind:function(arm,size=0x40) addr:0x0217dddc +_ZN19ActorShopItemShield6CreateEv kind:function(arm,size=0x40) addr:0x0217de1c +_ZN19ActorShopItemPotion6CreateEv kind:function(arm,size=0x40) addr:0x0217de5c +_ZN15ActorShopItemBK6CreateEv kind:function(arm,size=0x40) addr:0x0217de9c +_ZN15ActorShopItemCC6CreateEv kind:function(arm,size=0x40) addr:0x0217dedc +_ZN15ActorShopItemBY6CreateEv kind:function(arm,size=0x30) addr:0x0217df1c +_Z19func_ov031_0217dfecP9FileEntryS0_PKc kind:function(arm,size=0x54) addr:0x0217df4c +_Z19func_ov031_0217e040v kind:function(arm,size=0x274) addr:0x0217dfa0 +_Z19func_ov031_0217e2b4v kind:function(arm,size=0x124) addr:0x0217e214 +_ZN17ActorShopItemBaseC1Ev kind:function(arm,size=0x34) addr:0x0217e338 +_ZN13ActorShopItemC2Ev kind:function(arm,size=0x54) addr:0x0217e36c +_ZN21ActorShopItemShipPartC1Ev kind:function(arm,size=0x94) addr:0x0217e3c0 +_ZN21ActorShopItemTreasureC1Ev kind:function(arm,size=0x94) addr:0x0217e454 +_ZN16ActorShopItemUnkC2Ev kind:function(arm,size=0x30) addr:0x0217e4e8 +_ZN15ActorShopItemBYC1Ev kind:function(arm,size=0x20) addr:0x0217e518 +_ZN17ActorShopItemBaseD1Ev kind:function(arm,size=0x14) addr:0x0217e538 +_ZN17ActorShopItemBaseD0Ev kind:function(arm,size=0x1c) addr:0x0217e54c +_ZN17ActorShopItemBaseD2Ev kind:function(arm,size=0x14) addr:0x0217e568 +_ZN13ActorShopItemD1Ev kind:function(arm,size=0x48) addr:0x0217e57c +_ZN13ActorShopItemD0Ev kind:function(arm,size=0x50) addr:0x0217e5c4 +_ZN13ActorShopItemD2Ev kind:function(arm,size=0x48) addr:0x0217e614 +_ZN20ActorShopItemSoldOutD1Ev kind:function(arm,size=0x1c) addr:0x0217e65c +_ZN20ActorShopItemSoldOutD0Ev kind:function(arm,size=0x24) addr:0x0217e678 +_ZN21ActorShopItemShipPartD1Ev kind:function(arm,size=0xd0) addr:0x0217e69c +_ZN21ActorShopItemShipPartD0Ev kind:function(arm,size=0xd8) addr:0x0217e76c +_ZN21ActorShopItemTreasureD1Ev kind:function(arm,size=0x48) addr:0x0217e844 +_ZN21ActorShopItemTreasureD0Ev kind:function(arm,size=0x50) addr:0x0217e88c +_ZN13ActorShopItem8vfunc_d4Ev kind:function(arm,size=0xac) addr:0x0217e8dc +_ZN15ActorShopItemDM8vfunc_d4Ev kind:function(arm,size=0x18) addr:0x0217e988 +_ZN20ActorShopItemSoldOut8vfunc_d4Ev kind:function(arm,size=0x1c) addr:0x0217e9a0 +_ZN21ActorShopItemShipPart8vfunc_d4Ev kind:function(arm,size=0xd8) addr:0x0217e9bc +_ZN21ActorShopItemTreasure8vfunc_d4Ev kind:function(arm,size=0x60) addr:0x0217ea94 +_ZN17ActorShopItemBase4InitEv kind:function(arm,size=0xc) addr:0x0217eaf4 +_ZN13ActorShopItem4InitEv kind:function(arm,size=0x20) addr:0x0217eb00 +_ZN15ActorShopItemDM4InitEv kind:function(arm,size=0x14) addr:0x0217eb20 +_ZN20ActorShopItemSoldOut4InitEv kind:function(arm,size=0x14) addr:0x0217eb34 +_ZN27ActorShopItemHeartContainer4InitEv kind:function(arm,size=0x1c) addr:0x0217eb48 +_ZN19ActorShopItemArrows4InitEv kind:function(arm,size=0x14) addr:0x0217eb64 +_ZN19ActorShopItemQuiver4InitEv kind:function(arm,size=0x1c) addr:0x0217eb78 +_ZN18ActorShopItemBombs4InitEv kind:function(arm,size=0x14) addr:0x0217eb94 +_ZN20ActorShopItemBombBag4InitEv kind:function(arm,size=0x1c) addr:0x0217eba8 +_ZN21ActorShopItemBombchus4InitEv kind:function(arm,size=0x14) addr:0x0217ebc4 +_ZN23ActorShopItemBombchuBag4InitEv kind:function(arm,size=0x1c) addr:0x0217ebd8 +_ZN21ActorShopItemShipPart4InitEv kind:function(arm,size=0x24) addr:0x0217ebf4 +_ZN21ActorShopItemTreasure4InitEv kind:function(arm,size=0x30) addr:0x0217ec18 +_ZN16ActorShopItemGem4InitEv kind:function(arm,size=0x64) addr:0x0217ec48 +_ZN19ActorShopItemShield4InitEv kind:function(arm,size=0x1c) addr:0x0217ecac +_ZN19ActorShopItemPotion4InitEv kind:function(arm,size=0x60) addr:0x0217ecc8 +_ZN16ActorShopItemUnk4InitEv kind:function(arm,size=0x14) addr:0x0217ed28 +_ZN17ActorShopItemBase8vfunc_14Ej kind:function(arm,size=0x98) addr:0x0217ed3c +_ZN13ActorShopItem8vfunc_14Ej kind:function(arm,size=0x154) addr:0x0217edd4 +_ZN21ActorShopItemShipPart8vfunc_14Ej kind:function(arm,size=0x68) addr:0x0217ef28 +_ZN16ActorShopItemUnk8vfunc_14Ej kind:function(arm,size=0x60) addr:0x0217ef90 +_ZN17ActorShopItemBase8vfunc_18Ej kind:function(arm,size=0x14) addr:0x0217eff0 +_ZN13ActorShopItem8vfunc_c8Ev kind:function(arm,size=0xc) addr:0x0217f004 +_ZN13ActorShopItem8vfunc_ccEv kind:function(arm,size=0x4) addr:0x0217f010 +_ZN13ActorShopItem19func_ov031_0217f0b4Ev kind:function(arm,size=0x38) addr:0x0217f014 +_ZN13ActorShopItem8GetPitchEv kind:function(arm,size=0x20) addr:0x0217f04c +_ZN13ActorShopItem6GetYawEv kind:function(arm,size=0x8) addr:0x0217f06c +_Z19func_ov031_0217f114Pv kind:function(arm,size=0xc) addr:0x0217f074 +_ZN13ActorShopItem19func_ov031_0217f120Ev kind:function(arm,size=0x334) addr:0x0217f080 +_ZN13ActorShopItem8vfunc_20Eb kind:function(arm,size=0x50) addr:0x0217f3b4 +_ZN21ActorShopItemShipPart8vfunc_20Eb kind:function(arm,size=0x194) addr:0x0217f404 +_ZN15ActorShopItemDM8vfunc_20Eb kind:function(arm,size=0x4) addr:0x0217f598 +_ZN16ActorShopItemUnk8vfunc_20Eb kind:function(arm,size=0x4) addr:0x0217f59c +_ZN15ActorShopItemBK8vfunc_1cEPt kind:function(arm,size=0xb8) addr:0x0217f5a0 +_ZN15ActorShopItemCC8vfunc_1cEPt kind:function(arm,size=0xb8) addr:0x0217f658 +_ZN15ActorShopItemBY8vfunc_1cEPt kind:function(arm,size=0xb8) addr:0x0217f710 +_ZN13ActorShopItem19GetSoldOutMessageIdEv kind:function(arm,size=0x24) addr:0x0217f7c8 +_ZN15ActorShopItemDM12GetMessageIdEv kind:function(arm,size=0x8) addr:0x0217f7ec +_ZN20ActorShopItemSoldOut12GetMessageIdEv kind:function(arm,size=0xc) addr:0x0217f7f4 +_ZN27ActorShopItemHeartContainer12GetMessageIdEv kind:function(arm,size=0x24) addr:0x0217f800 +_ZN19ActorShopItemArrows12GetMessageIdEv kind:function(arm,size=0xc) addr:0x0217f824 +_ZN19ActorShopItemQuiver12GetMessageIdEv kind:function(arm,size=0xc) addr:0x0217f830 +_ZN18ActorShopItemBombs12GetMessageIdEv kind:function(arm,size=0xc) addr:0x0217f83c +_ZN20ActorShopItemBombBag12GetMessageIdEv kind:function(arm,size=0x38) addr:0x0217f848 +_ZN21ActorShopItemBombchus12GetMessageIdEv kind:function(arm,size=0xc) addr:0x0217f880 +_ZN23ActorShopItemBombchuBag12GetMessageIdEv kind:function(arm,size=0x48) addr:0x0217f88c +_ZN21ActorShopItemShipPart12GetMessageIdEv kind:function(arm,size=0x98) addr:0x0217f8d4 +_ZN21ActorShopItemTreasure12GetMessageIdEv kind:function(arm,size=0x98) addr:0x0217f96c +_ZN16ActorShopItemGem12GetMessageIdEv kind:function(arm,size=0x60) addr:0x0217fa04 +_ZN19ActorShopItemShield12GetMessageIdEv kind:function(arm,size=0xc) addr:0x0217fa64 +_ZN19ActorShopItemPotion12GetMessageIdEv kind:function(arm,size=0xf8) addr:0x0217fa70 +_ZN13ActorShopItem8GetPriceEv kind:function(arm,size=0x14) addr:0x0217fb68 +_ZN27ActorShopItemHeartContainer8GetPriceEv kind:function(arm,size=0x28) addr:0x0217fb7c +_ZN19ActorShopItemPotion8GetPriceEv kind:function(arm,size=0x38) addr:0x0217fba4 +_ZN21ActorShopItemShipPart8GetPriceEv kind:function(arm,size=0x64) addr:0x0217fbdc +_ZN21ActorShopItemTreasure8GetPriceEv kind:function(arm,size=0x18) addr:0x0217fc40 +_ZN13ActorShopItem8vfunc_c0Ev kind:function(arm,size=0x5c) addr:0x0217fc58 +_ZN13ActorShopItem8vfunc_c4Ev kind:function(arm,size=0x30) addr:0x0217fcb4 +_ZN27ActorShopItemHeartContainer8vfunc_c4Ev kind:function(arm,size=0x7c) addr:0x0217fce4 +_ZN19ActorShopItemArrows8vfunc_c4Ev kind:function(arm,size=0x2c) addr:0x0217fd60 +_ZN19ActorShopItemQuiver8vfunc_c4Ev kind:function(arm,size=0x2c) addr:0x0217fd8c +_ZN18ActorShopItemBombs8vfunc_c4Ev kind:function(arm,size=0x2c) addr:0x0217fdb8 +_ZN20ActorShopItemBombBag8vfunc_c4Ev kind:function(arm,size=0x2c) addr:0x0217fde4 +_ZN21ActorShopItemBombchus8vfunc_c4Ev kind:function(arm,size=0x2c) addr:0x0217fe10 +_ZN23ActorShopItemBombchuBag8vfunc_c4Ev kind:function(arm,size=0x2c) addr:0x0217fe3c +_ZN21ActorShopItemShipPart8vfunc_c4Ev kind:function(arm,size=0x54) addr:0x0217fe68 +_ZN21ActorShopItemTreasure8vfunc_c4Ev kind:function(arm,size=0x40) addr:0x0217febc +_ZN16ActorShopItemGem8vfunc_c4Ev kind:function(arm,size=0x7c) addr:0x0217fefc +_ZN19ActorShopItemShield8vfunc_c4Ev kind:function(arm,size=0xc) addr:0x0217ff78 +_ZN19ActorShopItemPotion8vfunc_c4Ev kind:function(arm,size=0xc) addr:0x0217ff84 +_ZN17ActorShopItemBase8vfunc_b4Ev kind:function(arm,size=0x40) addr:0x0217ff90 +_ZN15ActorShopItemBK8vfunc_b4Ev kind:function(arm,size=0x54) addr:0x0217ffd0 +_ZN15ActorShopItemCC8vfunc_b4Ev kind:function(arm,size=0x54) addr:0x02180024 +_ZN15ActorShopItemBY8vfunc_b4Ev kind:function(arm,size=0x54) addr:0x02180078 +_ZN17ActorShopItemBase8vfunc_b8Ev kind:function(arm,size=0x40) addr:0x021800cc +_ZN15ActorShopItemBK8vfunc_b8Ev kind:function(arm,size=0x34) addr:0x0218010c +_ZN15ActorShopItemCC8vfunc_b8Ev kind:function(arm,size=0x34) addr:0x02180140 +_ZN15ActorShopItemBY8vfunc_b8Ev kind:function(arm,size=0x34) addr:0x02180174 +_ZN21ActorShopItemShipPart19func_ov031_02180248Ev kind:function(arm,size=0x18) addr:0x021801a8 +_ZN21ActorShopItemShipPart19func_ov031_02180260Ev kind:function(arm,size=0x18) addr:0x021801c0 +_ZN21ActorShopItemTreasure19func_ov031_02180278Ev kind:function(arm,size=0x18) addr:0x021801d8 +_ZN15ActorShopItemDM8vfunc_d0Ev kind:function(arm,size=0x8) addr:0x021801f0 +_ZN20ActorShopItemSoldOut8vfunc_d0Ev kind:function(arm,size=0x8) addr:0x021801f8 +_ZN27ActorShopItemHeartContainer8vfunc_d0Ev kind:function(arm,size=0x8) addr:0x02180200 +_ZN19ActorShopItemArrows8vfunc_d0Ev kind:function(arm,size=0x3c) addr:0x02180208 +_ZN19ActorShopItemQuiver8vfunc_d0Ev kind:function(arm,size=0x8) addr:0x02180244 +_ZN18ActorShopItemBombs8vfunc_d0Ev kind:function(arm,size=0x3c) addr:0x0218024c +_ZN20ActorShopItemBombBag8vfunc_d0Ev kind:function(arm,size=0x8) addr:0x02180288 +_ZN21ActorShopItemBombchus8vfunc_d0Ev kind:function(arm,size=0x3c) addr:0x02180290 +_ZN23ActorShopItemBombchuBag8vfunc_d0Ev kind:function(arm,size=0x8) addr:0x021802cc +_ZN21ActorShopItemShipPart8vfunc_d0Ev kind:function(arm,size=0x50) addr:0x021802d4 +_ZN21ActorShopItemTreasure8vfunc_d0Ev kind:function(arm,size=0x3c) addr:0x02180324 +_ZN16ActorShopItemGem8vfunc_d0Ev kind:function(arm,size=0x8) addr:0x02180360 +_ZN19ActorShopItemShield8vfunc_d0Ev kind:function(arm,size=0x8) addr:0x02180368 +_ZN19ActorShopItemPotion8vfunc_d0Ev kind:function(arm,size=0x8) addr:0x02180370 +_ZN16ActorShopItemUnk19func_ov031_02180418Ev kind:function(arm,size=0x20) addr:0x02180378 +_ZN15ActorShopItemBYD0Ev kind:function(arm,size=0x1c) addr:0x02180398 +_ZN15ActorShopItemBYD1Ev kind:function(arm,size=0x14) addr:0x021803b4 +_ZN15ActorShopItemCCD0Ev kind:function(arm,size=0x1c) addr:0x021803c8 +_ZN15ActorShopItemCCD1Ev kind:function(arm,size=0x14) addr:0x021803e4 +_ZN15ActorShopItemBKD0Ev kind:function(arm,size=0x1c) addr:0x021803f8 +_ZN15ActorShopItemBKD1Ev kind:function(arm,size=0x14) addr:0x02180414 +_ZN16ActorShopItemUnkD0Ev kind:function(arm,size=0x1c) addr:0x02180428 +_ZN16ActorShopItemUnkD1Ev kind:function(arm,size=0x14) addr:0x02180444 +_ZN19ActorShopItemPotionD0Ev kind:function(arm,size=0x1c) addr:0x02180458 +_ZN19ActorShopItemPotionD1Ev kind:function(arm,size=0x14) addr:0x02180474 +_ZN19ActorShopItemShieldD0Ev kind:function(arm,size=0x1c) addr:0x02180488 +_ZN19ActorShopItemShieldD1Ev kind:function(arm,size=0x14) addr:0x021804a4 +_ZN16ActorShopItemGemD0Ev kind:function(arm,size=0x1c) addr:0x021804b8 +_ZN16ActorShopItemGemD1Ev kind:function(arm,size=0x14) addr:0x021804d4 +_ZN23ActorShopItemBombchuBagD0Ev kind:function(arm,size=0x1c) addr:0x021804e8 +_ZN23ActorShopItemBombchuBagD1Ev kind:function(arm,size=0x14) addr:0x02180504 +_ZN21ActorShopItemBombchusD0Ev kind:function(arm,size=0x1c) addr:0x02180518 +_ZN21ActorShopItemBombchusD1Ev kind:function(arm,size=0x14) addr:0x02180534 +_ZN20ActorShopItemBombBagD0Ev kind:function(arm,size=0x1c) addr:0x02180548 +_ZN20ActorShopItemBombBagD1Ev kind:function(arm,size=0x14) addr:0x02180564 +_ZN18ActorShopItemBombsD0Ev kind:function(arm,size=0x1c) addr:0x02180578 +_ZN18ActorShopItemBombsD1Ev kind:function(arm,size=0x14) addr:0x02180594 +_ZN19ActorShopItemQuiverD0Ev kind:function(arm,size=0x1c) addr:0x021805a8 +_ZN19ActorShopItemQuiverD1Ev kind:function(arm,size=0x14) addr:0x021805c4 +_ZN19ActorShopItemArrowsD0Ev kind:function(arm,size=0x1c) addr:0x021805d8 +_ZN19ActorShopItemArrowsD1Ev kind:function(arm,size=0x14) addr:0x021805f4 +_ZN27ActorShopItemHeartContainerD0Ev kind:function(arm,size=0x1c) addr:0x02180608 +_ZN27ActorShopItemHeartContainerD1Ev kind:function(arm,size=0x14) addr:0x02180624 +_ZN15ActorShopItemDMD0Ev kind:function(arm,size=0x1c) addr:0x02180638 +_ZN15ActorShopItemDMD1Ev kind:function(arm,size=0x14) addr:0x02180654 func_ov031_02180708 kind:function(arm,size=0x44) addr:0x02180668 func_ov031_0218074c kind:function(arm,size=0x44) addr:0x021806ac func_ov031_02180790 kind:function(arm,size=0x44) addr:0x021806f0 @@ -290,14 +290,10 @@ func_ov031_0218186c kind:function(arm,size=0x1c) addr:0x021817cc func_ov031_02181888 kind:function(arm,size=0x14) addr:0x021817e8 func_ov031_0218189c kind:function(arm,size=0x4) addr:0x021817fc data_ov031_021818a0 kind:data(any) addr:0x02181800 -data_ov031_021818e8 kind:data(any) addr:0x02181848 -data_ov031_021818f8 kind:data(any) addr:0x02181858 -data_ov031_021819e8 kind:data(any) addr:0x02181948 -data_ov031_02181a08 kind:data(any) addr:0x02181968 -data_ov031_02181a18 kind:data(any) addr:0x02181978 -data_ov031_02181a28 kind:data(any) addr:0x02181988 -data_ov031_02181a38 kind:data(any) addr:0x02181998 -data_ov031_02181a48 kind:data(any) addr:0x021819a8 +sShopItemBaseNames kind:data(any) addr:0x02181848 +unk$1534 kind:data(any) addr:0x021819b8 local +unk$1554 kind:data(any) addr:0x021819cc local +@2460 kind:data(any) addr:0x021819e0 local data_ov031_02181a88 kind:data(any) addr:0x021819e8 data_ov031_02181a94 kind:data(any) addr:0x021819f4 data_ov031_02181abc kind:data(any) addr:0x02181a1c @@ -306,11 +302,11 @@ data_ov031_02181ad4 kind:data(any) addr:0x02181a34 data_ov031_02181b10 kind:data(any) addr:0x02181a70 data_ov031_02181b24 kind:data(any) addr:0x02181a84 data_ov031_02181b30 kind:data(any) addr:0x02181a90 -__sinit_ov031_02181b6c kind:function(arm,size=0x3ec) addr:0x02181acc +__sinit_ActorShopItem.cpp kind:function(arm,size=0x3ec) addr:0x02181acc local __sinit_ov031_02181f58 kind:function(arm,size=0xa8) addr:0x02181eb8 __sinit_ov031_02182000 kind:function(arm,size=0x40) addr:0x02181f60 __sinit_ov031_02182040 kind:function(arm,size=0x40) addr:0x02181fa0 -.p__sinit_ov031_02181b6c kind:data(word) addr:0x02181fe0 +.p__sinit_ActorShopItem.cpp kind:data(word) addr:0x02181fe0 local .p__sinit_ov031_02181f58 kind:data(word) addr:0x02181fe4 .p__sinit_ov031_02182000 kind:data(word) addr:0x02181fe8 .p__sinit_ov031_02182040 kind:data(word) addr:0x02181fec @@ -332,84 +328,84 @@ data_ov031_0218213c kind:data(any) addr:0x0218209c data_ov031_02182140 kind:data(any) addr:0x021820a0 data_ov031_02182144 kind:data(any) addr:0x021820a4 data_ov031_02182170 kind:data(any) addr:0x021820d0 -data_ov031_02182290 kind:data(any) addr:0x021821f0 -data_ov031_02182294 kind:data(any) addr:0x021821f4 -data_ov031_02182298 kind:data(any) addr:0x021821f8 -data_ov031_0218229c kind:data(any) addr:0x021821fc -data_ov031_021822a0 kind:data(any) addr:0x02182200 -data_ov031_021822a4 kind:data(any) addr:0x02182204 -data_ov031_021822a8 kind:data(any) addr:0x02182208 -data_ov031_021822ac kind:data(any) addr:0x0218220c -data_ov031_021822b0 kind:data(any) addr:0x02182210 -data_ov031_021822d0 kind:data(any) addr:0x02182230 -data_ov031_02182318 kind:data(any) addr:0x02182278 -data_ov031_0218236c kind:data(any) addr:0x021822cc -data_ov031_021823c8 kind:data(any) addr:0x02182328 -data_ov031_0218248c kind:data(any) addr:0x021823ec -data_ov031_02182550 kind:data(any) addr:0x021824b0 -data_ov031_02182614 kind:data(any) addr:0x02182574 -data_ov031_021826d8 kind:data(any) addr:0x02182638 -data_ov031_021827c4 kind:data(any) addr:0x02182724 -data_ov031_021828b0 kind:data(any) addr:0x02182810 -data_ov031_0218299c kind:data(any) addr:0x021828fc -data_ov031_02182a88 kind:data(any) addr:0x021829e8 -data_ov031_02182b74 kind:data(any) addr:0x02182ad4 -data_ov031_02182c60 kind:data(any) addr:0x02182bc0 -data_ov031_02182d4c kind:data(any) addr:0x02182cac -data_ov031_02182e38 kind:data(any) addr:0x02182d98 -data_ov031_02182f24 kind:data(any) addr:0x02182e84 -data_ov031_02183010 kind:data(any) addr:0x02182f70 -data_ov031_021830fc kind:data(any) addr:0x0218305c -data_ov031_021831e8 kind:data(any) addr:0x02183148 -data_ov031_021832d4 kind:data(any) addr:0x02183234 -data_ov031_021833c0 kind:data(any) addr:0x02183320 -data_ov031_021834ac kind:data(any) addr:0x0218340c -data_ov031_02183568 kind:data(any) addr:0x021834c8 -data_ov031_02183584 kind:data(any) addr:0x021834e4 -data_ov031_021835a0 kind:data(any) addr:0x02183500 -data_ov031_021835bc kind:data(any) addr:0x0218351c -data_ov031_021835dc kind:data(any) addr:0x0218353c -data_ov031_021835f8 kind:data(any) addr:0x02183558 -data_ov031_02183618 kind:data(any) addr:0x02183578 -data_ov031_02183634 kind:data(any) addr:0x02183594 -data_ov031_02183654 kind:data(any) addr:0x021835b4 -data_ov031_02183670 kind:data(any) addr:0x021835d0 -data_ov031_0218368c kind:data(any) addr:0x021835ec -data_ov031_021836a8 kind:data(any) addr:0x02183608 -data_ov031_021836c4 kind:data(any) addr:0x02183624 -data_ov031_021836e0 kind:data(any) addr:0x02183640 -data_ov031_021836fc kind:data(any) addr:0x0218365c -data_ov031_02183714 kind:data(any) addr:0x02183674 -data_ov031_02183730 kind:data(any) addr:0x02183690 -data_ov031_02183750 kind:data(any) addr:0x021836b0 -data_ov031_02183770 kind:data(any) addr:0x021836d0 -data_ov031_0218378c kind:data(any) addr:0x021836ec -data_ov031_021837ac kind:data(any) addr:0x0218370c -data_ov031_021837c8 kind:data(any) addr:0x02183728 -data_ov031_021837e4 kind:data(any) addr:0x02183744 -data_ov031_02183800 kind:data(any) addr:0x02183760 -data_ov031_0218381c kind:data(any) addr:0x0218377c -data_ov031_0218383c kind:data(any) addr:0x0218379c -data_ov031_02183858 kind:data(any) addr:0x021837b8 -data_ov031_02183878 kind:data(any) addr:0x021837d8 -data_ov031_02183894 kind:data(any) addr:0x021837f4 -data_ov031_021838b4 kind:data(any) addr:0x02183814 -data_ov031_021838d0 kind:data(any) addr:0x02183830 -data_ov031_021838ec kind:data(any) addr:0x0218384c -data_ov031_02183908 kind:data(any) addr:0x02183868 -data_ov031_02183924 kind:data(any) addr:0x02183884 -data_ov031_02183940 kind:data(any) addr:0x021838a0 -data_ov031_0218395c kind:data(any) addr:0x021838bc -data_ov031_02183974 kind:data(any) addr:0x021838d4 -data_ov031_02183990 kind:data(any) addr:0x021838f0 -data_ov031_021839b0 kind:data(any) addr:0x02183910 -data_ov031_021839d0 kind:data(any) addr:0x02183930 -data_ov031_021839ec kind:data(any) addr:0x0218394c -data_ov031_02183a0c kind:data(any) addr:0x0218396c -data_ov031_02183a28 kind:data(any) addr:0x02183988 -data_ov031_02183a44 kind:data(any) addr:0x021839a4 -data_ov031_02183a60 kind:data(any) addr:0x021839c0 -data_ov031_02183a7c kind:data(any) addr:0x021839dc +@1183 kind:data(any) addr:0x021821f0 local +@1184 kind:data(any) addr:0x021821f4 local +@1185 kind:data(any) addr:0x021821f8 local +@1186 kind:data(any) addr:0x021821fc local +@1187 kind:data(any) addr:0x02182200 local +@1188 kind:data(any) addr:0x02182204 local +@1189 kind:data(any) addr:0x02182208 local +@1190 kind:data(any) addr:0x0218220c local +sShipTypes kind:data(any) addr:0x02182210 local +sShopItemPrices kind:data(any) addr:0x02182230 +sShopItemModelPaths kind:data(any) addr:0x02182278 +sShopItemTexturePaths kind:data(any) addr:0x021822cc +_ZTV15ActorShopItemBY kind:data(any) addr:0x02182320 +_ZTV15ActorShopItemCC kind:data(any) addr:0x021823e4 +_ZTV15ActorShopItemBK kind:data(any) addr:0x021824a8 +_ZTV16ActorShopItemUnk kind:data(any) addr:0x0218256c +_ZTV19ActorShopItemPotion kind:data(any) addr:0x02182630 +_ZTV19ActorShopItemShield kind:data(any) addr:0x0218271c +_ZTV16ActorShopItemGem kind:data(any) addr:0x02182808 +_ZTV21ActorShopItemTreasure kind:data(any) addr:0x021828f4 +_ZTV21ActorShopItemShipPart kind:data(any) addr:0x021829e0 +_ZTV23ActorShopItemBombchuBag kind:data(any) addr:0x02182acc +_ZTV21ActorShopItemBombchus kind:data(any) addr:0x02182bb8 +_ZTV20ActorShopItemBombBag kind:data(any) addr:0x02182ca4 +_ZTV18ActorShopItemBombs kind:data(any) addr:0x02182d90 +_ZTV19ActorShopItemQuiver kind:data(any) addr:0x02182e7c +_ZTV19ActorShopItemArrows kind:data(any) addr:0x02182f68 +_ZTV27ActorShopItemHeartContainer kind:data(any) addr:0x02183054 +_ZTV20ActorShopItemSoldOut kind:data(any) addr:0x02183140 +_ZTV15ActorShopItemDM kind:data(any) addr:0x0218322c +_ZTV13ActorShopItem kind:data(any) addr:0x02183318 +_ZTV17ActorShopItemBase kind:data(any) addr:0x02183404 +@1266 kind:data(any) addr:0x021834c8 local +@1267 kind:data(any) addr:0x021834e4 local +@1268 kind:data(any) addr:0x02183500 local +@1269 kind:data(any) addr:0x0218351c local +@1270 kind:data(any) addr:0x0218353c local +@1271 kind:data(any) addr:0x02183558 local +@1272 kind:data(any) addr:0x02183578 local +@1273 kind:data(any) addr:0x02183594 local +@1274 kind:data(any) addr:0x021835b4 local +@1275 kind:data(any) addr:0x021835d0 local +@1276 kind:data(any) addr:0x021835ec local +@1277 kind:data(any) addr:0x02183608 local +@1278 kind:data(any) addr:0x02183624 local +@1279 kind:data(any) addr:0x02183640 local +@1280 kind:data(any) addr:0x0218365c local +@1281 kind:data(any) addr:0x02183674 local +@1282 kind:data(any) addr:0x02183690 local +@1283 kind:data(any) addr:0x021836b0 local +@1284 kind:data(any) addr:0x021836d0 local +@1285 kind:data(any) addr:0x021836ec local +@1286 kind:data(any) addr:0x0218370c local +@1287 kind:data(any) addr:0x02183728 local +@1288 kind:data(any) addr:0x02183744 local +@1289 kind:data(any) addr:0x02183760 local +@1290 kind:data(any) addr:0x0218377c local +@1291 kind:data(any) addr:0x0218379c local +@1292 kind:data(any) addr:0x021837b8 local +@1293 kind:data(any) addr:0x021837d8 local +@1294 kind:data(any) addr:0x021837f4 local +@1295 kind:data(any) addr:0x02183814 local +@1296 kind:data(any) addr:0x02183830 local +@1297 kind:data(any) addr:0x0218384c local +@1298 kind:data(any) addr:0x02183868 local +@1299 kind:data(any) addr:0x02183884 local +@1300 kind:data(any) addr:0x021838a0 local +@1301 kind:data(any) addr:0x021838bc local +@1302 kind:data(any) addr:0x021838d4 local +@1303 kind:data(any) addr:0x021838f0 local +@1304 kind:data(any) addr:0x02183910 local +@1305 kind:data(any) addr:0x02183930 local +@1306 kind:data(any) addr:0x0218394c local +@1307 kind:data(any) addr:0x0218396c local +@1261 kind:data(any) addr:0x02183988 local +@1262 kind:data(any) addr:0x021839a4 local +@1263 kind:data(any) addr:0x021839c0 local +@1264 kind:data(any) addr:0x021839dc local data_ov031_02183a98 kind:data(any) addr:0x021839f8 data_ov031_02183a9c kind:data(any) addr:0x021839fc data_ov031_02183aa0 kind:data(any) addr:0x02183a00 @@ -433,44 +429,49 @@ data_ov031_02183d6c kind:data(any) addr:0x02183ccc data_ov031_02183d7c kind:data(any) addr:0x02183cdc data_ov031_02183e80 kind:bss addr:0x02183de0 data_ov031_02183e84 kind:bss addr:0x02183de4 -data_ov031_02183e88 kind:bss addr:0x02183de8 -data_ov031_02183e94 kind:bss addr:0x02183df4 -data_ov031_02183ea8 kind:bss addr:0x02183e08 -data_ov031_02183eb4 kind:bss addr:0x02183e14 -data_ov031_02183ec8 kind:bss addr:0x02183e28 -data_ov031_02183ed4 kind:bss addr:0x02183e34 -data_ov031_02183ee8 kind:bss addr:0x02183e48 -data_ov031_02183ef4 kind:bss addr:0x02183e54 -data_ov031_02183f08 kind:bss addr:0x02183e68 -data_ov031_02183f14 kind:bss addr:0x02183e74 -data_ov031_02183f28 kind:bss addr:0x02183e88 -data_ov031_02183f34 kind:bss addr:0x02183e94 -data_ov031_02183f48 kind:bss addr:0x02183ea8 -data_ov031_02183f54 kind:bss addr:0x02183eb4 -data_ov031_02183f68 kind:bss addr:0x02183ec8 -data_ov031_02183f74 kind:bss addr:0x02183ed4 -data_ov031_02183f78 kind:bss addr:0x02183ed8 ambiguous -data_ov031_02183f84 kind:bss addr:0x02183ee4 ambiguous -data_ov031_02183f88 kind:bss addr:0x02183ee8 -data_ov031_02183f94 kind:bss addr:0x02183ef4 -data_ov031_02183fa8 kind:bss addr:0x02183f08 -data_ov031_02183fb4 kind:bss addr:0x02183f14 -data_ov031_02183fc8 kind:bss addr:0x02183f28 -data_ov031_02183fd4 kind:bss addr:0x02183f34 -data_ov031_02183fe8 kind:bss addr:0x02183f48 -data_ov031_02183ff4 kind:bss addr:0x02183f54 -data_ov031_02184008 kind:bss addr:0x02183f68 -data_ov031_02184014 kind:bss addr:0x02183f74 -data_ov031_02184028 kind:bss addr:0x02183f88 -data_ov031_02184034 kind:bss addr:0x02183f94 -data_ov031_02184048 kind:bss addr:0x02183fa8 -data_ov031_02184054 kind:bss addr:0x02183fb4 -data_ov031_02184068 kind:bss addr:0x02183fc8 -data_ov031_02184074 kind:bss addr:0x02183fd4 -data_ov031_02184088 kind:bss addr:0x02183fe8 -data_ov031_02184094 kind:bss addr:0x02183ff4 -data_ov031_021840a8 kind:bss addr:0x02184008 -data_ov031_021840f0 kind:bss addr:0x02184050 +@792 kind:bss addr:0x02183de8 +_ZN15ActorShopItemDM5gTypeE kind:bss addr:0x02183df4 +@794 kind:bss addr:0x02183e08 +_ZN20ActorShopItemSoldOut5gTypeE kind:bss addr:0x02183e14 +@796 kind:bss addr:0x02183e28 +_ZN27ActorShopItemHeartContainer5gTypeE kind:bss addr:0x02183e34 +@798 kind:bss addr:0x02183e48 +_ZN19ActorShopItemArrows5gTypeE kind:bss addr:0x02183e54 +@800 kind:bss addr:0x02183e68 +_ZN18ActorShopItemBombs5gTypeE kind:bss addr:0x02183e74 +@802 kind:bss addr:0x02183e88 +_ZN21ActorShopItemBombchus5gTypeE kind:bss addr:0x02183e94 +@804 kind:bss addr:0x02183ea8 +_ZN19ActorShopItemQuiver5gTypeE kind:bss addr:0x02183eb4 +@806 kind:bss addr:0x02183ec8 +_ZN20ActorShopItemBombBag5gTypeE kind:bss addr:0x02183ed4 +@808 kind:bss addr:0x02183ee8 +_ZN23ActorShopItemBombchuBag5gTypeE kind:bss addr:0x02183ef4 +@810 kind:bss addr:0x02183f08 +_ZN21ActorShopItemTreasure5gTypeE kind:bss addr:0x02183f14 +@812 kind:bss addr:0x02183f28 +_ZN21ActorShopItemShipPart5gTypeE kind:bss addr:0x02183f34 +@814 kind:bss addr:0x02183f48 +_ZN16ActorShopItemGem5gTypeE kind:bss addr:0x02183f54 +@816 kind:bss addr:0x02183f68 +_ZN19ActorShopItemShield5gTypeE kind:bss addr:0x02183f74 +@818 kind:bss addr:0x02183f88 +_ZN19ActorShopItemPotion5gTypeE kind:bss addr:0x02183f94 +@820 kind:bss addr:0x02183fa8 +_ZN15ActorShopItemBK5gTypeE kind:bss addr:0x02183fb4 +@822 kind:bss addr:0x02183fc8 +_ZN15ActorShopItemCC5gTypeE kind:bss addr:0x02183fd4 +@824 kind:bss addr:0x02183fe8 +_ZN15ActorShopItemBY5gTypeE kind:bss addr:0x02183ff4 +sShopItemModelFiles kind:bss addr:0x02184008 local +sShopItemTextureFiles kind:bss addr:0x02184050 local +sShopItemShipModelFile kind:bss addr:0x02184098 local +sShopItemShip2ModelFile kind:bss addr:0x0218409c local +sShopItemShipTextureFile kind:bss addr:0x021840a0 local +sShopItemShip2TextureFile kind:bss addr:0x021840a4 local +sSoldOutModel kind:bss addr:0x021840a8 local +sShipModel kind:bss addr:0x021840ac local +sShip2Model kind:bss addr:0x021840b0 local data_ov031_02184154 kind:bss addr:0x021840b4 data_ov031_02184160 kind:bss addr:0x021840c0 data_ov031_02184174 kind:bss addr:0x021840d4 diff --git a/config/usa/arm9/overlays/ov040/relocs.txt b/config/usa/arm9/overlays/ov040/relocs.txt index b62510fe..42e0fd7a 100644 --- a/config/usa/arm9/overlays/ov040/relocs.txt +++ b/config/usa/arm9/overlays/ov040/relocs.txt @@ -697,7 +697,7 @@ from:0x02182fa0 kind:arm_call to:0x0217e0f0 module:overlay(40) from:0x02182fac kind:arm_call to:0x02182d88 module:overlay(40) from:0x02182fe4 kind:arm_call to:0x02182eec module:overlay(40) from:0x02183034 kind:arm_call to:0x0217df64 module:overlay(40) -from:0x02183070 kind:load to:0x02057830 module:main +from:0x02183070 kind:load to:0x02057828 add:0x8 module:main from:0x02183074 kind:load to:0x020577f8 module:main from:0x02183080 kind:arm_call to:0x02183120 module:overlay(40) from:0x02183088 kind:arm_call_thumb to:0x02030108 module:main diff --git a/config/usa/arm9/relocs.txt b/config/usa/arm9/relocs.txt index e9fe2eaa..eb560ea2 100644 --- a/config/usa/arm9/relocs.txt +++ b/config/usa/arm9/relocs.txt @@ -3851,10 +3851,10 @@ from:0x02030030 kind:overlay_id to:7 from:0x02030034 kind:load to:0x027e0ce0 module:dtcm from:0x02030040 kind:thumb_call_arm to:0x0202ea08 module:main from:0x02030068 kind:thumb_call to:0x02030048 module:main -from:0x02030070 kind:load to:0x02057814 module:main +from:0x02030070 kind:load to:0x0205780c add:0x8 module:main from:0x02030084 kind:thumb_call to:0x02030048 module:main from:0x0203008a kind:thumb_call_arm to:0x0202ea08 module:main -from:0x02030094 kind:load to:0x02057814 module:main +from:0x02030094 kind:load to:0x0205780c add:0x8 module:main from:0x020300b6 kind:thumb_call to:0x0202d54c module:main from:0x020300c4 kind:load to:0x027e0ce0 module:dtcm from:0x020300d4 kind:thumb_call to:0x0202d58c module:main diff --git a/config/usa/arm9/symbols.txt b/config/usa/arm9/symbols.txt index 3c77a5a0..d85e0d19 100644 --- a/config/usa/arm9/symbols.txt +++ b/config/usa/arm9/symbols.txt @@ -2699,8 +2699,8 @@ data_020577f0 kind:data(any) addr:0x020577a8 data_020577f8 kind:data(any) addr:0x020577b0 data_02057808 kind:data(any) addr:0x020577c0 data_02057840 kind:data(any) addr:0x020577f8 -data_0205785c kind:data(any) addr:0x02057814 -data_02057878 kind:data(any) addr:0x02057830 +_ZTV13FileEntryFlag kind:data(any) addr:0x0205780c +_ZTV9FileEntry kind:data(any) addr:0x02057828 _ZTV8BhioBase kind:data(any) addr:0x0205784c data_020578d4 kind:data(any) addr:0x0205788c data_020578d8 kind:data(any) addr:0x02057890 diff --git a/include/Actor/ActorShopItem.hpp b/include/Actor/ActorShopItem.hpp index 2c27a854..5d2e8d55 100644 --- a/include/Actor/ActorShopItem.hpp +++ b/include/Actor/ActorShopItem.hpp @@ -1,18 +1,52 @@ #pragma once +#include "Item/Item.hpp" #include "global.h" #include "types.h" #include "Actor/Actor.hpp" #include "Actor/ActorType.hpp" +#include "Render/ModelRender.hpp" +#include "System/SysNew.hpp" + +typedef u32 ShopItem; +enum ShopItem_ { + ShopItem_Unk = -1, + ShopItem_Test = 0, + ShopItem_SoldOut = 1, + ShopItem_Bombs = 2, + ShopItem_Arrows = 3, + ShopItem_Bombchus = 4, + ShopItem_HeartContainer = 5, + ShopItem_BombBag = 6, + ShopItem_Quiver = 7, + ShopItem_BombchuBag = 8, + ShopItem_ShipPart = 9, + ShopItem_Treasure = 10, + ShopItem_CourageGem = 11, + ShopItem_PowerGem = 12, + ShopItem_WisdomGem = 13, + ShopItem_Shield = 14, + ShopItem_RedPotion = 15, + ShopItem_PurplePotion = 16, + ShopItem_YellowPotion = 17, + ShopItem_BASE_COUNT = ShopItem_YellowPotion + 1, + ShopItem_LargeBombBag = 18, + ShopItem_LargeQuiver = 19, + ShopItem_LargeBombchuBag = 20, + ShopItem_COUNT_WITH_UPGRADES = ShopItem_LargeBombchuBag + 1, + ShopItem_Ship = 21, + ShopItem_Ship2 = 22, + ShopItem_FULL_COUNT = ShopItem_Ship2 + 1, +}; class ActorShopItemBase : public Actor { public: /* 000 (base) */ - /* 158 */ unk32 mUnk_158; - /* 15c */ unk8 mUnk_15c; - /* 15d */ unk8 mUnk_15d; - /* 15e */ unk8 mUnk_15e; + /* 158 */ ShopItem mShopItemId; + /* 15c */ bool mUnk_15c; + /* 15d */ bool mUnk_15d; + /* 15e */ bool mUnk_15e; /* 160 */ /* 00 */ virtual ~ActorShopItemBase() override; @@ -29,40 +63,39 @@ public: class ActorShopItem : public ActorShopItemBase { public: /* 000 (base) */ - /* 160 */ unk32 mUnk_160; - /* 164 */ unk32 mUnk_164; - /* 168 */ unk16 mUnk_168; - /* 16a */ unk16 mUnk_16a; - /* 16c */ unk16 mUnk_16c; - /* 16e */ unk16 mUnk_16e; - /* 170 */ unk16 mUnk_170; - /* 172 */ unk16 mUnk_172; - /* 174 */ unk8 mUnk_174; - /* 175 */ unk8 mUnk_175; + /* 160 */ ModelRender *mModel; + /* 164 */ ItemId mItemId; + /* 168 */ u16 mUnk_168; + /* 16a */ u16 mUnk_16a; + /* 16c */ u16 mUnk_16c; + /* 16e */ u16 mUnk_16e; + /* 170 */ u16 mUnk_170; + /* 172 */ u16 mUnk_172; + /* 174 */ bool mUnk_174; + /* 175 */ bool mUnk_175; /* 178 */ /* 00 */ virtual ~ActorShopItem() override; /* 08 */ virtual bool Init() override; /* 14 */ virtual void vfunc_14(u32 param1) override; /* 20 */ virtual void vfunc_20(bool param1) override; - /* bc */ virtual unk32 vfunc_bc() = 0; + /* bc */ virtual unk32 GetMessageId() = 0; /* c0 */ virtual unk32 vfunc_c0(); /* c4 */ virtual void vfunc_c4(); /* c8 */ virtual void vfunc_c8(); /* cc */ virtual void vfunc_cc(); - /* d0 */ virtual unk32 vfunc_d0() = 0; + /* d0 */ virtual bool vfunc_d0() = 0; /* d4 */ virtual void vfunc_d4(); - /* d8 */ virtual unk32 vfunc_d8(); - /* dc */ virtual unk32 vfunc_dc(); - /* e0 */ virtual unk32 vfunc_e0(); + /* d8 */ virtual u32 GetPitch(); + /* dc */ virtual u32 GetYaw(); + /* e0 */ virtual s32 GetPrice(); /* e4 */ ActorShopItem(); void func_ov031_0217f0b4(); - void func_ov031_0217f114(); void func_ov031_0217f120(); - unk32 func_ov031_0217f868(); + unk32 GetSoldOutMessageId(); }; class ActorShopItemDM : public ActorShopItem { @@ -75,8 +108,8 @@ public: /* 00 */ virtual ~ActorShopItemDM() override; /* 08 */ virtual bool Init() override; /* 20 */ virtual void vfunc_20(bool param1) override; - /* bc */ virtual unk32 vfunc_bc() override; - /* d0 */ virtual unk32 vfunc_d0() override; + /* bc */ virtual unk32 GetMessageId() override; + /* d0 */ virtual bool vfunc_d0() override; /* d4 */ virtual void vfunc_d4() override; /* e4 */ @@ -92,8 +125,8 @@ public: /* 00 */ virtual ~ActorShopItemSoldOut() override; /* 08 */ virtual bool Init() override; - /* bc */ virtual unk32 vfunc_bc() override; - /* d0 */ virtual unk32 vfunc_d0() override; + /* bc */ virtual unk32 GetMessageId() override; + /* d0 */ virtual bool vfunc_d0() override; /* d4 */ virtual void vfunc_d4() override; /* e4 */ @@ -109,11 +142,10 @@ public: /* 00 */ virtual ~ActorShopItemHeartContainer() override; /* 08 */ virtual bool Init() override; - /* bc */ virtual unk32 vfunc_bc() override; + /* bc */ virtual unk32 GetMessageId() override; /* c4 */ virtual void vfunc_c4() override; - /* d0 */ virtual unk32 vfunc_d0() override; - /* d4 */ virtual void vfunc_d4() override; - /* e0 */ virtual unk32 vfunc_e0() override; + /* d0 */ virtual bool vfunc_d0() override; + /* e0 */ virtual s32 GetPrice() override; /* e4 */ static ActorShopItemHeartContainer *Create(); @@ -128,48 +160,14 @@ public: /* 00 */ virtual ~ActorShopItemArrows() override; /* 08 */ virtual bool Init() override; - /* bc */ virtual unk32 vfunc_bc() override; + /* bc */ virtual unk32 GetMessageId() override; /* c4 */ virtual void vfunc_c4() override; - /* d0 */ virtual unk32 vfunc_d0() override; + /* d0 */ virtual bool vfunc_d0() override; /* e4 */ static ActorShopItemArrows *Create(); }; -class ActorShopItemBombs : public ActorShopItem { -public: - static ActorType gType; - - /* 000 (base) */ - /* 178 */ - - /* 00 */ virtual ~ActorShopItemBombs() override; - /* 08 */ virtual bool Init() override; - /* bc */ virtual unk32 vfunc_bc() override; - /* c4 */ virtual void vfunc_c4() override; - /* d0 */ virtual unk32 vfunc_d0() override; - /* e4 */ - - static ActorShopItemBombs *Create(); -}; - -class ActorShopItemBombchus : public ActorShopItem { -public: - static ActorType gType; - - /* 000 (base) */ - /* 178 */ - - /* 00 */ virtual ~ActorShopItemBombchus() override; - /* 08 */ virtual bool Init() override; - /* bc */ virtual unk32 vfunc_bc() override; - /* c4 */ virtual void vfunc_c4() override; - /* d0 */ virtual unk32 vfunc_d0() override; - /* e4 */ - - static ActorShopItemBombchus *Create(); -}; - class ActorShopItemQuiver : public ActorShopItem { public: static ActorType gType; @@ -179,14 +177,31 @@ public: /* 00 */ virtual ~ActorShopItemQuiver() override; /* 08 */ virtual bool Init() override; - /* bc */ virtual unk32 vfunc_bc() override; + /* bc */ virtual unk32 GetMessageId() override; /* c4 */ virtual void vfunc_c4() override; - /* d0 */ virtual unk32 vfunc_d0() override; + /* d0 */ virtual bool vfunc_d0() override; /* e4 */ static ActorShopItemQuiver *Create(); }; +class ActorShopItemBombs : public ActorShopItem { +public: + static ActorType gType; + + /* 000 (base) */ + /* 178 */ + + /* 00 */ virtual ~ActorShopItemBombs() override; + /* 08 */ virtual bool Init() override; + /* bc */ virtual unk32 GetMessageId() override; + /* c4 */ virtual void vfunc_c4() override; + /* d0 */ virtual bool vfunc_d0() override; + /* e4 */ + + static ActorShopItemBombs *Create(); +}; + class ActorShopItemBombBag : public ActorShopItem { public: static ActorType gType; @@ -196,32 +211,49 @@ public: /* 00 */ virtual ~ActorShopItemBombBag() override; /* 08 */ virtual bool Init() override; - /* bc */ virtual unk32 vfunc_bc() override; + /* bc */ virtual unk32 GetMessageId() override; /* c4 */ virtual void vfunc_c4() override; - /* d0 */ virtual unk32 vfunc_d0() override; + /* d0 */ virtual bool vfunc_d0() override; /* e4 */ static ActorShopItemBombBag *Create(); }; -class ActorShopItemB2 : public ActorShopItem { +class ActorShopItemBombchus : public ActorShopItem { public: static ActorType gType; /* 000 (base) */ /* 178 */ - /* 00 */ virtual ~ActorShopItemB2() override; + /* 00 */ virtual ~ActorShopItemBombchus() override; /* 08 */ virtual bool Init() override; - /* bc */ virtual unk32 vfunc_bc() override; + /* bc */ virtual unk32 GetMessageId() override; /* c4 */ virtual void vfunc_c4() override; - /* d0 */ virtual unk32 vfunc_d0() override; + /* d0 */ virtual bool vfunc_d0() override; /* e4 */ - static ActorShopItemB2 *Create(); + static ActorShopItemBombchus *Create(); }; -struct ActorShopItemCollectable_Unk1 { +class ActorShopItemBombchuBag : public ActorShopItem { +public: + static ActorType gType; + + /* 000 (base) */ + /* 178 */ + + /* 00 */ virtual ~ActorShopItemBombchuBag() override; + /* 08 */ virtual bool Init() override; + /* bc */ virtual unk32 GetMessageId() override; + /* c4 */ virtual void vfunc_c4() override; + /* d0 */ virtual bool vfunc_d0() override; + /* e4 */ + + static ActorShopItemBombchuBag *Create(); +}; + +struct ActorShopItemCollectable_Unk1 : public SysObject { /* 00 */ unk32 mUnk_00; /* 04 */ unk32 mUnk_04; /* 08 */ unk32 mUnk_08; @@ -234,6 +266,39 @@ struct ActorShopItemCollectable_Unk1 { /* 24 */ unk8 mUnk_24; /* 25 */ unk8 mUnk_25; /* 28 */ + + ActorShopItemCollectable_Unk1(); + ~ActorShopItemCollectable_Unk1(); + + void func_ov000_02079f5c(unk32, unk32, unk32, unk32, u8, unk32); +}; + +class ActorShopItemShipPart : public ActorShopItem { +public: + static ActorType gType; + + /* 000 (base) */ + /* 178 */ ModelRender *mUnk_178; + /* 17c */ ActorShopItemCollectable_Unk1 *mUnk_17c; + /* 180 */ unk32 mUnk_180; + /* 184 */ + + /* 00 */ virtual ~ActorShopItemShipPart() override; + /* 08 */ virtual bool Init() override; + /* 14 */ virtual void vfunc_14(u32 param1) override; + /* 20 */ virtual void vfunc_20(bool param1) override; + /* bc */ virtual unk32 GetMessageId() override; + /* c4 */ virtual void vfunc_c4() override; + /* d0 */ virtual bool vfunc_d0() override; + /* d4 */ virtual void vfunc_d4() override; + /* e0 */ virtual s32 GetPrice() override; + /* e4 */ + + static ActorShopItemShipPart *Create(); + ActorShopItemShipPart(); + + unk32 func_ov031_02180248(); + unk32 func_ov031_02180260(); }; class ActorShopItemTreasure : public ActorShopItem { @@ -247,47 +312,16 @@ public: /* 00 */ virtual ~ActorShopItemTreasure() override; /* 08 */ virtual bool Init() override; - /* bc */ virtual unk32 vfunc_bc() override; + /* bc */ virtual unk32 GetMessageId() override; /* c4 */ virtual void vfunc_c4() override; - /* d0 */ virtual unk32 vfunc_d0() override; + /* d0 */ virtual bool vfunc_d0() override; /* d4 */ virtual void vfunc_d4() override; - /* e0 */ virtual unk32 vfunc_e0() override; + /* e0 */ virtual s32 GetPrice() override; /* e4 */ static ActorShopItemTreasure *Create(); ActorShopItemTreasure(); - unk32 func_ov031_02180248(); - unk32 func_ov031_02180260(); - unk32 func_ov031_02180278(); -}; - -class ActorShopItemShipPart : public ActorShopItem { -public: - static ActorType gType; - - /* 000 (base) */ - /* 178 */ unk32 mUnk_178; - /* 17c */ ActorShopItemCollectable_Unk1 *mUnk_17c; - /* 180 */ unk32 mUnk_180; - /* 184 */ - - /* 00 */ virtual ~ActorShopItemShipPart() override; - /* 08 */ virtual bool Init() override; - /* 14 */ virtual void vfunc_14(u32 param1) override; - /* 20 */ virtual void vfunc_20(bool param1) override; - /* bc */ virtual unk32 vfunc_bc() override; - /* c4 */ virtual void vfunc_c4() override; - /* d0 */ virtual unk32 vfunc_d0() override; - /* d4 */ virtual void vfunc_d4() override; - /* e0 */ virtual unk32 vfunc_e0() override; - /* e4 */ - - static ActorShopItemShipPart *Create(); - ActorShopItemShipPart(); - - unk32 func_ov031_02180248(); - unk32 func_ov031_02180260(); unk32 func_ov031_02180278(); }; @@ -300,9 +334,9 @@ public: /* 00 */ virtual ~ActorShopItemGem() override; /* 08 */ virtual bool Init() override; - /* bc */ virtual unk32 vfunc_bc() override; + /* bc */ virtual unk32 GetMessageId() override; /* c4 */ virtual void vfunc_c4() override; - /* d0 */ virtual unk32 vfunc_d0() override; + /* d0 */ virtual bool vfunc_d0() override; /* e4 */ static ActorShopItemGem *Create(); @@ -317,9 +351,9 @@ public: /* 00 */ virtual ~ActorShopItemShield() override; /* 08 */ virtual bool Init() override; - /* bc */ virtual unk32 vfunc_bc() override; + /* bc */ virtual unk32 GetMessageId() override; /* c4 */ virtual void vfunc_c4() override; - /* d0 */ virtual unk32 vfunc_d0() override; + /* d0 */ virtual bool vfunc_d0() override; /* e4 */ static ActorShopItemShield *Create(); @@ -334,10 +368,10 @@ public: /* 00 */ virtual ~ActorShopItemPotion() override; /* 08 */ virtual bool Init() override; - /* bc */ virtual unk32 vfunc_bc() override; + /* bc */ virtual unk32 GetMessageId() override; /* c4 */ virtual void vfunc_c4() override; - /* d0 */ virtual unk32 vfunc_d0() override; - /* e0 */ virtual unk32 vfunc_e0() override; + /* d0 */ virtual bool vfunc_d0() override; + /* e0 */ virtual s32 GetPrice() override; /* e4 */ static ActorShopItemPotion *Create(); @@ -347,16 +381,21 @@ class ActorShopItemUnk : public ActorShopItemBase { public: /* 000 (base) */ /* 160 */ unk32 mUnk_160; - /* 164 */ unk8 mUnk_164; + /* 164 */ bool mUnk_164; /* 168 */ - /* 00 */ virtual ~ActorShopItemUnk() override; + /* 00 */ virtual ~ActorShopItemUnk(); /* 08 */ virtual bool Init() override; /* 14 */ virtual void vfunc_14(u32 param1) override; + /* 1c */ virtual void vfunc_1c(u16 *param1) override = 0; /* 20 */ virtual void vfunc_20(bool param1) override; + /* b4 */ virtual bool vfunc_b4() override = 0; + /* b8 */ virtual bool vfunc_b8() override = 0; /* bc */ ActorShopItemUnk(); + + void func_ov031_02180418(); }; class ActorShopItemBK : public ActorShopItemUnk { @@ -407,3 +446,20 @@ public: static ActorShopItemBY *Create(); ActorShopItemBY(); }; + +struct UnkStruct_ov031_02183e80 { + /* 000 */ PAD(0x000, 0x01c); + /* 01c */ u32 mUnk_01c[2]; + /* 024 */ u32 mUnk_024[2]; + /* 02c */ u32 mUnk_02c[2]; + /* 034 */ PAD(0x34, 0x38); + /* 038 */ u32 mUnk_038[1]; // at least 1, unclear how many + /* 03c */ PAD(0x03c, 0x178); + /* 178 */ Vec3p mUnk_178; + /* 184 */ PAD(0x184, 0x19a); + /* 19a */ u8 mUnk_19a; + /* 19b */ + + bool func_ov031_0217bd80(); + bool func_ov031_0217cec0(); +}; diff --git a/include/Actor/ActorTypeId.hpp b/include/Actor/ActorTypeId.hpp index e7e7132f..b0c6a5ee 100644 --- a/include/Actor/ActorTypeId.hpp +++ b/include/Actor/ActorTypeId.hpp @@ -14,16 +14,23 @@ enum ActorTypeId_ { ActorTypeId_TreasureMap = 'TMAP', ActorTypeId_DigSpot = 'DGTG', - ActorTypeId_ShopItemBombchus = 'ITBT', - ActorTypeId_ShopItemBombs = 'ITBM', - ActorTypeId_ShopItemTreasure = 'ITTR', - ActorTypeId_ShopItemHeartContainer = 'ITHU', ActorTypeId_ShopItemQuiver = 'ITAP', + ActorTypeId_ShopItemArrows = 'ITAR', + ActorTypeId_ShopItemBombchuBag = 'ITB2', ActorTypeId_ShopItemBombBag = 'ITBB', - ActorTypeId_ShopItemRedPotion = 'ITPB', - ActorTypeId_ShopItemCourageGem = 'ITSR', + ActorTypeId_ShopItemBK = 'ITBK', + ActorTypeId_ShopItemBombs = 'ITBM', + ActorTypeId_ShopItemBombchus = 'ITBT', + ActorTypeId_ShopItemBY = 'ITBY', + ActorTypeId_ShopItemCC = 'ITCC', + ActorTypeId_ShopItemDM = 'ITDM', + ActorTypeId_ShopItemHeartContainer = 'ITHU', + ActorTypeId_ShopItemPotion = 'ITPB', ActorTypeId_ShopItemShield = 'ITSL', ActorTypeId_ShopItemSoldOut = 'ITSO', + ActorTypeId_ShopItemShipPart = 'ITSP', + ActorTypeId_ShopItemGem = 'ITSR', + ActorTypeId_ShopItemTreasure = 'ITTR', ActorTypeId_RefillArrows = 'FLAL', ActorTypeId_RefillBombs = 'FLBM', diff --git a/include/DTCM/UnkStruct_027e0f64.hpp b/include/DTCM/UnkStruct_027e0f64.hpp index 9a0bdd36..755ba5bd 100644 --- a/include/DTCM/UnkStruct_027e0f64.hpp +++ b/include/DTCM/UnkStruct_027e0f64.hpp @@ -3,11 +3,21 @@ #include "global.h" #include "types.h" +#include + #include "Player/Bhio.hpp" struct UnkStruct_027e0f64_04 { - /* 000 */ u8 pad[0x1B4 - 0x00]; + /* 000 */ PAD(0x000, 0x01c); + /* 01c */ Mat4x3p mUnk_01c; + /* 04c */ PAD(0x04c, 0x1b4); /* 1b4 */ unk32 mUnk_1b4; + /* 1b8 */ PAD(0x1b8, 0x260); + /* 260 */ Vec3p mUnk_260; + /* 26c */ Vec3p mUnk_26c; + /* 278 */ + + bool func_01ffe468(Vec3p *param2, s32 *param3, s32 *param4, bool param5); }; class UnkStruct_027e0f64 { @@ -19,7 +29,7 @@ public: void func_ov000_0208ae94(); void func_ov000_0208b13c(); - unk32 func_ov000_0208b180(); + UnkStruct_027e0f64_04 *func_ov000_0208b180(); }; extern UnkStruct_027e0f64 *data_027e0f64; diff --git a/include/Message/BMG.hpp b/include/Message/BMG.hpp index ac0c183f..6ef203e3 100644 --- a/include/Message/BMG.hpp +++ b/include/Message/BMG.hpp @@ -10,6 +10,8 @@ #define BMG_GET_MSG_ADDR(pGroups, flags) \ ((u32) (pGroups)->entries[(flags) >> 0x10].pDAT1 + (BMG_GET_MSG_OFFSET((pGroups), (flags)) & ~1)) +#define BMG_ID(file, entry) (((file) << 0x10) | (entry)) + enum BMGTag { /* "INF1" */ BMG_TAG_INF1 = '1FNI', /* "FLW1" */ BMG_TAG_FLW1 = '1WLF', diff --git a/include/Message/MsgProc.hpp b/include/Message/MsgProc.hpp index 0615dee8..dc10f91f 100644 --- a/include/Message/MsgProc.hpp +++ b/include/Message/MsgProc.hpp @@ -125,7 +125,7 @@ public: unk32 func_ov000_0207bc48(); void func_ov000_0207bc9c(); }; -extern UnkClass_027e0e28 *data_027e0e28; +extern UnkClass_027e0e28 data_027e0e28; extern unk32 *data_ov009_0211f5b4; extern "C" unk32 func_ov003_020f3f94(unk32 *); extern "C" void func_ov003_020f4060(unk32 **); diff --git a/include/Save/AdventureFlags.hpp b/include/Save/AdventureFlags.hpp index 72c7f0f1..f4c550a0 100644 --- a/include/Save/AdventureFlags.hpp +++ b/include/Save/AdventureFlags.hpp @@ -25,6 +25,15 @@ enum AdventureFlag_ { /* 0x0030 */ AdventureFlag_Cannon = FLAG(1, 16), /* 0x0033 */ AdventureFlag_RegalNecklace = FLAG(1, 19), + /* 0x0067 */ AdventureFlag_Unk_103 = FLAG(3, 7), + /* 0x0068 */ AdventureFlag_Unk_104 = FLAG(3, 8), + /* 0x0069 */ AdventureFlag_Unk_105 = FLAG(3, 9), + /* 0x006A */ AdventureFlag_Unk_106 = FLAG(3, 10), + /* 0x006B */ AdventureFlag_Unk_107 = FLAG(3, 11), + /* 0x006C */ AdventureFlag_Unk_108 = FLAG(3, 12), + /* 0x006D */ AdventureFlag_Unk_109 = FLAG(3, 13), + /* 0x0071 */ AdventureFlag_Unk_113 = FLAG(3, 17), + /* 0x007A */ AdventureFlag_CourageCrest = FLAG(3, 26), /* 0x007D */ AdventureFlag_Azurine = FLAG(3, 29), /* 0x007E */ AdventureFlag_Crimsonine = FLAG(3, 30), diff --git a/include/System/SysNew.hpp b/include/System/SysNew.hpp index e488166b..f1696089 100644 --- a/include/System/SysNew.hpp +++ b/include/System/SysNew.hpp @@ -17,8 +17,6 @@ void SysDelete(void *ptr); void *func_0202e99c(s32 length); void *func_0202e9bc(s32 length); -extern u32 *data_027e0ce0[]; - class SysObject { public: static void *operator new(size_t length, u32 *id, u32 idLength); diff --git a/include/Unknown/UnkStruct_027e0dbc.hpp b/include/Unknown/UnkStruct_027e0dbc.hpp index 0c816fd7..a5697c80 100644 --- a/include/Unknown/UnkStruct_027e0dbc.hpp +++ b/include/Unknown/UnkStruct_027e0dbc.hpp @@ -28,6 +28,7 @@ public: void func_ov000_0207b988(GameModeId modeId); unk32 func_ov003_020f3d5c(unk32 param1); + void func_ov003_020f3d74(unk32 param1); }; extern UnkStruct_027e0dbc data_027e0dbc; diff --git a/include/Unknown/UnkStruct_ov000_020c0c08.hpp b/include/Unknown/UnkStruct_ov000_020c0c08.hpp index 2e16bed3..ed19553c 100644 --- a/include/Unknown/UnkStruct_ov000_020c0c08.hpp +++ b/include/Unknown/UnkStruct_ov000_020c0c08.hpp @@ -19,7 +19,12 @@ struct UnkStruct_ov000_020c0c08_04 { /* 20 */ }; -class ItemModel; +class ItemModel { + /* 00 */ unk32 mUnk_00; + /* 04 */ unk32 mUnk_04; + /* 08 */ unk32 mUnk_08; + /* 0c */ +}; class UnkStruct_ov000_020c0c08 : public SysObject { public: diff --git a/include/lib/files.hpp b/include/lib/files.hpp index 78b435f4..e58feb21 100644 --- a/include/lib/files.hpp +++ b/include/lib/files.hpp @@ -1,5 +1,6 @@ #pragma once +#include "System/SysNew.hpp" #include "global.h" #include "types.h" @@ -7,13 +8,14 @@ struct FileEntry_Unk8 { /* 00 */ unk8 mUnk_00[0x8]; /* 08 */ u16 mUnk_08; /* 0a */ u16 mUnk_0a; - /* 0c */ // more fields, probably + /* 0c */ u16 mUnk_0c; + /* 10 */ // more fields, probably }; -class FileEntry { +class FileEntry : public SysObject { public: /* 00 (vtable) */ - /* 04 */ char *path; + /* 04 */ const char *path; /* 08 */ FileEntry_Unk8 *mUnk_08; /* 0c */ unk32 mUnk_0c; /* 10 */ @@ -23,6 +25,11 @@ public: /* 0c */ virtual void vfunc_0c() = 0; /* 10 */ virtual u32 vfunc_10(u32 param1) = 0; /* 14 */ + + FileEntry(const char *path) : + path(path), + mUnk_08(NULL), + mUnk_0c(0) {} }; class FileEntryFlag : public FileEntry { @@ -36,4 +43,8 @@ public: /* 0c */ virtual void vfunc_0c() override; /* 10 */ virtual u32 vfunc_10(u32 param1) override; /* 14 */ + + FileEntryFlag(const char *path) : + FileEntry(path), + mUnk_10(0) {} }; diff --git a/include/types.h b/include/types.h index b5ca70bb..bcdc63b0 100644 --- a/include/types.h +++ b/include/types.h @@ -36,5 +36,6 @@ typedef s32 bool; #define CEIL_DIV(a, b) (((a) + (b) - 1) / (b)) #define UNK_PTR unk32 * +#define PAD(start, end) unk8 pad_##start[end - start] #endif diff --git a/libs/nds/include/nds/g3d/g3d.h b/libs/nds/include/nds/g3d/g3d.h index 36faa173..03f2a1e2 100644 --- a/libs/nds/include/nds/g3d/g3d.h +++ b/libs/nds/include/nds/g3d/g3d.h @@ -34,7 +34,7 @@ typedef struct G3d_BoneMtxStruct { /* 64 */ } G3d_BoneMtxStruct; -typedef enum { +typedef enum G3d_AnimationBinds { G3D_ANIMBIND_UNK = 0xff, G3D_ANIMBIND_EXISTS = 0x100, G3D_ANIMBIND_OFF = 0x200 @@ -89,7 +89,7 @@ static inline G3d_NameList *G3d_GetMesh(const G3d_Model *mdl) { return (G3d_NameList *) ((u8 *) mdl + mdl->offMesh); } -typedef enum { +typedef enum G3d_RenderObjFlag { G3D_RENDEROBJ_FLAG_STORE = 0x1, // stores results in local cache G3D_RENDEROBJ_FLAG_SKIP_CMD = 0x2, // skips pushing geometry commands to the FIFO G3D_RENDEROBJ_FLAG_SKIP_SBC_DRAW = 0x4, // skips the execution of rendering commands diff --git a/libs/nds/include/nds/g3d/sbc.h b/libs/nds/include/nds/g3d/sbc.h index 2ac3ec3b..88dcc25d 100644 --- a/libs/nds/include/nds/g3d/sbc.h +++ b/libs/nds/include/nds/g3d/sbc.h @@ -3,7 +3,7 @@ extern void PushGeometryCommand(u32 command, void *data, s32 length); -typedef enum { +typedef enum G3d_SBC_Commands { G3D_SBC_CMD_NOP = 0x0, G3D_SBC_CMD_END = 0x1, G3D_SBC_CMD_VIS = 0x2, @@ -16,7 +16,7 @@ typedef enum { G3D_SBC_CMD_00D = 0xd } G3d_SBC_Commands; -typedef enum { +typedef enum G3d_RenderStateFlag { G3D_RENDERST_FLAG_BONE_VISIBLE = 0x1, G3D_RENDERST_FLAG_MAT_TRANSPARENT = 0x2, G3D_RENDERST_FLAG_VALID_NODE = 0x4, diff --git a/src/00_Core/Map/MapManager.cpp b/src/00_Core/Map/MapManager.cpp index 09357983..12133434 100644 --- a/src/00_Core/Map/MapManager.cpp +++ b/src/00_Core/Map/MapManager.cpp @@ -33,8 +33,8 @@ extern void func_ov000_020792a0(s32 *param_1, s32 param_2, unk32 param_3, unk32 extern void func_ov000_02079898(unk32 *param_1, unk32 param_2, unk32 param_3); extern void func_ov000_020798bc(s32 *param_1, s32 param_2); extern void func_ov000_02088000(UnkStruct_027e0f64_04 *param_1, s32 param_2); -extern void func_ov000_02088130(u8 *param_1, unk32 param_2); -extern void func_ov000_02088144(u8 *param_1, unk32 param_2); +extern void func_ov000_02088130(u8 *param_1, UnkStruct_027e0f64_04 *param_2); +extern void func_ov000_02088144(u8 *param_1, UnkStruct_027e0f64_04 *param_2); extern s32 func_ov000_0208b73c(s32 param_1, unk32 param_2); extern s32 func_ov000_0208b7d0(s32 param_1, Vec3p *param_2); @@ -2090,7 +2090,7 @@ unk32 MapManager::func_ov00_02084ebc(Vec3p *param_2) { s32 MapManager::func_ov00_02085108(Vec3p *param_2) { MapManager *puVar1; - unk32 uVar2; + UnkStruct_027e0f64_04 *uVar2; int *piVar3; int iVar4; u32 uVar5; @@ -2148,7 +2148,7 @@ s32 MapManager::func_ov00_02085108(Vec3p *param_2) { s32 MapManager::func_ov00_0208527c(MapManager *param_1, unk32 param_2, Vec3p *param_3) { u32 uVar1; MapManager *puVar2; - unk32 uVar3; + UnkStruct_027e0f64_04 *uVar3; int iVar4; int iVar5; u32 uVar6; @@ -2208,7 +2208,7 @@ s32 MapManager::func_ov00_0208527c(MapManager *param_1, unk32 param_2, Vec3p *pa s32 MapManager::func_ov00_020853fc(MapManager *param_1, Vec3p *param_2, s32 *param_3) { u32 uVar1; - unk32 uVar2; + UnkStruct_027e0f64_04 *uVar2; int iVar3; int iVar4; int iVar5; diff --git a/src/00_Core/Player/PlayerControl.cpp b/src/00_Core/Player/PlayerControl.cpp index 07e20cf6..7fc613ca 100644 --- a/src/00_Core/Player/PlayerControl.cpp +++ b/src/00_Core/Player/PlayerControl.cpp @@ -728,8 +728,6 @@ ARM bool PlayerControl::func_ov00_020b05e8(Vec3p *param1) { return false; } -extern "C" bool func_01ffe468(unk32 param1, Vec3p *param2, s32 *param3, s32 *param4, bool param5); - ARM bool PlayerControl::func_ov00_020b0778(Vec3p *param1, u32 angle, unk32 *param3) { Vec3p spC; *param3 = 0; @@ -737,7 +735,7 @@ ARM bool PlayerControl::func_ov00_020b0778(Vec3p *param1, u32 angle, unk32 *para s32 sp8; s32 sp4; - bool var_r0 = !func_01ffe468(data_027e0f64->func_ov000_0208b180(), &spC, &sp8, &sp4, 0); + bool var_r0 = !data_027e0f64->func_ov000_0208b180()->func_01ffe468(&spC, &sp8, &sp4, 0); if (var_r0) { return 0; } diff --git a/src/00_Core/Render/ModelRender.cpp b/src/00_Core/Render/ModelRender.cpp index 37a4ce30..b10d3c13 100644 --- a/src/00_Core/Render/ModelRender.cpp +++ b/src/00_Core/Render/ModelRender.cpp @@ -9,7 +9,6 @@ extern "C" void UnkInit_ModelRender_Struct4_Params(G3d_RenderObject *unkStruct4, extern "C" void CopySingle288(Mat3p *src, Mat3p *dest); extern "C" void SetGeometryScale(Vec3p *scale); extern "C" void SetGeometryTranslation(Vec3p *translation); -extern "C" void PushGeometryCommand(u32 command, void *data, s32 length); extern "C" void func_ov000_020c0d70(UnkStruct_ov000_020c0c08 *param1, G3d_RenderObject *param2); extern "C" void func_ov000_020b3ea8(void *param1); extern "C" unk32 func_0201e388(void *param1, const char *param2); @@ -20,7 +19,6 @@ extern "C" Vec3p gGeomScale; extern "C" const Mat4x3p *data_027e03c8; extern "C" Vec3p gDefaultScale; extern "C" Mat3p gDefaultMatrix; -extern "C" u32 *data_027e0ce0[]; THUMB ModelRender::ModelRender(ItemModel *itemModel) { this->unkBoneMatrixArray2 = NULL; diff --git a/src/09_Adventure/Game/GameModeAdventure.cpp b/src/09_Adventure/Game/GameModeAdventure.cpp index a7ae24be..859ae790 100644 --- a/src/09_Adventure/Game/GameModeAdventure.cpp +++ b/src/09_Adventure/Game/GameModeAdventure.cpp @@ -142,7 +142,7 @@ ARM unk32 GameModeAdventure::vfunc_08(bool param1) { this->mUnk_00c->func_ov009_021135d0(); this->mUnk_014->func_ov009_0211372c(); - data_027e0e28->func_ov000_0207bc9c(); + data_027e0e28.func_ov000_0207bc9c(); } } diff --git a/src/31_Shop/Actor/ActorShopItem.cpp b/src/31_Shop/Actor/ActorShopItem.cpp index 4994f414..9b10209b 100644 --- a/src/31_Shop/Actor/ActorShopItem.cpp +++ b/src/31_Shop/Actor/ActorShopItem.cpp @@ -1,205 +1,1341 @@ #include "Actor/ActorShopItem.hpp" +#include "Actor/ActorTypeId.hpp" +#include "DTCM/UnkStruct_027e0c54.hpp" +#include "DTCM/UnkStruct_027e0f64.hpp" +#include "Item/Item.hpp" +#include "Item/ItemManager.hpp" +#include "Message/MsgProc.hpp" +#include "Player/TouchControl.hpp" +#include "Render/ModelRender.hpp" +#include "Save/AdventureFlags.hpp" +#include "System/SysNew.hpp" +#include "Unknown/UnkStruct_020e9360.hpp" +#include "Unknown/UnkStruct_027e0dbc.hpp" +#include "Unknown/UnkStruct_ov000_020e9c88.hpp" #include "lib/files.hpp" +#include "nds/math.h" +#include "types.h" extern u32 **data_027e0fe0[]; -ActorShopItemDM *ActorShopItemDM::Create() { +ARM ActorShopItemDM *ActorShopItemDM::Create() { return new(*data_027e0fe0[0], 4) ActorShopItemDM(); } -ActorShopItemSoldOut *ActorShopItemSoldOut::Create() { +ARM ActorShopItemSoldOut *ActorShopItemSoldOut::Create() { return new(*data_027e0fe0[0], 4) ActorShopItemSoldOut(); } -ActorShopItemHeartContainer *ActorShopItemHeartContainer::Create() { +ARM ActorShopItemHeartContainer *ActorShopItemHeartContainer::Create() { return new(*data_027e0fe0[0], 4) ActorShopItemHeartContainer(); } -ActorShopItemArrows *ActorShopItemArrows::Create() { +ARM ActorShopItemArrows *ActorShopItemArrows::Create() { return new(*data_027e0fe0[0], 4) ActorShopItemArrows(); } -ActorShopItemBombs *ActorShopItemBombs::Create() { +ARM ActorShopItemBombs *ActorShopItemBombs::Create() { return new(*data_027e0fe0[0], 4) ActorShopItemBombs(); } -ActorShopItemBombchus *ActorShopItemBombchus::Create() { +ARM ActorShopItemBombchus *ActorShopItemBombchus::Create() { return new(*data_027e0fe0[0], 4) ActorShopItemBombchus(); } -ActorShopItemQuiver *ActorShopItemQuiver::Create() { +ARM ActorShopItemQuiver *ActorShopItemQuiver::Create() { return new(*data_027e0fe0[0], 4) ActorShopItemQuiver(); } -ActorShopItemBombBag *ActorShopItemBombBag::Create() { +ARM ActorShopItemBombBag *ActorShopItemBombBag::Create() { return new(*data_027e0fe0[0], 4) ActorShopItemBombBag(); } -ActorShopItemB2 *ActorShopItemB2::Create() { - return new(*data_027e0fe0[0], 4) ActorShopItemB2(); +ARM ActorShopItemBombchuBag *ActorShopItemBombchuBag::Create() { + return new(*data_027e0fe0[0], 4) ActorShopItemBombchuBag(); } -ActorShopItemTreasure *ActorShopItemTreasure::Create() { +ARM ActorShopItemTreasure *ActorShopItemTreasure::Create() { return new(*data_027e0fe0[0], 4) ActorShopItemTreasure(); } -ActorShopItemShipPart *ActorShopItemShipPart::Create() { +ARM ActorShopItemShipPart *ActorShopItemShipPart::Create() { return new(*data_027e0fe0[0], 4) ActorShopItemShipPart(); } -ActorShopItemGem *ActorShopItemGem::Create() { +ARM ActorShopItemGem *ActorShopItemGem::Create() { return new(*data_027e0fe0[0], 4) ActorShopItemGem(); } -ActorShopItemShield *ActorShopItemShield::Create() { +ARM ActorShopItemShield *ActorShopItemShield::Create() { return new(*data_027e0fe0[0], 4) ActorShopItemShield(); } -ActorShopItemPotion *ActorShopItemPotion::Create() { +ARM ActorShopItemPotion *ActorShopItemPotion::Create() { return new(*data_027e0fe0[0], 4) ActorShopItemPotion(); } -ActorShopItemBK *ActorShopItemBK::Create() { +ARM ActorShopItemBK *ActorShopItemBK::Create() { return new(*data_027e0fe0[0], 4) ActorShopItemBK(); } -ActorShopItemCC *ActorShopItemCC::Create() { +ARM ActorShopItemCC *ActorShopItemCC::Create() { return new(*data_027e0fe0[0], 4) ActorShopItemCC(); } -ActorShopItemBY *ActorShopItemBY::Create() { +ARM ActorShopItemBY *ActorShopItemBY::Create() { return new(*data_027e0fe0[0], 4) ActorShopItemBY(); } -static void func_ov031_0217dfec(FileEntry *param_1, FileEntry *param_2, char *param_3) {} -static void func_ov031_0217e040() {} -static void func_ov031_0217e2b4() {} +static const char *sShipTypes[8] = { + [7] = "brg", [6] = "fnl", [5] = "pdl", [4] = "dco", [3] = "can", [2] = "hul", [1] = "bow", [0] = "anc"}; -ActorShopItemBase::ActorShopItemBase() {} -ActorShopItem::ActorShopItem() {} -ActorShopItemShipPart::ActorShopItemShipPart() {} -ActorShopItemTreasure::ActorShopItemTreasure() {} -ActorShopItemUnk::ActorShopItemUnk() {} -ActorShopItemBY::ActorShopItemBY() {} +ActorType ActorShopItemDM::gType = ActorType(ActorTypeId_ShopItemDM, (ActorCreateFunc) ActorShopItemDM::Create, NULL); +ActorType ActorShopItemSoldOut::gType = + ActorType(ActorTypeId_ShopItemSoldOut, (ActorCreateFunc) ActorShopItemSoldOut::Create, NULL); +ActorType ActorShopItemHeartContainer::gType = + ActorType(ActorTypeId_ShopItemHeartContainer, (ActorCreateFunc) ActorShopItemHeartContainer::Create, NULL); +ActorType ActorShopItemArrows::gType = + ActorType(ActorTypeId_ShopItemArrows, (ActorCreateFunc) ActorShopItemArrows::Create, NULL); +ActorType ActorShopItemBombs::gType = ActorType(ActorTypeId_ShopItemBombs, (ActorCreateFunc) ActorShopItemBombs::Create, NULL); +ActorType ActorShopItemBombchus::gType = + ActorType(ActorTypeId_ShopItemBombchus, (ActorCreateFunc) ActorShopItemBombchus::Create, NULL); +ActorType ActorShopItemQuiver::gType = + ActorType(ActorTypeId_ShopItemQuiver, (ActorCreateFunc) ActorShopItemQuiver::Create, NULL); +ActorType ActorShopItemBombBag::gType = + ActorType(ActorTypeId_ShopItemBombBag, (ActorCreateFunc) ActorShopItemBombBag::Create, NULL); +ActorType ActorShopItemBombchuBag::gType = + ActorType(ActorTypeId_ShopItemBombchuBag, (ActorCreateFunc) ActorShopItemBombchuBag::Create, NULL); +ActorType ActorShopItemTreasure::gType = + ActorType(ActorTypeId_ShopItemTreasure, (ActorCreateFunc) ActorShopItemTreasure::Create, NULL); +ActorType ActorShopItemShipPart::gType = + ActorType(ActorTypeId_ShopItemShipPart, (ActorCreateFunc) ActorShopItemShipPart::Create, NULL); +ActorType ActorShopItemGem::gType = ActorType(ActorTypeId_ShopItemGem, (ActorCreateFunc) ActorShopItemGem::Create, NULL); +ActorType ActorShopItemShield::gType = + ActorType(ActorTypeId_ShopItemShield, (ActorCreateFunc) ActorShopItemShield::Create, NULL); +ActorType ActorShopItemPotion::gType = + ActorType(ActorTypeId_ShopItemPotion, (ActorCreateFunc) ActorShopItemPotion::Create, NULL); +ActorType ActorShopItemBK::gType = ActorType(ActorTypeId_ShopItemBK, (ActorCreateFunc) ActorShopItemBK::Create, NULL); +ActorType ActorShopItemCC::gType = ActorType(ActorTypeId_ShopItemCC, (ActorCreateFunc) ActorShopItemCC::Create, NULL); +ActorType ActorShopItemBY::gType = ActorType(ActorTypeId_ShopItemBY, (ActorCreateFunc) ActorShopItemBY::Create, NULL); -ActorShopItemBase::~ActorShopItemBase() {} -ActorShopItem::~ActorShopItem() {} -ActorShopItemSoldOut::~ActorShopItemSoldOut() {} -ActorShopItemShipPart::~ActorShopItemShipPart() {} -ActorShopItemTreasure::~ActorShopItemTreasure() {} +struct ShopItemPrice { + u32 price; + ShopItemPrice(u32 price) : + price(price) {} +}; +static const ShopItemPrice sShopItemPrices[ShopItem_BASE_COUNT] = { + ShopItemPrice(0), // ShopItem_Test + ShopItemPrice(0), // ShopItem_SoldOut + ShopItemPrice(50), // ShopItem_Bombs + ShopItemPrice(50), // ShopItem_Arrows + ShopItemPrice(50), // ShopItem_Bombchus + ShopItemPrice(2000), // ShopItem_HeartContainer + ShopItemPrice(1000), // ShopItem_BombBag + ShopItemPrice(1000), // ShopItem_Quiver + ShopItemPrice(1000), // ShopItem_BombchuBag + ShopItemPrice(500), // ShopItem_ShipPart + ShopItemPrice(500), // ShopItem_Treasure + ShopItemPrice(500), // ShopItem_PowerGem + ShopItemPrice(500), // ShopItem_WisdomGem + ShopItemPrice(500), // ShopItem_CourageGem + ShopItemPrice(80), // ShopItem_Shield + ShopItemPrice(50), // ShopItem_RedPotion + ShopItemPrice(150), // ShopItem_PurplePotion + ShopItemPrice(150), // ShopItem_YellowPotion +}; -void ActorShopItem::vfunc_d4() {} -void ActorShopItemDM::vfunc_d4() {} -void ActorShopItemSoldOut::vfunc_d4() {} -void ActorShopItemShipPart::vfunc_d4() {} -void ActorShopItemTreasure::vfunc_d4() {} +static const char *sShopItemModelPaths[ShopItem_COUNT_WITH_UPGRADES] = { + [ShopItem_Test] = "Player/get/gd_test.nsbmd", + [ShopItem_SoldOut] = "Player/get/soldboard.nsbmd", + [ShopItem_Bombs] = "Player/get/gd_bmset.nsbmd", + [ShopItem_Arrows] = "Player/get/gd_arrowset.nsbmd", + [ShopItem_Bombchus] = "Player/get/gd_bomchu.nsbmd", + [ShopItem_HeartContainer] = "Player/get/gd_heart_utu.nsbmd", + [ShopItem_BombBag] = "Player/get/gd_bmbagM.nsbmd", + [ShopItem_Quiver] = "Player/get/gd_arrowpod.nsbmd", + [ShopItem_BombchuBag] = "Player/get/gd_bcbagM.nsbmd", + [ShopItem_ShipPart] = "Player/get/gd_ship.nsbmd", + [ShopItem_Treasure] = "Player/get/gd_test.nsbmd", + [ShopItem_PowerGem] = "Player/get/gd_minaY.nsbmd", + [ShopItem_WisdomGem] = "Player/get/gd_minaP.nsbmd", + [ShopItem_CourageGem] = "Player/get/gd_minaC.nsbmd", + [ShopItem_Shield] = "Player/get/gd_shA.nsbmd", + [ShopItem_RedPotion] = "Player/get/gd_rev_bin.nsbmd", + [ShopItem_PurplePotion] = "Player/get/gd_rev_binP.nsbmd", + [ShopItem_YellowPotion] = "Player/get/gd_rev_binY.nsbmd", + [ShopItem_LargeBombBag] = "Player/get/gd_bmbagL.nsbmd", + [ShopItem_LargeQuiver] = "Player/get/gd_arrowpodL.nsbmd", + [ShopItem_LargeBombchuBag] = "Player/get/gd_bcbagL.nsbmd", +}; -bool ActorShopItemBase::Init() {} -bool ActorShopItem::Init() {} -bool ActorShopItemDM::Init() {} -bool ActorShopItemSoldOut::Init() {} -bool ActorShopItemHeartContainer::Init() {} -bool ActorShopItemArrows::Init() {} -bool ActorShopItemQuiver::Init() {} -bool ActorShopItemBombs::Init() {} -bool ActorShopItemBombBag::Init() {} -bool ActorShopItemBombchus::Init() {} -bool ActorShopItemB2::Init() {} -bool ActorShopItemShipPart::Init() {} -bool ActorShopItemTreasure::Init() {} -bool ActorShopItemGem::Init() {} -bool ActorShopItemShield::Init() {} -bool ActorShopItemPotion::Init() {} -bool ActorShopItemUnk::Init() {} +static const char *sShopItemTexturePaths[ShopItem_COUNT_WITH_UPGRADES] = { + [ShopItem_Test] = "Player/get/gd_test.nsbtx", + [ShopItem_SoldOut] = "Player/get/soldboard.nsbtx", + [ShopItem_Bombs] = "Player/get/gd_bmset.nsbtx", + [ShopItem_Arrows] = "Player/get/gd_arrowset.nsbtx", + [ShopItem_Bombchus] = "Player/get/gd_bomchu.nsbtx", + [ShopItem_HeartContainer] = "Player/get/gd_heart_utu.nsbtx", + [ShopItem_BombBag] = "Player/get/gd_bmbagM.nsbtx", + [ShopItem_Quiver] = "Player/get/gd_arrowpod.nsbtx", + [ShopItem_BombchuBag] = "Player/get/gd_bcbagM.nsbtx", + [ShopItem_ShipPart] = "Player/get/gd_ship.nsbtx", + [ShopItem_Treasure] = "Player/get/gd_test.nsbtx", + [ShopItem_PowerGem] = "Player/get/gd_minaY.nsbtx", + [ShopItem_WisdomGem] = "Player/get/gd_minaP.nsbtx", + [ShopItem_CourageGem] = "Player/get/gd_minaC.nsbtx", + [ShopItem_Shield] = "Player/get/gd_shA.nsbtx", + [ShopItem_RedPotion] = "Player/get/gd_rev_bin.nsbtx", + [ShopItem_PurplePotion] = "Player/get/gd_rev_binP.nsbtx", + [ShopItem_YellowPotion] = "Player/get/gd_rev_binY.nsbtx", + [ShopItem_LargeBombBag] = "Player/get/gd_bmbagL.nsbtx", + [ShopItem_LargeQuiver] = "Player/get/gd_arrowpodL.nsbtx", + [ShopItem_LargeBombchuBag] = "Player/get/gd_bcbagL.nsbtx", +}; -void ActorShopItemBase::vfunc_14(u32 param1) {} -void ActorShopItem::vfunc_14(u32 param1) {} -void ActorShopItemShipPart::vfunc_14(u32 param1) {} -void ActorShopItemUnk::vfunc_14(u32 param1) {} +// clang-format off +static const char sShopItemBaseNames[ShopItem_FULL_COUNT][16] = { + [ShopItem_Test] = "gd_test", + [ShopItem_SoldOut] = "soldboard", + [ShopItem_Bombs] = "gd_bmset", + [ShopItem_Arrows] = "gd_arrowset", + [ShopItem_Bombchus] = "gd_bomchu", + [ShopItem_HeartContainer] = "gd_heart_utu", + [ShopItem_BombBag] = "gd_bmbagM", + [ShopItem_Quiver] = "gd_arrowpod", + [ShopItem_BombchuBag] = "gd_bcbagM", + [ShopItem_ShipPart] = "gd_ship", + [ShopItem_Treasure] = "gd_test", + [ShopItem_CourageGem] = "gd_minaY", + [ShopItem_PowerGem] = "gd_minaP", + [ShopItem_WisdomGem] = "gd_minaC", + [ShopItem_Shield] = "gd_shA", + [ShopItem_RedPotion] = "gd_rev_bin", + [ShopItem_PurplePotion] = "gd_rev_binP", + [ShopItem_YellowPotion] = "gd_rev_binY", + [ShopItem_LargeBombBag] = "gd_bmbagL", + [ShopItem_LargeQuiver] = "gd_arrowpodL", + [ShopItem_LargeBombchuBag] = "gd_bcbagL", + [ShopItem_Ship] = "gd_ship", + [ShopItem_Ship2] = "gd_ship02", +}; +// clang-format on -void ActorShopItemBase::vfunc_18(u32 param1) {} +static FileEntryFlag *sShopItemModelFiles[ShopItem_BASE_COUNT]; +static FileEntryFlag *sShopItemTextureFiles[ShopItem_BASE_COUNT]; +static FileEntryFlag *sShopItemShipModelFile; +static FileEntryFlag *sShopItemShip2ModelFile; +static FileEntryFlag *sShopItemShipTextureFile; +static FileEntryFlag *sShopItemShip2TextureFile; +static ModelRender *sSoldOutModel; +static ModelRender *sShipModel; +static ModelRender *sShip2Model; -void ActorShopItem::vfunc_c8() {} -void ActorShopItem::vfunc_cc() {} -void ActorShopItem::func_ov031_0217f0b4() {} -unk32 ActorShopItem::vfunc_d8() {} -unk32 ActorShopItem::vfunc_dc() {} -void ActorShopItem::func_ov031_0217f114() {} -void ActorShopItem::func_ov031_0217f120() {} +extern "C" s32 func_ov000_020bd728(FileEntry *, FileEntry *, unk32, unk32); +extern "C" s32 *func_0201e24c(s32, const char *); +ARM static ModelRender *func_ov031_0217dfec(FileEntry *param_1, FileEntry *param_2, const char *param_3) { + s32 temp_r0 = func_ov000_020bd728(param_1, param_2, 1, 0); + s32 temp_r4 = *func_0201e24c(temp_r0 + 8, param_3); + ItemModel *ptr = (ItemModel *) (temp_r0 + temp_r4); + return new(data_027e0ce0[1], 4) ModelRender(ptr); +} -void ActorShopItem::vfunc_20(bool param1) {} -void ActorShopItemShipPart::vfunc_20(bool param1) {} -void ActorShopItemDM::vfunc_20(bool param1) {} -void ActorShopItemUnk::vfunc_20(bool param1) {} +ARM static void func_ov031_0217e040() { + for (s32 i = 0; i < ShopItem_BASE_COUNT; ++i) { + const char *modelPath; + const char *texturePath; + if (i == ShopItem_BombBag && gItemManager->mBombBagSize == 1) { + modelPath = sShopItemModelPaths[ShopItem_LargeBombBag]; + texturePath = sShopItemTexturePaths[ShopItem_LargeBombBag]; + } else if (i == ShopItem_Quiver && gItemManager->mQuiverSize == 1) { + modelPath = sShopItemModelPaths[ShopItem_LargeQuiver]; + texturePath = sShopItemTexturePaths[ShopItem_LargeQuiver]; + } else if (i == ShopItem_BombchuBag && gItemManager->mBombchuBagSize == 1) { + modelPath = sShopItemModelPaths[ShopItem_LargeBombchuBag]; + texturePath = sShopItemTexturePaths[ShopItem_LargeBombchuBag]; + } else { + modelPath = sShopItemModelPaths[i]; + texturePath = sShopItemTexturePaths[i]; + } -void ActorShopItemBK::vfunc_1c(u16 *param1) {} -void ActorShopItemCC::vfunc_1c(u16 *param1) {} -void ActorShopItemBY::vfunc_1c(u16 *param1) {} + sShopItemModelFiles[i] = new(data_027e0ce0[1], 4) FileEntryFlag(modelPath); + sShopItemTextureFiles[i] = new(data_027e0ce0[1], 4) FileEntryFlag(texturePath); + } -unk32 ActorShopItem::func_ov031_0217f868() {} -unk32 ActorShopItemDM::vfunc_bc() {} -unk32 ActorShopItemSoldOut::vfunc_bc() {} -unk32 ActorShopItemHeartContainer::vfunc_bc() {} -unk32 ActorShopItemArrows::vfunc_bc() {} -unk32 ActorShopItemQuiver::vfunc_bc() {} -unk32 ActorShopItemBombs::vfunc_bc() {} -unk32 ActorShopItemBombBag::vfunc_bc() {} -unk32 ActorShopItemBombchus::vfunc_bc() {} -unk32 ActorShopItemB2::vfunc_bc() {} -unk32 ActorShopItemShipPart::vfunc_bc() {} -unk32 ActorShopItemTreasure::vfunc_bc() {} -unk32 ActorShopItemGem::vfunc_bc() {} -unk32 ActorShopItemShield::vfunc_bc() {} -unk32 ActorShopItemPotion::vfunc_bc() {} + sShopItemShipModelFile = new(data_027e0ce0[1], 4) FileEntryFlag("Player/get/gd_ship.nsbmd"); + sShopItemShipTextureFile = new(data_027e0ce0[1], 4) FileEntryFlag("Player/get/gd_ship.nsbtx"); + sShopItemShip2ModelFile = new(data_027e0ce0[1], 4) FileEntryFlag("Player/get/gd_ship02.nsbmd"); + sShopItemShip2TextureFile = new(data_027e0ce0[1], 4) FileEntryFlag("Player/get/gd_ship02.nsbtx"); + sSoldOutModel = func_ov031_0217dfec(sShopItemModelFiles[ShopItem_SoldOut], sShopItemTextureFiles[ShopItem_SoldOut], + sShopItemBaseNames[ShopItem_SoldOut]); +} -unk32 ActorShopItem::vfunc_e0() {} -unk32 ActorShopItemHeartContainer::vfunc_e0() {} -unk32 ActorShopItemPotion::vfunc_e0() {} -unk32 ActorShopItemShipPart::vfunc_e0() {} -unk32 ActorShopItemTreasure::vfunc_e0() {} +ARM static void func_ov031_0217e2b4() { + FileEntryFlag *temp_r0; + FileEntryFlag *temp_r0_2; + s32 i; -unk32 ActorShopItem::vfunc_c0() {} + for (i = 0; i < ShopItem_BASE_COUNT; ++i) { + delete sShopItemModelFiles[i]; + sShopItemModelFiles[i] = NULL; + delete sShopItemTextureFiles[i]; + sShopItemTextureFiles[i] = NULL; + } + delete sShopItemShipModelFile; + sShopItemShipModelFile = NULL; + delete sShopItemShipTextureFile; + sShopItemShipTextureFile = NULL; + delete sShopItemShip2ModelFile; + sShopItemShip2ModelFile = NULL; + delete sShopItemShip2TextureFile; + sShopItemShip2TextureFile = NULL; + delete sSoldOutModel; + sSoldOutModel = NULL; +} -void ActorShopItem::vfunc_c4() {} -void ActorShopItemHeartContainer::vfunc_c4() {} -void ActorShopItemArrows::vfunc_c4() {} -void ActorShopItemQuiver::vfunc_c4() {} -void ActorShopItemBombs::vfunc_c4() {} -void ActorShopItemBombBag::vfunc_c4() {} -void ActorShopItemBombchus::vfunc_c4() {} -void ActorShopItemB2::vfunc_c4() {} -void ActorShopItemShipPart::vfunc_c4() {} -void ActorShopItemTreasure::vfunc_c4() {} -void ActorShopItemGem::vfunc_c4() {} -void ActorShopItemShield::vfunc_c4() {} -void ActorShopItemPotion::vfunc_c4() {} +ARM ActorShopItemBase::ActorShopItemBase() : + mShopItemId(0), + mUnk_15c(0), + mUnk_15d(0), + mUnk_15e(0) {} -bool ActorShopItemBase::vfunc_b4() {} -bool ActorShopItemBK::vfunc_b4() {} -bool ActorShopItemCC::vfunc_b4() {} -bool ActorShopItemBY::vfunc_b4() {} +ARM ActorShopItem::ActorShopItem() : + mModel(NULL), + mItemId(ItemId_None), + mUnk_168(0), + mUnk_16a(0), + mUnk_16c(0), + mUnk_16e(0), + mUnk_170(0), + mUnk_172(0), + mUnk_174(0), + mUnk_175(0) {} -bool ActorShopItemBase::vfunc_b8() {} -bool ActorShopItemBK::vfunc_b8() {} -bool ActorShopItemCC::vfunc_b8() {} -bool ActorShopItemBY::vfunc_b8() {} +struct UnkStruct_ov031_0217e460 { + /* 00 */ unk32 mUnk_00; + /* 04 */ unk32 mUnk_04; + /* 08 */ unk32 mUnk_08; + /* 0c */ unk32 mUnk_0c; + /* 10 */ u8 mUnk_10; + /* 14 */ +}; -unk32 ActorShopItemTreasure::func_ov031_02180248() {} -unk32 ActorShopItemTreasure::func_ov031_02180260() {} -unk32 ActorShopItemTreasure::func_ov031_02180278() {} +ARM ActorShopItemShipPart::ActorShopItemShipPart() : + mUnk_17c(NULL), + mUnk_180(-1) { + static const UnkStruct_ov031_0217e460 unk = {0x4000, 0x1000, 0xc00, 0x500, 0}; -unk32 ActorShopItemDM::vfunc_d0() {} -unk32 ActorShopItemSoldOut::vfunc_d0() {} -unk32 ActorShopItemHeartContainer::vfunc_d0() {} -unk32 ActorShopItemArrows::vfunc_d0() {} -unk32 ActorShopItemQuiver::vfunc_d0() {} -unk32 ActorShopItemBombs::vfunc_d0() {} -unk32 ActorShopItemBombBag::vfunc_d0() {} -unk32 ActorShopItemBombchus::vfunc_d0() {} -unk32 ActorShopItemB2::vfunc_d0() {} -unk32 ActorShopItemShipPart::vfunc_d0() {} -unk32 ActorShopItemGem::vfunc_d0() {} -unk32 ActorShopItemShield::vfunc_d0() {} -unk32 ActorShopItemPotion::vfunc_d0() {} + mUnk_17c = new(data_027e0ce0[1], 4) ActorShopItemCollectable_Unk1(); + mUnk_17c->func_ov000_02079f5c(unk.mUnk_00, unk.mUnk_04, unk.mUnk_08, unk.mUnk_0c, unk.mUnk_10, 0); +} -void func_ov031_02180418(unk32 param_1); \ No newline at end of file +ARM ActorShopItemTreasure::ActorShopItemTreasure() : + mUnk_178(NULL), + mUnk_17c(-1) { + static const UnkStruct_ov031_0217e460 unk = {0x4000, 0x1000, 0xc00, 0x500, 0}; + + mUnk_178 = new(data_027e0ce0[1], 4) ActorShopItemCollectable_Unk1(); + mUnk_178->func_ov000_02079f5c(unk.mUnk_00, unk.mUnk_04, unk.mUnk_08, unk.mUnk_0c, unk.mUnk_10, 0); +} + +ARM ActorShopItemUnk::ActorShopItemUnk() : + mUnk_160(128), + mUnk_164(0) {} + +ARM ActorShopItemBY::ActorShopItemBY() {} + +ARM ActorShopItemBase::~ActorShopItemBase() {} + +ARM ActorShopItem::~ActorShopItem() { + if (mModel != NULL) { + delete mModel; + mModel = NULL; + } +} + +ARM ActorShopItemSoldOut::~ActorShopItemSoldOut() { + mModel = NULL; +} + +ARM ActorShopItemShipPart::~ActorShopItemShipPart() { + delete mUnk_17c; + mUnk_17c = NULL; + if (mUnk_178 != NULL) { + delete mUnk_178; + mUnk_178 = NULL; + } + mModel = NULL; + if (sShipModel != NULL) { + delete sShipModel; + sShipModel = NULL; + } + if (sShip2Model != NULL) { + delete sShip2Model; + sShip2Model = NULL; + } +} + +ARM ActorShopItemTreasure::~ActorShopItemTreasure() { + delete mUnk_178; + mUnk_178 = NULL; +} + +ARM void ActorShopItem::vfunc_d4() { + const char *baseName; + ShopItem id = mShopItemId; + if ((id == 6) && (gItemManager->mBombBagSize == 1)) { + baseName = sShopItemBaseNames[ShopItem_LargeBombBag]; + } else if ((id == 7) && (gItemManager->mQuiverSize == 1)) { + baseName = sShopItemBaseNames[ShopItem_LargeQuiver]; + } else if ((id == 8) && (gItemManager->mBombchuBagSize == 1)) { + baseName = sShopItemBaseNames[ShopItem_LargeBombchuBag]; + } else { + baseName = sShopItemBaseNames[id]; + } + mModel = func_ov031_0217dfec(sShopItemModelFiles[id], sShopItemTextureFiles[id], baseName); +} + +ARM void ActorShopItemDM::vfunc_d4() { + mModel = NULL; + mUnk_175 = 1; + mVisible = false; +} + +ARM void ActorShopItemSoldOut::vfunc_d4() { + mModel = sSoldOutModel; + mUnk_175 = 1; +} + +extern ItemModel **data_027e1058; +extern "C" ItemModel *func_ov009_0211c020(ItemModel **, unk32, unk32, unk32, ActorShopItemCollectable_Unk1 *); +ARM void ActorShopItemShipPart::vfunc_d4() { + ItemModel **dVar1 = data_027e1058; + unk32 uVar2 = this->func_ov031_02180248(); + unk32 uVar3 = this->func_ov031_02180260(); + ItemModel *pIVar4 = func_ov009_0211c020(dVar1, uVar2, uVar3, 0, mUnk_17c); + mUnk_178 = new(data_027e0ce0[1], 4) ModelRender(pIVar4); + if (sShipModel == NULL) { + sShipModel = func_ov031_0217dfec(sShopItemShipModelFile, sShopItemShipTextureFile, sShopItemBaseNames[ShopItem_Ship]); + } + mModel = sShipModel; + if (sShip2Model == NULL) { + sShip2Model = + func_ov031_0217dfec(sShopItemShip2ModelFile, sShopItemShip2TextureFile, sShopItemBaseNames[ShopItem_Ship2]); + } +} + +extern ItemModel **data_027e105c; +extern "C" ItemModel *LoadTreasureItemFanfare(ItemModel **, unk32, unk32, ActorShopItemCollectable_Unk1 *); +ARM void ActorShopItemTreasure::vfunc_d4() { + ItemModel **dVar1 = data_027e105c; + unk32 treasureIndex = ActorShopItemTreasure::func_ov031_02180278(); + ItemModel *pIVar2 = LoadTreasureItemFanfare(dVar1, treasureIndex, 0, mUnk_178); + mModel = new(data_027e0ce0[1], 4) ModelRender(pIVar2); +} + +ARM bool ActorShopItemBase::Init() { + return Actor::Init(); +} + +ARM bool ActorShopItem::Init() { + this->vfunc_d4(); + return ActorShopItemBase::Init(); +} + +ARM bool ActorShopItemDM::Init() { + mShopItemId = ShopItem_Test; + return ActorShopItem::Init(); +} + +ARM bool ActorShopItemSoldOut::Init() { + mShopItemId = ShopItem_SoldOut; + return ActorShopItem::Init(); +} + +ARM bool ActorShopItemHeartContainer::Init() { + mShopItemId = ShopItem_HeartContainer; + mItemId = ItemId_HeartContainer; + return ActorShopItem::Init(); +} + +ARM bool ActorShopItemArrows::Init() { + mShopItemId = ShopItem_Arrows; + return ActorShopItem::Init(); +} + +ARM bool ActorShopItemQuiver::Init() { + mShopItemId = ShopItem_Quiver; + mItemId = ItemId_Quiver; + return ActorShopItem::Init(); +} + +ARM bool ActorShopItemBombs::Init() { + mShopItemId = ShopItem_Bombs; + return ActorShopItem::Init(); +} + +ARM bool ActorShopItemBombBag::Init() { + mShopItemId = ShopItem_BombBag; + mItemId = ItemId_BigBombBag; + return ActorShopItem::Init(); +} + +ARM bool ActorShopItemBombchus::Init() { + mShopItemId = ShopItem_Bombchus; + return ActorShopItem::Init(); +} + +ARM bool ActorShopItemBombchuBag::Init() { + mShopItemId = ShopItem_BombchuBag; + mItemId = ItemId_BigBombchuBag; + return ActorShopItem::Init(); +} + +ARM bool ActorShopItemShipPart::Init() { + mUnk_180 = mUnk_140; + mShopItemId = ShopItem_ShipPart; + mItemId = ItemId_Unk_43; + return ActorShopItem::Init(); +} + +ARM bool ActorShopItemTreasure::Init() { + mUnk_17c = mUnk_140; + mShopItemId = ShopItem_Treasure; + mItemId = this->func_ov031_02180278() + ItemId_TREASURE_START; + return ActorShopItem::Init(); +} + +ARM bool ActorShopItemGem::Init() { + switch (mUnk_140) { + case Gem_Power: + mItemId = ItemId_PowerGem; + mShopItemId = ShopItem_PowerGem; + break; + case Gem_Wisdom: + mItemId = ItemId_WisdomGem; + mShopItemId = ShopItem_WisdomGem; + break; + case Gem_Courage: + mItemId = ItemId_CourageGem; + mShopItemId = ShopItem_CourageGem; + break; + } + return ActorShopItem::Init(); +} + +ARM bool ActorShopItemShield::Init() { + mShopItemId = ShopItem_Shield; + mItemId = ItemId_WoodenShield; + return ActorShopItem::Init(); +} + +ARM bool ActorShopItemPotion::Init() { + switch (mUnk_140) { + case Potion_Yellow - 1: + mShopItemId = ShopItem_YellowPotion; + mItemId = ItemId_YellowPotion; + break; + case Potion_Purple - 1: + mShopItemId = ShopItem_PurplePotion; + mItemId = ItemId_PurplePotion; + break; + case Potion_Red - 1: + default: + mShopItemId = ShopItem_RedPotion; + mItemId = ItemId_RedPotion; + break; + } + return ActorShopItem::Init(); +} + +ARM bool ActorShopItemUnk::Init() { + mShopItemId = ShopItem_Unk; + return ActorShopItemBase::Init(); +} + +ARM void ActorShopItemBase::vfunc_14(u32 param1) { + if (this->func_ov00_020c313c(param1)) { + mUnk_15e = false; + if (!mUnk_15c && this->vfunc_b4()) { + mUnk_15d = true; + } else if (mUnk_15d == true && !gTouchControl.mTouch) { + mUnk_15d = false; + mUnk_15e = true; + } + mUnk_15c = gTouchControl.mTouch; + } + mUnk_0a4.func_ov000_0207a1c8(param1, &mPos); +} + +extern "C" UnkStruct_ov031_02183e80 *func_ov031_0217bdb8(); + +ARM void ActorShopItem::vfunc_14(u32 param1) { + Vec3p subroutine_arg0; + Vec3p sp24; + Vec3p *temp_r0; + Vec3p *temp_r0_2; + UnkStruct_027e0f64_04 *temp_r3; + + if ((this->func_ov00_020c313c(param1) != 0) && (func_ov031_0217bdb8()->mUnk_19a == 0)) { + temp_r3 = data_027e0f64->mUnk_8; + sp24 = temp_r3->mUnk_260; + sp24.y = FLOAT_TO_Q20(2.3); + sp24.z -= FLOAT_TO_Q20(0.45); + subroutine_arg0 = sp24; + Vec3p_Sub(&subroutine_arg0, &mUnk_014, &subroutine_arg0); + Vec3p_Normalize(&subroutine_arg0, &subroutine_arg0); + if (mUnk_174 == 1) { + Vec3p_Scale(&subroutine_arg0, FLOAT_TO_Q20(0.25)); + temp_r0 = &mPos; + Vec3p_Add(temp_r0, &subroutine_arg0, temp_r0); + if (mPos.y >= sp24.y) { + mPos = sp24; + } + } else { + Vec3p_Scale(&subroutine_arg0, -FLOAT_TO_Q20(0.25)); + temp_r0_2 = &mPos; + Vec3p_Add(temp_r0_2, &subroutine_arg0, temp_r0_2); + if (mPos.y <= mUnk_014.y) { + mPos = mUnk_014; + } + } + } + ActorShopItemBase::vfunc_14(param1); +} + +ARM void ActorShopItemShipPart::vfunc_14(u32 param1) { + if (func_ov031_0217bdb8()->mUnk_19a != 0 && mUnk_174 == true) { + mModel = mUnk_178; + mPos.x = 0; + mPos.y = FLOAT_TO_Q20(10.0); + mPos.z = 0; + } else { + mModel = sShipModel; + } + ActorShopItem::vfunc_14(param1); +} + +ARM void ActorShopItemUnk::vfunc_14(u32 param1) { + if (this->func_ov00_020c313c(param1)) { + if (mUnk_164) { + mUnk_160 -= 0x10; + if (mUnk_160 < 0) { + mUnk_160 = 0; + } + } else { + mUnk_160 += 0x10; + if (mUnk_160 > 0x80) { + mUnk_160 = 0x80; + } + } + } + ActorShopItemBase::vfunc_14(param1); +} + +ARM void ActorShopItemBase::vfunc_18(u32 param1) { + this->vfunc_14(param1); +} + +ARM void ActorShopItem::vfunc_c8() { + this->func_ov031_0217f0b4(); +} + +ARM void ActorShopItem::vfunc_cc() {} + +ARM void ActorShopItem::func_ov031_0217f0b4() { + if (!mUnk_175) { + return; + } + q20 z = mUnk_014.z; + q20 y = mUnk_014.y; + q20 x = mUnk_014.x; + mPos.x = x; + mPos.y = y; + mPos.z = z; + mUnk_174 = false; + mShopItemId = ShopItem_SoldOut; +} + +ARM u32 ActorShopItem::GetPitch() { + return data_027e0c54.mUnk_0 ? 0xdd28 : 0; +} + +ARM u32 ActorShopItem::GetYaw() { + return 0; +} + +ARM static void func_ov031_0217f114(void *self) { + ((ActorShopItem *) self)->func_ov031_0217f120(); +} + +extern "C" void func_020197bc(void *, unk32); +ARM void ActorShopItem::func_ov031_0217f120() { + unk32 uVar1; + void *lcdc; + ModelRender *model; + Vec3p scale; + Mat3p rotation; + Mat3p rz; + Mat3p ry; + Mat3p rx; + + model = mShopItemId == ShopItem_SoldOut ? sSoldOutModel : mModel; + uVar1 = data_ov000_020e9360.func_ov000_02079e68(2); + lcdc = mModel->GetLcdcAddress(); + func_020197bc(lcdc, uVar1); + if (mUnk_174 == true) { + mUnk_168 = *(vu16 *) &mUnk_168; + mUnk_16a = *(vu16 *) &mUnk_16a; + mUnk_16c = *(vu16 *) &mUnk_16c; + mUnk_16e = *(vu16 *) &mUnk_16e; + mUnk_170 += 400; + mUnk_172 = *(vu16 *) &mUnk_172; + } else { + mUnk_168 = 0; + mUnk_16a = 0; + mUnk_16c = 0; + mUnk_16e = 0; + mUnk_170 = 0; + mUnk_172 = 0; + } + + Mat3p_InitIdentity(&rotation); + + Mat3p_InitXRotation(&rx, SIN(mUnk_168), COS(mUnk_168)); + Mat3p_Multiply(&rx, &rotation, &rotation); + Mat3p_InitYRotation(&ry, SIN(mUnk_16a), COS(mUnk_16a)); + Mat3p_Multiply(&ry, &rotation, &rotation); + Mat3p_InitZRotation(&rz, SIN(mUnk_16c), COS(mUnk_16c)); + Mat3p_Multiply(&rz, &rotation, &rotation); + + Mat3p_InitYRotation(&ry, SIN(this->GetYaw()), COS(this->GetYaw())); + Mat3p_Multiply(&ry, &rotation, &rotation); + Mat3p_InitXRotation(&rx, SIN(this->GetPitch()), COS(this->GetPitch())); + Mat3p_Multiply(&rx, &rotation, &rotation); + + Mat3p_InitXRotation(&rx, SIN(mUnk_16e), COS(mUnk_16e)); + Mat3p_Multiply(&rx, &rotation, &rotation); + Mat3p_InitYRotation(&ry, SIN(mUnk_170), COS(mUnk_170)); + Mat3p_Multiply(&ry, &rotation, &rotation); + Mat3p_InitZRotation(&rz, SIN(mUnk_172), COS(mUnk_172)); + Mat3p_Multiply(&rz, &rotation, &rotation); + + scale.x = FLOAT_TO_Q20(1.6); + scale.y = FLOAT_TO_Q20(1.6); + scale.z = FLOAT_TO_Q20(1.6); + + model->SetTransform(&scale, &rotation, &mPos); +} + +ARM void ActorShopItem::vfunc_20(bool param1) { + if (data_027e0c54.mUnk_0 && !param1) { + return; + } + if (!mVisible) { + return; + } + data_ov000_020e9c88.func_ov000_0207b89c(param1, &mPos, &func_ov031_0217f114, this); +} + +extern "C" unk32 func_ov031_0217bda0(); +extern "C" unk32 func_ov031_0217bdac(); +extern "C" void CopySingle288(void *src, void *dest); +extern "C" void func_ov009_0211d090(Vec3p *, Vec3p *); +extern "C" void func_ov009_0211d00c(Mat3p *, Vec3p *); +ARM void ActorShopItemShipPart::vfunc_20(bool param1) { + if (data_027e0c54.mUnk_0 && !param1) { + return; + } + if (mUnk_174 == true && mModel == mUnk_178) { + func_ov031_0217bdb8(); + unk32 size = func_ov031_0217bda0(); + UnkStruct_027e0f64_04 *unk1 = data_027e0f64->func_ov000_0208b180(); + Mat4x3p MStack_44 = unk1->mUnk_01c; + Mat3p tempMatrix; + CopySingle288(&MStack_44, &tempMatrix); + Mat3p rotation2; + Mat3p_func_01ff83a0(&tempMatrix, &rotation2); + func_ov031_0217bdb8(); + Vec3p translation; + translation.z = -func_ov031_0217bdac(); + translation.x = 0; + translation.y = 0; + Mat3p_MultiplyVec(&translation, &rotation2, &translation); + Vec3p_Add(&translation, &unk1->mUnk_260, &translation); + Vec3p scale2; + scale2.x = size; + scale2.y = size; + scale2.z = size; + sShip2Model->SetTransform(&scale2, &rotation2, &translation); + + Vec3p tempVec = func_ov031_0217bdb8()->mUnk_178; + translation = tempVec; + Vec3p_Add(&mPos, &translation, &translation); + Vec3p scale; + func_ov009_0211d090(&scale, &tempVec); + Mat3p rotation; + func_ov009_0211d00c((Mat3p *) &rotation, &tempVec); + mModel->SetTransform(&scale, (Mat3p *) &rotation, &translation); + } else { + ActorShopItem::vfunc_20(param1); + } +} + +ARM void ActorShopItemDM::vfunc_20(bool param1) {} + +ARM void ActorShopItemUnk::vfunc_20(bool param1) {} + +extern "C" void func_020349cc(unk32, unk32, unk32, unk32, unk32, unk32); +extern "C" void func_0203493c(unk32, unk32, unk32, unk32, unk32); +ARM void ActorShopItemBK::vfunc_1c(u16 *param1) { + if (data_027e0e28.func_ov000_0207bc48() == 0) { + return; + } + if (mUnk_160 >= 0x40) { + return; + } + if ((*param1 & 2) == 0) { + return; + } + if (mUnk_15d && this->vfunc_b4()) { + func_020349cc(0x5c, 4, 2, 0, mUnk_160 + 4, 0); + } else { + func_0203493c(0x5c, 2, 0, mUnk_160, 0); + } +} + +ARM void ActorShopItemCC::vfunc_1c(u16 *param1) { + if (data_027e0e28.func_ov000_0207bc48() == 0) { + return; + } + if (mUnk_160 >= 0x40) { + return; + } + if ((*param1 & 2) == 0) { + return; + } + if (mUnk_15d && this->vfunc_b4()) { + func_020349cc(0x5c, 4, 1, 0, mUnk_160 + 4, 0); + } else { + func_0203493c(0x5c, 1, 0, mUnk_160, 0); + } +} + +ARM void ActorShopItemBY::vfunc_1c(u16 *param1) { + if (data_027e0e28.func_ov000_0207bc48() == 0) { + return; + } + if (mUnk_160 >= 0x40) { + return; + } + if ((*param1 & 2) == 0) { + return; + } + if (mUnk_15d && this->vfunc_b4()) { + func_020349cc(0x5c, 3, 0, 0, mUnk_160 + 4, 0); + } else { + func_0203493c(0x5c, 0, 0, mUnk_160, 0); + } +} + +struct UnkStruct_ov031_02183e84 { + /* 000 */ PAD(0x000, 0x470); + /* 470 */ unk32 mUnk_470; + /* 474 */ +}; +extern UnkStruct_ov031_02183e84 *func_ov031_0217cf1c(); +ARM unk32 ActorShopItem::GetSoldOutMessageId() { + if (func_ov031_0217cf1c()->mUnk_470 == 2) { + return BMG_ID(BMG_FILE_INDEX_FIELD, 0x57); + } else { + return BMG_ID(BMG_FILE_INDEX_SHIP, 0xff); + } +} + +ARM unk32 ActorShopItemDM::GetMessageId() { + return 0; +} + +ARM unk32 ActorShopItemSoldOut::GetMessageId() { + return ActorShopItem::GetSoldOutMessageId(); +} + +ARM unk32 ActorShopItemHeartContainer::GetMessageId() { + if (func_ov031_0217cf1c()->mUnk_470 == 2) { + return BMG_ID(BMG_FILE_INDEX_FIELD, 0x44); + } else { + return BMG_ID(BMG_FILE_INDEX_SHIP, 0x8e); + } +} + +ARM unk32 ActorShopItemArrows::GetMessageId() { + return BMG_ID(BMG_FILE_INDEX_FIELD, 0x47); +} + +ARM unk32 ActorShopItemQuiver::GetMessageId() { + return BMG_ID(BMG_FILE_INDEX_FIELD, 0x43); +} + +ARM unk32 ActorShopItemBombs::GetMessageId() { + return BMG_ID(BMG_FILE_INDEX_FIELD, 0x42); +} + +extern "C" bool HasFreebieCard(); +ARM unk32 ActorShopItemBombBag::GetMessageId() { + unk32 unk = func_ov031_0217cf1c()->mUnk_470; + if (unk == 2) { + return BMG_ID(BMG_FILE_INDEX_FIELD, 0x48); + } else if (HasFreebieCard()) { + return BMG_ID(BMG_FILE_INDEX_SHIP, 0x12d); + } else { + return BMG_ID(BMG_FILE_INDEX_SHIP, 0xf8); + } +} + +ARM unk32 ActorShopItemBombchus::GetMessageId() { + return BMG_ID(BMG_FILE_INDEX_FIELD, 0x45); +} + +ARM unk32 ActorShopItemBombchuBag::GetMessageId() { + switch (func_ov031_0217cf1c()->mUnk_470) { + case 2: + return BMG_ID(BMG_FILE_INDEX_FIELD, 0x49); + case 1: + return BMG_ID(BMG_FILE_INDEX_SHIP, 0x8e); + case 0: + default: + return BMG_ID(BMG_FILE_INDEX_SHIP, 0xf8); + } +} + +ARM unk32 ActorShopItemShipPart::GetMessageId() { + switch (func_ov031_0217cf1c()->mUnk_470) { + case 2: + return BMG_ID(BMG_FILE_INDEX_FIELD, 0x46); + case 0: + if (HasFreebieCard()) { + if (mUnk_180 == 0) { + return BMG_ID(BMG_FILE_INDEX_SHIP, 0x12e); + } else { + return BMG_ID(BMG_FILE_INDEX_SHIP, 0x12f); + } + } else if (mUnk_180 == 0) { + return BMG_ID(BMG_FILE_INDEX_SHIP, 0xf9); + } else { + return BMG_ID(BMG_FILE_INDEX_SHIP, 0xfa); + } + case 1: + if (mUnk_180 == 0) { + return BMG_ID(BMG_FILE_INDEX_SHIP, 0x8f); + } else { + return BMG_ID(BMG_FILE_INDEX_SHIP, 0x90); + } + default: + return BMG_ID(BMG_FILE_INDEX_SHIP, 0xf9); + } +} + +ARM unk32 ActorShopItemTreasure::GetMessageId() { + switch (func_ov031_0217cf1c()->mUnk_470) { + case 2: + return BMG_ID(BMG_FILE_INDEX_FIELD, 0x4a); + case 0: + if (HasFreebieCard()) { + if (mUnk_17c == 0) { + return BMG_ID(BMG_FILE_INDEX_SHIP, 0x130); + } else { + return BMG_ID(BMG_FILE_INDEX_SHIP, 0x131); + } + } else if (mUnk_17c == 0) { + return BMG_ID(BMG_FILE_INDEX_SHIP, 0xfb); + } else { + return BMG_ID(BMG_FILE_INDEX_SHIP, 0xfc); + } + case 1: + if (mUnk_17c == 0) { + return BMG_ID(BMG_FILE_INDEX_SHIP, 0x91); + } else { + return BMG_ID(BMG_FILE_INDEX_SHIP, 0x92); + } + default: + return BMG_ID(BMG_FILE_INDEX_SHIP, 0xfb); + } +} + +ARM unk32 ActorShopItemGem::GetMessageId() { + switch (func_ov031_0217cf1c()->mUnk_470) { + case 2: + return BMG_ID(BMG_FILE_INDEX_FIELD, 0x4b); + case 0: + if (HasFreebieCard()) { + return BMG_ID(BMG_FILE_INDEX_SHIP, 0x132); + } else { + return BMG_ID(BMG_FILE_INDEX_SHIP, 0xfd); + } + case 1: + return BMG_ID(BMG_FILE_INDEX_SHIP, 0x93); + default: + return BMG_ID(BMG_FILE_INDEX_SHIP, 0xfd); + } +} + +ARM unk32 ActorShopItemShield::GetMessageId() { + return BMG_ID(BMG_FILE_INDEX_FIELD, 0x4c); +} + +ARM unk32 ActorShopItemPotion::GetMessageId() { + int iVar1; + + if (func_ov031_0217cf1c()->mUnk_470 == 2) { + switch (mShopItemId) { + case ShopItem_RedPotion: + return BMG_ID(BMG_FILE_INDEX_FIELD, 0x4d); + case ShopItem_PurplePotion: + return BMG_ID(BMG_FILE_INDEX_FIELD, 0x4e); + case ShopItem_YellowPotion: + return BMG_ID(BMG_FILE_INDEX_FIELD, 0x4f); + } + } else { + if (HasFreebieCard()) { + switch (mShopItemId) { + case ShopItem_RedPotion: + return BMG_ID(BMG_FILE_INDEX_SHIP, 0x10f); + case ShopItem_PurplePotion: + return BMG_ID(BMG_FILE_INDEX_SHIP, 0x110); + case ShopItem_YellowPotion: + return BMG_ID(BMG_FILE_INDEX_SHIP, 0x111); + } + } + switch (mShopItemId) { + case ShopItem_RedPotion: + return BMG_ID(BMG_FILE_INDEX_SHIP, 0x10c); + case ShopItem_PurplePotion: + return BMG_ID(BMG_FILE_INDEX_SHIP, 0x10d); + case ShopItem_YellowPotion: + return BMG_ID(BMG_FILE_INDEX_SHIP, 0x10e); + } + } + return BMG_ID(BMG_FILE_INDEX_FIELD, 0x4d); +} + +ARM s32 ActorShopItem::GetPrice() { + return sShopItemPrices[mShopItemId].price; +} + +ARM s32 ActorShopItemHeartContainer::GetPrice() { + if (func_ov031_0217cf1c()->mUnk_470 == 1) { + return 1500; + } else { + return 2000; + } +} + +ARM s32 ActorShopItemPotion::GetPrice() { + if (func_ov031_0217cf1c()->mUnk_470 != 2) { + if (mShopItemId == ShopItem_RedPotion) { + return 80; + } else { + return 200; + } + } + return ActorShopItem::GetPrice(); +} + +extern "C" unk32 func_ov009_0211c980(unk32, unk32); +ARM s32 ActorShopItemShipPart::GetPrice() { + unk32 uVar1; + unk32 uVar2; + int iVar3; + u16 local_18[4] = {150, 600, 1500, 7000}; + + uVar1 = this->func_ov031_02180248(); + uVar2 = this->func_ov031_02180260(); + iVar3 = func_ov009_0211c980(uVar1, uVar2); + return (int) (short) local_18[iVar3]; +} + +ARM s32 ActorShopItemTreasure::GetPrice() { + unk32 unk = mUnk_17c; + return func_ov031_0217bdb8()->mUnk_038[unk]; +} + +extern "C" unk32 func_ov031_0217ce6c(); +ARM unk32 ActorShopItem::vfunc_c0() { + s32 price = this->GetPrice(); + func_ov031_0217bdb8(); + unk32 unk = (price * (10 - func_ov031_0217ce6c()) / 10 + 5) / 10 * 10; + if (unk < 10) { + unk = 10; + } + return unk; +} + +ARM void ActorShopItem::vfunc_c4() { + if (mItemId == ItemId_None) { + return; + } + if (func_ov031_0217bdb8()->func_ov031_0217bd80()) { + mUnk_175 = true; + } +} + +ARM void ActorShopItemHeartContainer::vfunc_c4() { + switch (func_ov031_0217cf1c()->mUnk_470) { + case 2: + gAdventureFlags->Set(AdventureFlag_Unk_103, true); + break; + case 0: + gAdventureFlags->Set(AdventureFlag_Unk_104, true); + break; + case 1: + gAdventureFlags->Set(AdventureFlag_Unk_104, true); + break; + default: + return; + } + ActorShopItem::vfunc_c4(); +} + +ARM void ActorShopItemArrows::vfunc_c4() { + gItemManager->GiveAmmo(ItemFlag_Bow, 10); + ActorShopItem::vfunc_c4(); +} + +ARM void ActorShopItemQuiver::vfunc_c4() { + gAdventureFlags->Set(AdventureFlag_Unk_107, true); + ActorShopItem::vfunc_c4(); +} + +ARM void ActorShopItemBombs::vfunc_c4() { + gItemManager->GiveAmmo(ItemFlag_BombBag, 10); + ActorShopItem::vfunc_c4(); +} + +ARM void ActorShopItemBombBag::vfunc_c4() { + gAdventureFlags->Set(AdventureFlag_Unk_106, true); + ActorShopItem::vfunc_c4(); +} + +ARM void ActorShopItemBombchus::vfunc_c4() { + gItemManager->GiveAmmo(ItemFlag_BombchuBag, 10); + ActorShopItem::vfunc_c4(); +} + +ARM void ActorShopItemBombchuBag::vfunc_c4() { + gAdventureFlags->Set(AdventureFlag_Unk_108, true); + ActorShopItem::vfunc_c4(); +} + +extern "C" void GiveShipPart(ShipPart part, ShipType type); +ARM void ActorShopItemShipPart::vfunc_c4() { + ShipPart part = this->func_ov031_02180248(); + ShipType type = this->func_ov031_02180260(); + GiveShipPart(part, type); + if (func_ov031_0217bdb8()->func_ov031_0217bd80()) { + data_027e0dbc.func_ov003_020f3d74(mUnk_180 + 8); + } + ActorShopItem::vfunc_c4(); +} + +extern "C" void func_ov009_0211cac0(u32); +ARM void ActorShopItemTreasure::vfunc_c4() { + unk32 unk = this->func_ov031_02180278(); + func_ov009_0211cac0(unk); + if (func_ov031_0217bdb8()->func_ov031_0217bd80()) { + data_027e0dbc.func_ov003_020f3d74(mUnk_17c + 5); + } + ActorShopItem::vfunc_c4(); +} + +ARM void ActorShopItemGem::vfunc_c4() { + switch (func_ov031_0217cf1c()->mUnk_470) { + case 2: + gAdventureFlags->Set(AdventureFlag_Unk_105, true); + break; + case 0: + gAdventureFlags->Set(AdventureFlag_Unk_109, true); + break; + case 1: + gAdventureFlags->Set(AdventureFlag_Unk_113, true); + break; + default: + return; + } + ActorShopItem::vfunc_c4(); +} + +ARM void ActorShopItemShield::vfunc_c4() { + ActorShopItem::vfunc_c4(); +} + +ARM void ActorShopItemPotion::vfunc_c4() { + ActorShopItem::vfunc_c4(); +} + +extern "C" bool func_0202b8f8(Vec3p *, s32, s32, s32, unk8); +ARM bool ActorShopItemBase::vfunc_b4() { + if (!gTouchControl.mTouch) { + return false; + } + return func_0202b8f8(&mPos, 0x4cd, gTouchControl.mTouchX, gTouchControl.mTouchY, 1); +} + +extern "C" bool func_02034b90(unk32, unk32, s32, s32); +ARM bool ActorShopItemBK::vfunc_b4() { + if (mUnk_160 != 0 || !mUnk_164) { + return false; + } + if (!gTouchControl.mTouch) { + return false; + } + return func_02034b90(0x5c, 2, gTouchControl.mTouchX, gTouchControl.mTouchY); +} + +ARM bool ActorShopItemCC::vfunc_b4() { + if (mUnk_160 != 0 || !mUnk_164) { + return false; + } + if (!gTouchControl.mTouch) { + return false; + } + return func_02034b90(0x5c, 1, gTouchControl.mTouchX, gTouchControl.mTouchY); +} + +ARM bool ActorShopItemBY::vfunc_b4() { + if (mUnk_160 != 0 || !mUnk_164) { + return false; + } + if (!gTouchControl.mTouch) { + return false; + } + return func_02034b90(0x5c, 0, gTouchControl.mTouchX, gTouchControl.mTouchY); +} + +ARM bool ActorShopItemBase::vfunc_b8() { + if (!mUnk_15e) { + return false; + } + return func_0202b8f8(&mPos, 0x4cd, gTouchControl.mTouchLastX, gTouchControl.mTouchLastY, 1); +} + +ARM bool ActorShopItemBK::vfunc_b8() { + if (!mUnk_15e) { + return false; + } + return func_02034b90(0x5c, 2, gTouchControl.mTouchLastX, gTouchControl.mTouchLastY); +} + +ARM bool ActorShopItemCC::vfunc_b8() { + if (!mUnk_15e) { + return false; + } + return func_02034b90(0x5c, 1, gTouchControl.mTouchLastX, gTouchControl.mTouchLastY); +} + +ARM bool ActorShopItemBY::vfunc_b8() { + if (!mUnk_15e) { + return false; + } + return func_02034b90(0x5c, 0, gTouchControl.mTouchLastX, gTouchControl.mTouchLastY); +} + +ARM unk32 ActorShopItemShipPart::func_ov031_02180248() { + s32 unk = mUnk_180; + return func_ov031_0217bdb8()->mUnk_01c[unk]; +} + +ARM unk32 ActorShopItemShipPart::func_ov031_02180260() { + s32 unk = mUnk_180; + return func_ov031_0217bdb8()->mUnk_024[unk]; +} + +ARM unk32 ActorShopItemTreasure::func_ov031_02180278() { + s32 unk = mUnk_17c; + return func_ov031_0217bdb8()->mUnk_02c[unk]; +} + +ARM bool ActorShopItemDM::vfunc_d0() { + return false; +} + +ARM bool ActorShopItemSoldOut::vfunc_d0() { + return false; +} + +ARM bool ActorShopItemHeartContainer::vfunc_d0() { + return false; +} + +ARM bool ActorShopItemArrows::vfunc_d0() { + ItemManager *pItemManager = gItemManager; + return (s32) pItemManager->GetAmmo(ItemFlag_Bow) >= pItemManager->GetMaxAmmo(ItemFlag_Bow); +} + +ARM bool ActorShopItemQuiver::vfunc_d0() { + return false; +} + +ARM bool ActorShopItemBombs::vfunc_d0() { + ItemManager *pItemManager = gItemManager; + return (s32) pItemManager->GetAmmo(ItemFlag_BombBag) >= pItemManager->GetMaxAmmo(ItemFlag_BombBag); +} + +ARM bool ActorShopItemBombBag::vfunc_d0() { + return false; +} + +ARM bool ActorShopItemBombchus::vfunc_d0() { + ItemManager *pItemManager = gItemManager; + return (s32) pItemManager->GetAmmo(ItemFlag_BombchuBag) >= pItemManager->GetMaxAmmo(ItemFlag_BombchuBag); +} + +ARM bool ActorShopItemBombchuBag::vfunc_d0() { + return false; +} + +ARM bool ActorShopItemShipPart::vfunc_d0() { + ItemManager *pItemManager = gItemManager; + ShipPart part = this->func_ov031_02180248(); + ShipType type = this->func_ov031_02180260(); + return pItemManager->GetShipPartCount(part, type) >= pItemManager->GetMaxShipPartCount(); +} + +ARM bool ActorShopItemTreasure::vfunc_d0() { + ItemManager *pItemManager = gItemManager; + Treasure treasure = this->func_ov031_02180278(); + return pItemManager->GetTreasureCount(treasure) >= pItemManager->GetMaxTreasureCount(); +} + +ARM bool ActorShopItemGem::vfunc_d0() { + return false; +} + +ARM bool ActorShopItemShield::vfunc_d0() { + return false; +} + +ARM bool ActorShopItemPotion::vfunc_d0() { + return false; +} + +void ActorShopItemUnk::func_ov031_02180418() { + if (func_ov031_0217bdb8()->func_ov031_0217cec0()) { + return; + } + mUnk_164 = true; +} + +ActorShopItemBY::~ActorShopItemBY() {} +ActorShopItemCC::~ActorShopItemCC() {} +ActorShopItemBK::~ActorShopItemBK() {} +ActorShopItemUnk::~ActorShopItemUnk() {} +ActorShopItemPotion::~ActorShopItemPotion() {} +ActorShopItemShield::~ActorShopItemShield() {} +ActorShopItemGem::~ActorShopItemGem() {} +ActorShopItemBombchuBag::~ActorShopItemBombchuBag() {} +ActorShopItemBombchus::~ActorShopItemBombchus() {} +ActorShopItemBombBag::~ActorShopItemBombBag() {} +ActorShopItemBombs::~ActorShopItemBombs() {} +ActorShopItemQuiver::~ActorShopItemQuiver() {} +ActorShopItemArrows::~ActorShopItemArrows() {} +ActorShopItemHeartContainer::~ActorShopItemHeartContainer() {} +ActorShopItemDM::~ActorShopItemDM() {} diff --git a/src/Main/Unknown/UnkStruct_020397f8.cpp b/src/Main/Unknown/UnkStruct_020397f8.cpp index 7d593d84..793ee441 100644 --- a/src/Main/Unknown/UnkStruct_020397f8.cpp +++ b/src/Main/Unknown/UnkStruct_020397f8.cpp @@ -413,7 +413,7 @@ ARM void UnkStruct_020397f8::vfunc_44(s32 touchLastX, s32 touchLastY) { if ((data_02056be4[data_027e077c.mUnk_0] & 2) == 0) { if ((gTouchControl.mFlags & 1) != 0) { if (this->mUnk_50 == 0 && data_027e0d38 != 0) { - if (func_ov000_02079e04() == 0 && data_027e0e28->func_ov000_0207bc48() == 0) { + if (func_ov000_02079e04() == 0 && data_027e0e28.func_ov000_0207bc48() == 0) { if (gGame.mUnk_101 == 0 && data_027e103c->mUnk_24 == 0) { return; } diff --git a/tools/bmg.py b/tools/bmg.py new file mode 100644 index 00000000..d3046ed1 --- /dev/null +++ b/tools/bmg.py @@ -0,0 +1,115 @@ +from pathlib import Path +from argparse import ArgumentParser + +import ndspy.bmg + +def main(): + parser = ArgumentParser(description="View strings in BMG files") + parser.add_argument("--file", help="Path to the BMG file. If not provided, the file will be derived from the message ID.") + parser.add_argument("--language", help="Language of the BMG file. Does nothing if --file is provided.") + parser.add_argument("--version", help="Game version to use. Does nothing if --file is provided.") + parser.add_argument("id", help="Index of the BMG entry") + args = parser.parse_args() + + if args.id.startswith("0x"): + msg_id = int(args.id, 16) + else: + msg_id = int(args.id) + bmg_file = get_bmg_file(args.file, msg_id, args.language, args.version) + + with bmg_file.open("rb") as f: + data = f.read() + bmg = ndspy.bmg.BMG(data) + message = bmg.messages[msg_id & 0xffff] + + for part in message.stringParts: + print(part, end="") + print() + +BMG_FILENAMES = [ + "system", + "regular", + "battle", + "test", + "default", + "sea", + "kaitei", + "main_isl", + "brave", + "flame", + "wind", + "frost", + "power", + "wisdom", + "ghost", + "hidari", + "sennin", + "ship", + "collect", + "mainselect", + "field", + "wisdom_dngn", + "demo", + "battleCommon", + "bossLast1", + "bossLast3", + "torii", + "myou", + "kojima1", + "kojima2", + "kojima5", + "kojima3", + "staff", + "kaitei_F", +] + +LANGUAGES = [ + "English", + "French", + "German", + "Italian", + "Spanish", + "Japanese", +] + +def get_bmg_file(file: str | None, msg_id: int, language: str | None, version: str | None) -> Path: + if file is not None: + return Path(file) + + versions = find_available_versions() + if len(versions) == 0: + print("You must extract the game files before using this tool") + exit(1) + if version is None: + version = versions[0] + if version not in versions: + print(f"Version {version} not found in the extract directory") + exit(1) + + files_dir = Path(__file__).parent.parent / "extract" / version / "files" + if language is None: + for lang in LANGUAGES: + lang_dir = files_dir / lang + if lang_dir.exists(): + language = lang + break + if language is None: + print("No language directories found in the extracted assets") + exit(1) + + file_index = msg_id >> 16 + if file_index >= len(BMG_FILENAMES): + print(f"Message ID {msg_id} is out of range") + exit(1) + filename = BMG_FILENAMES[file_index] + ".bmg" + + return files_dir / language / "Message" / filename + + +def find_available_versions() -> list[str]: + extract_path = Path(__file__).parent.parent / "extract" + return [d.name for d in extract_path.iterdir() if d.is_dir()] + + +if __name__ == "__main__": + main() diff --git a/tools/requirements.txt b/tools/requirements.txt index 4682190e..b0f58dc2 100644 --- a/tools/requirements.txt +++ b/tools/requirements.txt @@ -1,3 +1,4 @@ +ndspy pre-commit pyperclip requests diff --git a/tools/vtable_sym.py b/tools/vtable_sym.py new file mode 100644 index 00000000..826cd610 --- /dev/null +++ b/tools/vtable_sym.py @@ -0,0 +1,129 @@ +import argparse +from pathlib import Path +import re + +def main(): + parser = argparse.ArgumentParser(description='Define vtable symbols and update relocations') + parser.add_argument('old_name', help='The old name of the vtable symbol') + parser.add_argument('new_name', help='The new name of the vtable symbol') + parser.add_argument('--dry', action='store_true', help='Print the changes without writing to files') + args = parser.parse_args() + + old_name: str = args.old_name + new_name: str = args.new_name + dry_run: bool = args.dry + + file_write_buffer: list[tuple[Path, list[str]]] = [] + manual_changes: list[str] = [] + + current_path = Path(__file__).parent + root_path = current_path.parent + base_config_path = root_path / "config" + for config_path in base_config_path.iterdir(): + if config_path.is_file(): + continue + + old_address = None + new_address = None + dest_module = None + for symbol_file in config_path.glob("**/symbols.txt"): + with symbol_file.open("r") as f: + lines = f.readlines() + + for row, line in enumerate(lines): + if not line.startswith(old_name): + continue + print(f"Updating symbol {old_name} in {symbol_file}:{row + 1}") + address = get_attr_value(line, "addr") + if address is None: + print(f"Error: Could not find symbol address at {symbol_file}:{row + 1}") + exit(1) + address = int(address, 16) + old_address = address + new_address = address - 8 + line = line.replace(old_name, new_name, 1) + line = set_attr_value(line, "addr", f"0x{new_address:08x}") + print(f"-> {line}") + lines[row] = line + + if old_address is None or new_address is None: + # Try next symbols.txt file + continue + + file_name = str(symbol_file.relative_to(config_path)) + if file_name.endswith("dtcm/symbols.txt"): + dest_module = ("dtcm", 0) + elif file_name.endswith("itcm/symbols.txt"): + dest_module = ("itcm", 0) + elif file_name.endswith("arm9/symbols.txt"): + dest_module = ("main", 0) + else: + overlay_id = re.search(r"ov(\d+)/symbols.txt", file_name) + if overlay_id is None: + print(f"Error: Could not determine module for {symbol_file}") + exit(1) + dest_module = ("overlay", int(overlay_id.group(1))) + + file_write_buffer.append((symbol_file, lines)) + break + + if old_address is None or new_address is None or dest_module is None: + print(f"Error: Could not find symbol {old_name} in any symbols.txt file in {config_path}") + exit(1) + + for relocs_file in config_path.glob("**/relocs.txt"): + with relocs_file.open("r") as f: + lines = f.readlines() + + any_change = False + for row, line in enumerate(lines): + to_addr = get_attr_value(line, "to") + if to_addr is None: + continue + to_addr = int(to_addr, 16) + if to_addr != old_address: + continue + reloc_module = get_attr_value(line, "module") + if reloc_module is None: + continue + if dest_module[0] == "overlay" and reloc_module.startswith("overlays"): + print(f"Warning: Found ambiguous relocation for {old_name} in {relocs_file}, it will require manual review.") + manual_changes.append(f"{relocs_file}:{row + 1}") + if not reloc_module.startswith(dest_module[0]): + continue + + print(f"Updating relocation for {old_name} in {relocs_file}:{row + 1}") + line = set_attr_value(line, "to", f"0x{new_address:08x}") + line = set_attr_value(line, "add", "0x8") + print(f"-> {line}") + lines[row] = line + any_change = True + + if any_change: + file_write_buffer.append((relocs_file, lines)) + + if not dry_run: + for symbol_file, lines in file_write_buffer: + with symbol_file.open("w") as f: + f.writelines(lines) + print(f"Changes written to {len(file_write_buffer)} files:") + else: + print(f"Dry run complete. {len(file_write_buffer)} files would be updated:") + for symbol_file, _ in file_write_buffer: + print(f"- {symbol_file}") + +def get_attr_value(line: str, attr: str) -> str | None: + match = re.search(rf"{attr}:(\S+)", line) + if match is None: + return None + return match.group(1) + +def set_attr_value(line: str, attr: str, value: str) -> str: + pattern = rf"{attr}:\S+" + if not re.search(pattern, line): + line = line.strip() + f" {attr}:{value}\n" + return line + return re.sub(rf"{attr}:\S+", f"{attr}:{value}", line, count=1) + +if __name__ == "__main__": + main()