diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index 87bf2818..4cd56004 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -1666,7 +1666,7 @@ func_ov000_02082748 kind:function(arm,size=0x14) addr:0x02082748 func_ov000_0208275c kind:function(arm,size=0xa8) addr:0x0208275c func_ov000_02082804 kind:function(arm,size=0xc8) addr:0x02082804 func_ov000_020828cc kind:function(arm,size=0xfc) addr:0x020828cc -func_ov000_020829c8 kind:function(thumb,size=0x1a) addr:0x020829c8 +_ZN18UnkStruct_027e0cdc6CreateEP21UnkStruct_027e0ce0_30 kind:function(thumb,size=0x1a) addr:0x020829c8 func_ov000_020829e4 kind:function(thumb,size=0x14) addr:0x020829e4 func_ov000_020829f8 kind:function(arm,size=0x10) addr:0x020829f8 func_ov000_02082a08 kind:function(arm,size=0x10) addr:0x02082a08 @@ -1847,8 +1847,8 @@ _ZN19func_ov000_02089848D1Ev kind:function(arm,size=0x2c) addr:0x02089848 _ZN19func_ov000_02089874D0Ev kind:function(arm,size=0x34) addr:0x02089874 _ZN19func_ov000_020898a8D2Ev kind:function(arm,size=0x2c) addr:0x020898a8 func_ov000_020898d4 kind:function(arm,size=0x4) addr:0x020898d4 -func_ov000_020898d8 kind:function(arm,size=0x24) addr:0x020898d8 -func_ov000_020898fc kind:function(arm,size=0x14) addr:0x020898fc +_ZN21UnkStruct_027e0ce0_20C1Ev kind:function(arm,size=0x24) addr:0x020898d8 +_ZN21UnkStruct_027e0ce0_20D1Ev kind:function(arm,size=0x14) addr:0x020898fc func_ov000_02089910 kind:function(arm,size=0x2c) addr:0x02089910 func_ov000_0208993c kind:function(arm,size=0x4c) addr:0x0208993c _ZN18PlayerLinkActor_A4C1EP15PlayerActorBaseP18PlayerLinkActor_A0 kind:function(thumb,size=0xa) addr:0x02089988 @@ -1873,15 +1873,15 @@ _ZN22UnkStruct_PlayerGet_64C1EPv kind:function(arm,size=0x10) addr:0x0208a0f0 func_ov000_0208a100 kind:function(arm,size=0x64) addr:0x0208a100 _ZN22UnkStruct_PlayerGet_64D1Ev kind:function(arm,size=0x64) addr:0x0208a164 func_ov000_0208a1c8 kind:function(thumb,size=0x48) addr:0x0208a1c8 -func_ov000_0208a210 kind:function(thumb,size=0x8) addr:0x0208a210 -func_ov000_0208a218 kind:function(thumb,size=0x36) addr:0x0208a218 +_ZN23UnkStruct_027e0ce0_BaseC2Ev kind:function(thumb,size=0x8) addr:0x0208a210 +_ZN18UnkStruct_027e0ce019func_ov000_0208a218EP13InvImportData kind:function(thumb,size=0x36) addr:0x0208a218 func_ov000_0208a250 kind:function(thumb,size=0x74) addr:0x0208a250 -func_ov000_0208a2c4 kind:function(arm,size=0x54) addr:0x0208a2c4 +_ZN18UnkStruct_027e0ce019func_ov000_0208a2c4Eii kind:function(arm,size=0x54) addr:0x0208a2c4 _ZN18UnkStruct_027e0ce019func_ov000_0208a318Eiii kind:function(arm,size=0x74) addr:0x0208a318 func_ov000_0208a38c kind:function(arm,size=0x30) addr:0x0208a38c func_ov000_0208a3bc kind:function(arm,size=0x328) addr:0x0208a3bc func_ov000_0208a6e4 kind:function(arm,size=0x48) addr:0x0208a6e4 -func_ov000_0208a72c kind:function(thumb,size=0xe) addr:0x0208a72c +_ZN37UnkStruct_027e0ce0_40_Base_94_50_BaseC2EiiP12ActorRefElemi kind:function(thumb,size=0xe) addr:0x0208a72c func_ov000_0208a73c kind:function(arm,size=0x68) addr:0x0208a73c func_ov000_0208a7a4 kind:function(arm,size=0x28) addr:0x0208a7a4 func_ov000_0208a7cc kind:function(arm,size=0x60) addr:0x0208a7cc @@ -1896,8 +1896,8 @@ func_ov000_0208ad14 kind:function(arm,size=0xa0) addr:0x0208ad14 func_ov000_0208adb4 kind:function(arm,size=0x88) addr:0x0208adb4 func_ov000_0208ae3c kind:function(arm,size=0x48) addr:0x0208ae3c func_ov000_0208ae84 kind:function(arm,size=0x14) addr:0x0208ae84 -func_ov000_0208ae98 kind:function(thumb,size=0x4c) addr:0x0208ae98 -func_ov000_0208aee4 kind:function(thumb,size=0x28) addr:0x0208aee4 +_ZN34UnkStruct_027e0ce0_40_Base_94_BaseC2Ei kind:function(thumb,size=0x4c) addr:0x0208ae98 +_ZN29UnkStruct_027e0ce0_40_Base_9419func_ov000_0208aee4Ev kind:function(thumb,size=0x28) addr:0x0208aee4 func_ov000_0208af0c kind:function(arm,size=0x1fc) addr:0x0208af0c func_ov000_0208b108 kind:function(arm,size=0x7c) addr:0x0208b108 func_ov000_0208b184 kind:function(arm,size=0xbc) addr:0x0208b184 @@ -2221,10 +2221,10 @@ func_ov000_0209635c kind:function(arm,size=0x514) addr:0x0209635c _ZN19func_ov000_02096870D1Ev kind:function(arm,size=0x20) addr:0x02096870 _ZN19func_ov000_02096890D0Ev kind:function(arm,size=0x28) addr:0x02096890 func_ov000_020968b8 kind:function(arm,size=0x28) addr:0x020968b8 -func_ov000_020968e0 kind:function(arm,size=0x1c) addr:0x020968e0 +_ZN29UnkStruct_027e0ce0_40_Base_7C19func_ov000_020968e0Ev kind:function(arm,size=0x1c) addr:0x020968e0 func_ov000_020968fc kind:function(arm,size=0xb8) addr:0x020968fc func_ov000_020969b4 kind:function(arm,size=0xe8) addr:0x020969b4 -func_ov000_02096a9c kind:function(arm,size=0x58) addr:0x02096a9c +_ZN29UnkStruct_027e0ce0_40_Base_1419func_ov000_02096a9cEv kind:function(arm,size=0x58) addr:0x02096a9c func_ov000_02096af4 kind:function(arm,size=0x28) addr:0x02096af4 func_ov000_02096b1c kind:function(arm,size=0x78) addr:0x02096b1c func_ov000_02096b94 kind:function(arm,size=0x14) addr:0x02096b94 @@ -3577,7 +3577,7 @@ data_ov000_020b2b10 kind:data(any) addr:0x020b2b10 data_ov000_020b2b1c kind:data(any) addr:0x020b2b1c data_ov000_020b2b28 kind:data(any) addr:0x020b2b28 data_ov000_020b2b2c kind:data(any) addr:0x020b2b2c -data_ov000_020b2b38 kind:data(any) addr:0x020b2b38 +_ZTV21UnkStruct_027e0ce0_0C kind:data(any) addr:0x020b2b30 data_ov000_020b2b44 kind:data(any) addr:0x020b2b44 _ZTV20ModelRender_Derived4 kind:data(any) addr:0x020b2b68 data_ov000_020b2b9c kind:data(any) addr:0x020b2b9c diff --git a/config/eur/arm9/overlays/ov001/delinks.txt b/config/eur/arm9/overlays/ov001/delinks.txt index 0ff04dae..9d39bab4 100644 --- a/config/eur/arm9/overlays/ov001/delinks.txt +++ b/config/eur/arm9/overlays/ov001/delinks.txt @@ -65,7 +65,7 @@ src/001_SceneInit/Actor/ActorManager_001.cpp: .rodata start:0x020c2624 end:0x020c264c .data start:0x020c2b3c end:0x020c2c70 -src/001_SceneInit/Item/ItemManager_001.cpp: +src/001_SceneInit/Item/Inventory_001.cpp: complete .text start:0x020bb87c end:0x020bbac4 @@ -74,19 +74,20 @@ src/001_SceneInit/Player/PlayerActorBase_70_001.cpp: .text start:0x020bbac4 end:0x020bbe64 src/001_SceneInit/UnkStruct_027e0ce0_30_001.cpp: + complete .text start:0x020bbe64 end:0x020bc028 src/001_SceneInit/UnkStruct_027e0ce0_40_Base_001.cpp: + complete .text start:0x020bc028 end:0x020bc234 -src/001_SceneInit/code_020bc234_001.cpp: +src/001_SceneInit/Item/ItemManager_001.cpp: + complete .text start:0x020bc234 end:0x020bc2c8 -src/001_SceneInit/code_020bc2c8_001.cpp: - .text start:0x020bc2c8 end:0x020bc34c - src/001_SceneInit/UnkStruct_027e0ce0_001.cpp: - .text start:0x020bc34c end:0x020bc768 + complete + .text start:0x020bc2c8 end:0x020bc768 src/001_SceneInit/UnkStruct_027e0cdc_001.cpp: complete diff --git a/config/eur/arm9/overlays/ov001/relocs.txt b/config/eur/arm9/overlays/ov001/relocs.txt index 52af54c7..8845f840 100644 --- a/config/eur/arm9/overlays/ov001/relocs.txt +++ b/config/eur/arm9/overlays/ov001/relocs.txt @@ -1268,7 +1268,7 @@ from:0x020bc40c kind:thumb_call to:0x020bbee4 module:overlay(1) from:0x020bc422 kind:thumb_call_arm to:0x02011f3c module:main from:0x020bc42a kind:thumb_call to:0x020bf1b8 module:overlay(1) from:0x020bc43e kind:thumb_call to:0x020829c8 module:overlay(0) -from:0x020bc448 kind:load to:0x020b2b38 module:overlay(0) +from:0x020bc448 kind:load to:0x020b2b30 module:overlay(0) add:0x8 from:0x020bc44c kind:load to:0x027e09a4 module:dtcm from:0x020bc454 kind:thumb_call to:0x020bc768 module:overlay(1) from:0x020bc460 kind:thumb_call to:0x020bf218 module:overlay(1) diff --git a/config/eur/arm9/overlays/ov001/symbols.txt b/config/eur/arm9/overlays/ov001/symbols.txt index 9a4786dd..27a7ab34 100644 --- a/config/eur/arm9/overlays/ov001/symbols.txt +++ b/config/eur/arm9/overlays/ov001/symbols.txt @@ -200,29 +200,29 @@ _Z19func_ov001_020bbac4iP10G3d_Model_ib kind:function(thumb,size=0x5c) addr:0x02 _ZN18PlayerActorBase_70C1Eii kind:function(thumb,size=0x260) addr:0x020bbb20 _ZN18PlayerActorBase_70D1Ev kind:function(thumb,size=0x96) addr:0x020bbd80 _ZN18PlayerActorBase_7019func_ov001_020bbe18Ei29UnkStruct_func_ov001_020bbe18jh kind:function(thumb,size=0x4c) addr:0x020bbe18 -func_ov001_020bbe64 kind:function(thumb,size=0x7c) addr:0x020bbe64 -func_ov001_020bbee0 kind:function(thumb,size=0x2) addr:0x020bbee0 -func_ov001_020bbee4 kind:function(thumb,size=0x18) addr:0x020bbee4 -func_ov001_020bbefc kind:function(thumb,size=0x2) addr:0x020bbefc -func_ov001_020bbf00 kind:function(thumb,size=0x24) addr:0x020bbf00 -func_ov001_020bbf24 kind:function(thumb,size=0x2a) addr:0x020bbf24 -func_ov001_020bbf50 kind:function(thumb,size=0x2a) addr:0x020bbf50 -func_ov001_020bbf7c kind:function(thumb,size=0x50) addr:0x020bbf7c -func_ov001_020bbfcc kind:function(thumb,size=0x5a) addr:0x020bbfcc -_ZN26UnkStruct_027e0ce0_40_BaseC2Ev kind:function(thumb,size=0x88) addr:0x020bc028 -func_ov001_020bc0b0 kind:function(thumb,size=0x30) addr:0x020bc0b0 -func_ov001_020bc0e0 kind:function(thumb,size=0x154) addr:0x020bc0e0 +_ZN24UnkStruct_027e0ce0_30_00C1EP21UnkStruct_027e0ce0_38P21UnkStruct_027e0ce0_3CiPii kind:function(thumb,size=0x7c) addr:0x020bbe64 +_ZN24UnkStruct_027e0ce0_30_00D1Ev kind:function(thumb,size=0x2) addr:0x020bbee0 +_ZN21UnkStruct_027e0ce0_30C1Ev kind:function(thumb,size=0x18) addr:0x020bbee4 +_ZN21UnkStruct_027e0ce0_30D1Ev kind:function(thumb,size=0x2) addr:0x020bbefc +_ZN21UnkStruct_027e0ce0_3019func_ov001_020bbf00Eii kind:function(thumb,size=0x24) addr:0x020bbf00 +_ZN21UnkStruct_027e0ce0_3019func_ov001_020bbf24EP21UnkStruct_027e0ce0_38 kind:function(thumb,size=0x2a) addr:0x020bbf24 +_ZN21UnkStruct_027e0ce0_3019func_ov001_020bbf50EP21UnkStruct_027e0ce0_3C kind:function(thumb,size=0x2a) addr:0x020bbf50 +_ZN21UnkStruct_027e0ce0_3019func_ov001_020bbf7cEiPii kind:function(thumb,size=0x50) addr:0x020bbf7c +_ZN21UnkStruct_027e0ce0_3019func_ov001_020bbfccEv kind:function(thumb,size=0x5a) addr:0x020bbfcc +_ZN26UnkStruct_027e0ce0_40_BaseC2EiPvP11ItemManager kind:function(thumb,size=0x88) addr:0x020bc028 +_ZN26UnkStruct_027e0ce0_40_BaseD2Ev kind:function(thumb,size=0x30) addr:0x020bc0b0 +_ZN26UnkStruct_027e0ce0_40_Base19func_ov001_020bc0e0Eb kind:function(thumb,size=0x154) addr:0x020bc0e0 _ZN11ItemManagerC1Ev kind:function(thumb,size=0x16) addr:0x020bc234 -func_ov001_020bc24c kind:function(thumb,size=0x30) addr:0x020bc24c -func_ov001_020bc27c kind:function(thumb,size=0x1e) addr:0x020bc27c -func_ov001_020bc29c kind:function(thumb,size=0x1a) addr:0x020bc29c -func_ov001_020bc2b8 kind:function(thumb,size=0x10) addr:0x020bc2b8 -func_ov001_020bc2c8 kind:function(thumb,size=0x70) addr:0x020bc2c8 -func_ov001_020bc338 kind:function(thumb,size=0x12) addr:0x020bc338 +_ZN11ItemManager19func_ov001_020bc24cEv kind:function(thumb,size=0x30) addr:0x020bc24c +_ZN11ItemManager19func_ov001_020bc27cEv kind:function(thumb,size=0x1e) addr:0x020bc27c +_ZN11ItemManager19func_ov001_020bc29cEv kind:function(thumb,size=0x1a) addr:0x020bc29c +_ZN11ItemManager19func_ov001_020bc2b8Ev kind:function(thumb,size=0x10) addr:0x020bc2b8 +_ZN29UnkStruct_027e0ce0_40_Base_94C1Ei kind:function(thumb,size=0x70) addr:0x020bc2c8 +_ZN29UnkStruct_027e0ce0_40_Base_94D1Ev kind:function(thumb,size=0x12) addr:0x020bc338 _ZN18UnkStruct_027e0ce06CreateEv kind:function(thumb,size=0x16) addr:0x020bc34c -func_ov001_020bc364 kind:function(thumb,size=0xec) addr:0x020bc364 +_ZN18UnkStruct_027e0ce0C1Ev kind:function(thumb,size=0xec) addr:0x020bc364 _ZN18UnkStruct_027e0ce0D1Ev kind:function(thumb,size=0x86) addr:0x020bc450 -func_ov001_020bc4d8 kind:function(thumb,size=0x4c) addr:0x020bc4d8 +_ZN18UnkStruct_027e0ce019func_ov001_020bc4d8EP13InvImportDataii kind:function(thumb,size=0x4c) addr:0x020bc4d8 _ZN18UnkStruct_027e0ce019func_ov001_020bc524Eb kind:function(thumb,size=0xd4) addr:0x020bc524 _ZN18UnkStruct_027e0ce019func_ov001_020bc5f8Ev kind:function(thumb,size=0x62) addr:0x020bc5f8 _ZN18UnkStruct_027e0ce019func_ov001_020bc65cEv kind:function(thumb,size=0x40) addr:0x020bc65c @@ -230,8 +230,8 @@ _ZN18UnkStruct_027e0ce019func_ov001_020bc69cEv kind:function(thumb,size=0x3c) ad _ZN18UnkStruct_027e0ce019func_ov001_020bc6d8EiPK24UnkStruct_ov001_020c40f4 kind:function(thumb,size=0xe) addr:0x020bc6d8 _ZN18UnkStruct_027e0ce019func_ov001_020bc6e8EPK24UnkStruct_ov001_020c40f4 kind:function(thumb,size=0x14) addr:0x020bc6e8 _ZN18UnkStruct_027e0ce019func_ov001_020bc6fcEPK24UnkStruct_ov001_020c40f4S2_ii kind:function(thumb,size=0x52) addr:0x020bc6fc -func_ov001_020bc750 kind:function(thumb,size=0xc) addr:0x020bc750 -func_ov001_020bc75c kind:function(thumb,size=0xc) addr:0x020bc75c +_ZN8InstanceI18UnkStruct_027e0ce0EC2Ev kind:function(thumb,size=0xc) addr:0x020bc750 +_ZN8InstanceI18UnkStruct_027e0ce0ED2Ev kind:function(thumb,size=0xc) addr:0x020bc75c _ZN18UnkStruct_027e0cdc7DestroyEv kind:function(thumb,size=0x20) addr:0x020bc768 _ZN8InstanceI18UnkStruct_027e0cdcED2Ev kind:function(thumb,size=0xc) addr:0x020bc788 _ZN20ModelRender_Derived4C1EiiP10G3d_Model_P18G3d_BoneMtxStruct_ kind:function(thumb,size=0x8c) addr:0x020bc794 @@ -248,18 +248,18 @@ _ZN15PlayerLinkActor19func_ov001_020bcbd0EP7VecFx32 kind:function(thumb,size=0x9 _ZN18UnkStruct_027e0d347DestroyEv kind:function(thumb,size=0x20) addr:0x020bcc68 _ZN19PlayerLinkActor_1B0C1Ev kind:function(thumb,size=0xc) addr:0x020bcc88 _ZN8InstanceI18UnkStruct_027e0d34ED2Ev kind:function(thumb,size=0xc) addr:0x020bcc94 -func_ov001_020bcca0 kind:function(thumb,size=0x46) addr:0x020bcca0 -func_ov001_020bcce8 kind:function(thumb,size=0x2) addr:0x020bcce8 -func_ov001_020bccec kind:function(thumb,size=0x2fe) addr:0x020bccec -func_ov001_020bcfec kind:function(thumb,size=0xb8) addr:0x020bcfec +_ZN21UnkStruct_027e0ce0_1CC1Ev kind:function(thumb,size=0x46) addr:0x020bcca0 +_ZN21UnkStruct_027e0ce0_1CD1Ev kind:function(thumb,size=0x2) addr:0x020bcce8 +_ZN21UnkStruct_027e0ce0_1C19func_ov001_020bccecEv kind:function(thumb,size=0x2fe) addr:0x020bccec +_ZN21UnkStruct_027e0ce0_1C19func_ov001_020bcfecEv kind:function(thumb,size=0xb8) addr:0x020bcfec _ZN21UnkStruct_027e0ce0_1C19func_ov001_020bd0a4Eb kind:function(thumb,size=0x148) addr:0x020bd0a4 -func_ov001_020bd1ec kind:function(thumb,size=0x80) addr:0x020bd1ec +_ZN21UnkStruct_027e0ce0_1C19func_ov001_020bd1ecEv kind:function(thumb,size=0x80) addr:0x020bd1ec _ZN18PlayerLinkActor_A0D1Ev kind:function(thumb,size=0x74) addr:0x020bd26c _ZN18PlayerLinkActor_A019func_ov001_020bd2e0Ev kind:function(thumb,size=0x78) addr:0x020bd2e0 _ZN18PlayerLinkActor_A019func_ov001_020bd358Ev kind:function(thumb,size=0x30) addr:0x020bd358 _ZN18PlayerLinkActor_A019func_ov001_020bd388Ebb kind:function(thumb,size=0x128) addr:0x020bd388 -func_ov001_020bd4b0 kind:function(thumb,size=0x40) addr:0x020bd4b0 -func_ov001_020bd4f0 kind:function(thumb,size=0x22) addr:0x020bd4f0 +_ZN29UnkStruct_027e0ce0_40_Base_7CC1Ei kind:function(thumb,size=0x40) addr:0x020bd4b0 +_ZN29UnkStruct_027e0ce0_40_Base_7CD1Ev kind:function(thumb,size=0x22) addr:0x020bd4f0 _ZN18UnkStruct_0204a11019func_ov001_020bd514EiPvii kind:function(thumb,size=0x78) addr:0x020bd514 _ZN18UnkStruct_0204a11019func_ov001_020bd58cEv kind:function(thumb,size=0x24) addr:0x020bd58c _ZN18UnkStruct_0204a11019func_ov001_020bd5b0Ev kind:function(thumb,size=0x88) addr:0x020bd5b0 @@ -364,13 +364,13 @@ func_ov001_020bf0a0 kind:function(thumb,size=0x14) addr:0x020bf0a0 func_ov001_020bf0b4 kind:function(thumb,size=0xf4) addr:0x020bf0b4 func_ov001_020bf1a8 kind:function(thumb,size=0x2) addr:0x020bf1a8 _ZN19func_ov001_020bf1acD0Ev kind:function(thumb,size=0xc) addr:0x020bf1ac -func_ov001_020bf1b8 kind:function(thumb,size=0x60) addr:0x020bf1b8 -func_ov001_020bf218 kind:function(thumb,size=0x14) addr:0x020bf218 -func_ov001_020bf22c kind:function(thumb,size=0x8c) addr:0x020bf22c -func_ov001_020bf2b8 kind:function(thumb,size=0xc0) addr:0x020bf2b8 -func_ov001_020bf378 kind:function(thumb,size=0x44) addr:0x020bf378 -func_ov001_020bf3bc kind:function(thumb,size=0xe) addr:0x020bf3bc -func_ov001_020bf3cc kind:function(thumb,size=0x30) addr:0x020bf3cc +_ZN21UnkStruct_027e0ce0_34C1Ev kind:function(thumb,size=0x60) addr:0x020bf1b8 +_ZN21UnkStruct_027e0ce0_34D1Ev kind:function(thumb,size=0x14) addr:0x020bf218 +_ZN21UnkStruct_027e0ce0_3419func_ov001_020bf22cEii kind:function(thumb,size=0x8c) addr:0x020bf22c +_ZN21UnkStruct_027e0ce0_3419func_ov001_020bf2b8Eb kind:function(thumb,size=0xc0) addr:0x020bf2b8 +_ZN21UnkStruct_027e0ce0_3419func_ov001_020bf378Ev kind:function(thumb,size=0x44) addr:0x020bf378 +_ZN21UnkStruct_027e0ce0_3419func_ov001_020bf3bcEv kind:function(thumb,size=0xe) addr:0x020bf3bc +_ZN21UnkStruct_027e0ce0_3419func_ov001_020bf3ccEv kind:function(thumb,size=0x30) addr:0x020bf3cc func_ov001_020bf3fc kind:function(thumb,size=0x2c) addr:0x020bf3fc func_ov001_020bf428 kind:function(arm,size=0x2c) addr:0x020bf428 func_ov001_020bf454 kind:function(arm,size=0x2c) addr:0x020bf454 diff --git a/config/eur/arm9/overlays/ov021/symbols.txt b/config/eur/arm9/overlays/ov021/symbols.txt index 69bec4ce..87fa9fa2 100644 --- a/config/eur/arm9/overlays/ov021/symbols.txt +++ b/config/eur/arm9/overlays/ov021/symbols.txt @@ -50,11 +50,11 @@ func_ov021_020ea87c kind:function(arm,size=0x1c) addr:0x020ea87c func_ov021_020ea898 kind:function(arm,size=0x40) addr:0x020ea898 func_ov021_020ea8d8 kind:function(arm,size=0x28) addr:0x020ea8d8 func_ov021_020ea900 kind:function(arm,size=0xac) addr:0x020ea900 -func_ov021_020ea9ac kind:function(thumb,size=0x56) addr:0x020ea9ac -func_ov021_020eaa04 kind:function(thumb,size=0x2) addr:0x020eaa04 -func_ov021_020eaa08 kind:function(thumb,size=0xbc) addr:0x020eaa08 -func_ov021_020eaac4 kind:function(thumb,size=0x50) addr:0x020eaac4 -func_ov021_020eab14 kind:function(thumb,size=0x56) addr:0x020eab14 +_ZN21UnkStruct_027e0ce0_24C1Ev kind:function(thumb,size=0x56) addr:0x020ea9ac +_ZN21UnkStruct_027e0ce0_24D1Ev kind:function(thumb,size=0x2) addr:0x020eaa04 +_ZN21UnkStruct_027e0ce0_2419func_ov021_020eaa08EP21UnkStruct_027e0ce0_20 kind:function(thumb,size=0xbc) addr:0x020eaa08 +_ZN21UnkStruct_027e0ce0_2419func_ov021_020eaac4Ev kind:function(thumb,size=0x50) addr:0x020eaac4 +_ZN21UnkStruct_027e0ce0_2419func_ov021_020eab14EiPK24UnkStruct_ov001_020c40f4P21UnkStruct_027e0ce0_30 kind:function(thumb,size=0x56) addr:0x020eab14 func_ov021_020eab6c kind:function(arm,size=0x2c0) addr:0x020eab6c func_ov021_020eae2c kind:function(arm,size=0x58) addr:0x020eae2c func_ov021_020eae84 kind:function(arm,size=0x6c) addr:0x020eae84 @@ -81,8 +81,8 @@ func_ov021_020eb900 kind:function(arm,size=0x148) addr:0x020eb900 func_ov021_020eba48 kind:function(thumb,size=0x60) addr:0x020eba48 func_ov021_020ebaa8 kind:function(arm,size=0x90) addr:0x020ebaa8 func_ov021_020ebb38 kind:function(arm,size=0x104) addr:0x020ebb38 -func_ov021_020ebc3c kind:function(thumb,size=0x28) addr:0x020ebc3c -func_ov021_020ebc64 kind:function(thumb,size=0x2) addr:0x020ebc64 +_ZN24UnkStruct_027e0ce0_30_08C1Ei kind:function(thumb,size=0x28) addr:0x020ebc3c +_ZN24UnkStruct_027e0ce0_30_08D1Ev kind:function(thumb,size=0x2) addr:0x020ebc64 func_ov021_020ebc68 kind:function(arm,size=0x4c) addr:0x020ebc68 func_ov021_020ebcb4 kind:function(arm,size=0xec) addr:0x020ebcb4 _ZN15PlayerLinkActor19func_ov021_020ebda0Ev kind:function(arm,size=0x50) addr:0x020ebda0 diff --git a/config/eur/arm9/overlays/ov026/symbols.txt b/config/eur/arm9/overlays/ov026/symbols.txt index 71b4be6a..78effc08 100644 --- a/config/eur/arm9/overlays/ov026/symbols.txt +++ b/config/eur/arm9/overlays/ov026/symbols.txt @@ -93,14 +93,14 @@ func_ov026_020dc394 kind:function(arm,size=0x6c) addr:0x020dc394 func_ov026_020dc400 kind:function(arm,size=0x34) addr:0x020dc400 func_ov026_020dc434 kind:function(arm,size=0x28) addr:0x020dc434 func_ov026_020dc45c kind:function(arm,size=0x4) addr:0x020dc45c -_ZN21UnkStruct_027e0ce0_38C1Ev kind:function(arm,size=0x2a8) addr:0x020dc460 +_ZN21UnkStruct_027e0ce0_38C1Ei kind:function(arm,size=0x2a8) addr:0x020dc460 func_ov026_020dc708 kind:function(arm,size=0x14) addr:0x020dc708 func_ov026_020dc71c kind:function(arm,size=0x14) addr:0x020dc71c _ZN21UnkStruct_027e0ce0_38D1Ev kind:function(arm,size=0xdc) addr:0x020dc730 _ZN21UnkStruct_027e0ce0_38D0Ev kind:function(arm,size=0xe4) addr:0x020dc80c -func_ov026_020dc8f0 kind:function(arm,size=0x28) addr:0x020dc8f0 -func_ov026_020dc918 kind:function(arm,size=0x98) addr:0x020dc918 -func_ov026_020dc9b0 kind:function(arm,size=0x64) addr:0x020dc9b0 +_ZN21UnkStruct_027e0ce0_3819func_ov026_020dc8f0Ev kind:function(arm,size=0x28) addr:0x020dc8f0 +_ZN21UnkStruct_027e0ce0_3819func_ov026_020dc918Ev kind:function(arm,size=0x98) addr:0x020dc918 +_ZN21UnkStruct_027e0ce0_3819func_ov026_020dc9b0Ev kind:function(arm,size=0x64) addr:0x020dc9b0 _ZN24UnkStruct_ov026_02138d1019func_ov026_020dca14Ev kind:function(arm,size=0x1788) addr:0x020dca14 func_ov026_020de19c kind:function(arm,size=0x38) addr:0x020de19c func_ov026_020de1d4 kind:function(arm,size=0x30) addr:0x020de1d4 @@ -109,8 +109,8 @@ func_ov026_020de35c kind:function(arm,size=0x100) addr:0x020de35c func_ov026_020de45c kind:function(arm,size=0x10) addr:0x020de45c func_ov026_020de46c kind:function(arm,size=0x30) addr:0x020de46c func_ov026_020de49c kind:function(arm,size=0x46c) addr:0x020de49c -func_ov026_020de908 kind:function(arm,size=0xb4) addr:0x020de908 -func_ov026_020de9bc kind:function(arm,size=0x1c) addr:0x020de9bc +_ZN21UnkStruct_027e0ce0_3819func_ov026_020de908EP24UnkStruct_027e0ce0_30_00 kind:function(arm,size=0xb4) addr:0x020de908 +_ZN21UnkStruct_027e0ce0_3819func_ov026_020dc9bcEPK24UnkStruct_ov001_020c40f4 kind:function(arm,size=0x1c) addr:0x020de9bc func_ov026_020de9d8 kind:function(arm,size=0x84) addr:0x020de9d8 func_ov026_020dea5c kind:function(arm,size=0x10) addr:0x020dea5c func_ov026_020dea6c kind:function(arm,size=0xc) addr:0x020dea6c diff --git a/config/eur/arm9/overlays/ov031/symbols.txt b/config/eur/arm9/overlays/ov031/symbols.txt index b42b02fb..6d55a937 100644 --- a/config/eur/arm9/overlays/ov031/symbols.txt +++ b/config/eur/arm9/overlays/ov031/symbols.txt @@ -158,7 +158,7 @@ func_ov031_020db614 kind:function(arm,size=0x90) addr:0x020db614 func_ov031_020db6a4 kind:function(arm,size=0x60) addr:0x020db6a4 func_ov031_020db704 kind:function(arm,size=0xbc) addr:0x020db704 func_ov031_020db7c0 kind:function(thumb,size=0x16) addr:0x020db7c0 -func_ov031_020db7d8 kind:function(thumb,size=0x1a) addr:0x020db7d8 +_ZN27UnkStruct_ItemManager_20_1419func_ov031_020db7d8Ev kind:function(thumb,size=0x1a) addr:0x020db7d8 func_ov031_020db7f4 kind:function(arm,size=0x50) addr:0x020db7f4 func_ov031_020db844 kind:function(arm,size=0x30) addr:0x020db844 _ZN24UnkStruct_ItemManager_2019func_ov031_020db874Ej kind:function(arm,size=0x58) addr:0x020db874 @@ -222,8 +222,8 @@ _ZN15PlayerLinkActor19func_ov031_020dccf0Ev kind:function(thumb,size=0x30) addr: func_ov031_020dcd20 kind:function(arm,size=0x3c) addr:0x020dcd20 func_ov031_020dcd5c kind:function(thumb,size=0x12) addr:0x020dcd5c func_ov031_020dcd70 kind:function(thumb,size=0x1e) addr:0x020dcd70 -func_ov031_020dcd90 kind:function(thumb,size=0x6) addr:0x020dcd90 -func_ov031_020dcd98 kind:function(thumb,size=0x2) addr:0x020dcd98 +_ZN29UnkStruct_027e0ce0_40_Base_78C1Ev kind:function(thumb,size=0x6) addr:0x020dcd90 +_ZN29UnkStruct_027e0ce0_40_Base_78D1Ev kind:function(thumb,size=0x2) addr:0x020dcd98 func_ov031_020dcd9c kind:function(arm,size=0x108) addr:0x020dcd9c func_ov031_020dcea4 kind:function(arm,size=0x110) addr:0x020dcea4 func_ov031_020dcfb4 kind:function(arm,size=0x12c) addr:0x020dcfb4 @@ -293,7 +293,7 @@ func_ov031_020e09ec kind:function(arm,size=0xe8) addr:0x020e09ec func_ov031_020e0ad4 kind:function(arm,size=0x34) addr:0x020e0ad4 func_ov031_020e0b08 kind:function(arm,size=0x30) addr:0x020e0b08 func_ov031_020e0b38 kind:function(arm,size=0xfc) addr:0x020e0b38 -func_ov031_020e0c34 kind:function(arm,size=0x44) addr:0x020e0c34 +_ZN29UnkStruct_027e0ce0_40_Base_7419func_ov031_020e0c34Ev kind:function(arm,size=0x44) addr:0x020e0c34 func_ov031_020e0c78 kind:function(arm,size=0x24) addr:0x020e0c78 func_ov031_020e0c9c kind:function(arm,size=0x54) addr:0x020e0c9c func_ov031_020e0cf0 kind:function(arm,size=0xa8) addr:0x020e0cf0 diff --git a/config/eur/arm9/overlays/ov088/symbols.txt b/config/eur/arm9/overlays/ov088/symbols.txt index 35696534..cd36b564 100644 --- a/config/eur/arm9/overlays/ov088/symbols.txt +++ b/config/eur/arm9/overlays/ov088/symbols.txt @@ -323,8 +323,8 @@ func_ov088_0216f834 kind:function(arm,size=0x24) addr:0x0216f834 func_ov088_0216f858 kind:function(arm,size=0x1c) addr:0x0216f858 func_ov088_0216f874 kind:function(arm,size=0x2c) addr:0x0216f874 _ZN21UnkStruct_027e0ce0_3CC1Ev kind:function(thumb,size=0x298) addr:0x0216f8a0 -func_ov088_0216fb38 kind:function(thumb,size=0x8c) addr:0x0216fb38 -func_ov088_0216fbc4 kind:function(thumb,size=0x2c) addr:0x0216fbc4 +_ZN21UnkStruct_027e0ce0_3CD1Ev kind:function(thumb,size=0x8c) addr:0x0216fb38 +_ZN21UnkStruct_027e0ce0_3C19func_ov088_0216fbc4EiPK24UnkStruct_ov001_020c40f4 kind:function(thumb,size=0x2c) addr:0x0216fbc4 func_ov088_0216fbf0 kind:function(arm,size=0xb0) addr:0x0216fbf0 func_ov088_0216fca0 kind:function(arm,size=0x270) addr:0x0216fca0 func_ov088_0216ff10 kind:function(arm,size=0x4) addr:0x0216ff10 diff --git a/config/eur/arm9/overlays/ov093/symbols.txt b/config/eur/arm9/overlays/ov093/symbols.txt index 6c3039d4..c512f34b 100644 --- a/config/eur/arm9/overlays/ov093/symbols.txt +++ b/config/eur/arm9/overlays/ov093/symbols.txt @@ -52,8 +52,8 @@ _ZN21PlayerActorBase_70_DCD1Ev kind:function(thumb,size=0x2) addr:0x021663cc func_ov093_021663d0 kind:function(arm,size=0x12c) addr:0x021663d0 func_ov093_021664fc kind:function(arm,size=0x24) addr:0x021664fc func_ov093_02166520 kind:function(arm,size=0x20) addr:0x02166520 -func_ov093_02166540 kind:function(thumb,size=0x40) addr:0x02166540 -func_ov093_02166580 kind:function(thumb,size=0x2) addr:0x02166580 +_ZN24UnkStruct_027e0ce0_30_04C1Ev kind:function(thumb,size=0x40) addr:0x02166540 +_ZN24UnkStruct_027e0ce0_30_04D1Ev kind:function(thumb,size=0x2) addr:0x02166580 func_ov093_02166584 kind:function(arm,size=0xb8) addr:0x02166584 func_ov093_0216663c kind:function(arm,size=0xd4) addr:0x0216663c func_ov093_02166710 kind:function(arm,size=0x14) addr:0x02166710 diff --git a/config/eur/arm9/overlays/ov101/symbols.txt b/config/eur/arm9/overlays/ov101/symbols.txt index e69fb84c..3a5e8ee7 100644 --- a/config/eur/arm9/overlays/ov101/symbols.txt +++ b/config/eur/arm9/overlays/ov101/symbols.txt @@ -1,19 +1,19 @@ func_ov101_02182c20 kind:function(thumb,size=0x16) addr:0x02182c20 func_ov101_02182c38 kind:function(thumb,size=0xe) addr:0x02182c38 -func_ov101_02182c48 kind:function(thumb,size=0xb8) addr:0x02182c48 -func_ov101_02182d00 kind:function(thumb,size=0x5a) addr:0x02182d00 -func_ov101_02182d5c kind:function(thumb,size=0x2c) addr:0x02182d5c +_ZN24UnkStruct_ItemManager_20C1Ev kind:function(thumb,size=0xb8) addr:0x02182c48 +_ZN24UnkStruct_ItemManager_20D1Ev kind:function(thumb,size=0x5a) addr:0x02182d00 +_ZN24UnkStruct_ItemManager_2019func_ov101_02182d5cEv kind:function(thumb,size=0x2c) addr:0x02182d5c func_ov101_02182d88 kind:function(thumb,size=0x20) addr:0x02182d88 func_ov101_02182da8 kind:function(thumb,size=0x20) addr:0x02182da8 func_ov101_02182dc8 kind:function(thumb,size=0x20) addr:0x02182dc8 func_ov101_02182de8 kind:function(thumb,size=0xc) addr:0x02182de8 func_ov101_02182df4 kind:function(thumb,size=0xc) addr:0x02182df4 func_ov101_02182e00 kind:function(thumb,size=0xc) addr:0x02182e00 -_ZN21UnkStruct_027e0ce0_40C1Ev kind:function(thumb,size=0x154) addr:0x02182e0c -func_ov101_02182f60 kind:function(thumb,size=0x54) addr:0x02182f60 -func_ov101_02182fb4 kind:function(thumb,size=0x50) addr:0x02182fb4 -func_ov101_02183004 kind:function(thumb,size=0x1e) addr:0x02183004 -func_ov101_02183024 kind:function(thumb,size=0x260) addr:0x02183024 +_ZN21UnkStruct_027e0ce0_40C1EbP21UnkStruct_027e0ce0_20PPiP11ItemManager kind:function(thumb,size=0x154) addr:0x02182e0c +_ZN21UnkStruct_027e0ce0_40D1Ev kind:function(thumb,size=0x54) addr:0x02182f60 +_ZN21UnkStruct_027e0ce0_4019func_ov101_02182fb4Eb kind:function(thumb,size=0x50) addr:0x02182fb4 +_ZN21UnkStruct_027e0ce0_4019func_ov101_02183004Ev kind:function(thumb,size=0x1e) addr:0x02183004 +_ZN21UnkStruct_027e0ce0_4019func_ov101_02183024EPK24UnkStruct_ov001_020c40f4S2_iiP11ItemManagerP21UnkStruct_027e0ce0_30bb kind:function(thumb,size=0x260) addr:0x02183024 func_ov101_02183284 kind:function(thumb,size=0xc) addr:0x02183284 func_ov101_02183290 kind:function(thumb,size=0x48) addr:0x02183290 func_ov101_021832d8 kind:function(thumb,size=0x50) addr:0x021832d8 diff --git a/config/eur/arm9/symbols.txt b/config/eur/arm9/symbols.txt index be464981..97d1428d 100644 --- a/config/eur/arm9/symbols.txt +++ b/config/eur/arm9/symbols.txt @@ -664,7 +664,7 @@ _ZN18UnkStruct_02049b1813func_020138f4Ei kind:function(arm,size=0x140) addr:0x02 func_02013a34 kind:function(arm,size=0x10) addr:0x02013a34 _ZN18UnkStruct_02049b7413func_02013a44Ei kind:function(arm,size=0x98) addr:0x02013a44 func_02013adc kind:function(arm,size=0x34) addr:0x02013adc -_ZN5InputC1Ev kind:function(arm,size=0x14) addr:0x02013b10 +_ZN5Input4InitEv kind:function(arm,size=0x14) addr:0x02013b10 _ZN5Input13func_02013b24Ei kind:function(arm,size=0x64) addr:0x02013b24 func_02013b88 kind:function(arm,size=0x10) addr:0x02013b88 func_02013b98 kind:function(arm,size=0x24) addr:0x02013b98 @@ -686,7 +686,7 @@ _ZN18UnkStruct_02049b8013func_02013f80Ei kind:function(arm,size=0x6c) addr:0x020 func_02013fec kind:function(arm,size=0xc) addr:0x02013fec func_02013ff8 kind:function(arm,size=0x12c) addr:0x02013ff8 _ZN12TouchControl11UpdateStateEP10TouchStatePK6TPData kind:function(arm,size=0xb8) addr:0x02014124 -_ZN12TouchControlC1Ev kind:function(thumb,size=0x3c) addr:0x020141dc +_ZN12TouchControl4InitEv kind:function(thumb,size=0x3c) addr:0x020141dc _ZN12TouchControl13IncreaseSpeedEt kind:function(arm,size=0x18) addr:0x02014218 _ZN12TouchControl11UpdateFlagsEt kind:function(arm,size=0x12c) addr:0x02014230 _ZN12TouchControl20UpdateWithStateFlagsEP6TPDatat kind:function(arm,size=0x44) addr:0x0201435c diff --git a/config/jp/arm9/overlays/ov000/symbols.txt b/config/jp/arm9/overlays/ov000/symbols.txt index 9cd5c021..5cbf21fc 100644 --- a/config/jp/arm9/overlays/ov000/symbols.txt +++ b/config/jp/arm9/overlays/ov000/symbols.txt @@ -1664,7 +1664,7 @@ func_ov000_02083e00 kind:function(arm,size=0x14) addr:0x02083e00 func_ov000_02083e14 kind:function(arm,size=0xac) addr:0x02083e14 func_ov000_02083ec0 kind:function(arm,size=0xc8) addr:0x02083ec0 func_ov000_02083f88 kind:function(arm,size=0xfc) addr:0x02083f88 -func_ov000_02084084 kind:function(thumb,size=0x1a) addr:0x02084084 +_ZN18UnkStruct_027e0cdc6CreateEP21UnkStruct_027e0ce0_30 kind:function(thumb,size=0x1a) addr:0x02084084 func_ov000_020840a0 kind:function(thumb,size=0x14) addr:0x020840a0 func_ov000_020840b4 kind:function(arm,size=0x10) addr:0x020840b4 func_ov000_020840c4 kind:function(arm,size=0x10) addr:0x020840c4 @@ -1845,8 +1845,8 @@ _ZN19func_ov000_0208af1cD1Ev kind:function(arm,size=0x2c) addr:0x0208af1c _ZN19func_ov000_0208af48D0Ev kind:function(arm,size=0x34) addr:0x0208af48 _ZN19func_ov000_0208af7cD2Ev kind:function(arm,size=0x2c) addr:0x0208af7c func_ov000_0208afa8 kind:function(arm,size=0x4) addr:0x0208afa8 -func_ov000_0208afac kind:function(arm,size=0x24) addr:0x0208afac -func_ov000_0208afd0 kind:function(arm,size=0x14) addr:0x0208afd0 +_ZN21UnkStruct_027e0ce0_20C1Ev kind:function(arm,size=0x24) addr:0x0208afac +_ZN21UnkStruct_027e0ce0_20D1Ev kind:function(arm,size=0x14) addr:0x0208afd0 func_ov000_0208afe4 kind:function(arm,size=0x2c) addr:0x0208afe4 func_ov000_0208b010 kind:function(arm,size=0x4c) addr:0x0208b010 _ZN18PlayerLinkActor_A4C1EP15PlayerActorBaseP18PlayerLinkActor_A0 kind:function(thumb,size=0xa) addr:0x0208b05c @@ -1871,15 +1871,15 @@ _ZN22UnkStruct_PlayerGet_64C1EPv kind:function(arm,size=0x10) addr:0x0208b7c4 func_ov000_0208b7d4 kind:function(arm,size=0x64) addr:0x0208b7d4 _ZN22UnkStruct_PlayerGet_64D1Ev kind:function(arm,size=0x64) addr:0x0208b838 func_ov000_0208b89c kind:function(thumb,size=0x48) addr:0x0208b89c -func_ov000_0208b8e4 kind:function(thumb,size=0x8) addr:0x0208b8e4 -func_ov000_0208b8ec kind:function(thumb,size=0x36) addr:0x0208b8ec +_ZN23UnkStruct_027e0ce0_BaseC2Ev kind:function(thumb,size=0x8) addr:0x0208b8e4 +_ZN18UnkStruct_027e0ce019func_ov000_0208a218EP13InvImportData kind:function(thumb,size=0x36) addr:0x0208b8ec func_ov000_0208b924 kind:function(thumb,size=0x74) addr:0x0208b924 -func_ov000_0208b998 kind:function(arm,size=0x54) addr:0x0208b998 +_ZN18UnkStruct_027e0ce019func_ov000_0208a2c4Eii kind:function(arm,size=0x54) addr:0x0208b998 _ZN18UnkStruct_027e0ce019func_ov000_0208a318Eiii kind:function(arm,size=0x74) addr:0x0208b9ec func_ov000_0208ba60 kind:function(arm,size=0x30) addr:0x0208ba60 func_ov000_0208ba90 kind:function(arm,size=0x328) addr:0x0208ba90 func_ov000_0208bdb8 kind:function(arm,size=0x48) addr:0x0208bdb8 -func_ov000_0208be00 kind:function(thumb,size=0xe) addr:0x0208be00 +_ZN37UnkStruct_027e0ce0_40_Base_94_50_BaseC2EiiP12ActorRefElemi kind:function(thumb,size=0xe) addr:0x0208be00 func_ov000_0208be10 kind:function(arm,size=0x68) addr:0x0208be10 func_ov000_0208be78 kind:function(arm,size=0x28) addr:0x0208be78 func_ov000_0208bea0 kind:function(arm,size=0x60) addr:0x0208bea0 @@ -1894,8 +1894,8 @@ func_ov000_0208c3e8 kind:function(arm,size=0xa0) addr:0x0208c3e8 func_ov000_0208c488 kind:function(arm,size=0x88) addr:0x0208c488 func_ov000_0208c510 kind:function(arm,size=0x48) addr:0x0208c510 func_ov000_0208c558 kind:function(arm,size=0x14) addr:0x0208c558 -func_ov000_0208c56c kind:function(thumb,size=0x4c) addr:0x0208c56c -func_ov000_0208c5b8 kind:function(thumb,size=0x28) addr:0x0208c5b8 +_ZN34UnkStruct_027e0ce0_40_Base_94_BaseC2Ei kind:function(thumb,size=0x4c) addr:0x0208c56c +_ZN29UnkStruct_027e0ce0_40_Base_9419func_ov000_0208aee4Ev kind:function(thumb,size=0x28) addr:0x0208c5b8 func_ov000_0208c5e0 kind:function(arm,size=0x1fc) addr:0x0208c5e0 func_ov000_0208c7dc kind:function(arm,size=0x7c) addr:0x0208c7dc func_ov000_0208c858 kind:function(arm,size=0xbc) addr:0x0208c858 @@ -2025,7 +2025,7 @@ func_ov000_0208f364 kind:function(arm,size=0x10) addr:0x0208f364 func_ov000_0208f374 kind:function(arm,size=0x58) addr:0x0208f374 func_ov000_0208f3cc kind:function(arm,size=0x60) addr:0x0208f3cc func_ov000_0208f42c kind:function(arm,size=0x10) addr:0x0208f42c -func_ov000_0208f43c kind:function(arm,size=0x10) addr:0x0208f43c +func_ov000_0208dd60 kind:function(arm,size=0x10) addr:0x0208f43c func_ov000_0208f44c kind:function(arm,size=0x70c) addr:0x0208f44c func_ov000_0208fb58 kind:function(arm,size=0xbc) addr:0x0208fb58 func_ov000_0208fc14 kind:function(arm,size=0x10) addr:0x0208fc14 @@ -2219,10 +2219,10 @@ func_ov000_02097b10 kind:function(arm,size=0x514) addr:0x02097b10 _ZN19func_ov000_02098024D1Ev kind:function(arm,size=0x20) addr:0x02098024 _ZN19func_ov000_02098044D0Ev kind:function(arm,size=0x28) addr:0x02098044 func_ov000_0209806c kind:function(arm,size=0x28) addr:0x0209806c -func_ov000_02098094 kind:function(arm,size=0x1c) addr:0x02098094 +_ZN29UnkStruct_027e0ce0_40_Base_7C19func_ov000_020968e0Ev kind:function(arm,size=0x1c) addr:0x02098094 func_ov000_020980b0 kind:function(arm,size=0xb8) addr:0x020980b0 func_ov000_02098168 kind:function(arm,size=0xe8) addr:0x02098168 -func_ov000_02098250 kind:function(arm,size=0x58) addr:0x02098250 +_ZN29UnkStruct_027e0ce0_40_Base_1419func_ov000_02096a9cEv kind:function(arm,size=0x58) addr:0x02098250 func_ov000_020982a8 kind:function(arm,size=0x28) addr:0x020982a8 func_ov000_020982d0 kind:function(arm,size=0x78) addr:0x020982d0 func_ov000_02098348 kind:function(arm,size=0x14) addr:0x02098348 @@ -3277,7 +3277,7 @@ data_ov000_020afc48 kind:data(any) addr:0x020b1458 data_ov000_020b1518 kind:data(any) addr:0x020b1518 data_ov000_020b151c kind:data(any) addr:0x020b151c data_ov000_020b1520 kind:data(any) addr:0x020b1520 -data_ov000_020b1524 kind:data(any) addr:0x020b1524 +data_ov000_020afd14 kind:data(any) addr:0x020b1524 data_ov000_020b1528 kind:data(any) addr:0x020b1528 data_ov000_020b152c kind:data(any) addr:0x020b152c data_ov000_020b153c kind:data(any) addr:0x020b153c @@ -3577,7 +3577,7 @@ data_ov000_020b4310 kind:data(any) addr:0x020b4310 data_ov000_020b431c kind:data(any) addr:0x020b431c data_ov000_020b4328 kind:data(any) addr:0x020b4328 data_ov000_020b432c kind:data(any) addr:0x020b432c -data_ov000_020b4338 kind:data(any) addr:0x020b4338 +_ZTV21UnkStruct_027e0ce0_0C kind:data(any) addr:0x020b4330 data_ov000_020b4344 kind:data(any) addr:0x020b4344 _ZTV20ModelRender_Derived4 kind:data(any) addr:0x020b4368 data_ov000_020b439c kind:data(any) addr:0x020b439c diff --git a/config/jp/arm9/overlays/ov001/delinks.txt b/config/jp/arm9/overlays/ov001/delinks.txt index 663fb022..f3d7c01d 100644 --- a/config/jp/arm9/overlays/ov001/delinks.txt +++ b/config/jp/arm9/overlays/ov001/delinks.txt @@ -65,7 +65,7 @@ src/001_SceneInit/Actor/ActorManager_001.cpp: .rodata start:0x020c3e78 end:0x020c3ea0 .data start:0x020c437c end:0x020c44b0 -src/001_SceneInit/Item/ItemManager_001.cpp: +src/001_SceneInit/Item/Inventory_001.cpp: complete .text start:0x020bd0c4 end:0x020bd30c @@ -74,19 +74,20 @@ src/001_SceneInit/Player/PlayerActorBase_70_001.cpp: .text start:0x020bd30c end:0x020bd6ac src/001_SceneInit/UnkStruct_027e0ce0_30_001.cpp: + complete .text start:0x020bd6ac end:0x020bd870 src/001_SceneInit/UnkStruct_027e0ce0_40_Base_001.cpp: + complete .text start:0x020bd870 end:0x020bda7c -src/001_SceneInit/code_020bc234_001.cpp: +src/001_SceneInit/Item/ItemManager_001.cpp: + complete .text start:0x020bda7c end:0x020bdb10 -src/001_SceneInit/code_020bc2c8_001.cpp: - .text start:0x020bdb10 end:0x020bdb94 - src/001_SceneInit/UnkStruct_027e0ce0_001.cpp: - .text start:0x020bdb94 end:0x020bdfb0 + complete + .text start:0x020bdb10 end:0x020bdfb0 src/001_SceneInit/UnkStruct_027e0cdc_001.cpp: complete diff --git a/config/jp/arm9/overlays/ov001/relocs.txt b/config/jp/arm9/overlays/ov001/relocs.txt index b5c0dbfa..16875cd2 100644 --- a/config/jp/arm9/overlays/ov001/relocs.txt +++ b/config/jp/arm9/overlays/ov001/relocs.txt @@ -1269,7 +1269,7 @@ from:0x020bdc54 kind:thumb_call to:0x020bd72c module:overlay(1) from:0x020bdc6a kind:thumb_call_arm to:0x02011f3c module:main from:0x020bdc72 kind:thumb_call to:0x020c0a0c module:overlay(1) from:0x020bdc86 kind:thumb_call to:0x02084084 module:overlay(0) -from:0x020bdc90 kind:load to:0x020b4338 module:overlay(0) +from:0x020bdc90 kind:load to:0x020b4330 module:overlay(0) add:0x8 from:0x020bdc94 kind:load to:0x027e09a4 module:dtcm from:0x020bdc9c kind:thumb_call to:0x020bdfb0 module:overlay(1) from:0x020bdca8 kind:thumb_call to:0x020c0a6c module:overlay(1) diff --git a/config/jp/arm9/overlays/ov001/symbols.txt b/config/jp/arm9/overlays/ov001/symbols.txt index 3401b065..9461c13a 100644 --- a/config/jp/arm9/overlays/ov001/symbols.txt +++ b/config/jp/arm9/overlays/ov001/symbols.txt @@ -200,29 +200,29 @@ _Z19func_ov001_020bbac4iP10G3d_Model_ib kind:function(thumb,size=0x5c) addr:0x02 _ZN18PlayerActorBase_70C1Eii kind:function(thumb,size=0x260) addr:0x020bd368 _ZN18PlayerActorBase_70D1Ev kind:function(thumb,size=0x96) addr:0x020bd5c8 _ZN18PlayerActorBase_7019func_ov001_020bbe18Ei29UnkStruct_func_ov001_020bbe18jh kind:function(thumb,size=0x4c) addr:0x020bd660 -func_ov001_020bbe64 kind:function(thumb,size=0x7c) addr:0x020bd6ac -func_ov001_020bbee0 kind:function(thumb,size=0x2) addr:0x020bd728 -func_ov001_020bbee4 kind:function(thumb,size=0x18) addr:0x020bd72c -func_ov001_020bbefc kind:function(thumb,size=0x2) addr:0x020bd744 -func_ov001_020bbf00 kind:function(thumb,size=0x24) addr:0x020bd748 -func_ov001_020bbf24 kind:function(thumb,size=0x2a) addr:0x020bd76c -func_ov001_020bbf50 kind:function(thumb,size=0x2a) addr:0x020bd798 -func_ov001_020bbf7c kind:function(thumb,size=0x50) addr:0x020bd7c4 -func_ov001_020bbfcc kind:function(thumb,size=0x5a) addr:0x020bd814 -_ZN26UnkStruct_027e0ce0_40_BaseC2Ev kind:function(thumb,size=0x88) addr:0x020bd870 -func_ov001_020bc0b0 kind:function(thumb,size=0x30) addr:0x020bd8f8 -func_ov001_020bc0e0 kind:function(thumb,size=0x154) addr:0x020bd928 +_ZN24UnkStruct_027e0ce0_30_00C1EP21UnkStruct_027e0ce0_38P21UnkStruct_027e0ce0_3CiPii kind:function(thumb,size=0x7c) addr:0x020bd6ac +_ZN24UnkStruct_027e0ce0_30_00D1Ev kind:function(thumb,size=0x2) addr:0x020bd728 +_ZN21UnkStruct_027e0ce0_30C1Ev kind:function(thumb,size=0x18) addr:0x020bd72c +_ZN21UnkStruct_027e0ce0_30D1Ev kind:function(thumb,size=0x2) addr:0x020bd744 +_ZN21UnkStruct_027e0ce0_3019func_ov001_020bbf00Eii kind:function(thumb,size=0x24) addr:0x020bd748 +_ZN21UnkStruct_027e0ce0_3019func_ov001_020bbf24EP21UnkStruct_027e0ce0_38 kind:function(thumb,size=0x2a) addr:0x020bd76c +_ZN21UnkStruct_027e0ce0_3019func_ov001_020bbf50EP21UnkStruct_027e0ce0_3C kind:function(thumb,size=0x2a) addr:0x020bd798 +_ZN21UnkStruct_027e0ce0_3019func_ov001_020bbf7cEiPii kind:function(thumb,size=0x50) addr:0x020bd7c4 +_ZN21UnkStruct_027e0ce0_3019func_ov001_020bbfccEv kind:function(thumb,size=0x5a) addr:0x020bd814 +_ZN26UnkStruct_027e0ce0_40_BaseC2EiPvP11ItemManager kind:function(thumb,size=0x88) addr:0x020bd870 +_ZN26UnkStruct_027e0ce0_40_BaseD2Ev kind:function(thumb,size=0x30) addr:0x020bd8f8 +_ZN26UnkStruct_027e0ce0_40_Base19func_ov001_020bc0e0Eb kind:function(thumb,size=0x154) addr:0x020bd928 _ZN11ItemManagerC1Ev kind:function(thumb,size=0x16) addr:0x020bda7c -func_ov001_020bc24c kind:function(thumb,size=0x30) addr:0x020bda94 -func_ov001_020bc27c kind:function(thumb,size=0x1e) addr:0x020bdac4 -func_ov001_020bc29c kind:function(thumb,size=0x1a) addr:0x020bdae4 -func_ov001_020bc2b8 kind:function(thumb,size=0x10) addr:0x020bdb00 -func_ov001_020bc2c8 kind:function(thumb,size=0x70) addr:0x020bdb10 -func_ov001_020bc338 kind:function(thumb,size=0x12) addr:0x020bdb80 +_ZN11ItemManager19func_ov001_020bc24cEv kind:function(thumb,size=0x30) addr:0x020bda94 +_ZN11ItemManager19func_ov001_020bc27cEv kind:function(thumb,size=0x1e) addr:0x020bdac4 +_ZN11ItemManager19func_ov001_020bc29cEv kind:function(thumb,size=0x1a) addr:0x020bdae4 +_ZN11ItemManager19func_ov001_020bc2b8Ev kind:function(thumb,size=0x10) addr:0x020bdb00 +_ZN29UnkStruct_027e0ce0_40_Base_94C1Ei kind:function(thumb,size=0x70) addr:0x020bdb10 +_ZN29UnkStruct_027e0ce0_40_Base_94D1Ev kind:function(thumb,size=0x12) addr:0x020bdb80 _ZN18UnkStruct_027e0ce06CreateEv kind:function(thumb,size=0x16) addr:0x020bdb94 -func_ov001_020bc364 kind:function(thumb,size=0xec) addr:0x020bdbac +_ZN18UnkStruct_027e0ce0C1Ev kind:function(thumb,size=0xec) addr:0x020bdbac _ZN18UnkStruct_027e0ce0D1Ev kind:function(thumb,size=0x86) addr:0x020bdc98 -func_ov001_020bc4d8 kind:function(thumb,size=0x4c) addr:0x020bdd20 +_ZN18UnkStruct_027e0ce019func_ov001_020bc4d8EP13InvImportDataii kind:function(thumb,size=0x4c) addr:0x020bdd20 _ZN18UnkStruct_027e0ce019func_ov001_020bc524Eb kind:function(thumb,size=0xd4) addr:0x020bdd6c _ZN18UnkStruct_027e0ce019func_ov001_020bc5f8Ev kind:function(thumb,size=0x62) addr:0x020bde40 _ZN18UnkStruct_027e0ce019func_ov001_020bc65cEv kind:function(thumb,size=0x40) addr:0x020bdea4 @@ -230,8 +230,8 @@ _ZN18UnkStruct_027e0ce019func_ov001_020bc69cEv kind:function(thumb,size=0x3c) ad _ZN18UnkStruct_027e0ce019func_ov001_020bc6d8EiPK24UnkStruct_ov001_020c40f4 kind:function(thumb,size=0xe) addr:0x020bdf20 _ZN18UnkStruct_027e0ce019func_ov001_020bc6e8EPK24UnkStruct_ov001_020c40f4 kind:function(thumb,size=0x14) addr:0x020bdf30 _ZN18UnkStruct_027e0ce019func_ov001_020bc6fcEPK24UnkStruct_ov001_020c40f4S2_ii kind:function(thumb,size=0x52) addr:0x020bdf44 -func_ov001_020bc750 kind:function(thumb,size=0xc) addr:0x020bdf98 -func_ov001_020bc75c kind:function(thumb,size=0xc) addr:0x020bdfa4 +_ZN8InstanceI18UnkStruct_027e0ce0EC2Ev kind:function(thumb,size=0xc) addr:0x020bdf98 +_ZN8InstanceI18UnkStruct_027e0ce0ED2Ev kind:function(thumb,size=0xc) addr:0x020bdfa4 _ZN18UnkStruct_027e0cdc7DestroyEv kind:function(thumb,size=0x20) addr:0x020bdfb0 _ZN8InstanceI18UnkStruct_027e0cdcED2Ev kind:function(thumb,size=0xc) addr:0x020bdfd0 _ZN20ModelRender_Derived4C1EiiP10G3d_Model_P18G3d_BoneMtxStruct_ kind:function(thumb,size=0x8c) addr:0x020bdfdc @@ -248,18 +248,18 @@ _ZN15PlayerLinkActor19func_ov001_020bcbd0EP7VecFx32 kind:function(thumb,size=0x9 _ZN18UnkStruct_027e0d347DestroyEv kind:function(thumb,size=0x20) addr:0x020be4b0 _ZN19PlayerLinkActor_1B0C1Ev kind:function(thumb,size=0xc) addr:0x020be4d0 _ZN8InstanceI18UnkStruct_027e0d34ED2Ev kind:function(thumb,size=0xc) addr:0x020be4dc -func_ov001_020bcca0 kind:function(thumb,size=0x46) addr:0x020be4e8 -func_ov001_020bcce8 kind:function(thumb,size=0x2) addr:0x020be530 -func_ov001_020bccec kind:function(thumb,size=0x2fe) addr:0x020be534 -func_ov001_020bcfec kind:function(thumb,size=0xb8) addr:0x020be834 +_ZN21UnkStruct_027e0ce0_1CC1Ev kind:function(thumb,size=0x46) addr:0x020be4e8 +_ZN21UnkStruct_027e0ce0_1CD1Ev kind:function(thumb,size=0x2) addr:0x020be530 +_ZN21UnkStruct_027e0ce0_1C19func_ov001_020bccecEv kind:function(thumb,size=0x2fe) addr:0x020be534 +_ZN21UnkStruct_027e0ce0_1C19func_ov001_020bcfecEv kind:function(thumb,size=0xb8) addr:0x020be834 _ZN21UnkStruct_027e0ce0_1C19func_ov001_020bd0a4Eb kind:function(thumb,size=0x148) addr:0x020be8ec -func_ov001_020bd1ec kind:function(thumb,size=0x80) addr:0x020bea34 +_ZN21UnkStruct_027e0ce0_1C19func_ov001_020bd1ecEv kind:function(thumb,size=0x80) addr:0x020bea34 _ZN18PlayerLinkActor_A0D1Ev kind:function(thumb,size=0x74) addr:0x020beab4 _ZN18PlayerLinkActor_A019func_ov001_020bd2e0Ev kind:function(thumb,size=0x78) addr:0x020beb28 _ZN18PlayerLinkActor_A019func_ov001_020bd358Ev kind:function(thumb,size=0x30) addr:0x020beba0 _ZN18PlayerLinkActor_A019func_ov001_020bd388Ebb kind:function(thumb,size=0x128) addr:0x020bebd0 -func_ov001_020bd4b0 kind:function(thumb,size=0x40) addr:0x020becf8 -func_ov001_020bd4f0 kind:function(thumb,size=0x22) addr:0x020bed38 +_ZN29UnkStruct_027e0ce0_40_Base_7CC1Ei kind:function(thumb,size=0x40) addr:0x020becf8 +_ZN29UnkStruct_027e0ce0_40_Base_7CD1Ev kind:function(thumb,size=0x22) addr:0x020bed38 _ZN18UnkStruct_0204a11019func_ov001_020bd514EiPvii kind:function(thumb,size=0x78) addr:0x020bed5c _ZN18UnkStruct_0204a11019func_ov001_020bd58cEv kind:function(thumb,size=0x24) addr:0x020bedd4 _ZN18UnkStruct_0204a11019func_ov001_020bd5b0Ev kind:function(thumb,size=0x88) addr:0x020bedf8 @@ -364,13 +364,13 @@ func_ov001_020bf0a0 kind:function(thumb,size=0x14) addr:0x020c08f4 func_ov001_020bf0b4 kind:function(thumb,size=0xf4) addr:0x020c0908 func_ov001_020bf1a8 kind:function(thumb,size=0x2) addr:0x020c09fc _ZN19func_ov001_020bf1acD0Ev kind:function(thumb,size=0xc) addr:0x020c0a00 -func_ov001_020bf1b8 kind:function(thumb,size=0x60) addr:0x020c0a0c -func_ov001_020bf218 kind:function(thumb,size=0x14) addr:0x020c0a6c -func_ov001_020bf22c kind:function(thumb,size=0x8c) addr:0x020c0a80 -func_ov001_020bf2b8 kind:function(thumb,size=0xc0) addr:0x020c0b0c -func_ov001_020bf378 kind:function(thumb,size=0x44) addr:0x020c0bcc -func_ov001_020bf3bc kind:function(thumb,size=0xe) addr:0x020c0c10 -func_ov001_020bf3cc kind:function(thumb,size=0x30) addr:0x020c0c20 +_ZN21UnkStruct_027e0ce0_34C1Ev kind:function(thumb,size=0x60) addr:0x020c0a0c +_ZN21UnkStruct_027e0ce0_34D1Ev kind:function(thumb,size=0x14) addr:0x020c0a6c +_ZN21UnkStruct_027e0ce0_3419func_ov001_020bf22cEii kind:function(thumb,size=0x8c) addr:0x020c0a80 +_ZN21UnkStruct_027e0ce0_3419func_ov001_020bf2b8Eb kind:function(thumb,size=0xc0) addr:0x020c0b0c +_ZN21UnkStruct_027e0ce0_3419func_ov001_020bf378Ev kind:function(thumb,size=0x44) addr:0x020c0bcc +_ZN21UnkStruct_027e0ce0_3419func_ov001_020bf3bcEv kind:function(thumb,size=0xe) addr:0x020c0c10 +_ZN21UnkStruct_027e0ce0_3419func_ov001_020bf3ccEv kind:function(thumb,size=0x30) addr:0x020c0c20 func_ov001_020bf3fc kind:function(thumb,size=0x2c) addr:0x020c0c50 func_ov001_020bf428 kind:function(arm,size=0x2c) addr:0x020c0c7c func_ov001_020bf454 kind:function(arm,size=0x2c) addr:0x020c0ca8 diff --git a/config/jp/arm9/overlays/ov021/symbols.txt b/config/jp/arm9/overlays/ov021/symbols.txt index a5acc5b2..63cc4bc3 100644 --- a/config/jp/arm9/overlays/ov021/symbols.txt +++ b/config/jp/arm9/overlays/ov021/symbols.txt @@ -50,11 +50,11 @@ func_ov021_020ec0fc kind:function(arm,size=0x1c) addr:0x020ec0fc func_ov021_020ec118 kind:function(arm,size=0x40) addr:0x020ec118 func_ov021_020ec158 kind:function(arm,size=0x28) addr:0x020ec158 func_ov021_020ec180 kind:function(arm,size=0xac) addr:0x020ec180 -func_ov021_020ec22c kind:function(thumb,size=0x56) addr:0x020ec22c -func_ov021_020ec284 kind:function(thumb,size=0x2) addr:0x020ec284 -func_ov021_020ec288 kind:function(thumb,size=0xbc) addr:0x020ec288 -func_ov021_020ec344 kind:function(thumb,size=0x50) addr:0x020ec344 -func_ov021_020ec394 kind:function(thumb,size=0x56) addr:0x020ec394 +_ZN21UnkStruct_027e0ce0_24C1Ev kind:function(thumb,size=0x56) addr:0x020ec22c +_ZN21UnkStruct_027e0ce0_24D1Ev kind:function(thumb,size=0x2) addr:0x020ec284 +_ZN21UnkStruct_027e0ce0_2419func_ov021_020eaa08EP21UnkStruct_027e0ce0_20 kind:function(thumb,size=0xbc) addr:0x020ec288 +_ZN21UnkStruct_027e0ce0_2419func_ov021_020eaac4Ev kind:function(thumb,size=0x50) addr:0x020ec344 +_ZN21UnkStruct_027e0ce0_2419func_ov021_020eab14EiPK24UnkStruct_ov001_020c40f4P21UnkStruct_027e0ce0_30 kind:function(thumb,size=0x56) addr:0x020ec394 func_ov021_020ec3ec kind:function(arm,size=0x2c0) addr:0x020ec3ec func_ov021_020ec6ac kind:function(arm,size=0x58) addr:0x020ec6ac func_ov021_020ec704 kind:function(arm,size=0x6c) addr:0x020ec704 @@ -81,8 +81,8 @@ func_ov021_020ed180 kind:function(arm,size=0x148) addr:0x020ed180 func_ov021_020ed2c8 kind:function(thumb,size=0x60) addr:0x020ed2c8 func_ov021_020ed328 kind:function(arm,size=0x90) addr:0x020ed328 func_ov021_020ed3b8 kind:function(arm,size=0x104) addr:0x020ed3b8 -func_ov021_020ed4bc kind:function(thumb,size=0x28) addr:0x020ed4bc -func_ov021_020ed4e4 kind:function(thumb,size=0x2) addr:0x020ed4e4 +_ZN24UnkStruct_027e0ce0_30_08C1Ei kind:function(thumb,size=0x28) addr:0x020ed4bc +_ZN24UnkStruct_027e0ce0_30_08D1Ev kind:function(thumb,size=0x2) addr:0x020ed4e4 func_ov021_020ed4e8 kind:function(arm,size=0x4c) addr:0x020ed4e8 func_ov021_020ed534 kind:function(arm,size=0xec) addr:0x020ed534 _ZN15PlayerLinkActor19func_ov021_020ebda0Ev kind:function(arm,size=0x50) addr:0x020ed620 diff --git a/config/jp/arm9/overlays/ov026/symbols.txt b/config/jp/arm9/overlays/ov026/symbols.txt index 1fd7b7c1..4b90be07 100644 --- a/config/jp/arm9/overlays/ov026/symbols.txt +++ b/config/jp/arm9/overlays/ov026/symbols.txt @@ -93,14 +93,14 @@ func_ov026_020ddd4c kind:function(arm,size=0x6c) addr:0x020ddd4c func_ov026_020dddb8 kind:function(arm,size=0x34) addr:0x020dddb8 func_ov026_020dddec kind:function(arm,size=0x28) addr:0x020dddec func_ov026_020dde14 kind:function(arm,size=0x4) addr:0x020dde14 -_ZN21UnkStruct_027e0ce0_38C1Ev kind:function(arm,size=0x2e0) addr:0x020dde18 +_ZN21UnkStruct_027e0ce0_38C1Ei kind:function(arm,size=0x2e0) addr:0x020dde18 func_ov026_020de0f8 kind:function(arm,size=0x14) addr:0x020de0f8 func_ov026_020de10c kind:function(arm,size=0x14) addr:0x020de10c _ZN21UnkStruct_027e0ce0_38D1Ev kind:function(arm,size=0xdc) addr:0x020de120 _ZN21UnkStruct_027e0ce0_38D0Ev kind:function(arm,size=0xe4) addr:0x020de1fc -func_ov026_020de2e0 kind:function(arm,size=0x28) addr:0x020de2e0 -func_ov026_020de308 kind:function(arm,size=0x98) addr:0x020de308 -func_ov026_020de3a0 kind:function(arm,size=0x64) addr:0x020de3a0 +_ZN21UnkStruct_027e0ce0_3819func_ov026_020dc8f0Ev kind:function(arm,size=0x28) addr:0x020de2e0 +_ZN21UnkStruct_027e0ce0_3819func_ov026_020dc918Ev kind:function(arm,size=0x98) addr:0x020de308 +_ZN21UnkStruct_027e0ce0_3819func_ov026_020dc9b0Ev kind:function(arm,size=0x64) addr:0x020de3a0 _ZN24UnkStruct_ov026_02138d1019func_ov026_020dca14Ev kind:function(arm,size=0x1788) addr:0x020de404 func_ov026_020dfb8c kind:function(arm,size=0x38) addr:0x020dfb8c func_ov026_020dfbc4 kind:function(arm,size=0x30) addr:0x020dfbc4 @@ -109,8 +109,8 @@ func_ov026_020dfd4c kind:function(arm,size=0xf0) addr:0x020dfd4c func_ov026_020dfe3c kind:function(arm,size=0x10) addr:0x020dfe3c func_ov026_020dfe4c kind:function(arm,size=0x30) addr:0x020dfe4c func_ov026_020dfe7c kind:function(arm,size=0x578) addr:0x020dfe7c -func_ov026_020e03f4 kind:function(arm,size=0xb4) addr:0x020e03f4 -func_ov026_020e04a8 kind:function(arm,size=0x1c) addr:0x020e04a8 +_ZN21UnkStruct_027e0ce0_3819func_ov026_020de908EP24UnkStruct_027e0ce0_30_00 kind:function(arm,size=0xb4) addr:0x020e03f4 +_ZN21UnkStruct_027e0ce0_3819func_ov026_020dc9bcEPK24UnkStruct_ov001_020c40f4 kind:function(arm,size=0x1c) addr:0x020e04a8 func_ov026_020e04c4 kind:function(arm,size=0x84) addr:0x020e04c4 func_ov026_020e0548 kind:function(arm,size=0x10) addr:0x020e0548 func_ov026_020e0558 kind:function(arm,size=0xc) addr:0x020e0558 diff --git a/config/jp/arm9/overlays/ov031/symbols.txt b/config/jp/arm9/overlays/ov031/symbols.txt index 38e22bd6..ac2f0eb7 100644 --- a/config/jp/arm9/overlays/ov031/symbols.txt +++ b/config/jp/arm9/overlays/ov031/symbols.txt @@ -158,7 +158,7 @@ func_ov031_020dcfb4 kind:function(arm,size=0x90) addr:0x020dcfb4 func_ov031_020dd044 kind:function(arm,size=0x60) addr:0x020dd044 func_ov031_020dd0a4 kind:function(arm,size=0xbc) addr:0x020dd0a4 func_ov031_020dd160 kind:function(thumb,size=0x16) addr:0x020dd160 -func_ov031_020dd178 kind:function(thumb,size=0x1a) addr:0x020dd178 +_ZN27UnkStruct_ItemManager_20_1419func_ov031_020db7d8Ev kind:function(thumb,size=0x1a) addr:0x020dd178 func_ov031_020dd194 kind:function(arm,size=0x50) addr:0x020dd194 func_ov031_020dd1e4 kind:function(arm,size=0x30) addr:0x020dd1e4 _ZN24UnkStruct_ItemManager_2019func_ov031_020db874Ej kind:function(arm,size=0x58) addr:0x020dd214 @@ -222,8 +222,8 @@ _ZN15PlayerLinkActor19func_ov031_020dccf0Ev kind:function(thumb,size=0x30) addr: func_ov031_020de6c0 kind:function(arm,size=0x3c) addr:0x020de6c0 func_ov031_020de6fc kind:function(thumb,size=0x12) addr:0x020de6fc func_ov031_020de710 kind:function(thumb,size=0x1e) addr:0x020de710 -func_ov031_020de730 kind:function(thumb,size=0x6) addr:0x020de730 -func_ov031_020de738 kind:function(thumb,size=0x2) addr:0x020de738 +_ZN29UnkStruct_027e0ce0_40_Base_78C1Ev kind:function(thumb,size=0x6) addr:0x020de730 +_ZN29UnkStruct_027e0ce0_40_Base_78D1Ev kind:function(thumb,size=0x2) addr:0x020de738 func_ov031_020de73c kind:function(arm,size=0x108) addr:0x020de73c func_ov031_020de844 kind:function(arm,size=0x110) addr:0x020de844 func_ov031_020de954 kind:function(arm,size=0x12c) addr:0x020de954 @@ -293,7 +293,7 @@ func_ov031_020e23bc kind:function(arm,size=0xe8) addr:0x020e23bc func_ov031_020e24a4 kind:function(arm,size=0x34) addr:0x020e24a4 func_ov031_020e24d8 kind:function(arm,size=0x30) addr:0x020e24d8 func_ov031_020e2508 kind:function(arm,size=0xfc) addr:0x020e2508 -func_ov031_020e2604 kind:function(arm,size=0x44) addr:0x020e2604 +_ZN29UnkStruct_027e0ce0_40_Base_7419func_ov031_020e0c34Ev kind:function(arm,size=0x44) addr:0x020e2604 func_ov031_020e2648 kind:function(arm,size=0x24) addr:0x020e2648 func_ov031_020e266c kind:function(arm,size=0x54) addr:0x020e266c func_ov031_020e26c0 kind:function(arm,size=0xa8) addr:0x020e26c0 diff --git a/config/jp/arm9/overlays/ov088/symbols.txt b/config/jp/arm9/overlays/ov088/symbols.txt index 30139310..536619cd 100644 --- a/config/jp/arm9/overlays/ov088/symbols.txt +++ b/config/jp/arm9/overlays/ov088/symbols.txt @@ -323,8 +323,8 @@ func_ov088_02171a94 kind:function(arm,size=0x24) addr:0x02171a94 func_ov088_02171ab8 kind:function(arm,size=0x1c) addr:0x02171ab8 func_ov088_02171ad4 kind:function(arm,size=0x2c) addr:0x02171ad4 _ZN21UnkStruct_027e0ce0_3CC1Ev kind:function(thumb,size=0x298) addr:0x02171b00 -func_ov088_02171d98 kind:function(thumb,size=0x8c) addr:0x02171d98 -func_ov088_02171e24 kind:function(thumb,size=0x2c) addr:0x02171e24 +_ZN21UnkStruct_027e0ce0_3CD1Ev kind:function(thumb,size=0x8c) addr:0x02171d98 +_ZN21UnkStruct_027e0ce0_3C19func_ov088_0216fbc4EiPK24UnkStruct_ov001_020c40f4 kind:function(thumb,size=0x2c) addr:0x02171e24 func_ov088_02171e50 kind:function(arm,size=0xb0) addr:0x02171e50 func_ov088_02171f00 kind:function(arm,size=0x270) addr:0x02171f00 func_ov088_02172170 kind:function(arm,size=0x4) addr:0x02172170 diff --git a/config/jp/arm9/overlays/ov093/symbols.txt b/config/jp/arm9/overlays/ov093/symbols.txt index 4dba9191..8bfb3d06 100644 --- a/config/jp/arm9/overlays/ov093/symbols.txt +++ b/config/jp/arm9/overlays/ov093/symbols.txt @@ -52,8 +52,8 @@ _ZN21PlayerActorBase_70_DCD1Ev kind:function(thumb,size=0x2) addr:0x0216862c func_ov093_02168630 kind:function(arm,size=0x12c) addr:0x02168630 func_ov093_0216875c kind:function(arm,size=0x24) addr:0x0216875c func_ov093_02168780 kind:function(arm,size=0x20) addr:0x02168780 -func_ov093_021687a0 kind:function(thumb,size=0x40) addr:0x021687a0 -func_ov093_021687e0 kind:function(thumb,size=0x2) addr:0x021687e0 +_ZN24UnkStruct_027e0ce0_30_04C1Ev kind:function(thumb,size=0x40) addr:0x021687a0 +_ZN24UnkStruct_027e0ce0_30_04D1Ev kind:function(thumb,size=0x2) addr:0x021687e0 func_ov093_021687e4 kind:function(arm,size=0xb8) addr:0x021687e4 func_ov093_0216889c kind:function(arm,size=0xd4) addr:0x0216889c func_ov093_02168970 kind:function(arm,size=0x14) addr:0x02168970 diff --git a/config/jp/arm9/overlays/ov101/symbols.txt b/config/jp/arm9/overlays/ov101/symbols.txt index 6dcef9aa..dc39004d 100644 --- a/config/jp/arm9/overlays/ov101/symbols.txt +++ b/config/jp/arm9/overlays/ov101/symbols.txt @@ -1,19 +1,19 @@ func_ov101_021847a0 kind:function(thumb,size=0x16) addr:0x021847a0 func_ov101_021847b8 kind:function(thumb,size=0xe) addr:0x021847b8 -func_ov101_021847c8 kind:function(thumb,size=0xb8) addr:0x021847c8 -func_ov101_02184880 kind:function(thumb,size=0x5a) addr:0x02184880 -func_ov101_021848dc kind:function(thumb,size=0x2c) addr:0x021848dc +_ZN24UnkStruct_ItemManager_20C1Ev kind:function(thumb,size=0xb8) addr:0x021847c8 +_ZN24UnkStruct_ItemManager_20D1Ev kind:function(thumb,size=0x5a) addr:0x02184880 +_ZN24UnkStruct_ItemManager_2019func_ov101_02182d5cEv kind:function(thumb,size=0x2c) addr:0x021848dc func_ov101_02184908 kind:function(thumb,size=0x20) addr:0x02184908 func_ov101_02184928 kind:function(thumb,size=0x20) addr:0x02184928 func_ov101_02184948 kind:function(thumb,size=0x20) addr:0x02184948 func_ov101_02184968 kind:function(thumb,size=0xc) addr:0x02184968 func_ov101_02184974 kind:function(thumb,size=0xc) addr:0x02184974 func_ov101_02184980 kind:function(thumb,size=0xc) addr:0x02184980 -_ZN21UnkStruct_027e0ce0_40C1Ev kind:function(thumb,size=0x154) addr:0x0218498c -func_ov101_02184ae0 kind:function(thumb,size=0x54) addr:0x02184ae0 -func_ov101_02184b34 kind:function(thumb,size=0x50) addr:0x02184b34 -func_ov101_02184b84 kind:function(thumb,size=0x1e) addr:0x02184b84 -func_ov101_02184ba4 kind:function(thumb,size=0x260) addr:0x02184ba4 +_ZN21UnkStruct_027e0ce0_40C1EbP21UnkStruct_027e0ce0_20PPiP11ItemManager kind:function(thumb,size=0x154) addr:0x0218498c +_ZN21UnkStruct_027e0ce0_40D1Ev kind:function(thumb,size=0x54) addr:0x02184ae0 +_ZN21UnkStruct_027e0ce0_4019func_ov101_02182fb4Eb kind:function(thumb,size=0x50) addr:0x02184b34 +_ZN21UnkStruct_027e0ce0_4019func_ov101_02183004Ev kind:function(thumb,size=0x1e) addr:0x02184b84 +_ZN21UnkStruct_027e0ce0_4019func_ov101_02183024EPK24UnkStruct_ov001_020c40f4S2_iiP11ItemManagerP21UnkStruct_027e0ce0_30bb kind:function(thumb,size=0x260) addr:0x02184ba4 func_ov101_02184e04 kind:function(thumb,size=0xc) addr:0x02184e04 func_ov101_02184e10 kind:function(thumb,size=0x48) addr:0x02184e10 func_ov101_02184e58 kind:function(thumb,size=0x50) addr:0x02184e58 diff --git a/config/jp/arm9/symbols.txt b/config/jp/arm9/symbols.txt index 0a310e28..53e27586 100644 --- a/config/jp/arm9/symbols.txt +++ b/config/jp/arm9/symbols.txt @@ -664,7 +664,7 @@ _ZN18UnkStruct_02049b1813func_020138f4Ei kind:function(arm,size=0x140) addr:0x02 func_02013a38 kind:function(arm,size=0x10) addr:0x02013a38 _ZN18UnkStruct_02049b7413func_02013a44Ei kind:function(arm,size=0x98) addr:0x02013a48 func_02013ae0 kind:function(arm,size=0x34) addr:0x02013ae0 -_ZN5InputC1Ev kind:function(arm,size=0x14) addr:0x02013b14 +_ZN5Input4InitEv kind:function(arm,size=0x14) addr:0x02013b14 _ZN5Input13func_02013b24Ei kind:function(arm,size=0x64) addr:0x02013b28 func_02013b8c kind:function(arm,size=0x10) addr:0x02013b8c func_02013b9c kind:function(arm,size=0x24) addr:0x02013b9c @@ -686,7 +686,7 @@ _ZN18UnkStruct_02049b8013func_02013f80Ei kind:function(arm,size=0x6c) addr:0x020 func_02013ff0 kind:function(arm,size=0xc) addr:0x02013ff0 func_02013ffc kind:function(arm,size=0x12c) addr:0x02013ffc _ZN12TouchControl11UpdateStateEP10TouchStatePK6TPData kind:function(arm,size=0xb8) addr:0x02014128 -_ZN12TouchControlC1Ev kind:function(thumb,size=0x3c) addr:0x020141e0 +_ZN12TouchControl4InitEv kind:function(thumb,size=0x3c) addr:0x020141e0 _ZN12TouchControl13IncreaseSpeedEt kind:function(arm,size=0x18) addr:0x0201421c _ZN12TouchControl11UpdateFlagsEt kind:function(arm,size=0x12c) addr:0x02014234 _ZN12TouchControl20UpdateWithStateFlagsEP6TPDatat kind:function(arm,size=0x44) addr:0x02014360 diff --git a/include/Item/ItemManager.hpp b/include/Item/ItemManager.hpp index f6b23490..a069b5e8 100644 --- a/include/Item/ItemManager.hpp +++ b/include/Item/ItemManager.hpp @@ -3,6 +3,7 @@ #include "Item/Item.hpp" #include "Save/AdventureFlags.hpp" #include "System/SysNew.hpp" +#include "Unknown/UnkStruct_027e09a4.hpp" #include "global.h" #include "types.h" @@ -37,6 +38,10 @@ public: UnkStruct_ItemManager_20_14(); + // overlay 31 + void func_ov031_020db7d8(); + + // overlay 53 unk32 func_ov053_0213caf0(); }; @@ -48,10 +53,19 @@ public: /* 0C */ unk32 mUnk_0C; /* 10 */ unk32 mUnk_10; /* 14 */ UnkStruct_ItemManager_20_14 mUnk_14; + /* 20 */ STRUCT_PAD(0x20, 0x2C); + /* 2C */ + UnkStruct_ItemManager_20(); + ~UnkStruct_ItemManager_20(); + + // overlay 31 bool func_ov031_020db874(ItemFlag itemFlag); void func_ov031_020db8cc(); bool func_ov031_020db8f8(); + + // overlay 101 + void func_ov101_02182d5c(); }; struct InvImportData { @@ -204,6 +218,12 @@ public: static UnkStruct_ov000_020afc48 *func_ov000_020a8974(ItemFlag itemFlag); static ItemFlag GetEquippedItemFlag(ItemId itemId); + // overlay 1 + void func_ov001_020bc24c(); + void func_ov001_020bc27c(); + void func_ov001_020bc29c(); + void func_ov001_020bc2b8(); + // overlay 110 static u32 GetBmgIDFromItem(ItemId itemId); static AdventureFlag GetAdvFlagFromItem(ItemId itemId); diff --git a/include/Player/TouchControl.hpp b/include/Player/TouchControl.hpp index 0e436d26..c59a3d25 100644 --- a/include/Player/TouchControl.hpp +++ b/include/Player/TouchControl.hpp @@ -40,7 +40,14 @@ public: /* 20 */ TouchFlags mFlags; /* 22 */ - TouchControl(); + //! TODO: solve the temp oddity in `UnkStruct_027e0ce0_40_Base` + TouchControl(bool autocallInit = true) { + if (autocallInit) { + this->Init(); + } + } + + void Init(); void IncreaseSpeed(u16 increase); void UpdateFlags(u16 speed); void UpdateWithStateFlags(TPData *state, u16 speed); diff --git a/include/Unknown/UnkStruct_027e09a4.hpp b/include/Unknown/UnkStruct_027e09a4.hpp index 6a8519db..0fff2921 100644 --- a/include/Unknown/UnkStruct_027e09a4.hpp +++ b/include/Unknown/UnkStruct_027e09a4.hpp @@ -215,6 +215,14 @@ public: UnkStruct_027e09a4_54_Type5(UnkStruct_027e09a4 *param1); }; +// loaded scene's game mode +typedef s32 SceneMode; +enum SceneMode_ { + SceneMode_AdventureMode = 0, + SceneMode_BattleMode = 1, + SceneMode_TitleScreen = 2, +}; + class UnkStruct_027e09a4 : public AutoInstance { public: /* 00 */ EntranceInfo mUnk_00; // the infos of the current area, this isn't saved when you save the game @@ -226,21 +234,31 @@ public: /* 58 */ UnkStruct_WarpUnk1 *mpWarpUnk1; /* 5C */ unk16 mUnk_5C; /* 5E */ unk16 mUnk_5E; - /* 60 */ unk32 mUnk_60; // related to ds download? + /* 60 */ SceneMode mSceneMode; /* 64 */ unk32 mUnk_64; /* 68 */ - bool IsCutscene() { - return this->mUnk_00.isCS == true; + // clang-format off + const bool IsCutscene() const { return this->mUnk_00.isCS == true; } + const bool IsNotCutscene() const { return this->mUnk_00.isCS != true; } + const u8 CurrentCSIndex() const { return this->mUnk_00.csIndex; } + const SceneIndex CurrentSceneIndex() const { return this->mUnk_00.sceneIndex; } + + const bool IsDarkRealm() const { + return this->mUnk_00.sceneIndex <= SceneIndex_t_eviltrain3 && this->mUnk_00.sceneIndex >= SceneIndex_t_eviltrain; } - bool IsNotCutscene() { - return this->mUnk_00.isCS != true; - } + const bool IsDungeonTower() const { return this->mUnk_00.sceneIndex == SceneIndex_d_main; } + const bool IsPirate() const { return this->mUnk_00.sceneIndex == SceneIndex_f_pirate; } + const bool IsWater3() const { return this->mUnk_00.sceneIndex == SceneIndex_f_water3; } + const bool IsSnowdriftStation() const { return this->mUnk_00.sceneIndex == SceneIndex_f_kakushi1; } + const bool IsPassenger() const { return this->mUnk_00.sceneIndex == SceneIndex_f_passenger; } - u8 CurrentCSIndex() { - return this->mUnk_00.csIndex; - } + const bool IsSceneModeAdventure() const { return this->mSceneMode == SceneMode_AdventureMode; } + const bool IsSceneModeBattle() const { return this->mSceneMode == SceneMode_BattleMode; } + const bool IsSceneModeTitleScreen() const { return this->mSceneMode == SceneMode_TitleScreen; } + const bool IsSceneAdvOrTitle() const { return this->IsSceneModeAdventure() || this->IsSceneModeTitleScreen(); } + // clang-format on bool UnkCheck(unk32 sceneIndex) { switch (sceneIndex) { @@ -275,35 +293,7 @@ public: return result; } - SceneIndex CurrentSceneIndex() { - return this->mUnk_00.sceneIndex; - } - - bool IsDarkRealm() { - return this->mUnk_00.sceneIndex <= SceneIndex_t_eviltrain3 && this->mUnk_00.sceneIndex >= SceneIndex_t_eviltrain; - } - - bool IsDungeonTower() { - return this->mUnk_00.sceneIndex == SceneIndex_d_main; - } - - bool IsPirate() { - return this->mUnk_00.sceneIndex == SceneIndex_f_pirate; - } - - bool IsWater3() { - return this->mUnk_00.sceneIndex == SceneIndex_f_water3; - } - - bool IsSnowdriftStation() { - return this->mUnk_00.sceneIndex == SceneIndex_f_kakushi1; - } - - bool IsPassenger() { - return this->mUnk_00.sceneIndex == SceneIndex_f_passenger; - } - - UnkStruct_027e09a4(unk32 param1); + UnkStruct_027e09a4(SceneMode mode); ~UnkStruct_027e09a4(); // itcm diff --git a/include/Unknown/UnkStruct_027e0cdc.hpp b/include/Unknown/UnkStruct_027e0cdc.hpp index 724d0ec5..a29b6a5f 100644 --- a/include/Unknown/UnkStruct_027e0cdc.hpp +++ b/include/Unknown/UnkStruct_027e0cdc.hpp @@ -1,17 +1,23 @@ #pragma once +#include "Unknown/UnkStruct_027e0ce0.hpp" #include "global.h" #include "types.h" class UnkStruct_027e0cdc : public AutoInstance { public: /* 00 */ unk32 mUnk_00; + /* 04 */ UnkStruct_027e0ce0_40 *mUnk_04; UnkStruct_027e0cdc(); + // overlay 0 unk32 func_ov000_02082a28(unk32 param1); unk32 func_ov000_02082a48(unk32 param1); + static UnkStruct_027e0cdc *Create(UnkStruct_027e0ce0_30 *param1); + + // overlay 1 static void Destroy(); }; diff --git a/include/Unknown/UnkStruct_027e0ce0.hpp b/include/Unknown/UnkStruct_027e0ce0.hpp index fdcb5f6c..524f7e41 100644 --- a/include/Unknown/UnkStruct_027e0ce0.hpp +++ b/include/Unknown/UnkStruct_027e0ce0.hpp @@ -14,8 +14,128 @@ #include +class UnkStruct_027e0ce0; +class UnkStruct_027e0ce0_30; +class UnkStruct_027e0ce0_38; +class UnkStruct_027e0ce0_3C; class UnkStruct_ov001_020c40f4; +class UnkStruct_027e0ce0_0C : public LinkList { +public: + /* 00 (vtable) */ + /* 04 (base) */ + /* 0C */ UnkStruct_027e0ce0 *mUnk_0C; + /* 10 */ + + UnkStruct_027e0ce0_0C(UnkStruct_027e0ce0 *param1) : + mUnk_0C(param1) {} + + // data_ov000_020b2b38 + /* 00 */ virtual void vfunc_00(unk32 param1); +}; + +class UnkStruct_027e0ce0_1C { +public: + /* 00 */ STRUCT_PAD(0x00, 0x0C); + /* 0C */ MapObjectProfile_Derived2_20_Base *mUnk_0C; + /* 10 */ STRUCT_PAD(0x10, 0xDC); + /* DC */ + + UnkStruct_027e0ce0_1C(); + ~UnkStruct_027e0ce0_1C(); + + // overlay 1 + void func_ov001_020bccec(); + void func_ov001_020bcfec(); + void func_ov001_020bd0a4(bool param1); + void func_ov001_020bd1ec(); +}; + +class UnkStruct_027e0ce0_20 { +public: + /* 00 */ STRUCT_PAD(0x00, 0x0C); + /* 0C */ + + UnkStruct_027e0ce0_20(); + ~UnkStruct_027e0ce0_20(); +}; + +class UnkStruct_027e0ce0_24 { +public: + /* 00 */ STRUCT_PAD(0x00, 0x88); + /* 88 */ + + UnkStruct_027e0ce0_24(); + ~UnkStruct_027e0ce0_24(); + + // overlay 21 + void func_ov021_020eaa08(UnkStruct_027e0ce0_20 *param1); + void func_ov021_020eaac4(); + void func_ov021_020eab14(unk32 param1, const UnkStruct_ov001_020c40f4 *param2, UnkStruct_027e0ce0_30 *param3); +}; + +class UnkStruct_027e0ce0_30_00 { +private: + /* 00 */ VecFx32 mUnk_00; + /* 0C */ VecFx32 mUnk_0C; + /* 18 */ unk32 mUnk_18; + /* 1C */ unk32 mUnk_1C; + /* 20 */ unk32 mUnk_20; + /* 24 */ unk32 mUnk_24; + /* 28 */ bool mUnk_28; + /* 2C */ UnkStruct_027e0ce0_38 *mUnk_2C; + /* 30 */ UnkStruct_027e0ce0_3C *mUnk_30; + /* 34 */ unk32 mUnk_34; + /* 38 */ unk32 *mUnk_38; + /* 38 */ unk32 mUnk_3C; + /* 40 */ + +public: + UnkStruct_027e0ce0_30_00(UnkStruct_027e0ce0_38 *param1, UnkStruct_027e0ce0_3C *param2, unk32 param3, unk32 *param4, + unk32 param5); + ~UnkStruct_027e0ce0_30_00(); +}; + +class UnkStruct_027e0ce0_30_04 { +private: + /* 00 */ STRUCT_PAD(0x00, 0x0C); + /* 0C */ + +public: + UnkStruct_027e0ce0_30_04(); + ~UnkStruct_027e0ce0_30_04(); +}; + +class UnkStruct_027e0ce0_30_08 { +private: + /* 00 */ STRUCT_PAD(0x00, 0x24); + /* 24 */ + +public: + UnkStruct_027e0ce0_30_08(unk32 param1); + ~UnkStruct_027e0ce0_30_08(); +}; + +class UnkStruct_027e0ce0_30 { +private: + /* 00 */ UnkStruct_027e0ce0_30_00 *mUnk_00; // only used for adventure mode? + /* 04 */ UnkStruct_027e0ce0_30_04 *mUnk_04; // only used for adventure mode? + /* 08 */ UnkStruct_027e0ce0_30_08 *mUnk_08[4]; // only used for battle mode? + /* 18 */ + +public: + UnkStruct_027e0ce0_30(); + ~UnkStruct_027e0ce0_30(); + + // overlay 1 + void func_ov001_020bbf00(int index, unk32 param2); + void func_ov001_020bbf24(UnkStruct_027e0ce0_38 *param1); + void func_ov001_020bbf50(UnkStruct_027e0ce0_3C *param1); + void func_ov001_020bbf7c(unk32 param1, unk32 *param2, unk32 param3); + void func_ov001_020bbfcc(); + void func_ov001_020bbff4(UnkStruct_027e0ce0_38 *param1); +}; + class UnkStruct_027e0ce0_34 { public: /* 00 */ unk32 mUnk_00[4]; @@ -27,7 +147,18 @@ public: /* 30 */ u32 mSpiritTrackFlags; /* 34 */ unk32 mUnk_34; /* 38 */ u32 mTrackFlags[3]; - /* 44 */ + /* 44 */ STRUCT_PAD(0x44, 0xF4); + /* F4 */ + + UnkStruct_027e0ce0_34(); + ~UnkStruct_027e0ce0_34(); + + // overlay 1 + void func_ov001_020bf22c(unk32 param1, unk32 param2); + void func_ov001_020bf2b8(bool param1); + void func_ov001_020bf378(); + void func_ov001_020bf3bc(); + void func_ov001_020bf3cc(); // overlay 8 void func_ov008_020b6a50(); @@ -59,6 +190,19 @@ public: void func_ov110_02185d3c(ItemId itemId); }; +class UnkStruct_027e0ce0_3C { +public: + /* 00 */ VecFx32 mUnk_00; + /* 0C */ STRUCT_PAD(0x0C, 0x98); + /* 98 */ + + UnkStruct_027e0ce0_3C(); + ~UnkStruct_027e0ce0_3C(); + + // overlay 88 + void func_ov088_0216fbc4(unk32 param1, const UnkStruct_ov001_020c40f4 *param2); +}; + class UnkStruct_ov031_020f3310_00 { public: /* 00 */ STRUCT_PAD(0x00, 0x06); @@ -229,11 +373,18 @@ public: /* 274 */ UnkStruct_ov019_020d24c8_28_258_00 mUnk_274; /* 280 */ - UnkStruct_027e0ce0_38(); + UnkStruct_027e0ce0_38(unk32 param1); // data_ov026_0213562c /* 00 */ virtual ~UnkStruct_027e0ce0_38() override; /* 0C */ virtual bool vfunc_0C() override; + + // overlay 26 + void func_ov026_020dc8f0(); + void func_ov026_020de908(UnkStruct_027e0ce0_30_00 *param1); + void func_ov026_020dc918(); + void func_ov026_020dc9b0(); + void func_ov026_020dc9bc(const UnkStruct_ov001_020c40f4 *param1); }; class UnkStruct_027e0ce0_40_Base_14 { @@ -242,7 +393,14 @@ public: /* 22 */ STRUCT_PAD(0x22, 0x60); /* 60 */ - UnkStruct_027e0ce0_40_Base_14(); + UnkStruct_027e0ce0_40_Base_14() : + mTouchControl(false) { + UnkStruct_027e0ce0_40_Base_14 *ptr = this; + ptr->mTouchControl.Init(); + ptr->func_ov000_02096a9c(); + } + + void func_ov000_02096a9c(); }; class UnkStruct_027e0ce0_40_Base_74 { @@ -250,15 +408,20 @@ public: /* 00 */ STRUCT_PAD(0x00, 0x5C); /* 5C */ - UnkStruct_027e0ce0_40_Base_74(); + UnkStruct_027e0ce0_40_Base_74() { + this->func_ov031_020e0c34(); + } + + void func_ov031_020e0c34(); }; class UnkStruct_027e0ce0_40_Base_78 { public: - /* 00 */ STRUCT_PAD(0x00, 0x04); + /* 00 */ unk32 mUnk_00; /* 04 */ UnkStruct_027e0ce0_40_Base_78(); + ~UnkStruct_027e0ce0_40_Base_78(); }; class UnkStruct_027e0ce0_40_Base_7C { @@ -266,12 +429,43 @@ public: /* 00 */ STRUCT_PAD(0x00, 0x18); /* 18 */ - UnkStruct_027e0ce0_40_Base_7C(); + UnkStruct_027e0ce0_40_Base_7C(unk32 param1); + ~UnkStruct_027e0ce0_40_Base_7C(); + + // overlay 0 + void func_ov000_020968e0(); }; -class UnkStruct_027e0ce0_40_Base_94 { +class UnkStruct_027e0ce0_40_Base_94_50_Base { public: - /* 00 */ STRUCT_PAD(0x00, 0x14); + /* 00 */ unk32 mUnk_00; + /* 04 */ unk32 mUnk_04; + /* 08 */ unk32 mUnk_08; + /* 0C */ unk32 mUnk_0C; + /* 10 */ unk32 mUnk_10; + /* 14 */ + + UnkStruct_027e0ce0_40_Base_94_50_Base(unk32 param1, unk32 param2, ActorRefElem *param3, unk32 param4); +}; + +class UnkStruct_027e0ce0_40_Base_94_50 : public UnkStruct_027e0ce0_40_Base_94_50_Base { +public: + /* 00 (base) */ + /* 14 */ ActorRefElem mUnk_14[4]; + /* 24 */ unk32 mUnk_24; + /* 28 */ unk32 mUnk_28; + /* 2C */ unk32 *mUnk_2C; + + UnkStruct_027e0ce0_40_Base_94_50(unk32 param1) : + UnkStruct_027e0ce0_40_Base_94_50_Base(0x01, param1, this->mUnk_14, 0x04), + mUnk_2C(&this->mUnk_24) {} + + ~UnkStruct_027e0ce0_40_Base_94_50() {} +}; + +class UnkStruct_027e0ce0_40_Base_94_Base : public UnkStruct_027e0ce0_40_Base_94_50_Base { +public: + /* 00 (base) */ /* 14 */ ActorRef mUnk_14; /* 18 */ unk32 mUnk_18; /* 1C */ ActorRef mUnk_1C; @@ -279,17 +473,53 @@ public: /* 24 */ STRUCT_PAD(0x24, 0x48); /* 48 */ ActorRef mUnk_48; /* 4C */ unk32 mUnk_4C; - /* 50 */ unk32 mUnk_50; - /* 54 */ unk32 mUnk_54; - /* 58 */ unk32 mUnk_58; + /* 50 */ + + UnkStruct_027e0ce0_40_Base_94_Base(unk32 param1); +}; + +class UnkStruct_027e0ce0_40_Base_94 : public UnkStruct_027e0ce0_40_Base_94_Base { +public: + /* 00 (base) */ + /* 50 */ UnkStruct_027e0ce0_40_Base_94_50 *mUnk_50; + /* 54 */ UnkStruct_027e0ce0_40_Base_94 *mUnk_54; + /* 58 */ UnkStruct_027e0ce0_40_Base_94_50 *mUnk_58; /* 5C */ unk32 mUnk_5C; // seems to be the walking speed of link?? - /* 60 */ unk32 mUnk_60; - /* 64 */ unk32 mUnk_64; - /* 68 */ unk32 mUnk_68; + /* 60 */ unk16 mUnk_60; + /* 62 */ unk16 mUnk_62; + /* 64 */ unk8 mUnk_64; + /* 65 */ unk8 mUnk_65; + /* 66 */ unk8 mUnk_66; + /* 67 */ unk8 mUnk_67; + /* 68 */ unk8 mUnk_68; + /* 69 */ unk8 mUnk_69; + /* 6A */ unk8 mUnk_6A; /* 6C */ unk32 mUnk_6C; /* 70 */ - UnkStruct_027e0ce0_40_Base_94(); + UnkStruct_027e0ce0_40_Base_94(unk32 param1); + ~UnkStruct_027e0ce0_40_Base_94(); + + // overlay 0 + void func_ov000_0208aee4(); +}; + +typedef u16 UnkFlags3; +enum UnkFlags3_ { + UnkFlags3_None = 0, + UnkFlags3_0 = 0, + UnkFlags3_1 = 1, + UnkFlags3_2 = 2, + UnkFlags3_3 = 3, + UnkFlags3_4 = 4, + UnkFlags3_5 = 5, + UnkFlags3_6 = 6, + UnkFlags3_7 = 7, + UnkFlags3_8 = 8, + UnkFlags3_9 = 9, + UnkFlags3_10 = 10, + UnkFlags3_11 = 11, + UnkFlags3_Max = 12, }; class UnkStruct_027e0ce0_40_Base { @@ -304,12 +534,15 @@ public: /* 078 */ UnkStruct_027e0ce0_40_Base_78 *mUnk_078; /* 07C */ UnkStruct_027e0ce0_40_Base_7C mUnk_07C; /* 094 */ UnkStruct_027e0ce0_40_Base_94 mUnk_094; - /* 104 */ unk16 mUnk_104; // set to 0 on idle, set to 3 when pulling out an item + /* 104 */ UnkFlags3 mUnk_104; // set to 0 on idle, set to 3 when pulling out an item /* 106 */ unk8 mUnk_106; /* 107 */ unk8 mUnk_107; /* 108 */ - UnkStruct_027e0ce0_40_Base(unk32 param1, void *param2, ItemManager *param3); + UnkStruct_027e0ce0_40_Base(unk32 param1, void *param2, ItemManager *pItemMgr); + ~UnkStruct_027e0ce0_40_Base(); + + void func_ov001_020bc0e0(bool param1); }; class UnkStruct_027e0ce0_40_108_Base : public LinkList { @@ -378,10 +611,14 @@ public: /* 33B */ unk8 mUnk_33B; /* 33C */ - // param2 is UnkStruct_027e0ce0::mUnk_20 - // param3 is UnkStruct_027e0ce0::mUnk_04 - // param4 is UnkStruct_027e0ce0::mUnk_28 - UnkStruct_027e0ce0_40(unk32 param1, void *param2, void *param3, ItemManager *param4); + UnkStruct_027e0ce0_40(bool param1, UnkStruct_027e0ce0_20 *param2, unk32 **param3, ItemManager *pItemMgr); + ~UnkStruct_027e0ce0_40(); + + // overlay 101 + bool func_ov101_02182fb4(bool param1); + void func_ov101_02183004(); + void func_ov101_02183024(const UnkStruct_ov001_020c40f4 *param1, const UnkStruct_ov001_020c40f4 *param2, unk32 param3, + unk32 param4, ItemManager *pItemMgr, UnkStruct_027e0ce0_30 *param6, bool param7, bool param8); }; union UnkStruct_027e0478 { @@ -391,45 +628,33 @@ union UnkStruct_027e0478 { extern UnkStruct_027e0478 data_027e0478; -class UnkStruct_027e0ce0_3C { +class UnkStruct_027e0ce0_Base { public: - /* 00 */ STRUCT_PAD(0x00, 0x98); - /* 98 */ + /* 00 */ u8 mHealth; + /* 01 */ u8 mHealthMax; + /* 02 */ - UnkStruct_027e0ce0_3C(); -}; - -class UnkStruct_027e0ce0_1C { -public: - /* 00 */ STRUCT_PAD(0x00, 0x0C); - /* 0C */ MapObjectProfile_Derived2_20_Base *mUnk_0C; - - void func_ov001_020bd0a4(bool param1); + UnkStruct_027e0ce0_Base(); }; // PlayerManager? -class UnkStruct_027e0ce0 : public AutoInstance { +class UnkStruct_027e0ce0 : public AutoInstance, public UnkStruct_027e0ce0_Base { public: - /* 00 */ unk8 mHealth; - /* 01 */ unk8 mHealthMax; - /* 02 */ unk8 mUnk_02; - /* 03 */ unk8 mUnk_03; + /* 02 */ bool mUnk_02; + /* 03 */ bool mUnk_03; /* 04 */ unk32 *mUnk_04; - /* 08 */ unk32 *mUnk_08; - /* 0C */ unk32 *mUnk_0C; // vtable - /* 10 */ unk32 *mUnk_10; - /* 14 */ unk32 *mUnk_14; - /* 18 */ unk32 *mUnk_18; + /* 08 */ bool mUnk_08; + /* 0C */ UnkStruct_027e0ce0_0C mUnk_0C; /* 1C */ UnkStruct_027e0ce0_1C *mUnk_1C; - /* 20 */ unk32 *mUnk_20; - /* 24 */ unk32 mUnk_24; - /* 28 */ ItemManager *mUnk_28; - /* 2C */ ItemManager *mUnk_2C; // same as above - /* 30 */ unk32 *mUnk_30; // ? - /* 34 */ UnkStruct_027e0ce0_34 *mUnk_34; - /* 38 */ UnkStruct_027e0ce0_38 *mUnk_38; // pointer to data_027e0478 when on the train + /* 20 */ UnkStruct_027e0ce0_20 *mUnk_20; + /* 24 */ UnkStruct_027e0ce0_24 *mUnk_24; // only for battle mode + /* 28 */ ItemManager *mUnk_28; // only for title screen or adventure mode + /* 2C */ ItemManager *mUnk_2C; // same as above + /* 30 */ UnkStruct_027e0ce0_30 *mUnk_30; + /* 34 */ UnkStruct_027e0ce0_34 *mUnk_34; // only for adventure mode + /* 38 */ UnkStruct_027e0ce0_38 *mUnk_38; // pointer to data_027e0478 when on train /* 3C */ UnkStruct_027e0ce0_3C *mUnk_3C; // cutscene related - /* 40 */ UnkStruct_027e0ce0_40 *mUnk_40; // pointer to data_027e0478 when not on the train + /* 40 */ UnkStruct_027e0ce0_40 *mUnk_40; // pointer to data_027e0478 when on land /* 44 */ UnkStruct_027e0ce0(); @@ -441,19 +666,19 @@ public: bool func_01fff1e0(); // overlay 0 + void func_ov000_0208a218(InvImportData *pInvData); + void func_ov000_0208a2c4(unk32 param1, unk32 param2); void func_ov000_0208a318(unk32 param1, unk32 param2, unk32 param3); void func_ov000_0208bbd4(unk32 param1, VecFx32 *param2, u16 param3); - - void func_ov000_0208bbd4(unk32 param1, VecFx32 *param2, void *param3); bool func_ov000_0208bc1c(unk32 param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5, unk32 param6); void func_ov000_0208bc9c(unk32 param1, unk32 param2); void func_ov000_0208bd30(bool param1, unk32 param2, unk32 param3, unk32 param4); - G3d_Model *func_ov000_0208ed30(unk32 param1, unk32 param2, char *param3); static UnkStruct_027e0ce0_34 *func_ov000_0205c904(); // overlay 1 + void func_ov001_020bc4d8(InvImportData *pInvData, unk32 param2, unk32 param3); void func_ov001_020bc524(bool param1); void func_ov001_020bc5f8(); void func_ov001_020bc65c(); diff --git a/include/input.hpp b/include/input.hpp index c97f0b63..afc4ba9c 100644 --- a/include/input.hpp +++ b/include/input.hpp @@ -12,7 +12,11 @@ struct Input { /* 04 */ u16 release; /* 06 */ - Input(); + Input() { + this->Init(); + } + + void Init(); unk32 func_02013c08(u16 param1); unk32 func_02013b24(unk32 param1); unk32 func_02013bbc(); diff --git a/src/001_SceneInit/Actor/ActorManager_001.cpp b/src/001_SceneInit/Actor/ActorManager_001.cpp index 5678ae08..bebd876a 100644 --- a/src/001_SceneInit/Actor/ActorManager_001.cpp +++ b/src/001_SceneInit/Actor/ActorManager_001.cpp @@ -94,7 +94,7 @@ void ActorManager::func_ov001_020bb018(ZOBHeader *pHeader) { int iVar5 = data_027e09a0->func_ov000_020702a8(data_027e09a4->CurrentSceneIndex())->mUnk_20; s32 allocCount; - if (data_027e09a4->mUnk_60 == 0) { + if (data_027e09a4->IsSceneModeAdventure()) { allocCount = aligned0A + 0x40; } else { allocCount = aligned0A + 0x80; @@ -111,8 +111,7 @@ void ActorManager::func_ov001_020bb018(ZOBHeader *pHeader) { this->mUnk_08 = this->mActorTable; data_0204999c.func_ov001_020ba588(aligned08 + iVar5, 0x100); - // it's 2 when we are on the title screen and 0 during normal gameplay, is it the game mode ? - if (data_027e09a4->mUnk_60 != 2) { + if (!data_027e09a4->IsSceneModeTitleScreen()) { if (data_027e09a4->IsLand() != 0) { unk32 iVar5 = data_027e09a4->CurrentSceneIndex(); OverlayManager *pMgr; @@ -200,7 +199,7 @@ void ActorManager::func_ov001_020bb018(ZOBHeader *pHeader) { } // 1 for battle mode - if (data_027e09a4->mUnk_60 == 1) { + if (data_027e09a4->IsSceneModeBattle()) { func_ov021_020f8818(); } } @@ -236,7 +235,7 @@ void ActorManager::func_ov001_020bb488() { } } - if (data_027e09a4->mUnk_60 == 1) { + if (data_027e09a4->IsSceneModeBattle()) { data_027e0cf4->func_ov021_020f8cdc(); } @@ -269,7 +268,7 @@ void ActorManager::func_ov001_020bb548() { } } - if (data_027e09a4->mUnk_60 == 1) { + if (data_027e09a4->IsSceneModeBattle()) { ActorManager::func_ov001_020bb824(); } } @@ -301,7 +300,7 @@ void ActorManager::func_ov001_020bb630() { piVar3 = data_ov000_020b539c_eur.func_ov000_02073e8(); } - if (data_027e09a4->mUnk_60 == 1) { + if (data_027e09a4->IsSceneModeBattle()) { data_027e0cf4->func_ov021_020f8d20(); } } diff --git a/src/001_SceneInit/Item/Inventory_001.cpp b/src/001_SceneInit/Item/Inventory_001.cpp new file mode 100644 index 00000000..f9f45a90 --- /dev/null +++ b/src/001_SceneInit/Item/Inventory_001.cpp @@ -0,0 +1,141 @@ +#include "Actor/ActorManager.hpp" +#include "Item/ItemManager.hpp" +#include "Save/SaveManager.hpp" +#include "System/OverlayManager.hpp" +#include "Unknown/UnkStruct_027e09a0.hpp" +#include "Unknown/UnkStruct_027e09a4.hpp" + +#include + +extern unk32 data_ov000_020b3000; + +Inventory::Inventory() { + this->mEquippedItem = ItemFlag_None; + this->mForcedItem = ItemFlag_None; + MI_CpuFill32(0, this->mFlags, sizeof(this->mFlags)); + this->mNumRupees = 0; + this->mUnk_12 = 0; + this->mItemRestrictions = 0; + this->mTearsAmount = 0; + this->mKeyAmount = 0; + this->mQuiverCapacity = 0; + this->mBombBagCapacity = 0; + this->mArrowAmount = 0; + this->mBombAmount = 0; + + for (u32 i = 0; i < ARRAY_LEN(this->mPotions); i++) { + this->mPotions[i] = 0; + } +} + +Inventory::~Inventory() {} + +void Inventory::func_ov001_020bb8bc(const InvImportData *pSrc) { + this->mEquippedItem = pSrc->equippedItem; + + MI_CpuCopy32((void *) &pSrc->flags, this->mFlags, sizeof(this->mFlags)); + + this->mNumRupees = pSrc->numRupees; + vu16 stack_unused = pSrc->unk_0E; + this->mUnk_12 = pSrc->unk_0E; + + this->mQuiverCapacity = pSrc->quiverCapacity; + this->mBombBagCapacity = pSrc->bombBagCapacity; + this->mArrowAmount = pSrc->arrowAmount; + this->mBombAmount = pSrc->bombsAmount; + this->mPotions[0] = pSrc->potion1; + this->mPotions[1] = pSrc->potion2; + + if ((s32) this->mEquippedItem < ItemFlag_None) { + this->mEquippedItem = ItemFlag_None; + } + + if ((s32) this->mEquippedItem > ItemFlag_SandRod) { + this->mEquippedItem = ItemFlag_SandRod; + } + + if ((s32) this->mEquippedItem != ItemFlag_None) { + if (!GET_FLAG(this->mFlags, this->mEquippedItem)) { + this->mEquippedItem = ItemFlag_None; + } + } + + if (this->mEquippedItem == ItemFlag_None) { + for (u32 i = 0; i < ItemFlag_EQUIP_COUNT; i++) { + if (GET_FLAG(this->mFlags, i)) { + this->mEquippedItem = i; + break; + } + } + } + + if (this->mNumRupees > MAX_RUPEES) { + this->mNumRupees = MAX_RUPEES; + } + + if ((*(vu16 *) &this->mUnk_12 & 0x01) && !GET_FLAG(this->mFlags, ItemFlag_RecruitUniform)) { + this->mUnk_12 &= ~0x01; + } + + if ((*(vu16 *) &this->mUnk_12 & 0x02) && !GET_FLAG(this->mFlags, ItemFlag_AncientShield)) { + this->mUnk_12 &= ~0x02; + } + + if (this->mQuiverCapacity > UpgradeCapacity_Tier3) { + this->mQuiverCapacity = UpgradeCapacity_Tier3; + } + + if (this->mBombBagCapacity > UpgradeCapacity_Tier3) { + this->mBombBagCapacity = UpgradeCapacity_Tier3; + } + + if (this->mArrowAmount > this->GetQuiverCapacity()) { + this->mArrowAmount = this->GetQuiverCapacity(); + } + + if (this->mBombAmount > this->GetBombBagCapacity()) { + this->mBombAmount = this->GetBombBagCapacity(); + } +} + +void Inventory::func_ov001_020bb9f8() { + if (data_027e09a4->IsNotCutscene() && gOverlayManager.mLoadedOverlays[OverlaySlot_10] != OverlayIndex_PlayerPhantom) { + this->mTearsAmount = 0; + } + + CourseListEntry *pEntry = data_027e09a0->GetCourseEntry(data_027e09a4->CurrentSceneIndex()); + + if (pEntry->saveCourseIndex < SaveCourseIndex_Max) { + this->mKeyAmount = gSaveManager.mUnk_000->unk_030[pEntry->saveCourseIndex].keyAmount; + } else { + this->mKeyAmount = 0; + } + + if (this->mKeyAmount > MAX_KEYS) { + this->mKeyAmount = MAX_KEYS; + } +} + +void Inventory::func_ov001_020bba54() { + this->mItemRestrictions = 0; + + if (gOverlayManager.IsPlayerZelda()) { + this->func_ov096_02179b20(); + } +} + +void Inventory::func_ov001_020bba6c() { + struct { + void *ptr; + unk32 actorId; + } uStack_18; + uStack_18.ptr = &data_ov000_020b3000; + uStack_18.actorId = ActorId_SZKU; + + Actor **ppActor = gpActorManager->func_01fff350(&uStack_18, gpActorManager->mActorTable); + while (ppActor != gpActorManager->mUnk_08) { + UNSET_FLAG((*ppActor)->mFlags, ActorFlag_Alive); + (*ppActor)->func_ov000_020984f0(); + ppActor = gpActorManager->func_01fff350(&uStack_18, ppActor + 1); + } +} diff --git a/src/001_SceneInit/Item/ItemManager_001.cpp b/src/001_SceneInit/Item/ItemManager_001.cpp index f9f45a90..1b9fc4bf 100644 --- a/src/001_SceneInit/Item/ItemManager_001.cpp +++ b/src/001_SceneInit/Item/ItemManager_001.cpp @@ -1,141 +1,36 @@ -#include "Actor/ActorManager.hpp" #include "Item/ItemManager.hpp" -#include "Save/SaveManager.hpp" -#include "System/OverlayManager.hpp" -#include "Unknown/UnkStruct_027e09a0.hpp" #include "Unknown/UnkStruct_027e09a4.hpp" -#include +ItemManager::ItemManager() : + mUnk_20(NULL), + mUnk_24(0) {} -extern unk32 data_ov000_020b3000; +void ItemManager::func_ov001_020bc24c() { + this->mInventory.func_ov001_020bb9f8(); -Inventory::Inventory() { - this->mEquippedItem = ItemFlag_None; - this->mForcedItem = ItemFlag_None; - MI_CpuFill32(0, this->mFlags, sizeof(this->mFlags)); - this->mNumRupees = 0; - this->mUnk_12 = 0; - this->mItemRestrictions = 0; - this->mTearsAmount = 0; - this->mKeyAmount = 0; - this->mQuiverCapacity = 0; - this->mBombBagCapacity = 0; - this->mArrowAmount = 0; - this->mBombAmount = 0; - - for (u32 i = 0; i < ARRAY_LEN(this->mPotions); i++) { - this->mPotions[i] = 0; + if (!data_027e09a4->IsTrain()) { + this->mUnk_20 = new(HeapIndex_1) UnkStruct_ItemManager_20(); } } -Inventory::~Inventory() {} - -void Inventory::func_ov001_020bb8bc(const InvImportData *pSrc) { - this->mEquippedItem = pSrc->equippedItem; - - MI_CpuCopy32((void *) &pSrc->flags, this->mFlags, sizeof(this->mFlags)); - - this->mNumRupees = pSrc->numRupees; - vu16 stack_unused = pSrc->unk_0E; - this->mUnk_12 = pSrc->unk_0E; - - this->mQuiverCapacity = pSrc->quiverCapacity; - this->mBombBagCapacity = pSrc->bombBagCapacity; - this->mArrowAmount = pSrc->arrowAmount; - this->mBombAmount = pSrc->bombsAmount; - this->mPotions[0] = pSrc->potion1; - this->mPotions[1] = pSrc->potion2; - - if ((s32) this->mEquippedItem < ItemFlag_None) { - this->mEquippedItem = ItemFlag_None; - } - - if ((s32) this->mEquippedItem > ItemFlag_SandRod) { - this->mEquippedItem = ItemFlag_SandRod; - } - - if ((s32) this->mEquippedItem != ItemFlag_None) { - if (!GET_FLAG(this->mFlags, this->mEquippedItem)) { - this->mEquippedItem = ItemFlag_None; - } - } - - if (this->mEquippedItem == ItemFlag_None) { - for (u32 i = 0; i < ItemFlag_EQUIP_COUNT; i++) { - if (GET_FLAG(this->mFlags, i)) { - this->mEquippedItem = i; - break; - } - } - } - - if (this->mNumRupees > MAX_RUPEES) { - this->mNumRupees = MAX_RUPEES; - } - - if ((*(vu16 *) &this->mUnk_12 & 0x01) && !GET_FLAG(this->mFlags, ItemFlag_RecruitUniform)) { - this->mUnk_12 &= ~0x01; - } - - if ((*(vu16 *) &this->mUnk_12 & 0x02) && !GET_FLAG(this->mFlags, ItemFlag_AncientShield)) { - this->mUnk_12 &= ~0x02; - } - - if (this->mQuiverCapacity > UpgradeCapacity_Tier3) { - this->mQuiverCapacity = UpgradeCapacity_Tier3; - } - - if (this->mBombBagCapacity > UpgradeCapacity_Tier3) { - this->mBombBagCapacity = UpgradeCapacity_Tier3; - } - - if (this->mArrowAmount > this->GetQuiverCapacity()) { - this->mArrowAmount = this->GetQuiverCapacity(); - } - - if (this->mBombAmount > this->GetBombBagCapacity()) { - this->mBombAmount = this->GetBombBagCapacity(); +void ItemManager::func_ov001_020bc27c() { + if (this->mUnk_20 != NULL) { + DELETE(this->mUnk_20); } } -void Inventory::func_ov001_020bb9f8() { - if (data_027e09a4->IsNotCutscene() && gOverlayManager.mLoadedOverlays[OverlaySlot_10] != OverlayIndex_PlayerPhantom) { - this->mTearsAmount = 0; +void ItemManager::func_ov001_020bc29c() { + this->mInventory.func_ov001_020bba54(); + + if (this->mUnk_20 != NULL) { + this->mUnk_20->func_ov101_02182d5c(); } - CourseListEntry *pEntry = data_027e09a0->GetCourseEntry(data_027e09a4->CurrentSceneIndex()); - - if (pEntry->saveCourseIndex < SaveCourseIndex_Max) { - this->mKeyAmount = gSaveManager.mUnk_000->unk_030[pEntry->saveCourseIndex].keyAmount; - } else { - this->mKeyAmount = 0; - } - - if (this->mKeyAmount > MAX_KEYS) { - this->mKeyAmount = MAX_KEYS; - } + this->mUnk_24 = 0; } -void Inventory::func_ov001_020bba54() { - this->mItemRestrictions = 0; - - if (gOverlayManager.IsPlayerZelda()) { - this->func_ov096_02179b20(); - } -} - -void Inventory::func_ov001_020bba6c() { - struct { - void *ptr; - unk32 actorId; - } uStack_18; - uStack_18.ptr = &data_ov000_020b3000; - uStack_18.actorId = ActorId_SZKU; - - Actor **ppActor = gpActorManager->func_01fff350(&uStack_18, gpActorManager->mActorTable); - while (ppActor != gpActorManager->mUnk_08) { - UNSET_FLAG((*ppActor)->mFlags, ActorFlag_Alive); - (*ppActor)->func_ov000_020984f0(); - ppActor = gpActorManager->func_01fff350(&uStack_18, ppActor + 1); +void ItemManager::func_ov001_020bc2b8() { + if (this->mUnk_20 != NULL) { + this->mUnk_20->mUnk_14.func_ov031_020db7d8(); } } diff --git a/src/001_SceneInit/Player/PlayerActorBase_70_001.cpp b/src/001_SceneInit/Player/PlayerActorBase_70_001.cpp index aa620878..014adc73 100644 --- a/src/001_SceneInit/Player/PlayerActorBase_70_001.cpp +++ b/src/001_SceneInit/Player/PlayerActorBase_70_001.cpp @@ -7,7 +7,7 @@ extern "C" void *func_ov000_0208ea70(PlayerCharacter, unk32, bool); // returns p extern unk16 data_ov000_020ab314; ModelRender_UnkSystem1 *func_ov001_020bbac4(BOOL isNotLink, G3d_Model *pModel, unk32 param3, bool param4) { - if (param4 && data_027e09a4->mUnk_60 == 1) { + if (param4 && data_027e09a4->IsSceneModeBattle()) { return NULL; } diff --git a/src/001_SceneInit/Player/PlayerLinkActor_001.cpp b/src/001_SceneInit/Player/PlayerLinkActor_001.cpp index d65515d9..a25cc9de 100644 --- a/src/001_SceneInit/Player/PlayerLinkActor_001.cpp +++ b/src/001_SceneInit/Player/PlayerLinkActor_001.cpp @@ -36,7 +36,7 @@ PlayerLinkActor::PlayerLinkActor(unk32 param1, unk32 param2, UnkStruct_027e0ce0_ } PlayerLinkActor::~PlayerLinkActor() { - if (data_027e09a4->mUnk_60 == 0) { + if (data_027e09a4->IsSceneModeAdventure()) { UnkStruct_027e0d34::Destroy(); } diff --git a/src/001_SceneInit/SceneInitializers_001.cpp b/src/001_SceneInit/SceneInitializers_001.cpp index 3c4a4e65..b63425af 100644 --- a/src/001_SceneInit/SceneInitializers_001.cpp +++ b/src/001_SceneInit/SceneInitializers_001.cpp @@ -65,14 +65,14 @@ UnkStruct_027e09a4 *UnkStruct_027e09a4::Create(unk32 param1) { return new(HeapIndex_1) UnkStruct_027e09a4(param1); } -UnkStruct_027e09a4::UnkStruct_027e09a4(unk32 param1) : +UnkStruct_027e09a4::UnkStruct_027e09a4(SceneMode mode) : mUnk_00(false), mUnk_14(false) { this->mUnk_28 = 0; this->mUnk_54 = NULL; this->mpWarpUnk1 = NULL; this->mUnk_5C = 0; - this->mUnk_60 = param1; + this->mSceneMode = mode; this->mUnk_64 = 0; UnkStruct_027e09a0::Create(); @@ -88,7 +88,7 @@ UnkStruct_027e09a4::UnkStruct_027e09a4(unk32 param1) : UnkStruct_027e0954::Create(); UnkStruct_027e0958::Create(); - if (this->mUnk_60 == 0) { + if (this->IsSceneModeAdventure()) { MiscAdvManager::Create(); } @@ -124,7 +124,7 @@ void UnkStruct_027e09a4::func_ov001_020b66dc() { TreasureManager::Destroy(); - if (this->mUnk_60 == 0) { + if (this->IsSceneModeAdventure()) { MiscAdvManager::Destroy(); } @@ -448,7 +448,7 @@ void UnkStruct_027e09a4_54_Base::func_ov001_020b6fa0(CourseListEntry *pCourseEnt if (this->mUnk_1C.isCS == true) { data_0204a110.func_02018d78(Cutscene_GetParamEntry(this->mUnk_1C.csIndex)->mUnk_14); } else { - if (data_027e09a4->mUnk_60 == 0) { + if (data_027e09a4->IsSceneModeAdventure()) { if (data_027e09a4->IsDarkRealm()) { GetAdventureModeManager()->func_ov024_020c555c(2); } else { diff --git a/src/001_SceneInit/SysNew_001.cpp b/src/001_SceneInit/SysNew_001.cpp index c9859bc2..2f460be0 100644 --- a/src/001_SceneInit/SysNew_001.cpp +++ b/src/001_SceneInit/SysNew_001.cpp @@ -29,7 +29,7 @@ void UnkStruct_02011e10::func_ov001_020ba5c0() { } void UnkStruct_02011e10::func_ov001_020ba5d0() { - size_t size = data_027e09a4->mUnk_60 == 2 ? 0xBB800 : 0x6A400; + size_t size = data_027e09a4->IsSceneModeTitleScreen() ? 0xBB800 : 0x6A400; this->mUnk_64 = ::operator new(size, HeapIndex_1); this->mUnk_00[HeapIndex_DTCM] = func_02001098(this->mUnk_64, size, 0x02); } diff --git a/src/001_SceneInit/UnkStruct_027e09bc_001.cpp b/src/001_SceneInit/UnkStruct_027e09bc_001.cpp index c8c07919..7e2625c6 100644 --- a/src/001_SceneInit/UnkStruct_027e09bc_001.cpp +++ b/src/001_SceneInit/UnkStruct_027e09bc_001.cpp @@ -17,12 +17,12 @@ UnkStruct_027e09bc::UnkStruct_027e09bc() { this->mUnk_14[2] = NULL; this->mUnk_14[3] = NULL; - if (data_027e09a4->mUnk_60 == 0) { + if (data_027e09a4->IsSceneModeAdventure()) { this->mUnk_0C = new(HeapIndex_1) UnkStruct_027e09bc_0C(0); this->mUnk_10 = new(HeapIndex_1) UnkStruct_027e09bc_0C(1); this->func_ov000_020771b8(0x00); this->func_ov000_020771b8(0x01); - } else if (data_027e09a4->mUnk_60 == 1) { + } else if (data_027e09a4->IsSceneModeBattle()) { this->mUnk_14[0] = new(HeapIndex_1) UnkStruct_027e09bc_0C(0); this->mUnk_14[1] = new(HeapIndex_1) UnkStruct_027e09bc_0C(1); this->mUnk_14[2] = new(HeapIndex_1) UnkStruct_027e09bc_0C(2); @@ -60,7 +60,7 @@ void UnkStruct_027e09bc::func_ov001_020bab5c() { data_027e09bc->mUnk_10->mUnk_264 = 0x00; break; default: - if (data_027e09a4->mUnk_60 == 0) { + if (data_027e09a4->IsSceneModeAdventure()) { data_027e09bc->mUnk_10->func_ov000_02078cec(); } break; @@ -68,21 +68,21 @@ void UnkStruct_027e09bc::func_ov001_020bab5c() { } void UnkStruct_027e09bc::func_ov001_020babc8() { - if (data_027e09a4->mUnk_60 == 0) { + if (data_027e09a4->IsSceneModeAdventure()) { this->mUnk_0C->func_ov000_02078ba4(); this->mUnk_10->func_ov000_02078ba4(); } } void UnkStruct_027e09bc::func_ov001_020babe8() { - if (data_027e09a4->mUnk_60 == 0) { + if (data_027e09a4->IsSceneModeAdventure()) { this->mUnk_0C->mUnk_280 = 0; this->mUnk_10->mUnk_280 = 0; } } void UnkStruct_027e09bc::func_ov001_020bac08() { - if (data_027e09a4->mUnk_60 == 0) { + if (data_027e09a4->IsSceneModeAdventure()) { this->mUnk_0C->mUnk_280 = 0; this->mUnk_10->mUnk_280 = 0; } diff --git a/src/001_SceneInit/UnkStruct_027e0cd8_001.cpp b/src/001_SceneInit/UnkStruct_027e0cd8_001.cpp index 581d1c47..49280a1b 100644 --- a/src/001_SceneInit/UnkStruct_027e0cd8_001.cpp +++ b/src/001_SceneInit/UnkStruct_027e0cd8_001.cpp @@ -111,7 +111,7 @@ void UnkStruct_027e0cd8::func_ov001_020b7830(const EntranceInfo *param1) { if (this->mUnk_14 == 0x02 || this->mUnk_14 == 0x04) { this->mUnk_10 = new(HeapIndex_1) UnkStruct_027e0cd8_10(); func_ov026_020e9208(); - } else if (data_027e09a4->mUnk_60 == 0 && data_ov024_020d8694 != NULL) { + } else if (data_027e09a4->IsSceneModeAdventure() && data_ov024_020d8694 != NULL) { if (data_027e09a4->CurrentSceneIndex() == SceneIndex_d_main) { data_ov024_020d8694->func_ov024_020cb000(20); } else { @@ -160,7 +160,7 @@ void UnkStruct_027e0cd8::func_ov001_020b7a7c() { this->func_ov001_020b7e50(); this->mUnk_30 = -1; - if (data_027e09a4->mUnk_60 == 0) { + if (data_027e09a4->IsSceneModeAdventure()) { this->func_ov000_02081ca0(); } @@ -267,7 +267,7 @@ void UnkStruct_027e0cd8::func_ov001_020b7c08(const EntranceInfo *param1, const U this->func_ov001_020b7d64(&sceneChange); this->func_ov001_020b7e68(&sceneChange, 0x00); - if (data_027e09a4->mUnk_60 == 0 && data_ov024_020d8694 != NULL) { + if (data_027e09a4->IsSceneModeAdventure() && data_ov024_020d8694 != NULL) { if (data_027e09a4->CurrentSceneIndex() == SceneIndex_f_first && this->func_ov000_02081d5c() == 0) { data_ov024_020d8694->func_ov024_020cafd8(20); } else { @@ -348,13 +348,13 @@ void UnkStruct_027e0cd8::func_ov001_020b7e68(const EntranceInfo *param1, bool pa gpMapObjManager->func_ov001_020bada0(); data_0204a110.func_ov001_020bd678(); - if (data_027e09a4->mUnk_60 == 0) { + if (data_027e09a4->IsSceneModeAdventure()) { data_ov024_020d8660->func_ov024_020c4ba0(); } unk32 unk_10 = data_027e09a0->GetCourseEntry(param1->sceneIndex)->unk_10; - if (data_027e09a4->mUnk_60 == 1) { + if (data_027e09a4->IsSceneModeBattle()) { for (int i = 0; i < 4; i++) { UnkStruct_027e0ce0 *ptr = data_027e0ce0; const UnkStruct_ov001_020c40f4 *arg = this->mUnk_0C->func_ov001_020b8a5c(i, 0x00); @@ -387,7 +387,7 @@ void UnkStruct_027e0cd8::func_ov001_020b7e68(const EntranceInfo *param1, bool pa gpMapObjManager->func_ov001_020bac9c(); gpActorManager->func_ov001_020bafdc(); - if (data_027e09a4->mUnk_60 == 0) { + if (data_027e09a4->IsSceneModeAdventure()) { SaveManager_00 *ptr = gSaveManager.mUnk_000; u16 auStack_18[2]; data_027e09a0->func_ov000_02070310(param1->sceneIndex, param1->roomIndex, &auStack_18); @@ -401,7 +401,7 @@ void UnkStruct_027e0cd8::func_ov001_020b7e68(const EntranceInfo *param1, bool pa void UnkStruct_027e0cd8::func_ov001_020b803c() { this->mUnk_0C->vfunc_20(); - if (data_027e09a4->mUnk_60 == 0 && data_ov024_020d8660 != NULL) { + if (data_027e09a4->IsSceneModeAdventure() && data_ov024_020d8660 != NULL) { data_ov024_020d8660->func_ov024_020c4cc8(); } diff --git a/src/001_SceneInit/UnkStruct_027e0ce0_001.cpp b/src/001_SceneInit/UnkStruct_027e0ce0_001.cpp index e69de29b..8f2c1b3e 100644 --- a/src/001_SceneInit/UnkStruct_027e0ce0_001.cpp +++ b/src/001_SceneInit/UnkStruct_027e0ce0_001.cpp @@ -0,0 +1,223 @@ +#include "System/OverlayManager.hpp" +#include "Unknown/UnkStruct_027e09bc.hpp" +#include "Unknown/UnkStruct_027e0cdc.hpp" +#include "Unknown/UnkStruct_027e0ce0.hpp" + +UnkStruct_027e0ce0_40_Base_94::UnkStruct_027e0ce0_40_Base_94(unk32 param1) : + UnkStruct_027e0ce0_40_Base_94_Base(param1) { + bool var_r0; + + if (param1 == -1) { + var_r0 = true; + } else { + var_r0 = false; + } + + if (var_r0) { + if (gOverlayManager.IsPlayerSub()) { + var_r0 = true; + } else { + var_r0 = false; + } + } + + this->mUnk_50 = var_r0 ? new(HeapIndex_1) UnkStruct_027e0ce0_40_Base_94_50(param1) : NULL; + this->mUnk_54 = this; + this->mUnk_58 = this->mUnk_50; +} + +UnkStruct_027e0ce0_40_Base_94::~UnkStruct_027e0ce0_40_Base_94() { + delete this->mUnk_50; +} + +UnkStruct_027e0ce0 *UnkStruct_027e0ce0::Create() { + return new(HeapIndex_1) UnkStruct_027e0ce0(); +} + +UnkStruct_027e0ce0::UnkStruct_027e0ce0() : + mUnk_02(false), + mUnk_03(false), + mUnk_04(NULL), + mUnk_08(false), + mUnk_0C(this), + mUnk_1C(new(HeapIndex_1) UnkStruct_027e0ce0_1C()), + mUnk_20(new(HeapIndex_1) UnkStruct_027e0ce0_20()), + mUnk_24(data_027e09a4->IsSceneModeBattle() ? new(HeapIndex_1) UnkStruct_027e0ce0_24() : NULL), + mUnk_28(data_027e09a4->IsSceneAdvOrTitle() ? new(HeapIndex_1) ItemManager() : NULL), + mUnk_2C(this->mUnk_28), + mUnk_30(new(HeapIndex_1) UnkStruct_027e0ce0_30()), + mUnk_34(data_027e09a4->IsSceneModeAdventure() ? new(HeapIndex_1) UnkStruct_027e0ce0_34() : NULL), + mUnk_38(NULL), + mUnk_3C(NULL), + mUnk_40(NULL) { + UnkStruct_027e0cdc::Create(this->mUnk_30); +} + +UnkStruct_027e0ce0::~UnkStruct_027e0ce0() { + UnkStruct_027e0cdc::Destroy(); + delete this->mUnk_34; + delete this->mUnk_30; + delete this->mUnk_28; + delete this->mUnk_24; + delete this->mUnk_20; + delete this->mUnk_1C; +} + +void UnkStruct_027e0ce0::func_ov001_020bc4d8(InvImportData *pInvData, unk32 param2, unk32 param3) { + UnkStruct_027e09bc *ptr = data_027e09bc; + UnkStruct_027e0ce0_0C *pList = GetLinkListRef(this->mUnk_0C); + ptr->mUnk_48.Prepend(pList); + + if (this->mUnk_28 != NULL) { + this->mUnk_28->GetInventory()->func_ov001_020bb8bc(pInvData); + } + + if (this->mUnk_34 != NULL) { + this->mUnk_34->func_ov001_020bf22c(param2, param3); + } + + if (this->mUnk_24 == NULL) { + this->func_ov000_0208a218(pInvData); + } +} + +void UnkStruct_027e0ce0::func_ov001_020bc524(bool param1) { + this->mUnk_02 = false; + + this->mUnk_1C->func_ov001_020bccec(); + + if (this->mUnk_28 != NULL) { + this->mUnk_28->func_ov001_020bc24c(); + } + + if (this->mUnk_34 != NULL) { + this->mUnk_34->func_ov001_020bf2b8(param1); + } + + UnkStruct_027e0ce0_40 *uVar3 = NULL; + + if (this->mUnk_24 != NULL) { + this->mUnk_24->func_ov021_020eaa08(this->mUnk_20); + } else { + if (data_027e09a4->IsTrain()) { + this->mUnk_03 = false; + this->mUnk_04 = NULL; + this->mUnk_38 = &data_027e0478.train; + new(this->mUnk_38) UnkStruct_027e0ce0_38(0); + this->mUnk_38->func_ov026_020dc8f0(); + } else { + if (param1) { + if (this->mHealth == 0) { + this->func_ov000_0208a2c4(0x0C, 0); + } + + this->mUnk_04 = NULL; + } else if (this->mHealth == 0) { + this->func_ov000_0208a2c4(0x01, 0); + } + + if (data_027e09a4->IsCutscene()) { + this->mUnk_3C = new(HeapIndex_1) UnkStruct_027e0ce0_3C(); + } else { + this->mUnk_40 = &data_027e0478.land; + new(this->mUnk_40) UnkStruct_027e0ce0_40(param1, this->mUnk_20, &this->mUnk_04, this->mUnk_28); + uVar3 = this->mUnk_40; + } + } + } + + data_027e0cdc->mUnk_04 = uVar3; +} + +void UnkStruct_027e0ce0::func_ov001_020bc5f8() { + if (this->mUnk_24 != NULL) { + this->mUnk_24->func_ov021_020eaac4(); + } else { + if (this->mUnk_38 != NULL) { + this->mUnk_38->~UnkStruct_027e0ce0_38(); + this->mUnk_38 = NULL; + } else { + if (this->mUnk_3C != NULL) { + DELETE(this->mUnk_3C); + } else { + this->mUnk_40->~UnkStruct_027e0ce0_40(); + this->mUnk_40 = NULL; + } + } + } + + if (this->mUnk_34 != NULL) { + this->mUnk_34->func_ov001_020bf378(); + } + + if (this->mUnk_28 != NULL) { + this->mUnk_28->func_ov001_020bc27c(); + } + + this->mUnk_1C->func_ov001_020bcfec(); +} + +void UnkStruct_027e0ce0::func_ov001_020bc65c() { + this->mUnk_02 = false; + + if (this->mUnk_28 != NULL) { + this->mUnk_28->func_ov001_020bc29c(); + } + + if (this->mUnk_34 != NULL) { + this->mUnk_34->func_ov001_020bf3bc(); + } + + if (this->mUnk_24 == NULL) { + if (this->mUnk_38 != NULL) { + this->mUnk_38->func_ov026_020dc918(); + } else if (this->mUnk_3C == NULL) { + this->mUnk_03 = this->mUnk_40->func_ov101_02182fb4(this->mUnk_03); + } + } +} + +void UnkStruct_027e0ce0::func_ov001_020bc69c() { + this->mUnk_30->func_ov001_020bbfcc(); + + if (this->mUnk_38 != NULL) { + this->mUnk_38->func_ov026_020dc9b0(); + } else if (this->mUnk_40 != NULL) { + this->mUnk_40->func_ov101_02183004(); + } + + if (this->mUnk_34 != NULL) { + this->mUnk_34->func_ov001_020bf3cc(); + } + + if (this->mUnk_28 != NULL) { + this->mUnk_28->func_ov001_020bc2b8(); + } + + this->mUnk_1C->func_ov001_020bd1ec(); +} + +void UnkStruct_027e0ce0::func_ov001_020bc6d8(unk32 param1, const UnkStruct_ov001_020c40f4 *param2) { + this->mUnk_24->func_ov021_020eab14(param1, param2, this->mUnk_30); +} + +void UnkStruct_027e0ce0::func_ov001_020bc6e8(const UnkStruct_ov001_020c40f4 *param1) { + this->mUnk_38->func_ov026_020dc9bc(param1); + this->mUnk_30->func_ov001_020bbf24(this->mUnk_38); +} + +void UnkStruct_027e0ce0::func_ov001_020bc6fc(const UnkStruct_ov001_020c40f4 *param1, const UnkStruct_ov001_020c40f4 *param2, + unk32 param3, unk32 param4) { + if (this->mUnk_3C != NULL) { + this->mUnk_3C->func_ov088_0216fbc4(0x00, param1); + this->mUnk_3C->func_ov088_0216fbc4(param3, param2); + this->mUnk_30->func_ov001_020bbf50(this->mUnk_3C); + } else { + int dummy; + this->mUnk_40->func_ov101_02183024(param1, param2, param3, param4, this->mUnk_28, this->mUnk_30, this->mUnk_03, + this->mUnk_08); + this->mUnk_08 = false; + } +} + +DECL_INSTANCE(UnkStruct_027e0ce0, data_027e0ce0); diff --git a/src/001_SceneInit/UnkStruct_027e0ce0_30_001.cpp b/src/001_SceneInit/UnkStruct_027e0ce0_30_001.cpp index e69de29b..edb2ff04 100644 --- a/src/001_SceneInit/UnkStruct_027e0ce0_30_001.cpp +++ b/src/001_SceneInit/UnkStruct_027e0ce0_30_001.cpp @@ -0,0 +1,92 @@ +#include "System/OverlayManager.hpp" +#include "Unknown/UnkStruct_027e0ce0.hpp" + +#include + +extern "C" void func_ov000_0208dd60(void *, UnkStruct_027e0ce0_30_00 *); + +extern fx32 data_ov000_020afd14; + +UnkStruct_027e0ce0_30_00::UnkStruct_027e0ce0_30_00(UnkStruct_027e0ce0_38 *param1, UnkStruct_027e0ce0_3C *param2, unk32 param3, + unk32 *param4, unk32 param5) { + this->mUnk_00.x = 0; + this->mUnk_00.y = 0; + this->mUnk_00.z = 0; + + this->mUnk_0C.x = 0; + this->mUnk_0C.y = 0; + this->mUnk_0C.z = 0; + + this->mUnk_18 = 0; + this->mUnk_1C = 0; + this->mUnk_20 = 0; + this->mUnk_24 = 0; + this->mUnk_28 = false; + this->mUnk_2C = param1; + this->mUnk_30 = param2; + this->mUnk_34 = param3; + this->mUnk_38 = param4; + this->mUnk_3C = param5; + + if (param1 != NULL) { + param1->func_ov026_020de908(this); + this->mUnk_18 = 0x10; + } else { + if (param2 != NULL) { + VecFx32_Copy(¶m2->mUnk_00, &this->mUnk_00); + } else { + //! TODO: fake match + func_ov000_0208dd60(*(unk32 *volatile *) ¶m4, this); + } + + this->mUnk_00.y += data_ov000_020afd14; + this->mUnk_18 = 0x01; + } + + VecFx32_Copy(&this->mUnk_00, &this->mUnk_0C); + this->mUnk_1C = this->mUnk_18; +} + +UnkStruct_027e0ce0_30_00::~UnkStruct_027e0ce0_30_00() {} + +UnkStruct_027e0ce0_30::UnkStruct_027e0ce0_30() { + this->mUnk_00 = NULL; + this->mUnk_04 = 0; + MI_CpuFill32(0, this->mUnk_08, sizeof(this->mUnk_08)); +} + +UnkStruct_027e0ce0_30::~UnkStruct_027e0ce0_30() {} + +void UnkStruct_027e0ce0_30::func_ov001_020bbf00(int index, unk32 param2) { + this->mUnk_08[index] = new(HeapIndex_1) UnkStruct_027e0ce0_30_08(param2); +} + +void UnkStruct_027e0ce0_30::func_ov001_020bbf24(UnkStruct_027e0ce0_38 *param1) { + this->mUnk_00 = new(HeapIndex_1) UnkStruct_027e0ce0_30_00(param1, NULL, 0x00, NULL, 0x00); +} + +void UnkStruct_027e0ce0_30::func_ov001_020bbf50(UnkStruct_027e0ce0_3C *param1) { + this->mUnk_00 = new(HeapIndex_1) UnkStruct_027e0ce0_30_00(NULL, param1, 0x00, NULL, 0x00); +} + +void UnkStruct_027e0ce0_30::func_ov001_020bbf7c(unk32 param1, unk32 *param2, unk32 param3) { + this->mUnk_00 = new(HeapIndex_1) UnkStruct_027e0ce0_30_00(NULL, NULL, param1, param2, param3); + + if (gOverlayManager.IsPlayerSub()) { + this->mUnk_04 = new(HeapIndex_1) UnkStruct_027e0ce0_30_04(); + } +} + +void UnkStruct_027e0ce0_30::func_ov001_020bbfcc() { + if (this->mUnk_00 != NULL) { + DELETE(this->mUnk_00); + + if (this->mUnk_04 != NULL) { + DELETE(this->mUnk_04); + } + } else { + for (u32 i = 0; i < ARRAY_LEN(this->mUnk_08); i++) { + DELETE(this->mUnk_08[i]); + } + } +} diff --git a/src/001_SceneInit/UnkStruct_027e0ce0_40_Base_001.cpp b/src/001_SceneInit/UnkStruct_027e0ce0_40_Base_001.cpp index e69de29b..e6679db7 100644 --- a/src/001_SceneInit/UnkStruct_027e0ce0_40_Base_001.cpp +++ b/src/001_SceneInit/UnkStruct_027e0ce0_40_Base_001.cpp @@ -0,0 +1,67 @@ +#include "Unknown/UnkStruct_027e0ce0.hpp" + +UnkStruct_027e0ce0_40_Base::UnkStruct_027e0ce0_40_Base(unk32 param1, void *param2, ItemManager *pItemMgr) : + mUnk_000(param1), + mUnk_004(param2), + mpItemManager(pItemMgr), + mUnk_074(param1 == -1 ? new(HeapIndex_1) UnkStruct_027e0ce0_40_Base_74() : NULL), + mUnk_078(param1 == -1 ? new(HeapIndex_1) UnkStruct_027e0ce0_40_Base_78() : NULL), + mUnk_07C(param1), + mUnk_094(param1), + mUnk_104(0) { + this->func_ov001_020bc0e0(false); +} + +UnkStruct_027e0ce0_40_Base::~UnkStruct_027e0ce0_40_Base() { + delete this->mUnk_078; + delete this->mUnk_074; +} + +void UnkStruct_027e0ce0_40_Base::func_ov001_020bc0e0(bool param1) { + this->mButtons.Init(); + this->mUnk_014.func_ov000_02096a9c(); + + if (this->mUnk_074 != NULL) { + this->mUnk_074->func_ov031_020e0c34(); + } + + this->mUnk_07C.func_ov000_020968e0(); + this->mUnk_094.func_ov000_0208aee4(); + + UnkStruct_027e0ce0_40_Base_94_50 *unk_94_50 = this->mUnk_094.mUnk_50; + if (unk_94_50 != NULL) { + unk_94_50->mUnk_0C = unk_94_50->mUnk_08; + unk_94_50->mUnk_2C = &unk_94_50->mUnk_24; + } + + if (this->mUnk_078 != NULL) { + this->mUnk_078->mUnk_00 = 0; + } + + this->mUnk_094.mUnk_5C = 0; + this->mUnk_094.mUnk_60 = 0x80; + this->mUnk_094.mUnk_62 = 0x60; + this->mUnk_094.mUnk_64 = 0; + this->mUnk_094.mUnk_65 = 0; + this->mUnk_094.mUnk_66 = 0; + this->mUnk_094.mUnk_67 = 0; + this->mUnk_094.mUnk_68 = 0; + this->mUnk_094.mUnk_69 = 0; + this->mUnk_094.mUnk_6A = 0; + this->mUnk_094.mUnk_6C = 0; + + if (param1) { + UNSET_FLAG2(this->mUnk_104, UnkFlags3_0); + UNSET_FLAG2(this->mUnk_104, UnkFlags3_1); + UNSET_FLAG2(this->mUnk_104, UnkFlags3_2); + UNSET_FLAG2(this->mUnk_104, UnkFlags3_3); + UNSET_FLAG2(this->mUnk_104, UnkFlags3_5); + UNSET_FLAG2(this->mUnk_104, UnkFlags3_6); + UNSET_FLAG2(this->mUnk_104, UnkFlags3_7); + UNSET_FLAG2(this->mUnk_104, UnkFlags3_8); + UNSET_FLAG2(this->mUnk_104, UnkFlags3_9); + UNSET_FLAG2(this->mUnk_104, UnkFlags3_10); + } else { + this->mUnk_104 = UnkFlags3_None; + } +} diff --git a/src/001_SceneInit/code_020bc234_001.cpp b/src/001_SceneInit/code_020bc234_001.cpp deleted file mode 100644 index e69de29b..00000000 diff --git a/src/001_SceneInit/code_020bc2c8_001.cpp b/src/001_SceneInit/code_020bc2c8_001.cpp deleted file mode 100644 index e69de29b..00000000 diff --git a/src/Main/Player/TouchControl.cpp b/src/Main/Player/TouchControl.cpp index 96dcb63d..fe4e4546 100644 --- a/src/Main/Player/TouchControl.cpp +++ b/src/Main/Player/TouchControl.cpp @@ -41,7 +41,7 @@ void TouchControl::UpdateState(TouchState *state, const TPData *data) { THUMB_BEGIN -TouchControl::TouchControl() { +void TouchControl::Init() { this->mSpeed = 1; this->mTimeBetweenTouches = -1; this->mTimeSinceTouch = -1; diff --git a/tools/configure.py b/tools/configure.py index dd95fac5..cdbe9e13 100755 --- a/tools/configure.py +++ b/tools/configure.py @@ -201,12 +201,11 @@ config.libs = [ Object("001_SceneInit/UnkStruct_027e09bc_001.cpp"), Object("001_SceneInit/MapObject/MapObjectManager_001.cpp"), Object("001_SceneInit/Actor/ActorManager_001.cpp"), - Object("001_SceneInit/Item/ItemManager_001.cpp"), + Object("001_SceneInit/Item/Inventory_001.cpp"), Object("001_SceneInit/Player/PlayerActorBase_70_001.cpp"), Object("001_SceneInit/UnkStruct_027e0ce0_30_001.cpp"), Object("001_SceneInit/UnkStruct_027e0ce0_40_Base_001.cpp"), - Object("001_SceneInit/code_020bc234_001.cpp"), - Object("001_SceneInit/code_020bc2c8_001.cpp"), + Object("001_SceneInit/Item/ItemManager_001.cpp"), Object("001_SceneInit/UnkStruct_027e0ce0_001.cpp"), Object("001_SceneInit/UnkStruct_027e0cdc_001.cpp"), Object("001_SceneInit/Player/PlayerActorBase_001.cpp"),