Misc Stuff 5 (#63)

* name item 31 to 34

* name item 25 to 29

* decompile PassengerManager (95%)

* started cargo manager

* local attribute

* passenger/cargo manager ov001 functions

* name item manager functions

* fix build issues & more docs on 027e0cd8

* format
This commit is contained in:
Yanis
2026-05-11 17:27:59 +02:00
committed by GitHub
parent 645ed65b76
commit 0f74fd4201
82 changed files with 1838 additions and 878 deletions
+1 -1
View File
@@ -17,7 +17,7 @@ AccessModifierOffset: -4
AlignConsecutiveAssignments: Consecutive
AlignEscapedNewlines: LeftWithLastLine
AlignTrailingComments: Leave
AlignTrailingComments: true
BreakConstructorInitializers: AfterColon
+2 -2
View File
@@ -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
+1 -1
View File
@@ -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
+19 -19
View File
@@ -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
@@ -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
+1 -1
View File
@@ -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
+14 -14
View File
@@ -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
@@ -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
+3 -3
View File
@@ -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)
+10 -13
View File
@@ -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
@@ -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
+3 -3
View File
@@ -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)
+41 -43
View File
@@ -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
+1 -1
View File
@@ -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
+2 -2
View File
@@ -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
+1 -1
View File
@@ -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
+21 -21
View File
@@ -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
@@ -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
+1 -1
View File
@@ -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
+14 -14
View File
@@ -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
@@ -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
+4 -4
View File
@@ -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)
+10 -13
View File
@@ -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
@@ -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
+3 -3
View File
@@ -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)
+41 -43
View File
@@ -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
+1 -1
View File
@@ -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
+3 -3
View File
@@ -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 */
+12 -12
View File
@@ -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
+2 -2
View File
@@ -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;
+6 -6
View File
@@ -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
+1 -1
View File
@@ -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();
+118 -118
View File
@@ -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
+29 -29
View File
@@ -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();
+80
View File
@@ -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<CargoManager> {
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;
+17 -17
View File
@@ -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();
+93
View File
@@ -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<PassengerManager> {
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;
+3 -3
View File
@@ -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();
+1 -1
View File
@@ -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 */
+12 -12
View File
@@ -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 */
};
+2 -2
View File
@@ -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];
+1 -1
View File
@@ -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.
+10 -10
View File
@@ -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),
+1 -1
View File
@@ -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
+9 -9
View File
@@ -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;
+7 -7
View File
@@ -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
};
+3 -3
View File
@@ -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;
+5
View File
@@ -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;
+4 -2
View File
@@ -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);
+32 -2
View File
@@ -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 */
+4 -1
View File
@@ -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;
+19
View File
@@ -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;
+21 -21
View File
@@ -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 {
+1 -1
View File
@@ -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
+3
View File
@@ -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
+11
View File
@@ -67,6 +67,17 @@ typedef s32 unk32;
DECL_PTMF(PTMF);
typedef void (*UnkCallback)(u16 param1);
template <typename T> class AutoInstance {
public:
AutoInstance() {
T::SetInstance((T *) this);
}
~AutoInstance() {
T::ClearInstance();
}
};
#endif
#endif
+8 -8
View File
@@ -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) {
+1 -1
View File
@@ -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) {
+24 -24
View File
@@ -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 */
+1 -1
View File
@@ -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;
+2 -2
View File
@@ -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*/
+10 -10
View File
@@ -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))
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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;
+17 -17
View File
@@ -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];
+4 -4
View File
@@ -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;
+15 -15
View File
@@ -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 *) &currentMtx.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], &REG_GFX_FIFO, 8); // MTX_MODE = Position
Stream32(func_0200c270(), &REG_GFX_FIFO, 0x30);
REG_GFX_FIFO = 0x1b19; // MTX_MULT_4x3 | MTX_SCALE
REG_GFX_FIFO = 0x1b19; // MTX_MULT_4x3 | MTX_SCALE
Stream32(&funcArgs[3], &REG_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], &REG_GFX_FIFO, 8); // MTX_MODE = Position
Stream32(func_0200c198(), &REG_GFX_FIFO, 0x30);
REG_GFX_FIFO = 0x1b19; // MTX_MULT_4x3 | MTX_SCALE
REG_GFX_FIFO = 0x1b19; // MTX_MULT_4x3 | MTX_SCALE
Stream32(&funcArgs[3], &REG_GFX_FIFO, 0x3c); // Identity MTX
} else {
Stream32(&funcArgs, &REG_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], &REG_GFX_FIFO, 8); // MTX_MODE = Position
Stream32(func_0200c270(), &REG_GFX_FIFO, 0x30);
REG_GFX_FIFO = 0x1b19; // MTX_MULT_4x3 | MTX_SCALE
REG_GFX_FIFO = 0x1b19; // MTX_MULT_4x3 | MTX_SCALE
Stream32(&funcArgs[3], &REG_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], &REG_GFX_FIFO, 8); // MTX_MODE = Position
Stream32(func_0200c198(), &REG_GFX_FIFO, 0x30);
REG_GFX_FIFO = 0x1b19; // MTX_MULT_4x3 | MTX_SCALE
REG_GFX_FIFO = 0x1b19; // MTX_MULT_4x3 | MTX_SCALE
Stream32(&funcArgs[3], &REG_GFX_FIFO, 0x3c); // Identity MTX
} else {
Stream32(&funcArgs, &REG_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);
+2 -2
View File
@@ -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))
+28 -42
View File
@@ -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;
}
+9 -9
View File
@@ -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
+32
View File
@@ -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
@@ -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
+180
View File
@@ -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;
}
+2 -2
View File
@@ -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;
+2 -2
View File
@@ -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) {
+29
View File
@@ -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;
}
+357
View File
@@ -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);
}
}
@@ -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;
}
+1 -1
View File
@@ -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);
+9 -9
View File
@@ -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:
+258 -258
View File
@@ -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;
+10
View File
@@ -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"),
]