diff --git a/.clang-format b/.clang-format index f6c7cdaf..c003be79 100644 --- a/.clang-format +++ b/.clang-format @@ -17,7 +17,7 @@ AccessModifierOffset: -4 AlignConsecutiveAssignments: Consecutive AlignEscapedNewlines: LeftWithLastLine -AlignTrailingComments: Leave +AlignTrailingComments: true BreakConstructorInitializers: AfterColon diff --git a/config/eur/arm9/dtcm/symbols.txt b/config/eur/arm9/dtcm/symbols.txt index ee71e261..26b74e6a 100644 --- a/config/eur/arm9/dtcm/symbols.txt +++ b/config/eur/arm9/dtcm/symbols.txt @@ -113,9 +113,9 @@ data_027e0cec kind:bss addr:0x027e0cec data_027e0cf0 kind:bss addr:0x027e0cf0 data_027e0cf4 kind:bss addr:0x027e0cf4 data_027e0cf8 kind:bss addr:0x027e0cf8 -data_027e0cfc kind:bss addr:0x027e0cfc +gpPassengerManager kind:bss addr:0x027e0cfc data_027e0d00 kind:bss addr:0x027e0d00 -data_027e0d04 kind:bss addr:0x027e0d04 +gpCargoManager kind:bss addr:0x027e0d04 data_027e0d08 kind:bss addr:0x027e0d08 data_027e0d0c kind:bss addr:0x027e0d0c data_027e0d10 kind:bss addr:0x027e0d10 diff --git a/config/eur/arm9/itcm/symbols.txt b/config/eur/arm9/itcm/symbols.txt index b3491561..50053d09 100644 --- a/config/eur/arm9/itcm/symbols.txt +++ b/config/eur/arm9/itcm/symbols.txt @@ -154,7 +154,7 @@ func_01ffd218 kind:function(arm,size=0x38) addr:0x01ffd218 func_01ffd250 kind:function(arm,size=0x44) addr:0x01ffd250 func_01ffd294 kind:function(arm,size=0x11c) addr:0x01ffd294 func_01ffd3b0 kind:function(arm,size=0x28) addr:0x01ffd3b0 -func_01ffd3d8 kind:function(arm,size=0x28) addr:0x01ffd3d8 +_ZN18UnkStruct_027e09a413func_01ffd3d8Ev kind:function(arm,size=0x28) addr:0x01ffd3d8 _ZN18UnkStruct_027e09a413func_01ffd400Ev kind:function(arm,size=0x20) addr:0x01ffd400 _ZN18UnkStruct_027e09b813func_01ffd420Ev kind:function(arm,size=0x1c) addr:0x01ffd420 func_01ffd43c kind:function(arm,size=0x60) addr:0x01ffd43c diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index 1931dc37..49746b04 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -335,10 +335,10 @@ func_ov000_0205c87c kind:function(arm,size=0xc) addr:0x0205c87c func_ov000_0205c888 kind:function(arm,size=0xc) addr:0x0205c888 func_ov000_0205c894 kind:function(arm,size=0x5c) addr:0x0205c894 func_ov000_0205c8f0 kind:function(arm,size=0x14) addr:0x0205c8f0 -func_ov000_0205c904 kind:function(arm,size=0x14) addr:0x0205c904 +_ZN18UnkStruct_027e0ce019func_ov000_0205c904Ev kind:function(arm,size=0x14) addr:0x0205c904 func_ov000_0205c918 kind:function(arm,size=0x14) addr:0x0205c918 func_ov000_0205c92c kind:function(arm,size=0x18) addr:0x0205c92c -func_ov000_0205c944 kind:function(arm,size=0x10) addr:0x0205c944 +_ZN18UnkStruct_027e0d0019func_ov000_0205c944Ev kind:function(arm,size=0x10) addr:0x0205c944 func_ov000_0205c954 kind:function(arm,size=0x18) addr:0x0205c954 func_ov000_0205c96c kind:function(arm,size=0x18) addr:0x0205c96c func_ov000_0205c984 kind:function(arm,size=0x14) addr:0x0205c984 @@ -2228,7 +2228,7 @@ func_ov000_02096a9c 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 -func_ov000_02096ba8 kind:function(arm,size=0x24) addr:0x02096ba8 +_ZN9Passenger5ResetEv kind:function(arm,size=0x24) addr:0x02096ba8 func_ov000_02096bcc kind:function(arm,size=0x48) addr:0x02096bcc _ZN12SaveInfoSub5C1Ev kind:function(arm,size=0x14) addr:0x02096c14 func_ov000_02096c28 kind:function(arm,size=0x20) addr:0x02096c28 @@ -2992,25 +2992,25 @@ func_ov000_020a84a8 kind:function(arm,size=0x7c) addr:0x020a84a8 func_ov000_020a8524 kind:function(arm,size=0x48) addr:0x020a8524 func_ov000_020a856c kind:function(arm,size=0x50) addr:0x020a856c func_ov000_020a85bc kind:function(thumb,size=0x80) addr:0x020a85bc -_ZN11ItemManager19func_ov000_020a863cEj kind:function(arm,size=0x20) addr:0x020a863c -_ZN11ItemManager19func_ov000_020a865cEj kind:function(arm,size=0x24) addr:0x020a865c -_ZN11ItemManager19func_ov000_020a8680Ev kind:function(arm,size=0x24) addr:0x020a8680 +_ZN11ItemManager7SetFlagEj kind:function(arm,size=0x20) addr:0x020a863c +_ZN11ItemManager9ClearFlagEj kind:function(arm,size=0x24) addr:0x020a865c +_ZN11ItemManager17HasRecruitUniformEv kind:function(arm,size=0x24) addr:0x020a8680 _ZN11ItemManager19func_ov000_020a86a4Ev kind:function(arm,size=0x2c) addr:0x020a86a4 -_ZN11ItemManager19func_ov000_020a86d0Ej kind:function(arm,size=0x58) addr:0x020a86d0 -_ZN11ItemManager19func_ov000_020a8728Ev kind:function(arm,size=0x20) addr:0x020a8728 -_ZN11ItemManager19func_ov000_020a8748Ev kind:function(arm,size=0x20) addr:0x020a8748 +_ZN11ItemManager13GetItemAmountEj kind:function(arm,size=0x58) addr:0x020a86d0 +_ZN11ItemManager17GetQuiverCapacityEv kind:function(arm,size=0x20) addr:0x020a8728 +_ZN11ItemManager18GetBombBagCapacityEv kind:function(arm,size=0x20) addr:0x020a8748 _ZN11ItemManager10GiveRupeesEibb kind:function(arm,size=0x60) addr:0x020a8768 -_ZN11ItemManager19func_ov000_020a87c8Ei kind:function(arm,size=0x24) addr:0x020a87c8 -_ZN11ItemManager19func_ov000_020a87ecEi kind:function(arm,size=0x34) addr:0x020a87ec -_ZN11ItemManager19func_ov000_020a8820Ei kind:function(arm,size=0x34) addr:0x020a8820 -_ZN11ItemManager19func_ov000_020a8854Ev kind:function(arm,size=0x38) addr:0x020a8854 -_ZN11ItemManager19func_ov000_020a888cEj kind:function(arm,size=0x3c) addr:0x020a888c -_ZN11ItemManager19func_ov000_020a88c8Ev kind:function(arm,size=0x2c) addr:0x020a88c8 -_ZN11ItemManager19func_ov000_020a88f4Ev kind:function(arm,size=0x2c) addr:0x020a88f4 -_ZN11ItemManager19func_ov000_020a8920Ev kind:function(arm,size=0x28) addr:0x020a8920 -_ZN11ItemManager19func_ov000_020a8948Ev kind:function(arm,size=0x2c) addr:0x020a8948 +_ZN11ItemManager13GiveSmallKeysEi kind:function(arm,size=0x24) addr:0x020a87c8 +_ZN11ItemManager10GiveArrowsEi kind:function(arm,size=0x34) addr:0x020a87ec +_ZN11ItemManager9GiveBombsEi kind:function(arm,size=0x34) addr:0x020a8820 +_ZN11ItemManager18TryEquipForcedItemEv kind:function(arm,size=0x38) addr:0x020a8854 +_ZN11ItemManager10GivePotionEj kind:function(arm,size=0x3c) addr:0x020a888c +_ZN11ItemManager9HasPotionEv kind:function(arm,size=0x2c) addr:0x020a88c8 +_ZN11ItemManager15HasPurplePotionEv kind:function(arm,size=0x2c) addr:0x020a88f4 +_ZN11ItemManager18RemovePurplePotionEv kind:function(arm,size=0x28) addr:0x020a8920 +_ZN11ItemManager15PotionSlotsFullEv kind:function(arm,size=0x2c) addr:0x020a8948 _ZN11ItemManager19func_ov000_020a8974Ej kind:function(arm,size=0x10) addr:0x020a8974 -_ZN11ItemManager19func_ov000_020a8984Ei kind:function(arm,size=0x38) addr:0x020a8984 +_ZN11ItemManager19GetEquippedItemFlagEi kind:function(arm,size=0x38) addr:0x020a8984 _ZN11ItemManager19func_ov000_020a89bcEv kind:function(thumb,size=0x18) addr:0x020a89bc _ZN11ItemManager19func_ov000_020a89d4Ev kind:function(arm,size=0x38) addr:0x020a89d4 _ZN11ItemManager19func_ov000_020a8a0cEv kind:function(arm,size=0x50) addr:0x020a8a0c diff --git a/config/eur/arm9/overlays/ov001/delinks.txt b/config/eur/arm9/overlays/ov001/delinks.txt index 10289db2..f659792b 100644 --- a/config/eur/arm9/overlays/ov001/delinks.txt +++ b/config/eur/arm9/overlays/ov001/delinks.txt @@ -12,3 +12,10 @@ src/001_SceneInit/Actor/ActorManager_001.cpp: src/001_SceneInit/Item/ItemManager_001.cpp: .text start:0x020bb9f8 end:0x020bba54 + +src/001_SceneInit/CargoManager_001.cpp: + complete + .text start:0x020bf800 end:0x020bf870 + +src/001_SceneInit/PassengerManager_001.cpp: + .text start:0x020bf870 end:0x020bfa50 diff --git a/config/eur/arm9/overlays/ov001/relocs.txt b/config/eur/arm9/overlays/ov001/relocs.txt index 995e7997..2d7dac82 100644 --- a/config/eur/arm9/overlays/ov001/relocs.txt +++ b/config/eur/arm9/overlays/ov001/relocs.txt @@ -2026,7 +2026,7 @@ from:0x020bf64a kind:thumb_call_arm to:0x02011f3c module:main from:0x020bf65c kind:thumb_call to:0x02058c48 module:overlay(0) from:0x020bf670 kind:thumb_call_arm to:0x02011f3c module:main from:0x020bf682 kind:thumb_call_arm to:0x02011f3c module:main -from:0x020bf694 kind:load to:0x020d7625 module:overlay(24) +from:0x020bf694 kind:load to:0x020d7624 add:0x1 module:overlay(24) from:0x020bf698 kind:load to:0x020d766c module:overlay(24) from:0x020bf6ac kind:thumb_call_arm to:0x02012000 module:main from:0x020bf6ba kind:thumb_call_arm to:0x02012000 module:main diff --git a/config/eur/arm9/overlays/ov001/symbols.txt b/config/eur/arm9/overlays/ov001/symbols.txt index 42209dcf..e2836261 100644 --- a/config/eur/arm9/overlays/ov001/symbols.txt +++ b/config/eur/arm9/overlays/ov001/symbols.txt @@ -387,20 +387,20 @@ func_ov001_020bf768 kind:function(thumb,size=0x50) addr:0x020bf768 func_ov001_020bf7b8 kind:function(thumb,size=0x2e) addr:0x020bf7b8 func_ov001_020bf7e8 kind:function(thumb,size=0xc) addr:0x020bf7e8 func_ov001_020bf7f4 kind:function(thumb,size=0xc) addr:0x020bf7f4 -func_ov001_020bf800 kind:function(thumb,size=0x22) addr:0x020bf800 -func_ov001_020bf824 kind:function(thumb,size=0xc) addr:0x020bf824 -func_ov001_020bf830 kind:function(thumb,size=0x28) addr:0x020bf830 -func_ov001_020bf858 kind:function(thumb,size=0xc) addr:0x020bf858 -func_ov001_020bf864 kind:function(thumb,size=0xc) addr:0x020bf864 -func_ov001_020bf870 kind:function(thumb,size=0x44) addr:0x020bf870 -func_ov001_020bf8b4 kind:function(thumb,size=0x24) addr:0x020bf8b4 -func_ov001_020bf8d8 kind:function(thumb,size=0xc) addr:0x020bf8d8 -func_ov001_020bf8e4 kind:function(thumb,size=0x28) addr:0x020bf8e4 -func_ov001_020bf90c kind:function(thumb,size=0x2) addr:0x020bf90c -func_ov001_020bf910 kind:function(thumb,size=0x10c) addr:0x020bf910 -func_ov001_020bfa1c kind:function(thumb,size=0x1c) addr:0x020bfa1c -func_ov001_020bfa38 kind:function(thumb,size=0xc) addr:0x020bfa38 -func_ov001_020bfa44 kind:function(thumb,size=0xc) addr:0x020bfa44 +_ZN12CargoManagerC1Ev kind:function(thumb,size=0x22) addr:0x020bf800 +_ZN12CargoManagerD1Ev kind:function(thumb,size=0xc) addr:0x020bf824 +_ZN12CargoManager19func_ov001_020bf830Ev kind:function(thumb,size=0x28) addr:0x020bf830 +_ZN12CargoManager11SetInstanceEPS_ kind:function(thumb,size=0xc) addr:0x020bf858 +_ZN12CargoManager13ClearInstanceEv kind:function(thumb,size=0xc) addr:0x020bf864 +_ZN16PassengerManager19func_ov001_020bf870Ev kind:function(thumb,size=0x44) addr:0x020bf870 +_ZN16PassengerManagerC1Ev kind:function(thumb,size=0x24) addr:0x020bf8b4 +_ZN16PassengerManagerD1Ev kind:function(thumb,size=0xc) addr:0x020bf8d8 +_ZN16PassengerManager19func_ov001_020bf8e4Ev kind:function(thumb,size=0x28) addr:0x020bf8e4 +_ZN16PassengerManager19func_ov001_020bf90cEv kind:function(thumb,size=0x2) addr:0x020bf90c +_ZN16PassengerManager19func_ov001_020bf910Ev kind:function(thumb,size=0x10c) addr:0x020bf910 +_ZN16PassengerManager19func_ov001_020bfa1cEv kind:function(thumb,size=0x1c) addr:0x020bfa1c +_ZN16PassengerManager11SetInstanceEPS_ kind:function(thumb,size=0xc) addr:0x020bfa38 +_ZN16PassengerManager13ClearInstanceEv kind:function(thumb,size=0xc) addr:0x020bfa44 func_ov001_020bfa50 kind:function(thumb,size=0xc2) addr:0x020bfa50 func_ov001_020bfb14 kind:function(thumb,size=0xc) addr:0x020bfb14 func_ov001_020bfb20 kind:function(thumb,size=0x1a0) addr:0x020bfb20 diff --git a/config/eur/arm9/overlays/ov017/delinks.txt b/config/eur/arm9/overlays/ov017/delinks.txt index 6b60af88..a411361c 100644 --- a/config/eur/arm9/overlays/ov017/delinks.txt +++ b/config/eur/arm9/overlays/ov017/delinks.txt @@ -4,3 +4,8 @@ .ctor start:0x020c3ee0 end:0x020c3eec kind:rodata align:4 .data start:0x020c3f00 end:0x020c3f60 kind:data align:32 .bss start:0x020c3f60 end:0x020c4840 kind:bss align:32 + +src/017_CourseExec/CargoManager_017.cpp: + complete + .text start:0x020be9cc end:0x020becd8 + .rodata start:0x020c3dc0 end:0x020c3dec diff --git a/config/eur/arm9/overlays/ov017/relocs.txt b/config/eur/arm9/overlays/ov017/relocs.txt index 351833de..d4762a9f 100644 --- a/config/eur/arm9/overlays/ov017/relocs.txt +++ b/config/eur/arm9/overlays/ov017/relocs.txt @@ -375,7 +375,7 @@ from:0x020beb2c kind:arm_call to:0x020cd3e0 module:overlay(24) from:0x020beb44 kind:load to:0x027e09a4 module:dtcm from:0x020beb48 kind:load to:0x020c3dc0 module:overlay(17) from:0x020beb4c kind:load to:0x020d8698 module:overlay(24) -from:0x020beb50 kind:load to:0x020c3dc4 module:overlay(17) +from:0x020beb50 kind:load to:0x020c3dc0 add:0x4 module:overlay(17) from:0x020beb78 kind:arm_call to:0x0205c944 module:overlay(0) from:0x020beb7c kind:arm_call to:0x020d4d10 module:overlay(24) from:0x020beba4 kind:arm_call to:0x0205c944 module:overlay(0) @@ -386,11 +386,11 @@ from:0x020bebd0 kind:arm_call to:0x020cd3f0 module:overlay(24) from:0x020bebd8 kind:load to:0x020d8698 module:overlay(24) from:0x020bec04 kind:arm_call to:0x020bec6c module:overlay(17) from:0x020bec10 kind:arm_call to:0x020cd3d0 module:overlay(24) -from:0x020bec18 kind:load to:0x020c3dc2 module:overlay(17) +from:0x020bec18 kind:load to:0x020c3dc0 add:0x2 module:overlay(17) from:0x020bec1c kind:load to:0x020d8698 module:overlay(24) from:0x020bec50 kind:arm_call to:0x020bec6c module:overlay(17) from:0x020bec5c kind:arm_call to:0x020cd3d0 module:overlay(24) -from:0x020bec64 kind:load to:0x020c3dc3 module:overlay(17) +from:0x020bec64 kind:load to:0x020c3dc0 add:0x3 module:overlay(17) from:0x020bec68 kind:load to:0x020d8698 module:overlay(24) from:0x020beca8 kind:arm_call to:0x01ffd3d8 module:itcm from:0x020becc8 kind:arm_call to:0x02106aa8 module:overlay(26) diff --git a/config/eur/arm9/overlays/ov017/symbols.txt b/config/eur/arm9/overlays/ov017/symbols.txt index 2a51f90e..16042884 100644 --- a/config/eur/arm9/overlays/ov017/symbols.txt +++ b/config/eur/arm9/overlays/ov017/symbols.txt @@ -40,15 +40,15 @@ func_ov017_020be2ec kind:function(arm,size=0x148) addr:0x020be2ec func_ov017_020be434 kind:function(arm,size=0x18) addr:0x020be434 func_ov017_020be44c kind:function(arm,size=0x45c) addr:0x020be44c func_ov017_020be8a8 kind:function(arm,size=0x124) addr:0x020be8a8 -func_ov017_020be9cc kind:function(arm,size=0x18) addr:0x020be9cc -func_ov017_020be9e4 kind:function(arm,size=0x30) addr:0x020be9e4 -func_ov017_020bea14 kind:function(arm,size=0x140) addr:0x020bea14 -func_ov017_020beb54 kind:function(arm,size=0x30) addr:0x020beb54 -func_ov017_020beb84 kind:function(arm,size=0x58) addr:0x020beb84 -func_ov017_020bebdc kind:function(arm,size=0x44) addr:0x020bebdc -func_ov017_020bec20 kind:function(arm,size=0x4c) addr:0x020bec20 -func_ov017_020bec6c kind:function(arm,size=0x30) addr:0x020bec6c -func_ov017_020bec9c kind:function(arm,size=0x3c) addr:0x020bec9c +_ZN12CargoManager8DoUpdateEv kind:function(arm,size=0x18) addr:0x020be9cc +_ZN12CargoManager15IsNotUsingTimerEi kind:function(arm,size=0x30) addr:0x020be9e4 +_ZN12CargoManager6UpdateEv kind:function(arm,size=0x140) addr:0x020bea14 +_ZN12CargoManager5ResetEv kind:function(arm,size=0x30) addr:0x020beb54 +_ZN12CargoManager4InitEii kind:function(arm,size=0x58) addr:0x020beb84 +_ZN12CargoManager19func_ov017_020bebdcEv kind:function(arm,size=0x44) addr:0x020bebdc +_ZN12CargoManager19func_ov017_020bec20Ev kind:function(arm,size=0x4c) addr:0x020bec20 +_ZN12CargoManager12RemoveAmountEi kind:function(arm,size=0x30) addr:0x020bec6c +_ZN12CargoManager19func_ov017_020bec9cEv kind:function(arm,size=0x3c) addr:0x020bec9c func_ov017_020becd8 kind:function(arm,size=0x148) addr:0x020becd8 func_ov017_020bee20 kind:function(arm,size=0x44) addr:0x020bee20 func_ov017_020bee64 kind:function(arm,size=0x20) addr:0x020bee64 @@ -167,10 +167,7 @@ func_ov017_020c3bc0 kind:function(arm,size=0xa4) addr:0x020c3bc0 func_ov017_020c3c64 kind:function(arm,size=0x40) addr:0x020c3c64 func_ov017_020c3ca4 kind:function(arm,size=0xf4) addr:0x020c3ca4 func_ov017_020c3d98 kind:function(arm,size=0x28) addr:0x020c3d98 -data_ov017_020c3dc0 kind:data(any) addr:0x020c3dc0 -data_ov017_020c3dc2 kind:data(any) addr:0x020c3dc2 -data_ov017_020c3dc3 kind:data(any) addr:0x020c3dc3 -data_ov017_020c3dc4 kind:data(any) addr:0x020c3dc4 +sCargoInfos kind:data(byte[42]) addr:0x020c3dc0 local data_ov017_020c3dec kind:data(any) addr:0x020c3dec __sinit_ov017_020c3e24 kind:function(arm,size=0x6c) addr:0x020c3e24 __sinit_ov017_020c3e90 kind:function(arm,size=0x38) addr:0x020c3e90 diff --git a/config/eur/arm9/overlays/ov024/delinks.txt b/config/eur/arm9/overlays/ov024/delinks.txt index febf5d2f..e50cdac5 100644 --- a/config/eur/arm9/overlays/ov024/delinks.txt +++ b/config/eur/arm9/overlays/ov024/delinks.txt @@ -5,6 +5,14 @@ .data start:0x020d7b60 end:0x020d8660 kind:data align:32 .bss start:0x020d8660 end:0x020d8720 kind:bss align:32 +src/024_MainGame/PassengerManager.cpp: + .text start:0x020d4120 end:0x020d46b4 + .rodata start:0x020d75a4 end:0x020d7624 + +src/024_MainGame/CargoManager_024.cpp: + complete + .text start:0x020d58b4 end:0x020d5938 + src/024_MainGame/MiscAdvManager.cpp: .text start:0x020d62b4 end:0x020d6650 diff --git a/config/eur/arm9/overlays/ov024/relocs.txt b/config/eur/arm9/overlays/ov024/relocs.txt index dd6b039e..fbf75cc3 100644 --- a/config/eur/arm9/overlays/ov024/relocs.txt +++ b/config/eur/arm9/overlays/ov024/relocs.txt @@ -2175,9 +2175,9 @@ from:0x020d4094 kind:load to:0x020d7578 module:overlay(24) from:0x020d40ec kind:arm_call_thumb to:0x020d3d98 module:overlay(24) from:0x020d414c kind:load to:0x020d75a4 module:overlay(24) from:0x020d4154 kind:arm_call to:0x020d4120 module:overlay(24) -from:0x020d4170 kind:load to:0x020d75a8 module:overlay(24) +from:0x020d4170 kind:load to:0x020d75a4 add:0x4 module:overlay(24) from:0x020d4178 kind:arm_call to:0x020d4120 module:overlay(24) -from:0x020d4194 kind:load to:0x020d75aa module:overlay(24) +from:0x020d4194 kind:load to:0x020d75a4 add:0x6 module:overlay(24) from:0x020d41a8 kind:arm_call to:0x02011f3c module:main from:0x020d41b4 kind:arm_call_thumb to:0x020bf8b4 module:overlay(1) from:0x020d41ec kind:arm_call to:0x020d4228 module:overlay(24) @@ -2241,7 +2241,7 @@ from:0x020d48b8 kind:load to:0x020d765c module:overlay(24) from:0x020d48bc kind:load to:0x020d764c module:overlay(24) from:0x020d48c0 kind:load to:0x020d763c module:overlay(24) from:0x020d48c4 kind:load to:0x020d762c module:overlay(24) -from:0x020d48d4 kind:load to:0x020d7625 module:overlay(24) +from:0x020d48d4 kind:load to:0x020d7624 add:0x1 module:overlay(24) from:0x020d4904 kind:arm_call to:0x020d5174 module:overlay(24) from:0x020d4910 kind:arm_call_thumb to:0x020589e4 module:overlay(0) from:0x020d4954 kind:arm_call to:0x020d4f08 module:overlay(24) diff --git a/config/eur/arm9/overlays/ov024/symbols.txt b/config/eur/arm9/overlays/ov024/symbols.txt index 0aa6d7db..fdf44010 100644 --- a/config/eur/arm9/overlays/ov024/symbols.txt +++ b/config/eur/arm9/overlays/ov024/symbols.txt @@ -351,11 +351,11 @@ func_ov024_020cd348 kind:function(arm,size=0x10) addr:0x020cd348 func_ov024_020cd358 kind:function(arm,size=0x10) addr:0x020cd358 _ZN18UnkStruct_020d869819func_ov024_020cd368Ebb kind:function(arm,size=0x3c) addr:0x020cd368 func_ov024_020cd3a4 kind:function(arm,size=0x2c) addr:0x020cd3a4 -func_ov024_020cd3d0 kind:function(arm,size=0x10) addr:0x020cd3d0 -func_ov024_020cd3e0 kind:function(arm,size=0x10) addr:0x020cd3e0 -func_ov024_020cd3f0 kind:function(arm,size=0x10) addr:0x020cd3f0 +_ZN18UnkStruct_020d869819func_ov024_020cd3d0Ev kind:function(arm,size=0x10) addr:0x020cd3d0 +_ZN18UnkStruct_020d869819func_ov024_020cd3e0Ei kind:function(arm,size=0x10) addr:0x020cd3e0 +_ZN18UnkStruct_020d869819func_ov024_020cd3f0Ei kind:function(arm,size=0x10) addr:0x020cd3f0 func_ov024_020cd400 kind:function(arm,size=0x10) addr:0x020cd400 -func_ov024_020cd410 kind:function(arm,size=0x10) addr:0x020cd410 +_ZN18UnkStruct_020d869819func_ov024_020cd410Ev kind:function(arm,size=0x10) addr:0x020cd410 func_ov024_020cd420 kind:function(arm,size=0x38) addr:0x020cd420 _ZN18UnkStruct_020d869819func_ov024_020cd458Eji kind:function(arm,size=0x4c) addr:0x020cd458 func_ov024_020cd4a4 kind:function(arm,size=0x40) addr:0x020cd4a4 @@ -567,7 +567,7 @@ func_ov024_020d3d80 kind:function(thumb,size=0x18) addr:0x020d3d80 _ZN21UnkStruct_027e0ce0_3419func_ov024_020d3d98Eii kind:function(thumb,size=0x10) addr:0x020d3d98 func_ov024_020d3da8 kind:function(thumb,size=0x16) addr:0x020d3da8 func_ov024_020d3dc0 kind:function(thumb,size=0xa) addr:0x020d3dc0 -func_ov024_020d3dcc kind:function(thumb,size=0x20) addr:0x020d3dcc +_ZN21UnkStruct_027e0ce0_3419func_ov024_020d3dccEv kind:function(thumb,size=0x20) addr:0x020d3dcc func_ov024_020d3dec kind:function(arm,size=0x20) addr:0x020d3dec func_ov024_020d3e0c kind:function(arm,size=0x24) addr:0x020d3e0c func_ov024_020d3e30 kind:function(arm,size=0x38) addr:0x020d3e30 @@ -579,33 +579,33 @@ func_ov024_020d3fc8 kind:function(arm,size=0x40) addr:0x020d3fc8 func_ov024_020d4008 kind:function(arm,size=0x44) addr:0x020d4008 func_ov024_020d404c kind:function(arm,size=0x4c) addr:0x020d404c func_ov024_020d4098 kind:function(arm,size=0x88) addr:0x020d4098 -func_ov024_020d4120 kind:function(arm,size=0x30) addr:0x020d4120 -func_ov024_020d4150 kind:function(arm,size=0x24) addr:0x020d4150 -func_ov024_020d4174 kind:function(arm,size=0x24) addr:0x020d4174 -func_ov024_020d4198 kind:function(arm,size=0x24) addr:0x020d4198 -func_ov024_020d41bc kind:function(arm,size=0x38) addr:0x020d41bc -func_ov024_020d41f4 kind:function(arm,size=0x34) addr:0x020d41f4 -func_ov024_020d4228 kind:function(arm,size=0x30) addr:0x020d4228 -func_ov024_020d4258 kind:function(arm,size=0x30) addr:0x020d4258 -func_ov024_020d4288 kind:function(arm,size=0x7c) addr:0x020d4288 -func_ov024_020d4304 kind:function(arm,size=0x28) addr:0x020d4304 -func_ov024_020d432c kind:function(arm,size=0x50) addr:0x020d432c -func_ov024_020d437c kind:function(arm,size=0x34) addr:0x020d437c -func_ov024_020d43b0 kind:function(arm,size=0x3c) addr:0x020d43b0 -func_ov024_020d43ec kind:function(arm,size=0x48) addr:0x020d43ec -func_ov024_020d4434 kind:function(arm,size=0x54) addr:0x020d4434 -func_ov024_020d4488 kind:function(arm,size=0x8) addr:0x020d4488 -func_ov024_020d4490 kind:function(arm,size=0x30) addr:0x020d4490 -func_ov024_020d44c0 kind:function(arm,size=0x3c) addr:0x020d44c0 -func_ov024_020d44fc kind:function(arm,size=0x24) addr:0x020d44fc -func_ov024_020d4520 kind:function(arm,size=0x8) addr:0x020d4520 -func_ov024_020d4528 kind:function(arm,size=0x2c) addr:0x020d4528 -func_ov024_020d4554 kind:function(arm,size=0x10) addr:0x020d4554 -func_ov024_020d4564 kind:function(arm,size=0x4c) addr:0x020d4564 -func_ov024_020d45b0 kind:function(arm,size=0x14) addr:0x020d45b0 -func_ov024_020d45c4 kind:function(arm,size=0x1c) addr:0x020d45c4 -func_ov024_020d45e0 kind:function(arm,size=0x5c) addr:0x020d45e0 -func_ov024_020d463c kind:function(arm,size=0x78) addr:0x020d463c +_ZN16PassengerManager21GetPassengerInfoIndexEj kind:function(arm,size=0x30) addr:0x020d4120 +_ZN16PassengerManager12GetBoardFlagEj kind:function(arm,size=0x24) addr:0x020d4150 +_ZN16PassengerManager11GetFailFlagEj kind:function(arm,size=0x24) addr:0x020d4174 +_ZN16PassengerManager6CreateEv kind:function(arm,size=0x24) addr:0x020d4198 +_ZN16PassengerManager19func_ov024_020d41bcEP16UnkStruct_Param1 kind:function(arm,size=0x38) addr:0x020d41bc +_ZN16PassengerManager19func_ov024_020d41f4EP16UnkStruct_Param1 kind:function(arm,size=0x34) addr:0x020d41f4 +_ZN16PassengerManager19func_ov024_020d4228Ev kind:function(arm,size=0x30) addr:0x020d4228 +_ZN16PassengerManager19func_ov024_020d4258Ev kind:function(arm,size=0x30) addr:0x020d4258 +_ZN16PassengerManager13TryBoardTrainEjjj kind:function(arm,size=0x7c) addr:0x020d4288 +_ZN16PassengerManager8TryResetEv kind:function(arm,size=0x28) addr:0x020d4304 +_ZN16PassengerManager21TryResetAtDestinationEv kind:function(arm,size=0x50) addr:0x020d432c +_ZN16PassengerManager18ReachedDestinationEjj kind:function(arm,size=0x34) addr:0x020d437c +_ZN16PassengerManager21TrySetCaughtByPiratesEv kind:function(arm,size=0x3c) addr:0x020d43b0 +_ZN16PassengerManager23CaughtByPiratesTryResetEv kind:function(arm,size=0x48) addr:0x020d43ec +_ZN16PassengerManager13GiveHappinessEi kind:function(arm,size=0x54) addr:0x020d4434 +_ZN16PassengerManager12GetHappinessEv kind:function(arm,size=0x8) addr:0x020d4488 +_ZN16PassengerManager16GetHappinessCondEv kind:function(arm,size=0x30) addr:0x020d4490 +_ZN16PassengerManager15CanCompleteTripEv kind:function(arm,size=0x3c) addr:0x020d44c0 +_ZN16PassengerManager17IsCaughtByPiratesEv kind:function(arm,size=0x24) addr:0x020d44fc +_ZN16PassengerManager10GetActorIdEv kind:function(arm,size=0x8) addr:0x020d4520 +_ZN16PassengerManager11GetInstanceEv kind:function(arm,size=0x2c) addr:0x020d4528 +_ZN16PassengerManager19func_ov024_020d4554Ev kind:function(arm,size=0x10) addr:0x020d4554 +_ZN16PassengerManager5ResetEv kind:function(arm,size=0x4c) addr:0x020d4564 +_ZN16PassengerManager11IsDateUnsetEv kind:function(arm,size=0x14) addr:0x020d45b0 +_ZN16PassengerManager7GetDateEv kind:function(arm,size=0x1c) addr:0x020d45c4 +_ZN16PassengerManager14GetRandomIndexEji kind:function(arm,size=0x5c) addr:0x020d45e0 +_ZN16PassengerManager13SetFailedFlagEv kind:function(arm,size=0x78) addr:0x020d463c func_ov024_020d46b4 kind:function(arm,size=0x10) addr:0x020d46b4 func_ov024_020d46c4 kind:function(arm,size=0x70) addr:0x020d46c4 func_ov024_020d4734 kind:function(arm,size=0x60) addr:0x020d4734 @@ -623,8 +623,8 @@ func_ov024_020d4ab4 kind:function(arm,size=0x40) addr:0x020d4ab4 func_ov024_020d4af4 kind:function(arm,size=0xa8) addr:0x020d4af4 func_ov024_020d4b9c kind:function(arm,size=0x5c) addr:0x020d4b9c func_ov024_020d4bf8 kind:function(arm,size=0xc8) addr:0x020d4bf8 -func_ov024_020d4cc0 kind:function(arm,size=0x50) addr:0x020d4cc0 -func_ov024_020d4d10 kind:function(arm,size=0x34) addr:0x020d4d10 +_ZN18UnkStruct_027e0d0019func_ov024_020d4cc0Ei kind:function(arm,size=0x50) addr:0x020d4cc0 +_ZN18UnkStruct_027e0d0019func_ov024_020d4d10Ev kind:function(arm,size=0x34) addr:0x020d4d10 func_ov024_020d4d44 kind:function(arm,size=0x28) addr:0x020d4d44 func_ov024_020d4d6c kind:function(arm,size=0x8c) addr:0x020d4d6c func_ov024_020d4df8 kind:function(arm,size=0x44) addr:0x020d4df8 @@ -653,11 +653,11 @@ func_ov024_020d54f0 kind:function(arm,size=0x4) addr:0x020d54f0 func_ov024_020d54f4 kind:function(arm,size=0x138) addr:0x020d54f4 func_ov024_020d562c kind:function(arm,size=0x240) addr:0x020d562c func_ov024_020d586c kind:function(arm,size=0x48) addr:0x020d586c -func_ov024_020d58b4 kind:function(arm,size=0x24) addr:0x020d58b4 -func_ov024_020d58d8 kind:function(arm,size=0x14) addr:0x020d58d8 -func_ov024_020d58ec kind:function(arm,size=0x14) addr:0x020d58ec -func_ov024_020d5900 kind:function(arm,size=0x1c) addr:0x020d5900 -func_ov024_020d591c kind:function(arm,size=0x1c) addr:0x020d591c +_ZN12CargoManager6CreateEv kind:function(arm,size=0x24) addr:0x020d58b4 +_ZN12CargoManager8SetCargoEii kind:function(arm,size=0x14) addr:0x020d58d8 +_ZN12CargoManager16GetTypeAndAmountEPiS0_ kind:function(arm,size=0x14) addr:0x020d58ec +_ZN12CargoManager19func_ov024_020d5900Ev kind:function(arm,size=0x1c) addr:0x020d5900 +_ZN12CargoManager19func_ov024_020d591cEv kind:function(arm,size=0x1c) addr:0x020d591c func_ov024_020d5938 kind:function(arm,size=0x40) addr:0x020d5938 func_ov024_020d5978 kind:function(arm,size=0x18) addr:0x020d5978 func_ov024_020d5990 kind:function(arm,size=0x16c) addr:0x020d5990 @@ -742,10 +742,8 @@ data_ov024_020d7570 kind:data(any) addr:0x020d7570 data_ov024_020d7578 kind:data(any) addr:0x020d7578 data_ov024_020d7588 kind:data(any) addr:0x020d7588 data_ov024_020d7598 kind:data(any) addr:0x020d7598 ambiguous -data_ov024_020d75a4 kind:data(any) addr:0x020d75a4 -data_ov024_020d75a8 kind:data(any) addr:0x020d75a8 -data_ov024_020d75aa kind:data(any) addr:0x020d75aa -data_ov024_020d7625 kind:data(any) addr:0x020d7625 +sPassengerInfos kind:data(any) addr:0x020d75a4 +data_ov024_020d7624 kind:data(any) addr:0x020d7624 data_ov024_020d762c kind:data(any) addr:0x020d762c data_ov024_020d763c kind:data(any) addr:0x020d763c data_ov024_020d764c kind:data(any) addr:0x020d764c diff --git a/config/eur/arm9/overlays/ov026/symbols.txt b/config/eur/arm9/overlays/ov026/symbols.txt index 24bb3e25..f4e1dd81 100644 --- a/config/eur/arm9/overlays/ov026/symbols.txt +++ b/config/eur/arm9/overlays/ov026/symbols.txt @@ -1122,7 +1122,7 @@ func_ov026_02106a84 kind:function(arm,size=0x4) addr:0x02106a84 func_ov026_02106a88 kind:function(arm,size=0x4) addr:0x02106a88 func_ov026_02106a8c kind:function(arm,size=0x8) addr:0x02106a8c func_ov026_02106a94 kind:function(arm,size=0x14) addr:0x02106a94 -func_ov026_02106aa8 kind:function(arm,size=0x14) addr:0x02106aa8 +_ZN25UnkStruct_027e0cd8_0c_16019func_ov026_02106aa8Ev kind:function(arm,size=0x14) addr:0x02106aa8 func_ov026_02106abc kind:function(arm,size=0x84) addr:0x02106abc func_ov026_02106b40 kind:function(arm,size=0x4c) addr:0x02106b40 func_ov026_02106b8c kind:function(arm,size=0x64) addr:0x02106b8c diff --git a/config/jp/arm9/dtcm/symbols.txt b/config/jp/arm9/dtcm/symbols.txt index ee71e261..26b74e6a 100644 --- a/config/jp/arm9/dtcm/symbols.txt +++ b/config/jp/arm9/dtcm/symbols.txt @@ -113,9 +113,9 @@ data_027e0cec kind:bss addr:0x027e0cec data_027e0cf0 kind:bss addr:0x027e0cf0 data_027e0cf4 kind:bss addr:0x027e0cf4 data_027e0cf8 kind:bss addr:0x027e0cf8 -data_027e0cfc kind:bss addr:0x027e0cfc +gpPassengerManager kind:bss addr:0x027e0cfc data_027e0d00 kind:bss addr:0x027e0d00 -data_027e0d04 kind:bss addr:0x027e0d04 +gpCargoManager kind:bss addr:0x027e0d04 data_027e0d08 kind:bss addr:0x027e0d08 data_027e0d0c kind:bss addr:0x027e0d0c data_027e0d10 kind:bss addr:0x027e0d10 diff --git a/config/jp/arm9/itcm/symbols.txt b/config/jp/arm9/itcm/symbols.txt index b3491561..50053d09 100644 --- a/config/jp/arm9/itcm/symbols.txt +++ b/config/jp/arm9/itcm/symbols.txt @@ -154,7 +154,7 @@ func_01ffd218 kind:function(arm,size=0x38) addr:0x01ffd218 func_01ffd250 kind:function(arm,size=0x44) addr:0x01ffd250 func_01ffd294 kind:function(arm,size=0x11c) addr:0x01ffd294 func_01ffd3b0 kind:function(arm,size=0x28) addr:0x01ffd3b0 -func_01ffd3d8 kind:function(arm,size=0x28) addr:0x01ffd3d8 +_ZN18UnkStruct_027e09a413func_01ffd3d8Ev kind:function(arm,size=0x28) addr:0x01ffd3d8 _ZN18UnkStruct_027e09a413func_01ffd400Ev kind:function(arm,size=0x20) addr:0x01ffd400 _ZN18UnkStruct_027e09b813func_01ffd420Ev kind:function(arm,size=0x1c) addr:0x01ffd420 func_01ffd43c kind:function(arm,size=0x60) addr:0x01ffd43c diff --git a/config/jp/arm9/overlays/ov000/symbols.txt b/config/jp/arm9/overlays/ov000/symbols.txt index 2a4dc9a2..03d44ca8 100644 --- a/config/jp/arm9/overlays/ov000/symbols.txt +++ b/config/jp/arm9/overlays/ov000/symbols.txt @@ -335,15 +335,15 @@ func_ov000_0205de04 kind:function(arm,size=0xc) addr:0x0205de04 func_ov000_0205de10 kind:function(arm,size=0xc) addr:0x0205de10 func_ov000_0205de1c kind:function(arm,size=0x5c) addr:0x0205de1c func_ov000_0205de78 kind:function(arm,size=0x14) addr:0x0205de78 -func_ov000_0205de8c kind:function(arm,size=0x14) addr:0x0205de8c +_ZN18UnkStruct_027e0ce019func_ov000_0205c904Ev kind:function(arm,size=0x14) addr:0x0205de8c func_ov000_0205dea0 kind:function(arm,size=0x14) addr:0x0205dea0 func_ov000_0205deb4 kind:function(arm,size=0x18) addr:0x0205deb4 -func_ov000_0205decc kind:function(arm,size=0x10) addr:0x0205decc +_ZN18UnkStruct_027e0d0019func_ov000_0205c944Ev kind:function(arm,size=0x10) addr:0x0205decc func_ov000_0205dedc kind:function(arm,size=0x18) addr:0x0205dedc func_ov000_0205def4 kind:function(arm,size=0x18) addr:0x0205def4 -func_ov000_0205df0c kind:function(arm,size=0x14) addr:0x0205df0c +func_ov000_0205c984 kind:function(arm,size=0x14) addr:0x0205df0c func_ov000_0205df20 kind:function(arm,size=0x1c) addr:0x0205df20 -func_ov000_0205df3c kind:function(arm,size=0x1c) addr:0x0205df3c +func_ov000_0205c9b4 kind:function(arm,size=0x1c) addr:0x0205df3c func_ov000_0205df58 kind:function(arm,size=0x48) addr:0x0205df58 func_ov000_0205dfa0 kind:function(arm,size=0x1c) addr:0x0205dfa0 func_ov000_0205dfbc kind:function(arm,size=0x40) addr:0x0205dfbc @@ -2226,7 +2226,7 @@ func_ov000_02098250 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 -func_ov000_0209835c kind:function(arm,size=0x24) addr:0x0209835c +_ZN9Passenger5ResetEv kind:function(arm,size=0x24) addr:0x0209835c func_ov000_02098380 kind:function(arm,size=0x48) addr:0x02098380 _ZN12SaveInfoSub5C1Ev kind:function(arm,size=0x14) addr:0x020983c8 func_ov000_020983dc kind:function(arm,size=0x20) addr:0x020983dc @@ -2991,25 +2991,25 @@ func_ov000_020a9ca8 kind:function(arm,size=0x7c) addr:0x020a9ca8 func_ov000_020a9d24 kind:function(arm,size=0x48) addr:0x020a9d24 func_ov000_020a9d6c kind:function(arm,size=0x50) addr:0x020a9d6c func_ov000_020a9dbc kind:function(thumb,size=0x80) addr:0x020a9dbc -_ZN11ItemManager19func_ov000_020a863cEj kind:function(arm,size=0x20) addr:0x020a9e3c -_ZN11ItemManager19func_ov000_020a865cEj kind:function(arm,size=0x24) addr:0x020a9e5c -_ZN11ItemManager19func_ov000_020a8680Ev kind:function(arm,size=0x24) addr:0x020a9e80 +_ZN11ItemManager7SetFlagEj kind:function(arm,size=0x20) addr:0x020a9e3c +_ZN11ItemManager9ClearFlagEj kind:function(arm,size=0x24) addr:0x020a9e5c +_ZN11ItemManager17HasRecruitUniformEv kind:function(arm,size=0x24) addr:0x020a9e80 _ZN11ItemManager19func_ov000_020a86a4Ev kind:function(arm,size=0x2c) addr:0x020a9ea4 -_ZN11ItemManager19func_ov000_020a86d0Ej kind:function(arm,size=0x58) addr:0x020a9ed0 -_ZN11ItemManager19func_ov000_020a8728Ev kind:function(arm,size=0x20) addr:0x020a9f28 -_ZN11ItemManager19func_ov000_020a8748Ev kind:function(arm,size=0x20) addr:0x020a9f48 +_ZN11ItemManager13GetItemAmountEj kind:function(arm,size=0x58) addr:0x020a9ed0 +_ZN11ItemManager17GetQuiverCapacityEv kind:function(arm,size=0x20) addr:0x020a9f28 +_ZN11ItemManager18GetBombBagCapacityEv kind:function(arm,size=0x20) addr:0x020a9f48 _ZN11ItemManager10GiveRupeesEibb kind:function(arm,size=0x60) addr:0x020a9f68 -_ZN11ItemManager19func_ov000_020a87c8Ei kind:function(arm,size=0x24) addr:0x020a9fc8 -_ZN11ItemManager19func_ov000_020a87ecEi kind:function(arm,size=0x34) addr:0x020a9fec -_ZN11ItemManager19func_ov000_020a8820Ei kind:function(arm,size=0x34) addr:0x020aa020 -_ZN11ItemManager19func_ov000_020a8854Ev kind:function(arm,size=0x38) addr:0x020aa054 -_ZN11ItemManager19func_ov000_020a888cEj kind:function(arm,size=0x3c) addr:0x020aa08c -_ZN11ItemManager19func_ov000_020a88c8Ev kind:function(arm,size=0x2c) addr:0x020aa0c8 -_ZN11ItemManager19func_ov000_020a88f4Ev kind:function(arm,size=0x2c) addr:0x020aa0f4 -_ZN11ItemManager19func_ov000_020a8920Ev kind:function(arm,size=0x28) addr:0x020aa120 -_ZN11ItemManager19func_ov000_020a8948Ev kind:function(arm,size=0x2c) addr:0x020aa148 +_ZN11ItemManager13GiveSmallKeysEi kind:function(arm,size=0x24) addr:0x020a9fc8 +_ZN11ItemManager10GiveArrowsEi kind:function(arm,size=0x34) addr:0x020a9fec +_ZN11ItemManager9GiveBombsEi kind:function(arm,size=0x34) addr:0x020aa020 +_ZN11ItemManager18TryEquipForcedItemEv kind:function(arm,size=0x38) addr:0x020aa054 +_ZN11ItemManager10GivePotionEj kind:function(arm,size=0x3c) addr:0x020aa08c +_ZN11ItemManager9HasPotionEv kind:function(arm,size=0x2c) addr:0x020aa0c8 +_ZN11ItemManager15HasPurplePotionEv kind:function(arm,size=0x2c) addr:0x020aa0f4 +_ZN11ItemManager18RemovePurplePotionEv kind:function(arm,size=0x28) addr:0x020aa120 +_ZN11ItemManager15PotionSlotsFullEv kind:function(arm,size=0x2c) addr:0x020aa148 _ZN11ItemManager19func_ov000_020a8974Ej kind:function(arm,size=0x10) addr:0x020aa174 -_ZN11ItemManager19func_ov000_020a8984Ei kind:function(arm,size=0x38) addr:0x020aa184 +_ZN11ItemManager19GetEquippedItemFlagEi kind:function(arm,size=0x38) addr:0x020aa184 _ZN11ItemManager19func_ov000_020a89bcEv kind:function(thumb,size=0x18) addr:0x020aa1bc _ZN11ItemManager19func_ov000_020a89d4Ev kind:function(arm,size=0x38) addr:0x020aa1d4 _ZN11ItemManager19func_ov000_020a8a0cEv kind:function(arm,size=0x50) addr:0x020aa20c diff --git a/config/jp/arm9/overlays/ov001/delinks.txt b/config/jp/arm9/overlays/ov001/delinks.txt index cdbb2a1d..5b3fbd11 100644 --- a/config/jp/arm9/overlays/ov001/delinks.txt +++ b/config/jp/arm9/overlays/ov001/delinks.txt @@ -12,3 +12,10 @@ src/001_SceneInit/Actor/ActorManager_001.cpp: src/001_SceneInit/Item/ItemManager_001.cpp: .text start:0x020bd240 end:0x020bd29c + +src/001_SceneInit/CargoManager_001.cpp: + complete + .text start:0x020c1054 end:0x020c10c4 + +src/001_SceneInit/PassengerManager_001.cpp: + .text start:0x020c10c4 end:0x020c12a4 diff --git a/config/jp/arm9/overlays/ov001/relocs.txt b/config/jp/arm9/overlays/ov001/relocs.txt index 1a196265..8485b1b6 100644 --- a/config/jp/arm9/overlays/ov001/relocs.txt +++ b/config/jp/arm9/overlays/ov001/relocs.txt @@ -2029,7 +2029,7 @@ from:0x020c0e9e kind:thumb_call_arm to:0x02011f3c module:main from:0x020c0eb0 kind:thumb_call to:0x0205a1c8 module:overlay(0) from:0x020c0ec4 kind:thumb_call_arm to:0x02011f3c module:main from:0x020c0ed6 kind:thumb_call_arm to:0x02011f3c module:main -from:0x020c0ee8 kind:load to:0x020d8fc9 module:overlay(24) +from:0x020c0ee8 kind:load to:0x020d8fc8 add:0x1 module:overlay(24) from:0x020c0eec kind:load to:0x020d9010 module:overlay(24) from:0x020c0f00 kind:thumb_call_arm to:0x02012000 module:main from:0x020c0f0e kind:thumb_call_arm to:0x02012000 module:main diff --git a/config/jp/arm9/overlays/ov001/symbols.txt b/config/jp/arm9/overlays/ov001/symbols.txt index 807d3891..068a2e7e 100644 --- a/config/jp/arm9/overlays/ov001/symbols.txt +++ b/config/jp/arm9/overlays/ov001/symbols.txt @@ -387,20 +387,20 @@ func_ov001_020c0fbc kind:function(thumb,size=0x50) addr:0x020c0fbc func_ov001_020c100c kind:function(thumb,size=0x2e) addr:0x020c100c func_ov001_020c103c kind:function(thumb,size=0xc) addr:0x020c103c func_ov001_020c1048 kind:function(thumb,size=0xc) addr:0x020c1048 -func_ov001_020c1054 kind:function(thumb,size=0x22) addr:0x020c1054 -func_ov001_020c1078 kind:function(thumb,size=0xc) addr:0x020c1078 -func_ov001_020c1084 kind:function(thumb,size=0x28) addr:0x020c1084 -func_ov001_020c10ac kind:function(thumb,size=0xc) addr:0x020c10ac -func_ov001_020c10b8 kind:function(thumb,size=0xc) addr:0x020c10b8 -func_ov001_020c10c4 kind:function(thumb,size=0x44) addr:0x020c10c4 -func_ov001_020c1108 kind:function(thumb,size=0x24) addr:0x020c1108 -func_ov001_020c112c kind:function(thumb,size=0xc) addr:0x020c112c -func_ov001_020c1138 kind:function(thumb,size=0x28) addr:0x020c1138 -func_ov001_020c1160 kind:function(thumb,size=0x2) addr:0x020c1160 -func_ov001_020c1164 kind:function(thumb,size=0x10c) addr:0x020c1164 -func_ov001_020c1270 kind:function(thumb,size=0x1c) addr:0x020c1270 -func_ov001_020c128c kind:function(thumb,size=0xc) addr:0x020c128c -func_ov001_020c1298 kind:function(thumb,size=0xc) addr:0x020c1298 +_ZN12CargoManagerC1Ev kind:function(thumb,size=0x22) addr:0x020c1054 +_ZN12CargoManagerD1Ev kind:function(thumb,size=0xc) addr:0x020c1078 +_ZN12CargoManager19func_ov001_020bf830Ev kind:function(thumb,size=0x28) addr:0x020c1084 +_ZN12CargoManager11SetInstanceEPS_ kind:function(thumb,size=0xc) addr:0x020c10ac +_ZN12CargoManager13ClearInstanceEv kind:function(thumb,size=0xc) addr:0x020c10b8 +_ZN16PassengerManager19func_ov001_020bf870Ev kind:function(thumb,size=0x44) addr:0x020c10c4 +_ZN16PassengerManagerC1Ev kind:function(thumb,size=0x24) addr:0x020c1108 +_ZN16PassengerManagerD1Ev kind:function(thumb,size=0xc) addr:0x020c112c +_ZN16PassengerManager19func_ov001_020bf8e4Ev kind:function(thumb,size=0x28) addr:0x020c1138 +_ZN16PassengerManager19func_ov001_020bf90cEv kind:function(thumb,size=0x2) addr:0x020c1160 +_ZN16PassengerManager19func_ov001_020bf910Ev kind:function(thumb,size=0x10c) addr:0x020c1164 +_ZN16PassengerManager19func_ov001_020bfa1cEv kind:function(thumb,size=0x1c) addr:0x020c1270 +_ZN16PassengerManager11SetInstanceEPS_ kind:function(thumb,size=0xc) addr:0x020c128c +_ZN16PassengerManager13ClearInstanceEv kind:function(thumb,size=0xc) addr:0x020c1298 func_ov001_020c12a4 kind:function(thumb,size=0xc2) addr:0x020c12a4 func_ov001_020c1368 kind:function(thumb,size=0xc) addr:0x020c1368 func_ov001_020c1374 kind:function(thumb,size=0x1a0) addr:0x020c1374 diff --git a/config/jp/arm9/overlays/ov017/delinks.txt b/config/jp/arm9/overlays/ov017/delinks.txt index 04d66403..7b05a00d 100644 --- a/config/jp/arm9/overlays/ov017/delinks.txt +++ b/config/jp/arm9/overlays/ov017/delinks.txt @@ -4,3 +4,8 @@ .ctor start:0x020c570c end:0x020c5718 kind:rodata align:4 .data start:0x020c5720 end:0x020c5780 kind:data align:32 .bss start:0x020c5780 end:0x020c6060 kind:bss align:32 + +src/017_CourseExec/CargoManager_017.cpp: + complete + .text start:0x020c01f8 end:0x020c0504 + .rodata start:0x020c55ec end:0x020c5618 diff --git a/config/jp/arm9/overlays/ov017/relocs.txt b/config/jp/arm9/overlays/ov017/relocs.txt index 157ed6ce..99ed843d 100644 --- a/config/jp/arm9/overlays/ov017/relocs.txt +++ b/config/jp/arm9/overlays/ov017/relocs.txt @@ -375,22 +375,22 @@ from:0x020c0358 kind:arm_call to:0x020cec30 module:overlay(24) from:0x020c0370 kind:load to:0x027e09a4 module:dtcm from:0x020c0374 kind:load to:0x020c55ec module:overlay(17) from:0x020c0378 kind:load to:0x020da038 module:overlay(24) -from:0x020c037c kind:load to:0x020c55f0 module:overlay(17) +from:0x020c037c kind:load to:0x020c55ec add:0x4 module:overlay(17) from:0x020c03a4 kind:arm_call to:0x0205decc module:overlay(0) from:0x020c03a8 kind:arm_call to:0x020d6688 module:overlay(24) from:0x020c03d0 kind:arm_call to:0x0205decc module:overlay(0) from:0x020c03d8 kind:arm_call to:0x020d6688 module:overlay(24) from:0x020c03e4 kind:arm_call to:0x020d6638 module:overlay(24) -from:0x020c03f0 kind:arm_call to:0x020cec60 module:overlays(20,24) +from:0x020c03f0 kind:arm_call to:0x020cec60 module:overlay(24) from:0x020c03fc kind:arm_call to:0x020cec40 module:overlay(24) from:0x020c0404 kind:load to:0x020da038 module:overlay(24) from:0x020c0430 kind:arm_call to:0x020c0498 module:overlay(17) from:0x020c043c kind:arm_call to:0x020cec20 module:overlay(24) -from:0x020c0444 kind:load to:0x020c55ee module:overlay(17) +from:0x020c0444 kind:load to:0x020c55ec add:0x2 module:overlay(17) from:0x020c0448 kind:load to:0x020da038 module:overlay(24) from:0x020c047c kind:arm_call to:0x020c0498 module:overlay(17) from:0x020c0488 kind:arm_call to:0x020cec20 module:overlay(24) -from:0x020c0490 kind:load to:0x020c55ef module:overlay(17) +from:0x020c0490 kind:load to:0x020c55ec add:0x3 module:overlay(17) from:0x020c0494 kind:load to:0x020da038 module:overlay(24) from:0x020c04d4 kind:arm_call to:0x01ffd3d8 module:itcm from:0x020c04f4 kind:arm_call to:0x02108d04 module:overlay(26) diff --git a/config/jp/arm9/overlays/ov017/symbols.txt b/config/jp/arm9/overlays/ov017/symbols.txt index 895d606a..bec6d87d 100644 --- a/config/jp/arm9/overlays/ov017/symbols.txt +++ b/config/jp/arm9/overlays/ov017/symbols.txt @@ -40,15 +40,15 @@ func_ov017_020bfb18 kind:function(arm,size=0x148) addr:0x020bfb18 func_ov017_020bfc60 kind:function(arm,size=0x18) addr:0x020bfc60 func_ov017_020bfc78 kind:function(arm,size=0x45c) addr:0x020bfc78 func_ov017_020c00d4 kind:function(arm,size=0x124) addr:0x020c00d4 -func_ov017_020c01f8 kind:function(arm,size=0x18) addr:0x020c01f8 -func_ov017_020c0210 kind:function(arm,size=0x30) addr:0x020c0210 -func_ov017_020c0240 kind:function(arm,size=0x140) addr:0x020c0240 -func_ov017_020c0380 kind:function(arm,size=0x30) addr:0x020c0380 -func_ov017_020c03b0 kind:function(arm,size=0x58) addr:0x020c03b0 -func_ov017_020c0408 kind:function(arm,size=0x44) addr:0x020c0408 -func_ov017_020c044c kind:function(arm,size=0x4c) addr:0x020c044c -func_ov017_020c0498 kind:function(arm,size=0x30) addr:0x020c0498 -func_ov017_020c04c8 kind:function(arm,size=0x3c) addr:0x020c04c8 +_ZN12CargoManager8DoUpdateEv kind:function(arm,size=0x18) addr:0x020c01f8 +_ZN12CargoManager15IsNotUsingTimerEi kind:function(arm,size=0x30) addr:0x020c0210 +_ZN12CargoManager6UpdateEv kind:function(arm,size=0x140) addr:0x020c0240 +_ZN12CargoManager5ResetEv kind:function(arm,size=0x30) addr:0x020c0380 +_ZN12CargoManager4InitEii kind:function(arm,size=0x58) addr:0x020c03b0 +_ZN12CargoManager19func_ov017_020bebdcEv kind:function(arm,size=0x44) addr:0x020c0408 +_ZN12CargoManager19func_ov017_020bec20Ev kind:function(arm,size=0x4c) addr:0x020c044c +_ZN12CargoManager12RemoveAmountEi kind:function(arm,size=0x30) addr:0x020c0498 +_ZN12CargoManager19func_ov017_020bec9cEv kind:function(arm,size=0x3c) addr:0x020c04c8 func_ov017_020c0504 kind:function(arm,size=0x148) addr:0x020c0504 func_ov017_020c064c kind:function(arm,size=0x44) addr:0x020c064c func_ov017_020c0690 kind:function(arm,size=0x20) addr:0x020c0690 @@ -167,10 +167,7 @@ func_ov017_020c53ec kind:function(arm,size=0xa4) addr:0x020c53ec func_ov017_020c5490 kind:function(arm,size=0x40) addr:0x020c5490 func_ov017_020c54d0 kind:function(arm,size=0xf4) addr:0x020c54d0 func_ov017_020c55c4 kind:function(arm,size=0x28) addr:0x020c55c4 -data_ov017_020c55ec kind:data(any) addr:0x020c55ec -data_ov017_020c55ee kind:data(any) addr:0x020c55ee -data_ov017_020c55ef kind:data(any) addr:0x020c55ef -data_ov017_020c55f0 kind:data(any) addr:0x020c55f0 +sCargoInfos kind:data(byte[42]) addr:0x020c55ec local data_ov017_020c5618 kind:data(any) addr:0x020c5618 __sinit_ov017_020c5650 kind:function(arm,size=0x6c) addr:0x020c5650 __sinit_ov017_020c56bc kind:function(arm,size=0x38) addr:0x020c56bc diff --git a/config/jp/arm9/overlays/ov024/delinks.txt b/config/jp/arm9/overlays/ov024/delinks.txt index afb3b463..c9ba6ffb 100644 --- a/config/jp/arm9/overlays/ov024/delinks.txt +++ b/config/jp/arm9/overlays/ov024/delinks.txt @@ -5,6 +5,14 @@ .data start:0x020d9500 end:0x020da000 kind:data align:32 .bss start:0x020da000 end:0x020da0c0 kind:bss align:32 +src/024_MainGame/PassengerManager.cpp: + .text start:0x020d5a74 end:0x020d6008 + .rodata start:0x020d8f48 end:0x020d8fc8 + +src/024_MainGame/CargoManager_024.cpp: + complete + .text start:0x020d7258 end:0x020d72dc + src/024_MainGame/MiscAdvManager.cpp: .text start:0x020d7c58 end:0x020d7ff4 diff --git a/config/jp/arm9/overlays/ov024/relocs.txt b/config/jp/arm9/overlays/ov024/relocs.txt index d9134711..dc7f861a 100644 --- a/config/jp/arm9/overlays/ov024/relocs.txt +++ b/config/jp/arm9/overlays/ov024/relocs.txt @@ -2180,9 +2180,9 @@ from:0x020d59e8 kind:load to:0x020d8f1c module:overlay(24) from:0x020d5a40 kind:arm_call_thumb to:0x020d56ec module:overlay(24) from:0x020d5aa0 kind:load to:0x020d8f48 module:overlay(24) from:0x020d5aa8 kind:arm_call to:0x020d5a74 module:overlay(24) -from:0x020d5ac4 kind:load to:0x020d8f4c module:overlay(24) +from:0x020d5ac4 kind:load to:0x020d8f48 add:0x4 module:overlay(24) from:0x020d5acc kind:arm_call to:0x020d5a74 module:overlay(24) -from:0x020d5ae8 kind:load to:0x020d8f4e module:overlay(24) +from:0x020d5ae8 kind:load to:0x020d8f48 add:0x6 module:overlay(24) from:0x020d5afc kind:arm_call to:0x02011f3c module:main from:0x020d5b08 kind:arm_call_thumb to:0x020c1108 module:overlay(1) from:0x020d5b40 kind:arm_call to:0x020d5b7c module:overlay(24) @@ -2246,7 +2246,7 @@ from:0x020d620c kind:load to:0x020d9000 module:overlay(24) from:0x020d6210 kind:load to:0x020d8ff0 module:overlay(24) from:0x020d6214 kind:load to:0x020d8fe0 module:overlay(24) from:0x020d6218 kind:load to:0x020d8fd0 module:overlay(24) -from:0x020d6228 kind:load to:0x020d8fc9 module:overlay(24) +from:0x020d6228 kind:load to:0x020d8fc8 add:0x1 module:overlay(24) from:0x020d6258 kind:arm_call to:0x020d6b18 module:overlay(24) from:0x020d6264 kind:arm_call_thumb to:0x02059f64 module:overlay(0) from:0x020d62a8 kind:arm_call to:0x020d68ac module:overlay(24) diff --git a/config/jp/arm9/overlays/ov024/symbols.txt b/config/jp/arm9/overlays/ov024/symbols.txt index 9c75f006..80f7a5bd 100644 --- a/config/jp/arm9/overlays/ov024/symbols.txt +++ b/config/jp/arm9/overlays/ov024/symbols.txt @@ -351,11 +351,11 @@ func_ov024_020ceb98 kind:function(arm,size=0x10) addr:0x020ceb98 func_ov024_020ceba8 kind:function(arm,size=0x10) addr:0x020ceba8 _ZN18UnkStruct_020d869819func_ov024_020cd368Ebb kind:function(arm,size=0x3c) addr:0x020cebb8 func_ov024_020cebf4 kind:function(arm,size=0x2c) addr:0x020cebf4 -func_ov024_020cec20 kind:function(arm,size=0x10) addr:0x020cec20 -func_ov024_020cec30 kind:function(arm,size=0x10) addr:0x020cec30 -func_ov024_020cec40 kind:function(arm,size=0x10) addr:0x020cec40 +_ZN18UnkStruct_020d869819func_ov024_020cd3d0Ev kind:function(arm,size=0x10) addr:0x020cec20 +_ZN18UnkStruct_020d869819func_ov024_020cd3e0Ei kind:function(arm,size=0x10) addr:0x020cec30 +_ZN18UnkStruct_020d869819func_ov024_020cd3f0Ei kind:function(arm,size=0x10) addr:0x020cec40 func_ov024_020cec50 kind:function(arm,size=0x10) addr:0x020cec50 -func_ov024_020cec60 kind:function(arm,size=0x10) addr:0x020cec60 +_ZN18UnkStruct_020d869819func_ov024_020cd410Ev kind:function(arm,size=0x10) addr:0x020cec60 func_ov024_020cec70 kind:function(arm,size=0x38) addr:0x020cec70 _ZN18UnkStruct_020d869819func_ov024_020cd458Eji kind:function(arm,size=0x4c) addr:0x020ceca8 func_ov024_020cecf4 kind:function(arm,size=0x40) addr:0x020cecf4 @@ -567,7 +567,7 @@ func_ov024_020d56d4 kind:function(thumb,size=0x18) addr:0x020d56d4 _ZN21UnkStruct_027e0ce0_3419func_ov024_020d3d98Eii kind:function(thumb,size=0x10) addr:0x020d56ec func_ov024_020d56fc kind:function(thumb,size=0x16) addr:0x020d56fc func_ov024_020d5714 kind:function(thumb,size=0xa) addr:0x020d5714 -func_ov024_020d5720 kind:function(thumb,size=0x20) addr:0x020d5720 +_ZN21UnkStruct_027e0ce0_3419func_ov024_020d3dccEv kind:function(thumb,size=0x20) addr:0x020d5720 func_ov024_020d5740 kind:function(arm,size=0x20) addr:0x020d5740 func_ov024_020d5760 kind:function(arm,size=0x24) addr:0x020d5760 func_ov024_020d5784 kind:function(arm,size=0x38) addr:0x020d5784 @@ -579,33 +579,33 @@ func_ov024_020d591c kind:function(arm,size=0x40) addr:0x020d591c func_ov024_020d595c kind:function(arm,size=0x44) addr:0x020d595c func_ov024_020d59a0 kind:function(arm,size=0x4c) addr:0x020d59a0 func_ov024_020d59ec kind:function(arm,size=0x88) addr:0x020d59ec -func_ov024_020d5a74 kind:function(arm,size=0x30) addr:0x020d5a74 -func_ov024_020d5aa4 kind:function(arm,size=0x24) addr:0x020d5aa4 -func_ov024_020d5ac8 kind:function(arm,size=0x24) addr:0x020d5ac8 -func_ov024_020d5aec kind:function(arm,size=0x24) addr:0x020d5aec -func_ov024_020d5b10 kind:function(arm,size=0x38) addr:0x020d5b10 -func_ov024_020d5b48 kind:function(arm,size=0x34) addr:0x020d5b48 -func_ov024_020d5b7c kind:function(arm,size=0x30) addr:0x020d5b7c -func_ov024_020d5bac kind:function(arm,size=0x30) addr:0x020d5bac -func_ov024_020d5bdc kind:function(arm,size=0x7c) addr:0x020d5bdc -func_ov024_020d5c58 kind:function(arm,size=0x28) addr:0x020d5c58 -func_ov024_020d5c80 kind:function(arm,size=0x50) addr:0x020d5c80 -func_ov024_020d5cd0 kind:function(arm,size=0x34) addr:0x020d5cd0 -func_ov024_020d5d04 kind:function(arm,size=0x3c) addr:0x020d5d04 -func_ov024_020d5d40 kind:function(arm,size=0x48) addr:0x020d5d40 -func_ov024_020d5d88 kind:function(arm,size=0x54) addr:0x020d5d88 -func_ov024_020d5ddc kind:function(arm,size=0x8) addr:0x020d5ddc -func_ov024_020d5de4 kind:function(arm,size=0x30) addr:0x020d5de4 -func_ov024_020d5e14 kind:function(arm,size=0x3c) addr:0x020d5e14 -func_ov024_020d5e50 kind:function(arm,size=0x24) addr:0x020d5e50 -func_ov024_020d5e74 kind:function(arm,size=0x8) addr:0x020d5e74 -func_ov024_020d5e7c kind:function(arm,size=0x2c) addr:0x020d5e7c -func_ov024_020d5ea8 kind:function(arm,size=0x10) addr:0x020d5ea8 -func_ov024_020d5eb8 kind:function(arm,size=0x4c) addr:0x020d5eb8 -func_ov024_020d5f04 kind:function(arm,size=0x14) addr:0x020d5f04 -func_ov024_020d5f18 kind:function(arm,size=0x1c) addr:0x020d5f18 -func_ov024_020d5f34 kind:function(arm,size=0x5c) addr:0x020d5f34 -func_ov024_020d5f90 kind:function(arm,size=0x78) addr:0x020d5f90 +_ZN16PassengerManager21GetPassengerInfoIndexEj kind:function(arm,size=0x30) addr:0x020d5a74 +_ZN16PassengerManager12GetBoardFlagEj kind:function(arm,size=0x24) addr:0x020d5aa4 +_ZN16PassengerManager11GetFailFlagEj kind:function(arm,size=0x24) addr:0x020d5ac8 +_ZN16PassengerManager6CreateEv kind:function(arm,size=0x24) addr:0x020d5aec +_ZN16PassengerManager19func_ov024_020d41bcEP16UnkStruct_Param1 kind:function(arm,size=0x38) addr:0x020d5b10 +_ZN16PassengerManager19func_ov024_020d41f4EP16UnkStruct_Param1 kind:function(arm,size=0x34) addr:0x020d5b48 +_ZN16PassengerManager19func_ov024_020d4228Ev kind:function(arm,size=0x30) addr:0x020d5b7c +_ZN16PassengerManager19func_ov024_020d4258Ev kind:function(arm,size=0x30) addr:0x020d5bac +_ZN16PassengerManager13TryBoardTrainEjjj kind:function(arm,size=0x7c) addr:0x020d5bdc +_ZN16PassengerManager8TryResetEv kind:function(arm,size=0x28) addr:0x020d5c58 +_ZN16PassengerManager21TryResetAtDestinationEv kind:function(arm,size=0x50) addr:0x020d5c80 +_ZN16PassengerManager18ReachedDestinationEjj kind:function(arm,size=0x34) addr:0x020d5cd0 +_ZN16PassengerManager21TrySetCaughtByPiratesEv kind:function(arm,size=0x3c) addr:0x020d5d04 +_ZN16PassengerManager23CaughtByPiratesTryResetEv kind:function(arm,size=0x48) addr:0x020d5d40 +_ZN16PassengerManager13GiveHappinessEi kind:function(arm,size=0x54) addr:0x020d5d88 +_ZN16PassengerManager12GetHappinessEv kind:function(arm,size=0x8) addr:0x020d5ddc +_ZN16PassengerManager16GetHappinessCondEv kind:function(arm,size=0x30) addr:0x020d5de4 +_ZN16PassengerManager15CanCompleteTripEv kind:function(arm,size=0x3c) addr:0x020d5e14 +_ZN16PassengerManager17IsCaughtByPiratesEv kind:function(arm,size=0x24) addr:0x020d5e50 +_ZN16PassengerManager10GetActorIdEv kind:function(arm,size=0x8) addr:0x020d5e74 +_ZN16PassengerManager11GetInstanceEv kind:function(arm,size=0x2c) addr:0x020d5e7c +_ZN16PassengerManager19func_ov024_020d4554Ev kind:function(arm,size=0x10) addr:0x020d5ea8 +_ZN16PassengerManager5ResetEv kind:function(arm,size=0x4c) addr:0x020d5eb8 +_ZN16PassengerManager11IsDateUnsetEv kind:function(arm,size=0x14) addr:0x020d5f04 +_ZN16PassengerManager7GetDateEv kind:function(arm,size=0x1c) addr:0x020d5f18 +_ZN16PassengerManager14GetRandomIndexEji kind:function(arm,size=0x5c) addr:0x020d5f34 +_ZN16PassengerManager13SetFailedFlagEv kind:function(arm,size=0x78) addr:0x020d5f90 func_ov024_020d6008 kind:function(arm,size=0x10) addr:0x020d6008 func_ov024_020d6018 kind:function(arm,size=0x70) addr:0x020d6018 func_ov024_020d6088 kind:function(arm,size=0x60) addr:0x020d6088 @@ -623,8 +623,8 @@ func_ov024_020d6408 kind:function(arm,size=0x40) addr:0x020d6408 func_ov024_020d6448 kind:function(arm,size=0xcc) addr:0x020d6448 func_ov024_020d6514 kind:function(arm,size=0x5c) addr:0x020d6514 func_ov024_020d6570 kind:function(arm,size=0xc8) addr:0x020d6570 -func_ov024_020d6638 kind:function(arm,size=0x50) addr:0x020d6638 -func_ov024_020d6688 kind:function(arm,size=0x34) addr:0x020d6688 +_ZN18UnkStruct_027e0d0019func_ov024_020d4cc0Ei kind:function(arm,size=0x50) addr:0x020d6638 +_ZN18UnkStruct_027e0d0019func_ov024_020d4d10Ev kind:function(arm,size=0x34) addr:0x020d6688 func_ov024_020d66bc kind:function(arm,size=0x54) addr:0x020d66bc func_ov024_020d6710 kind:function(arm,size=0x8c) addr:0x020d6710 func_ov024_020d679c kind:function(arm,size=0x44) addr:0x020d679c @@ -653,11 +653,11 @@ func_ov024_020d6e94 kind:function(arm,size=0x4) addr:0x020d6e94 func_ov024_020d6e98 kind:function(arm,size=0x138) addr:0x020d6e98 func_ov024_020d6fd0 kind:function(arm,size=0x240) addr:0x020d6fd0 func_ov024_020d7210 kind:function(arm,size=0x48) addr:0x020d7210 -func_ov024_020d7258 kind:function(arm,size=0x24) addr:0x020d7258 -func_ov024_020d727c kind:function(arm,size=0x14) addr:0x020d727c -func_ov024_020d7290 kind:function(arm,size=0x14) addr:0x020d7290 -func_ov024_020d72a4 kind:function(arm,size=0x1c) addr:0x020d72a4 -func_ov024_020d72c0 kind:function(arm,size=0x1c) addr:0x020d72c0 +_ZN12CargoManager6CreateEv kind:function(arm,size=0x24) addr:0x020d7258 +_ZN12CargoManager8SetCargoEii kind:function(arm,size=0x14) addr:0x020d727c +_ZN12CargoManager16GetTypeAndAmountEPiS0_ kind:function(arm,size=0x14) addr:0x020d7290 +_ZN12CargoManager19func_ov024_020d5900Ev kind:function(arm,size=0x1c) addr:0x020d72a4 +_ZN12CargoManager19func_ov024_020d591cEv kind:function(arm,size=0x1c) addr:0x020d72c0 func_ov024_020d72dc kind:function(arm,size=0x40) addr:0x020d72dc func_ov024_020d731c kind:function(arm,size=0x18) addr:0x020d731c func_ov024_020d7334 kind:function(arm,size=0x16c) addr:0x020d7334 @@ -742,10 +742,8 @@ data_ov024_020d8f14 kind:data(any) addr:0x020d8f14 data_ov024_020d8f1c kind:data(any) addr:0x020d8f1c data_ov024_020d8f2c kind:data(any) addr:0x020d8f2c data_ov024_020d8f3c kind:data(any) addr:0x020d8f3c ambiguous -data_ov024_020d8f48 kind:data(any) addr:0x020d8f48 -data_ov024_020d8f4c kind:data(any) addr:0x020d8f4c -data_ov024_020d8f4e kind:data(any) addr:0x020d8f4e -data_ov024_020d8fc9 kind:data(any) addr:0x020d8fc9 +sPassengerInfos kind:data(any) addr:0x020d8f48 +data_ov024_020d8fc8 kind:data(any) addr:0x020d8fc8 data_ov024_020d8fd0 kind:data(any) addr:0x020d8fd0 data_ov024_020d8fe0 kind:data(any) addr:0x020d8fe0 data_ov024_020d8ff0 kind:data(any) addr:0x020d8ff0 diff --git a/config/jp/arm9/overlays/ov026/symbols.txt b/config/jp/arm9/overlays/ov026/symbols.txt index a05c43f7..5b9bf9c6 100644 --- a/config/jp/arm9/overlays/ov026/symbols.txt +++ b/config/jp/arm9/overlays/ov026/symbols.txt @@ -1127,7 +1127,7 @@ func_ov026_02108ce0 kind:function(arm,size=0x4) addr:0x02108ce0 func_ov026_02108ce4 kind:function(arm,size=0x4) addr:0x02108ce4 func_ov026_02108ce8 kind:function(arm,size=0x8) addr:0x02108ce8 func_ov026_02108cf0 kind:function(arm,size=0x14) addr:0x02108cf0 -func_ov026_02108d04 kind:function(arm,size=0x14) addr:0x02108d04 +_ZN25UnkStruct_027e0cd8_0c_16019func_ov026_02106aa8Ev kind:function(arm,size=0x14) addr:0x02108d04 func_ov026_02108d18 kind:function(arm,size=0x84) addr:0x02108d18 func_ov026_02108d9c kind:function(arm,size=0x4c) addr:0x02108d9c func_ov026_02108de8 kind:function(arm,size=0x64) addr:0x02108de8 diff --git a/include/Actor/ActorUnkSWTM.hpp b/include/Actor/ActorUnkSWTM.hpp index 9b5c76a4..ca23f625 100644 --- a/include/Actor/ActorUnkSWTM.hpp +++ b/include/Actor/ActorUnkSWTM.hpp @@ -26,9 +26,9 @@ public: /* A4 */ u32 mUnk_A4; /* A8 */ u32 mUnk_A8; /* AC */ bool mUnk_AC; - /* AC */ unk8 mUnk_AD; // pad? - /* AC */ unk8 mUnk_AE; // pad? - /* AC */ unk8 mUnk_AF; // pad? + /* AC */ unk8 mUnk_AD; // pad? + /* AC */ unk8 mUnk_AE; // pad? + /* AC */ unk8 mUnk_AF; // pad? /* B0 */ ActorUnkSWTM_B0 mUnk_B0[5]; // unused? /* C4 */ diff --git a/include/Cutscene/Cutscene.hpp b/include/Cutscene/Cutscene.hpp index d857fd69..cd21c789 100644 --- a/include/Cutscene/Cutscene.hpp +++ b/include/Cutscene/Cutscene.hpp @@ -17,20 +17,20 @@ enum CutsceneIndex_ { /* 8 */ CutsceneIndex_WalkingToSpiritTower, /* 9 */ CutsceneIndex_FirstAnjeanMeeting, /* 10 */ CutsceneIndex_FirstPhantomPossession, - /* 11 */ CutsceneIndex_ForestTempleCompleted_01, // Altar appearing in boss room - /* 12 */ CutsceneIndex_ForestTempleCompleted_02, // Forest Realm Spirit Tracks restoring - /* 13 */ CutsceneIndex_ForestTempleCompleted_03, // First part of Spirit Tower split re-attatching - /* 14 */ CutsceneIndex_BlizzardTempleCompleted_01, // Altar appearing in boss room - /* 15 */ CutsceneIndex_BlizzardTempleCompleted_02, // Snow Realm Spirit Tracks restoring - /* 16 */ CutsceneIndex_BlizzardTempleCompleted_03, // Second part of Spirit Tower split re-attatching - /* 17 */ CutsceneIndex_MarineTempleCompleted_01, // Altar appearing in boss room - /* 18 */ CutsceneIndex_MarineTempleCompleted_02, // Ocean Realm Spirit Tracks restoring - /* 19 */ CutsceneIndex_MarineTempleCompleted_03, // Third part of Spirit Tower split re-attatching + /* 11 */ CutsceneIndex_ForestTempleCompleted_01, // Altar appearing in boss room + /* 12 */ CutsceneIndex_ForestTempleCompleted_02, // Forest Realm Spirit Tracks restoring + /* 13 */ CutsceneIndex_ForestTempleCompleted_03, // First part of Spirit Tower split re-attatching + /* 14 */ CutsceneIndex_BlizzardTempleCompleted_01, // Altar appearing in boss room + /* 15 */ CutsceneIndex_BlizzardTempleCompleted_02, // Snow Realm Spirit Tracks restoring + /* 16 */ CutsceneIndex_BlizzardTempleCompleted_03, // Second part of Spirit Tower split re-attatching + /* 17 */ CutsceneIndex_MarineTempleCompleted_01, // Altar appearing in boss room + /* 18 */ CutsceneIndex_MarineTempleCompleted_02, // Ocean Realm Spirit Tracks restoring + /* 19 */ CutsceneIndex_MarineTempleCompleted_03, // Third part of Spirit Tower split re-attatching /* 20 */ CutsceneIndex_StavenInTOSAfterFireGlyph_01, // Staven appearing in ToS /* 21 */ CutsceneIndex_StavenInTOSAfterFireGlyph_02, // Zelda and Link falling inside tower's lobby - /* 22 */ CutsceneIndex_MountainTempleCompleted_01, // Altar appearing in boss room - /* 23 */ CutsceneIndex_MountainTempleCompleted_02, // Fire Realm Spirit Tracks restoring - /* 24 */ CutsceneIndex_MountainTempleCompleted_03, // Fourth part of Spirit Tower split re-attatching + /* 22 */ CutsceneIndex_MountainTempleCompleted_01, // Altar appearing in boss room + /* 23 */ CutsceneIndex_MountainTempleCompleted_02, // Fire Realm Spirit Tracks restoring + /* 24 */ CutsceneIndex_MountainTempleCompleted_03, // Fourth part of Spirit Tower split re-attatching /* 25 */ CutsceneIndex_StavenPreBattle, /* 26 */ CutsceneIndex_StavenPostBattle, /* 27 */ CutsceneIndex_MalladusOnTOSSummit_01, // Malladus appearing diff --git a/include/FileSelect/FileSelectMicTest.hpp b/include/FileSelect/FileSelectMicTest.hpp index 2bc06f4b..c0c65613 100644 --- a/include/FileSelect/FileSelectMicTest.hpp +++ b/include/FileSelect/FileSelectMicTest.hpp @@ -63,11 +63,11 @@ class FileSelectMicTest : public GameModeManagerBase_104 { public: /* 000 (base) */ /* 01C */ FSMicTestState mState; - /* 020 */ UnkSystem2_UnkSubSystem5 mUnk_020; // "mic test" string + /* 020 */ UnkSystem2_UnkSubSystem5 mUnk_020; // "mic test" string /* 258 */ UnkStruct_ov019_020d24c8_28_258 mUnk_258; // "mic test" background /* 270 */ UnkStruct_ov019_020d24c8_28_270 mUnk_270; // microphone level display (green to red bars + background) /* 304 */ UnkStruct_ov019_020d24c8_28_304 mUnk_304; // "go back" arrow - /* 3F8 */ UnkSystem2_UnkSubSystem5 mUnk_3F8; // "please face the mic" string + /* 3F8 */ UnkSystem2_UnkSubSystem5 mUnk_3F8; // "please face the mic" string /* 630 */ bool mUnk_630; /* 631 */ unk8 mUnk_631; /* 632 */ unk8 mUnk_632; diff --git a/include/FileSelect/FileSelectOptions.hpp b/include/FileSelect/FileSelectOptions.hpp index 91ccc5de..11d371a9 100644 --- a/include/FileSelect/FileSelectOptions.hpp +++ b/include/FileSelect/FileSelectOptions.hpp @@ -51,20 +51,20 @@ public: /* 0008 */ UnkStruct_ov019_020d24c8_28_258 mUnk_008; // message speed - /* 0020 */ UnkSystem2_UnkSubSystem5 mUnk_020; // label - /* 0258 */ UnkSystem2_UnkSubSystem5 mUnk_258; // current string + /* 0020 */ UnkSystem2_UnkSubSystem5 mUnk_020; // label + /* 0258 */ UnkSystem2_UnkSubSystem5 mUnk_258; // current string /* 0490 */ UnkSystem2_UnkSubSystem1_Derived1 mUnk_490; // left arrow /* 04F0 */ UnkSystem2_UnkSubSystem1_Derived1 mUnk_4F0; // right arrow // sound settings - /* 0550 */ UnkSystem2_UnkSubSystem5 mUnk_550; // label - /* 0788 */ UnkSystem2_UnkSubSystem5 mUnk_788; // current string + /* 0550 */ UnkSystem2_UnkSubSystem5 mUnk_550; // label + /* 0788 */ UnkSystem2_UnkSubSystem5 mUnk_788; // current string /* 09C0 */ UnkSystem2_UnkSubSystem1_Derived1 mUnk_9C0; // left arrow /* 0A20 */ UnkSystem2_UnkSubSystem1_Derived1 mUnk_A20; // right arrow // handedness - /* 0A80 */ UnkSystem2_UnkSubSystem5 mUnk_A80; // label - /* 0CB8 */ UnkSystem2_UnkSubSystem5 mUnk_CB8; // current type string + /* 0A80 */ UnkSystem2_UnkSubSystem5 mUnk_A80; // label + /* 0CB8 */ UnkSystem2_UnkSubSystem5 mUnk_CB8; // current type string /* 0EF0 */ UnkSystem2_UnkSubSystem1_Derived1 mUnk_EF0; // left arrow /* 0F50 */ UnkSystem2_UnkSubSystem1_Derived1 mUnk_F50; // right arrow diff --git a/include/Game/GameMode.hpp b/include/Game/GameMode.hpp index a7fae64f..306b8522 100644 --- a/include/Game/GameMode.hpp +++ b/include/Game/GameMode.hpp @@ -12,7 +12,7 @@ public: // data_02044018 vtable /* 00 */ virtual ~GameModeBase(); - /* 08 */ virtual void vfunc_08(); // Init + /* 08 */ virtual void vfunc_08(); // Init /* 0C */ virtual void vfunc_0C() = 0; // Update /* 10 */ virtual void vfunc_10(); /* 14 */ virtual void vfunc_14(); diff --git a/include/Item/Item.hpp b/include/Item/Item.hpp index 5671c329..d825d1ea 100644 --- a/include/Item/Item.hpp +++ b/include/Item/Item.hpp @@ -100,124 +100,124 @@ enum ItemFlag_ { typedef s32 ItemId; typedef s16 ItemId_s16; enum ItemId_ { - /* 0xFF */ ItemId_None = -1, - /* 0x00 */ ItemId_Nothing = 0, - /* 0x01 */ ItemId_NormalShield = 1, - /* 0x02 */ ItemId_NormalSword = 2, - /* 0x03 */ ItemId_Whirlwind = 3, - /* 0x04 */ ItemId_BombBag = 4, - /* 0x05 */ ItemId_NormalBow = 5, - /* 0x06 */ ItemId_Boomerang = 6, - /* 0x07 */ ItemId_Whip = 7, - /* 0x08 */ ItemId_SandRod = 8, - /* 0x09 */ ItemId_9 = 9, - /* 0x0A */ ItemId_NormalKey = 10, - /* 0x0B */ ItemId_BossKey = 11, - /* 0x0C */ ItemId_GreenRupee = 12, - /* 0x0D */ ItemId_BlueRupee = 13, - /* 0x0E */ ItemId_RedRupee = 14, - /* 0x0F */ ItemId_BigGreenRupee = 15, - /* 0x10 */ ItemId_BigRedRupee = 16, - /* 0x11 */ ItemId_BigGoldRupee = 17, - /* 0x12 */ ItemId_ForceGem_18 = 18, // kidnapped papuchia man - /* 0x13 */ ItemId_ForceGem_19 = 19, // ice for fish seller - /* 0x14 */ ItemId_ForceGem_20 = 20, // goron lava house ice - /* 0x15 */ ItemId_ForestGlyph = 21, - /* 0x16 */ ItemId_SnowGlyph = 22, - /* 0x17 */ ItemId_OceanGlyph = 23, - /* 0x18 */ ItemId_FireGlyph = 24, - /* 0x19 */ ItemId_25 = 25, // glyph after forest restoration song - /* 0x1A */ ItemId_26 = 26, // glyph after restoration song - /* 0x1B */ ItemId_27 = 27, // glyph after restoration song - /* 0x1C */ ItemId_28 = 28, // glyph after restoration song - /* 0x1D */ ItemId_29 = 29, // glyph after restoration song - /* 0x1E */ ItemId_FinalTrack = 30, // unlocks the endgame portal - /* 0x1F */ ItemId_31 = 31, - /* 0x20 */ ItemId_32 = 32, - /* 0x21 */ ItemId_33 = 33, - /* 0x22 */ ItemId_34 = 34, - /* 0x23 */ ItemId_ForceGem_35 = 35, // rightmost fire gem - /* 0x24 */ ItemId_ForceGem_36 = 36, // right snow gem - /* 0x25 */ ItemId_ForceGem_37 = 37, // top fire gem - /* 0x26 */ ItemId_RecruitUniform = 38, - /* 0x27 */ ItemId_PostmasterLetter = 39, - /* 0x28 */ ItemId_HeartContainer = 40, - /* 0x29 */ ItemId_QuiverMedium = 41, - /* 0x2A */ ItemId_BombBagMedium = 42, - /* 0x2B */ ItemId_ForceGem_43 = 43, // one of rightmost forest - /* 0x2C */ ItemId_ForceGem_44 = 44, // the other rightmost forest, but more middle than top - /* 0x2D */ ItemId_ForceGem_45 = 45, // the bottom-rightmost forest - /* 0x2E */ ItemId_ForceGem_46 = 46, // the top-rightmost fire - /* 0x2F */ ItemId_ForceGem_47 = 47, // the center forest - /* 0x30 */ ItemId_ForceGem_48 = 48, // the middle-left forest - /* 0x31 */ ItemId_ForceGem_49 = 49, // the below middle-left forest - /* 0x32 */ ItemId_ForceGem_50 = 50, - /* 0x33 */ ItemId_ForceGem_51 = 51, - /* 0x34 */ ItemId_ForceGem_52 = 52, - /* 0x35 */ ItemId_ForceGem_53 = 53, - /* 0x36 */ ItemId_ForceGem_54 = 54, - /* 0x37 */ ItemId_ForceGem_55 = 55, - /* 0x38 */ ItemId_ForceGem_56 = 56, - /* 0x39 */ ItemId_ForceGem_57 = 57, - /* 0x3A */ ItemId_ForceGem_58 = 58, - /* 0x3B */ ItemId_ForceGem_59 = 59, - /* 0x3C */ ItemId_ForceGem_60 = 60, - /* 0x3D */ ItemId_ForceGem_61 = 61, - /* 0x3E */ ItemId_PanFlute = 62, - /* 0x3F */ ItemId_StampBook = 63, - /* 0x40 */ ItemId_LightBow = 64, - /* 0x41 */ ItemId_LokomoSword = 65, - /* 0x42 */ ItemId_TenPriceCard = 66, - /* 0x43 */ ItemId_RedPotion = 67, - /* 0x44 */ ItemId_PurplePotion = 68, - /* 0x45 */ ItemId_YellowPotion = 69, - /* 0x46 */ ItemId_DemonFossil = 70, - /* 0x47 */ ItemId_StalfosSkull = 71, - /* 0x48 */ ItemId_StarFragment = 72, - /* 0x49 */ ItemId_BeeLarvae = 73, - /* 0x4A */ ItemId_WoodHeart = 74, - /* 0x4B */ ItemId_DarkPearlLoop = 75, - /* 0x4C */ ItemId_WhitePearlLoop = 76, - /* 0x4D */ ItemId_RutoCrown = 77, - /* 0x4E */ ItemId_DragonScale = 78, - /* 0x4F */ ItemId_PirateNecklace = 79, - /* 0x50 */ ItemId_PalaceDish = 80, - /* 0x51 */ ItemId_GoronAmber = 81, - /* 0x52 */ ItemId_MysticJade = 82, - /* 0x53 */ ItemId_AncientCoin = 83, - /* 0x54 */ ItemId_PricelessStone = 84, - /* 0x55 */ ItemId_RegalRing = 85, - /* 0x56 */ ItemId_ArrowsRefill = 86, - /* 0x57 */ ItemId_BombsRefill = 87, - /* 0x58 */ ItemId_SoldOutSign = 88, - /* 0x59 */ ItemId_AncientShield = 89, - /* 0x5A */ ItemId_QuiverLarge = 90, - /* 0x5B */ ItemId_BombBagLarge = 91, - /* 0x5C */ ItemId_RandCommonTreasure = 92, - /* 0x5D */ ItemId_RandUncommonTreasure = 93, - /* 0x5E */ ItemId_RandRareTreasure = 94, - /* 0x5F */ ItemId_RandLegendaryTreasure = 95, - /* 0x60 */ ItemId_TearLight = 96, - /* 0x61 */ ItemId_LightCompass = 97, - /* 0x62 */ ItemId_ScrollSpinAttack = 98, - /* 0x63 */ ItemId_ScrollBeam = 99, - /* 0x64 */ ItemId_LinebeckLetter = 100, - /* 0x65 */ ItemId_PanFluteSong_101 = 101, - /* 0x66 */ ItemId_PanFluteSong_102 = 102, - /* 0x67 */ ItemId_PanFluteSong_103 = 103, - /* 0x68 */ ItemId_PanFluteSong_104 = 104, - /* 0x69 */ ItemId_PanFluteSong_105 = 105, - /* 0x6A */ ItemId_RabbitNet = 106, - /* 0x6B */ ItemId_BeedleCard = 107, - /* 0x6C */ ItemId_SilverCard = 108, - /* 0x6D */ ItemId_GoldCard = 109, - /* 0x6E */ ItemId_PlatinumCard = 110, - /* 0x6F */ ItemId_DiamondCard = 111, - /* 0x70 */ ItemId_FreebieCard = 112, - /* 0x71 */ ItemId_QuintupleCard = 113, - /* 0x72 */ ItemId_CarbenLetter = 114, - /* 0x73 */ ItemId_RecruitUniform2 = 115, - /* 0x74 */ ItemId_EngineerUniform = 116, + /* 0xFF */ ItemId_None = -1, + /* 0x00 */ ItemId_Nothing = 0, + /* 0x01 */ ItemId_NormalShield = 1, + /* 0x02 */ ItemId_NormalSword = 2, + /* 0x03 */ ItemId_Whirlwind = 3, + /* 0x04 */ ItemId_BombBag = 4, + /* 0x05 */ ItemId_NormalBow = 5, + /* 0x06 */ ItemId_Boomerang = 6, + /* 0x07 */ ItemId_Whip = 7, + /* 0x08 */ ItemId_SandRod = 8, + /* 0x09 */ ItemId_9 = 9, + /* 0x0A */ ItemId_NormalKey = 10, + /* 0x0B */ ItemId_BossKey = 11, + /* 0x0C */ ItemId_GreenRupee = 12, + /* 0x0D */ ItemId_BlueRupee = 13, + /* 0x0E */ ItemId_RedRupee = 14, + /* 0x0F */ ItemId_BigGreenRupee = 15, + /* 0x10 */ ItemId_BigRedRupee = 16, + /* 0x11 */ ItemId_BigGoldRupee = 17, + /* 0x12 */ ItemId_ForceGem_18 = 18, // kidnapped papuchia man + /* 0x13 */ ItemId_ForceGem_19 = 19, // ice for fish seller + /* 0x14 */ ItemId_ForceGem_20 = 20, // goron lava house ice + /* 0x15 */ ItemId_ForestGlyph = 21, + /* 0x16 */ ItemId_SnowGlyph = 22, + /* 0x17 */ ItemId_OceanGlyph = 23, + /* 0x18 */ ItemId_FireGlyph = 24, + /* 0x19 */ ItemId_RestoredForestGlyph = 25, // glyph after forest restoration song + /* 0x1A */ ItemId_RestoredSnowGlyph = 26, // glyph after restoration song + /* 0x1B */ ItemId_RestoredOceanGlyph = 27, // glyph after restoration song + /* 0x1C */ ItemId_RestoredFireGlyph = 28, // glyph after restoration song + /* 0x1D */ ItemId_RestoredDesertOceanGlyph = 29, // glyph after restoration song + /* 0x1E */ ItemId_FinalTrack = 30, // unlocks the endgame portal + /* 0x1F */ ItemId_SpiritTrain = 31, + /* 0x20 */ ItemId_TrainCannon = 32, + /* 0x21 */ ItemId_SpiritTrainCar = 33, + /* 0x22 */ ItemId_TrainWagon = 34, + /* 0x23 */ ItemId_ForceGem_35 = 35, // rightmost fire gem + /* 0x24 */ ItemId_ForceGem_36 = 36, // right snow gem + /* 0x25 */ ItemId_ForceGem_37 = 37, // top fire gem + /* 0x26 */ ItemId_RecruitUniform = 38, + /* 0x27 */ ItemId_PostmasterLetter = 39, + /* 0x28 */ ItemId_HeartContainer = 40, + /* 0x29 */ ItemId_QuiverMedium = 41, + /* 0x2A */ ItemId_BombBagMedium = 42, + /* 0x2B */ ItemId_ForceGem_43 = 43, // one of rightmost forest + /* 0x2C */ ItemId_ForceGem_44 = 44, // the other rightmost forest, but more middle than top + /* 0x2D */ ItemId_ForceGem_45 = 45, // the bottom-rightmost forest + /* 0x2E */ ItemId_ForceGem_46 = 46, // the top-rightmost fire + /* 0x2F */ ItemId_ForceGem_47 = 47, // the center forest + /* 0x30 */ ItemId_ForceGem_48 = 48, // the middle-left forest + /* 0x31 */ ItemId_ForceGem_49 = 49, // the below middle-left forest + /* 0x32 */ ItemId_ForceGem_50 = 50, + /* 0x33 */ ItemId_ForceGem_51 = 51, + /* 0x34 */ ItemId_ForceGem_52 = 52, + /* 0x35 */ ItemId_ForceGem_53 = 53, + /* 0x36 */ ItemId_ForceGem_54 = 54, + /* 0x37 */ ItemId_ForceGem_55 = 55, + /* 0x38 */ ItemId_ForceGem_56 = 56, + /* 0x39 */ ItemId_ForceGem_57 = 57, + /* 0x3A */ ItemId_ForceGem_58 = 58, + /* 0x3B */ ItemId_ForceGem_59 = 59, + /* 0x3C */ ItemId_ForceGem_60 = 60, + /* 0x3D */ ItemId_ForceGem_61 = 61, + /* 0x3E */ ItemId_PanFlute = 62, + /* 0x3F */ ItemId_StampBook = 63, + /* 0x40 */ ItemId_LightBow = 64, + /* 0x41 */ ItemId_LokomoSword = 65, + /* 0x42 */ ItemId_TenPriceCard = 66, + /* 0x43 */ ItemId_RedPotion = 67, + /* 0x44 */ ItemId_PurplePotion = 68, + /* 0x45 */ ItemId_YellowPotion = 69, + /* 0x46 */ ItemId_DemonFossil = 70, + /* 0x47 */ ItemId_StalfosSkull = 71, + /* 0x48 */ ItemId_StarFragment = 72, + /* 0x49 */ ItemId_BeeLarvae = 73, + /* 0x4A */ ItemId_WoodHeart = 74, + /* 0x4B */ ItemId_DarkPearlLoop = 75, + /* 0x4C */ ItemId_WhitePearlLoop = 76, + /* 0x4D */ ItemId_RutoCrown = 77, + /* 0x4E */ ItemId_DragonScale = 78, + /* 0x4F */ ItemId_PirateNecklace = 79, + /* 0x50 */ ItemId_PalaceDish = 80, + /* 0x51 */ ItemId_GoronAmber = 81, + /* 0x52 */ ItemId_MysticJade = 82, + /* 0x53 */ ItemId_AncientCoin = 83, + /* 0x54 */ ItemId_PricelessStone = 84, + /* 0x55 */ ItemId_RegalRing = 85, + /* 0x56 */ ItemId_ArrowsRefill = 86, + /* 0x57 */ ItemId_BombsRefill = 87, + /* 0x58 */ ItemId_SoldOutSign = 88, + /* 0x59 */ ItemId_AncientShield = 89, + /* 0x5A */ ItemId_QuiverLarge = 90, + /* 0x5B */ ItemId_BombBagLarge = 91, + /* 0x5C */ ItemId_RandCommonTreasure = 92, + /* 0x5D */ ItemId_RandUncommonTreasure = 93, + /* 0x5E */ ItemId_RandRareTreasure = 94, + /* 0x5F */ ItemId_RandLegendaryTreasure = 95, + /* 0x60 */ ItemId_TearLight = 96, + /* 0x61 */ ItemId_LightCompass = 97, + /* 0x62 */ ItemId_ScrollSpinAttack = 98, + /* 0x63 */ ItemId_ScrollBeam = 99, + /* 0x64 */ ItemId_LinebeckLetter = 100, + /* 0x65 */ ItemId_PanFluteSong_101 = 101, + /* 0x66 */ ItemId_PanFluteSong_102 = 102, + /* 0x67 */ ItemId_PanFluteSong_103 = 103, + /* 0x68 */ ItemId_PanFluteSong_104 = 104, + /* 0x69 */ ItemId_PanFluteSong_105 = 105, + /* 0x6A */ ItemId_RabbitNet = 106, + /* 0x6B */ ItemId_BeedleCard = 107, + /* 0x6C */ ItemId_SilverCard = 108, + /* 0x6D */ ItemId_GoldCard = 109, + /* 0x6E */ ItemId_PlatinumCard = 110, + /* 0x6F */ ItemId_DiamondCard = 111, + /* 0x70 */ ItemId_FreebieCard = 112, + /* 0x71 */ ItemId_QuintupleCard = 113, + /* 0x72 */ ItemId_CarbenLetter = 114, + /* 0x73 */ ItemId_RecruitUniform2 = 115, + /* 0x74 */ ItemId_EngineerUniform = 116, }; #define MAX_TREASURE 99 diff --git a/include/Item/ItemManager.hpp b/include/Item/ItemManager.hpp index 834c90ff..efc1426b 100644 --- a/include/Item/ItemManager.hpp +++ b/include/Item/ItemManager.hpp @@ -24,15 +24,15 @@ public: /* 04 */ unk32 mUnk_04; /* 08 */ unk32 mUnk_08; - /* 00 */ virtual void vfunc_00(); //! TODO: name symbol func_ov000_020667d8 - /* 04 */ virtual void vfunc_04(); //! TODO: name symbol func_ov000_020667f4 - /* 08 */ virtual void vfunc_08(); //! TODO: name symbol func_ov000_020673c8 - /* 0C */ virtual void vfunc_0c(); //! TODO: name symbol func_ov000_02067434 - /* 10 */ virtual void vfunc_10(); //! TODO: name symbol func_ov000_02067474 - /* 14 */ virtual void vfunc_14(); //! TODO: name symbol func_ov000_02066dfc - /* 18 */ virtual void vfunc_18(); //! TODO: name symbol func_ov000_020669d8 - /* 1C */ virtual void vfunc_1c(); //! TODO: name symbol func_ov000_02067234 - /* 20 */ virtual void vfunc_20(); //! TODO: name symbol func_ov000_0206723c + /* 00 */ virtual void vfunc_00(); //! TODO: name symbol func_ov000_020667d8 + /* 04 */ virtual void vfunc_04(); //! TODO: name symbol func_ov000_020667f4 + /* 08 */ virtual void vfunc_08(); //! TODO: name symbol func_ov000_020673c8 + /* 0C */ virtual void vfunc_0c(); //! TODO: name symbol func_ov000_02067434 + /* 10 */ virtual void vfunc_10(); //! TODO: name symbol func_ov000_02067474 + /* 14 */ virtual void vfunc_14(); //! TODO: name symbol func_ov000_02066dfc + /* 18 */ virtual void vfunc_18(); //! TODO: name symbol func_ov000_020669d8 + /* 1C */ virtual void vfunc_1c(); //! TODO: name symbol func_ov000_02067234 + /* 20 */ virtual void vfunc_20(); //! TODO: name symbol func_ov000_0206723c /* 24 */ virtual ~UnkStruct_ItemManager_20_14(); //! TODO: name symbols func_ov000_020672ac, func_ov000_020672f4 UnkStruct_ItemManager_20_14(); @@ -58,12 +58,12 @@ class ItemManager : public SysObject { public: /* 00 */ ItemFlag mEquippedItem; /* 04 */ ItemFlag mForcedItem; - /* 08 */ u32 mUnk_08[2]; // inventory items bitfield & collection/equipment bitfield + /* 08 */ u32 mFlags[2]; // inventory items bitfield & collection/equipment bitfield /* 10 */ u16 mNumRupees; - /* 12 */ u16 mUnk_12; // "toggle bitfield" + /* 12 */ u16 mUnk_12; // "toggle bitfield" /* 14 */ u16 mItemRestrictions; // bitfield - /* 16 */ u8 mTearsAmount; // number of tears of light - /* 17 */ u8 mKeyAmount; // number of small keys + /* 16 */ u8 mTearsAmount; // number of tears of light + /* 17 */ u8 mKeyAmount; // number of small keys /* 18 */ UpgradeCapacity mQuiverCapacity; /* 19 */ UpgradeCapacity mBombBagCapacity; /* 1A */ u8 mArrowAmount; @@ -80,25 +80,25 @@ public: ItemManager(); ~ItemManager(); - void func_ov000_020a863c(ItemFlag itemFlag); - void func_ov000_020a865c(ItemFlag itemFlag); - bool func_ov000_020a8680(); + void SetFlag(ItemFlag itemFlag); + void ClearFlag(ItemFlag itemFlag); + bool HasRecruitUniform(); unk32 func_ov000_020a86a4(); - u32 func_ov000_020a86d0(ItemFlag itemFlag); - u8 func_ov000_020a8728(); - u8 func_ov000_020a8748(); + u32 GetItemAmount(ItemFlag itemFlag); + u8 GetQuiverCapacity(); + u8 GetBombBagCapacity(); void GiveRupees(s32 amount, bool param2, bool param3); - void func_ov000_020a87c8(s32 amount); - void func_ov000_020a87ec(s32 amount); - void func_ov000_020a8820(s32 amount); - bool func_ov000_020a8854(); - void func_ov000_020a888c(PotionType type); - bool func_ov000_020a88c8(); - bool func_ov000_020a88f4(); - void func_ov000_020a8920(); - bool func_ov000_020a8948(); + void GiveSmallKeys(s32 amount); + void GiveArrows(s32 amount); + void GiveBombs(s32 amount); + bool TryEquipForcedItem(); + void GivePotion(PotionType type); + bool HasPotion(); + bool HasPurplePotion(); + void RemovePurplePotion(); + bool PotionSlotsFull(); static UnkStruct_ov000_020afc48 *func_ov000_020a8974(ItemFlag itemFlag); - static ItemFlag func_ov000_020a8984(ItemId itemId); + static ItemFlag GetEquippedItemFlag(ItemId itemId); void func_ov000_020a89bc(); bool func_ov000_020a89d4(); bool func_ov000_020a8a0c(); diff --git a/include/MainGame/CargoManager.hpp b/include/MainGame/CargoManager.hpp new file mode 100644 index 00000000..88b7599a --- /dev/null +++ b/include/MainGame/CargoManager.hpp @@ -0,0 +1,80 @@ +#pragma once + +#include "types.h" + +enum CargoType_ { + CargoType_None = -1, + CargoType_MegaIce, + CargoType_Wood, + CargoType_Iron, + CargoType_Fish, + CargoType_Cuccos, + CargoType_Vessel, + CargoType_DarkOre, + CargoType_Max, +}; + +class Cargo { +public: + /* 00 */ unk32 mType; + /* 04 */ unk32 mAmount; + /* 08 */ u32 mDecayTimer; + /* 0C */ + + Cargo() { + this->Clear(); + } + + void Set(unk32 type, unk32 amount) { + this->mType = type; + this->mAmount = amount; + this->mDecayTimer = 0; + } + + void Clear() { + this->mType = CargoType_None; + this->mAmount = 0; + this->mDecayTimer = 0; + } +}; + +class CargoManager : public AutoInstance { +public: + /* 00 */ Cargo mCargo; + /* 0C */ Cargo mCargo2; + /* 18 */ unk32 mUnk_18; // invicibility timer? + /* 1C */ bool mUnk_1C; + /* 20 */ + + // overlay 1 + CargoManager(); + ~CargoManager(); + + void func_ov001_020bf830(); + + static void SetInstance(CargoManager *pInstance); + static bool ClearInstance(); + static void Destroy(); // func_ov001_020bf428 + + // overlay 17 + void Update(); + void Reset(); + void Init(unk32 type, unk32 amount); + void func_ov017_020bebdc(); + void func_ov017_020bec20(); + void RemoveAmount(unk32 decr); + bool func_ov017_020bec9c(); + + static void DoUpdate(); + static bool IsNotUsingTimer(unk32 type); + + // overlay 24 + void SetCargo(unk32 type, unk32 amount); + void GetTypeAndAmount(unk32 *pType, unk32 *pAmount); + void func_ov024_020d5900(); + void func_ov024_020d591c(); + + static CargoManager *Create(); +}; + +extern CargoManager *gpCargoManager; diff --git a/include/MainGame/MiscAdvManager.hpp b/include/MainGame/MiscAdvManager.hpp index 007e03b6..85185205 100644 --- a/include/MainGame/MiscAdvManager.hpp +++ b/include/MainGame/MiscAdvManager.hpp @@ -11,16 +11,16 @@ enum LetterType_ { /* -1 */ LetterType_None = -1, - /* 0 */ LetterType_MetPostmanFirst = 0, // AdventureFlag_MetPostmanFirstLetter - /* 1 */ LetterType_ReceivedZeldas = 1, // AdventureFlag_ReceivedZeldasLetter - /* 2 */ LetterType_ReceivedAlfonzos = 2, // AdventureFlag_ReceivedAlfonzosLetter - /* 3 */ LetterType_ReceivedRussells = 3, // AdventureFlag_ReceivedRussellsLetter - /* 4 */ LetterType_ObtainedLinebecks = 4, // AdventureFlag_ObtainedLinebecksLetter - /* 5 */ LetterType_ReceivedBeedlesFirst = 5, // AdventureFlag_ReceivedBeedlesFirstLetter - /* 6 */ LetterType_Unk_03E = 6, // AdventureFlag_Unk_03E - /* 7 */ LetterType_Unk_03F = 7, // AdventureFlag_Unk_03F - /* 8 */ LetterType_Unk_040 = 8, // AdventureFlag_Unk_040 - /* 9 */ LetterType_Unk_041 = 9, // AdventureFlag_Unk_041 + /* 0 */ LetterType_MetPostmanFirst = 0, // AdventureFlag_MetPostmanFirstLetter + /* 1 */ LetterType_ReceivedZeldas = 1, // AdventureFlag_ReceivedZeldasLetter + /* 2 */ LetterType_ReceivedAlfonzos = 2, // AdventureFlag_ReceivedAlfonzosLetter + /* 3 */ LetterType_ReceivedRussells = 3, // AdventureFlag_ReceivedRussellsLetter + /* 4 */ LetterType_ObtainedLinebecks = 4, // AdventureFlag_ObtainedLinebecksLetter + /* 5 */ LetterType_ReceivedBeedlesFirst = 5, // AdventureFlag_ReceivedBeedlesFirstLetter + /* 6 */ LetterType_Unk_03E = 6, // AdventureFlag_Unk_03E + /* 7 */ LetterType_Unk_03F = 7, // AdventureFlag_Unk_03F + /* 8 */ LetterType_Unk_040 = 8, // AdventureFlag_Unk_040 + /* 9 */ LetterType_Unk_041 = 9, // AdventureFlag_Unk_041 /* 10 */ LetterType_Unk_042 = 10, // AdventureFlag_Unk_042 /* 11 */ LetterType_Unk_043 = 11, // AdventureFlag_Unk_043 /* 12 */ LetterType_Unk_044 = 12, // AdventureFlag_Unk_044 @@ -69,16 +69,16 @@ public: /* 68 */ s8 mObtainedStamps[StampType_Max]; /* 7C */ u8 mLastRandomNum; /* 7D */ u8 mRandomNum; - /* 7E */ s8 mNumPriceCards; // current amount of price cards + /* 7E */ s8 mNumPriceCards; // current amount of price cards /* 7F */ s8 mNumPostedPriceCards; // current amount of posted price cards /* 80 */ unk8 mUnk_80; - /* 81 */ unk8 mUnk_81; // pad? - /* 82 */ unk8 mUnk_82; // pad? - /* 83 */ unk8 mUnk_83; // pad? + /* 81 */ unk8 mUnk_81; // pad? + /* 82 */ unk8 mUnk_82; // pad? + /* 83 */ unk8 mUnk_83; // pad? /* 84 */ unk32 mLettersRead; // bitfield - /* 88 */ unk32 mStampsFlag; // bitfield, related to the checkmarks from the stampbook - /* 8C */ unk16 mSongs; // bitfield - /* 8E */ unk16 mUnk_8E; // pad? + /* 88 */ unk32 mStampsFlag; // bitfield, related to the checkmarks from the stampbook + /* 8C */ unk16 mSongs; // bitfield + /* 8E */ unk16 mUnk_8E; // pad? /* 90 */ MiscAdvManager(); diff --git a/include/MainGame/PassengerManager.hpp b/include/MainGame/PassengerManager.hpp new file mode 100644 index 00000000..cb0a982d --- /dev/null +++ b/include/MainGame/PassengerManager.hpp @@ -0,0 +1,93 @@ +#pragma once + +#include "Actor/ActorId.hpp" +#include "Save/AdventureFlags.hpp" +#include "Unknown/UnkStruct_027e09a4.hpp" +#include "types.h" + +enum HappinessLevel_ { + HappinessLevel_0, + HappinessLevel_1, + HappinessLevel_2, + HappinessLevel_3, + HappinessLevel_4, + HappinessLevel_5, +}; + +struct UnkStruct_Param1 { + ActorId actorId; + s16 mUnk_04; + SceneIndex_Half sceneIndex; + u8 roomIndex; + unk32 mUnk_0C; + unk32 happiness; + u16 mUnk_14; +}; + +class Passenger { +public: + /* 00 */ ActorId mActorId; + /* 04 */ unk32 mUnk_04; + /* 08 */ SceneIndex mSceneIndex; + /* 0C */ u8 mRoomIndex; + /* 10 */ unk32 mHappiness; + + Passenger(); + void Reset(); +}; + +class PassengerManager : public AutoInstance { +public: + /* 00 */ Passenger mPassenger; + /* 14 */ Passenger mPassenger2; + /* 28 */ u16 mDate; + /* 2A */ unk16 mUnk_2A; + /* 2C */ unk32 mUnk_2C; + /* 30 */ unk32 mUnk_30; + /* 34 */ + + // overlay 1 + PassengerManager(); + ~PassengerManager(); + + void func_ov001_020bf8e4(); + void func_ov001_020bf90c(); + void func_ov001_020bf910(); + bool func_ov001_020bfa1c(); + + static bool func_ov001_020bf870(); + static void SetInstance(PassengerManager *pInstance); // func_ov001_020bfa38 + static bool ClearInstance(); // func_ov001_020bfa44 + + // overlay 24 + void func_ov024_020d41bc(UnkStruct_Param1 *pActorId); + void func_ov024_020d41f4(UnkStruct_Param1 *param1); + void func_ov024_020d4228(); + void func_ov024_020d4258(); + bool TryBoardTrain(ActorId actorId, SceneIndex sceneIndex, u32 roomIndex); + bool TryReset(); + bool TryResetAtDestination(); + bool ReachedDestination(SceneIndex sceneIndex, u32 roomIndex); + bool TrySetCaughtByPirates(); + bool CaughtByPiratesTryReset(); + void GiveHappiness(unk32 amount); + unk32 GetHappiness(); + unk32 GetHappinessCond(); + bool CanCompleteTrip(); + bool IsCaughtByPirates(); + ActorId GetActorId(); + PassengerManager *GetInstance(); + void func_ov024_020d4554(); + void Reset(); + bool IsDateUnset(); + s16 GetDate(); + u32 GetRandomIndex(u32 arg1, s32 arg2); + void SetFailedFlag(); + + static u32 GetPassengerInfoIndex(ActorId actorId); + static AdventureFlag GetBoardFlag(ActorId actorId); + static AdventureFlag GetFailFlag(ActorId actorId); + static PassengerManager *Create(); +}; + +extern PassengerManager *gpPassengerManager; diff --git a/include/MapObject/MapObjectManager.hpp b/include/MapObject/MapObjectManager.hpp index 354605ce..f222e5fd 100644 --- a/include/MapObject/MapObjectManager.hpp +++ b/include/MapObject/MapObjectManager.hpp @@ -13,8 +13,8 @@ public: /* 00 */ MapObject **mMapObjTable; /* 04 */ MapObject **mMapObjTableEnd; /* 08 */ MapObject **mUnk_08; // pointer to first available slot? - /* 0C */ s16 **mUnk_0C; // unknown table - /* 10 */ void **mUnk_10; // unknown table end + /* 0C */ s16 **mUnk_0C; // unknown table + /* 10 */ void **mUnk_10; // unknown table end /* 14 */ void *mUnk_14; /* 18 */ unk16 mUnk_18; /* 1A */ unk16 mUnk_1A; @@ -35,7 +35,7 @@ public: void func_ov000_0209c3e8(); void func_ov000_0209c444(); - void SetInstance(); // func_ov001_020baf4c + void SetInstance(); // func_ov001_020baf4c void ClearInstance(); // func_ov001_020baf58 static void func_ov000_0209c490(); diff --git a/include/MapObject/MapObjectMiniBlocks.hpp b/include/MapObject/MapObjectMiniBlocks.hpp index 0d3b6f04..ff402d08 100644 --- a/include/MapObject/MapObjectMiniBlocks.hpp +++ b/include/MapObject/MapObjectMiniBlocks.hpp @@ -11,7 +11,7 @@ public: /* 00 (base) */ /* 40 */ UnkSystem6_Derived2 mUnk_40; /* 48 */ unk8 mUnk_48; - /* 49 */ unk8 mUnk_49; // pad? + /* 49 */ unk8 mUnk_49; // pad? /* 4A */ unk16 mUnk_4A; // pad? /* 4C */ diff --git a/include/Message/BMG.hpp b/include/Message/BMG.hpp index 8bf901c4..ed4cf9d1 100644 --- a/include/Message/BMG.hpp +++ b/include/Message/BMG.hpp @@ -70,16 +70,16 @@ typedef enum BMGFileIndex { } BMGFileIndex; struct SectionBase { - /* 00 */ u32 tag; // "INF1", "DAT1", ... + /* 00 */ u32 tag; // "INF1", "DAT1", ... /* 04 */ u32 size; // the size of the section /* 08 */ }; struct BMGHeader { - /* 00 */ char magic[8]; // always "MESGbmg1" - /* 08 */ u32 fileSize; // the size of the BMG file + /* 00 */ char magic[8]; // always "MESGbmg1" + /* 08 */ u32 fileSize; // the size of the BMG file /* 0C */ u32 numSections; // the number of sections (INF1, DAT1, ...) - /* 10 */ u8 encoding; // see `BMGEncoding` + /* 10 */ u8 encoding; // see `BMGEncoding` /* 11 */ u8 unk_11[0x0F]; // alignment padding? /* 20 */ }; @@ -112,9 +112,9 @@ enum InstrType { }; struct InstrShowMsg { - /* 01 */ u8 bmgFileIndex; // index into sBMGFiles - /* 02 */ u16 msgIndex; // index of INF1 entry - /* 04 */ s16 nextIndex; // index of FLW1 entry, 0xFFFF stops the conversation + /* 01 */ u8 bmgFileIndex; // index into sBMGFiles + /* 02 */ u16 msgIndex; // index of INF1 entry + /* 04 */ s16 nextIndex; // index of FLW1 entry, 0xFFFF stops the conversation /* 06 */ s16 nextBMGFileIndex; // index into sBMGFiles /* 08 */ }; @@ -122,15 +122,15 @@ struct InstrShowMsg { struct InstrBranch { /* 01 */ u8 mUnk_01; /* 02 */ u16 funcIndex; // index of the query function to run - /* 04 */ u16 funcArg; // the argument to use in the function - /* 06 */ u16 flwEntry; // the index of the second section table to be used next in the conversation. + /* 04 */ u16 funcArg; // the argument to use in the function + /* 06 */ u16 flwEntry; // the index of the second section table to be used next in the conversation. /* 08 */ }; struct InstrEvent { /* 01 */ u8 funcIndex; // index of the query function to run /* 02 */ u16 flwEntry; // the index of the second section table to be used next in the conversation. - /* 04 */ u32 funcArg; // the argument to use in the function + /* 04 */ u32 funcArg; // the argument to use in the function /* 08 */ }; @@ -188,8 +188,8 @@ struct BMGFileInfo { /* 0C */ SectionFLI1 *pFLI1; // pointer to the message flow index table (FLI -> flow index table) /* 10 */ SectionDAT1 *pDAT1; // pointer to the data (DAT -> data) /* 14 */ BMGHeader *mUnk_14; // same as pHeader (?) - /* 18 */ s16 mUnk_18; // stores `func_020372F0`->param_3 value (currently undetermined purpose) - /* 1A */ s16 groupId; // stores the group id + /* 18 */ s16 mUnk_18; // stores `func_020372F0`->param_3 value (currently undetermined purpose) + /* 1A */ s16 groupId; // stores the group id /* 1C */ }; diff --git a/include/Player/PlayerGet.hpp b/include/Player/PlayerGet.hpp index ad7692a1..1a2b9be7 100644 --- a/include/Player/PlayerGet.hpp +++ b/include/Player/PlayerGet.hpp @@ -165,8 +165,8 @@ public: /* 068 */ unk32 mUnk_68; /* 06C */ unk32 mUnk_6C; // scale /* 070 */ unk16 mUnk_70; // angle/rotation - /* 070 */ u8 mUnk_72; // probably bools - /* 070 */ u8 mUnk_73; // probably bools + /* 070 */ u8 mUnk_72; // probably bools + /* 070 */ u8 mUnk_73; // probably bools /* 074 */ UnkStruct_PlayerGet_74 mUnk_74; /* 08C */ UnkSystem4 mUnk_8C; /* 0EC */ UnkStruct_PlayerGet_ec mUnk_EC[4]; diff --git a/include/Player/TouchControl.hpp b/include/Player/TouchControl.hpp index ae92adc5..06664e8c 100644 --- a/include/Player/TouchControl.hpp +++ b/include/Player/TouchControl.hpp @@ -18,7 +18,7 @@ class TouchControl { public: /* 00 */ u16 mSpeed; /* 02 */ u16 mTimeBetweenTouches; // gets set to mTimeSinceTouch when touching the screen - /* 04 */ u16 mTimeSinceTouch; // increases by mSpeed every frame + /* 04 */ u16 mTimeSinceTouch; // increases by mSpeed every frame /* 06 */ u16 mRepeatStart; /* 08 */ u16 mRepeatLoop; // mRepeatTimer starts at mRepeatStart, decreases by mSpeed while touching the screen. diff --git a/include/Save/AdventureFlags.hpp b/include/Save/AdventureFlags.hpp index a8d0a447..2404c251 100644 --- a/include/Save/AdventureFlags.hpp +++ b/include/Save/AdventureFlags.hpp @@ -12,7 +12,7 @@ enum AdventureFlag_ { /* 0x002 */ AdventureFlag_ObtainedSpiritTrain = FLAG(0, 2), /* 0x003 */ AdventureFlag_ObtainedRecruitSword = FLAG(0, 3), /* 0x004 */ AdventureFlag_ObtainedForestSource = FLAG(0, 4), - /* 0x005 */ AdventureFlag_ObtainedSnowSource = FLAG(0, 5), // gets rid of the blizzard + /* 0x005 */ AdventureFlag_ObtainedSnowSource = FLAG(0, 5), // gets rid of the blizzard /* 0x006 */ AdventureFlag_ObtainedOceanSource = FLAG(0, 6), /* 0x007 */ AdventureFlag_ObtainedFireSource = FLAG(0, 7), /* 0x008 */ AdventureFlag_CompletedForestRestorationSong = FLAG(0, 8), @@ -22,31 +22,31 @@ enum AdventureFlag_ { /* 0x00C */ AdventureFlag_CompletedSandRestorationSong = FLAG(0, 12), /* 0x00D */ AdventureFlag_OpenedDarkRealmPortal = FLAG(0, 13), /* 0x00E */ AdventureFlag_TalkedToDovokLostWoods = FLAG(0, 14), - /* 0x00F */ AdventureFlag_ObtainedForestGlyph = FLAG(0, 15), // unlocks track map + /* 0x00F */ AdventureFlag_ObtainedForestGlyph = FLAG(0, 15), // unlocks track map /* 0x010 */ AdventureFlag_ObtainedSnowGlyph = FLAG(0, 16), /* 0x011 */ AdventureFlag_ObtainedOceanGlyph = FLAG(0, 17), /* 0x012 */ AdventureFlag_ObtainedFireGlyph = FLAG(0, 18), /* 0x013 */ AdventureFlag_Unk_013 = FLAG(0, 19), /* 0x014 */ AdventureFlag_CompletedSwordTutorial = FLAG(0, 20), /* 0x015 */ AdventureFlag_PlayedHyruleGuardGetLostText = - FLAG(0, 21), // hyrule castle guard tells Link to get lost (before Cole shows up) + FLAG(0, 21), // hyrule castle guard tells Link to get lost (before Cole shows up) /* 0x016 */ AdventureFlag_HyruleGuardMovesAfterCole = - FLAG(0, 22), // hyrule castle guard moves out of the way of stairs leading to throne room + FLAG(0, 22), // hyrule castle guard moves out of the way of stairs leading to throne room /* 0x017 */ AdventureFlag_WatchedHyruleGuardColeCS = - FLAG(0, 23), // hyrule castle intro Cole walks into throne room cs over + FLAG(0, 23), // hyrule castle intro Cole walks into throne room cs over /* 0x018 */ AdventureFlag_ObtainedEngineerCertificate = FLAG(0, 24), - /* 0x019 */ AdventureFlag_WatchedZeldasBedroomFirstCS = FLAG(0, 25), // zelda bedroom conversation pre-spirit zelda + /* 0x019 */ AdventureFlag_WatchedZeldasBedroomFirstCS = FLAG(0, 25), // zelda bedroom conversation pre-spirit zelda /* 0x01A */ AdventureFlag_WatchedSpiritTowerSplitCS = FLAG(0, 26), /* 0x01B */ AdventureFlag_MayscoreLostWoodsHintBranches = FLAG(0, 27), /* 0x01C */ AdventureFlag_MayscoreLostWoodsHint4thTree = FLAG(0, 28), /* 0x01D */ AdventureFlag_TalkedToYamahikoFirstTime = - FLAG(0, 29), // talk to yellow guy (?) in Mayascore for the first time + FLAG(0, 29), // talk to yellow guy (?) in Mayascore for the first time /* 0x01E */ AdventureFlag_EnteredForestTemple = FLAG(0, 30), - /* 0x01F */ AdventureFlag_ObtainedTrainCannon = FLAG(0, 31), // set after alfonzo text, but before cannon exits garage + /* 0x01F */ AdventureFlag_ObtainedTrainCannon = FLAG(0, 31), // set after alfonzo text, but before cannon exits garage - /* 0x020 */ AdventureFlag_Unk_020 = FLAG(1, 0), + /* 0x020 */ AdventureFlag_ObtainedSpiritTrainCar = FLAG(1, 0), /* 0x021 */ AdventureFlag_ObtainedTrainWagon = FLAG(1, 1), - /* 0x022 */ AdventureFlag_MetAnjeanFirstTime = FLAG(1, 2), // loads the train in ToS + /* 0x022 */ AdventureFlag_MetAnjeanFirstTime = FLAG(1, 2), // loads the train in ToS /* 0x023 */ AdventureFlag_Unk_023 = FLAG(1, 3), /* 0x024 */ AdventureFlag_FleeFirstPhantomTOS = FLAG(1, 4), // zelda text after first phantom spawns /* 0x025 */ AdventureFlag_SpawnFirstPhantomTOS = FLAG(1, 5), diff --git a/include/TitleScreen/TitleScreen.hpp b/include/TitleScreen/TitleScreen.hpp index dfb0ec80..d898dbc3 100644 --- a/include/TitleScreen/TitleScreen.hpp +++ b/include/TitleScreen/TitleScreen.hpp @@ -51,7 +51,7 @@ public: /* 00 (vtable) */ /* 04 */ u16 mUnk_04; /* 04 */ u16 mUnk_06; - /* 08 */ u16 mUnk_08; // 220 + /* 08 */ u16 mUnk_08; // 220 /* 08 */ bool mUnk_0A; // 222 /* 08 */ bool mUnk_0B; // 223 /* 0C */ bool mUnk_0C; // 224 diff --git a/include/Unknown/Common.hpp b/include/Unknown/Common.hpp index 0d22e03c..65930d56 100644 --- a/include/Unknown/Common.hpp +++ b/include/Unknown/Common.hpp @@ -364,7 +364,7 @@ public: #define BTN_ID_RAIL_MAP_OCEAN_LOST_AT_SEA_STATION 0x77 #define BTN_ID_RAIL_MAP_SNOW_SLIPPERY_STATION 0x78 -#define BTN_ID_SHOP_QUIT 0x81 // quit shop +#define BTN_ID_SHOP_QUIT 0x81 // quit shop #define BTN_ID_SHOP_RETURN 0x82 // quit item preview #define BTN_ID_SHOP_BUY 0x83 #define BTN_ID_SHOP_ITEM_1 0x84 @@ -478,9 +478,9 @@ public: /* 14 */ Vec2s mPos; // image position (among other things) /* 18 */ STRUCT_PAD(0x18, 0x24); /* 24 */ Vec2us mPosOffset; // used to shift the button when selected - /* 28 */ bool mUnk_28; // selected highlight effect when set to true - /* 29 */ bool mUnk_29; // related to having the button selected - /* 2A */ bool mUnk_2A; // disables button action + /* 28 */ bool mUnk_28; // selected highlight effect when set to true + /* 29 */ bool mUnk_29; // related to having the button selected + /* 2A */ bool mUnk_2A; // disables button action /* 2A */ bool mUnk_2B; /* 2C */ bool mUnk_2C; /* 2D */ unk8 mUnk_2D; @@ -524,9 +524,9 @@ public: class UnkSystem2_UnkSubSystem1_Derived2 : public UnkSystem2_UnkSubSystem1_Base { public: /* 00 (vtable) */ - /* 30 */ void *mUnk_30; // related to the background texture draw (idle) + /* 30 */ void *mUnk_30; // related to the background texture draw (idle) /* 34 */ UnkSystem2_UnkSubSystem7 mUnk_34; // related to the texture draw - /* 38 */ unk16 mUnk_38; // related to the texture draw + /* 38 */ unk16 mUnk_38; // related to the texture draw /* 3C */ Vec2us mUnk_3A; // overlaid elements position (text, icons etc...), relative to background position /* 40 */ unk16 mUnk_3E; /* 40 */ unk32 mUnk_40; @@ -637,8 +637,8 @@ class UnkSystem2_UnkSubSystem5_Base { public: /* 000 (vtable) */ /* 004 */ wchar_t *mpString; // in this context it points to the player's name - /* 008 */ unk16 mUnk_008; // UnkSystem2_UnkSubSystem5()'s param1 - /* 00A */ unk16 mUnk_00A; // UnkSystem2_UnkSubSystem5()'s param2 + /* 008 */ unk16 mUnk_008; // UnkSystem2_UnkSubSystem5()'s param1 + /* 00A */ unk16 mUnk_00A; // UnkSystem2_UnkSubSystem5()'s param2 /* 00C */ void *mUnk_00C; /* 010 */ UnkSystem2_UnkSubSystem5_Base_10 mUnk_010; /* 130 */ STRUCT_PAD(0x130, 0x140); @@ -823,7 +823,7 @@ public: /* 4C */ unk32 mUnk_4C; /* 50 */ unk32 mUnk_50; /* 54 */ unk32 mUnk_54; - /* 58 */ unk32 mUnk_58; // another timer? + /* 58 */ unk32 mUnk_58; // another timer? /* 5C */ Vec2us mUnk_5C; // position of the animated texture /* 60 */ unk32 mUnk_60; /* 64 */ unk32 mUnk_64; diff --git a/include/Unknown/UnkFileSystem.hpp b/include/Unknown/UnkFileSystem.hpp index 303b2f34..9ed48af8 100644 --- a/include/Unknown/UnkFileSystem.hpp +++ b/include/Unknown/UnkFileSystem.hpp @@ -22,7 +22,7 @@ public: // data_02043f78 /* 00 */ virtual ~UnkFileSystem1(); // func_02015518 && func_0201551c && func_02015528 /* 08 */ virtual void *vfunc_08(unk32 param1) = 0; - /* 0C */ virtual void vfunc_0C(void); // func_0201552c + /* 0C */ virtual void vfunc_0C(void); // func_0201552c /* 10 */ virtual size_t vfunc_10(unk32 param1); // func_02015534 /* 14 */ }; @@ -49,7 +49,7 @@ class UnkFileSystem2_10 { public: /* 00 */ void *mpFile; - UnkFileSystem2_10(); // func_02015380 + UnkFileSystem2_10(); // func_02015380 ~UnkFileSystem2_10(); // func_020153c4 }; @@ -64,7 +64,7 @@ public: UnkFileSystem4(const char *param1, unk32 param2, unk32 param3, unk32 param4); // func_02015628 // data_02043f24 - /* 00 */ virtual ~UnkFileSystem4() override; // func_02015644 && func_02015650 + /* 00 */ virtual ~UnkFileSystem4() override; // func_02015644 && func_02015650 /* 08 */ virtual void *vfunc_08(unk32 param1) override; // func_02015664 }; @@ -77,7 +77,7 @@ public: UnkFileSystem1(param1) {} // data_02043f40 - /* 00 */ virtual ~UnkFileSystem3() override; // func_0201568c && func_02015698 + /* 00 */ virtual ~UnkFileSystem3() override; // func_0201568c && func_02015698 /* 08 */ virtual void *vfunc_08(unk32 param1) override; // func_020156ac }; @@ -90,8 +90,8 @@ public: UnkFileSystem2(const char *param1, unk32 param2); // func_020156c8 // data_02043f5c - /* 00 */ virtual ~UnkFileSystem2() override; // func_020156f4 && func_02015708 - /* 08 */ virtual void *vfunc_08(unk32 param1) override; // func_02015724 - /* 0C */ virtual void vfunc_0C(void) override; // func_02015750 + /* 00 */ virtual ~UnkFileSystem2() override; // func_020156f4 && func_02015708 + /* 08 */ virtual void *vfunc_08(unk32 param1) override; // func_02015724 + /* 0C */ virtual void vfunc_0C(void) override; // func_02015750 /* 10 */ virtual size_t vfunc_10(unk32 param1) override; // func_02015758 }; diff --git a/include/Unknown/UnkStruct_0204a088.hpp b/include/Unknown/UnkStruct_0204a088.hpp index 35f47fa8..ed103389 100644 --- a/include/Unknown/UnkStruct_0204a088.hpp +++ b/include/Unknown/UnkStruct_0204a088.hpp @@ -16,9 +16,9 @@ public: // members 00 04 and 08 are used in data_ov000_020b1d74 to figure out which overlay to load next in slot 1 class UnkStruct_0204a088 : public UnkStruct_0204a088_Base { public: - /* 000 */ unk32 mUnk_00; // current index - /* 000 */ unk32 mUnk_04; // prev index - /* 000 */ unk32 mUnk_08; // next index + /* 000 */ unk32 mUnk_00; // current index + /* 000 */ unk32 mUnk_04; // prev index + /* 000 */ unk32 mUnk_08; // next index /* 00C */ FileSelectManager_UnkDrawBase mUnk_0C[23]; // 23 possible overlays /* 120 */ u16 mUnk_120; /* 122 */ unk16 mUnk_122; diff --git a/include/Unknown/UnkStruct_020d8698.hpp b/include/Unknown/UnkStruct_020d8698.hpp index 78b7b04e..6a042243 100644 --- a/include/Unknown/UnkStruct_020d8698.hpp +++ b/include/Unknown/UnkStruct_020d8698.hpp @@ -1,11 +1,16 @@ #pragma once +#include "Item/Item.hpp" #include "types.h" class UnkStruct_020d8698 { public: void func_ov024_020cd458(ItemFlag itemFlag, unk32 param2); void func_ov024_020cd368(bool param1, bool param2); + void func_ov024_020cd3d0(); + void func_ov024_020cd3e0(unk32 param1); + void func_ov024_020cd3f0(unk32 param1); + void func_ov024_020cd410(); }; extern UnkStruct_020d8698 *data_ov024_020d8698; diff --git a/include/Unknown/UnkStruct_027e09a4.hpp b/include/Unknown/UnkStruct_027e09a4.hpp index 6fa2720b..4a85d63e 100644 --- a/include/Unknown/UnkStruct_027e09a4.hpp +++ b/include/Unknown/UnkStruct_027e09a4.hpp @@ -16,6 +16,7 @@ naming scheme: - f_xxx: "F" for "Field" -> normal gameplay area (also known as a "land" area) */ typedef u32 SceneIndex; +typedef u16 SceneIndex_Half; enum SceneIndex_ { /* 0 */ SceneIndex_test_trn = 0x00, // /* 1 */ SceneIndex_test_trn2 = 0x01, // @@ -172,8 +173,8 @@ struct UnkStruct_SceneChange1 { this->mUnk_04 = 0; this->mUnk_08 = 0; this->mRoomIndex = 0xFF; // this changes when you enter a house, it's not clear if it has another purpose yet - this->mSpawnIndex = 0; // changing this then saving will change your spawn location after opening the save again - // (not the area) + this->mSpawnIndex = 0; // changing this then saving will change your spawn location after opening the save again + // (not the area) this->mNextIsCS = false; this->mUnk_0D = 0; this->mCutsceneIndex = CutsceneIndex_None; @@ -254,6 +255,7 @@ public: ~UnkStruct_027e09a4(); + unk32 func_01ffd3d8(); UnkStruct_func_01ffd400 *func_01ffd400(); unk8 func_ov000_02070bd0(unk32 csIndex, unk32 param2); diff --git a/include/Unknown/UnkStruct_027e0cd8.hpp b/include/Unknown/UnkStruct_027e0cd8.hpp index 967abc9d..9dd21d9d 100644 --- a/include/Unknown/UnkStruct_027e0cd8.hpp +++ b/include/Unknown/UnkStruct_027e0cd8.hpp @@ -9,6 +9,11 @@ class MapObject_20; +class UnkStruct_027e0cd8_0c_160 { +public: + bool func_ov026_02106aa8(); +}; + class UnkStruct_027e0cd8_0c { public: /* 000 (vtable) */ @@ -69,7 +74,12 @@ public: /* 0DC */ ZeldaObjectList *mUnk_DC[8]; /* 0FC */ STRUCT_PAD(0xFC, 0x128); /* 128 */ u16 mUnk_128; + /* 12A */ STRUCT_PAD(0x12A, 0x160); + /* 160 */ UnkStruct_027e0cd8_0c_160 *mUnk_160; + /* 164 */ STRUCT_PAD(0x164, 0x1E0); + /* 1E0 */ + // data_ov031_02112a0c /* 00 */ virtual void vfunc_00(); /* 04 */ virtual void vfunc_04(); /* 08 */ virtual void vfunc_08(); @@ -97,12 +107,32 @@ public: Vec3p *func_ov001_020b8a5c(unk32 spawnIndex, unk32 param1); }; +class UnkStruct_027e0cd8_04_0C { +public: + /* 00 */ STRUCT_PAD(0x00, 0x50); + /* 50 */ + + UnkStruct_027e0cd8_04_0C(); +}; + +class UnkStruct_027e0cd8_04 { +public: + /* 00 */ unk32 mUnk_00; + /* 04 */ unk32 mUnk_04; + /* 08 */ unk32 mUnk_08; + /* 0C */ UnkStruct_027e0cd8_04_0C *mUnk_0C; + /* 10 */ + /* B4 */ + + UnkStruct_027e0cd8_04(); +}; + class UnkStruct_027e0cd8 { public: /* 00 */ unk32 mUnk_00; - /* 04 */ unk32 *mUnk_04; + /* 04 */ UnkStruct_027e0cd8_04 *mUnk_04; // stage flags /* 08 */ unk32 mUnk_08; - /* 0C */ UnkStruct_027e0cd8_0c *mUnk_0C; + /* 0C */ UnkStruct_027e0cd8_0c *mUnk_0C; // related to train? /* 10 */ MapObjectManager *mUnk_10; /* 14 */ STRUCT_PAD(0x14, 0x4C); /* 4C */ diff --git a/include/Unknown/UnkStruct_027e0ce0.hpp b/include/Unknown/UnkStruct_027e0ce0.hpp index 4569fad2..534b6608 100644 --- a/include/Unknown/UnkStruct_027e0ce0.hpp +++ b/include/Unknown/UnkStruct_027e0ce0.hpp @@ -24,6 +24,7 @@ public: void func_ov024_020d3d98(unk32 param1, unk32 param2); void func_ov024_020d3ee8(unk32 param1, u16 param2, unk32 param3); + unk32 func_ov024_020d3dcc(); void func_ov110_02185d3c(ItemId itemId); }; @@ -46,7 +47,7 @@ public: /* 24 */ unk32 mUnk_24; /* 28 */ ItemManager *mUnk_28; /* 2C */ ItemManager *mUnk_2C; // same as above - /* 30 */ unk32 *mUnk_30; // ? + /* 30 */ unk32 *mUnk_30; // ? /* 34 */ UnkStruct_027e0ce0_34 *mUnk_34; /* 38 */ unk32 *mUnk_38; // pointer to data_027e0478 when on the train /* 3C */ unk32 mUnk_3C; @@ -60,6 +61,8 @@ public: void func_ov000_0208bbd4(unk32 param1, Vec3p *param2, u16 param3); void func_ov000_0208bbd4(unk32 param1, Vec3p *param2, void *param3); + + static UnkStruct_027e0ce0_34 *func_ov000_0205c904(); }; extern UnkStruct_027e0ce0 *data_027e0ce0; diff --git a/include/Unknown/UnkStruct_027e0d00.hpp b/include/Unknown/UnkStruct_027e0d00.hpp new file mode 100644 index 00000000..a64ac32d --- /dev/null +++ b/include/Unknown/UnkStruct_027e0d00.hpp @@ -0,0 +1,19 @@ +#pragma once + +#include "global.h" +#include "types.h" + +class UnkStruct_027e0d00 { +public: + /* 00 */ unk32 mUnk_00; + + UnkStruct_027e0d00(); + ~UnkStruct_027e0d00(); + + void func_ov024_020d4cc0(unk32 type); + void func_ov024_020d4d10(); + + static UnkStruct_027e0d00 *func_ov000_0205c944(); +}; + +extern UnkStruct_027e0d00 *data_027e0d00; diff --git a/include/Unknown/UnkSystem1.hpp b/include/Unknown/UnkSystem1.hpp index a7db29cb..fe1250e2 100644 --- a/include/Unknown/UnkSystem1.hpp +++ b/include/Unknown/UnkSystem1.hpp @@ -27,14 +27,14 @@ public: void func_ov000_020669dc(); unk32 func_ov000_02066a08(UnkStruct5 *param1); - /* 00 */ virtual void vfunc_00(unk32 param1); // func_ov000_020667d8 - /* 04 */ virtual void vfunc_04(); // func_ov000_020667f4 - /* 08 */ virtual void vfunc_08(unk32 param1); // func_ov000_020669cc - /* 0C */ virtual unk32 vfunc_0C(); // func_ov000_020669d0 - /* 10 */ virtual unk32 vfunc_10(u16 *param1); // func_ov000_02066a5c - /* 14 */ virtual unk32 vfunc_14(void *param1); // func_ov000_02066dfc - /* 18 */ virtual void vfunc_18(); // func_ov000_020669d8 - /* 1C */ virtual unk32 vfunc_1C(u32 param1, unk32 param2, unk32 param3); // func_ov000_02067234 + /* 00 */ virtual void vfunc_00(unk32 param1); // func_ov000_020667d8 + /* 04 */ virtual void vfunc_04(); // func_ov000_020667f4 + /* 08 */ virtual void vfunc_08(unk32 param1); // func_ov000_020669cc + /* 0C */ virtual unk32 vfunc_0C(); // func_ov000_020669d0 + /* 10 */ virtual unk32 vfunc_10(u16 *param1); // func_ov000_02066a5c + /* 14 */ virtual unk32 vfunc_14(void *param1); // func_ov000_02066dfc + /* 18 */ virtual void vfunc_18(); // func_ov000_020669d8 + /* 1C */ virtual unk32 vfunc_1C(u32 param1, unk32 param2, unk32 param3); // func_ov000_02067234 /* 20 */ virtual unk32 vfunc_20(unk32 param1, unk32 param2, unk32 param3); // func_ov000_0206723c /* 24 */ }; @@ -54,9 +54,9 @@ public: void func_ov000_0206738c(); /* 08 */ virtual void vfunc_08(unk32 param1) override; // func_ov000_020673c8 - /* 0C */ virtual unk32 vfunc_0C() override; // func_ov000_02067434 + /* 0C */ virtual unk32 vfunc_0C() override; // func_ov000_02067434 /* 10 */ virtual unk32 vfunc_10(u16 *param1) override; // func_ov000_02067474 - /* 24 */ virtual ~UnkSystem1_ov000_Derived1(); // func_ov000_020672ac & func_ov000_020672f4 + /* 24 */ virtual ~UnkSystem1_ov000_Derived1(); // func_ov000_020672ac & func_ov000_020672f4 }; // data_ov000_020b489c @@ -66,8 +66,8 @@ public: UnkSystem1_ov000_Derived2(unk32 param1, unk32 param2); - /* 08 */ virtual void vfunc_08(unk32 param1) override; // func_ov000_0209fbec - /* 0C */ virtual unk32 vfunc_0C() override; // func_ov000_0209fcdc + /* 08 */ virtual void vfunc_08(unk32 param1) override; // func_ov000_0209fbec + /* 0C */ virtual unk32 vfunc_0C() override; // func_ov000_0209fcdc /* 24 */ virtual ~UnkSystem1_ov000_Derived2() override; // func_ov000_0209fb18 & func_ov000_0209fb5c }; @@ -78,9 +78,9 @@ public: UnkSystem1_ov010(unk32 param1, UnkStruct_ov000_02067bc4::UnkStruct1 *param2); - /* 08 */ virtual void vfunc_08(unk32 param1) override; // func_ov010_020b8844 + /* 08 */ virtual void vfunc_08(unk32 param1) override; // func_ov010_020b8844 /* 1C */ virtual unk32 vfunc_1C(u32 param1, unk32 param2, unk32 param3) override; // func_ov010_020b8878 - /* 24 */ virtual ~UnkSystem1_ov010() override; // func_ov010_020b65f0 + /* 24 */ virtual ~UnkSystem1_ov010() override; // func_ov010_020b65f0 }; class UnkSystem1_ov010_Derived1 : public UnkSystem1_ov010 { @@ -107,7 +107,7 @@ public: UnkSystem1_ov016_Derived1(unk32 param1, UnkStruct_ov000_02067bc4::UnkStruct1 *param2); /* 24 */ virtual ~UnkSystem1_ov016_Derived1() override; // func_ov016_020b7664 - /* 2C */ virtual void vfunc_2C(); // func_ov016_020b776c + /* 2C */ virtual void vfunc_2C(); // func_ov016_020b776c }; // data_ov019_020d1e00 @@ -128,7 +128,7 @@ public: /* 14 */ SaveFile *mUnk_14; /* 18 */ unk16 mUnk_18; /* 1A */ unk8 mUnk_1A; // bool? - /* 1B */ u8 mUnk_1B; // bool? + /* 1B */ u8 mUnk_1B; // bool? /* 1C */ UnkSystem1_ov019_Derived1(); @@ -138,10 +138,10 @@ public: unk32 func_ov019_020c5540(bool param1, unk16 param2); void func_ov019_020c5590(unk32 param1, unk32 param2, unk32 param3); - /* 08 */ virtual void vfunc_08(unk32 param1) override; // func_ov019_020c523c - /* 1C */ virtual unk32 vfunc_1C(u32 param1, unk32 param2, unk32 param3) override; // func_ov019_020c5284 + /* 08 */ virtual void vfunc_08(unk32 param1) override; // func_ov019_020c523c + /* 1C */ virtual unk32 vfunc_1C(u32 param1, unk32 param2, unk32 param3) override; // func_ov019_020c5284 /* 20 */ virtual unk32 vfunc_20(unk32 param1, unk32 param2, unk32 param3) override; // func_ov019_020c5430 - /* 24 */ WEAK virtual ~UnkSystem1_ov019_Derived1() override {} // func_ov019_020c5614 + /* 24 */ WEAK virtual ~UnkSystem1_ov019_Derived1() override {} // func_ov019_020c5614 }; class UnkSystem1_ov019_2 : public UnkSystem1_ov000_Derived1 { @@ -167,9 +167,9 @@ public: UnkSystem1_ov019_Derived2(); // data_ov019_020d2440 vtable - /* 08 */ virtual void vfunc_08(unk32 param1) override; // func_ov019_020d035c + /* 08 */ virtual void vfunc_08(unk32 param1) override; // func_ov019_020d035c /* 1C */ virtual unk32 vfunc_1C(u32 param1, unk32 param2, unk32 param3) override; // func_ov019_020d03a4 - /* 24 */ WEAK virtual ~UnkSystem1_ov019_Derived2() override {} // func_ov019_020d0594 + /* 24 */ WEAK virtual ~UnkSystem1_ov019_Derived2() override {} // func_ov019_020d0594 }; class UnkSystem1_ov019_3 : public UnkSystem1_ov000_Derived1 { diff --git a/include/files.h b/include/files.h index da58e964..df1ef945 100644 --- a/include/files.h +++ b/include/files.h @@ -10,7 +10,7 @@ enum FileType { // .zob typedef struct ZeldaObjectList { /* 00 */ FileType type; // always "ZOLB" - /* 04 */ unk32 nSize; // file size? + /* 04 */ unk32 nSize; // file size? /* 08 */ unk16 unk_08; /* 0A */ unk16 unk_0a; /* 0C */ u16 nEntries; // number of entries diff --git a/include/global.h b/include/global.h index 3fcddcea..fa63a807 100644 --- a/include/global.h +++ b/include/global.h @@ -11,6 +11,9 @@ #define ARM _Pragma("thumb off") #define THUMB _Pragma("thumb on") +#define THUMB_BEGIN _Pragma("thumb on") +#define THUMB_END _Pragma("thumb off") + // `override` was added in C++11 before the DS, so we only use the keyword to indicate overriden functions #define override diff --git a/include/types.h b/include/types.h index b3eafe6f..a52a8516 100644 --- a/include/types.h +++ b/include/types.h @@ -67,6 +67,17 @@ typedef s32 unk32; DECL_PTMF(PTMF); typedef void (*UnkCallback)(u16 param1); + +template class AutoInstance { +public: + AutoInstance() { + T::SetInstance((T *) this); + } + + ~AutoInstance() { + T::ClearInstance(); + } +}; #endif #endif diff --git a/libs/c/src/math/e_log.c b/libs/c/src/math/e_log.c index 490867dc..65e758fb 100644 --- a/libs/c/src/math/e_log.c +++ b/libs/c/src/math/e_log.c @@ -71,13 +71,13 @@ static double ln2_hi = 6.93147180369123816490e-01, /* 3fe62e42 fee00000 */ ln2_lo = 1.90821492927058770002e-10, /* 3dea39ef 35793c76 */ two54 = 1.80143985094819840000e+16, /* 43500000 00000000 */ - Lg1 = 6.666666666666735130e-01, /* 3FE55555 55555593 */ - Lg2 = 3.999999999940941908e-01, /* 3FD99999 9997FA04 */ - Lg3 = 2.857142874366239149e-01, /* 3FD24924 94229359 */ - Lg4 = 2.222219843214978396e-01, /* 3FCC71C5 1D8E78AF */ - Lg5 = 1.818357216161805012e-01, /* 3FC74664 96CB03DE */ - Lg6 = 1.531383769920937332e-01, /* 3FC39A09 D078C69F */ - Lg7 = 1.479819860511658591e-01; /* 3FC2F112 DF3E5244 */ + Lg1 = 6.666666666666735130e-01, /* 3FE55555 55555593 */ + Lg2 = 3.999999999940941908e-01, /* 3FD99999 9997FA04 */ + Lg3 = 2.857142874366239149e-01, /* 3FD24924 94229359 */ + Lg4 = 2.222219843214978396e-01, /* 3FCC71C5 1D8E78AF */ + Lg5 = 1.818357216161805012e-01, /* 3FC74664 96CB03DE */ + Lg6 = 1.531383769920937332e-01, /* 3FC39A09 D078C69F */ + Lg7 = 1.479819860511658591e-01; /* 3FC2F112 DF3E5244 */ static double zero = 0.0; @@ -105,7 +105,7 @@ double x; return (x - x) / zero; } /* log(-#) = NaN */ k -= 54; - x *= two54; /* subnormal number, scale up x */ + x *= two54; /* subnormal number, scale up x */ hx = __HI(x); /* high word of x */ } if (hx >= 0x7ff00000) { diff --git a/libs/c/src/math/e_log10.c b/libs/c/src/math/e_log10.c index fb8e3f02..4ef77efd 100644 --- a/libs/c/src/math/e_log10.c +++ b/libs/c/src/math/e_log10.c @@ -83,7 +83,7 @@ double x; return (x - x) / zero; } /* log(-#) = NaN */ k -= 54; - x *= two54; /* subnormal number, scale up x */ + x *= two54; /* subnormal number, scale up x */ hx = __HI(x); /* high word of x */ } if (hx >= 0x7ff00000) { diff --git a/libs/c/src/math/e_pow.c b/libs/c/src/math/e_pow.c index d4f439af..7b0739a9 100644 --- a/libs/c/src/math/e_pow.c +++ b/libs/c/src/math/e_pow.c @@ -75,31 +75,31 @@ static double { 0.0, 1.35003920212974897128e-08, -}, /* 0x3E4CFDEB, 0x43CFD006 */ +}, /* 0x3E4CFDEB, 0x43CFD006 */ zero = 0.0, one = 1.0, two = 2.0, two53 = 9007199254740992.0, /* 0x43400000, 0x00000000 */ big = 1.0e300, tiny = 1.0e-300, /* poly coefs for (3/2)*(log(x)-2s-2/3*s**3 */ - L1 = 5.99999999999994648725e-01, /* 0x3FE33333, 0x33333303 */ - L2 = 4.28571428578550184252e-01, /* 0x3FDB6DB6, 0xDB6FABFF */ - L3 = 3.33333329818377432918e-01, /* 0x3FD55555, 0x518F264D */ - L4 = 2.72728123808534006489e-01, /* 0x3FD17460, 0xA91D4101 */ - L5 = 2.30660745775561754067e-01, /* 0x3FCD864A, 0x93C9DB65 */ - L6 = 2.06975017800338417784e-01, /* 0x3FCA7E28, 0x4A454EEF */ - P1 = 1.66666666666666019037e-01, /* 0x3FC55555, 0x5555553E */ + L1 = 5.99999999999994648725e-01, /* 0x3FE33333, 0x33333303 */ + L2 = 4.28571428578550184252e-01, /* 0x3FDB6DB6, 0xDB6FABFF */ + L3 = 3.33333329818377432918e-01, /* 0x3FD55555, 0x518F264D */ + L4 = 2.72728123808534006489e-01, /* 0x3FD17460, 0xA91D4101 */ + L5 = 2.30660745775561754067e-01, /* 0x3FCD864A, 0x93C9DB65 */ + L6 = 2.06975017800338417784e-01, /* 0x3FCA7E28, 0x4A454EEF */ + P1 = 1.66666666666666019037e-01, /* 0x3FC55555, 0x5555553E */ P2 = -2.77777777770155933842e-03, /* 0xBF66C16C, 0x16BEBD93 */ - P3 = 6.61375632143793436117e-05, /* 0x3F11566A, 0xAF25DE2C */ + P3 = 6.61375632143793436117e-05, /* 0x3F11566A, 0xAF25DE2C */ P4 = -1.65339022054652515390e-06, /* 0xBEBBBD41, 0xC5D26BF1 */ - P5 = 4.13813679705723846039e-08, /* 0x3E663769, 0x72BEA4D0 */ - lg2 = 6.93147180559945286227e-01, /* 0x3FE62E42, 0xFEFA39EF */ - lg2_h = 6.93147182464599609375e-01, /* 0x3FE62E43, 0x00000000 */ + P5 = 4.13813679705723846039e-08, /* 0x3E663769, 0x72BEA4D0 */ + lg2 = 6.93147180559945286227e-01, /* 0x3FE62E42, 0xFEFA39EF */ + lg2_h = 6.93147182464599609375e-01, /* 0x3FE62E43, 0x00000000 */ lg2_l = -1.90465429995776804525e-09, /* 0xBE205C61, 0x0CA86C39 */ ovt = 8.0085662595372944372e-0017, /* -(1024-log2(ovfl+.5ulp)) */ - cp = 9.61796693925975554329e-01, /* 0x3FEEC709, 0xDC3A03FD =2/(3ln2) */ - cp_h = 9.61796700954437255859e-01, /* 0x3FEEC709, 0xE0000000 =(float)cp */ + cp = 9.61796693925975554329e-01, /* 0x3FEEC709, 0xDC3A03FD =2/(3ln2) */ + cp_h = 9.61796700954437255859e-01, /* 0x3FEEC709, 0xE0000000 =(float)cp */ cp_l = -7.02846165095275826516e-09, /* 0xBE3E2FE0, 0x145B01F5 =tail of cp_h*/ - ivln2 = 1.44269504088896338700e+00, /* 0x3FF71547, 0x652B82FE =1/ln2 */ - ivln2_h = 1.44269502162933349609e+00, /* 0x3FF71547, 0x60000000 =24b 1/ln2*/ - ivln2_l = 1.92596299112661746887e-08; /* 0x3E54AE0B, 0xF85DDF44 =1/ln2 tail*/ + ivln2 = 1.44269504088896338700e+00, /* 0x3FF71547, 0x652B82FE =1/ln2 */ + ivln2_h = 1.44269502162933349609e+00, /* 0x3FF71547, 0x60000000 =24b 1/ln2*/ + ivln2_l = 1.92596299112661746887e-08; /* 0x3E54AE0B, 0xF85DDF44 =1/ln2 tail*/ #ifdef __STDC__ double __ieee754_pow(double x, double y) @@ -165,7 +165,7 @@ double x, y; /* y is +-inf */ if (((ix - 0x3ff00000) | lx) == 0) { - return y - y; /* inf**+-1 is NaN */ + return y - y; /* inf**+-1 is NaN */ } else if (ix >= 0x3ff00000) { /* (|x|>1)**+-inf = inf,0 */ return (hy >= 0) ? y : zero; } else { /* (|x|<1)**-,+inf = inf,0 */ @@ -184,7 +184,7 @@ double x, y; return x * x; /* y is 2 */ } if (hy == 0x3fe00000) { /* y is 0.5 */ - if (hx >= 0) { /* x >= +0 */ + if (hx >= 0) { /* x >= +0 */ return sqrt(x); } } @@ -218,7 +218,7 @@ double x, y; } /* |y| is big */ - if (iy > 0x41e00000) { /* if |y| > 2**31 */ + if (iy > 0x41e00000) { /* if |y| > 2**31 */ if (iy > 0x43f00000) { /* if |y| > 2**64, must o/uflow */ if (ix <= 0x3fefffff) { return (hy < 0) ? big * big : tiny * tiny; @@ -315,17 +315,17 @@ double x, y; z = p_l + p_h; j = __HI(z); i = __LO(z); - if (j >= 0x40900000) { /* z >= 1024 */ + if (j >= 0x40900000) { /* z >= 1024 */ if (((j - 0x40900000) | i) != 0) { /* if z > 1024 */ - return s * big * big; /* overflow */ + return s * big * big; /* overflow */ } else { if (p_l + ovt > z - p_h) { return s * big * big; /* overflow */ } } } else if ((j & 0x7fffffff) >= 0x4090cc00) { /* z <= -1075 */ - if (((j - 0xc090cc00) | i) != 0) { /* z < -1075 */ - return s * tiny * tiny; /* underflow */ + if (((j - 0xc090cc00) | i) != 0) { /* z < -1075 */ + return s * tiny * tiny; /* underflow */ } else { if (p_l <= z - p_h) { return s * tiny * tiny; /* underflow */ diff --git a/libs/c/src/math/s_ceil.c b/libs/c/src/math/s_ceil.c index bdfadf57..03a27268 100644 --- a/libs/c/src/math/s_ceil.c +++ b/libs/c/src/math/s_ceil.c @@ -41,7 +41,7 @@ double x; i1 = __LO(x); j0 = ((i0 >> 20) & 0x7ff) - 0x3ff; if (j0 < 20) { - if (j0 < 0) { /* raise inexact if x != 0 */ + if (j0 < 0) { /* raise inexact if x != 0 */ if (huge + x > 0.0) { /* return 0*sign(x) if |x|<1 */ if (i0 < 0) { i0 = 0x80000000; diff --git a/libs/c/src/math/s_ldexp.c b/libs/c/src/math/s_ldexp.c index dcd43bc8..d27d028a 100644 --- a/libs/c/src/math/s_ldexp.c +++ b/libs/c/src/math/s_ldexp.c @@ -27,7 +27,7 @@ double ldexp(double x, int n) { hx = __HI(x); lx = __LO(x); k = (hx & 0x7ff00000) >> 20; /* extract exponent */ - if (k == 0) { /* 0 or subnormal x */ + if (k == 0) { /* 0 or subnormal x */ if ((lx | (hx & 0x7fffffff)) == 0) { return x; /* +-0 */ } @@ -51,7 +51,7 @@ double ldexp(double x, int n) { return x; } if (k <= -54) { - if (n > 50000) { /* in case integer overflow in n+k */ + if (n > 50000) { /* in case integer overflow in n+k */ return big * copysign(big, x); /*overflow*/ } else { return tiny * copysign(tiny, x); /*underflow*/ diff --git a/libs/nitro/include/nitro/button.h b/libs/nitro/include/nitro/button.h index 4ee74f7d..392a20f2 100644 --- a/libs/nitro/include/nitro/button.h +++ b/libs/nitro/include/nitro/button.h @@ -2,18 +2,18 @@ #include "types.h" -#define BTN_A (1 << 0) // 0x0001 -#define BTN_B (1 << 1) // 0x0002 +#define BTN_A (1 << 0) // 0x0001 +#define BTN_B (1 << 1) // 0x0002 #define BTN_SELECT (1 << 2) // 0x0004 -#define BTN_START (1 << 3) // 0x0008 +#define BTN_START (1 << 3) // 0x0008 #define BTN_DRIGHT (1 << 4) // 0x0010 -#define BTN_DLEFT (1 << 5) // 0x0020 -#define BTN_DUP (1 << 6) // 0x0040 -#define BTN_DDOWN (1 << 7) // 0x0080 -#define BTN_R (1 << 8) // 0x0100 -#define BTN_L (1 << 9) // 0x0200 -#define BTN_X (1 << 10) // 0x0400 -#define BTN_Y (1 << 11) // 0x0800 +#define BTN_DLEFT (1 << 5) // 0x0020 +#define BTN_DUP (1 << 6) // 0x0040 +#define BTN_DDOWN (1 << 7) // 0x0080 +#define BTN_R (1 << 8) // 0x0100 +#define BTN_L (1 << 9) // 0x0200 +#define BTN_X (1 << 10) // 0x0400 +#define BTN_Y (1 << 11) // 0x0800 #define CHECK_BUTTON_COMBO(value, btn) ((value) & (btn)) diff --git a/libs/nitro/include/nitro/os/context.h b/libs/nitro/include/nitro/os/context.h index 4847066e..58baad28 100644 --- a/libs/nitro/include/nitro/os/context.h +++ b/libs/nitro/include/nitro/os/context.h @@ -12,4 +12,4 @@ typedef struct OSContext { /* 0x44 */ char unk_40[0x20]; } OSContext; // Size: 0x64 -#endif // NITROSDK_OS_CONTEXT_H +#endif // NITROSDK_OS_CONTEXT_H diff --git a/libs/nns/include/nns/font.h b/libs/nns/include/nns/font.h index 58c6c026..0bfbb483 100644 --- a/libs/nns/include/nns/font.h +++ b/libs/nns/include/nns/font.h @@ -6,7 +6,7 @@ extern "C" { #endif typedef struct Font_UnkStruct1 { - /* 00 */ void *mpFINF; // pointer to the FINF section of the FNTR file + /* 00 */ void *mpFINF; // pointer to the FINF section of the FNTR file /* 04 */ void *mUnk_04; // pointer to a function /* 08 */ } Font_UnkStruct1; diff --git a/libs/nns/include/nns/g3d/g3d.h b/libs/nns/include/nns/g3d/g3d.h index 2a9b8d85..2a945197 100644 --- a/libs/nns/include/nns/g3d/g3d.h +++ b/libs/nns/include/nns/g3d/g3d.h @@ -5,8 +5,8 @@ typedef void (*G3d_CallbackFunction)(struct G3d_RenderState_ *); typedef struct G3d_NameList_ { /* 00 */ u8 dummy; - /* 01 */ u8 numElmnts; // number of elements - /* 02 */ u16 size; // size of this NameList in bytes + /* 01 */ u8 numElmnts; // number of elements + /* 02 */ u16 size; // size of this NameList in bytes /* 04 */ u16 dummy2; /* 06 */ u16 ofsHeader; // offset to the G3d_NameList_Header /* 08 */ void *entry[1]; // variable size @@ -44,31 +44,31 @@ typedef struct G3d_Animation_ { /* 00 */ u8 mUnk_00[0x10]; /* 10 */ struct G3d_Animation_ *next; // next animation in the list /* 14 */ u8 mUnk_14[0x5]; - /* 19 */ u8 numElmnts; // number of elements in the elementBinds array + /* 19 */ u8 numElmnts; // number of elements in the elementBinds array /* 1A */ u16 elementBinds[1]; // each bit corresponds to a bone/material and determines whether an animation exists for it /* 1C */ } G3d_Animation; // Structure representing the NSBMD model file typedef struct G3d_Model_ { - /* 00 */ u32 size; // size of the model in bytes - /* 04 */ u32 offSbc; // offset of the SBC commands list - /* 08 */ u32 offMat; // offset of the material list - /* 0C */ u32 offMesh; // offset of the mesh list + /* 00 */ u32 size; // size of the model in bytes + /* 04 */ u32 offSbc; // offset of the SBC commands list + /* 08 */ u32 offMat; // offset of the material list + /* 0C */ u32 offMesh; // offset of the mesh list /* 10 */ u32 offInvBMtx; // offset of the InvBindMatrix list /* 14 */ u8 dummy1; /* 15 */ u8 scalingHandler; // Determines which of the G3d_gScaleHandlers to use for this model /* 16 */ u8 textureHandler; // Determines which of the G3d_gTextureHandlers to use for this model - /* 17 */ u8 numBones; // number of nodes - /* 18 */ u8 numMat; // number of materials - /* 19 */ u8 numMesh; // number of meshes + /* 17 */ u8 numBones; // number of nodes + /* 18 */ u8 numMat; // number of materials + /* 19 */ u8 numMesh; // number of meshes /* 1A */ u8 dummy2[2]; /* 1C */ q20 upScale; /* 20 */ q20 downScale; - /* 24 */ u16 numVertex; // number of vertices - /* 26 */ u16 numPolygon; // number of polygons - /* 28 */ u16 numTriangle; // number of triangles - /* 2A */ u16 numQuad; // number of quads + /* 24 */ u16 numVertex; // number of vertices + /* 26 */ u16 numPolygon; // number of polygons + /* 28 */ u16 numTriangle; // number of triangles + /* 2A */ u16 numQuad; // number of quads /* 2C */ q4 boundingBoxMin[3]; // bounding box lower vertex /* 32 */ q4 boundingBoxMax[3]; // bounding box upper vertex /* 38 */ u8 dummy3[8]; @@ -108,11 +108,11 @@ typedef struct G3d_RenderObject_ { /* 1C */ void *mUnk_1C; /* 20 */ G3d_CallbackFunction callbackFunction; /* 24 */ u8 callbackIdx; // index of the callbackFunction in the callback array of G3d_RenderState - /* 25 */ u8 mUnk_25; // related to callback + /* 25 */ u8 mUnk_25; // related to callback /* 26 */ u16 dummy_; /* 28 */ G3d_CallbackFunction callbackInitFunc; // initializes the G3d_RenderState callback array - /* 2C */ void *modelRender; // pointer to the ModelRender that is rendering this model - /* 30 */ u8 *unkCommandsList; // if not null, this command list is used instead of the one in the model + /* 2C */ void *modelRender; // pointer to the ModelRender that is rendering this model + /* 30 */ u8 *unkCommandsList; // if not null, this command list is used instead of the one in the model /* 34 */ G3d_BoneMtxStruct *cacheJntAnm; /* 38 */ void *cacheMatAnm; /* 3C */ u32 matAnimBindMap[2]; diff --git a/libs/nns/include/nns/g3d/sbc.h b/libs/nns/include/nns/g3d/sbc.h index 41391409..1b12ab0d 100644 --- a/libs/nns/include/nns/g3d/sbc.h +++ b/libs/nns/include/nns/g3d/sbc.h @@ -32,11 +32,11 @@ typedef enum { } G3d_RenderStateFlag; typedef struct G3d_RenderState_ { - /* 00 */ u8 *currentCmd; // current command being processed - /* 04 */ G3d_RenderObject *renderObj; // current render object being processed - /* 08 */ u32 flag; // G3d_RenderStateFlag + /* 00 */ u8 *currentCmd; // current command being processed + /* 04 */ G3d_RenderObject *renderObj; // current render object being processed + /* 08 */ u32 flag; // G3d_RenderStateFlag /* 0C */ G3d_CallbackFunction callbackFuncs[32]; // callback function for each SBC command - /* 8C */ u8 callbackSegment[32]; // determines at which segment of the SBC command to invoke the callback + /* 8C */ u8 callbackSegment[32]; // determines at which segment of the SBC command to invoke the callback /* AC */ u8 currentBoneId; /* AD */ u8 currentMaterialId; /* AE */ u8 currentBoneMtxId; diff --git a/libs/nns/src/g3d/sbc.c b/libs/nns/src/g3d/sbc.c index 5a6c7fbe..f6002613 100644 --- a/libs/nns/src/g3d/sbc.c +++ b/libs/nns/src/g3d/sbc.c @@ -248,7 +248,7 @@ void G3d_SBCRender_007(G3d_RenderState *renderState, u32 opCode) { FlushGfxQueue(); REG_GFX_FIFO = 0x151110; // MTX_MODE | MTX_PUSH | MTX_IDENTITY - REG_GFX_FIFO = 0; // MTX_MODE = Projection + REG_GFX_FIFO = 0; // MTX_MODE = Projection REG_GFX_FIFO = 0; @@ -278,18 +278,18 @@ void G3d_SBCRender_007(G3d_RenderState *renderState, u32 opCode) { scaleVec->z = Vec3p_Length((Vec3p *) ¤tMtx.zColumn); if (data_027e0208.flags & 1) { - REG_GFX_FIFO = 0x171012; // MTX_POP | MTX_MODE | MTX_LOAD_4x3 + REG_GFX_FIFO = 0x171012; // MTX_POP | MTX_MODE | MTX_LOAD_4x3 Stream32(&funcArgs[1], ®_GFX_FIFO, 8); // MTX_MODE = Position Stream32(func_0200c270(), ®_GFX_FIFO, 0x30); - REG_GFX_FIFO = 0x1b19; // MTX_MULT_4x3 | MTX_SCALE + REG_GFX_FIFO = 0x1b19; // MTX_MULT_4x3 | MTX_SCALE Stream32(&funcArgs[3], ®_GFX_FIFO, 0x3c); // Identity MTX } else if (data_027e0208.flags & 2) { - REG_GFX_FIFO = 0x171012; // MTX_POP | MTX_MODE | MTX_LOAD_4x3 + REG_GFX_FIFO = 0x171012; // MTX_POP | MTX_MODE | MTX_LOAD_4x3 Stream32(&funcArgs[1], ®_GFX_FIFO, 8); // MTX_MODE = Position Stream32(func_0200c198(), ®_GFX_FIFO, 0x30); - REG_GFX_FIFO = 0x1b19; // MTX_MULT_4x3 | MTX_SCALE + REG_GFX_FIFO = 0x1b19; // MTX_MULT_4x3 | MTX_SCALE Stream32(&funcArgs[3], ®_GFX_FIFO, 0x3c); // Identity MTX } else { Stream32(&funcArgs, ®_GFX_FIFO, 0x48); // MTX_POP | MTX_MODE | MTX_LOAD_4x3 | MTX_SCALE @@ -386,7 +386,7 @@ void G3d_SBCRender_008(G3d_RenderState *renderState, u32 opCode) { FlushGfxQueue(); REG_GFX_FIFO = 0x151110; // MTX_MODE | MTX_PUSH | MTX_IDENTITY - REG_GFX_FIFO = 0; // MTX_MODE = Projection + REG_GFX_FIFO = 0; // MTX_MODE = Projection REG_GFX_FIFO = 0; @@ -428,18 +428,18 @@ void G3d_SBCRender_008(G3d_RenderState *renderState, u32 opCode) { } if (data_027e0208.flags & 1) { - REG_GFX_FIFO = 0x171012; // MTX_POP | MTX_MODE | MTX_LOAD_4x3 + REG_GFX_FIFO = 0x171012; // MTX_POP | MTX_MODE | MTX_LOAD_4x3 Stream32(&funcArgs[1], ®_GFX_FIFO, 8); // MTX_MODE = Position Stream32(func_0200c270(), ®_GFX_FIFO, 0x30); - REG_GFX_FIFO = 0x1b19; // MTX_MULT_4x3 | MTX_SCALE + REG_GFX_FIFO = 0x1b19; // MTX_MULT_4x3 | MTX_SCALE Stream32(&funcArgs[3], ®_GFX_FIFO, 0x3c); // Identity MTX } else if (data_027e0208.flags & 2) { - REG_GFX_FIFO = 0x171012; // MTX_POP | MTX_MODE | MTX_LOAD_4x3 + REG_GFX_FIFO = 0x171012; // MTX_POP | MTX_MODE | MTX_LOAD_4x3 Stream32(&funcArgs[1], ®_GFX_FIFO, 8); // MTX_MODE = Position Stream32(func_0200c198(), ®_GFX_FIFO, 0x30); - REG_GFX_FIFO = 0x1b19; // MTX_MULT_4x3 | MTX_SCALE + REG_GFX_FIFO = 0x1b19; // MTX_MULT_4x3 | MTX_SCALE Stream32(&funcArgs[3], ®_GFX_FIFO, 0x3c); // Identity MTX } else { Stream32(&funcArgs, ®_GFX_FIFO, 0x48); // MTX_POP | MTX_MODE | MTX_LOAD_4x3 | MTX_SCALE @@ -750,11 +750,11 @@ void G3d_SBCRender_00C(G3d_RenderState *renderState, u32) { if (data_027e0208.flags & 1) { G3d_MtxMult33_inline((const Mat3p *) &data_027e0208.mUnk_04C); // MTX_MULT_3x3 - G3d_MtxMult33_inline(&gGeomMatrix); // MTX_MULT_3x3 - G3d_MtxMult33_inline(&m); // MTX_MULT_3x3 + G3d_MtxMult33_inline(&gGeomMatrix); // MTX_MULT_3x3 + G3d_MtxMult33_inline(&m); // MTX_MULT_3x3 } else if (data_027e0208.flags & 2) { G3d_MtxMult33_inline((const Mat3p *) &data_027e0208.mUnk_04C); // MTX_MULT_3x3 - G3d_MtxMult33_inline(&m); // MTX_MULT_3x3 + G3d_MtxMult33_inline(&m); // MTX_MULT_3x3 } else { G3d_MtxMult33_inline(&m); // MTX_MULT_3x3 } @@ -877,8 +877,8 @@ void G3d_SBCRender_00D(G3d_RenderState *renderState, u32) { if (data_027e0208.flags & 1) { PushGeometryCommand(0x1c, &gGeomTranslation, 3); // MTX_TRANS - G3d_MtxMult33_inline(&gGeomMatrix); // MTX_MULT_3x3 - G3d_MtxMult43_inline(&m); // MTX_MULT_4x3 + G3d_MtxMult33_inline(&gGeomMatrix); // MTX_MULT_3x3 + G3d_MtxMult43_inline(&m); // MTX_MULT_4x3 } else if (data_027e0208.flags & 2) { G3d_MtxMult43_inline(&m); diff --git a/libs/runtime/include/MWException.h b/libs/runtime/include/MWException.h index 3847e459..0c90cb19 100644 --- a/libs/runtime/include/MWException.h +++ b/libs/runtime/include/MWException.h @@ -44,9 +44,9 @@ extern void __rethrow(void); extern char __throw_catch_compare(const u8 *throwtype, const u8 *catchtype, s32 *offset_result); #define DTORARG_TYPE short -#define DTORARG_PARTIAL (0) // destroy non-virtual bases +#define DTORARG_PARTIAL (0) // destroy non-virtual bases #define DTORARG_COMPLETE (-1) // destroy all bases -#define DTORARG_DELETE (1) // destroy all bases and delete object +#define DTORARG_DELETE (1) // destroy all bases and delete object #define DTORCALL_COMPLETE(dtor, objptr) (((void (*)(void *, DTORARG_TYPE)) dtor)(objptr, DTORARG_COMPLETE)) #define DTORCALL_PARTIAL(dtor, objptr) (((void (*)(void *, DTORARG_TYPE)) dtor)(objptr, DTORARG_PARTIAL)) diff --git a/src/000_Second/Item/ItemManager.cpp b/src/000_Second/Item/ItemManager.cpp index 92c19504..b15d4c7c 100644 --- a/src/000_Second/Item/ItemManager.cpp +++ b/src/000_Second/Item/ItemManager.cpp @@ -14,35 +14,32 @@ const u8 gBombBagCapacities[UpgradeCapacity_Max] = { CAPACITY_BOMB_BAG_TIER_3, }; -// SetInventoryFlag? -ARM void ItemManager::func_ov000_020a863c(ItemFlag itemFlag) { - SET_FLAG(this->mUnk_08, itemFlag); +ARM void ItemManager::SetFlag(ItemFlag itemFlag) { + SET_FLAG(this->mFlags, itemFlag); } -// removeEquipmentItem -ARM void ItemManager::func_ov000_020a865c(ItemFlag itemFlag) { - UNSET_FLAG(this->mUnk_08, itemFlag); +ARM void ItemManager::ClearFlag(ItemFlag itemFlag) { + UNSET_FLAG(this->mFlags, itemFlag); } -ARM bool ItemManager::func_ov000_020a8680() { - return GET_FLAG(this->mUnk_08, ItemFlag_RecruitUniform) && (this->mUnk_12 & 1); +ARM bool ItemManager::HasRecruitUniform() { + return GET_FLAG(this->mFlags, ItemFlag_RecruitUniform) && (this->mUnk_12 & 1); } ARM unk32 ItemManager::func_ov000_020a86a4() { - if (GET_FLAG(this->mUnk_08, ItemFlag_AncientShield) && (this->mUnk_12 & 2)) { + if (GET_FLAG(this->mFlags, ItemFlag_AncientShield) && (this->mUnk_12 & 2)) { return 1; } - if (GET_FLAG(this->mUnk_08, ItemFlag_Shield)) { + if (GET_FLAG(this->mFlags, ItemFlag_Shield)) { return 0; } return -1; } -// getItemAmmo -ARM u32 ItemManager::func_ov000_020a86d0(ItemFlag itemFlag) { - bool canUse = GET_FLAG(this->mUnk_08, itemFlag); +ARM u32 ItemManager::GetItemAmount(ItemFlag itemFlag) { + bool canUse = GET_FLAG(this->mFlags, itemFlag); switch (itemFlag) { case ItemFlag_Bow: @@ -56,18 +53,16 @@ ARM u32 ItemManager::func_ov000_020a86d0(ItemFlag itemFlag) { return canUse; } -// getMaxArrows -ARM u8 ItemManager::func_ov000_020a8728() { - if (GET_FLAG(this->mUnk_08, ItemFlag_Bow) == 0) { +ARM u8 ItemManager::GetQuiverCapacity() { + if (GET_FLAG(this->mFlags, ItemFlag_Bow) == 0) { return 0; } return gQuiverCapacities[this->mQuiverCapacity]; } -// getMaxBombs -ARM u8 ItemManager::func_ov000_020a8748() { - if (GET_FLAG(this->mUnk_08, ItemFlag_Bombs) == 0) { +ARM u8 ItemManager::GetBombBagCapacity() { + if (GET_FLAG(this->mFlags, ItemFlag_Bombs) == 0) { return 0; } @@ -91,8 +86,7 @@ ARM void ItemManager::GiveRupees(s32 amount, bool param2, bool param3) { } } -// addKeys -ARM void ItemManager::func_ov000_020a87c8(s32 amount) { +ARM void ItemManager::GiveSmallKeys(s32 amount) { s32 newAmount = this->mKeyAmount + amount; if (newAmount > MAX_KEYS) { @@ -104,9 +98,8 @@ ARM void ItemManager::func_ov000_020a87c8(s32 amount) { this->mKeyAmount = newAmount; } -// gainArrows -ARM void ItemManager::func_ov000_020a87ec(s32 amount) { - s32 maxArrows = this->func_ov000_020a8728(); +ARM void ItemManager::GiveArrows(s32 amount) { + s32 maxArrows = this->GetQuiverCapacity(); s32 newAmount = this->mArrowAmount + amount; if (newAmount > maxArrows) { @@ -118,9 +111,8 @@ ARM void ItemManager::func_ov000_020a87ec(s32 amount) { this->mArrowAmount = newAmount; } -// gainBombs -ARM void ItemManager::func_ov000_020a8820(s32 amount) { - s32 maxBombs = this->func_ov000_020a8748(); +ARM void ItemManager::GiveBombs(s32 amount) { + s32 maxBombs = this->GetBombBagCapacity(); s32 newAmount = this->mBombAmount + amount; if (newAmount > maxBombs) { @@ -132,7 +124,7 @@ ARM void ItemManager::func_ov000_020a8820(s32 amount) { this->mBombAmount = newAmount; } -ARM bool ItemManager::func_ov000_020a8854() { +ARM bool ItemManager::TryEquipForcedItem() { if (this->mForcedItem != ItemFlag_None) { this->mEquippedItem = this->mForcedItem; this->mForcedItem = ItemFlag_None; @@ -143,8 +135,7 @@ ARM bool ItemManager::func_ov000_020a8854() { return false; } -// gainPotion -ARM void ItemManager::func_ov000_020a888c(PotionType type) { +ARM void ItemManager::GivePotion(PotionType type) { switch (type) { case PotionType_Red: case PotionType_Purple: @@ -161,8 +152,7 @@ ARM void ItemManager::func_ov000_020a888c(PotionType type) { } } -// hasPotion -ARM bool ItemManager::func_ov000_020a88c8() { +ARM bool ItemManager::HasPotion() { for (u32 i = 0; i < ARRAY_LEN(this->mPotions); i++) { if (this->mPotions[i] != PotionType_None) { return true; @@ -172,8 +162,7 @@ ARM bool ItemManager::func_ov000_020a88c8() { return false; } -// hasPurplePotion -ARM bool ItemManager::func_ov000_020a88f4() { +ARM bool ItemManager::HasPurplePotion() { for (u32 i = 0; i < ARRAY_LEN(this->mPotions); i++) { if (this->mPotions[i] == PotionType_Purple) { return true; @@ -183,8 +172,7 @@ ARM bool ItemManager::func_ov000_020a88f4() { return false; } -// removePurplePotion -ARM void ItemManager::func_ov000_020a8920() { +ARM void ItemManager::RemovePurplePotion() { for (s32 i = ARRAY_LEN(this->mPotions) - 1; i >= 0; i--) { if (this->mPotions[i] == PotionType_Purple) { this->mPotions[i] = PotionType_None; @@ -193,13 +181,13 @@ ARM void ItemManager::func_ov000_020a8920() { } } -// potionInventoryFull -ARM bool ItemManager::func_ov000_020a8948() { +ARM bool ItemManager::PotionSlotsFull() { for (u32 i = 0; i < ARRAY_LEN(this->mPotions); i++) { if (this->mPotions[i] == PotionType_None) { return false; } } + return true; } @@ -207,8 +195,7 @@ ARM UnkStruct_ov000_020afc48 *ItemManager::func_ov000_020a8974(ItemFlag itemFlag return &data_ov000_020afc48[itemFlag]; } -// GetEquipItemFlag? -ARM ItemFlag ItemManager::func_ov000_020a8984(ItemId itemId) { +ARM ItemFlag ItemManager::GetEquippedItemFlag(ItemId itemId) { ItemFlag itemFlag; for (itemFlag = 0; itemFlag < ItemFlag_EQUIP_COUNT; itemFlag++) { @@ -238,8 +225,7 @@ ARM bool ItemManager::func_ov000_020a89d4() { ARM bool ItemManager::func_ov000_020a8a0c() { if (this->mUnk_20 == NULL || this->mEquippedItem == ItemFlag_None || - IS_ITEM_RESTRICTED(this->mItemRestrictions, this->mEquippedItem) || - this->func_ov000_020a86d0(this->mEquippedItem) == 0) { + IS_ITEM_RESTRICTED(this->mItemRestrictions, this->mEquippedItem) || this->GetItemAmount(this->mEquippedItem) == 0) { return false; } diff --git a/src/000_Second/data_ov000_020af58c.cpp b/src/000_Second/data_ov000_020af58c.cpp index b500a070..cf3501ab 100644 --- a/src/000_Second/data_ov000_020af58c.cpp +++ b/src/000_Second/data_ov000_020af58c.cpp @@ -28,16 +28,16 @@ const u32 data_ov000_020af58c[] = { GIModel_litB, // ItemId_SnowGlyph GIModel_litC, // ItemId_OceanGlyph GIModel_litD, // ItemId_FireGlyph - GIModel_litA, // ItemId_25 - GIModel_litB, // ItemId_26 - GIModel_litC, // ItemId_27 - GIModel_litD, // ItemId_28 - GIModel_litC, // ItemId_29 + GIModel_litA, // ItemId_RestoredForestGlyph + GIModel_litB, // ItemId_RestoredSnowGlyph + GIModel_litC, // ItemId_RestoredOceanGlyph + GIModel_litD, // ItemId_RestoredFireGlyph + GIModel_litC, // ItemId_RestoredDesertOceanGlyph GIModel_litA, // ItemId_FinalTrack - GIModel_None, // ItemId_31 - GIModel_None, // ItemId_32 - GIModel_None, // ItemId_33 - GIModel_None, // ItemId_34 + GIModel_None, // ItemId_SpiritTrain + GIModel_None, // ItemId_TrainCannon + GIModel_None, // ItemId_SpiritTrainCar + GIModel_None, // ItemId_TrainWagon GIModel_frcY, // ItemId_ForceGem_35 GIModel_frcY, // ItemId_ForceGem_36 GIModel_frcY, // ItemId_ForceGem_37 diff --git a/src/001_SceneInit/CargoManager_001.cpp b/src/001_SceneInit/CargoManager_001.cpp new file mode 100644 index 00000000..8ebdd187 --- /dev/null +++ b/src/001_SceneInit/CargoManager_001.cpp @@ -0,0 +1,32 @@ +#include "MainGame/CargoManager.hpp" +#include "Unknown/UnkStruct_027e09a4.hpp" +#include "global.h" + +THUMB_BEGIN + +CargoManager::CargoManager() { + this->mUnk_18 = 0; + this->mUnk_1C = 0; +} + +CargoManager::~CargoManager() {} + +void CargoManager::func_ov001_020bf830() { + if (this->mCargo.mAmount == 0 && data_027e09a4->func_01ffd3d8() == 0) { + this->mCargo.mType = CargoType_None; + } + + this->mUnk_18 = 0; + this->mUnk_1C = 0; +} + +void CargoManager::SetInstance(CargoManager *pInstance) { + gpCargoManager = pInstance; +} + +bool CargoManager::ClearInstance() { + gpCargoManager = NULL; + //! @bug: missing return +} + +THUMB_END diff --git a/src/001_SceneInit/PassengerManager_001.cpp b/src/001_SceneInit/PassengerManager_001.cpp new file mode 100644 index 00000000..df6c1c85 --- /dev/null +++ b/src/001_SceneInit/PassengerManager_001.cpp @@ -0,0 +1,90 @@ +#include "MainGame/PassengerManager.hpp" + +THUMB_BEGIN + +inline bool Test(s32 val) { + bool ret = false; + + if (val > 18 || val >= 16) { + ret = true; + } + + return ret; +} + +inline bool Test2(s32 val) { + bool ret = true; + + if (val != 15 && !Test(val)) { + ret = false; + } + + return ret; +} + +inline bool Test3(s32 val) { + bool ret = true; + + if (!Test2(val)) { + if (*((volatile unk32 *) &data_027e09a4->mSceneIndex) != 36) { + ret = false; + } + } + + return ret; +} + +// https://decomp.me/scratch/svwnb +bool PassengerManager::func_ov001_020bf870() { + s32 sceneIndex = data_027e09a4->mSceneIndex; + bool ret = true; + + if (!Test3(sceneIndex)) { + if (*((volatile unk32 *) &data_027e09a4->mSceneIndex) != 37) { + ret = false; + } + } + + return ret; +} + +PassengerManager::PassengerManager() { + this->mDate = 0; + this->mUnk_2C = -1; + this->mUnk_30 = -1; +} + +PassengerManager::~PassengerManager() {} + +void PassengerManager::func_ov001_020bf8e4() { + this->func_ov001_020bf910(); + + if (this->CanCompleteTrip() && this->func_ov001_020bf870()) { + this->SetFailedFlag(); + this->Reset(); + } +} + +void PassengerManager::func_ov001_020bf90c() {} + +void PassengerManager::func_ov001_020bf910() {} + +// non-matching +bool PassengerManager::func_ov001_020bfa1c() { + volatile u16 date[2]; + u16 date2; + date[1] = date[0] = this->GetDate(); + + return !((date2 << 0x1B) & 1); +} + +void PassengerManager::SetInstance(PassengerManager *pInstance) { + gpPassengerManager = pInstance; +} + +bool PassengerManager::ClearInstance() { + gpPassengerManager = NULL; + //! @bug missing return +} + +THUMB_END diff --git a/src/017_CourseExec/CargoManager_017.cpp b/src/017_CourseExec/CargoManager_017.cpp new file mode 100644 index 00000000..c759fb4f --- /dev/null +++ b/src/017_CourseExec/CargoManager_017.cpp @@ -0,0 +1,180 @@ +#include "MainGame/CargoManager.hpp" +#include "Save/AdventureFlags.hpp" +#include "Unknown/UnkStruct_020d8698.hpp" +#include "Unknown/UnkStruct_027e09a4.hpp" +#include "Unknown/UnkStruct_027e0cd8.hpp" +#include "Unknown/UnkStruct_027e0ce0.hpp" +#include "Unknown/UnkStruct_027e0d00.hpp" + +struct CargoInfos { + /* 00 */ u16 timerMax; + /* 02 */ s8 amountDecr; + /* 03 */ s8 amountDamageDecr; + /* 04 */ s16 amount; + /* 06 */ +}; + +static const CargoInfos sCargoInfos[] = { + { + // CargoType_MegaIce + .timerMax = 600, + .amountDecr = 1, + .amountDamageDecr = 3, + .amount = 5, + }, + { + // CargoType_Wood + .timerMax = 0, + .amountDecr = 3, + .amountDamageDecr = 3, + .amount = 5, + }, + { + // CargoType_Iron + .timerMax = 0, + .amountDecr = 3, + .amountDamageDecr = 3, + .amount = 5, + }, + { + // CargoType_Fish + .timerMax = 900, + .amountDecr = 3, + .amountDamageDecr = 3, + .amount = 5, + }, + { + // CargoType_Cuccos + .timerMax = 0, + .amountDecr = 1, + .amountDamageDecr = 1, + .amount = 1, + }, + { + // CargoType_Vessel + .timerMax = 0, + .amountDecr = 1, + .amountDamageDecr = 1, + .amount = 0, + }, + { + // CargoType_DarkOre + .timerMax = 900, + .amountDecr = 1, + .amountDamageDecr = 3, + .amount = 5, + }, +}; + +void CargoManager::DoUpdate() { + gpCargoManager->Update(); +} + +bool CargoManager::IsNotUsingTimer(unk32 type) { + if (type == CargoType_None) { + return true; + } + + if (sCargoInfos[type].timerMax == 0) { + return true; + } + + return false; +} + +void CargoManager::Update() { + if (UnkStruct_027e0ce0::func_ov000_0205c904()->func_ov024_020d3dcc() == 0) { + return; + } + + if (!CargoManager::IsNotUsingTimer(this->mCargo.mType)) { + if (this->mCargo.mType != CargoType_None && this->mCargo.mAmount != 0) { + //! TODO: fake match? + unk32 type = *((volatile unk32 *) &this->mCargo.mType); + + if (type == CargoType_DarkOre) { + if (this->func_ov017_020bec9c()) { + this->mCargo.mDecayTimer++; + } + } else if (type == CargoType_MegaIce || type == CargoType_Fish) { + // the timer won't increase if we are in snow realm + if (data_027e09a4->func_01ffd400()->mUnk_1B & 0x20) { + this->mCargo.mDecayTimer++; + } + } else { + this->mCargo.mDecayTimer++; + } + + if (this->mCargo.mDecayTimer >= sCargoInfos[this->mCargo.mType].timerMax) { + this->RemoveAmount(1); + this->mCargo.mDecayTimer = 0; + data_ov024_020d8698->func_ov024_020cd3f0(1); + } + } + } + + if (this->mCargo.mAmount <= sCargoInfos[this->mCargo.mType].amount) { + data_ov024_020d8698->func_ov024_020cd3e0(1); + } else { + data_ov024_020d8698->func_ov024_020cd3e0(0); + } + + if (this->mUnk_18 > 0) { + this->mUnk_18--; + } +} + +void CargoManager::Reset() { + this->mCargo.Clear(); + this->mCargo2.Clear(); + UnkStruct_027e0d00::func_ov000_0205c944()->func_ov024_020d4d10(); +} + +void CargoManager::Init(unk32 type, unk32 amount) { + this->mCargo.Set(type, amount); + this->mCargo2.Set(type, amount); + + UnkStruct_027e0d00 *pUnkStruct_027e0d00 = UnkStruct_027e0d00::func_ov000_0205c944(); + pUnkStruct_027e0d00->func_ov024_020d4d10(); + pUnkStruct_027e0d00->func_ov024_020d4cc0(this->mCargo.mType); + + data_ov024_020d8698->func_ov024_020cd410(); + data_ov024_020d8698->func_ov024_020cd3f0(1); +} + +void CargoManager::func_ov017_020bebdc() { + if (this->mCargo.mType > CargoType_None && this->mCargo.mType < CargoType_Max) { + this->RemoveAmount(sCargoInfos[this->mCargo.mType].amountDecr); + data_ov024_020d8698->func_ov024_020cd3d0(); + } +} + +void CargoManager::func_ov017_020bec20() { + if (this->mCargo.mType > CargoType_None && this->mCargo.mType < CargoType_Max) { + this->mUnk_18 = 0x1E; + this->RemoveAmount(sCargoInfos[this->mCargo.mType].amountDamageDecr); + data_ov024_020d8698->func_ov024_020cd3d0(); + } +} + +void CargoManager::RemoveAmount(unk32 decr) { + unk32 prevAmount = this->mCargo.mAmount; + + if (prevAmount >= decr) { + this->mCargo.mAmount = prevAmount - decr; + } else { + this->mCargo.mAmount = 0; + } + + if (prevAmount > 0 && this->mCargo.mAmount == 0) { + this->mUnk_1C = true; + } +} + +bool CargoManager::func_ov017_020bec9c() { + if (data_027e09a4->func_01ffd3d8() != 0) { + return data_027e0cd8->mUnk_0C->mUnk_160->func_ov026_02106aa8(); + } + + return false; +} diff --git a/src/019_MainSelect/019_UnkSubStruct9.cpp b/src/019_MainSelect/019_UnkSubStruct9.cpp index 55e82427..d45b038b 100644 --- a/src/019_MainSelect/019_UnkSubStruct9.cpp +++ b/src/019_MainSelect/019_UnkSubStruct9.cpp @@ -24,7 +24,7 @@ ARM UnkSubStruct9::UnkSubStruct9(stack_struct1 param1) : mUnk_614(0x89, 0x07), mUnk_68C(0x89, 0x08), mUnk_704(0x89, 0x09) { - // Vec2s stack; + // Vec2s stack; void *stack; if (this->mSaveSlotIndex == 0) { this->mUnk_004.func_ov000_020633c0(0x40, 0x89, 0x02, 0x1F, 0x89, 0x00); @@ -32,7 +32,7 @@ ARM UnkSubStruct9::UnkSubStruct9(stack_struct1 param1) : this->mUnk_77C.y = 0; } else if (this->mSaveSlotIndex == 1) { this->mUnk_004.func_ov000_020633c0(0x41, 0x89, 0x01, 0x1F, 0x89, 0x01); - UnkStruct_ov019_020d24c8_28_258 local_40(0x89, 0x02); // sp28 + UnkStruct_ov019_020d24c8_28_258 local_40(0x89, 0x02); // sp28 UnkStruct_ov019_020d24c8_28_258 local_58(0x89, 0x01); // sp10 s16 temp_r2 = local_58.mPos.x - local_40.mPos.x; diff --git a/src/019_MainSelect/FileSelectMain.cpp b/src/019_MainSelect/FileSelectMain.cpp index efa3c881..101e0861 100644 --- a/src/019_MainSelect/FileSelectMain.cpp +++ b/src/019_MainSelect/FileSelectMain.cpp @@ -282,7 +282,7 @@ ARM void FileSelectMain::func_ov019_020c6e3c() { Vec2p auStack_50[2]; Vec2s local_44; Vec2us auStack_60[2]; // c e - Vec2us local_64; // 4 6 + Vec2us local_64; // 4 6 int fileIndex; fileIndex = this->mSaveSlotIndex == 0; @@ -977,7 +977,7 @@ ARM void FileSelectMain::func_ov019_020c7dc8() { unk32 var_r10; unk32 var_r2; unk32 var_r1; - Vec2p local_48; // sp8 spC + Vec2p local_48; // sp8 spC Vec2us sp10_sp12[2]; // sp4 sp6 sp10 sp12 if (this->mState == FileSelectState_ChooseModeToContactMode) { diff --git a/src/024_MainGame/CargoManager_024.cpp b/src/024_MainGame/CargoManager_024.cpp new file mode 100644 index 00000000..6972143f --- /dev/null +++ b/src/024_MainGame/CargoManager_024.cpp @@ -0,0 +1,29 @@ +#include "MainGame/CargoManager.hpp" +#include "System/SysNew.hpp" + +CargoManager *CargoManager::Create() { + return new(HeapIndex_1) CargoManager(); +} + +void CargoManager::SetCargo(unk32 type, unk32 amount) { + this->mCargo.Set(type, amount); + this->func_ov024_020d5900(); +} + +void CargoManager::GetTypeAndAmount(unk32 *pType, unk32 *pAmount) { + volatile Cargo *pCargo = &this->mCargo2; + + unk32 type = pCargo->mType; + unk32 amount = pCargo->mAmount; + + *pType = type; + *pAmount = amount; +} + +void CargoManager::func_ov024_020d5900() { + this->mCargo2 = this->mCargo; +} + +void CargoManager::func_ov024_020d591c() { + this->mCargo = this->mCargo2; +} diff --git a/src/024_MainGame/PassengerManager.cpp b/src/024_MainGame/PassengerManager.cpp new file mode 100644 index 00000000..edd2383f --- /dev/null +++ b/src/024_MainGame/PassengerManager.cpp @@ -0,0 +1,357 @@ +#include "MainGame/PassengerManager.hpp" +#include "System/SysNew.hpp" +#include "Unknown/UnkStruct_02049bac.hpp" +#include "Unknown/UnkStruct_027e09b8.hpp" + +extern "C" SceneIndex func_ov000_0205c984(); +extern "C" u32 func_ov000_0205c9b4(); + +struct PassengerInfos { + ActorId actorId; + AdventureFlag_Half flagBoard; + AdventureFlag_Half flagFail; +}; + +static const PassengerInfos sPassengerInfos[] = { + { + .actorId = ActorId_SYWA, + .flagBoard = AdventureFlag_CarbenBoardsTrain, + .flagFail = AdventureFlag_FailedCarbenTrainRide, + }, + { + .actorId = ActorId_WAMA, + .flagBoard = AdventureFlag_WadatsumiBoardsTrain, + .flagFail = AdventureFlag_FailedWadatsumiTrainRide, + }, + { + .actorId = ActorId_FOMA, + .flagBoard = AdventureFlag_MorrisBoardsTrain, + .flagFail = AdventureFlag_FailedMorrisTrainRide, + }, + { + .actorId = ActorId_FOMB, + .flagBoard = AdventureFlag_MashBoardsTrain, + .flagFail = AdventureFlag_FailedMashTrainRide, + }, + { + .actorId = ActorId_FOMC, + .flagBoard = AdventureFlag_YamahikoBoardsTrain, + .flagFail = AdventureFlag_FailedYamahikoTrainRide, + }, + { + .actorId = ActorId_FOPD, + .flagBoard = AdventureFlag_Unk_1B1, + .flagFail = AdventureFlag_Unk_1C9, + }, + { + .actorId = ActorId_FOMR, + .flagBoard = AdventureFlag_DovokBoardsTrain, + .flagFail = AdventureFlag_FailedDovokTrainRide, + }, + { + .actorId = ActorId_YKAP, + .flagBoard = AdventureFlag_KofuBoardsTrain, + .flagFail = AdventureFlag_FailedKofuTrainRide, + }, + { + .actorId = ActorId_GORP, + .flagBoard = AdventureFlag_GoronAdultBoardsTrain, + .flagFail = AdventureFlag_FailedGoronAdultTrainRide, + }, + { + .actorId = ActorId_GOCP, + .flagBoard = AdventureFlag_ChildGoronBoardsTrain, + .flagFail = AdventureFlag_FailedChildGoronTrainRide, + }, + { + .actorId = ActorId_YKCP, + .flagBoard = AdventureFlag_NokoBoardsTrain, + .flagFail = AdventureFlag_FailedNokoTrainRide, + }, + { + .actorId = ActorId_TMNA, + .flagBoard = AdventureFlag_FerrusBoardsTrainToOutset, + .flagFail = AdventureFlag_FailedFerrusTrainRideToOutset, + }, + { + .actorId = ActorId_TMNP, + .flagBoard = AdventureFlag_FerrusBoardsTrainToMarineTemple, + .flagFail = AdventureFlag_FailedFerrusTrainRideToMarineTemple, + }, + { + .actorId = ActorId_CAWB, + .flagBoard = AdventureFlag_MonaBoardsTrain, + .flagFail = AdventureFlag_FailedMonaTrainRide, + }, + { + .actorId = ActorId_NCCA, + .flagBoard = AdventureFlag_JoeBoardsTrain, + .flagFail = AdventureFlag_FailedJoeTrainRide, + }, + { + .actorId = ActorId_CRFP, + .flagBoard = AdventureFlag_KenzoBoardsTrainToBuildFence, + .flagFail = AdventureFlag_FailedKenzoTrainRideToAnouki, + }, +}; + +u32 PassengerManager::GetPassengerInfoIndex(ActorId actorId) { + for (u32 i = 0; i < ARRAY_LEN(sPassengerInfos); i++) { + if (actorId == sPassengerInfos[i].actorId) { + return i; + } + } + + return -1; +} + +AdventureFlag PassengerManager::GetBoardFlag(ActorId actorId) { + u32 index = PassengerManager::GetPassengerInfoIndex(actorId); + + if (index != -1) { + return sPassengerInfos[index].flagBoard; + } + + return AdventureFlag_Nothing; +} + +AdventureFlag PassengerManager::GetFailFlag(ActorId actorId) { + u32 index = PassengerManager::GetPassengerInfoIndex(actorId); + + if (index != -1) { + return sPassengerInfos[index].flagFail; + } + + return AdventureFlag_Nothing; +} + +PassengerManager *PassengerManager::Create() { + return new(HeapIndex_1) PassengerManager(); +} + +// non-matching +void PassengerManager::func_ov024_020d41bc(UnkStruct_Param1 *param1) { + ActorId actorId = param1->actorId; + s16 mUnk_04 = param1->mUnk_04; + + s16 sceneIndex = param1->sceneIndex; + this->mPassenger.mActorId = actorId; + this->mPassenger.mUnk_04 = mUnk_04; + + u8 roomIndex = param1->roomIndex; + unk32 happiness = param1->happiness; + u16 mUnk_14 = param1->mUnk_14; + + this->mPassenger.mSceneIndex = sceneIndex; + this->mPassenger.mRoomIndex = roomIndex; + this->mPassenger.mHappiness = happiness; + this->mDate = mUnk_14; + + this->func_ov024_020d4228(); +} + +void PassengerManager::func_ov024_020d41f4(UnkStruct_Param1 *param1) { + param1->actorId = this->mPassenger2.mActorId; + param1->mUnk_04 = this->mPassenger2.mUnk_04; + param1->sceneIndex = this->mPassenger2.mSceneIndex; + param1->roomIndex = this->mPassenger2.mRoomIndex; + param1->happiness = this->mPassenger2.mHappiness; + param1->mUnk_14 = this->mDate; +} + +void PassengerManager::func_ov024_020d4228() { + this->mPassenger2.mActorId = this->mPassenger.mActorId; + this->mPassenger2.mUnk_04 = this->mPassenger.mUnk_04; + this->mPassenger2.mSceneIndex = this->mPassenger.mSceneIndex; + this->mPassenger2.mRoomIndex = this->mPassenger.mRoomIndex; + this->mPassenger2.mHappiness = this->mPassenger.mHappiness; +} + +void PassengerManager::func_ov024_020d4258() { + this->mPassenger.mActorId = this->mPassenger2.mActorId; + this->mPassenger.mUnk_04 = this->mPassenger2.mUnk_04; + this->mPassenger.mSceneIndex = this->mPassenger2.mSceneIndex; + this->mPassenger.mRoomIndex = this->mPassenger2.mRoomIndex; + this->mPassenger.mHappiness = this->mPassenger2.mHappiness; +} + +bool PassengerManager::TryBoardTrain(ActorId actorId, SceneIndex sceneIndex, u32 roomIndex) { + if (!this->CanCompleteTrip() && !this->IsCaughtByPirates()) { + this->mPassenger.mActorId = actorId; + this->mPassenger.mUnk_04 = 0; + this->mPassenger.mSceneIndex = sceneIndex; + this->mPassenger.mRoomIndex = roomIndex; + this->mPassenger.mHappiness = HappinessLevel_5; + this->func_ov024_020d4228(); + + if (this->mPassenger.mActorId == ActorId_OLDS) { + this->func_ov024_020d4554(); + } + + return true; + } + + return false; +} + +bool PassengerManager::TryReset() { + if (this->CanCompleteTrip()) { + this->Reset(); + return true; + } + + return false; +} + +bool PassengerManager::TryResetAtDestination() { + if (this->CanCompleteTrip()) { + if (this->ReachedDestination(func_ov000_0205c984(), func_ov000_0205c9b4())) { + this->Reset(); + return true; + } + } + + return false; +} + +bool PassengerManager::ReachedDestination(SceneIndex sceneIndex, u32 roomIndex) { + if (this->mPassenger.mRoomIndex == 0xFF) { + return this->mPassenger.mSceneIndex == sceneIndex; + } + + return this->mPassenger.mSceneIndex == sceneIndex && this->mPassenger.mRoomIndex == roomIndex; +} + +bool PassengerManager::TrySetCaughtByPirates() { + if (this->CanCompleteTrip()) { + SET_FLAG(data_027e09b8->mAdventureFlags, AdventureFlag_Unk_2CC); + this->mPassenger.mUnk_04 = 1; + return true; + } + + return false; +} + +bool PassengerManager::CaughtByPiratesTryReset() { + if (this->IsCaughtByPirates()) { + UNSET_FLAG(data_027e09b8->mAdventureFlags, AdventureFlag_Unk_2CC); + this->SetFailedFlag(); + this->Reset(); + return true; + } + + return false; +} + +void PassengerManager::GiveHappiness(unk32 amount) { + if (this->CanCompleteTrip() || this->IsCaughtByPirates()) { + if (this->mPassenger.mHappiness != HappinessLevel_0) { + unk32 newHappiness = this->mPassenger.mHappiness + amount; + + if (newHappiness > HappinessLevel_5) { + newHappiness = HappinessLevel_5; + } else if (newHappiness < HappinessLevel_0) { + newHappiness = HappinessLevel_0; + } + + this->mPassenger.mHappiness = newHappiness; + } + } +} + +unk32 PassengerManager::GetHappiness() { + return this->mPassenger.mHappiness; +} + +unk32 PassengerManager::GetHappinessCond() { + if (!this->CanCompleteTrip() && !this->IsCaughtByPirates()) { + return -1; + } + + return this->mPassenger.mHappiness; +} + +bool PassengerManager::CanCompleteTrip() { + bool result = false; + + if (this->mPassenger.mActorId != ActorId_None && this->mPassenger.mUnk_04 == 0 && + data_027e09a4->mSceneIndex != SceneIndex_t_minigame) { + result = true; + } + + return result; +} + +bool PassengerManager::IsCaughtByPirates() { + if (this->mPassenger.mActorId != ActorId_None && this->mPassenger.mUnk_04 == 1) { + return true; + } + + return false; +} + +ActorId PassengerManager::GetActorId() { + return this->mPassenger.mActorId; +} + +PassengerManager *PassengerManager::GetInstance() { + PassengerManager *pPassengerManager = this; + + if (!this->CanCompleteTrip() && !this->IsCaughtByPirates()) { + pPassengerManager = NULL; + } + + return pPassengerManager; +} + +void PassengerManager::func_ov024_020d4554() { + this->mUnk_2C = -1; + this->mUnk_30 = -1; +} + +void PassengerManager::Reset() { + if (this->mPassenger.mActorId == ActorId_OLDS) { + //! TODO: fake match + volatile u16 date[2]; + date[0] = this->GetDate(); + u16 date2 = date[0]; + date[1] = date2; + this->mDate = date2; + } + + this->mPassenger.Reset(); + this->mPassenger2.Reset(); +} + +bool PassengerManager::IsDateUnset() { + return this->mDate == 0; +} + +s16 PassengerManager::GetDate() { + u16 date; + data_02049bac.func_02014a34(&date); + return date; +} + +// non-matching +u32 PassengerManager::GetRandomIndex(u32 arg1, s32 arg2) { + u64 factor = 0x5D588B656C078965; + u64 addend = 0x00269EC3; + + u64 seed = (u32) arg2; + u64 seed2 = addend + (factor * seed); + + u32 thing = seed2 >> 32; + + return thing % arg1; +} + +void PassengerManager::SetFailedFlag() { + if (this->mPassenger.mActorId != ActorId_OLDS) { + AdventureFlag flagBoard = PassengerManager::GetBoardFlag(this->mPassenger.mActorId); + AdventureFlag flagFail = PassengerManager::GetFailFlag(this->mPassenger.mActorId); + + UNSET_FLAG(data_027e09b8->mAdventureFlags, flagBoard); + SET_FLAG(data_027e09b8->mAdventureFlags, flagFail); + } +} diff --git a/src/031_Land/MapObject/MapObjectChestBase.cpp b/src/031_Land/MapObject/MapObjectChestBase.cpp index c3624797..e6e5dcf7 100644 --- a/src/031_Land/MapObject/MapObjectChestBase.cpp +++ b/src/031_Land/MapObject/MapObjectChestBase.cpp @@ -213,7 +213,7 @@ ARM ItemId MapObjectChestBase::func_ov031_021037d0() { this->vfunc_38(7, 0); - if ((u32) this->mItemId - ItemId_RedPotion <= 2 && data_027e0ce0->mUnk_2C->func_ov000_020a8948()) { + if ((u32) this->mItemId - ItemId_RedPotion <= 2 && data_027e0ce0->mUnk_2C->PotionSlotsFull()) { return ItemId_BigGreenRupee; } diff --git a/src/031_Land/MapObject/MapObjectDoorKey.cpp b/src/031_Land/MapObject/MapObjectDoorKey.cpp index c383dfd7..f4478ad2 100644 --- a/src/031_Land/MapObject/MapObjectDoorKey.cpp +++ b/src/031_Land/MapObject/MapObjectDoorKey.cpp @@ -98,7 +98,7 @@ ARM void MapObjectDoorKey::vfunc_5C(unk32 param1, unk32 param2) { switch (this->mUnk_16) { case 3: if (param2 == 0) { - data_027e0ce0->mUnk_2C->func_ov000_020a87c8(-1); + data_027e0ce0->mUnk_2C->GiveSmallKeys(-1); } UNSET_FLAG(this->mFlags, MapObjFlag_9); diff --git a/src/036_MapA5/Actor/ActorUnkSHIT.cpp b/src/036_MapA5/Actor/ActorUnkSHIT.cpp index 582d80e3..5ef26679 100644 --- a/src/036_MapA5/Actor/ActorUnkSHIT.cpp +++ b/src/036_MapA5/Actor/ActorUnkSHIT.cpp @@ -177,7 +177,7 @@ ARM bool ActorUnkSHIT::func_ov036_0211d2dc(void) { switch (this->mItemId) { case ItemId_NormalShield: - if (GET_FLAG(pIVar4->mUnk_08, ItemFlag_Shield)) { + if (GET_FLAG(pIVar4->mFlags, ItemFlag_Shield)) { return false; } @@ -185,7 +185,7 @@ ARM bool ActorUnkSHIT::func_ov036_0211d2dc(void) { case ItemId_RedPotion: case ItemId_PurplePotion: case ItemId_YellowPotion: - if (pIVar4->func_ov000_020a8948()) { + if (pIVar4->PotionSlotsFull()) { return false; } @@ -231,26 +231,26 @@ ARM bool ActorUnkSHIT::func_ov036_0211d2dc(void) { break; case ItemId_BombsRefill: - if (!GET_FLAG(pIVar4->mUnk_08, ItemFlag_Bombs)) { + if (!GET_FLAG(pIVar4->mFlags, ItemFlag_Bombs)) { return false; } { u8 amount = pIVar4->mBombAmount; - if (amount >= pIVar4->func_ov000_020a8748()) { + if (amount >= pIVar4->GetBombBagCapacity()) { return false; } } break; case ItemId_ArrowsRefill: - if (!GET_FLAG(pIVar4->mUnk_08, ItemFlag_Bow)) { + if (!GET_FLAG(pIVar4->mFlags, ItemFlag_Bow)) { return false; } { u8 amount = pIVar4->mArrowAmount; - if (amount >= pIVar4->func_ov000_020a8728()) { + if (amount >= pIVar4->GetQuiverCapacity()) { return false; } } @@ -258,7 +258,7 @@ ARM bool ActorUnkSHIT::func_ov036_0211d2dc(void) { break; case ItemId_QuiverMedium: case ItemId_QuiverLarge: - if (!GET_FLAG(pIVar4->mUnk_08, ItemFlag_Bow)) { + if (!GET_FLAG(pIVar4->mFlags, ItemFlag_Bow)) { return false; } @@ -324,10 +324,10 @@ ARM void ActorUnkSHIT::func_ov036_0211d570(unk32 param1) { this->mUnk_2D3 = true; break; case ItemId_BombsRefill: - pIVar4->func_ov000_020a8820(10); + pIVar4->GiveBombs(10); break; case ItemId_ArrowsRefill: - pIVar4->func_ov000_020a87ec(10); + pIVar4->GiveArrows(10); break; case ItemId_QuiverMedium: case ItemId_QuiverLarge: diff --git a/src/110_PlayerGet/PlayerGet.cpp b/src/110_PlayerGet/PlayerGet.cpp index d705aa19..7de31356 100644 --- a/src/110_PlayerGet/PlayerGet.cpp +++ b/src/110_PlayerGet/PlayerGet.cpp @@ -73,7 +73,7 @@ static inline s16 GetItemFlag(ItemId itemId) { ARM bool ItemManager::func_ov110_02184a40(ItemId itemId) { switch (itemId) { case ItemId_NormalKey: - this->func_ov000_020a87c8(1); + this->GiveSmallKeys(1); break; case ItemId_GreenRupee: this->GiveRupees(1, true, true); @@ -102,7 +102,7 @@ ARM bool ItemManager::func_ov110_02184a40(ItemId itemId) { this->mQuiverCapacity++; } - this->mArrowAmount = this->func_ov000_020a8728(); + this->mArrowAmount = this->GetQuiverCapacity(); break; case ItemId_BombBagMedium: case ItemId_BombBagLarge: @@ -110,22 +110,22 @@ ARM bool ItemManager::func_ov110_02184a40(ItemId itemId) { this->mBombBagCapacity++; } - this->mBombAmount = this->func_ov000_020a8748(); + this->mBombAmount = this->GetBombBagCapacity(); break; case ItemId_RedPotion: - this->func_ov000_020a888c(PotionType_Red); + this->GivePotion(PotionType_Red); break; case ItemId_PurplePotion: - this->func_ov000_020a888c(PotionType_Purple); + this->GivePotion(PotionType_Purple); break; case ItemId_YellowPotion: - this->func_ov000_020a888c(PotionType_Yellow); + this->GivePotion(PotionType_Yellow); break; case ItemId_ArrowsRefill: - this->func_ov000_020a87ec(10); + this->GiveArrows(10); break; case ItemId_BombsRefill: - this->func_ov000_020a8820(10); + this->GiveBombs(10); break; case ItemId_TearLight: if (this->mTearsAmount >= 3) { @@ -135,10 +135,10 @@ ARM bool ItemManager::func_ov110_02184a40(ItemId itemId) { } break; default: - ItemFlag itemFlag = ItemManager::func_ov000_020a8984(itemId); + ItemFlag itemFlag = ItemManager::GetEquippedItemFlag(itemId); if (itemFlag != ItemFlag_None) { - this->func_ov000_020a863c(itemFlag); + this->SetFlag(itemFlag); switch (itemFlag) { case ItemFlag_Bombs: @@ -161,7 +161,7 @@ ARM bool ItemManager::func_ov110_02184a40(ItemId itemId) { itemFlag = GetItemFlag(itemId); if (itemFlag != ItemFlag_None) { - this->func_ov000_020a863c(itemFlag); + this->SetFlag(itemFlag); } } break; @@ -178,7 +178,7 @@ ARM bool ItemManager::func_ov110_02184a40(ItemId itemId) { data_ov000_020b6510->func_ov000_020aa0ac(itemId); gpMiscAdvManager->GiveLetterOrPriceCard(itemId); - if (!GET_FLAG(this->mUnk_08, ItemFlag_LokomoSword) && itemId == ItemId_TearLight && + if (!GET_FLAG(this->mFlags, ItemFlag_LokomoSword) && itemId == ItemId_TearLight && this->mTearsAmount == MAX_TEARS_OF_LIGHT && (gOverlayManager.mLoadedOverlays[OverlaySlot_8] == OverlayIndex_Tower)) { return true; } @@ -188,244 +188,244 @@ ARM bool ItemManager::func_ov110_02184a40(ItemId itemId) { // BMG IDs static const u32 sBMGItemMap[] = { - BMG_ID(BMGGroup_maingame, 0x01), // ItemId_Nothing - BMG_ID(BMGGroup_maingame, 0x02), // ItemId_NormalShield - BMG_ID(BMGGroup_castle, 0xD6), // ItemId_NormalSword - BMG_ID(BMGGroup_dungeon, 0x7A), // ItemId_Whirlwind - BMG_ID(BMGGroup_maingame, 0x03), // ItemId_BombBag - BMG_ID(BMGGroup_dungeon, 0x7B), // ItemId_NormalBow - BMG_ID(BMGGroup_dungeon, 0x7C), // ItemId_Boomerang - BMG_ID(BMGGroup_dungeon, 0x7D), // ItemId_Whip - BMG_ID(BMGGroup_dungeon, 0x7E), // ItemId_SandRod - BMG_ID(BMGGroup_maingame, 0x04), // ItemId_9 - BMG_ID(BMGGroup_maingame, 0x05), // ItemId_NormalKey - BMG_ID(BMGGroup_maingame, 0x06), // ItemId_BossKey - BMG_ID(BMGGroup_maingame, 0x07), // ItemId_GreenRupee - BMG_ID(BMGGroup_maingame, 0x08), // ItemId_BlueRupee - BMG_ID(BMGGroup_maingame, 0x09), // ItemId_RedRupee - BMG_ID(BMGGroup_maingame, 0x0A), // ItemId_BigGreenRupee - BMG_ID(BMGGroup_maingame, 0x0B), // ItemId_BigRedRupee - BMG_ID(BMGGroup_maingame, 0x0C), // ItemId_BigGoldRupee - BMG_ID(BMGGroup_maingame, 0x0D), // ItemId_ForceGem_18 - BMG_ID(BMGGroup_maingame, 0x0E), // ItemId_ForceGem_19 - BMG_ID(BMGGroup_maingame, 0x0F), // ItemId_ForceGem_20 - BMG_ID(BMGGroup_tower, 0x00), // ItemId_ForestGlyph - BMG_ID(BMGGroup_tower, 0x01), // ItemId_SnowGlyph - BMG_ID(BMGGroup_tower, 0x02), // ItemId_OceanGlyph - BMG_ID(BMGGroup_tower, 0x03), // ItemId_FireGlyph - BMG_ID(BMGGroup_forest, 0xEB), // ItemId_25 - BMG_ID(BMGGroup_snow, 0x00), // ItemId_26 - BMG_ID(BMGGroup_water, 0x00), // ItemId_27 - BMG_ID(BMGGroup_flame_fld, 0x8E), // ItemId_28 - BMG_ID(BMGGroup_desert, 0x48), // ItemId_29 - BMG_ID(BMGGroup_maingame, 0x10), // ItemId_FinalTrack - BMG_ID(BMGGroup_maingame, 0x11), // ItemId_31 - BMG_ID(BMGGroup_maingame, 0x12), // ItemId_32 - BMG_ID(BMGGroup_maingame, 0x13), // ItemId_33 - BMG_ID(BMGGroup_maingame, 0x14), // ItemId_34 - BMG_ID(BMGGroup_maingame, 0x15), // ItemId_ForceGem_35 - BMG_ID(BMGGroup_maingame, 0x16), // ItemId_ForceGem_36 - BMG_ID(BMGGroup_maingame, 0x17), // ItemId_ForceGem_37 - BMG_ID(BMGGroup_castle, 0xD7), // ItemId_RecruitUniform - BMG_ID(BMGGroup_maingame, 0x18), // ItemId_PostmasterLetter - BMG_ID(BMGGroup_maingame, 0x19), // ItemId_HeartContainer - BMG_ID(BMGGroup_maingame, 0x1A), // ItemId_QuiverMedium - BMG_ID(BMGGroup_maingame, 0x1B), // ItemId_BombBagMedium - BMG_ID(BMGGroup_maingame, 0x1C), // ItemId_ForceGem_43 - BMG_ID(BMGGroup_maingame, 0x1D), // ItemId_ForceGem_44 - BMG_ID(BMGGroup_maingame, 0x1E), // ItemId_ForceGem_45 - BMG_ID(BMGGroup_maingame, 0x1F), // ItemId_ForceGem_46 - BMG_ID(BMGGroup_maingame, 0x20), // ItemId_ForceGem_47 - BMG_ID(BMGGroup_maingame, 0x21), // ItemId_ForceGem_48 - BMG_ID(BMGGroup_maingame, 0x22), // ItemId_ForceGem_49 - BMG_ID(BMGGroup_maingame, 0x23), // ItemId_ForceGem_50 - BMG_ID(BMGGroup_maingame, 0x24), // ItemId_ForceGem_51 - BMG_ID(BMGGroup_maingame, 0x25), // ItemId_ForceGem_52 - BMG_ID(BMGGroup_maingame, 0x26), // ItemId_ForceGem_53 - BMG_ID(BMGGroup_maingame, 0x27), // ItemId_ForceGem_54 - BMG_ID(BMGGroup_maingame, 0x28), // ItemId_ForceGem_55 - BMG_ID(BMGGroup_maingame, 0x29), // ItemId_ForceGem_56 - BMG_ID(BMGGroup_maingame, 0x2A), // ItemId_ForceGem_57 - BMG_ID(BMGGroup_maingame, 0x2B), // ItemId_ForceGem_58 - BMG_ID(BMGGroup_maingame, 0x2C), // ItemId_ForceGem_59 - BMG_ID(BMGGroup_maingame, 0x2D), // ItemId_ForceGem_60 - BMG_ID(BMGGroup_maingame, 0x2E), // ItemId_ForceGem_61 - BMG_ID(BMGGroup_maingame, 0x2F), // ItemId_PanFlute - BMG_ID(BMGGroup_village, 0xF7), // ItemId_StampBook - BMG_ID(BMGGroup_dungeon, 0x7F), // ItemId_LightBow - BMG_ID(BMGGroup_maingame, 0x30), // ItemId_LokomoSword - BMG_ID(BMGGroup_maingame, 0x31), // ItemId_TenPriceCard - BMG_ID(BMGGroup_maingame, 0x32), // ItemId_RedPotion - BMG_ID(BMGGroup_maingame, 0x33), // ItemId_PurplePotion - BMG_ID(BMGGroup_maingame, 0x34), // ItemId_YellowPotion - BMG_ID(BMGGroup_maingame, 0x35), // ItemId_DemonFossil - BMG_ID(BMGGroup_maingame, 0x36), // ItemId_StalfosSkull - BMG_ID(BMGGroup_maingame, 0x37), // ItemId_StarFragment - BMG_ID(BMGGroup_maingame, 0x38), // ItemId_BeeLarvae - BMG_ID(BMGGroup_maingame, 0x39), // ItemId_WoodHeart - BMG_ID(BMGGroup_maingame, 0x3A), // ItemId_DarkPearlLoop - BMG_ID(BMGGroup_maingame, 0x3B), // ItemId_WhitePearlLoop - BMG_ID(BMGGroup_maingame, 0x3C), // ItemId_RutoCrown - BMG_ID(BMGGroup_maingame, 0x3D), // ItemId_DragonScale - BMG_ID(BMGGroup_maingame, 0x3E), // ItemId_PirateNecklace - BMG_ID(BMGGroup_maingame, 0x3F), // ItemId_PalaceDish - BMG_ID(BMGGroup_maingame, 0x40), // ItemId_GoronAmber - BMG_ID(BMGGroup_maingame, 0x41), // ItemId_MysticJade - BMG_ID(BMGGroup_maingame, 0x42), // ItemId_AncientCoin - BMG_ID(BMGGroup_maingame, 0x43), // ItemId_PricelessStone - BMG_ID(BMGGroup_maingame, 0x44), // ItemId_RegalRing - BMG_ID(BMGGroup_maingame, 0x45), // ItemId_ArrowsRefill - BMG_ID(BMGGroup_maingame, 0x46), // ItemId_BombsRefill - BMG_ID(BMGGroup_maingame, 0x47), // ItemId_SoldOutSign - BMG_ID(BMGGroup_village, 0xF8), // ItemId_AncientShield - BMG_ID(BMGGroup_maingame, 0x48), // ItemId_QuiverLarge - BMG_ID(BMGGroup_maingame, 0x49), // ItemId_BombBagLarge - BMG_ID(BMGGroup_maingame, 0x4A), // ItemId_RandCommonTreasure - BMG_ID(BMGGroup_maingame, 0x4B), // ItemId_RandUncommonTreasure - BMG_ID(BMGGroup_maingame, 0x4C), // ItemId_RandRareTreasure - BMG_ID(BMGGroup_maingame, 0x4D), // ItemId_RandLegendaryTreasure - BMG_ID(BMGGroup_tower, 0x04), // ItemId_TearLight - BMG_ID(BMGGroup_tower, 0x05), // ItemId_LightCompass - BMG_ID(BMGGroup_maingame, 0x4E), // ItemId_ScrollSpinAttack - BMG_ID(BMGGroup_maingame, 0x4F), // ItemId_ScrollBeam - BMG_ID(BMGGroup_village, 0xF9), // ItemId_LinebeckLetter - BMG_ID(BMGGroup_forest, 0xEC), // ItemId_PanFluteSong_101 - BMG_ID(BMGGroup_dungeon, 0x80), // ItemId_PanFluteSong_102 - BMG_ID(BMGGroup_water, 0x01), // ItemId_PanFluteSong_103 - BMG_ID(BMGGroup_village, 0xFA), // ItemId_PanFluteSong_104 - BMG_ID(BMGGroup_snow, 0x01), // ItemId_PanFluteSong_105 - BMG_ID(BMGGroup_maingame, 0x50), // ItemId_RabbitNet - BMG_ID(BMGGroup_maingame, 0x51), // ItemId_BeedleCard - BMG_ID(BMGGroup_maingame, 0x52), // ItemId_SilverCard - BMG_ID(BMGGroup_maingame, 0x53), // ItemId_GoldCard - BMG_ID(BMGGroup_maingame, 0x54), // ItemId_PlatinumCard - BMG_ID(BMGGroup_maingame, 0x55), // ItemId_DiamondCard - BMG_ID(BMGGroup_maingame, 0x56), // ItemId_FreebieCard - BMG_ID(BMGGroup_maingame, 0x57), // ItemId_QuintupleCard - BMG_ID(BMGGroup_maingame, 0x58), // ItemId_CarbenLetter - BMG_ID(BMGGroup_maingame, 0x59), // ItemId_RecruitUniform2 - BMG_ID(BMGGroup_maingame, 0x5A), // ItemId_EngineerUniform + BMG_ID(BMGGroup_maingame, 0x01), // ItemId_Nothing + BMG_ID(BMGGroup_maingame, 0x02), // ItemId_NormalShield + BMG_ID(BMGGroup_castle, 0xD6), // ItemId_NormalSword + BMG_ID(BMGGroup_dungeon, 0x7A), // ItemId_Whirlwind + BMG_ID(BMGGroup_maingame, 0x03), // ItemId_BombBag + BMG_ID(BMGGroup_dungeon, 0x7B), // ItemId_NormalBow + BMG_ID(BMGGroup_dungeon, 0x7C), // ItemId_Boomerang + BMG_ID(BMGGroup_dungeon, 0x7D), // ItemId_Whip + BMG_ID(BMGGroup_dungeon, 0x7E), // ItemId_SandRod + BMG_ID(BMGGroup_maingame, 0x04), // ItemId_9 + BMG_ID(BMGGroup_maingame, 0x05), // ItemId_NormalKey + BMG_ID(BMGGroup_maingame, 0x06), // ItemId_BossKey + BMG_ID(BMGGroup_maingame, 0x07), // ItemId_GreenRupee + BMG_ID(BMGGroup_maingame, 0x08), // ItemId_BlueRupee + BMG_ID(BMGGroup_maingame, 0x09), // ItemId_RedRupee + BMG_ID(BMGGroup_maingame, 0x0A), // ItemId_BigGreenRupee + BMG_ID(BMGGroup_maingame, 0x0B), // ItemId_BigRedRupee + BMG_ID(BMGGroup_maingame, 0x0C), // ItemId_BigGoldRupee + BMG_ID(BMGGroup_maingame, 0x0D), // ItemId_ForceGem_18 + BMG_ID(BMGGroup_maingame, 0x0E), // ItemId_ForceGem_19 + BMG_ID(BMGGroup_maingame, 0x0F), // ItemId_ForceGem_20 + BMG_ID(BMGGroup_tower, 0x00), // ItemId_ForestGlyph + BMG_ID(BMGGroup_tower, 0x01), // ItemId_SnowGlyph + BMG_ID(BMGGroup_tower, 0x02), // ItemId_OceanGlyph + BMG_ID(BMGGroup_tower, 0x03), // ItemId_FireGlyph + BMG_ID(BMGGroup_forest, 0xEB), // ItemId_RestoredForestGlyph + BMG_ID(BMGGroup_snow, 0x00), // ItemId_RestoredSnowGlyph + BMG_ID(BMGGroup_water, 0x00), // ItemId_RestoredOceanGlyph + BMG_ID(BMGGroup_flame_fld, 0x8E), // ItemId_RestoredFireGlyph + BMG_ID(BMGGroup_desert, 0x48), // ItemId_RestoredDesertOceanGlyph + BMG_ID(BMGGroup_maingame, 0x10), // ItemId_FinalTrack + BMG_ID(BMGGroup_maingame, 0x11), // ItemId_SpiritTrain + BMG_ID(BMGGroup_maingame, 0x12), // ItemId_TrainCannon + BMG_ID(BMGGroup_maingame, 0x13), // ItemId_SpiritTrainCar + BMG_ID(BMGGroup_maingame, 0x14), // ItemId_TrainWagon + BMG_ID(BMGGroup_maingame, 0x15), // ItemId_ForceGem_35 + BMG_ID(BMGGroup_maingame, 0x16), // ItemId_ForceGem_36 + BMG_ID(BMGGroup_maingame, 0x17), // ItemId_ForceGem_37 + BMG_ID(BMGGroup_castle, 0xD7), // ItemId_RecruitUniform + BMG_ID(BMGGroup_maingame, 0x18), // ItemId_PostmasterLetter + BMG_ID(BMGGroup_maingame, 0x19), // ItemId_HeartContainer + BMG_ID(BMGGroup_maingame, 0x1A), // ItemId_QuiverMedium + BMG_ID(BMGGroup_maingame, 0x1B), // ItemId_BombBagMedium + BMG_ID(BMGGroup_maingame, 0x1C), // ItemId_ForceGem_43 + BMG_ID(BMGGroup_maingame, 0x1D), // ItemId_ForceGem_44 + BMG_ID(BMGGroup_maingame, 0x1E), // ItemId_ForceGem_45 + BMG_ID(BMGGroup_maingame, 0x1F), // ItemId_ForceGem_46 + BMG_ID(BMGGroup_maingame, 0x20), // ItemId_ForceGem_47 + BMG_ID(BMGGroup_maingame, 0x21), // ItemId_ForceGem_48 + BMG_ID(BMGGroup_maingame, 0x22), // ItemId_ForceGem_49 + BMG_ID(BMGGroup_maingame, 0x23), // ItemId_ForceGem_50 + BMG_ID(BMGGroup_maingame, 0x24), // ItemId_ForceGem_51 + BMG_ID(BMGGroup_maingame, 0x25), // ItemId_ForceGem_52 + BMG_ID(BMGGroup_maingame, 0x26), // ItemId_ForceGem_53 + BMG_ID(BMGGroup_maingame, 0x27), // ItemId_ForceGem_54 + BMG_ID(BMGGroup_maingame, 0x28), // ItemId_ForceGem_55 + BMG_ID(BMGGroup_maingame, 0x29), // ItemId_ForceGem_56 + BMG_ID(BMGGroup_maingame, 0x2A), // ItemId_ForceGem_57 + BMG_ID(BMGGroup_maingame, 0x2B), // ItemId_ForceGem_58 + BMG_ID(BMGGroup_maingame, 0x2C), // ItemId_ForceGem_59 + BMG_ID(BMGGroup_maingame, 0x2D), // ItemId_ForceGem_60 + BMG_ID(BMGGroup_maingame, 0x2E), // ItemId_ForceGem_61 + BMG_ID(BMGGroup_maingame, 0x2F), // ItemId_PanFlute + BMG_ID(BMGGroup_village, 0xF7), // ItemId_StampBook + BMG_ID(BMGGroup_dungeon, 0x7F), // ItemId_LightBow + BMG_ID(BMGGroup_maingame, 0x30), // ItemId_LokomoSword + BMG_ID(BMGGroup_maingame, 0x31), // ItemId_TenPriceCard + BMG_ID(BMGGroup_maingame, 0x32), // ItemId_RedPotion + BMG_ID(BMGGroup_maingame, 0x33), // ItemId_PurplePotion + BMG_ID(BMGGroup_maingame, 0x34), // ItemId_YellowPotion + BMG_ID(BMGGroup_maingame, 0x35), // ItemId_DemonFossil + BMG_ID(BMGGroup_maingame, 0x36), // ItemId_StalfosSkull + BMG_ID(BMGGroup_maingame, 0x37), // ItemId_StarFragment + BMG_ID(BMGGroup_maingame, 0x38), // ItemId_BeeLarvae + BMG_ID(BMGGroup_maingame, 0x39), // ItemId_WoodHeart + BMG_ID(BMGGroup_maingame, 0x3A), // ItemId_DarkPearlLoop + BMG_ID(BMGGroup_maingame, 0x3B), // ItemId_WhitePearlLoop + BMG_ID(BMGGroup_maingame, 0x3C), // ItemId_RutoCrown + BMG_ID(BMGGroup_maingame, 0x3D), // ItemId_DragonScale + BMG_ID(BMGGroup_maingame, 0x3E), // ItemId_PirateNecklace + BMG_ID(BMGGroup_maingame, 0x3F), // ItemId_PalaceDish + BMG_ID(BMGGroup_maingame, 0x40), // ItemId_GoronAmber + BMG_ID(BMGGroup_maingame, 0x41), // ItemId_MysticJade + BMG_ID(BMGGroup_maingame, 0x42), // ItemId_AncientCoin + BMG_ID(BMGGroup_maingame, 0x43), // ItemId_PricelessStone + BMG_ID(BMGGroup_maingame, 0x44), // ItemId_RegalRing + BMG_ID(BMGGroup_maingame, 0x45), // ItemId_ArrowsRefill + BMG_ID(BMGGroup_maingame, 0x46), // ItemId_BombsRefill + BMG_ID(BMGGroup_maingame, 0x47), // ItemId_SoldOutSign + BMG_ID(BMGGroup_village, 0xF8), // ItemId_AncientShield + BMG_ID(BMGGroup_maingame, 0x48), // ItemId_QuiverLarge + BMG_ID(BMGGroup_maingame, 0x49), // ItemId_BombBagLarge + BMG_ID(BMGGroup_maingame, 0x4A), // ItemId_RandCommonTreasure + BMG_ID(BMGGroup_maingame, 0x4B), // ItemId_RandUncommonTreasure + BMG_ID(BMGGroup_maingame, 0x4C), // ItemId_RandRareTreasure + BMG_ID(BMGGroup_maingame, 0x4D), // ItemId_RandLegendaryTreasure + BMG_ID(BMGGroup_tower, 0x04), // ItemId_TearLight + BMG_ID(BMGGroup_tower, 0x05), // ItemId_LightCompass + BMG_ID(BMGGroup_maingame, 0x4E), // ItemId_ScrollSpinAttack + BMG_ID(BMGGroup_maingame, 0x4F), // ItemId_ScrollBeam + BMG_ID(BMGGroup_village, 0xF9), // ItemId_LinebeckLetter + BMG_ID(BMGGroup_forest, 0xEC), // ItemId_PanFluteSong_101 + BMG_ID(BMGGroup_dungeon, 0x80), // ItemId_PanFluteSong_102 + BMG_ID(BMGGroup_water, 0x01), // ItemId_PanFluteSong_103 + BMG_ID(BMGGroup_village, 0xFA), // ItemId_PanFluteSong_104 + BMG_ID(BMGGroup_snow, 0x01), // ItemId_PanFluteSong_105 + BMG_ID(BMGGroup_maingame, 0x50), // ItemId_RabbitNet + BMG_ID(BMGGroup_maingame, 0x51), // ItemId_BeedleCard + BMG_ID(BMGGroup_maingame, 0x52), // ItemId_SilverCard + BMG_ID(BMGGroup_maingame, 0x53), // ItemId_GoldCard + BMG_ID(BMGGroup_maingame, 0x54), // ItemId_PlatinumCard + BMG_ID(BMGGroup_maingame, 0x55), // ItemId_DiamondCard + BMG_ID(BMGGroup_maingame, 0x56), // ItemId_FreebieCard + BMG_ID(BMGGroup_maingame, 0x57), // ItemId_QuintupleCard + BMG_ID(BMGGroup_maingame, 0x58), // ItemId_CarbenLetter + BMG_ID(BMGGroup_maingame, 0x59), // ItemId_RecruitUniform2 + BMG_ID(BMGGroup_maingame, 0x5A), // ItemId_EngineerUniform }; // Adventure Flags static const AdventureFlag sAdvFlagItemMap[] = { - AdventureFlag_Nothing, // ItemId_Nothing - AdventureFlag_Nothing, // ItemId_NormalShield - AdventureFlag_ObtainedRecruitSword, // ItemId_NormalSword - AdventureFlag_Nothing, // ItemId_Whirlwind - AdventureFlag_Nothing, // ItemId_BombBag - AdventureFlag_ObtainedBowAndArrows, // ItemId_NormalBow - AdventureFlag_Nothing, // ItemId_Boomerang - AdventureFlag_ObtainedWhip, // ItemId_Whip - AdventureFlag_ObtainedSandWand, // ItemId_SandRod - AdventureFlag_Nothing, // ItemId_9 - AdventureFlag_Nothing, // ItemId_NormalKey - AdventureFlag_Nothing, // ItemId_BossKey - AdventureFlag_Nothing, // ItemId_GreenRupee - AdventureFlag_Nothing, // ItemId_BlueRupee - AdventureFlag_Nothing, // ItemId_RedRupee - AdventureFlag_Nothing, // ItemId_BigGreenRupee - AdventureFlag_Nothing, // ItemId_BigRedRupee - AdventureFlag_Nothing, // ItemId_BigGoldRupee - AdventureFlag_ObtainedWadatsumiForceGem, // ItemId_ForceGem_18 - AdventureFlag_ObtainedNiboshiForceGem, // ItemId_ForceGem_19 + AdventureFlag_Nothing, // ItemId_Nothing + AdventureFlag_Nothing, // ItemId_NormalShield + AdventureFlag_ObtainedRecruitSword, // ItemId_NormalSword + AdventureFlag_Nothing, // ItemId_Whirlwind + AdventureFlag_Nothing, // ItemId_BombBag + AdventureFlag_ObtainedBowAndArrows, // ItemId_NormalBow + AdventureFlag_Nothing, // ItemId_Boomerang + AdventureFlag_ObtainedWhip, // ItemId_Whip + AdventureFlag_ObtainedSandWand, // ItemId_SandRod + AdventureFlag_Nothing, // ItemId_9 + AdventureFlag_Nothing, // ItemId_NormalKey + AdventureFlag_Nothing, // ItemId_BossKey + AdventureFlag_Nothing, // ItemId_GreenRupee + AdventureFlag_Nothing, // ItemId_BlueRupee + AdventureFlag_Nothing, // ItemId_RedRupee + AdventureFlag_Nothing, // ItemId_BigGreenRupee + AdventureFlag_Nothing, // ItemId_BigRedRupee + AdventureFlag_Nothing, // ItemId_BigGoldRupee + AdventureFlag_ObtainedWadatsumiForceGem, // ItemId_ForceGem_18 + AdventureFlag_ObtainedNiboshiForceGem, // ItemId_ForceGem_19 AdventureFlag_ObtainedGoronAdultMegaIceForceGem, // ItemId_ForceGem_20 - AdventureFlag_ObtainedForestGlyph, // ItemId_ForestGlyph - AdventureFlag_ObtainedSnowGlyph, // ItemId_SnowGlyph - AdventureFlag_ObtainedOceanGlyph, // ItemId_OceanGlyph - AdventureFlag_ObtainedFireGlyph, // ItemId_FireGlyph - AdventureFlag_CompletedForestRestorationSong, // ItemId_25 - AdventureFlag_CompletedOceanRestorationSong, // ItemId_26 - AdventureFlag_CompletedSnowRestorationSong, // ItemId_27 - AdventureFlag_CompletedFireRestorationSong, // ItemId_28 - AdventureFlag_CompletedSandRestorationSong, // ItemId_29 - AdventureFlag_OpenedDarkRealmPortal, // ItemId_FinalTrack - AdventureFlag_ObtainedSpiritTrain, // ItemId_31 - AdventureFlag_ObtainedTrainCannon, // ItemId_32 - AdventureFlag_Unk_020, // ItemId_33 - AdventureFlag_ObtainedTrainWagon, // ItemId_34 - AdventureFlag_ObtainedFerrusForceGem2, // ItemId_ForceGem_35 - AdventureFlag_ObtainedKofuForceGem, // ItemId_ForceGem_36 - AdventureFlag_ObtainedChildGoronForceGem, // ItemId_ForceGem_37 - AdventureFlag_Nothing, // ItemId_RecruitUniform - AdventureFlag_Nothing, // ItemId_PostmasterLetter - AdventureFlag_Nothing, // ItemId_HeartContainer - AdventureFlag_Nothing, // ItemId_QuiverMedium - AdventureFlag_Nothing, // ItemId_BombBagMedium - AdventureFlag_ObtainedLuciaForceGem, // ItemId_ForceGem_43 - AdventureFlag_ObtainedOrcaForceGem, // ItemId_ForceGem_44 - AdventureFlag_ObtainedCarbenForceGem, // ItemId_ForceGem_45 - AdventureFlag_ObtainedRaelForceGem, // ItemId_ForceGem_46 - AdventureFlag_ObtainedJoeForceGem, // ItemId_ForceGem_47 - AdventureFlag_ObtainedMonaForceGem, // ItemId_ForceGem_48 - AdventureFlag_ObtainedHarryForceGem, // ItemId_ForceGem_49 - AdventureFlag_ObtainedMashForceGem, // ItemId_ForceGem_50 - AdventureFlag_ObtainedFerrusForceGem1, // ItemId_ForceGem_51 - AdventureFlag_ObtainedYekoForceGem, // ItemId_ForceGem_52 - AdventureFlag_ObtainedNokoForceGem, // ItemId_ForceGem_53 - AdventureFlag_ObtainedGoronAdultAnoukiForceGem, // ItemId_ForceGem_54 - AdventureFlag_ObtainedSteemForceGem, // ItemId_ForceGem_55 - AdventureFlag_ObtainedLinebeckForceGem, // ItemId_ForceGem_56 - AdventureFlag_ObtainedAnjeanDesertForceGem, // ItemId_ForceGem_57 - AdventureFlag_Unk_0A7, // ItemId_ForceGem_58 - AdventureFlag_Unk_0A8, // ItemId_ForceGem_59 - AdventureFlag_Unk_0A9, // ItemId_ForceGem_60 - AdventureFlag_Unk_0AA, // ItemId_ForceGem_61 - AdventureFlag_Nothing, // ItemId_PanFlute - AdventureFlag_Nothing, // ItemId_StampBook - AdventureFlag_ObtainedBowOfLight, // ItemId_LightBow - AdventureFlag_Unk_0B1, // ItemId_LokomoSword - AdventureFlag_Nothing, // ItemId_TenPriceCard - AdventureFlag_Nothing, // ItemId_RedPotion - AdventureFlag_Nothing, // ItemId_PurplePotion - AdventureFlag_Nothing, // ItemId_YellowPotion - AdventureFlag_Nothing, // ItemId_DemonFossil - AdventureFlag_Nothing, // ItemId_StalfosSkull - AdventureFlag_Nothing, // ItemId_StarFragment - AdventureFlag_Nothing, // ItemId_BeeLarvae - AdventureFlag_Nothing, // ItemId_WoodHeart - AdventureFlag_Nothing, // ItemId_DarkPearlLoop - AdventureFlag_Nothing, // ItemId_WhitePearlLoop - AdventureFlag_Nothing, // ItemId_RutoCrown - AdventureFlag_Nothing, // ItemId_DragonScale - AdventureFlag_Nothing, // ItemId_PirateNecklace - AdventureFlag_Nothing, // ItemId_PalaceDish - AdventureFlag_Nothing, // ItemId_GoronAmber - AdventureFlag_Nothing, // ItemId_MysticJade - AdventureFlag_Nothing, // ItemId_AncientCoin - AdventureFlag_Nothing, // ItemId_PricelessStone - AdventureFlag_Nothing, // ItemId_RegalRing - AdventureFlag_Nothing, // ItemId_ArrowsRefill - AdventureFlag_Nothing, // ItemId_BombsRefill - AdventureFlag_Nothing, // ItemId_SoldOutSign - AdventureFlag_Nothing, // ItemId_AncientShield - AdventureFlag_Nothing, // ItemId_QuiverLarge - AdventureFlag_Nothing, // ItemId_BombBagLarge - AdventureFlag_Nothing, // ItemId_RandCommonTreasure - AdventureFlag_Nothing, // ItemId_RandUncommonTreasure - AdventureFlag_Nothing, // ItemId_RandRareTreasure - AdventureFlag_Nothing, // ItemId_RandLegendaryTreasure - AdventureFlag_Nothing, // ItemId_TearLight - AdventureFlag_ObtainedCompassOfLight, // ItemId_LightCompass - AdventureFlag_Nothing, // ItemId_ScrollSpinAttack - AdventureFlag_Nothing, // ItemId_ScrollBeam - AdventureFlag_ObtainedLinebecksLetter, // ItemId_LinebeckLetter - AdventureFlag_Nothing, // ItemId_PanFluteSong_101 - AdventureFlag_Nothing, // ItemId_PanFluteSong_102 - AdventureFlag_Nothing, // ItemId_PanFluteSong_103 - AdventureFlag_Nothing, // ItemId_PanFluteSong_104 - AdventureFlag_Nothing, // ItemId_PanFluteSong_105 - AdventureFlag_ObtainedRabbitNet, // ItemId_RabbitNet - AdventureFlag_ObtainedBeedlePointsCard, // ItemId_BeedleCard - AdventureFlag_Unk_18E, // ItemId_SilverCard - AdventureFlag_Unk_18F, // ItemId_GoldCard - AdventureFlag_Unk_190, // ItemId_PlatinumCard - AdventureFlag_Unk_191, // ItemId_DiamondCard - AdventureFlag_ObtainedBeedleFreebieCard, // ItemId_FreebieCard + AdventureFlag_ObtainedForestGlyph, // ItemId_ForestGlyph + AdventureFlag_ObtainedSnowGlyph, // ItemId_SnowGlyph + AdventureFlag_ObtainedOceanGlyph, // ItemId_OceanGlyph + AdventureFlag_ObtainedFireGlyph, // ItemId_FireGlyph + AdventureFlag_CompletedForestRestorationSong, // ItemId_RestoredForestGlyph + AdventureFlag_CompletedOceanRestorationSong, // ItemId_RestoredSnowGlyph + AdventureFlag_CompletedSnowRestorationSong, // ItemId_RestoredOceanGlyph + AdventureFlag_CompletedFireRestorationSong, // ItemId_RestoredFireGlyph + AdventureFlag_CompletedSandRestorationSong, // ItemId_RestoredDesertOceanGlyph + AdventureFlag_OpenedDarkRealmPortal, // ItemId_FinalTrack + AdventureFlag_ObtainedSpiritTrain, // ItemId_SpiritTrain + AdventureFlag_ObtainedTrainCannon, // ItemId_TrainCannon + AdventureFlag_ObtainedSpiritTrainCar, // ItemId_SpiritTrainCar + AdventureFlag_ObtainedTrainWagon, // ItemId_TrainWagon + AdventureFlag_ObtainedFerrusForceGem2, // ItemId_ForceGem_35 + AdventureFlag_ObtainedKofuForceGem, // ItemId_ForceGem_36 + AdventureFlag_ObtainedChildGoronForceGem, // ItemId_ForceGem_37 + AdventureFlag_Nothing, // ItemId_RecruitUniform + AdventureFlag_Nothing, // ItemId_PostmasterLetter + AdventureFlag_Nothing, // ItemId_HeartContainer + AdventureFlag_Nothing, // ItemId_QuiverMedium + AdventureFlag_Nothing, // ItemId_BombBagMedium + AdventureFlag_ObtainedLuciaForceGem, // ItemId_ForceGem_43 + AdventureFlag_ObtainedOrcaForceGem, // ItemId_ForceGem_44 + AdventureFlag_ObtainedCarbenForceGem, // ItemId_ForceGem_45 + AdventureFlag_ObtainedRaelForceGem, // ItemId_ForceGem_46 + AdventureFlag_ObtainedJoeForceGem, // ItemId_ForceGem_47 + AdventureFlag_ObtainedMonaForceGem, // ItemId_ForceGem_48 + AdventureFlag_ObtainedHarryForceGem, // ItemId_ForceGem_49 + AdventureFlag_ObtainedMashForceGem, // ItemId_ForceGem_50 + AdventureFlag_ObtainedFerrusForceGem1, // ItemId_ForceGem_51 + AdventureFlag_ObtainedYekoForceGem, // ItemId_ForceGem_52 + AdventureFlag_ObtainedNokoForceGem, // ItemId_ForceGem_53 + AdventureFlag_ObtainedGoronAdultAnoukiForceGem, // ItemId_ForceGem_54 + AdventureFlag_ObtainedSteemForceGem, // ItemId_ForceGem_55 + AdventureFlag_ObtainedLinebeckForceGem, // ItemId_ForceGem_56 + AdventureFlag_ObtainedAnjeanDesertForceGem, // ItemId_ForceGem_57 + AdventureFlag_Unk_0A7, // ItemId_ForceGem_58 + AdventureFlag_Unk_0A8, // ItemId_ForceGem_59 + AdventureFlag_Unk_0A9, // ItemId_ForceGem_60 + AdventureFlag_Unk_0AA, // ItemId_ForceGem_61 + AdventureFlag_Nothing, // ItemId_PanFlute + AdventureFlag_Nothing, // ItemId_StampBook + AdventureFlag_ObtainedBowOfLight, // ItemId_LightBow + AdventureFlag_Unk_0B1, // ItemId_LokomoSword + AdventureFlag_Nothing, // ItemId_TenPriceCard + AdventureFlag_Nothing, // ItemId_RedPotion + AdventureFlag_Nothing, // ItemId_PurplePotion + AdventureFlag_Nothing, // ItemId_YellowPotion + AdventureFlag_Nothing, // ItemId_DemonFossil + AdventureFlag_Nothing, // ItemId_StalfosSkull + AdventureFlag_Nothing, // ItemId_StarFragment + AdventureFlag_Nothing, // ItemId_BeeLarvae + AdventureFlag_Nothing, // ItemId_WoodHeart + AdventureFlag_Nothing, // ItemId_DarkPearlLoop + AdventureFlag_Nothing, // ItemId_WhitePearlLoop + AdventureFlag_Nothing, // ItemId_RutoCrown + AdventureFlag_Nothing, // ItemId_DragonScale + AdventureFlag_Nothing, // ItemId_PirateNecklace + AdventureFlag_Nothing, // ItemId_PalaceDish + AdventureFlag_Nothing, // ItemId_GoronAmber + AdventureFlag_Nothing, // ItemId_MysticJade + AdventureFlag_Nothing, // ItemId_AncientCoin + AdventureFlag_Nothing, // ItemId_PricelessStone + AdventureFlag_Nothing, // ItemId_RegalRing + AdventureFlag_Nothing, // ItemId_ArrowsRefill + AdventureFlag_Nothing, // ItemId_BombsRefill + AdventureFlag_Nothing, // ItemId_SoldOutSign + AdventureFlag_Nothing, // ItemId_AncientShield + AdventureFlag_Nothing, // ItemId_QuiverLarge + AdventureFlag_Nothing, // ItemId_BombBagLarge + AdventureFlag_Nothing, // ItemId_RandCommonTreasure + AdventureFlag_Nothing, // ItemId_RandUncommonTreasure + AdventureFlag_Nothing, // ItemId_RandRareTreasure + AdventureFlag_Nothing, // ItemId_RandLegendaryTreasure + AdventureFlag_Nothing, // ItemId_TearLight + AdventureFlag_ObtainedCompassOfLight, // ItemId_LightCompass + AdventureFlag_Nothing, // ItemId_ScrollSpinAttack + AdventureFlag_Nothing, // ItemId_ScrollBeam + AdventureFlag_ObtainedLinebecksLetter, // ItemId_LinebeckLetter + AdventureFlag_Nothing, // ItemId_PanFluteSong_101 + AdventureFlag_Nothing, // ItemId_PanFluteSong_102 + AdventureFlag_Nothing, // ItemId_PanFluteSong_103 + AdventureFlag_Nothing, // ItemId_PanFluteSong_104 + AdventureFlag_Nothing, // ItemId_PanFluteSong_105 + AdventureFlag_ObtainedRabbitNet, // ItemId_RabbitNet + AdventureFlag_ObtainedBeedlePointsCard, // ItemId_BeedleCard + AdventureFlag_Unk_18E, // ItemId_SilverCard + AdventureFlag_Unk_18F, // ItemId_GoldCard + AdventureFlag_Unk_190, // ItemId_PlatinumCard + AdventureFlag_Unk_191, // ItemId_DiamondCard + AdventureFlag_ObtainedBeedleFreebieCard, // ItemId_FreebieCard AdventureFlag_ObtainedBeedleQuintuplePointsCard, // ItemId_QuintupleCard - AdventureFlag_ReceivedCarbensLetter, // ItemId_CarbenLetter - AdventureFlag_Nothing, // ItemId_RecruitUniform2 - AdventureFlag_Nothing, // ItemId_EngineerUniform + AdventureFlag_ReceivedCarbensLetter, // ItemId_CarbenLetter + AdventureFlag_Nothing, // ItemId_RecruitUniform2 + AdventureFlag_Nothing, // ItemId_EngineerUniform }; // non-matching @@ -514,7 +514,7 @@ ARM void PlayerGet::vfunc_0c(UnkStruct_PlayerGet_vfunc_0c_param1 *param1) { case ItemId_BombBag: case ItemId_BombBagMedium: case ItemId_BombBagLarge: - if (GET_FLAG(pItemManager->mUnk_08, ItemFlag_Bombs) == 0) { + if (GET_FLAG(pItemManager->mFlags, ItemFlag_Bombs) == 0) { itemId = ItemId_BombBag; } else if (pItemManager->mBombBagCapacity == UpgradeCapacity_Tier1) { itemId = ItemId_BombBagMedium; @@ -525,7 +525,7 @@ ARM void PlayerGet::vfunc_0c(UnkStruct_PlayerGet_vfunc_0c_param1 *param1) { case ItemId_NormalBow: case ItemId_QuiverMedium: case ItemId_QuiverLarge: - if (GET_FLAG(pItemManager->mUnk_08, ItemFlag_Bow) == 0) { + if (GET_FLAG(pItemManager->mFlags, ItemFlag_Bow) == 0) { itemId = ItemId_NormalBow; } else if (pItemManager->mQuiverCapacity == UpgradeCapacity_Tier1) { itemId = ItemId_QuiverMedium; @@ -679,11 +679,11 @@ ARM void PlayerGet::vfunc_0c(UnkStruct_PlayerGet_vfunc_0c_param1 *param1) { this->mUnk_73 = 0; switch (this->mUnk_54.mItemId) { - case ItemId_25: - case ItemId_26: - case ItemId_27: - case ItemId_28: - case ItemId_29: + case ItemId_RestoredForestGlyph: + case ItemId_RestoredSnowGlyph: + case ItemId_RestoredOceanGlyph: + case ItemId_RestoredFireGlyph: + case ItemId_RestoredDesertOceanGlyph: data_ov000_020b51b8.func_ov000_0206c96c(data_027e0cd8->mUnk_0C->func_ov000_02080a44()); this->mUnk_73 = 1; break; @@ -777,11 +777,11 @@ ARM void PlayerGet::vfunc_10(unk32 param1, unk32 param2) { case ItemId_FireGlyph: var_r1 = 0x68; break; - case ItemId_25: - case ItemId_26: - case ItemId_27: - case ItemId_28: - case ItemId_29: + case ItemId_RestoredForestGlyph: + case ItemId_RestoredSnowGlyph: + case ItemId_RestoredOceanGlyph: + case ItemId_RestoredFireGlyph: + case ItemId_RestoredDesertOceanGlyph: case ItemId_PanFluteSong_101: case ItemId_PanFluteSong_102: case ItemId_PanFluteSong_103: @@ -1022,13 +1022,13 @@ THUMB void UnkStruct_027e0ce0_34::func_ov110_02185d3c(ItemId itemId) { u16 auStack_18[2]; switch (itemId) { - case ItemId_31: + case ItemId_SpiritTrain: this->func_ov024_020d3d98(0, 0); this->mUnk_2C = 1; this->mUnk_00 = 0; this->mUnk_10 = 0; break; - case ItemId_33: + case ItemId_SpiritTrainCar: this->func_ov024_020d3d98(2, 0); this->mUnk_2C = 2; this->mUnk_04 = 2; diff --git a/tools/configure.py b/tools/configure.py index b7bddec6..b4076567 100755 --- a/tools/configure.py +++ b/tools/configure.py @@ -186,6 +186,14 @@ config.libs = [ [ Object("001_SceneInit/Actor/ActorManager_001.cpp"), Object("001_SceneInit/Item/ItemManager_001.cpp"), + Object("001_SceneInit/CargoManager_001.cpp"), + Object("001_SceneInit/PassengerManager_001.cpp"), + ] + ), + GameLib( + "Overlay 17", + [ + Object("017_CourseExec/CargoManager_017.cpp"), ] ), GameLib( @@ -233,6 +241,8 @@ config.libs = [ GameLib( "Overlay 24", [ + Object("024_MainGame/PassengerManager.cpp"), + Object("024_MainGame/CargoManager_024.cpp"), Object("024_MainGame/MiscAdvManager.cpp"), Object("024_MainGame/Actor/ActorUnkOBPC.cpp"), ]