Misc stuff 4 (#59)

* playrget progress and match treasuremanager remaining functions

* some docs

* fix build issues

* random docs

* match func_ov094_02172290

* random docs

* actor cleanup

* match freestanding item funcs

* mType -> mpProfile

* decompile random functions

* docs and start of wip chest stuff

* random docs

* more random docs

* match func_ov036_0211d0a8

* match func_ov036_0211d2dc & func_ov036_0211d570

* match func_ov110_02184a40

* random doc

* document letter/stamps system

* match func_ov001_020bb9f8

* fix build issues

* decompile tres

* start decomp chest base

* fix regressions

* name TRES

* name UnkStruct_ov024_020d86b0

* name stamp types and update save struct stuff

* name things and document BMG IDs
This commit is contained in:
Yanis
2026-05-03 18:57:01 +02:00
committed by GitHub
parent e6eae481b8
commit 645ed65b76
97 changed files with 2680 additions and 688 deletions
+8 -8
View File
@@ -70,6 +70,14 @@ libs/c/src/ansi_files.c:
.data start:0x020446a8 end:0x0204478c
.bss start:0x020517a0 end:0x02051aa0
libs/c/src/float.c:
complete
.data start:0x0204478c end:0x02044790
libs/c/src/locale.c:
complete
.data start:0x02044790 end:0x020449ac
libs/c/src/arith.c:
complete
.text start:0x020338d4 end:0x020338ec
@@ -116,14 +124,6 @@ libs/c/src/wmem.c:
complete
.text start:0x020341f8 end:0x02034230
libs/c/src/float.c:
complete
.data start:0x0204478c end:0x02044790
libs/c/src/locale.c:
complete
.data start:0x02044790 end:0x020449ac
libs/c/src/wprintf.c:
.text start:0x02034230 end:0x0203615c
.data start:0x020449ac end:0x02044a2c
+1 -1
View File
@@ -204,7 +204,7 @@ _ZN12ActorManager13func_01fff3b4Ei kind:function(arm,size=0x8c) addr:0x01fff3b4
func_01fff440 kind:function(arm,size=0x18) addr:0x01fff440
_ZN5Actor10GetActorIdEv kind:function(arm,size=0xc) addr:0x01fff458
_ZN5Actor8vfunc_10Ev kind:function(arm,size=0x34) addr:0x01fff464
_ZN16MapObjectManager13func_01fff498E23UnkStruct_func_01fff498 kind:function(arm,size=0x34) addr:0x01fff498
_ZN16MapObjectManager13func_01fff498E5Vec2b kind:function(arm,size=0x34) addr:0x01fff498
_ZN16MapObjectManager13func_01fff4ccEPFvPvS0_ES0_ kind:function(arm,size=0x54) addr:0x01fff4cc
_ZN16MapObjectManager13func_01fff520EP24UnkStruct_ov000_020b34c4PP9MapObject kind:function(arm,size=0x64) addr:0x01fff520
_ZN9MapObject14GetMapObjectIdEv kind:function(arm,size=0xc) addr:0x01fff584
@@ -28,6 +28,7 @@ src/000_Second/Actor/Actor.cpp:
.data start:0x020b30e4 end:0x020b3140
src/000_Second/Actor/ActorUnkSWOB.cpp:
complete
.text start:0x0209a8b8 end:0x0209aca8
.init start:0x020b07e8 end:0x020b0838
.ctor start:0x020b1908 end:0x020b190c
@@ -91,6 +92,10 @@ src/000_Second/MapObject/MapObjectMiniBlocks.cpp:
.data start:0x020b3744 end:0x020b37ac
.bss start:0x020b6228 end:0x020b62a0
src/000_Second/data_ov000_020af58c.cpp:
.text start:0x020a4c00 end:0x020a4c10
.rodata start:0x020af58c end:0x020af760
src/000_Second/Cutscene/Cutscene.cpp:
.text start:0x020a782c end:0x020a7908
.rodata start:0x020af780 end:0x020afc3c
@@ -107,3 +112,5 @@ src/000_Second/Actor/ActorUnk_ov000_020a8bb0.cpp:
src/000_Second/Item/TreasureManager.cpp:
.text start:0x020a9b10 end:0x020aa224
.rodata start:0x020afd68 end:0x020afed8
.data start:0x020b4e60 end:0x020b4ec0
+26 -26
View File
@@ -2160,7 +2160,7 @@ func_ov000_02093b04 kind:function(arm,size=0x68) addr:0x02093b04
func_ov000_02093b6c kind:function(arm,size=0x18) addr:0x02093b6c
func_ov000_02093b84 kind:function(arm,size=0xc) addr:0x02093b84
func_ov000_02093b90 kind:function(arm,size=0x38) addr:0x02093b90
func_ov000_02093bc8 kind:function(arm,size=0x144) addr:0x02093bc8
_ZN21UnkStruct_027e0d34_0419func_ov000_02093bc8Ei kind:function(arm,size=0x144) addr:0x02093bc8
func_ov000_02093d0c kind:function(arm,size=0x34) addr:0x02093d0c
func_ov000_02093d40 kind:function(arm,size=0x60) addr:0x02093d40
func_ov000_02093da0 kind:function(arm,size=0x1b8) addr:0x02093da0
@@ -2256,12 +2256,12 @@ _ZN24UnkStruct_ov000_020b539c18func_ov000_02073dcEv kind:function(arm,size=0xc)
_ZN24UnkStruct_ov000_020b539c18func_ov000_02073e8Ev kind:function(arm,size=0xc) addr:0x020973e8
func_ov000_020973f4 kind:function(arm,size=0x50) addr:0x020973f4
func_ov000_02097444 kind:function(arm,size=0x98) addr:0x02097444
_ZN24UnkStruct_ov000_020b539c19func_ov000_020974dcEj kind:function(arm,size=0x4c) addr:0x020974dc
_ZN24UnkStruct_ov000_020b539c16GetProfileFromIdEj kind:function(arm,size=0x4c) addr:0x020974dc
func_ov000_02097528 kind:function(arm,size=0x20) addr:0x02097528
func_ov000_02097548 kind:function(arm,size=0x78) addr:0x02097548
func_ov000_020975c0 kind:function(arm,size=0x1c) addr:0x020975c0
func_ov000_020975dc kind:function(arm,size=0x1c) addr:0x020975dc
_ZN8Actor_5c19func_ov000_020975f8Ev kind:function(arm,size=0x78) addr:0x020975f8
_ZN11ActorParams19func_ov000_020975f8Ev kind:function(arm,size=0x78) addr:0x020975f8
func_ov000_02097670 kind:function(arm,size=0xc) addr:0x02097670
_ZN12ActorProfileC2Ej kind:function(arm,size=0xa8) addr:0x0209767c
_ZN12ActorProfileD2Ev kind:function(arm,size=0x28) addr:0x02097724
@@ -2498,11 +2498,11 @@ _ZN16MapObjectManager19func_ov000_0209c3a8Ev kind:function(arm,size=0x40) addr:0
_ZN16MapObjectManager19func_ov000_0209c3e8Ev kind:function(arm,size=0x5c) addr:0x0209c3e8
_ZN16MapObjectManager19func_ov000_0209c444Ev kind:function(arm,size=0x4c) addr:0x0209c444
_ZN16MapObjectManager19func_ov000_0209c490Ev kind:function(arm,size=0x94) addr:0x0209c490
_ZN16MapObjectManager19func_ov000_0209c524Ev kind:function(arm,size=0x17c) addr:0x0209c524
_ZN16MapObjectManager17AllocateMapObjectEv kind:function(arm,size=0x17c) addr:0x0209c524
func_ov000_0209c6a0 kind:function(arm,size=0xc) addr:0x0209c6a0
func_ov000_0209c6ac kind:function(arm,size=0xc) addr:0x0209c6ac
_ZN24UnkStruct_ov000_020b5d3419func_ov000_0209c6b8Ei kind:function(arm,size=0x38) addr:0x0209c6b8
_ZN24UnkStruct_ov000_020b5d3419func_ov000_0209c6f0Ev kind:function(arm,size=0x28) addr:0x0209c6f0
_ZN24UnkStruct_ov000_020b5d3416GetProfileFromIdEj kind:function(arm,size=0x38) addr:0x0209c6b8
_ZN24UnkStruct_ov000_020b5d3415CreateMapObjectEP9MapObject kind:function(arm,size=0x28) addr:0x0209c6f0
_ZN24UnkStruct_ov000_020b5d3419func_ov000_0209c718Ej kind:function(arm,size=0x78) addr:0x0209c718
_ZN12MapObject_2019func_ov000_0209c790EjP16MapObjectProfile kind:function(arm,size=0x1c) addr:0x0209c790
_ZN12MapObject_2019func_ov000_0209c7acEj kind:function(arm,size=0x1c) addr:0x0209c7ac
@@ -2669,7 +2669,7 @@ func_ov000_0209fe54 kind:function(arm,size=0x18) addr:0x0209fe54
func_ov000_0209fe6c kind:function(arm,size=0x18) addr:0x0209fe6c
func_ov000_0209fe84 kind:function(arm,size=0x1c) addr:0x0209fe84
func_ov000_0209fea0 kind:function(arm,size=0xc) addr:0x0209fea0
func_ov000_0209feac kind:function(arm,size=0x78) addr:0x0209feac
_ZN18UnkStruct_027e0cec19func_ov000_0209feacEiP5Vec3piii kind:function(arm,size=0x78) addr:0x0209feac
func_ov000_0209ff24 kind:function(arm,size=0x28) addr:0x0209ff24
func_ov000_0209ff4c kind:function(arm,size=0x40) addr:0x0209ff4c
_ZN18UnkStruct_027e0cec19func_ov000_0209ff8cEP22UnkStruct_PlayerGet_eciP5Vec3pi kind:function(arm,size=0x74) addr:0x0209ff8c
@@ -2716,12 +2716,12 @@ func_ov000_020a0f78 kind:function(thumb,size=0xc) addr:0x020a0f78
func_ov000_020a0f84 kind:function(thumb,size=0x30) addr:0x020a0f84
func_ov000_020a0fb4 kind:function(thumb,size=0x10) addr:0x020a0fb4
func_ov000_020a0fc4 kind:function(thumb,size=0x3c) addr:0x020a0fc4
func_ov000_020a1000 kind:function(thumb,size=0x28) addr:0x020a1000
func_ov000_020a1028 kind:function(thumb,size=0xcc) addr:0x020a1028
func_ov000_020a10f4 kind:function(arm,size=0x30) addr:0x020a10f4
_ZN4Save19func_ov000_020a1124Ev kind:function(arm,size=0x13c) addr:0x020a1124
_ZN15SaveManager_21C19func_ov000_020a1000Ev kind:function(thumb,size=0x28) addr:0x020a1000
_ZN8SaveInfo19func_ov000_020a1028Ev kind:function(thumb,size=0xcc) addr:0x020a1028
_ZN8SaveSub719func_ov000_020a10f4Ev kind:function(arm,size=0x30) addr:0x020a10f4
_ZN8SaveSlot19func_ov000_020a1124Ev kind:function(arm,size=0x13c) addr:0x020a1124
func_ov000_020a1260 kind:function(arm,size=0x40) addr:0x020a1260
func_ov000_020a12a0 kind:function(arm,size=0x3c) addr:0x020a12a0
_ZN8SaveSub519func_ov000_020a12a0Ev kind:function(arm,size=0x3c) addr:0x020a12a0
func_ov000_020a12dc kind:function(arm,size=0x18) addr:0x020a12dc
func_ov000_020a12f4 kind:function(arm,size=0x8) addr:0x020a12f4
func_ov000_020a12fc kind:function(arm,size=0x8) addr:0x020a12fc
@@ -2828,7 +2828,7 @@ func_ov000_020a4b74 kind:function(arm,size=0x4c) addr:0x020a4b74
func_ov000_020a4bc0 kind:function(arm,size=0x10) addr:0x020a4bc0
_ZN19func_ov000_020a4bd0D1Ev kind:function(arm,size=0x14) addr:0x020a4bd0
_ZN19func_ov000_020a4be4D0Ev kind:function(arm,size=0x1c) addr:0x020a4be4
func_ov000_020a4c00 kind:function(arm,size=0x10) addr:0x020a4c00
_Z19func_ov000_020a4c00i kind:function(arm,size=0x10) addr:0x020a4c00
func_ov000_020a4c10 kind:function(arm,size=0xc4) addr:0x020a4c10
func_ov000_020a4cd4 kind:function(arm,size=0x7c) addr:0x020a4cd4
func_ov000_020a4d50 kind:function(arm,size=0x98) addr:0x020a4d50
@@ -3077,16 +3077,16 @@ func_ov000_020a9a94 kind:function(arm,size=0x28) addr:0x020a9a94
func_ov000_020a9abc kind:function(arm,size=0x24) addr:0x020a9abc
func_ov000_020a9ae0 kind:function(arm,size=0x1c) addr:0x020a9ae0
func_ov000_020a9afc kind:function(arm,size=0x14) addr:0x020a9afc
_ZN15TreasureManager19func_ov000_020a9b10Ev kind:function(arm,size=0x1c) addr:0x020a9b10
_ZN15TreasureManager19func_ov000_020a9b2cEv kind:function(arm,size=0x10) addr:0x020a9b2c
_ZN15TreasureManager19func_ov000_020a9b3cEv kind:function(arm,size=0x10) addr:0x020a9b3c
_ZN15TreasureManager19func_ov000_020a9b4cEv kind:function(arm,size=0x100) addr:0x020a9b4c
_ZN15TreasureManager19func_ov000_020a9c4cEs kind:function(arm,size=0x18) addr:0x020a9c4c
_ZN15TreasureManager19func_ov000_020a9b10EPv kind:function(arm,size=0x1c) addr:0x020a9b10
_ZN15TreasureManager19func_ov000_020a9b2cEi kind:function(arm,size=0x10) addr:0x020a9b2c
_ZN15TreasureManager19func_ov000_020a9b3cEi kind:function(arm,size=0x10) addr:0x020a9b3c
_ZN15TreasureManager19func_ov000_020a9b4cEi kind:function(arm,size=0x100) addr:0x020a9b4c
_ZN15TreasureManager19func_ov000_020a9c4cEi kind:function(arm,size=0x18) addr:0x020a9c4c
_ZN15TreasureManager19func_ov000_020a9c64Ev kind:function(arm,size=0x2c) addr:0x020a9c64
_ZN15TreasureManager19func_ov000_020a9c90Es kind:function(arm,size=0x14) addr:0x020a9c90
_ZN15TreasureManager19func_ov000_020a9ca4Es kind:function(arm,size=0x18) addr:0x020a9ca4
_ZN15TreasureManager19func_ov000_020a9cbcEsi kind:function(arm,size=0x40) addr:0x020a9cbc
func_ov000_020a9cfc kind:function(arm,size=0x7c) addr:0x020a9cfc
_ZN15TreasureManager19func_ov000_020a9c90Ei kind:function(arm,size=0x14) addr:0x020a9c90
_ZN15TreasureManager19func_ov000_020a9ca4Ei kind:function(arm,size=0x18) addr:0x020a9ca4
_ZN15TreasureManager19func_ov000_020a9cbcEii kind:function(arm,size=0x40) addr:0x020a9cbc
_ZN15TreasureManager19func_ov000_020a9cfcEPhh kind:function(arm,size=0x7c) addr:0x020a9cfc
_ZN15TreasureManager19func_ov000_020a9d78Ei kind:function(arm,size=0x9c) addr:0x020a9d78
_ZN15TreasureManager19func_ov000_020a9e14Ei kind:function(arm,size=0x9c) addr:0x020a9e14
_ZN15TreasureManager19func_ov000_020a9eb0Ei kind:function(arm,size=0x9c) addr:0x020a9eb0
@@ -3347,7 +3347,7 @@ __sinit_ov000_020b046c kind:function(arm,size=0x2f4) addr:0x020b046c
__sinit_ov000_020b0760 kind:function(arm,size=0x14) addr:0x020b0760
__sinit_ov000_020b0774 kind:function(arm,size=0x34) addr:0x020b0774
__sinit_ov000_020b07a8 kind:function(arm,size=0x40) addr:0x020b07a8
__sinit_ActorUnkSWOB.cpp kind:function(arm,size=0x50) addr:0x020b07e8
__sinit_ActorUnkSWOB.cpp kind:function(arm,size=0x50) addr:0x020b07e8 local
__sinit_ActorUnkSWTM.cpp kind:function(arm,size=0x50) addr:0x020b0838
__sinit_ActorEventIcon.cpp kind:function(arm,size=0x50) addr:0x020b0888 local
__sinit_ActorUnkEFIK.cpp kind:function(arm,size=0x50) addr:0x020b08d8 local
@@ -3382,7 +3382,7 @@ __sinit_ov000_020b18a0 kind:function(arm,size=0x14) addr:0x020b18a0
.p__sinit_ov000_020b0760 kind:data(word) addr:0x020b18fc
.p__sinit_ov000_020b0774 kind:data(word) addr:0x020b1900
.p__sinit_ov000_020b07a8 kind:data(word) addr:0x020b1904
.p__sinit_ActorUnkSWOB.cpp kind:data(word) addr:0x020b1908
.p__sinit_ActorUnkSWOB.cpp kind:data(word) addr:0x020b1908 local
.p__sinit_ActorUnkSWTM.cpp kind:data(word) addr:0x020b190c
.p__sinit_ActorEventIcon.cpp kind:data(word) addr:0x020b1910 local
.p__sinit_ActorUnkEFIK.cpp kind:data(word) addr:0x020b1914 local
@@ -4004,7 +4004,7 @@ data_ov000_020b4e4c kind:data(any) addr:0x020b4e4c
data_ov000_020b4e60 kind:data(any) addr:0x020b4e60
data_ov000_020b4e74 kind:data(any) addr:0x020b4e74
data_ov000_020b4e88 kind:data(any) addr:0x020b4e88
data_ov000_020b4e9c kind:data(any) addr:0x020b4e9c
data_ov000_020b4e9c kind:data(byte[14]) addr:0x020b4e9c
data_ov000_020b4ec0 kind:bss addr:0x020b4ec0
data_ov000_020b4ec4 kind:bss addr:0x020b4ec4
data_ov000_020b4ed4 kind:bss addr:0x020b4ed4
@@ -4047,7 +4047,7 @@ data_ov000_020b5398 kind:bss addr:0x020b5398
data_ov000_020b539c_eur kind:bss addr:0x020b539c
data_ov000_020b53d0 kind:bss addr:0x020b53d0
_ZGVN15ProfileInstanceI19ActorProfileUnkSWOBE8sProfileE kind:bss addr:0x020b5bfc
@10033 kind:bss addr:0x020b5c00
@10033 kind:bss addr:0x020b5c00 local
_ZN15ProfileInstanceI19ActorProfileUnkSWOBE8sProfileE kind:bss addr:0x020b5c0c
_ZGVN15ProfileInstanceI19ActorProfileUnkSWTME8sProfileE kind:bss addr:0x020b5c48
@10039 kind:bss addr:0x020b5c4c
@@ -9,3 +9,6 @@ src/001_SceneInit/Actor/ActorManager_001.cpp:
.text start:0x020baf64 end:0x020bb87c
.rodata start:0x020c2624 end:0x020c264c
.data start:0x020c2b3c end:0x020c2c70
src/001_SceneInit/Item/ItemManager_001.cpp:
.text start:0x020bb9f8 end:0x020bba54
+1 -1
View File
@@ -193,7 +193,7 @@ _ZN12ActorManager13ClearInstanceEv kind:function(thumb,size=0xc) addr:0x020bb870
func_ov001_020bb87c kind:function(thumb,size=0x3c) addr:0x020bb87c
func_ov001_020bb8b8 kind:function(thumb,size=0x2) addr:0x020bb8b8
func_ov001_020bb8bc kind:function(thumb,size=0x13c) addr:0x020bb8bc
func_ov001_020bb9f8 kind:function(thumb,size=0x5c) addr:0x020bb9f8
_ZN11ItemManager19func_ov001_020bb9f8Ev kind:function(thumb,size=0x5c) addr:0x020bb9f8
func_ov001_020bba54 kind:function(thumb,size=0x18) addr:0x020bba54
func_ov001_020bba6c kind:function(thumb,size=0x58) addr:0x020bba6c
func_ov001_020bbac4 kind:function(thumb,size=0x5c) addr:0x020bbac4
@@ -5,6 +5,9 @@
.data start:0x020d7b60 end:0x020d8660 kind:data align:32
.bss start:0x020d8660 end:0x020d8720 kind:bss align:32
src/024_MainGame/MiscAdvManager.cpp:
.text start:0x020d62b4 end:0x020d6650
src/024_MainGame/Actor/ActorUnkOBPC.cpp:
.text start:0x020d6e9c end:0x020d7318
.init start:0x020d7ae4 end:0x020d7b34
+21 -21
View File
@@ -677,26 +677,26 @@ func_ov024_020d5fb8 kind:function(arm,size=0x2c) addr:0x020d5fb8
func_ov024_020d5fe4 kind:function(arm,size=0x2ac) addr:0x020d5fe4
func_ov024_020d6290 kind:function(arm,size=0x10) addr:0x020d6290
func_ov024_020d62a0 kind:function(arm,size=0x14) addr:0x020d62a0
func_ov024_020d62b4 kind:function(arm,size=0x24) addr:0x020d62b4
func_ov024_020d62d8 kind:function(arm,size=0x24) addr:0x020d62d8
func_ov024_020d62fc kind:function(arm,size=0x14) addr:0x020d62fc
func_ov024_020d6310 kind:function(arm,size=0x60) addr:0x020d6310
func_ov024_020d6370 kind:function(arm,size=0x48) addr:0x020d6370
func_ov024_020d63b8 kind:function(arm,size=0x30) addr:0x020d63b8
func_ov024_020d63e8 kind:function(arm,size=0x3c) addr:0x020d63e8
func_ov024_020d6424 kind:function(arm,size=0x44) addr:0x020d6424
func_ov024_020d6468 kind:function(arm,size=0x2c) addr:0x020d6468
func_ov024_020d6494 kind:function(arm,size=0xc) addr:0x020d6494
func_ov024_020d64a0 kind:function(arm,size=0x8) addr:0x020d64a0
func_ov024_020d64a8 kind:function(arm,size=0xc) addr:0x020d64a8
func_ov024_020d64b4 kind:function(arm,size=0x7c) addr:0x020d64b4
func_ov024_020d6530 kind:function(arm,size=0x2c) addr:0x020d6530
func_ov024_020d655c kind:function(arm,size=0x10) addr:0x020d655c
func_ov024_020d656c kind:function(arm,size=0x30) addr:0x020d656c
func_ov024_020d659c kind:function(arm,size=0x74) addr:0x020d659c
func_ov024_020d6610 kind:function(arm,size=0x1c) addr:0x020d6610
func_ov024_020d662c kind:function(arm,size=0x10) addr:0x020d662c
func_ov024_020d663c kind:function(arm,size=0x14) addr:0x020d663c
_ZN14MiscAdvManager6CreateEv kind:function(arm,size=0x24) addr:0x020d62b4
_ZN14MiscAdvManagerC1Ev kind:function(arm,size=0x24) addr:0x020d62d8
_ZN14MiscAdvManagerD1Ev kind:function(arm,size=0x14) addr:0x020d62fc
_ZN14MiscAdvManager19func_ov024_020d6310EPS_ kind:function(arm,size=0x60) addr:0x020d6310
_ZN14MiscAdvManager21GiveLetterOrPriceCardEi kind:function(arm,size=0x48) addr:0x020d6370
_ZN14MiscAdvManager22GetObtainedLetterCountEv kind:function(arm,size=0x30) addr:0x020d63b8
_ZN14MiscAdvManager16GotUnreadLettersEv kind:function(arm,size=0x3c) addr:0x020d63e8
_ZN14MiscAdvManager10GiveLetterEt kind:function(arm,size=0x44) addr:0x020d6424
_ZN14MiscAdvManager19func_ov024_020d6468Ev kind:function(arm,size=0x2c) addr:0x020d6468
_ZN14MiscAdvManager8GetStampEi kind:function(arm,size=0xc) addr:0x020d6494
_ZN14MiscAdvManager12GetStampDateEi kind:function(arm,size=0x8) addr:0x020d64a0
_ZN14MiscAdvManager11GetStampPosEi kind:function(arm,size=0xc) addr:0x020d64a8
_ZN14MiscAdvManager19func_ov024_020d64b4EiiPt kind:function(arm,size=0x7c) addr:0x020d64b4
_ZN14MiscAdvManager19func_ov024_020d6530Ev kind:function(arm,size=0x2c) addr:0x020d6530
_ZN14MiscAdvManager15GetNumPostcardsEv kind:function(arm,size=0x10) addr:0x020d655c
_ZN14MiscAdvManager13GivePriceCardEi kind:function(arm,size=0x30) addr:0x020d656c
_ZN14MiscAdvManager13PostPriceCardEii kind:function(arm,size=0x74) addr:0x020d659c
_ZN14MiscAdvManager19func_ov024_020d6610Ev kind:function(arm,size=0x1c) addr:0x020d6610
_ZN14MiscAdvManager11SetInstanceEPS_ kind:function(arm,size=0x10) addr:0x020d662c
_ZN14MiscAdvManager13ClearInstanceEv kind:function(arm,size=0x14) addr:0x020d663c
func_ov024_020d6650 kind:function(thumb,size=0x16) addr:0x020d6650
_ZN26ActorUnk_ov000_020a8bb0_ec19func_ov024_020d6668Ev kind:function(thumb,size=0x16) addr:0x020d6668
func_ov024_020d6680 kind:function(arm,size=0x40) addr:0x020d6680
@@ -910,7 +910,7 @@ data_ov024_020d86a0 kind:bss addr:0x020d86a0
data_ov024_020d86a4 kind:bss addr:0x020d86a4
data_ov024_020d86a8 kind:bss addr:0x020d86a8
data_ov024_020d86ac kind:bss addr:0x020d86ac
data_ov024_020d86b0 kind:bss addr:0x020d86b0
gpMiscAdvManager kind:bss addr:0x020d86b0
data_ov024_020d86b4 kind:bss addr:0x020d86b4 ambiguous
data_ov024_020d86b8 kind:bss addr:0x020d86b8
data_ov024_020d86bc kind:bss addr:0x020d86bc
+15 -2
View File
@@ -5,6 +5,9 @@
.data start:0x021128a0 end:0x02116380 kind:data align:32
.bss start:0x02116380 end:0x02118fc0 kind:bss align:32
src/031_Land/UnkStruct_027e0d34.cpp:
.text start:0x020d9834 end:0x020d9854
src/031_Land/Actor/ActorUnkBOMB.cpp:
.text start:0x020e14c4 end:0x020e34b4
.init start:0x02110ff8 end:0x02111048
@@ -254,11 +257,21 @@ src/031_Land/MapObject/MapObjectUnkBMFL.cpp:
.ctor start:0x0211283c end:0x02112840
.bss start:0x02117abc end:0x02117ba0
src/031_Land/MapObject/MapObjectUnkTRES.cpp:
src/031_Land/MapObject/MapObjectTreasureSpawned.cpp:
complete
.text start:0x02102e70 end:0x02102fe8
.init start:0x02111f48 end:0x02111fb4
.ctor start:0x02112840 end:0x02112844
.bss start:0x02117ba0 end:0x02117cfc
.data start:0x021157b0 end:0x02115830
.bss start:0x02117ba0 end:0x02117c84
src/031_Land/MapObject/MapObjectChestBase.cpp:
.text start:0x02102fe8 end:0x0210401c
.rodata start:0x02110d74 end:0x02110d7c
.init start:0x02111fb4 end:0x02111fe4
.ctor start:0x02112844 end:0x02112848
.data start:0x02115830 end:0x021158c4
.bss start:0x02117c84 end:0x02117cfc
src/031_Land/MapObject/MapObjectUnkTRED.cpp:
.text start:0x0210401c end:0x021041b8
+4 -4
View File
@@ -4684,9 +4684,9 @@ from:0x02102e78 kind:load to:0x02117bb0 module:overlay(31)
from:0x02102e8c kind:arm_call to:0x02011f3c module:main
from:0x02102e98 kind:arm_call to:0x02102ee4 module:overlay(31)
from:0x02102eb0 kind:arm_call to:0x0209c9a8 module:overlay(0)
from:0x02102edc kind:load to:0x021157c0 module:overlay(31)
from:0x02102edc kind:load to:0x021157b8 add:0x8 module:overlay(31)
from:0x02102ef0 kind:arm_call to:0x0210307c module:overlay(31)
from:0x02102f5c kind:load to:0x021157dc module:overlay(31)
from:0x02102f5c kind:load to:0x021157d4 add:0x8 module:overlay(31)
from:0x02102f60 kind:load to:0x02117bb0 module:overlay(31)
from:0x02102f78 kind:arm_call to:0x02081f3c module:overlay(0)
from:0x02102f8c kind:load to:0x027e0cd8 module:dtcm
@@ -4696,7 +4696,7 @@ from:0x02102fc0 kind:arm_call to:0x02103158 module:overlay(31)
from:0x02102fc8 kind:arm_call to:0x02011ff4 module:main
from:0x02102fdc kind:arm_call to:0x0209c9d8 module:overlay(0)
from:0x02102ff0 kind:arm_call_thumb to:0x02057b54 module:overlay(0)
from:0x0210300c kind:load to:0x02115844 module:overlay(31)
from:0x0210300c kind:load to:0x0211583c add:0x8 module:overlay(31)
from:0x02103040 kind:arm_call to:0x0200f218 module:main
from:0x02103068 kind:load to:0x02110d74 module:overlay(31)
from:0x02103078 kind:load to:0x0200b58c module:main
@@ -4705,7 +4705,7 @@ from:0x021030b8 kind:arm_call to:0x0207c018 module:overlay(0)
from:0x021030cc kind:arm_call to:0x02102fe8 module:overlay(31)
from:0x021030d8 kind:arm_call to:0x02060804 module:overlay(0)
from:0x021030e8 kind:arm_call to:0x0206082c module:overlay(0)
from:0x021030f4 kind:load to:0x02115870 module:overlay(31)
from:0x021030f4 kind:load to:0x02115868 add:0x8 module:overlay(31)
from:0x021030f8 kind:load to:0x02113f10 add:0x8 module:overlay(31)
from:0x02103104 kind:arm_call_thumb to:0x02057bd4 module:overlay(0)
from:0x0210311c kind:arm_call_thumb to:0x02057bd4 module:overlay(0)
+51 -51
View File
@@ -65,7 +65,7 @@ func_ov031_020d97f4 kind:function(arm,size=0x10) addr:0x020d97f4
func_ov031_020d9804 kind:function(arm,size=0x10) addr:0x020d9804
func_ov031_020d9814 kind:function(arm,size=0x10) addr:0x020d9814
func_ov031_020d9824 kind:function(arm,size=0x10) addr:0x020d9824
func_ov031_020d9834 kind:function(arm,size=0x10) addr:0x020d9834
_ZN18UnkStruct_027e0d3411TryItemGiveEi kind:function(arm,size=0x10) addr:0x020d9834
_ZN18UnkStruct_027e0d3419func_ov031_020d9844Ev kind:function(arm,size=0x10) addr:0x020d9844
func_ov031_020d9854 kind:function(arm,size=0x34) addr:0x020d9854
func_ov031_020d9888 kind:function(arm,size=0x34) addr:0x020d9888
@@ -1528,43 +1528,43 @@ func_ov031_02102bc0 kind:function(arm,size=0x40) addr:0x02102bc0
func_ov031_02102c00 kind:function(arm,size=0x30) addr:0x02102c00
func_ov031_02102c30 kind:function(arm,size=0x224) addr:0x02102c30
_ZN19func_ov031_02102e54D0Ev kind:function(arm,size=0x1c) addr:0x02102e54
_ZN23MapObjectProfileUnkTRES10GetProfileEv kind:function(arm,size=0xc) addr:0x02102e70
_ZN23MapObjectProfileUnkTRES6CreateEv kind:function(arm,size=0x24) addr:0x02102e7c
_ZN23MapObjectProfileUnkTRESC1Ev kind:function(arm,size=0x44) addr:0x02102ea0
_ZN16MapObjectUnkTRESC1Ev kind:function(arm,size=0x80) addr:0x02102ee4
_ZN16MapObjectUnkTRES19func_ov031_02102f64Ev kind:function(arm,size=0x2c) addr:0x02102f64
_ZN16MapObjectUnkTRES19func_ov031_02102f90Ev kind:function(arm,size=0x8) addr:0x02102f90
_ZN16MapObjectUnkTRES19func_ov031_02102f98Ev kind:function(arm,size=0xc) addr:0x02102f98
_ZN16MapObjectUnkTRESD1Ev kind:function(arm,size=0x14) addr:0x02102fa4
_ZN16MapObjectUnkTRESD0Ev kind:function(arm,size=0x1c) addr:0x02102fb8
_ZN23MapObjectProfileUnkTRESD1Ev kind:function(arm,size=0x14) addr:0x02102fd4
func_ov031_02102fe8 kind:function(arm,size=0x28) addr:0x02102fe8
func_ov031_02103010 kind:function(arm,size=0x5c) addr:0x02103010
func_ov031_0210306c kind:function(arm,size=0x10) addr:0x0210306c
func_ov031_0210307c kind:function(arm,size=0x80) addr:0x0210307c
func_ov031_021030fc kind:function(arm,size=0x14) addr:0x021030fc
_ZN19func_ov031_02103110D1Ev kind:function(arm,size=0x20) addr:0x02103110
_ZN19func_ov031_02103130D0Ev kind:function(arm,size=0x28) addr:0x02103130
_ZN19func_ov031_02103158D2Ev kind:function(arm,size=0x20) addr:0x02103158
func_ov031_02103178 kind:function(arm,size=0xdc) addr:0x02103178
func_ov031_02103254 kind:function(arm,size=0x2e0) addr:0x02103254
func_ov031_02103534 kind:function(arm,size=0x27c) addr:0x02103534
func_ov031_021037b0 kind:function(arm,size=0x14) addr:0x021037b0
func_ov031_021037c4 kind:function(arm,size=0xc) addr:0x021037c4
func_ov031_021037d0 kind:function(arm,size=0x94) addr:0x021037d0
func_ov031_02103864 kind:function(arm,size=0x14) addr:0x02103864
_ZN9MapObject19func_ov031_02103878Ev kind:function(arm,size=0x1c) addr:0x02103878
func_ov031_02103894 kind:function(arm,size=0x3b4) addr:0x02103894
func_ov031_02103c48 kind:function(arm,size=0xe8) addr:0x02103c48
func_ov031_02103d30 kind:function(arm,size=0x108) addr:0x02103d30
func_ov031_02103e38 kind:function(arm,size=0x100) addr:0x02103e38
func_ov031_02103f38 kind:function(arm,size=0x8) addr:0x02103f38
func_ov031_02103f40 kind:function(arm,size=0x8) addr:0x02103f40
func_ov031_02103f48 kind:function(arm,size=0x58) addr:0x02103f48
func_ov031_02103fa0 kind:function(arm,size=0x28) addr:0x02103fa0
func_ov031_02103fc8 kind:function(arm,size=0x2c) addr:0x02103fc8
func_ov031_02103ff4 kind:function(arm,size=0xc) addr:0x02103ff4
_ZN19func_ov031_02104000D0Ev kind:function(arm,size=0x1c) addr:0x02104000
_ZN31MapObjectProfileTreasureSpawned10GetProfileEv kind:function(arm,size=0xc) addr:0x02102e70
_ZN31MapObjectProfileTreasureSpawned6CreateEv kind:function(arm,size=0x24) addr:0x02102e7c
_ZN31MapObjectProfileTreasureSpawnedC1Ev kind:function(arm,size=0x44) addr:0x02102ea0
_ZN24MapObjectTreasureSpawnedC1Ev kind:function(arm,size=0x80) addr:0x02102ee4
_ZN24MapObjectTreasureSpawned8vfunc_3CEv kind:function(arm,size=0x2c) addr:0x02102f64
_ZN24MapObjectTreasureSpawned8vfunc_40Ev kind:function(arm,size=0x8) addr:0x02102f90
_ZN24MapObjectTreasureSpawned8vfunc_54Ev kind:function(arm,size=0xc) addr:0x02102f98
_ZN24MapObjectTreasureSpawnedD1Ev kind:function(arm,size=0x14) addr:0x02102fa4
_ZN24MapObjectTreasureSpawnedD0Ev kind:function(arm,size=0x1c) addr:0x02102fb8
_ZN31MapObjectProfileTreasureSpawnedD1Ev kind:function(arm,size=0x14) addr:0x02102fd4
_ZN19MapObjectUnkTRES_74C1Ei kind:function(arm,size=0x28) addr:0x02102fe8
_ZN19MapObjectUnkTRES_748vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0x5c) addr:0x02103010
_ZN19MapObjectUnkTRES_7419func_ov031_0210306cEv kind:function(arm,size=0x10) addr:0x0210306c
_ZN18MapObjectChestBaseC2Ei kind:function(arm,size=0x80) addr:0x0210307c
_ZN19MapObjectUnkTRES_74D1Ev kind:function(arm,size=0x14) addr:0x021030fc
_ZN18MapObjectChestBaseD1Ev kind:function(arm,size=0x20) addr:0x02103110
_ZN18MapObjectChestBaseD0Ev kind:function(arm,size=0x28) addr:0x02103130
_ZN18MapObjectChestBaseD2Ev kind:function(arm,size=0x20) addr:0x02103158
_ZN18MapObjectChestBase8vfunc_00Ev kind:function(arm,size=0xdc) addr:0x02103178
_ZN18MapObjectChestBase8vfunc_04Ev kind:function(arm,size=0x2e0) addr:0x02103254
_ZN18MapObjectChestBase8vfunc_08Ev kind:function(arm,size=0x27c) addr:0x02103534
_ZN18MapObjectChestBase8vfunc_0CEv kind:function(arm,size=0x14) addr:0x021037b0
_ZN18MapObjectChestBase8vfunc_28Ev kind:function(arm,size=0xc) addr:0x021037c4
_ZN18MapObjectChestBase19func_ov031_021037d0Ev kind:function(arm,size=0x94) addr:0x021037d0
_ZN18MapObjectChestBase19func_ov031_02103864Ev kind:function(arm,size=0x14) addr:0x02103864
_ZN18MapObjectChestBase19func_ov031_02103878Ev kind:function(arm,size=0x1c) addr:0x02103878
_ZN18MapObjectChestBase8vfunc_38Eii kind:function(arm,size=0x3b4) addr:0x02103894
_ZN18MapObjectChestBase8vfunc_18EPcc kind:function(arm,size=0xe8) addr:0x02103c48
_ZN18MapObjectChestBase8vfunc_14Ev kind:function(arm,size=0x108) addr:0x02103d30
_ZN18MapObjectChestBase8vfunc_3CEv kind:function(arm,size=0x100) addr:0x02103e38
_ZN18MapObjectChestBase8vfunc_40Ev kind:function(arm,size=0x8) addr:0x02103f38
_ZN18MapObjectChestBase8vfunc_44Ev kind:function(arm,size=0x8) addr:0x02103f40
_ZN18MapObjectChestBase19func_ov031_02103f48Ev kind:function(arm,size=0x58) addr:0x02103f48
_ZN18MapObjectChestBase8vfunc_4CEv kind:function(arm,size=0x28) addr:0x02103fa0
_ZN18MapObjectChestBase8vfunc_50Ev kind:function(arm,size=0x2c) addr:0x02103fc8
_ZN18MapObjectChestBase8vfunc_54Ev kind:function(arm,size=0xc) addr:0x02103ff4
_ZN19MapObjectUnkTRES_74D0Ev kind:function(arm,size=0x1c) addr:0x02104000
_ZN23MapObjectProfileUnkTRED10GetProfileEv kind:function(arm,size=0xc) addr:0x0210401c
_ZN23MapObjectProfileUnkTRED6CreateEv kind:function(arm,size=0x24) addr:0x02104028
_ZN23MapObjectProfileUnkTREDC1Ev kind:function(arm,size=0x44) addr:0x0210404c
@@ -2044,7 +2044,7 @@ data_ov031_02110d38 kind:data(any) addr:0x02110d38 ambiguous
data_ov031_02110d40 kind:data(any) addr:0x02110d40
data_ov031_02110d54 kind:data(any) addr:0x02110d54
data_ov031_02110d68 kind:data(any) addr:0x02110d68
data_ov031_02110d74 kind:data(any) addr:0x02110d74
@1604 kind:data(byte[6]) addr:0x02110d74 local
data_ov031_02110d7c kind:data(any) addr:0x02110d7c ambiguous
data_ov031_02110d98 kind:data(any) addr:0x02110d98
data_ov031_02110da4 kind:data(any) addr:0x02110da4
@@ -2111,8 +2111,8 @@ __sinit_MapObjectUnkSTIR.cpp kind:function(arm,size=0x50) addr:0x02111da8
__sinit_MapObjectUnkGRSS.cpp kind:function(arm,size=0x90) addr:0x02111df8
__sinit_MapObjectUnkSWHT.cpp kind:function(arm,size=0x70) addr:0x02111e88
__sinit_MapObjectUnkBMFL.cpp kind:function(arm,size=0x50) addr:0x02111ef8
__sinit_MapObjectUnkTRES.cpp kind:function(arm,size=0x6c) addr:0x02111f48
__sinit_ov031_02111fb4 kind:function(arm,size=0x30) addr:0x02111fb4
__sinit_MapObjectTreasureSpawned.cpp kind:function(arm,size=0x6c) addr:0x02111f48 local
__sinit_MapObjectChestBase.cpp kind:function(arm,size=0x30) addr:0x02111fb4
__sinit_MapObjectUnkTRED.cpp kind:function(arm,size=0x6c) addr:0x02111fe4
__sinit_MapObjectUnkTREW.cpp kind:function(arm,size=0x6c) addr:0x02112050
__sinit_MapObjectUnkTREN.cpp kind:function(arm,size=0x6c) addr:0x021120bc
@@ -2175,8 +2175,8 @@ __sinit_MapObjectUnkSWFS.cpp kind:function(arm,size=0x70) addr:0x02112724
.p__sinit_MapObjectUnkGRSS.cpp kind:data(word) addr:0x02112834
.p__sinit_MapObjectUnkSWHT.cpp kind:data(word) addr:0x02112838
.p__sinit_MapObjectUnkBMFL.cpp kind:data(word) addr:0x0211283c
.p__sinit_MapObjectUnkTRES.cpp kind:data(word) addr:0x02112840
.p__sinit_ov031_02111fb4 kind:data(word) addr:0x02112844
.p__sinit_MapObjectTreasureSpawned.cpp kind:data(word) addr:0x02112840 local
.p__sinit_MapObjectChestBase.cpp kind:data(word) addr:0x02112844
.p__sinit_MapObjectUnkTRED.cpp kind:data(word) addr:0x02112848
.p__sinit_MapObjectUnkTREW.cpp kind:data(word) addr:0x0211284c
.p__sinit_MapObjectUnkTREN.cpp kind:data(word) addr:0x02112850
@@ -2444,13 +2444,13 @@ data_ov031_021156cc kind:data(any) addr:0x021156cc
data_ov031_0211570c kind:data(any) addr:0x0211570c
data_ov031_02115728 kind:data(any) addr:0x02115728
data_ov031_0211578c kind:data(any) addr:0x0211578c
data_ov031_021157b0 kind:data(any) addr:0x021157b0
data_ov031_021157c0 kind:data(any) addr:0x021157c0
data_ov031_021157dc kind:data(any) addr:0x021157dc
data_ov031_021157b0 kind:data(any) addr:0x021157b0 local
_ZTV31MapObjectProfileTreasureSpawned kind:data(any) addr:0x021157b8
_ZTV24MapObjectTreasureSpawned kind:data(any) addr:0x021157d4
data_ov031_02115830 kind:data(any) addr:0x02115830
data_ov031_02115834 kind:data(any) addr:0x02115834
data_ov031_02115844 kind:data(any) addr:0x02115844
data_ov031_02115870 kind:data(any) addr:0x02115870
_ZTV19MapObjectUnkTRES_74 kind:data(any) addr:0x0211583c
_ZTV18MapObjectChestBase kind:data(any) addr:0x02115868
data_ov031_021158c4 kind:data(any) addr:0x021158c4
data_ov031_021158d4 kind:data(any) addr:0x021158d4
data_ov031_021158f0 kind:data(any) addr:0x021158f0
@@ -2658,9 +2658,9 @@ data_ov031_02117a9c kind:bss addr:0x02117a9c
_ZGVN15ProfileInstanceI23MapObjectProfileUnkBMFLE8sProfileE kind:bss addr:0x02117abc
@10993 kind:bss addr:0x02117ac0
_ZN15ProfileInstanceI23MapObjectProfileUnkBMFLE8sProfileE kind:bss addr:0x02117acc
_ZGVN15ProfileInstanceI23MapObjectProfileUnkTRESE8sProfileE kind:bss addr:0x02117ba0
@10999 kind:bss addr:0x02117ba4
_ZN15ProfileInstanceI23MapObjectProfileUnkTRESE8sProfileE kind:bss addr:0x02117bb0
_ZGVN15ProfileInstanceI31MapObjectProfileTreasureSpawnedE8sProfileE kind:bss addr:0x02117ba0
@10999 kind:bss addr:0x02117ba4 local
_ZN15ProfileInstanceI31MapObjectProfileTreasureSpawnedE8sProfileE kind:bss addr:0x02117bb0
data_ov031_02117c84 kind:bss addr:0x02117c84
_ZGVN15ProfileInstanceI23MapObjectProfileUnkTREDE8sProfileE kind:bss addr:0x02117cfc
@11005 kind:bss addr:0x02117d00
+2 -2
View File
@@ -147,7 +147,7 @@ _ZN19ActorProfileUnkGORYC1Ev kind:function(arm,size=0x60) addr:0x0211bb04
_ZN12ActorUnkGORYC1Ev kind:function(arm,size=0xbc) addr:0x0211bb64
_ZN12ActorUnkGORY19func_ov036_0211bc20Ev kind:function(arm,size=0x64) addr:0x0211bc20
_ZN12ActorUnkGORY19func_ov036_0211bc84Ev kind:function(arm,size=0x2c) addr:0x0211bc84
_ZN12ActorUnkGORY19func_ov036_0211bcb0Ev kind:function(arm,size=0x94) addr:0x0211bcb0
_ZN12ActorUnkGORY19func_ov036_0211bcb0Ei kind:function(arm,size=0x94) addr:0x0211bcb0
_ZN12ActorUnkGORYD0Ev kind:function(arm,size=0x38) addr:0x0211bd44
_ZN12ActorUnkGORYD2Ev kind:function(arm,size=0x30) addr:0x0211bd7c
_ZN19ActorProfileUnkGORYD1Ev kind:function(arm,size=0x14) addr:0x0211bdac
@@ -206,7 +206,7 @@ _ZN12ActorUnkSHIT19func_ov036_0211d270Ev kind:function(arm,size=0x1c) addr:0x021
_ZN12ActorUnkSHIT19func_ov036_0211d28cEv kind:function(arm,size=0x1c) addr:0x0211d28c
_ZN12ActorUnkSHIT19func_ov036_0211d2a8Ev kind:function(arm,size=0x34) addr:0x0211d2a8
_ZN12ActorUnkSHIT19func_ov036_0211d2dcEv kind:function(arm,size=0x294) addr:0x0211d2dc
_ZN12ActorUnkSHIT19func_ov036_0211d570Ev kind:function(arm,size=0x1ec) addr:0x0211d570
_ZN12ActorUnkSHIT19func_ov036_0211d570Ei kind:function(arm,size=0x1ec) addr:0x0211d570
_ZN12ActorUnkSHIT19func_ov036_0211d75cEv kind:function(arm,size=0x18) addr:0x0211d75c
_ZN12ActorUnkSHIT19func_ov036_0211d774Ev kind:function(arm,size=0x1c) addr:0x0211d774
_ZN12ActorUnkSHIT19func_ov036_0211d790Ev kind:function(arm,size=0xc) addr:0x0211d790
+1 -1
View File
@@ -415,7 +415,7 @@ _ZN16MapObjectUnkWDST19func_ov094_02172a44Ev kind:function(arm,size=0x9c) addr:0
_ZN16MapObjectUnkWDST19func_ov094_02172ae0Ev kind:function(arm,size=0x14) addr:0x02172ae0
_ZN16MapObjectUnkWDST19func_ov094_02172af4Ev kind:function(arm,size=0x108) addr:0x02172af4
_ZN16MapObjectUnkWDST19func_ov094_02172bfcEv kind:function(arm,size=0x98) addr:0x02172bfc
_ZN16MapObjectUnkWDST19func_ov094_02172c94Ev kind:function(arm,size=0x478) addr:0x02172c94
_ZN16MapObjectUnkWDST19func_ov094_02172c94Ei kind:function(arm,size=0x478) addr:0x02172c94
_ZN16MapObjectUnkWDST19func_ov094_0217310cEv kind:function(arm,size=0xd8) addr:0x0217310c
_ZN16MapObjectUnkWDST19func_ov094_021731e4Ev kind:function(arm,size=0x280) addr:0x021731e4
_ZN16MapObjectUnkWDST19func_ov094_02173464Ev kind:function(arm,size=0x30) addr:0x02173464
+4 -4
View File
@@ -8,12 +8,12 @@ _ZN9PlayerGet8vfunc_10Eii kind:function(arm,size=0x6d0) addr:0x021855e4
_ZN9PlayerGet8vfunc_18Eiii kind:function(arm,size=0x7c) addr:0x02185cb4
_ZN22UnkStruct_PlayerGet_ecC1Ev kind:function(arm,size=0xc) addr:0x02185d30
_ZN21UnkStruct_027e0ce0_3419func_ov110_02185d3cEi kind:function(thumb,size=0x66) addr:0x02185d3c
_ZN11ItemManager19func_ov110_02185da4Ei kind:function(arm,size=0x10) addr:0x02185da4
_ZN11ItemManager19func_ov110_02185db4Ei kind:function(arm,size=0x10) addr:0x02185db4
_ZN11ItemManager16GetBmgIDFromItemEi kind:function(arm,size=0x10) addr:0x02185da4
_ZN11ItemManager18GetAdvFlagFromItemEi kind:function(arm,size=0x10) addr:0x02185db4
data_ov110_02185dc4 kind:data(any) addr:0x02185dc4
data_ov110_02185dc8 kind:data(any) addr:0x02185dc8
data_ov110_02185de8 kind:data(any) addr:0x02185de8
data_ov110_02185fbc kind:data(any) addr:0x02185fbc
sBMGItemMap kind:data(any) addr:0x02185de8
sAdvFlagItemMap kind:data(any) addr:0x02185fbc
data_ov110_021860c4 kind:data(any) addr:0x021860c4 ambiguous
__sinit_PlayerGet.cpp kind:function(arm,size=0x2c) addr:0x02186190
.p__sinit_PlayerGet.cpp kind:data(word) addr:0x021861bc
+1 -1
View File
@@ -718,7 +718,7 @@ func_02014918 kind:function(thumb,size=0x2c) addr:0x02014918
func_02014944 kind:function(thumb,size=0x50) addr:0x02014944
_ZN14OverlayManager13func_02014994Ei kind:function(thumb,size=0x7c) addr:0x02014994
func_02014a10 kind:function(arm,size=0x24) addr:0x02014a10
func_02014a34 kind:function(arm,size=0xcc) addr:0x02014a34
_ZN18UnkStruct_02049bac13func_02014a34EPv kind:function(arm,size=0xcc) addr:0x02014a34
func_02014b00 kind:function(arm,size=0x54) addr:0x02014b00
func_02014b54 kind:function(arm,size=0x10) addr:0x02014b54
func_02014b64 kind:function(arm,size=0x1c) addr:0x02014b64
+8 -8
View File
@@ -70,6 +70,14 @@ libs/c/src/ansi_files.c:
.data start:0x02045c1c end:0x02045d00
.bss start:0x02052d20 end:0x02053020
libs/c/src/float.c:
complete
.data start:0x02045d00 end:0x02045d04
libs/c/src/locale.c:
complete
.data start:0x02045d04 end:0x02045f20
libs/c/src/arith.c:
complete
.text start:0x02034e04 end:0x02034e1c
@@ -116,14 +124,6 @@ libs/c/src/wmem.c:
complete
.text start:0x02035728 end:0x02035760
libs/c/src/float.c:
complete
.data start:0x02045d00 end:0x02045d04
libs/c/src/locale.c:
complete
.data start:0x02045d04 end:0x02045f20
libs/c/src/wprintf.c:
.text start:0x02035760 end:0x0203768c
.data start:0x02045f20 end:0x02045fa0
+1 -1
View File
@@ -204,7 +204,7 @@ _ZN12ActorManager13func_01fff3b4Ei kind:function(arm,size=0x8c) addr:0x01fff3b4
func_01fff440 kind:function(arm,size=0x18) addr:0x01fff440
_ZN5Actor10GetActorIdEv kind:function(arm,size=0xc) addr:0x01fff458
_ZN5Actor8vfunc_10Ev kind:function(arm,size=0x34) addr:0x01fff464
_ZN16MapObjectManager13func_01fff498E23UnkStruct_func_01fff498 kind:function(arm,size=0x34) addr:0x01fff498
_ZN16MapObjectManager13func_01fff498E5Vec2b kind:function(arm,size=0x34) addr:0x01fff498
_ZN16MapObjectManager13func_01fff4ccEPFvPvS0_ES0_ kind:function(arm,size=0x54) addr:0x01fff4cc
_ZN16MapObjectManager13func_01fff520EP24UnkStruct_ov000_020b34c4PP9MapObject kind:function(arm,size=0x64) addr:0x01fff520
_ZN9MapObject14GetMapObjectIdEv kind:function(arm,size=0xc) addr:0x01fff584
@@ -90,6 +90,10 @@ src/000_Second/MapObject/MapObjectMiniBlocks.cpp:
.data start:0x020b4f44 end:0x020b4fac
.bss start:0x020b7a38 end:0x020b7ab0
src/000_Second/data_ov000_020af58c.cpp:
.text start:0x020a6400 end:0x020a6410
.rodata start:0x020b0d9c end:0x020b0f70
src/000_Second/Cutscene/Cutscene.cpp:
.text start:0x020a902c end:0x020a9108
.rodata start:0x020b0f90 end:0x020b144c
+18 -18
View File
@@ -2158,7 +2158,7 @@ func_ov000_020951e0 kind:function(arm,size=0x68) addr:0x020951e0
func_ov000_02095248 kind:function(arm,size=0x18) addr:0x02095248
func_ov000_02095260 kind:function(arm,size=0xc) addr:0x02095260
func_ov000_0209526c kind:function(arm,size=0x38) addr:0x0209526c
func_ov000_020952a4 kind:function(arm,size=0x21c) addr:0x020952a4
_ZN21UnkStruct_027e0d34_0419func_ov000_02093bc8Ei kind:function(arm,size=0x21c) addr:0x020952a4
func_ov000_020954c0 kind:function(arm,size=0x34) addr:0x020954c0
func_ov000_020954f4 kind:function(arm,size=0x60) addr:0x020954f4
func_ov000_02095554 kind:function(arm,size=0x1b8) addr:0x02095554
@@ -2254,12 +2254,12 @@ _ZN24UnkStruct_ov000_020b539c18func_ov000_02073dcEv kind:function(arm,size=0xc)
_ZN24UnkStruct_ov000_020b539c18func_ov000_02073e8Ev kind:function(arm,size=0xc) addr:0x02098b9c
func_ov000_02098ba8 kind:function(arm,size=0x50) addr:0x02098ba8
func_ov000_02098bf8 kind:function(arm,size=0x98) addr:0x02098bf8
_ZN24UnkStruct_ov000_020b539c19func_ov000_020974dcEj kind:function(arm,size=0x4c) addr:0x02098c90
_ZN24UnkStruct_ov000_020b539c16GetProfileFromIdEj kind:function(arm,size=0x4c) addr:0x02098c90
func_ov000_02098cdc kind:function(arm,size=0x20) addr:0x02098cdc
func_ov000_02098cfc kind:function(arm,size=0x78) addr:0x02098cfc
func_ov000_02098d74 kind:function(arm,size=0x1c) addr:0x02098d74
func_ov000_02098d90 kind:function(arm,size=0x1c) addr:0x02098d90
_ZN8Actor_5c19func_ov000_020975f8Ev kind:function(arm,size=0x78) addr:0x02098dac
_ZN11ActorParams19func_ov000_020975f8Ev kind:function(arm,size=0x78) addr:0x02098dac
_ZN12ActorProfileC2Ej kind:function(arm,size=0xa8) addr:0x02098e24
_ZN12ActorProfileD2Ev kind:function(arm,size=0x28) addr:0x02098ecc
_ZN12ActorProfile8vfunc_04Ev kind:function(arm,size=0x8) addr:0x02098ef4
@@ -2495,11 +2495,11 @@ _ZN16MapObjectManager19func_ov000_0209c3a8Ev kind:function(arm,size=0x40) addr:0
_ZN16MapObjectManager19func_ov000_0209c3e8Ev kind:function(arm,size=0x5c) addr:0x0209dbb4
_ZN16MapObjectManager19func_ov000_0209c444Ev kind:function(arm,size=0x4c) addr:0x0209dc10
_ZN16MapObjectManager19func_ov000_0209c490Ev kind:function(arm,size=0x94) addr:0x0209dc5c
_ZN16MapObjectManager19func_ov000_0209c524Ev kind:function(arm,size=0x17c) addr:0x0209dcf0
_ZN16MapObjectManager17AllocateMapObjectEv kind:function(arm,size=0x17c) addr:0x0209dcf0
func_ov000_0209de6c kind:function(arm,size=0xc) addr:0x0209de6c
func_ov000_0209de78 kind:function(arm,size=0xc) addr:0x0209de78
_ZN24UnkStruct_ov000_020b5d3419func_ov000_0209c6b8Ei kind:function(arm,size=0x38) addr:0x0209de84
_ZN24UnkStruct_ov000_020b5d3419func_ov000_0209c6f0Ev kind:function(arm,size=0x28) addr:0x0209debc
_ZN24UnkStruct_ov000_020b5d3416GetProfileFromIdEj kind:function(arm,size=0x38) addr:0x0209de84
_ZN24UnkStruct_ov000_020b5d3415CreateMapObjectEP9MapObject kind:function(arm,size=0x28) addr:0x0209debc
_ZN24UnkStruct_ov000_020b5d3419func_ov000_0209c718Ej kind:function(arm,size=0x78) addr:0x0209dee4
_ZN12MapObject_2019func_ov000_0209c790EjP16MapObjectProfile kind:function(arm,size=0x1c) addr:0x0209df5c
_ZN12MapObject_2019func_ov000_0209c7acEj kind:function(arm,size=0x1c) addr:0x0209df78
@@ -2667,7 +2667,7 @@ func_ov000_020a162c kind:function(arm,size=0x18) addr:0x020a162c
func_ov000_020a1644 kind:function(arm,size=0x18) addr:0x020a1644
func_ov000_020a165c kind:function(arm,size=0x1c) addr:0x020a165c
func_ov000_020a1678 kind:function(arm,size=0xc) addr:0x020a1678
func_ov000_020a1684 kind:function(arm,size=0x78) addr:0x020a1684
_ZN18UnkStruct_027e0cec19func_ov000_0209feacEiP5Vec3piii kind:function(arm,size=0x78) addr:0x020a1684
func_ov000_020a16fc kind:function(arm,size=0x28) addr:0x020a16fc
func_ov000_020a1724 kind:function(arm,size=0x40) addr:0x020a1724
_ZN18UnkStruct_027e0cec19func_ov000_0209ff8cEP22UnkStruct_PlayerGet_eciP5Vec3pi kind:function(arm,size=0x74) addr:0x020a1764
@@ -2714,7 +2714,7 @@ func_ov000_020a2750 kind:function(thumb,size=0xc) addr:0x020a2750
func_ov000_020a275c kind:function(thumb,size=0x30) addr:0x020a275c
func_ov000_020a278c kind:function(thumb,size=0x10) addr:0x020a278c
func_ov000_020a279c kind:function(thumb,size=0x3c) addr:0x020a279c
func_ov000_020a27d8 kind:function(thumb,size=0x28) addr:0x020a27d8
_ZN15SaveManager_21C19func_ov000_020a1000Ev kind:function(thumb,size=0x28) addr:0x020a27d8
_ZN8SaveInfo19func_ov000_020a1028Ev kind:function(thumb,size=0xcc) addr:0x020a2800
_ZN8SaveSub719func_ov000_020a10f4Ev kind:function(arm,size=0x30) addr:0x020a28cc
_ZN8SaveSlot19func_ov000_020a1124Ev kind:function(arm,size=0x13c) addr:0x020a28fc
@@ -2827,7 +2827,7 @@ func_ov000_020a6374 kind:function(arm,size=0x4c) addr:0x020a6374
func_ov000_020a63c0 kind:function(arm,size=0x10) addr:0x020a63c0
_ZN19func_ov000_020a63d0D1Ev kind:function(arm,size=0x14) addr:0x020a63d0
_ZN19func_ov000_020a63e4D0Ev kind:function(arm,size=0x1c) addr:0x020a63e4
func_ov000_020a6400 kind:function(arm,size=0x10) addr:0x020a6400
_Z19func_ov000_020a4c00i kind:function(arm,size=0x10) addr:0x020a6400
func_ov000_020a6410 kind:function(arm,size=0xc4) addr:0x020a6410
func_ov000_020a64d4 kind:function(arm,size=0x7c) addr:0x020a64d4
func_ov000_020a6550 kind:function(arm,size=0x98) addr:0x020a6550
@@ -3071,21 +3071,21 @@ _ZN23ActorUnk_ov000_020a8bb08vfunc_b8Ev kind:function(arm,size=0x34) addr:0x020a
_ZN23ActorUnk_ov000_020a8bb08vfunc_14Ev kind:function(arm,size=0x48) addr:0x020ab1d8
_ZN19func_ov000_020ab220D1Ev kind:function(arm,size=0x14) addr:0x020ab220
_ZN19func_ov000_020ab234D0Ev kind:function(arm,size=0x1c) addr:0x020ab234
func_ov000_020ab250 kind:function(arm,size=0x44) addr:0x020ab250
func_ov000_020a9a50 kind:function(arm,size=0x44) addr:0x020ab250
func_ov000_020ab294 kind:function(arm,size=0x28) addr:0x020ab294
func_ov000_020ab2bc kind:function(arm,size=0x24) addr:0x020ab2bc
func_ov000_020ab2e0 kind:function(arm,size=0x1c) addr:0x020ab2e0
func_ov000_020ab2fc kind:function(arm,size=0x14) addr:0x020ab2fc
_ZN15TreasureManager19func_ov000_020a9b10Ev kind:function(arm,size=0x1c) addr:0x020ab310
_ZN15TreasureManager19func_ov000_020a9b10EPv kind:function(arm,size=0x1c) addr:0x020ab310
func_ov000_020ab32c kind:function(arm,size=0x10) addr:0x020ab32c
func_ov000_020ab33c kind:function(arm,size=0x10) addr:0x020ab33c
_ZN15TreasureManager19func_ov000_020a9b4cEv kind:function(arm,size=0x100) addr:0x020ab34c
_ZN15TreasureManager19func_ov000_020a9c4cEs kind:function(arm,size=0x18) addr:0x020ab44c
_ZN15TreasureManager19func_ov000_020a9b4cEi kind:function(arm,size=0x100) addr:0x020ab34c
_ZN15TreasureManager19func_ov000_020a9c4cEi kind:function(arm,size=0x18) addr:0x020ab44c
_ZN15TreasureManager19func_ov000_020a9c64Ev kind:function(arm,size=0x2c) addr:0x020ab464
_ZN15TreasureManager19func_ov000_020a9c90Es kind:function(arm,size=0x14) addr:0x020ab490
_ZN15TreasureManager19func_ov000_020a9ca4Es kind:function(arm,size=0x18) addr:0x020ab4a4
_ZN15TreasureManager19func_ov000_020a9cbcEsi kind:function(arm,size=0x40) addr:0x020ab4bc
func_ov000_020ab4fc kind:function(arm,size=0x7c) addr:0x020ab4fc
_ZN15TreasureManager19func_ov000_020a9c90Ei kind:function(arm,size=0x14) addr:0x020ab490
_ZN15TreasureManager19func_ov000_020a9ca4Ei kind:function(arm,size=0x18) addr:0x020ab4a4
_ZN15TreasureManager19func_ov000_020a9cbcEii kind:function(arm,size=0x40) addr:0x020ab4bc
_ZN15TreasureManager19func_ov000_020a9cfcEPhh kind:function(arm,size=0x7c) addr:0x020ab4fc
_ZN15TreasureManager19func_ov000_020a9d78Ei kind:function(arm,size=0x9c) addr:0x020ab578
_ZN15TreasureManager19func_ov000_020a9e14Ei kind:function(arm,size=0x9c) addr:0x020ab614
_ZN15TreasureManager19func_ov000_020a9eb0Ei kind:function(arm,size=0x9c) addr:0x020ab6b0
@@ -3269,7 +3269,7 @@ data_ov000_020b030a kind:data(any) addr:0x020b030a
data_ov000_020b05e0 kind:data(word[246]) addr:0x020b05e0
data_ov000_020b09b8 kind:data(word[246]) addr:0x020b09b8
data_ov000_020b0d90 kind:data(any) addr:0x020b0d90
data_ov000_020b0d9c kind:data(any) addr:0x020b0d9c
data_ov000_020af58c kind:data(any) addr:0x020b0d9c
data_ov000_020b0f70 kind:data(any) addr:0x020b0f70
data_ov000_020b0f74 kind:data(any) addr:0x020b0f74
data_ov000_020b0f80 kind:data(any) addr:0x020b0f80
@@ -9,3 +9,6 @@ src/001_SceneInit/Actor/ActorManager_001.cpp:
.text start:0x020bc7ac end:0x020bd0c4
.rodata start:0x020c3e78 end:0x020c3ea0
.data start:0x020c437c end:0x020c44b0
src/001_SceneInit/Item/ItemManager_001.cpp:
.text start:0x020bd240 end:0x020bd29c
+1 -1
View File
@@ -193,7 +193,7 @@ _ZN12ActorManager13ClearInstanceEv kind:function(thumb,size=0xc) addr:0x020bd0b8
func_ov001_020bd0c4 kind:function(thumb,size=0x3c) addr:0x020bd0c4
func_ov001_020bd100 kind:function(thumb,size=0x2) addr:0x020bd100
func_ov001_020bd104 kind:function(thumb,size=0x13c) addr:0x020bd104
func_ov001_020bd240 kind:function(thumb,size=0x5c) addr:0x020bd240
_ZN11ItemManager19func_ov001_020bb9f8Ev kind:function(thumb,size=0x5c) addr:0x020bd240
func_ov001_020bd29c kind:function(thumb,size=0x18) addr:0x020bd29c
func_ov001_020bd2b4 kind:function(thumb,size=0x58) addr:0x020bd2b4
func_ov001_020bd30c kind:function(thumb,size=0x5c) addr:0x020bd30c
@@ -5,6 +5,9 @@
.data start:0x020d9500 end:0x020da000 kind:data align:32
.bss start:0x020da000 end:0x020da0c0 kind:bss align:32
src/024_MainGame/MiscAdvManager.cpp:
.text start:0x020d7c58 end:0x020d7ff4
src/024_MainGame/Actor/ActorUnkOBPC.cpp:
.text start:0x020d8840 end:0x020d8cbc
.init start:0x020d9488 end:0x020d94d8
+21 -21
View File
@@ -677,26 +677,26 @@ func_ov024_020d795c kind:function(arm,size=0x2c) addr:0x020d795c
func_ov024_020d7988 kind:function(arm,size=0x2ac) addr:0x020d7988
func_ov024_020d7c34 kind:function(arm,size=0x10) addr:0x020d7c34
func_ov024_020d7c44 kind:function(arm,size=0x14) addr:0x020d7c44
func_ov024_020d7c58 kind:function(arm,size=0x24) addr:0x020d7c58
func_ov024_020d7c7c kind:function(arm,size=0x24) addr:0x020d7c7c
func_ov024_020d7ca0 kind:function(arm,size=0x14) addr:0x020d7ca0
func_ov024_020d7cb4 kind:function(arm,size=0x60) addr:0x020d7cb4
func_ov024_020d7d14 kind:function(arm,size=0x48) addr:0x020d7d14
func_ov024_020d7d5c kind:function(arm,size=0x30) addr:0x020d7d5c
func_ov024_020d7d8c kind:function(arm,size=0x3c) addr:0x020d7d8c
func_ov024_020d7dc8 kind:function(arm,size=0x44) addr:0x020d7dc8
func_ov024_020d7e0c kind:function(arm,size=0x2c) addr:0x020d7e0c
func_ov024_020d7e38 kind:function(arm,size=0xc) addr:0x020d7e38
func_ov024_020d7e44 kind:function(arm,size=0x8) addr:0x020d7e44
func_ov024_020d7e4c kind:function(arm,size=0xc) addr:0x020d7e4c
func_ov024_020d7e58 kind:function(arm,size=0x7c) addr:0x020d7e58
func_ov024_020d7ed4 kind:function(arm,size=0x2c) addr:0x020d7ed4
func_ov024_020d7f00 kind:function(arm,size=0x10) addr:0x020d7f00
func_ov024_020d7f10 kind:function(arm,size=0x30) addr:0x020d7f10
func_ov024_020d7f40 kind:function(arm,size=0x74) addr:0x020d7f40
func_ov024_020d7fb4 kind:function(arm,size=0x1c) addr:0x020d7fb4
func_ov024_020d7fd0 kind:function(arm,size=0x10) addr:0x020d7fd0
func_ov024_020d7fe0 kind:function(arm,size=0x14) addr:0x020d7fe0
_ZN14MiscAdvManager6CreateEv kind:function(arm,size=0x24) addr:0x020d7c58
_ZN14MiscAdvManagerC1Ev kind:function(arm,size=0x24) addr:0x020d7c7c
_ZN14MiscAdvManagerD1Ev kind:function(arm,size=0x14) addr:0x020d7ca0
_ZN14MiscAdvManager19func_ov024_020d6310EPS_ kind:function(arm,size=0x60) addr:0x020d7cb4
_ZN14MiscAdvManager21GiveLetterOrPriceCardEi kind:function(arm,size=0x48) addr:0x020d7d14
_ZN14MiscAdvManager22GetObtainedLetterCountEv kind:function(arm,size=0x30) addr:0x020d7d5c
_ZN14MiscAdvManager16GotUnreadLettersEv kind:function(arm,size=0x3c) addr:0x020d7d8c
_ZN14MiscAdvManager10GiveLetterEt kind:function(arm,size=0x44) addr:0x020d7dc8
_ZN14MiscAdvManager19func_ov024_020d6468Ev kind:function(arm,size=0x2c) addr:0x020d7e0c
_ZN14MiscAdvManager8GetStampEi kind:function(arm,size=0xc) addr:0x020d7e38
_ZN14MiscAdvManager12GetStampDateEi kind:function(arm,size=0x8) addr:0x020d7e44
_ZN14MiscAdvManager11GetStampPosEi kind:function(arm,size=0xc) addr:0x020d7e4c
_ZN14MiscAdvManager19func_ov024_020d64b4EiiPt kind:function(arm,size=0x7c) addr:0x020d7e58
_ZN14MiscAdvManager19func_ov024_020d6530Ev kind:function(arm,size=0x2c) addr:0x020d7ed4
_ZN14MiscAdvManager15GetNumPostcardsEv kind:function(arm,size=0x10) addr:0x020d7f00
_ZN14MiscAdvManager13GivePriceCardEi kind:function(arm,size=0x30) addr:0x020d7f10
_ZN14MiscAdvManager13PostPriceCardEii kind:function(arm,size=0x74) addr:0x020d7f40
_ZN14MiscAdvManager19func_ov024_020d6610Ev kind:function(arm,size=0x1c) addr:0x020d7fb4
_ZN14MiscAdvManager11SetInstanceEPS_ kind:function(arm,size=0x10) addr:0x020d7fd0
_ZN14MiscAdvManager13ClearInstanceEv kind:function(arm,size=0x14) addr:0x020d7fe0
func_ov024_020d7ff4 kind:function(thumb,size=0x16) addr:0x020d7ff4
_ZN26ActorUnk_ov000_020a8bb0_ec19func_ov024_020d6668Ev kind:function(thumb,size=0x16) addr:0x020d800c
func_ov024_020d8024 kind:function(arm,size=0x40) addr:0x020d8024
@@ -910,7 +910,7 @@ data_ov024_020da040 kind:bss addr:0x020da040
data_ov024_020da044 kind:bss addr:0x020da044
data_ov024_020da048 kind:bss addr:0x020da048
data_ov024_020da04c kind:bss addr:0x020da04c
data_ov024_020da050 kind:bss addr:0x020da050
gpMiscAdvManager kind:bss addr:0x020da050
data_ov024_020da054 kind:bss addr:0x020da054 ambiguous
data_ov024_020da058 kind:bss addr:0x020da058
data_ov024_020da05c kind:bss addr:0x020da05c
+14 -2
View File
@@ -5,6 +5,9 @@
.data start:0x02114640 end:0x02118120 kind:data align:32
.bss start:0x02118120 end:0x0211ad60 kind:bss align:32
src/031_Land/UnkStruct_027e0d34.cpp:
.text start:0x020db1d4 end:0x020db1f4
src/031_Land/Actor/ActorUnkBOMB.cpp:
.text start:0x020e2e94 end:0x020e4ea0
.init start:0x02112d68 end:0x02112db8
@@ -254,11 +257,20 @@ src/031_Land/MapObject/MapObjectUnkBMFL.cpp:
.ctor start:0x021145c8 end:0x021145cc
.bss start:0x0211985c end:0x02119940
src/031_Land/MapObject/MapObjectUnkTRES.cpp:
src/031_Land/MapObject/MapObjectTreasureSpawned.cpp:
complete
.text start:0x02104bcc end:0x02104d44
.init start:0x02113cd4 end:0x02113d40
.ctor start:0x021145cc end:0x021145d0
.bss start:0x02119940 end:0x02119a9c
.data start:0x02117524 end:0x021175a4
.bss start:0x02119940 end:0x02119a24
src/031_Land/MapObject/MapObjectChestBase.cpp:
.text start:0x02104d44 end:0x02105d78
.init start:0x02113d40 end:0x02113d70
.ctor start:0x021145d0 end:0x021145d4
.data start:0x021175a4 end:0x02117638
.bss start:0x02119a24 end:0x02119a9c
src/031_Land/MapObject/MapObjectUnkTRED.cpp:
.text start:0x02105d78 end:0x02105f14
+4 -4
View File
@@ -4693,9 +4693,9 @@ from:0x02104bd4 kind:load to:0x02119950 module:overlay(31)
from:0x02104be8 kind:arm_call to:0x02011f3c module:main
from:0x02104bf4 kind:arm_call to:0x02104c40 module:overlay(31)
from:0x02104c0c kind:arm_call to:0x0209e16c module:overlay(0)
from:0x02104c38 kind:load to:0x02117534 module:overlay(31)
from:0x02104c38 kind:load to:0x0211752c add:0x8 module:overlay(31)
from:0x02104c4c kind:arm_call to:0x02104dd8 module:overlay(31)
from:0x02104cb8 kind:load to:0x02117550 module:overlay(31)
from:0x02104cb8 kind:load to:0x02117548 add:0x8 module:overlay(31)
from:0x02104cbc kind:load to:0x02119950 module:overlay(31)
from:0x02104cd4 kind:arm_call to:0x020835f4 module:overlay(0)
from:0x02104ce8 kind:load to:0x027e0cd8 module:dtcm
@@ -4705,7 +4705,7 @@ from:0x02104d1c kind:arm_call to:0x02104eb4 module:overlay(31)
from:0x02104d24 kind:arm_call to:0x02011ff4 module:main
from:0x02104d38 kind:arm_call to:0x0209e19c module:overlay(0)
from:0x02104d4c kind:arm_call_thumb to:0x020590d4 module:overlay(0)
from:0x02104d68 kind:load to:0x021175b8 module:overlay(31)
from:0x02104d68 kind:load to:0x021175b0 add:0x8 module:overlay(31)
from:0x02104d9c kind:arm_call to:0x0200f218 module:main
from:0x02104dc4 kind:load to:0x02112ae4 module:overlay(31)
from:0x02104dd4 kind:load to:0x0200b58c module:main
@@ -4714,7 +4714,7 @@ from:0x02104e14 kind:arm_call to:0x0207d6d0 module:overlay(0)
from:0x02104e28 kind:arm_call to:0x02104d44 module:overlay(31)
from:0x02104e34 kind:arm_call to:0x02061d8c module:overlay(0)
from:0x02104e44 kind:arm_call to:0x02061db4 module:overlay(0)
from:0x02104e50 kind:load to:0x021175e4 module:overlay(31)
from:0x02104e50 kind:load to:0x021175dc add:0x8 module:overlay(31)
from:0x02104e54 kind:load to:0x02115cb0 add:0x8 module:overlay(31)
from:0x02104e60 kind:arm_call_thumb to:0x02059154 module:overlay(0)
from:0x02104e78 kind:arm_call_thumb to:0x02059154 module:overlay(0)
+50 -50
View File
@@ -65,7 +65,7 @@ func_ov031_020db194 kind:function(arm,size=0x10) addr:0x020db194
func_ov031_020db1a4 kind:function(arm,size=0x10) addr:0x020db1a4
func_ov031_020db1b4 kind:function(arm,size=0x10) addr:0x020db1b4
func_ov031_020db1c4 kind:function(arm,size=0x10) addr:0x020db1c4
func_ov031_020db1d4 kind:function(arm,size=0x10) addr:0x020db1d4
_ZN18UnkStruct_027e0d3411TryItemGiveEi kind:function(arm,size=0x10) addr:0x020db1d4
_ZN18UnkStruct_027e0d3419func_ov031_020d9844Ev kind:function(arm,size=0x10) addr:0x020db1e4
func_ov031_020db1f4 kind:function(arm,size=0x34) addr:0x020db1f4
func_ov031_020db228 kind:function(arm,size=0x34) addr:0x020db228
@@ -1527,43 +1527,43 @@ func_ov031_0210491c kind:function(arm,size=0x40) addr:0x0210491c
func_ov031_0210495c kind:function(arm,size=0x30) addr:0x0210495c
func_ov031_0210498c kind:function(arm,size=0x224) addr:0x0210498c
_ZN19func_ov031_02104bb0D0Ev kind:function(arm,size=0x1c) addr:0x02104bb0
_ZN23MapObjectProfileUnkTRES10GetProfileEv kind:function(arm,size=0xc) addr:0x02104bcc
_ZN23MapObjectProfileUnkTRES6CreateEv kind:function(arm,size=0x24) addr:0x02104bd8
_ZN23MapObjectProfileUnkTRESC1Ev kind:function(arm,size=0x44) addr:0x02104bfc
_ZN16MapObjectUnkTRESC1Ev kind:function(arm,size=0x80) addr:0x02104c40
_ZN16MapObjectUnkTRES19func_ov031_02102f64Ev kind:function(arm,size=0x2c) addr:0x02104cc0
_ZN16MapObjectUnkTRES19func_ov031_02102f90Ev kind:function(arm,size=0x8) addr:0x02104cec
_ZN16MapObjectUnkTRES19func_ov031_02102f98Ev kind:function(arm,size=0xc) addr:0x02104cf4
_ZN16MapObjectUnkTRESD1Ev kind:function(arm,size=0x14) addr:0x02104d00
_ZN16MapObjectUnkTRESD0Ev kind:function(arm,size=0x1c) addr:0x02104d14
_ZN23MapObjectProfileUnkTRESD1Ev kind:function(arm,size=0x14) addr:0x02104d30
func_ov031_02104d44 kind:function(arm,size=0x28) addr:0x02104d44
func_ov031_02104d6c kind:function(arm,size=0x5c) addr:0x02104d6c
func_ov031_02104dc8 kind:function(arm,size=0x10) addr:0x02104dc8
func_ov031_02104dd8 kind:function(arm,size=0x80) addr:0x02104dd8
func_ov031_02104e58 kind:function(arm,size=0x14) addr:0x02104e58
_ZN19func_ov031_02104e6cD1Ev kind:function(arm,size=0x20) addr:0x02104e6c
_ZN19func_ov031_02104e8cD0Ev kind:function(arm,size=0x28) addr:0x02104e8c
_ZN19func_ov031_02104eb4D2Ev kind:function(arm,size=0x20) addr:0x02104eb4
func_ov031_02104ed4 kind:function(arm,size=0xdc) addr:0x02104ed4
func_ov031_02104fb0 kind:function(arm,size=0x2e0) addr:0x02104fb0
func_ov031_02105290 kind:function(arm,size=0x27c) addr:0x02105290
func_ov031_0210550c kind:function(arm,size=0x14) addr:0x0210550c
func_ov031_02105520 kind:function(arm,size=0xc) addr:0x02105520
func_ov031_0210552c kind:function(arm,size=0x94) addr:0x0210552c
func_ov031_021055c0 kind:function(arm,size=0x14) addr:0x021055c0
func_ov031_021055d4 kind:function(arm,size=0x1c) addr:0x021055d4
func_ov031_021055f0 kind:function(arm,size=0x3b4) addr:0x021055f0
func_ov031_021059a4 kind:function(arm,size=0xe8) addr:0x021059a4
func_ov031_02105a8c kind:function(arm,size=0x108) addr:0x02105a8c
func_ov031_02105b94 kind:function(arm,size=0x100) addr:0x02105b94
func_ov031_02105c94 kind:function(arm,size=0x8) addr:0x02105c94
func_ov031_02105c9c kind:function(arm,size=0x8) addr:0x02105c9c
func_ov031_02105ca4 kind:function(arm,size=0x58) addr:0x02105ca4
func_ov031_02105cfc kind:function(arm,size=0x28) addr:0x02105cfc
func_ov031_02105d24 kind:function(arm,size=0x2c) addr:0x02105d24
func_ov031_02105d50 kind:function(arm,size=0xc) addr:0x02105d50
_ZN19func_ov031_02105d5cD0Ev kind:function(arm,size=0x1c) addr:0x02105d5c
_ZN31MapObjectProfileTreasureSpawned10GetProfileEv kind:function(arm,size=0xc) addr:0x02104bcc
_ZN31MapObjectProfileTreasureSpawned6CreateEv kind:function(arm,size=0x24) addr:0x02104bd8
_ZN31MapObjectProfileTreasureSpawnedC1Ev kind:function(arm,size=0x44) addr:0x02104bfc
_ZN24MapObjectTreasureSpawnedC1Ev kind:function(arm,size=0x80) addr:0x02104c40
_ZN24MapObjectTreasureSpawned8vfunc_3CEv kind:function(arm,size=0x2c) addr:0x02104cc0
_ZN24MapObjectTreasureSpawned8vfunc_40Ev kind:function(arm,size=0x8) addr:0x02104cec
_ZN24MapObjectTreasureSpawned8vfunc_54Ev kind:function(arm,size=0xc) addr:0x02104cf4
_ZN24MapObjectTreasureSpawnedD1Ev kind:function(arm,size=0x14) addr:0x02104d00
_ZN24MapObjectTreasureSpawnedD0Ev kind:function(arm,size=0x1c) addr:0x02104d14
_ZN31MapObjectProfileTreasureSpawnedD1Ev kind:function(arm,size=0x14) addr:0x02104d30
_ZN19MapObjectUnkTRES_74C1Ei kind:function(arm,size=0x28) addr:0x02104d44
_ZN19MapObjectUnkTRES_748vfunc_1CEP19UnkSystem4_vfunc_1C kind:function(arm,size=0x5c) addr:0x02104d6c
_ZN19MapObjectUnkTRES_7419func_ov031_0210306cEv kind:function(arm,size=0x10) addr:0x02104dc8
_ZN18MapObjectChestBaseC2Ei kind:function(arm,size=0x80) addr:0x02104dd8
_ZN19MapObjectUnkTRES_74D1Ev kind:function(arm,size=0x14) addr:0x02104e58
_ZN18MapObjectChestBaseD1Ev kind:function(arm,size=0x20) addr:0x02104e6c
_ZN18MapObjectChestBaseD0Ev kind:function(arm,size=0x28) addr:0x02104e8c
_ZN18MapObjectChestBaseD2Ev kind:function(arm,size=0x20) addr:0x02104eb4
_ZN18MapObjectChestBase8vfunc_00Ev kind:function(arm,size=0xdc) addr:0x02104ed4
_ZN18MapObjectChestBase8vfunc_04Ev kind:function(arm,size=0x2e0) addr:0x02104fb0
_ZN18MapObjectChestBase8vfunc_08Ev kind:function(arm,size=0x27c) addr:0x02105290
_ZN18MapObjectChestBase8vfunc_0CEv kind:function(arm,size=0x14) addr:0x0210550c
_ZN18MapObjectChestBase8vfunc_28Ev kind:function(arm,size=0xc) addr:0x02105520
_ZN18MapObjectChestBase19func_ov031_021037d0Ev kind:function(arm,size=0x94) addr:0x0210552c
_ZN18MapObjectChestBase19func_ov031_02103864Ev kind:function(arm,size=0x14) addr:0x021055c0
_ZN18MapObjectChestBase19func_ov031_02103878Ev kind:function(arm,size=0x1c) addr:0x021055d4
_ZN18MapObjectChestBase8vfunc_38Eii kind:function(arm,size=0x3b4) addr:0x021055f0
_ZN18MapObjectChestBase8vfunc_18EPcc kind:function(arm,size=0xe8) addr:0x021059a4
_ZN18MapObjectChestBase8vfunc_14Ev kind:function(arm,size=0x108) addr:0x02105a8c
_ZN18MapObjectChestBase8vfunc_3CEv kind:function(arm,size=0x100) addr:0x02105b94
_ZN18MapObjectChestBase8vfunc_40Ev kind:function(arm,size=0x8) addr:0x02105c94
_ZN18MapObjectChestBase8vfunc_44Ev kind:function(arm,size=0x8) addr:0x02105c9c
_ZN18MapObjectChestBase19func_ov031_02103f48Ev kind:function(arm,size=0x58) addr:0x02105ca4
_ZN18MapObjectChestBase8vfunc_4CEv kind:function(arm,size=0x28) addr:0x02105cfc
_ZN18MapObjectChestBase8vfunc_50Ev kind:function(arm,size=0x2c) addr:0x02105d24
_ZN18MapObjectChestBase8vfunc_54Ev kind:function(arm,size=0xc) addr:0x02105d50
_ZN19MapObjectUnkTRES_74D0Ev kind:function(arm,size=0x1c) addr:0x02105d5c
_ZN23MapObjectProfileUnkTRED10GetProfileEv kind:function(arm,size=0xc) addr:0x02105d78
_ZN23MapObjectProfileUnkTRED6CreateEv kind:function(arm,size=0x24) addr:0x02105d84
_ZN23MapObjectProfileUnkTREDC1Ev kind:function(arm,size=0x44) addr:0x02105da8
@@ -2108,8 +2108,8 @@ __sinit_MapObjectUnkSTIR.cpp kind:function(arm,size=0x50) addr:0x02113b34
__sinit_MapObjectUnkGRSS.cpp kind:function(arm,size=0x90) addr:0x02113b84
__sinit_MapObjectUnkSWHT.cpp kind:function(arm,size=0x70) addr:0x02113c14
__sinit_MapObjectUnkBMFL.cpp kind:function(arm,size=0x50) addr:0x02113c84
__sinit_MapObjectUnkTRES.cpp kind:function(arm,size=0x6c) addr:0x02113cd4
__sinit_ov031_02113d40 kind:function(arm,size=0x30) addr:0x02113d40
__sinit_MapObjectTreasureSpawned.cpp kind:function(arm,size=0x6c) addr:0x02113cd4 local
__sinit_MapObjectChestBase.cpp kind:function(arm,size=0x30) addr:0x02113d40
__sinit_MapObjectUnkTRED.cpp kind:function(arm,size=0x6c) addr:0x02113d70
__sinit_MapObjectUnkTREW.cpp kind:function(arm,size=0x6c) addr:0x02113ddc
__sinit_MapObjectUnkTREN.cpp kind:function(arm,size=0x6c) addr:0x02113e48
@@ -2172,8 +2172,8 @@ __sinit_MapObjectUnkSWFS.cpp kind:function(arm,size=0x70) addr:0x021144b0
.p__sinit_MapObjectUnkGRSS.cpp kind:data(word) addr:0x021145c0
.p__sinit_MapObjectUnkSWHT.cpp kind:data(word) addr:0x021145c4
.p__sinit_MapObjectUnkBMFL.cpp kind:data(word) addr:0x021145c8
.p__sinit_MapObjectUnkTRES.cpp kind:data(word) addr:0x021145cc
.p__sinit_ov031_02113d40 kind:data(word) addr:0x021145d0
.p__sinit_MapObjectTreasureSpawned.cpp kind:data(word) addr:0x021145cc local
.p__sinit_MapObjectChestBase.cpp kind:data(word) addr:0x021145d0
.p__sinit_MapObjectUnkTRED.cpp kind:data(word) addr:0x021145d4
.p__sinit_MapObjectUnkTREW.cpp kind:data(word) addr:0x021145d8
.p__sinit_MapObjectUnkTREN.cpp kind:data(word) addr:0x021145dc
@@ -2439,13 +2439,13 @@ data_ov031_02117440 kind:data(any) addr:0x02117440
data_ov031_02117480 kind:data(any) addr:0x02117480
data_ov031_0211749c kind:data(any) addr:0x0211749c
data_ov031_02117500 kind:data(any) addr:0x02117500
data_ov031_02117524 kind:data(any) addr:0x02117524
data_ov031_02117534 kind:data(any) addr:0x02117534
data_ov031_02117550 kind:data(any) addr:0x02117550
data_ov031_021157b0 kind:data(any) addr:0x02117524 local
_ZTV31MapObjectProfileTreasureSpawned kind:data(any) addr:0x0211752c
_ZTV24MapObjectTreasureSpawned kind:data(any) addr:0x02117548
data_ov031_021175a4 kind:data(any) addr:0x021175a4
data_ov031_021175a8 kind:data(any) addr:0x021175a8
data_ov031_021175b8 kind:data(any) addr:0x021175b8
data_ov031_021175e4 kind:data(any) addr:0x021175e4
_ZTV19MapObjectUnkTRES_74 kind:data(any) addr:0x021175b0
_ZTV18MapObjectChestBase kind:data(any) addr:0x021175dc
data_ov031_02117638 kind:data(any) addr:0x02117638
data_ov031_02117648 kind:data(any) addr:0x02117648
data_ov031_02117664 kind:data(any) addr:0x02117664
@@ -2654,9 +2654,9 @@ data_ov031_0211983c kind:bss addr:0x0211983c
_ZGVN15ProfileInstanceI23MapObjectProfileUnkBMFLE8sProfileE kind:bss addr:0x0211985c
@30993 kind:bss addr:0x02119860
_ZN15ProfileInstanceI23MapObjectProfileUnkBMFLE8sProfileE kind:bss addr:0x0211986c
_ZGVN15ProfileInstanceI23MapObjectProfileUnkTRESE8sProfileE kind:bss addr:0x02119940
@30999 kind:bss addr:0x02119944
_ZN15ProfileInstanceI23MapObjectProfileUnkTRESE8sProfileE kind:bss addr:0x02119950
_ZGVN15ProfileInstanceI31MapObjectProfileTreasureSpawnedE8sProfileE kind:bss addr:0x02119940
@30999 kind:bss addr:0x02119944 local
_ZN15ProfileInstanceI31MapObjectProfileTreasureSpawnedE8sProfileE kind:bss addr:0x02119950
data_ov031_02119a24 kind:bss addr:0x02119a24
_ZGVN15ProfileInstanceI23MapObjectProfileUnkTREDE8sProfileE kind:bss addr:0x02119a9c
@31005 kind:bss addr:0x02119aa0
+2 -2
View File
@@ -147,7 +147,7 @@ _ZN19ActorProfileUnkGORYC1Ev kind:function(arm,size=0x60) addr:0x0211d8a8
_ZN12ActorUnkGORYC1Ev kind:function(arm,size=0xbc) addr:0x0211d908
_ZN12ActorUnkGORY19func_ov036_0211bc20Ev kind:function(arm,size=0x64) addr:0x0211d9c4
_ZN12ActorUnkGORY19func_ov036_0211bc84Ev kind:function(arm,size=0x2c) addr:0x0211da28
_ZN12ActorUnkGORY19func_ov036_0211bcb0Ev kind:function(arm,size=0x94) addr:0x0211da54
_ZN12ActorUnkGORY19func_ov036_0211bcb0Ei kind:function(arm,size=0x94) addr:0x0211da54
_ZN12ActorUnkGORYD0Ev kind:function(arm,size=0x38) addr:0x0211dae8
_ZN12ActorUnkGORYD2Ev kind:function(arm,size=0x30) addr:0x0211db20
_ZN19ActorProfileUnkGORYD1Ev kind:function(arm,size=0x14) addr:0x0211db50
@@ -206,7 +206,7 @@ _ZN12ActorUnkSHIT19func_ov036_0211d270Ev kind:function(arm,size=0x1c) addr:0x021
_ZN12ActorUnkSHIT19func_ov036_0211d28cEv kind:function(arm,size=0x1c) addr:0x0211f030
_ZN12ActorUnkSHIT19func_ov036_0211d2a8Ev kind:function(arm,size=0x34) addr:0x0211f04c
_ZN12ActorUnkSHIT19func_ov036_0211d2dcEv kind:function(arm,size=0x294) addr:0x0211f080
_ZN12ActorUnkSHIT19func_ov036_0211d570Ev kind:function(arm,size=0x1ec) addr:0x0211f314
_ZN12ActorUnkSHIT19func_ov036_0211d570Ei kind:function(arm,size=0x1ec) addr:0x0211f314
_ZN12ActorUnkSHIT19func_ov036_0211d75cEv kind:function(arm,size=0x18) addr:0x0211f500
_ZN12ActorUnkSHIT19func_ov036_0211d774Ev kind:function(arm,size=0x1c) addr:0x0211f518
_ZN12ActorUnkSHIT19func_ov036_0211d790Ev kind:function(arm,size=0xc) addr:0x0211f534
+4 -4
View File
@@ -9,12 +9,12 @@ _ZN9PlayerGet8vfunc_10Eii kind:function(arm,size=0x6fc) addr:0x021871b8
_ZN9PlayerGet8vfunc_18Eiii kind:function(arm,size=0x7c) addr:0x021878b4
_ZN22UnkStruct_PlayerGet_ecC1Ev kind:function(arm,size=0xc) addr:0x02187930
_ZN21UnkStruct_027e0ce0_3419func_ov110_02185d3cEi kind:function(thumb,size=0x66) addr:0x0218793c
_ZN11ItemManager19func_ov110_02185da4Ei kind:function(arm,size=0x10) addr:0x021879a4
_ZN11ItemManager19func_ov110_02185db4Ei kind:function(arm,size=0x10) addr:0x021879b4
_ZN11ItemManager16GetBmgIDFromItemEi kind:function(arm,size=0x10) addr:0x021879a4
_ZN11ItemManager18GetAdvFlagFromItemEi kind:function(arm,size=0x10) addr:0x021879b4
data_ov110_021879c8 kind:data(any) addr:0x021879c8
data_ov110_021879ca kind:data(any) addr:0x021879ca
data_ov110_021879e8 kind:data(any) addr:0x021879e8
data_ov110_02187bbc kind:data(any) addr:0x02187bbc
sBMGItemMap kind:data(any) addr:0x021879e8
sAdvFlagItemMap kind:data(any) addr:0x02187bbc
data_ov110_02187c44 kind:data(any) addr:0x02187c44 ambiguous
__sinit_PlayerGet.cpp kind:function(arm,size=0x2c) addr:0x02187d90
.p__sinit_PlayerGet.cpp kind:data(word) addr:0x02187dbc
+2 -2
View File
@@ -718,7 +718,7 @@ func_0201491c kind:function(thumb,size=0x2c) addr:0x0201491c
func_02014948 kind:function(thumb,size=0x50) addr:0x02014948
_ZN14OverlayManager13func_02014994Ei kind:function(thumb,size=0x7c) addr:0x02014998
func_02014a14 kind:function(arm,size=0x24) addr:0x02014a14
func_02014a38 kind:function(arm,size=0xcc) addr:0x02014a38
_ZN18UnkStruct_02049bac13func_02014a34EPv kind:function(arm,size=0xcc) addr:0x02014a38
func_02014b04 kind:function(arm,size=0x54) addr:0x02014b04
func_02014b58 kind:function(arm,size=0x10) addr:0x02014b58
func_02014b68 kind:function(arm,size=0x1c) addr:0x02014b68
@@ -2759,7 +2759,7 @@ data_0204b0fc kind:bss addr:0x0204b0fc
data_02049b80 kind:bss addr:0x0204b100
data_02049ba0 kind:bss addr:0x0204b120
data_0204b128 kind:bss addr:0x0204b128
data_0204b12c kind:bss addr:0x0204b12c
data_02049bac kind:bss addr:0x0204b12c
data_0204b150 kind:bss addr:0x0204b150
data_0204b154 kind:bss addr:0x0204b154
data_0204b15c kind:bss addr:0x0204b15c
+37 -46
View File
@@ -18,46 +18,47 @@
#define OV040_ARM ARM
#endif
class Actor_5c_Base {
class ActorParams {
public:
/* 00 */ Vec3p mUnk_00;
/* 0C */ s16 mUnk_0C;
/* 0E */ unk16 mUnk_0E; // padding?
/* 10 */
Actor_5c_Base() {};
};
class Actor_5c : public Actor_5c_Base {
public:
/* 00 (base) */
// /* 04 */ STRUCT_PAD(0x04, 0x28);
// /* 28 */ unk32 mUnk_28;
Actor_5c() {};
void func_ov000_020975f8();
};
class Actor_5c_temp : public Actor_5c_Base {
public:
/* 00 (base) */
/* 10 */ unk16 mUnk_10[3];
/* 16 */ STRUCT_PAD(0x16, 0x28);
/* 00 */ Vec3p mInitialPos;
/* 0C */ s16 mInitialAngle;
/* 0E */ s8 mUnk_0E;
/* 0F */ bool mUnk_0F;
/* 10 */ u16 mParams[4];
/* 18 */ Vec2b mUnk_18;
/* 1A */ u16 mUnk_1A;
/* 1C */ union {
unk32 mUnk_1C;
u16 mUnk_1C_0;
u16 mUnk_1C_2;
};
/* 20 */ union {
unk32 mUnk_20;
unk16 mUnk_20_0;
unk16 mUnk_20_2;
};
/* 24 */ unk16 mUnk_24;
/* 26 */ union {
unk16 mUnk_26;
unk8 mUnk_26_0;
unk8 mUnk_26_1;
};
/* 28 */ unk32 mUnk_28;
/* 2C */ unk32 mUnk_2C;
/* 30 */
Actor_5c_temp() {};
void func_ov000_020975f8();
};
class UnkStruct_ov000_020b539c {
public:
/* 00 */ Actor_5c_Base mUnk_00[3];
/* 00 */ ActorParams mUnk_00;
/* 30 */ ActorProfile *mUnk_30;
/* 34 */
ActorProfile **func_ov000_02073dc();
ActorProfile **func_ov000_02073e8();
ActorProfile *func_ov000_020974dc(u32 id);
ActorProfile *GetProfileFromId(ActorId actorId);
};
typedef u32 ActorFlags;
@@ -123,23 +124,9 @@ public:
/* 52 */ u16 mUnk_52;
/* 54 */ unk32 mUnk_54;
/* 58 */ ActorFlags mFlags[1];
/* 5C */ Actor_5c mUnk_5C;
/* 6C */ u16 mUnk_6C; // actor user id?
/* 6E */ u16 mUnk_6E;
/* 70 */ u16 mUnk_70;
/* 70 */ u16 mUnk_72;
/* 74 */ u8 mUnk_74;
/* 74 */ u8 mUnk_75;
/* 76 */ u16 mUnk_76;
/* 78 */ u16 mUnk_78;
/* 7A */ unk16 mUnk_7A;
/* 7C */ unk32 mUnk_7C;
/* 80 */ s16 mUnk_80;
/* 80 */ unk16 mUnk_82;
/* 84 */ unk32 mUnk_84;
/* 88 */ unk32 mUnk_88;
/* 5C */ ActorParams mUnk_5C;
/* 8C */ ActorRef mRef;
/* 90 */ ActorProfile *mType;
/* 90 */ ActorProfile *mpProfile;
/* 94 */
/* 00 */ virtual void vfunc_00(Vec3p *param1);
@@ -170,6 +157,10 @@ public:
*(u32 *) this->mFlags = 0;
}
void Kill() {
UNSET_FLAG(this->mFlags, ActorFlag_Alive);
}
Actor();
ActorId GetActorId();
@@ -195,9 +186,9 @@ public:
s32 func_ov000_020985f0(void *param1);
void func_ov000_0209862c(unk32 param1);
void func_ov000_020973f4(UnkStruct_ov000_020b539c *param1, ActorId param2, Actor_5c *param3, unk32 param4);
void func_ov000_020973f4(UnkStruct_ov000_020b539c *param1, ActorId param2, Actor_5c *param3);
void func_ov000_020973f4(UnkStruct_ov000_020b539c *param1, ActorId param2, Actor_5c param3);
void func_ov000_020973f4(UnkStruct_ov000_020b539c *param1, ActorId param2, ActorParams *param3, unk32 param4);
void func_ov000_020973f4(UnkStruct_ov000_020b539c *param1, ActorId param2, ActorParams *param3);
void func_ov000_020973f4(UnkStruct_ov000_020b539c *param1, ActorId param2, ActorParams param3);
void func_ov000_020989e0();
bool func_ov000_02098a60(unk32 param1);
+2 -1
View File
@@ -4,6 +4,7 @@
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "Item/Item.hpp"
#include "global.h"
#include "types.h"
@@ -28,7 +29,7 @@ public:
void func_ov036_0211bc20(void);
void func_ov036_0211bc84(void);
void func_ov036_0211bcb0(void);
ItemId func_ov036_0211bcb0(unk32 param1);
};
class ActorProfileUnkGORY : public ActorProfile_Derived1 {
+3 -1
View File
@@ -4,6 +4,7 @@
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "Item/Item.hpp"
#include "global.h"
#include "types.h"
@@ -20,7 +21,8 @@ public:
class ActorUnkKEYN : public Actor {
public:
/* 00 (base) */
/* 94 */
/* 94 */ STRUCT_PAD(0x94, 0xA0);
/* A0 */ ItemId mItemId;
ActorUnkKEYN();
+11 -7
View File
@@ -4,6 +4,7 @@
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "Item/Item.hpp"
#include "global.h"
#include "types.h"
@@ -19,8 +20,11 @@ public:
class ActorUnkSHIT : public Actor {
public:
/* 00 (base) */
/* 94 */
/* 000 (base) */
/* 094 */ STRUCT_PAD(0x94, 0xE4);
/* 0E4 */ ItemId mItemId;
/* 0E8 */ STRUCT_PAD(0xE8, 0x2D3);
/* 2D3 */ bool mUnk_2D3;
ActorUnkSHIT();
@@ -46,17 +50,17 @@ public:
void func_ov036_0211c9ac(void);
void func_ov036_0211c9cc(void);
void func_ov036_0211c9d4(void);
void func_ov036_0211cddc(void);
unk32 func_ov036_0211cddc(void);
void func_ov036_0211cdfc(void);
void func_ov036_0211ceec(void);
void func_ov036_0211d0a8(void);
u16 func_ov036_0211ceec(void);
unk32 func_ov036_0211d0a8(void);
void func_ov036_0211d22c(void);
void func_ov036_0211d254(void);
void func_ov036_0211d270(void);
void func_ov036_0211d28c(void);
void func_ov036_0211d2a8(void);
void func_ov036_0211d2dc(void);
void func_ov036_0211d570(void);
bool func_ov036_0211d2dc(void);
void func_ov036_0211d570(unk32 param1);
void func_ov036_0211d75c(void);
void func_ov036_0211d774(void);
void func_ov036_0211d790(void);
+3 -1
View File
@@ -4,6 +4,7 @@
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "Item/Item.hpp"
#include "global.h"
#include "types.h"
@@ -20,7 +21,8 @@ public:
class ActorUnkSZKU : public Actor {
public:
/* 00 (base) */
/* 94 */
/* 94 */ STRUCT_PAD(0x94, 0xA0);
/* A0 */ ItemId mItemId;
ActorUnkSZKU();
+6 -6
View File
@@ -126,11 +126,11 @@ enum ItemId_ {
/* 0x16 */ ItemId_SnowGlyph = 22,
/* 0x17 */ ItemId_OceanGlyph = 23,
/* 0x18 */ ItemId_FireGlyph = 24,
/* 0x19 */ ItemId_25 = 25,
/* 0x1A */ ItemId_26 = 26,
/* 0x1B */ ItemId_27 = 27,
/* 0x1C */ ItemId_28 = 28,
/* 0x1D */ ItemId_29 = 29,
/* 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,
@@ -221,7 +221,7 @@ enum ItemId_ {
};
#define MAX_TREASURE 99
typedef s16 TreasureType;
typedef s32 TreasureType;
enum TreasureType_ {
TreasureType_None = -1,
TreasureType_DemonFossil = 0,
+11 -7
View File
@@ -1,6 +1,7 @@
#pragma once
#include "Item/Item.hpp"
#include "Save/AdventureFlags.hpp"
#include "System/SysNew.hpp"
#include "global.h"
#include "types.h"
@@ -108,9 +109,11 @@ public:
unk32 func_ov000_020a8ab8();
unk32 func_ov000_020a8acc();
void func_ov001_020bb9f8();
bool func_ov110_02184a40(ItemId itemId);
static ItemId func_ov110_02185da4(ItemId itemId);
static ItemFlag func_ov110_02185db4(ItemId itemId);
static u32 GetBmgIDFromItem(ItemId itemId);
static AdventureFlag GetAdvFlagFromItem(ItemId itemId);
};
class TreasureManager : public ItemManager {
@@ -126,15 +129,16 @@ public:
TreasureManager();
~TreasureManager();
void func_ov000_020a9b10();
void func_ov000_020a9b2c();
void func_ov000_020a9b3c();
void func_ov000_020a9b4c();
void func_ov000_020a9b10(void *param1);
static unk32 func_ov000_020a9b2c(unk32 param1);
static unk32 func_ov000_020a9b3c(unk32 param1);
unk32 func_ov000_020a9b4c(unk32 param1);
bool func_ov000_020a9c4c(TreasureType type);
bool func_ov000_020a9c64();
unk32 func_ov000_020a9c90(TreasureType type);
bool func_ov000_020a9ca4(TreasureType type);
void func_ov000_020a9cbc(TreasureType type, s32 amount);
static u32 func_ov000_020a9cfc(u8 *param1, u8 param2);
static unk32 func_ov000_020a9d78(unk32 param1);
static unk32 func_ov000_020a9e14(unk32 param1);
static unk32 func_ov000_020a9eb0(unk32 param1);
@@ -142,7 +146,7 @@ public:
ItemId func_ov000_020aa02c(ItemId itemId);
void func_ov000_020aa0ac(ItemId itemId);
void func_ov000_020aa200();
void func_ov000_020aa210();
bool func_ov000_020aa210();
};
extern TreasureManager *data_ov000_020b6510;
+112
View File
@@ -0,0 +1,112 @@
#pragma once
#include "Item/Item.hpp"
#include "Save/AdventureFlags.hpp"
#include "global.h"
#include "types.h"
#include <nitro/math.h>
#define MAX_PRICECARDS 99
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
/* 10 */ LetterType_Unk_042 = 10, // AdventureFlag_Unk_042
/* 11 */ LetterType_Unk_043 = 11, // AdventureFlag_Unk_043
/* 12 */ LetterType_Unk_044 = 12, // AdventureFlag_Unk_044
/* 13 */ LetterType_Unk_045 = 13, // AdventureFlag_Unk_045
/* 14 */ LetterType_ReceivedCarbens = 14, // AdventureFlag_ReceivedCarbensLetter
/* 15 */ LetterType_ReceivedNikos = 15, // AdventureFlag_ReceivedNikosLetter
/* 16 */ LetterType_ReceivedFerrus1 = 16, // AdventureFlag_ReceivedFerrusLetter1
/* 17 */ LetterType_ReceivedFerrus2 = 17, // AdventureFlag_ReceivedFerrusLetter2
/* 18 */ LetterType_ReceivedFerrus3 = 18, // AdventureFlag_ReceivedFerrusLetter3
/* 19 */ LetterType_ReceivedKagorons = 19, // AdventureFlag_ReceivedKagoronsLetter
/* 20 */ LetterType_Max = 20,
};
enum StampType_ {
/* -1 */ StampType_None = -1,
/* 0 */ StampType_TowerOfSpirits = 0,
/* 1 */ StampType_CastleTown = 1,
/* 2 */ StampType_OutsetVillage = 2,
/* 3 */ StampType_Mayscore = 3,
/* 4 */ StampType_WoodlandSanctuary = 4,
/* 5 */ StampType_AnoukiVillage = 5,
/* 6 */ StampType_SnowfallSanctuary = 6,
/* 7 */ StampType_PapuziaVillage = 7,
/* 8 */ StampType_IslandSanctuary = 8,
/* 9 */ StampType_GoronVillage = 9,
/* 10 */ StampType_ValleySanctuary = 10,
/* 11 */ StampType_DuneSanctuary = 11,
/* 12 */ StampType_WoodedTemple = 12,
/* 13 */ StampType_BlizzardTemple = 13,
/* 14 */ StampType_MarineTemple = 14,
/* 15 */ StampType_MountainTemple = 15,
/* 16 */ StampType_DesertTemple = 16,
/* 17 */ StampType_PirateHideout = 17,
/* 18 */ StampType_TradingPost = 18,
/* 19 */ StampType_IcySpring = 19,
/* 20 */ StampType_Max = 20,
};
class MiscAdvManager {
public:
/* 00 */ u16 mStampDates[StampType_Max];
/* 28 */ u16 mUnk_28;
/* 2A */ u16 mPostDate;
/* 2C */ Vec2b mStampPositions[StampType_Max];
/* 54 */ s8 mObtainedLetters[LetterType_Max];
/* 68 */ s8 mObtainedStamps[StampType_Max];
/* 7C */ u8 mLastRandomNum;
/* 7D */ u8 mRandomNum;
/* 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?
/* 84 */ unk32 mLettersRead; // bitfield
/* 88 */ unk32 mStampsFlag; // bitfield, related to the checkmarks from the stampbook
/* 8C */ unk16 mSongs; // bitfield
/* 8E */ unk16 mUnk_8E; // pad?
/* 90 */
MiscAdvManager();
~MiscAdvManager();
bool GotMaxPriceCards() {
return this->GetNumPostcards() >= MAX_PRICECARDS ? true : false;
}
void func_ov024_020d6310(MiscAdvManager *pSrc);
void GiveLetterOrPriceCard(ItemId itemId);
void GiveLetter(AdventureFlag_Half flag);
unk32 GetObtainedLetterCount();
bool GotUnreadLetters();
unk32 func_ov024_020d6468();
unk32 GetStamp(unk32 index);
u16 *GetStampDate(unk32 index);
Vec2b *GetStampPos(unk32 index);
void func_ov024_020d64b4(unk32 param1, unk32 param2, u16 *param3);
void func_ov024_020d6530();
unk32 GetNumPostcards();
void GivePriceCard(unk32 amount);
void PostPriceCard(unk32 amount, unk32 param2);
void func_ov024_020d6610();
static MiscAdvManager *Create();
static void SetInstance(MiscAdvManager *pInstance);
static int ClearInstance();
};
extern MiscAdvManager *gpMiscAdvManager;
+1 -1
View File
@@ -201,7 +201,7 @@ DEFINE_MAP_OBJECT_TYPE('TRDT', TRDT)
DEFINE_MAP_OBJECT_TYPE('TRED', TRED)
DEFINE_MAP_OBJECT_TYPE('TREE', TREE)
DEFINE_MAP_OBJECT_TYPE('TREN', TREN)
DEFINE_MAP_OBJECT_TYPE('TRES', TRES)
DEFINE_MAP_OBJECT_TYPE('TRES', TreasureSpawned)
DEFINE_MAP_OBJECT_TYPE('TRET', TRET)
DEFINE_MAP_OBJECT_TYPE('TREW', TREW)
DEFINE_MAP_OBJECT_TYPE('TRFI', TRFI)
+3 -5
View File
@@ -95,7 +95,7 @@ public:
class MapObject_20 {
public:
/* 00 */ u16 mUnk_00[4];
/* 00 */ u16 mUnk_00[4]; // parameters
/* 08 */ u8 mUnk_08[2];
/* 0A */ u16 mUnk_0A[2];
/* 0E */ unk16 mUnk_0E;
@@ -125,7 +125,7 @@ public:
/* 1B */ unk8 mUnk_1B;
/* 1C */ MapObjFlags mFlags[1];
/* 1E */ unk16 mUnk_1E;
/* 20 */ MapObject_20 mUnk_20;
/* 20 */ MapObject_20 mUnk_20; // parameters
/* 38 */ unk8 mUnk_38;
/* 39 */ unk8 mUnk_39;
/* 3A */ Vec2b mUnk_3A;
@@ -133,7 +133,7 @@ public:
/* 40 */
// data_ov000_020b3590
/* 00 */ virtual bool vfunc_00();
/* 00 */ virtual bool vfunc_00(); // Init? the newly-created map object is deleted if this returns false
/* 04 */ virtual void vfunc_04();
/* 08 */ virtual void vfunc_08();
/* 0C */ virtual void vfunc_0C();
@@ -183,8 +183,6 @@ public:
bool func_ov000_0209d668();
void func_ov000_0209d6ac(Vec3p *param1);
void func_ov031_02103878();
static void func_ov000_0209d0bc(Vec2b *param1, MapObject *thisx);
static void func_ov000_0209d22c(unk16 *param1, MapObject *thisx, unk32 param2);
static void func_ov000_0209d54c(void *param1, MapObject *thisx, unk32 param2, Vec3p *param3, unk32 param4, unk32 param5);
+68
View File
@@ -0,0 +1,68 @@
#pragma once
#include "Item/Item.hpp"
#include "MapObject/MapObject.hpp"
#include "Unknown/Common.hpp"
#include "global.h"
#include "types.h"
class MapObjectTreasureSpawned_74 : public UnkSystem4 {
public:
/* 00 (base) */
/* 60 */ bool mUnk_60;
/* 61 */ unk8 mUnk_61; // pad?
/* 62 */ unk8 mUnk_62; // pad?
/* 63 */ unk8 mUnk_63; // pad?
/* 64 */
MapObjectTreasureSpawned_74(unk32 param1);
// data_ov031_02115844
/* 00 */ virtual ~MapObjectTreasureSpawned_74() override {}
/* 1C */ virtual void vfunc_1C(UnkSystem4_vfunc_1C *param1) override;
void func_ov000_0209dde0(void);
void func_ov031_0210306c(void);
};
class MapObjectChestBase : public MapObject {
public:
/* 000 (base) */
/* 040 */ unk32 mUnk_040;
/* 044 */ unk32 mUnk_044;
/* 048 */ unk32 mUnk_048;
/* 04C */ unk8 mUnk_04C;
/* 04D */ unk8 mUnk_04D;
/* 04E */ unk8 mUnk_04E; // pad?
/* 04F */ unk8 mUnk_04F; // pad?
/* 050 */ MapObject_10 mUnk_050;
/* 074 */ MapObjectTreasureSpawned_74 mUnk_074;
/* 0D8 */ ItemId mItemId;
/* 0DC */ UnkSubStruct19 mUnk_0DC;
/* 154 */
MapObjectChestBase(unk32 param1); // func_ov031_0210307c
/* 00 */ virtual bool vfunc_00() override;
/* 04 */ virtual void vfunc_04() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C() override;
/* 14 */ virtual void vfunc_14() override;
/* 18 */ virtual void vfunc_18(s8 *param1, s8 param2) override;
/* 28 */ virtual ItemId vfunc_28() override;
/* 30 */ virtual ~MapObjectChestBase() override;
/* 38 */ virtual void vfunc_38(unk32 param1, unk32 param2);
/* 3C */ virtual unk32 vfunc_3C();
/* 40 */ virtual bool vfunc_40();
/* 44 */ virtual bool vfunc_44();
/* 4C */ virtual void vfunc_4C();
/* 50 */ virtual void vfunc_50();
/* 54 */ virtual Vec2p *vfunc_54();
/* 58 */
unk32 func_ov031_021037d0();
bool func_ov031_02103864();
void func_ov031_02103878();
void func_ov031_02103f48();
};
+4 -7
View File
@@ -4,12 +4,9 @@
#include "Unknown/UnkStruct_ov000_020b34c4.hpp"
#include "types.h"
typedef void (*UnkCallback_func_01fff4cc)(void *, void *);
#include <nitro/math.h>
struct UnkStruct_func_01fff498 {
u8 ptrIndex;
u8 valueIndex;
};
typedef void (*UnkCallback_func_01fff4cc)(void *, void *);
class MapObjectManager {
public:
@@ -29,12 +26,12 @@ public:
/* 6C */ void *mUnk_6C;
/* 70 */
MapObject *func_01fff498(UnkStruct_func_01fff498 param1);
MapObject *func_01fff498(Vec2b param1);
void func_01fff4cc(UnkCallback_func_01fff4cc param1, void *param2);
MapObject **func_01fff520(UnkStruct_ov000_020b34c4 *param1, MapObject **param2);
void func_01fff6d0(Vec3p *param1, s32 *param2, s32 *param3);
void func_ov000_0209c3a8();
MapObjectId func_ov000_0209c3a8(Vec2b *param1);
void func_ov000_0209c3e8();
void func_ov000_0209c444();
+1 -1
View File
@@ -24,7 +24,7 @@ public:
/* 0E */ unk8 mUnk_0E;
/* 0F */ u8 mUnk_0F;
/* 10 */ MapObjectId mMapObjId;
/* 14 */ unk32 mUnk_14;
/* 14 */ MapObjectId mUnk_14;
/* 18 */ unk32 mUnk_18;
/* 1C */ unk8 mUnk_1C;
/* 1D */ unk8 mUnk_1D;
@@ -0,0 +1,33 @@
#pragma once
#include "MapObject/MapObjectChestBase.hpp"
#include "MapObject/MapObjectProfile.hpp"
class MapObjectTreasureSpawned : public MapObjectChestBase {
public:
/* 00 (base) */
MapObjectTreasureSpawned();
// data_ov031_021157dc
/* 30 */ virtual ~MapObjectTreasureSpawned() override;
/* 3C */ virtual unk32 vfunc_3C() override;
/* 40 */ virtual bool vfunc_40() override;
/* 54 */ virtual Vec2p *vfunc_54() override;
void func_ov031_02102f64(void);
void func_ov031_02102f90(void);
void func_ov031_02102f98(void);
};
class MapObjectProfileTreasureSpawned : public MapObjectProfile_Derived2 {
public:
/* 00 (base) */
MapObjectProfileTreasureSpawned();
~MapObjectProfileTreasureSpawned();
/* 0C */ virtual MapObject *Create();
static MapObjectProfileTreasureSpawned *GetProfile();
};
-34
View File
@@ -1,34 +0,0 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "MapObject/MapObject.hpp"
#include "MapObject/MapObjectProfile.hpp"
#include "global.h"
#include "types.h"
class MapObjectUnkTRES : public MapObject {
public:
/* 00 (base) */
/* 40 */
MapObjectUnkTRES();
/* 30 */ virtual ~MapObjectUnkTRES() override;
void func_ov031_02102f64(void);
void func_ov031_02102f90(void);
void func_ov031_02102f98(void);
};
class MapObjectProfileUnkTRES : public MapObjectProfile {
public:
/* 00 (base) */
MapObjectProfileUnkTRES();
~MapObjectProfileUnkTRES();
/* 0C */ virtual MapObject *Create();
static MapObjectProfileUnkTRES *GetProfile();
};
+3 -2
View File
@@ -10,7 +10,8 @@
class MapObjectUnkWDST : public MapObject {
public:
/* 00 (base) */
/* 40 */
/* 40 */ STRUCT_PAD(0x40, 0xB8);
/* B8 */ unk32 mUnk_B8;
MapObjectUnkWDST();
@@ -34,7 +35,7 @@ public:
void func_ov094_02172ae0(void);
void func_ov094_02172af4(void);
void func_ov094_02172bfc(void);
void func_ov094_02172c94(void);
void func_ov094_02172c94(unk32 param1);
void func_ov094_0217310c(void);
void func_ov094_021731e4(void);
void func_ov094_02173464(void);
+36
View File
@@ -10,6 +10,42 @@
#define BMG_GET_MSG_ADDR(pGroups, flags) \
((u32) (pGroups)->entries[(flags) >> 0x10].pDAT1 + (BMG_GET_MSG_OFFSET((pGroups), (flags)) & ~1))
#define BMG_ID(group, infIndex) (((group) << 16) | (infIndex))
enum BMGGroup_ {
BMGGroup_regular = 0x00,
BMGGroup_select = 0x02,
BMGGroup_maingame = 0x03,
BMGGroup_battle_parent = 0x04,
BMGGroup_battle_common = 0x05,
BMGGroup_field = 0x07,
BMGGroup_dungeon = 0x08,
BMGGroup_train = 0x09,
BMGGroup_demo = 0x0A,
BMGGroup_castle = 0x0B,
BMGGroup_castle_town = 0x0C,
BMGGroup_tower = 0x0D,
BMGGroup_tower_lobby = 0x0E,
BMGGroup_forest = 0x0F,
BMGGroup_snow = 0x10,
BMGGroup_water = 0x11,
BMGGroup_flame = 0x12,
BMGGroup_intrain = 0x13,
BMGGroup_village = 0x14,
BMGGroup_collect = 0x15,
BMGGroup_demo01_05 = 0x16,
BMGGroup_demo06_10 = 0x17,
BMGGroup_demo11_15 = 0x18,
BMGGroup_demo16_20 = 0x19,
BMGGroup_demo21_25 = 0x1A,
BMGGroup_shop = 0x1B,
BMGGroup_flame_fld = 0x1C,
BMGGroup_post = 0x1D,
BMGGroup_desert = 0x1E,
BMGGroup_staff = 0x1F,
BMGGroup_train_extra = 0x20,
};
enum BMGTag {
/* "INF1" */ BMG_TAG_INF1 = '1FNI',
/* "FLW1" */ BMG_TAG_FLW1 = '1WLF',
+78 -4
View File
@@ -9,6 +9,80 @@
#include "Unknown/UnkStruct_ov000_0208f820.hpp"
#include <nitro/math.h>
enum GIModel_ {
GIModel_None = 0,
GIModel_stmp = 'stmp',
GIModel_shdA = 'shdA',
GIModel_rupR = 'rupR',
GIModel_trnd = 'trnd',
GIModel_litA = 'litA',
GIModel_stlb = 'stlb',
GIModel_keyB = 'keyB',
GIModel_ring = 'ring',
GIModel_gold = 'gold',
GIModel_bmst = 'bmst',
GIModel_makA = 'makA',
GIModel_bmrn = 'bmrn',
GIModel_ptmL = 'ptmL',
GIModel_star = 'star',
GIModel_poit = 'poit',
GIModel_cloB = 'cloB',
GIModel_crwn = 'crwn',
GIModel_rupL = 'rupL',
GIModel_mons = 'mons',
GIModel_swdA = 'swdA',
GIModel_beee = 'beee',
GIModel_makB = 'makB',
GIModel_szku = 'szku',
GIModel_keyN = 'keyN',
GIModel_srod = 'srod',
GIModel_pnec = 'pnec',
GIModel_frcY = 'frcY',
GIModel_prlA = 'prlA',
GIModel_poiF = 'poiF',
GIModel_bowB = 'bowB',
GIModel_sold = 'sold',
GIModel_apdM = 'apdM',
GIModel_hrtu = 'hrtu',
GIModel_poiD = 'poiD',
GIModel_poi5 = 'poi5',
GIModel_pflt = 'pflt',
GIModel_rbnt = 'rbnt',
GIModel_cloA = 'cloA',
GIModel_arst = 'arst',
GIModel_revY = 'revY',
GIModel_swdB = 'swdB',
GIModel_bomb = 'bomb',
GIModel_litD = 'litD',
GIModel_revP = 'revP',
GIModel_rupB = 'rupB',
GIModel_Lcmp = 'Lcmp',
GIModel_shdB = 'shdB',
GIModel_gdpf = 'gdpf',
GIModel_bmbM = 'bmbM',
GIModel_przC = 'przC',
GIModel_prlB = 'prlB',
GIModel_poiP = 'poiP',
GIModel_rupG = 'rupG',
GIModel_revR = 'revR',
GIModel_mrrn = 'mrrn',
GIModel_zola = 'zola',
GIModel_bowA = 'bowA',
GIModel_bmbL = 'bmbL',
GIModel_litC = 'litC',
GIModel_bowl = 'bowl',
GIModel_whip = 'whip',
GIModel_coin = 'coin',
GIModel_apdL = 'apdL',
GIModel_poiS = 'poiS',
GIModel_jade = 'jade',
GIModel_glon = 'glon',
GIModel_poiG = 'poiG',
GIModel_litB = 'litB',
};
u32 func_ov000_020a4c00(ItemId itemId);
struct UnkStruct_ov110_02185dc8 {
u16 mItemId;
u16 mItemFlag;
@@ -64,15 +138,15 @@ public:
class UnkStruct_PlayerGet_48 {
public:
/* 00 */ unk8 mUnk_00[0x40];
/* 00 */ unk32 mUnk_00;
/* 04 */ STRUCT_PAD(0x04, 0x40);
/* 40 */ unk16 mUnk_40;
/* 42 */ unk16 mUnk_42;
/* 43 */ unk8 mUnk_43;
/* 44 */ unk8 mUnk_44;
/* 45 */ unk8 mUnk_45;
/* 46 */ unk8 mUnk_46;
/* 47 */ unk8 mUnk_47;
/* 48 */ unk8 mUnk_48[0x5E - 0x48];
/* 48 */ STRUCT_PAD(0x48, 0x5E);
/* 5E */ unk16 mUnk_5E;
/* 60 */ unk8 mUnk_60;
/* 61 */ unk8 mUnk_61;
@@ -87,7 +161,7 @@ public:
/* 04C */ unk32 *mUnk_4C;
/* 050 */ UnkStruct_PlayerGet_50 *mUnk_50;
/* 054 */ UnkStruct_ov000_0208f820_04 mUnk_54;
/* 064 */ UnkStruct_PlayerGet_64 mUnk_64;
/* 064 */ UnkStruct_PlayerGet_64_2 mUnk_64;
/* 068 */ unk32 mUnk_68;
/* 06C */ unk32 mUnk_6C; // scale
/* 070 */ unk16 mUnk_70; // angle/rotation
+3 -3
View File
@@ -7,7 +7,7 @@
typedef u32 AdventureFlag;
typedef u16 AdventureFlag_Half;
enum AdventureFlag_ {
/* 0x000 */ AdventureFlag_Unk_000 = FLAG(0, 0),
/* 0x000 */ AdventureFlag_Nothing = FLAG(0, 0),
/* 0x001 */ AdventureFlag_Unk_001 = FLAG(0, 1),
/* 0x002 */ AdventureFlag_ObtainedSpiritTrain = FLAG(0, 2),
/* 0x003 */ AdventureFlag_ObtainedRecruitSword = FLAG(0, 3),
@@ -292,7 +292,7 @@ enum AdventureFlag_ {
/* 0x10D */ AdventureFlag_OpenedLargeDoorsTOS23F = FLAG(8, 13),
/* 0x10E */ AdventureFlag_Unk_10E = FLAG(8, 14),
/* 0x10F */ AdventureFlag_Unk_10F = FLAG(8, 15),
/* 0x110 */ AdventureFlag_Unk_110 = FLAG(8, 16),
/* 0x110 */ AdventureFlag_BoughtGoronShopQuiver = FLAG(8, 16),
/* 0x111 */ AdventureFlag_BoughtBombBagFromBeedle = FLAG(8, 17),
/* 0x112 */ AdventureFlag_WatchedFireLandVolcanoEruptionCS = FLAG(8, 18),
/* 0x113 */ AdventureFlag_PurchasedLumberFirstTime = FLAG(8, 19),
@@ -307,7 +307,7 @@ enum AdventureFlag_ {
/* 0x11C */ AdventureFlag_Unk_11C = FLAG(8, 28),
/* 0x11D */ AdventureFlag_Unk_11D = FLAG(8, 29),
/* 0x11E */ AdventureFlag_Unk_11E = FLAG(8, 30),
/* 0x11F */ ZeldaTextVisitPirateHideoutFirstTime = FLAG(8, 31),
/* 0x11F */ AdventureFlag_ZeldaTextVisitPirateHideoutFirstTime = FLAG(8, 31),
/* 0x120 */ AdventureFlag_Unk_120 = FLAG(9, 0),
/* 0x121 */ AdventureFlag_WadatsumiBoardsTrain2 = FLAG(9, 1),
+30 -11
View File
@@ -1,6 +1,7 @@
#pragma once
#include "Item/ItemManager.hpp"
#include "MainGame/MiscAdvManager.hpp"
#include "Save/AdventureFlags.hpp"
#include "System/SysNew.hpp"
#include "Unknown/UnkMemFuncs.h"
@@ -155,11 +156,7 @@ public:
/* 184 */ SaveUnknown184 mUnk_184;
/* C94 */ unk8 mUnk_C94[0x84];
/* D18 */ unk32 mUnk_D18;
/* D1C */ unk32 mUnk_D1C;
/* D20 */ unk16 mSongs;
/* D22 */ unk16 mUnk_D22;
/* C94 */ MiscAdvManager mMiscAdvManager;
/* D24 */ unk8 mUnk_00_SaveUnknownD24[0x48];
/* D6C */ unk8 mUnk_48_SaveUnknownD24[8];
/* D74 */ unk16 mUnk_50_SaveUnknownD24;
@@ -168,9 +165,9 @@ public:
/* D8C */
SaveUnknown14C() {
mUnk_D18 = 0;
mUnk_D1C = 0;
mSongs = 0;
this->mMiscAdvManager.mLettersRead = 0;
this->mMiscAdvManager.mStampsFlag = 0;
this->mMiscAdvManager.mSongs = 0;
MI_CpuFill32(0, this->mUnk_48_SaveUnknownD24, sizeof(this->mUnk_48_SaveUnknownD24));
this->mUnk_50_SaveUnknownD24 = 0;
}
@@ -361,10 +358,31 @@ public:
void func_ov019_020d1b14(unk32 param1);
};
class SaveManager_21C {
public:
/* 00 */ unk32 mUnk_00;
unk32 func_ov000_020a1000();
};
struct SaveManager_36 {
/* 00 */ u8 mKeyAmount;
/* 01 */ STRUCT_PAD(0x01, 0x08);
/* 08 */
};
struct SaveManager_00 {
/* 000 */ STRUCT_PAD(0x00, 0x36);
/* 036 */ SaveManager_36 mUnk_36[0x60];
/* 336 */
/* BB8 */
};
class SaveManager {
public:
/* 000 */ void *mUnk_000; // related to mUnk_184
/* 000 */ unk8 mUnk_004[0x204 - 0x004];
/* 000 */ SaveManager_00 *mUnk_000; // related to mUnk_184, allocated from func_ov001_020ba670
/* 004 */ unk32 mUnk_004;
/* 008 */ STRUCT_PAD(0x08, 0x204);
/* 204 */ unk16 mUnk_204;
/* 206 */ unk16 mUnk_206;
/* 208 */ unk16 mUnk_208;
@@ -374,7 +392,8 @@ public:
/* 210 */ unk32 mUnk_210;
/* 214 */ unk32 mUnk_214;
/* 218 */ SaveFile *mpSaveFile;
/* 21C */ unk8 mUnk_21C[0x23C - 0x21C];
/* 21C */ SaveManager_21C mUnk_21C;
/* 220 */ STRUCT_PAD(0x220, 0x23C);
/* 23C */ PTMF<SaveFile>::PTMFCallback mUnk_23C;
/* 244 */ unk32 mUnk_244;
+13 -1
View File
@@ -40,7 +40,7 @@ struct Random {
return (((this->GetRandomValue() >> 32) * (max - min)) >> 32) + min;
}
u32 ConditionalNext32(u32 value) {
u16 ConditionalNext16(u32 value) {
this->UpdateRandomValue();
u64 result = this->GetRandomValue() >> 32;
@@ -52,6 +52,18 @@ struct Random {
return result;
}
u32 ConditionalNext32(u32 value) {
this->UpdateRandomValue();
u32 result = this->GetRandomValue() >> 32;
if (value != 0) {
return ((u64) result * value) >> 32;
}
return result;
}
void Init();
};
+17
View File
@@ -0,0 +1,17 @@
#pragma once
#include "global.h"
#include "types.h"
class UnkStruct_02049bac {
public:
/* 00 */ unk32 mUnk_00;
UnkStruct_02049bac();
~UnkStruct_02049bac();
void func_02014a34(void *param1);
};
// some time system?
extern UnkStruct_02049bac data_02049bac;
+82 -5
View File
@@ -3,9 +3,76 @@
#include "global.h"
#include "types.h"
struct UnkStruct_func_ov000_0207029c {
/* 00 */ STRUCT_PAD(0x00, 0x1D);
/* 20 */ u8 mUnk_1D;
enum SaveCourseIndex_ {
SaveCourseIndex_None = 0xFF,
SaveCourseIndex_t_area0 = 0x00,
SaveCourseIndex_t_area1 = 0x01,
SaveCourseIndex_t_area2 = 0x02,
SaveCourseIndex_t_area3 = 0x03,
SaveCourseIndex_t_tutorial = 0x04,
SaveCourseIndex_t_forest = 0x05,
SaveCourseIndex_t_smarine = 0x06,
SaveCourseIndex_t_smount = 0x07,
SaveCourseIndex_t_smount2 = 0x08,
SaveCourseIndex_t_smount3 = 0x09,
SaveCourseIndex_t_eviltrain = 0x0A,
SaveCourseIndex_d_main = 0x0B,
SaveCourseIndex_d_main_f = 0x0C,
SaveCourseIndex_d_main_s = 0x0D,
SaveCourseIndex_d_main_a = 0x0E,
SaveCourseIndex_d_main_w = 0x0F,
SaveCourseIndex_d_tutorial = 0x10,
SaveCourseIndex_d_forest = 0x11,
SaveCourseIndex_d_snow = 0x12,
SaveCourseIndex_d_water = 0x13,
SaveCourseIndex_d_flame = 0x14,
SaveCourseIndex_d_sand = 0x15,
SaveCourseIndex_b_forest = 0x16,
SaveCourseIndex_b_snow = 0x17,
SaveCourseIndex_b_water = 0x18,
SaveCourseIndex_b_flame = 0x19,
SaveCourseIndex_b_sand = 0x1A,
SaveCourseIndex_b_deago = 0x1B,
SaveCourseIndex_b_last1 = 0x1C,
SaveCourseIndex_b_last2 = 0x1D,
SaveCourseIndex_b_last22 = 0x1E,
SaveCourseIndex_b_last23 = 0x1F,
SaveCourseIndex_f_hyral = 0x20,
SaveCourseIndex_f_htown = 0x21,
SaveCourseIndex_f_forest1 = 0x22,
SaveCourseIndex_f_snow = 0x23,
SaveCourseIndex_f_water = 0x24,
SaveCourseIndex_f_flame = 0x25,
SaveCourseIndex_f_flame5 = 0x26,
SaveCourseIndex_f_first = 0x27,
SaveCourseIndex_f_forest2 = 0x28,
SaveCourseIndex_f_snow2 = 0x29,
SaveCourseIndex_f_water2 = 0x2A,
SaveCourseIndex_f_flame2 = 0x2B,
SaveCourseIndex_f_sand = 0x2C,
SaveCourseIndex_f_tetsuo = 0x2D,
SaveCourseIndex_f_bridge = 0x2E,
SaveCourseIndex_f_bridge2 = 0x2F,
SaveCourseIndex_f_forest3 = 0x30,
SaveCourseIndex_f_water3 = 0x31,
SaveCourseIndex_f_ajito = 0x32,
SaveCourseIndex_f_ajito2 = 0x33,
SaveCourseIndex_f_flame3 = 0x34,
SaveCourseIndex_f_flame4 = 0x35,
SaveCourseIndex_f_rabbit = 0x36,
SaveCourseIndex_f_kakushi1 = 0x37,
SaveCourseIndex_f_kakushi2 = 0x38,
SaveCourseIndex_f_kakushi3 = 0x39,
SaveCourseIndex_f_kakushi4 = 0x3A,
SaveCourseIndex_f_pirate = 0x3B,
SaveCourseIndex_f_passenger = 0x3C,
SaveCourseIndex_f_trnnpc = 0x3D,
SaveCourseIndex_e3_train = 0x3E,
SaveCourseIndex_e3_dungeon = 0x3F,
SaveCourseIndex_e3_boss = 0x40,
SaveCourseIndex_e3_bossm = 0x41,
SaveCourseIndex_e3_smount = 0x42,
SaveCourseIndex_Max = 0x60,
};
struct UnkStruct_func_ov000_020702a8 {
@@ -13,14 +80,24 @@ struct UnkStruct_func_ov000_020702a8 {
/* 20 */ unk16 mUnk_20;
};
class CourseEntry {
public:
/* 00 */ STRUCT_PAD(0x00, 0x17);
/* 17 */ u8 mSaveCourseIndex;
/* 18 */ STRUCT_PAD(0x18, 0x1D);
/* 1D */ u8 mUnk_1D;
/* 1E */ STRUCT_PAD(0x1E, 0x2C);
/* 2C */
};
class UnkStruct_027e09a0 {
public:
/* 00 */ unk32 mUnk_00;
/* 00 */ CourseEntry **mUnk_00; // elements from courselist.clb
UnkStruct_027e09a0();
~UnkStruct_027e09a0();
UnkStruct_func_ov000_0207029c *func_ov000_0207029c(unk32 param1);
CourseEntry *func_ov000_0207029c(unk32 param1);
UnkStruct_func_ov000_020702a8 *func_ov000_020702a8(unk32 param1);
};
+3 -3
View File
@@ -204,9 +204,9 @@ class UnkStruct_WarpUnk1 : public UnkStruct_0204a060_Base {
public:
/* 00 (base) */
/* 24 */ STRUCT_PAD(0x24, 0x78);
/* 78 */ UnkStruct_SceneChange1 mUnk_78;
/* 8C */ unk32 mNextSceneIndex;
/* 90 */ STRUCT_PAD(0x90, 0xB4);
/* 78 */ UnkStruct_SceneChange1 mUnk_78; // current scene?
/* 8C */ UnkStruct_SceneChange1 mUnk_8C; // next scene
/* A0 */ STRUCT_PAD(0xA0, 0xB4);
/* B4 */ unk32 mSpawnTransitionType; // the behavior of Link when entering a new scene
};
+1
View File
@@ -6,6 +6,7 @@
class UnkStruct_027e0cec {
public:
void func_ov000_0209feac(unk32 param1, Vec3p *param2, unk32 param3, unk32 param4, unk32 param5);
void func_ov000_0209ff8c(UnkStruct_PlayerGet_ec *param1, unk32 param2, Vec3p *param3, unk32 param4);
void func_ov000_020a0000(UnkStruct_PlayerGet_ec *param1, void *param2, unk32 *param3, Vec3p *param4, unk32 param5);
void func_ov000_020a0110(UnkStruct_PlayerGet_ec *param1);
+16
View File
@@ -0,0 +1,16 @@
#pragma once
#include "global.h"
#include "types.h"
class UnkStruct_027e0cf8 {
public:
/* 00 */ unk32 mUnk_00;
UnkStruct_027e0cf8();
~UnkStruct_027e0cf8();
void func_ov024_020c7828(unk32 param1);
};
extern UnkStruct_027e0cf8 *data_027e0cf8;
+8
View File
@@ -1,16 +1,24 @@
#pragma once
#include "Item/Item.hpp"
#include "global.h"
#include "types.h"
class UnkStruct_027e0d34_04 {
public:
bool func_ov000_02093bc8(unk32 param1);
};
class UnkStruct_027e0d34 {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ UnkStruct_027e0d34_04 *mUnk_04;
UnkStruct_027e0d34();
~UnkStruct_027e0d34();
void func_ov031_020d9844();
bool TryItemGive(ItemId itemId);
};
extern UnkStruct_027e0d34 *data_027e0d34;
+16 -5
View File
@@ -78,12 +78,22 @@ public:
typedef void (*UnkCallback2)();
class BMGEntry {
public:
/* 00 */ SectionINF1 *mpINF1;
/* 04 */ SectionFLW1 *mpFLW1;
/* 08 */ SectionFLI1 *mpFLI1;
/* 0C */ SectionDAT1 *mpDAT1;
/* 10 */ unk32 mBMGGroup;
/* 14 */
};
class UnkStruct_ov000_020b504c_Sub3 : public SysObject {
public:
/* 00 */ SectionINF1 *mUnk_00;
/* 04 */ BMGHeader *mUnk_04;
/* 08 */ BMGHeader *mUnk_08;
/* 0C */ unk32 mUnk_0C;
/* 00 */ BMGEntry **mpBMGTable;
/* 04 */ BMGHeader **mUnk_04;
/* 08 */ BMGHeader **mUnk_08;
/* 0C */ SectionINF1 *mUnk_0C;
/* 10 */ unk32 mUnk_10;
/* 14 */
@@ -117,7 +127,7 @@ public:
void *func_ov000_02067bb4(unk32 param1);
UnkStruct_ov000_02067bc4 *func_ov000_02067bc4(unk32);
unk8 func_ov000_02067cf8(unk32 param1, unk32 param2, UnkStruct_ov000_02067bc4::UnkStruct1 *param3);
unk8 func_ov000_02067cf8(unk32 param1, unk32 param2, UnkStruct_ov000_02067bc4::UnkStruct1 *param3); // ShowText?
void func_ov000_02067e60(u8 param1, unk32 param2);
unk32 func_ov000_020682c0(unk32 param1);
@@ -134,4 +144,5 @@ public:
void func_ov001_020be6f4(void);
};
// gMessageManager?
extern UnkStruct_ov000_020b504c data_ov000_020b504c;
+37 -11
View File
@@ -26,19 +26,34 @@ public:
class UnkStruct_PlayerGet_64 {
public:
/* 00 */ unk32 mUnk_00;
/* 3C */ unk32 mUnk_3C;
/* 40 */ u16 mUnk_40;
UnkStruct_PlayerGet_64(unk32 *param1, unk32 param2);
UnkStruct_PlayerGet_64(void *param1, unk32 param2);
~UnkStruct_PlayerGet_64();
void func_ov000_0208a100();
};
class UnkStruct_PlayerGet_64_2 {
public:
/* 00 */ unk32 mUnk_00;
UnkStruct_PlayerGet_64_2(void *param1, unk32 param2);
~UnkStruct_PlayerGet_64_2();
void func_ov000_0208a100();
};
class UnkStruct_ov000_0208f820_28_98 {
public:
/* 00 */ unk8 mUnk_00[0x38];
/* 00 */ unk32 mUnk_00;
/* 00 */ unk32 mUnk_04;
/* 00 */ u16 mUnk_08;
/* 0C */ STRUCT_PAD(0x0C, 0x38);
/* 38 */ UnkStruct_PlayerGet_64 mUnk_38;
/* 3C */ unk32 mUnk_3C;
/* 40 */ u16 mUnk_40;
// /* 3C */ unk32 mUnk_3C;
// /* 40 */ u16 mUnk_40;
void func_ov093_0216f76c(Vec3p *param1, unk32 param2);
};
@@ -47,9 +62,7 @@ class UnkStruct_ov000_0208f820_28 {
public:
/* 00 */ STRUCT_PAD(0x00, 0x38);
/* 38 */ UnkStruct_PlayerGet_64 mUnk_38;
/* 3C */ unk32 mUnk_3C;
/* 40 */ u16 mUnk_40;
/* 42 */ STRUCT_PAD(0x42, 0x48);
/* 42 */ STRUCT_PAD(0x44, 0x48);
/* 48 */ unk32 mUnk_48;
/* 48 */ unk32 mUnk_4C;
/* 48 */ unk32 mUnk_50;
@@ -147,11 +160,19 @@ public:
class UnkStruct_ov000_0208f820_04 {
public:
/* 00 */ u8 mUnk_00[4];
/* 04 */ u8 mUnk_04[4];
/* 00 */ union {
u8 mUnk_00[4];
u16 mUnk_00_s16;
u32 mUnk_00_s32;
};
/* 04 */ union {
u8 mUnk_04[4];
u16 mUnk_04_s16;
u32 mUnk_04_s32;
};
/* 08 */ unk32 mUnk_08;
/* 0C */ ItemId mItemId;
/* 14 */
/* 10 */
UnkStruct_ov000_0208f820_04(unk32 param1, unk32 param2, unk32 param3, ItemId itemId) {
*(u32 *) this->mUnk_00 = param1;
@@ -163,6 +184,11 @@ public:
UnkStruct_ov000_0208f820_04() {}
};
class UnkStruct_ov000_0208f820_44 {
public:
void *mUnk_00;
};
class UnkStruct_ov000_0208f820 {
public:
/* 00 (vtable) */
@@ -182,7 +208,7 @@ public:
/* 38 */ Vec3p *mUnk_38;
/* 3C */ Vec3p *mUnk_3C;
/* 40 */ UnkStruct_ov000_0208f820_40 *mUnk_40;
/* 44 */ unk32 *mUnk_44;
/* 44 */ UnkStruct_ov000_0208f820_44 *mUnk_44;
/* 48 */
/* 00 */ virtual void vfunc_00();
+2 -2
View File
@@ -28,8 +28,8 @@ public:
~UnkStruct_ov000_020b5d34() {}
MapObjectProfile *func_ov000_0209c6b8(unk32 param1);
void func_ov000_0209c6f0();
MapObjectProfile *GetProfileFromId(MapObjectId mapObjId);
MapObject *CreateMapObject(MapObjectId mapObjId);
static unk32 func_ov000_0209c718(u32 param1);
};
@@ -1,15 +0,0 @@
#pragma once
#include "global.h"
#include "types.h"
class UnkStruct_ov024_020d86b0 {
public:
/* 00 */ STRUCT_PAD(0x00, 0x7E);
/* 7E */ s8 mNumPostcards; // current amount of postcards
/* 7F */ s8 mNumPostedCards; // current amount of posted postcards
/* 80 */ STRUCT_PAD(0x80, 0x90);
/* 90 */
};
extern UnkStruct_ov024_020d86b0 *data_ov024_020d86b0;
+1
View File
@@ -11,6 +11,7 @@
*/
#define GET_FLAG(arr, pos) (((arr)[((u32) (pos)) >> 5] & (1 << ((pos) & 0x1F))) != 0)
#define GET_FLAG2(var, pos) ((var) & (1 << pos))
#define SET_FLAG(arr, pos) ((arr)[((u32) (pos)) >> 5] |= 1 << ((pos) & 0x1F))
#define UNSET_FLAG(arr, pos) ((arr)[((u32) (pos)) >> 5] &= ~(1 << ((pos) & 0x1F)))
#define FLAG(index, pos) (((index) << 5) | ((pos) & 0x1F))
+4
View File
@@ -127,7 +127,11 @@ union Vec3p {
Vec3p() {}
Vec3p(Vec3p &from) {
#if __MWERKS__
this->coords = from.coords;
#else
*this = from;
#endif
}
Vec3p(q20 X, q20 Y, q20 Z) {
x = X;
+12 -12
View File
@@ -17,14 +17,14 @@ ARM Actor::Actor() {
this->mUnk_52 = 0;
this->mUnk_54 = 0;
this->ResetFlags();
this->mUnk_84 = 0;
this->mUnk_5C.mUnk_28 = 0;
this->mUnk_5C.func_ov000_020975f8();
this->mRef.Reset();
this->mType = NULL;
_MI_CpuCopy(&data_ov000_020b539c_eur.mUnk_00, &this->mUnk_5C, sizeof(data_ov000_020b539c_eur.mUnk_00));
this->mPos = this->mUnk_5C.mUnk_00;
this->mPrevPos = this->mUnk_5C.mUnk_00;
this->mAngle = this->mUnk_5C.mUnk_0C;
this->mpProfile = NULL;
_MI_CpuCopy(&data_ov000_020b539c_eur.mUnk_00, &this->mUnk_5C, sizeof(ActorParams));
this->mPos = this->mUnk_5C.mInitialPos;
this->mPrevPos = this->mUnk_5C.mInitialPos;
this->mAngle = this->mUnk_5C.mInitialAngle;
SET_FLAGS(this->mFlags, ActorFlag_Alive, ActorFlag_Visible, ActorFlag_Active, ActorFlag_14);
this->mUnk_44 = 0xFF;
this->mUnk_46 = 0;
@@ -42,7 +42,7 @@ ARM void Actor::func_ov000_0209848c(ActorProfile *param1) {
unk_1c = param1->mUnk_1C;
temp_r3 = &param1->mUnk_04;
this->mType = param1;
this->mpProfile = param1;
this->mUnk_30 = this->mUnk_34 = temp_r3;
this->mUnk_4E = unk_1c;
}
@@ -76,8 +76,8 @@ ARM void Actor::func_ov000_020984d0() {
}
ARM void Actor::func_ov000_020984f0() {
if (this->mUnk_80 >= 0) {
data_027e0cd8->func_ov000_02081ecc(this->mUnk_80, 1);
if (this->mUnk_5C.mUnk_24 >= 0) {
data_027e0cd8->func_ov000_02081ecc(this->mUnk_5C.mUnk_24, 1);
}
}
@@ -99,15 +99,15 @@ ARM Vec3p *Actor::func_ov000_0209853c(unk32 param1) {
}
ARM bool Actor::vfunc_04() {
return this->mType->mUnk_1E & 1;
return this->mpProfile->mUnk_1E & 1;
}
ARM unk16 Actor::vfunc_08() {
return this->mType->mUnk_1A;
return this->mpProfile->mUnk_1A;
}
ARM unk8 Actor::vfunc_0c() {
return this->mType->mUnk_18;
return this->mpProfile->mUnk_18;
}
// non-matching
+1 -1
View File
@@ -15,7 +15,7 @@ ARM ActorEventIcon::ActorEventIcon() {
}
ARM bool ActorEventIcon::vfunc_18(unk32 param1) {
this->mUnk_094.func_ov000_0206082c(0x5D, this->mUnk_6C);
this->mUnk_094.func_ov000_0206082c(0x5D, this->mUnk_5C.mParams[0]);
return true;
}
+11 -12
View File
@@ -21,11 +21,11 @@ ARM ActorProfileUnkSWOB::ActorProfileUnkSWOB() :
ARM ActorUnkSWOB::ActorUnkSWOB() {}
ARM bool ActorUnkSWOB::vfunc_18(unk32 param1) {
this->mUnk_9E = this->mUnk_78;
this->mUnk_94 = this->mUnk_6E;
this->mUnk_98 = this->mUnk_70;
this->mUnk_A0 = this->mUnk_9E + this->mUnk_6C;
this->mUnk_A2 = this->mUnk_75;
this->mUnk_9E = this->mUnk_5C.mUnk_1C_0;
this->mUnk_94 = this->mUnk_5C.mParams[1];
this->mUnk_98 = this->mUnk_5C.mParams[2];
this->mUnk_A0 = this->mUnk_9E + this->mUnk_5C.mParams[0];
this->mUnk_A2 = this->mUnk_5C.mUnk_18.y;
this->mUnk_9C = this->mUnk_9E;
if (this->func_ov000_02098a60(0)) {
@@ -61,30 +61,29 @@ ARM void ActorUnkSWOB::func_ov000_0209a9b4(unk32 param1) {
}
}
// https://decomp.me/scratch/cUf0c
ARM void ActorUnkSWOB::func_ov000_0209aa30(void) {
if (this->mUnk_4C == 1) {
return;
}
switch (this->mUnk_72) {
switch (this->mUnk_5C.mParams[3]) {
case 1:
data_ov000_020b5214.func_ov000_0206db44(0xA3);
break;
case 3:
data_ov000_020b5214.func_ov000_0206db44(0xA3);
s16 unk_78 = this->mUnk_78;
s16 unk_78 = this->mUnk_5C.mUnk_1C_0;
if (unk_78 > 0) {
data_027e0cd8->func_ov000_02081d7c((s16) (unk_78 - 1), this->mUnk_75, 1);
data_027e0cd8->func_ov000_02081d7c((s16) (unk_78 - 1), this->mUnk_5C.mUnk_18.y, 1);
}
break;
case 2: {
Vec3p temp;
Vec3p vec2;
Vec3p vec;
Actor_5c_temp AStack_7c;
u16 auStack_80[4];
ActorParams AStack_7c;
u16 auStack_80[2];
int j;
u32 i;
@@ -109,7 +108,7 @@ ARM void ActorUnkSWOB::func_ov000_0209aa30(void) {
if (j < 10) {
func_01ffedac(auStack_80, &vec);
func_01ffb9cc(&vec2, &vec);
func_01ffb9cc(&temp, &vec);
i--;
j++;
}
+6 -6
View File
@@ -30,11 +30,11 @@ ARM ActorUnkSWTM::~ActorUnkSWTM() {
// https://decomp.me/scratch/qkP8m
ARM bool ActorUnkSWTM::vfunc_18(unk32 param1) {
this->mUnk_9E = this->mUnk_78;
this->mUnk_98 = this->mUnk_70;
this->mUnk_A4 = this->mUnk_6E * 30;
this->mUnk_A0 = this->mUnk_9E + this->mUnk_6C;
this->mUnk_A2 = this->mUnk_75;
this->mUnk_9E = this->mUnk_5C.mUnk_1C_0;
this->mUnk_98 = this->mUnk_5C.mParams[2];
this->mUnk_A4 = this->mUnk_5C.mParams[1] * 30;
this->mUnk_A0 = this->mUnk_9E + this->mUnk_5C.mParams[0];
this->mUnk_A2 = this->mUnk_5C.mUnk_18.y;
this->mUnk_9C = this->mUnk_9E;
if (this->func_ov000_02098a60(0)) {
@@ -167,7 +167,7 @@ ARM unk32 ActorUnkSWTM::func_ov000_0209b038(void) {
break;
}
for (int i = 0; i < this->mUnk_6C; i++) {
for (int i = 0; i < this->mUnk_5C.mParams[0]; i++) {
if (!data_027e0cd8->func_ov000_02081e30(this->mUnk_9E + i, this->mUnk_A2)) {
return 0;
}
@@ -60,7 +60,7 @@ ARM ActorUnk_ov000_020a8bb0::ActorUnk_ov000_020a8bb0(UnkSystem4 *param1, unk32 p
ARM ActorUnk_ov000_020a8bb0::~ActorUnk_ov000_020a8bb0() {}
ARM bool ActorUnk_ov000_020a8bb0::vfunc_18(unk32 param1) {
if (this->mUnk_70 == 0 && this->func_ov000_020a8dd0()) {
if (this->mUnk_5C.mParams[2] == 0 && this->func_ov000_020a8dd0()) {
UNSET_FLAG(this->mFlags, ActorFlag_Alive);
}
@@ -80,11 +80,11 @@ ARM void ActorUnk_ov000_020a8bb0::vfunc_1c() {
}
ARM bool ActorUnk_ov000_020a8bb0::func_ov000_020a8db0() {
return data_027e0cd8->func_ov000_02081e30(this->mUnk_76, this->mUnk_74);
return data_027e0cd8->func_ov000_02081e30(this->mUnk_5C.mUnk_1A, this->mUnk_5C.mUnk_18.x);
}
ARM bool ActorUnk_ov000_020a8bb0::func_ov000_020a8dd0() {
return data_027e0cd8->func_ov000_02081e30(this->mUnk_78, this->mUnk_75);
return data_027e0cd8->func_ov000_02081e30(this->mUnk_5C.mUnk_1C_0, this->mUnk_5C.mUnk_18.y);
}
// non-matching
@@ -125,7 +125,7 @@ ARM void ActorUnk_ov000_020a8bb0::vfunc_b0() {
if (data_027e09b8->func_01ffd420() == 0) {
ActorUnk_vfunc_b0 auStack_60;
auStack_60.mUnk_24 = this;
auStack_60.mUnk_0C = this->mUnk_7C;
auStack_60.mUnk_0C = this->mUnk_5C.mUnk_20;
auStack_60.mUnk_14 = 0;
auStack_60.mUnk_18 = -1;
auStack_60.mUnk_1C = -1;
+218 -10
View File
@@ -1,12 +1,129 @@
#include "Item/ItemManager.hpp"
#include "Save/SaveManager.hpp"
#include "System/Random.hpp"
#include "Unknown/UnkMemFuncs.h"
#include "global.h"
extern ItemId data_ov000_020afde8[];
static const unk32 data_ov000_020afda8[] = {
0x0015007E, 0x0015007F, 0x00150080, 0x00150081, 0x00150082, 0x00150083, 0x00150084, 0x00150085,
0x00150086, 0x00150087, 0x00150088, 0x00150089, 0x0015008A, 0x0015008B, 0x0015008C, 0x0015008D,
};
ARM void TreasureManager::func_ov000_020a9b10() {}
ARM void TreasureManager::func_ov000_020a9b2c() {}
ARM void TreasureManager::func_ov000_020a9b3c() {}
ARM void TreasureManager::func_ov000_020a9b4c() {}
static const unk32 data_ov000_020afd68[] = {
0x0015006C, 0x0015006D, 0x0015006E, 0x0015006F, 0x00150070, 0x00150071, 0x00150072, 0x00150073,
0x00150074, 0x00150075, 0x00150076, 0x00150077, 0x00150078, 0x00150079, 0x0015007A, 0x0015007B,
};
static const ItemId data_ov000_020afde8[] = {
ItemId_DemonFossil, ItemId_StalfosSkull, ItemId_StarFragment, ItemId_BeeLarvae,
ItemId_WoodHeart, ItemId_DarkPearlLoop, ItemId_WhitePearlLoop, ItemId_RutoCrown,
ItemId_DragonScale, ItemId_PirateNecklace, ItemId_PalaceDish, ItemId_GoronAmber,
ItemId_MysticJade, ItemId_AncientCoin, ItemId_PricelessStone, ItemId_RegalRing,
};
// static const u8 data_ov000_020afe28 = 5;
// static const u8 data_ov000_020afe2c = 2;
// static const u8 data_ov000_020afe30 = 4;
// static const u8 data_ov000_020afe34 = 5;
extern u8 data_ov000_020afe28;
extern u8 data_ov000_020afe2c;
extern u8 data_ov000_020afe30;
extern u8 data_ov000_020afe34;
static const u8 data_ov000_020afe38[] = {0x32, 0x32};
static const u8 data_ov000_020afe3a[] = {0x32, 0x32};
static const u8 data_ov000_020afe3c[] = {0x32, 0x32};
static const u8 data_ov000_020afe3e[] = {0x32, 0x32};
static const u8 data_ov000_020afe40[] = {0x32, 0x32};
static const u8 data_ov000_020afe42[] = {0x14, 0x1E, 0x14, 0x1E};
static const u8 data_ov000_020afe46[] = {0x28, 0x0A, 0x05, 0x2D};
static const u8 data_ov000_020afe4a[] = {0x05, 0x1E, 0x19, 0x28};
static const u8 data_ov000_020afe4e[] = {0x1E, 0x1E, 0x0F, 0x19};
static const u8 data_ov000_020afe52[] = {0x0A, 0x1E, 0x28, 0x14};
static const u8 data_ov000_020afe56[] = {0x05, 0x1E, 0x14, 0x05, 0x28};
static const u8 data_ov000_020afe5b[] = {0x0A, 0x1E, 0x14, 0x0A, 0x1E};
static const u8 data_ov000_020afe60[] = {0x05, 0x1E, 0x05, 0x1E, 0x1E};
static const u8 data_ov000_020afe65[] = {0x14, 0x14, 0x0A, 0x0A, 0x28};
static const u8 data_ov000_020afe6a[] = {0x14, 0x28, 0x0F, 0x0F, 0x0A};
static const u8 data_ov000_020afe6f[] = {0x05, 0x1E, 0x14, 0x05, 0x28};
static const u8 data_ov000_020afe74[] = {0x1E, 0x0A, 0x14, 0x0A, 0x1E};
static const u8 data_ov000_020afe79[] = {0x05, 0x1E, 0x05, 0x1E, 0x1E};
static const u8 data_ov000_020afe7e[] = {0x28, 0x0A, 0x0A, 0x0A, 0x1E};
static const u8 data_ov000_020afe83[] = {0x0A, 0x28, 0x0F, 0x0F, 0x14};
static u8 *data_ov000_020b4e88[] = {
(u8 *) data_ov000_020afe42, (u8 *) data_ov000_020afe46, (u8 *) data_ov000_020afe4a,
(u8 *) data_ov000_020afe4e, (u8 *) data_ov000_020afe52,
};
static u8 *data_ov000_020b4e74[] = {
(u8 *) data_ov000_020afe5b, (u8 *) data_ov000_020afe60, (u8 *) data_ov000_020afe65,
(u8 *) data_ov000_020afe6a, (u8 *) data_ov000_020afe6f,
};
static u8 *data_ov000_020b4e9c[] = {
(u8 *) data_ov000_020afe3e, (u8 *) data_ov000_020afe3c, (u8 *) data_ov000_020afe3a,
(u8 *) data_ov000_020afe40, (u8 *) data_ov000_020afe38,
};
static u8 *data_ov000_020b4e60[] = {
(u8 *) data_ov000_020afe74, (u8 *) data_ov000_020afe79, (u8 *) data_ov000_020afe7e,
(u8 *) data_ov000_020afe83, (u8 *) data_ov000_020afe56,
};
extern u32 data_ov000_020afec4[];
extern u32 data_ov000_020afeb0[];
extern u32 data_ov000_020afea0[];
extern u32 data_ov000_020afe98[];
// static const u16 data_ov000_020afe88 = 0x01F4;
// static const u16 data_ov000_020afe8c = 0x0032;
// static const u16 data_ov000_020afe90 = 0x09C4;
// static const u16 data_ov000_020afe94 = 0x0096;
extern u16 data_ov000_020afe88;
extern u16 data_ov000_020afe8c;
extern u16 data_ov000_020afe90;
extern u16 data_ov000_020afe94;
ARM void TreasureManager::func_ov000_020a9b10(void *param1) {
_MI_CpuCopy(param1, this, sizeof(TreasureManager));
}
ARM unk32 TreasureManager::func_ov000_020a9b2c(unk32 param1) {
return data_ov000_020afda8[param1];
}
ARM unk32 TreasureManager::func_ov000_020a9b3c(unk32 param1) {
return data_ov000_020afd68[param1];
}
ARM unk32 TreasureManager::func_ov000_020a9b4c(unk32 param1) {
for (int i = 0; i < data_ov000_020afe34; i++) {
if (data_ov000_020afec4[i] == param1) {
return data_ov000_020afe8c;
}
}
for (int i = 0; i < data_ov000_020afe34; i++) {
if (data_ov000_020afeb0[i] == param1) {
return data_ov000_020afe94;
}
}
for (int i = 0; i < data_ov000_020afe34; i++) {
if (data_ov000_020afea0[i] == param1) {
return data_ov000_020afe88;
}
}
for (int i = 0; i < data_ov000_020afe2c; i++) {
if (data_ov000_020afe98[i] == param1) {
return data_ov000_020afe90;
}
}
return 0;
}
ARM bool TreasureManager::func_ov000_020a9c4c(TreasureType type) {
return this->mUnk_3C[type] >= 0;
@@ -56,10 +173,100 @@ ARM void TreasureManager::func_ov000_020a9cbc(TreasureType type, s32 amount) {
this->mUnk_3C[type] = newAmount;
}
ARM unk32 TreasureManager::func_ov000_020a9d78(unk32 param1) {}
ARM unk32 TreasureManager::func_ov000_020a9e14(unk32 param1) {}
ARM unk32 TreasureManager::func_ov000_020a9eb0(unk32 param1) {}
ARM unk32 TreasureManager::func_ov000_020a9f4c(unk32 param1) {}
ARM u32 TreasureManager::func_ov000_020a9cfc(u8 *param1, u8 param2) {
s32 uVar2 = gRandom.Next32(0, 100);
s32 iVar1 = 0;
for (int i = 0; i < param2; i++) {
iVar1 += param1[i];
if (uVar2 < (s32) iVar1) {
return i;
}
}
return param2;
}
ARM unk32 TreasureManager::func_ov000_020a9d78(unk32 param1) {
unk32 var_r0;
if (param1 < 0) {
var_r0 = gSaveManager.mUnk_21C.func_ov000_020a1000();
} else {
var_r0 = (u16) param1;
}
u8 temp_r4 = data_ov000_020afe34;
s32 temp_r0 = func_ov000_020a9cfc(data_ov000_020b4e74[var_r0], temp_r4);
if (temp_r0 < temp_r4) {
return data_ov000_020afec4[temp_r0];
}
u32 var_r3;
var_r3 = gRandom.ConditionalNext32(temp_r4);
return data_ov000_020afec4[var_r3];
}
ARM unk32 TreasureManager::func_ov000_020a9e14(unk32 param1) {
unk32 var_r0;
if (param1 < 0) {
var_r0 = gSaveManager.mUnk_21C.func_ov000_020a1000();
} else {
var_r0 = (u16) param1;
}
u8 temp_r4 = data_ov000_020afe28;
s32 temp_r0 = func_ov000_020a9cfc(data_ov000_020b4e60[var_r0], temp_r4);
if (temp_r0 < temp_r4) {
return data_ov000_020afeb0[temp_r0];
}
u32 var_r3;
var_r3 = gRandom.ConditionalNext32(temp_r4);
return data_ov000_020afeb0[var_r3];
}
ARM unk32 TreasureManager::func_ov000_020a9eb0(unk32 param1) {
unk32 var_r0;
if (param1 < 0) {
var_r0 = gSaveManager.mUnk_21C.func_ov000_020a1000();
} else {
var_r0 = (u16) param1;
}
u8 temp_r4 = data_ov000_020afe30;
s32 temp_r0 = func_ov000_020a9cfc(data_ov000_020b4e88[var_r0], temp_r4);
if (temp_r0 < temp_r4) {
return data_ov000_020afea0[temp_r0];
}
u32 var_r3;
var_r3 = gRandom.ConditionalNext32(temp_r4);
return data_ov000_020afea0[var_r3];
}
ARM unk32 TreasureManager::func_ov000_020a9f4c(unk32 param1) {
if ((s32) gRandom.Next32(0, 100) < 80) {
return TreasureManager::func_ov000_020a9eb0(param1);
}
unk32 var_r0;
if (param1 < 0) {
var_r0 = gSaveManager.mUnk_21C.func_ov000_020a1000();
} else {
var_r0 = (u16) param1;
}
u8 temp_r4 = data_ov000_020afe2c;
s32 temp_r0 = TreasureManager::func_ov000_020a9cfc(data_ov000_020b4e9c[var_r0], temp_r4);
if (temp_r0 < temp_r4) {
return data_ov000_020afe98[temp_r0];
}
u32 var_r3;
var_r3 = gRandom.ConditionalNext32(temp_r4);
return data_ov000_020afe98[var_r3];
}
ARM ItemId TreasureManager::func_ov000_020aa02c(ItemId itemId) {
switch (itemId) {
@@ -138,6 +345,7 @@ void TreasureManager::func_ov000_020aa200() {
data_ov000_020b6510 = this;
}
void TreasureManager::func_ov000_020aa210() {
bool TreasureManager::func_ov000_020aa210() {
data_ov000_020b6510 = NULL;
//! @bug: no return value
}
@@ -68,11 +68,11 @@ ARM unk32 MapObjectProfile::func_ov000_0209c8e4(MapObject_20 *param1) {
ARM void MapObjectProfile::func_ov000_0209c8ec(MapObjectProfile *thisx) {
if (thisx->mUnk_0F == 0) {
if (thisx->mUnk_14 != 0) {
thisx->func_ov000_0209c8ec(data_ov000_020b5d34.func_ov000_0209c6b8(thisx->mUnk_14));
thisx->func_ov000_0209c8ec(data_ov000_020b5d34.GetProfileFromId(thisx->mUnk_14));
}
if (thisx->mUnk_18 != 0) {
data_ov000_020b539c_eur.func_ov000_020974dc(thisx->mUnk_18)->vfunc_08();
data_ov000_020b539c_eur.GetProfileFromId(thisx->mUnk_18)->vfunc_08();
}
thisx->vfunc_08();
@@ -136,7 +136,7 @@ ARM MapObjectProfile_Derived2_20 *MapObjectProfile_Derived3::vfunc_04() {
}
ARM void MapObjectProfile_Derived3::vfunc_08() {
this->mUnk_20 = data_ov000_020b5d34.func_ov000_0209c6b8(this->mUnk_14)->vfunc_04();
this->mUnk_20 = data_ov000_020b5d34.GetProfileFromId(this->mUnk_14)->vfunc_04();
}
ARM MapObjectProfile_Derived4::MapObjectProfile_Derived4(MapObjectId mapObjId1, MapObjectId mapObjId2) :
+127
View File
@@ -0,0 +1,127 @@
#include "Item/Item.hpp"
#include "Player/PlayerGet.hpp"
#include "global.h"
const u32 data_ov000_020af58c[] = {
GIModel_None, // ItemId_Nothing
GIModel_shdA, // ItemId_NormalShield
GIModel_swdA, // ItemId_NormalSword
GIModel_trnd, // ItemId_Whirlwind
GIModel_bomb, // ItemId_BombBag
GIModel_bowA, // ItemId_NormalBow
GIModel_bmrn, // ItemId_Boomerang
GIModel_whip, // ItemId_Whip
GIModel_srod, // ItemId_SandRod
GIModel_None, // ItemId_9
GIModel_keyN, // ItemId_NormalKey
GIModel_keyB, // ItemId_BossKey
GIModel_rupG, // ItemId_GreenRupee
GIModel_rupB, // ItemId_BlueRupee
GIModel_rupR, // ItemId_RedRupee
GIModel_rupG, // ItemId_BigGreenRupee
GIModel_rupR, // ItemId_BigRedRupee
GIModel_rupL, // ItemId_BigGoldRupee
GIModel_frcY, // ItemId_ForceGem_18
GIModel_frcY, // ItemId_ForceGem_19
GIModel_frcY, // ItemId_ForceGem_20
GIModel_litA, // ItemId_ForestGlyph
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_FinalTrack
GIModel_None, // ItemId_31
GIModel_None, // ItemId_32
GIModel_None, // ItemId_33
GIModel_None, // ItemId_34
GIModel_frcY, // ItemId_ForceGem_35
GIModel_frcY, // ItemId_ForceGem_36
GIModel_frcY, // ItemId_ForceGem_37
GIModel_cloA, // ItemId_RecruitUniform
GIModel_ptmL, // ItemId_PostmasterLetter
GIModel_hrtu, // ItemId_HeartContainer
GIModel_apdM, // ItemId_QuiverMedium
GIModel_bmbM, // ItemId_BombBagMedium
GIModel_frcY, // ItemId_ForceGem_43
GIModel_frcY, // ItemId_ForceGem_44
GIModel_frcY, // ItemId_ForceGem_45
GIModel_frcY, // ItemId_ForceGem_46
GIModel_frcY, // ItemId_ForceGem_47
GIModel_frcY, // ItemId_ForceGem_48
GIModel_frcY, // ItemId_ForceGem_49
GIModel_frcY, // ItemId_ForceGem_50
GIModel_frcY, // ItemId_ForceGem_51
GIModel_frcY, // ItemId_ForceGem_52
GIModel_frcY, // ItemId_ForceGem_53
GIModel_frcY, // ItemId_ForceGem_54
GIModel_frcY, // ItemId_ForceGem_55
GIModel_frcY, // ItemId_ForceGem_56
GIModel_frcY, // ItemId_ForceGem_57
GIModel_frcY, // ItemId_ForceGem_58
GIModel_frcY, // ItemId_ForceGem_59
GIModel_frcY, // ItemId_ForceGem_60
GIModel_frcY, // ItemId_ForceGem_61
GIModel_pflt, // ItemId_PanFlute
GIModel_stmp, // ItemId_StampBook
GIModel_bowB, // ItemId_LightBow
GIModel_swdB, // ItemId_LokomoSword
GIModel_przC, // ItemId_TenPriceCard
GIModel_revR, // ItemId_RedPotion
GIModel_revP, // ItemId_PurplePotion
GIModel_revY, // ItemId_YellowPotion
GIModel_mons, // ItemId_DemonFossil
GIModel_stlb, // ItemId_StalfosSkull
GIModel_star, // ItemId_StarFragment
GIModel_beee, // ItemId_BeeLarvae
GIModel_mrrn, // ItemId_WoodHeart
GIModel_prlB, // ItemId_DarkPearlLoop
GIModel_prlA, // ItemId_WhitePearlLoop
GIModel_crwn, // ItemId_RutoCrown
GIModel_zola, // ItemId_DragonScale
GIModel_pnec, // ItemId_PirateNecklace
GIModel_bowl, // ItemId_PalaceDish
GIModel_glon, // ItemId_GoronAmber
GIModel_jade, // ItemId_MysticJade
GIModel_coin, // ItemId_AncientCoin
GIModel_gold, // ItemId_PricelessStone
GIModel_ring, // ItemId_RegalRing
GIModel_arst, // ItemId_ArrowsRefill
GIModel_bmst, // ItemId_BombsRefill
GIModel_sold, // ItemId_SoldOutSign
GIModel_shdB, // ItemId_AncientShield
GIModel_apdL, // ItemId_QuiverLarge
GIModel_bmbL, // ItemId_BombBagLarge
GIModel_None, // ItemId_RandCommonTreasure
GIModel_None, // ItemId_RandUncommonTreasure
GIModel_None, // ItemId_RandRareTreasure
GIModel_None, // ItemId_RandLegendaryTreasure
GIModel_szku, // ItemId_TearLight
GIModel_Lcmp, // ItemId_LightCompass
GIModel_makA, // ItemId_ScrollSpinAttack
GIModel_makB, // ItemId_ScrollBeam
GIModel_ptmL, // ItemId_LinebeckLetter
GIModel_gdpf, // ItemId_PanFluteSong_101
GIModel_gdpf, // ItemId_PanFluteSong_102
GIModel_gdpf, // ItemId_PanFluteSong_103
GIModel_gdpf, // ItemId_PanFluteSong_104
GIModel_gdpf, // ItemId_PanFluteSong_105
GIModel_rbnt, // ItemId_RabbitNet
GIModel_poit, // ItemId_BeedleCard
GIModel_poiS, // ItemId_SilverCard
GIModel_poiG, // ItemId_GoldCard
GIModel_poiP, // ItemId_PlatinumCard
GIModel_poiD, // ItemId_DiamondCard
GIModel_poiF, // ItemId_FreebieCard
GIModel_poi5, // ItemId_QuintupleCard
GIModel_ptmL, // ItemId_CarbenLetter
GIModel_cloA, // ItemId_RecruitUniform2
GIModel_cloB, // ItemId_EngineerUniform
};
ARM u32 func_ov000_020a4c00(ItemId itemId) {
return data_ov000_020af58c[itemId];
}
+3 -3
View File
@@ -126,7 +126,7 @@ THUMB void ActorManager::func_ov001_020bb018(UnkStruct_func_ov001_020bb018_param
if (func_01ffd3b0() != 0) {
iVar5 = data_027e09a4->mSceneIndex;
if (iVar5 == 0x3E) {
if (iVar5 == SceneIndex_f_rabbit) {
this->mUnk_34 = 0xFFFFECCD; // ~0x1332
}
@@ -154,7 +154,7 @@ THUMB void ActorManager::func_ov001_020bb018(UnkStruct_func_ov001_020bb018_param
auStack_28.func_ov000_02059270(0x24, "drop4", 0x2D200000);
auStack_28.func_ov000_02059270(0x25, "drop5", 0x2D200000);
UnkStruct_func_ov000_0207029c *ptr = data_027e09a0->func_ov000_0207029c(iVar5);
CourseEntry *ptr = data_027e09a0->func_ov000_0207029c(iVar5);
if ((ptr->mUnk_1D - 1) == 1) {
auStack_28.func_ov000_02059270(0x38, "mic_0", 0x35B00000);
auStack_28.func_ov000_02059270(0x39, "mic_1", 0x35B00000);
@@ -368,7 +368,7 @@ THUMB bool ActorManager::func_ov001_020bb728(s32 param1) {
THUMB void ActorManager::func_ov001_020bb7b0(ZeldaObjectList *pObjList) {
for (s32 i = 0; i < pObjList->nEntries; i++) {
u32 id = pObjList->aIdList[i];
ActorProfile *pActorProfile = data_ov000_020b539c_eur.func_ov000_020974dc(id);
ActorProfile *pActorProfile = data_ov000_020b539c_eur.GetProfileFromId(id);
if (!this->func_ov001_020bb728(id) && pActorProfile != NULL) {
pActorProfile->vfunc_08();
@@ -0,0 +1,23 @@
#include "Item/ItemManager.hpp"
#include "Save/SaveManager.hpp"
#include "System/OverlayManager.hpp"
#include "Unknown/UnkStruct_027e09a0.hpp"
#include "Unknown/UnkStruct_027e09a4.hpp"
THUMB void ItemManager::func_ov001_020bb9f8() {
if (data_027e09a4->mUnk_0C != 1 && gOverlayManager.mLoadedOverlays[OverlaySlot_10] != OverlayIndex_PlayerPhantom) {
this->mTearsAmount = 0;
}
CourseEntry *pEntry = data_027e09a0->func_ov000_0207029c(data_027e09a4->mSceneIndex);
if (pEntry->mSaveCourseIndex < SaveCourseIndex_Max) {
this->mKeyAmount = gSaveManager.mUnk_000->mUnk_36[pEntry->mSaveCourseIndex].mKeyAmount;
} else {
this->mKeyAmount = 0;
}
if (this->mKeyAmount > MAX_KEYS) {
this->mKeyAmount = MAX_KEYS;
}
}
+1 -1
View File
@@ -127,7 +127,7 @@ ARM SaveManager::SaveManager() {
this->mpSaveFile = NULL;
this->mUnk_244 = 0;
func_020327c8(this->mUnk_004, 0x1021);
func_020327c8(&this->mUnk_004, 0x1021);
this->mUnk_204 = OS_GetLockID();
int uVar8 = 1;
+1 -1
View File
@@ -63,7 +63,7 @@ ARM void UnkSubStruct9::func_ov019_020cbb40() {
if (this->IsPlayerNameSet()) {
this->mUnk_064.func_0201fb78(pSlotArray[this->mSaveSlotIndex].GetPlayerName());
} else {
this->mUnk_064.func_0201fa70(0x00020026);
this->mUnk_064.func_0201fa70(BMG_ID(BMGGroup_select, 0x26));
}
}
@@ -19,7 +19,7 @@ ARM void UnkSystem1_ov019_Derived1::vfunc_08(unk32 param1) {
ARM unk32 UnkSystem1_ov019_Derived1::vfunc_1C(u32 param1, unk32 param2, unk32 param3) {
if (param1 < 4) {
if (this->mUnk_04 <= 0) {
this->func_ov019_020c5590(0x0002001B, param2, param3);
this->func_ov019_020c5590(BMG_ID(BMGGroup_select, 0x1B), param2, param3);
this->mUnk_04++;
} else if (data_ov000_020b504c.func_ov000_02067bc4(this->mUnk_10)->vfunc_08() != 0) {
switch (this->mUnk_04) {
@@ -30,7 +30,7 @@ ARM unk32 UnkSystem1_ov019_Derived2::vfunc_1C(u32 param1, unk32 param2, unk32 pa
if (this->mUnk_04 <= 0) {
data_02049bd4.mUnk_04++;
UnkStruct_ov000_02067bc4::UnkStruct1 stack1;
this->mUnk_13 = data_ov000_020b504c.func_ov000_02067cf8(0x00020032, 0, &stack1);
this->mUnk_13 = data_ov000_020b504c.func_ov000_02067cf8(BMG_ID(BMGGroup_select, 0x32), 0, &stack1);
data_ov000_020b504c.func_ov000_02067bc4(0)->func_02021bec(1);
data_ov000_020b504c.func_ov000_02067bc4(this->mUnk_10)->func_02021c08();
this->mUnk_04++;
@@ -40,9 +40,9 @@ ARM unk32 UnkSystem1_ov019_Derived3::vfunc_1C(u32 param1, unk32 param2, unk32 pa
UnkStruct_ov000_02067bc4::UnkStruct1 stack1;
if (this->mUnk_18 == 0) {
this->mUnk_13 = data_ov000_020b504c.func_ov000_02067cf8(0x0002001E, 0, &stack1);
this->mUnk_13 = data_ov000_020b504c.func_ov000_02067cf8(BMG_ID(BMGGroup_select, 0x1E), 0, &stack1);
} else {
this->mUnk_13 = data_ov000_020b504c.func_ov000_02067cf8(0x00020028, 0, &stack1);
this->mUnk_13 = data_ov000_020b504c.func_ov000_02067cf8(BMG_ID(BMGGroup_select, 0x28), 0, &stack1);
}
data_ov000_020b504c.func_ov000_02067bc4(0)->func_02021bec(1);
+8 -8
View File
@@ -128,28 +128,28 @@ ARM FileSelectMain::FileSelectMain() :
mUnk_005C(5, 0x8E, 0, 1, 0x8E, 0),
mUnk_0100(BTN_ID_NONE, 0x89, 0, 0, 0x89, 0),
mUnk_0160(&mUnk_0100, 0x89, 0, 0x20012),
mUnk_0160(&mUnk_0100, 0x89, 0, BMG_ID(BMGGroup_select, 0x12)),
mUnk_0488(BTN_ID_FILE_SELECT_START, 0x8A, 0, 0x0D, 0x8A, 0),
mUnk_0520(&mUnk_0488, 0x8A, 0, 0x20016),
mUnk_0520(&mUnk_0488, 0x8A, 0, BMG_ID(BMGGroup_select, 0x16)),
mUnk_07E4(BTN_ID_FILE_SELECT_COPY, 0x8A, 1, 3, 0x8A, 2),
mUnk_0844(&mUnk_07E4, 0x8A, 2, 0x20014),
mUnk_0844(&mUnk_07E4, 0x8A, 2, BMG_ID(BMGGroup_select, 0x14)),
mUnk_0AC4(BTN_ID_FILE_SELECT_ERASE, 0x8A, 2, 4, 0x8A, 1),
mUnk_0B24(&mUnk_0AC4, 0x8A, 1, 0x20015),
mUnk_0B24(&mUnk_0AC4, 0x8A, 1, BMG_ID(BMGGroup_select, 0x15)),
mUnk_0DA4(BTN_ID_FILE_SELECT_ADVENTURE, 0x8B, 1, 0x0E, 0x8B, 1),
mUnk_0E3C(&mUnk_0DA4, 0x8B, 2, 0x20017),
mUnk_0E3C(&mUnk_0DA4, 0x8B, 2, BMG_ID(BMGGroup_select, 0x17)),
mUnk_11BC(BTN_ID_FILE_SELECT_BATTLE, 0x8B, 0, 0x0F, 0x8B, 0),
mUnk_1254(&mUnk_11BC, 0x8B, 0, 0x20018),
mUnk_1254(&mUnk_11BC, 0x8B, 0, BMG_ID(BMGGroup_select, 0x18)),
mUnk_15D4(BTN_ID_FILE_SELECT_CONTACT_MODE, 0x8B, 0, 0x10, 0x8B, 3),
mUnk_166C(&mUnk_15D4, 0x8B, 3, 0x20019),
mUnk_166C(&mUnk_15D4, 0x8B, 3, BMG_ID(BMGGroup_select, 0x19)),
mUnk_18EC(BTN_ID_FILE_SELECT_OPTIONS, 0x8B, 3, 0x11, 0x8B, 2),
mUnk_1984(&mUnk_18EC, 0x8B, 1, 0x2001A) {
mUnk_1984(&mUnk_18EC, 0x8B, 1, BMG_ID(BMGGroup_select, 0x1A)) {
stack_struct1 params;
params.param2 = NULL;
+4 -4
View File
@@ -56,9 +56,9 @@ ARM FileSelectMicTest::FileSelectMicTest() :
mUnk_3F8(0x8D, 0x01),
mUnk_630(1) {
this->mUnk_0C.mList.func_020166cc(&this->mUnk_304.mUnk_044.mUnk_04);
this->mUnk_020.func_0201f730(0x00020006);
this->mUnk_020.func_0201f730(BMG_ID(BMGGroup_select, 0x06));
this->mUnk_3F8.mUnk_14E = 1;
this->mUnk_3F8.func_0201f730(0x00020043);
this->mUnk_3F8.func_0201f730(BMG_ID(BMGGroup_select, 0x43));
volatile Vec2us result;
Vec2s fetch;
@@ -216,13 +216,13 @@ ARM void FileSelectMicTest::vfunc_14(unk8 *param1) {
if (this->mUnk_630 != 0) {
if (data_ov000_020b5340[5] == 0) {
this->mUnk_630 = 0;
this->mUnk_3F8.func_0201fa70(0x00020046);
this->mUnk_3F8.func_0201fa70(BMG_ID(BMGGroup_select, 0x46));
this->mUnk_270.func_ov019_020cf130();
}
} else {
if (data_ov000_020b5340[5] != 0) {
this->mUnk_630 = 1;
this->mUnk_3F8.func_0201fa70(0x00020043);
this->mUnk_3F8.func_0201fa70(BMG_ID(BMGGroup_select, 0x43));
}
}
}
+13 -13
View File
@@ -165,19 +165,19 @@ ARM FileSelectOptions::FileSelectOptions(s32 saveSlotIndex) :
mUnk_0024(&this->mUnk_0C, saveSlotIndex),
mUnk_10A8(BTN_ID_NONE, 0x8C, 0x01, 0x01, 0x8C, 0x01),
mUnk_1108(&mUnk_10A8, 0x8C, 0x00, 0x00020010),
mUnk_1108(&mUnk_10A8, 0x8C, 0x00, BMG_ID(BMGGroup_select, 0x10)),
mUnk_1388(BTN_ID_FILE_SELECT_MIC_TEST, 0x8C, 0x08, 0x14, 0x8C, 0x01),
mUnk_1420(&mUnk_1388),
mUnk_1470(&mUnk_1388, 0x8C, 0x07, 0x0002000B),
mUnk_1470(&mUnk_1388, 0x8C, 0x07, BMG_ID(BMGGroup_select, 0x0B)),
mUnk_16AC(BTN_ID_FILE_SELECT_CONFIRM, 0x8C, 0x0B, 0x12, 0x8C, 0x00),
mUnk_1744(&mUnk_16AC),
mUnk_1794(&mUnk_16AC, 0x8C, 0x08, 0x00020008),
mUnk_1794(&mUnk_16AC, 0x8C, 0x08, BMG_ID(BMGGroup_select, 0x08)),
mUnk_19D0(BTN_ID_RETURN, 0x8C, 0x0C, 0x13, 0x8C, 0x08),
mUnk_1A68(&mUnk_19D0),
mUnk_1AB8(&mUnk_19D0, 0x8C, 0x09, 0x00020007) {
mUnk_1AB8(&mUnk_19D0, 0x8C, 0x09, BMG_ID(BMGGroup_select, 0x07)) {
this->mUnk_1CF5 = false;
this->mUnk_0C.mList.func_020166cc(&this->mUnk_10A8.mUnk_04);
this->mUnk_0C.mList.func_020166cc(&this->mUnk_19D0.mUnk_04);
@@ -852,11 +852,11 @@ ARM void UnkStruct_ov019_020d24c8_2C_24::func_ov019_020ce6c8() {
ARM unk32 UnkStruct_ov019_020d24c8_2C_24::func_ov019_020ce704(u8 param1) {
switch (param1) {
case 0:
return 0x0002004C;
return BMG_ID(BMGGroup_select, 0x4C);
case 1:
return 0x0002004B;
return BMG_ID(BMGGroup_select, 0x4B);
case 2:
return 0x0002004A;
return BMG_ID(BMGGroup_select, 0x4A);
default:
break;
}
@@ -867,13 +867,13 @@ ARM unk32 UnkStruct_ov019_020d24c8_2C_24::func_ov019_020ce704(u8 param1) {
ARM unk32 UnkStruct_ov019_020d24c8_2C_24::func_ov019_020ce74c(u8 param1) {
switch (param1) {
case 0:
return 0x00020050;
return BMG_ID(BMGGroup_select, 0x50);
case 1:
return 0x0002004F;
return BMG_ID(BMGGroup_select, 0x4F);
case 2:
return 0x0002004D;
return BMG_ID(BMGGroup_select, 0x4D);
case 3:
return 0x0002004E;
return BMG_ID(BMGGroup_select, 0x4E);
default:
break;
}
@@ -884,9 +884,9 @@ ARM unk32 UnkStruct_ov019_020d24c8_2C_24::func_ov019_020ce74c(u8 param1) {
ARM unk32 UnkStruct_ov019_020d24c8_2C_24::func_ov019_020ce7a0(u8 param1) {
switch (param1) {
case 0:
return 0x00020049;
return BMG_ID(BMGGroup_select, 0x49);
case 1:
return 0x00020048;
return BMG_ID(BMGGroup_select, 0x48);
default:
break;
}
+1 -1
View File
@@ -169,7 +169,7 @@ ARM FileSelect_UnkClass7::FileSelect_UnkClass7() {
for (int i = 0; i < ARRAY_LEN(this->mUnk_004.mUnk_000); i++) {
this->mUnk_004.mUnk_000[i].func_ov000_0206082c(0x8F, data_ov019_020d1bcc[gRandom.Next32(0, 3)]);
u16 value = gRandom.ConditionalNext32(this->mUnk_004.mUnk_000[i].func_ov000_02060c28());
u16 value = gRandom.ConditionalNext16(this->mUnk_004.mUnk_000[i].func_ov000_02060c28());
this->mUnk_004.mUnk_000[i].func_ov000_02060bd8(value);
Vec2us pos;
+203
View File
@@ -0,0 +1,203 @@
#include "MainGame/MiscAdvManager.hpp"
#include "Item/ItemManager.hpp"
#include "System/SysNew.hpp"
#include "Unknown/UnkMemFuncs.h"
#include "Unknown/UnkStruct_02049bac.hpp"
extern "C" u8 func_ov000_020a9a50();
MiscAdvManager *MiscAdvManager::Create() {
return new(HeapIndex_1) MiscAdvManager();
}
MiscAdvManager::MiscAdvManager() {
MiscAdvManager::SetInstance(this);
this->mLettersRead = 0;
this->mStampsFlag = 0;
this->mSongs = 0;
}
MiscAdvManager::~MiscAdvManager() {
MiscAdvManager::ClearInstance();
}
void MiscAdvManager::func_ov024_020d6310(MiscAdvManager *pSrc) {
u16 local_10;
_MI_CpuCopy(pSrc, this, sizeof(MiscAdvManager));
data_02049bac.func_02014a34(&local_10);
if (local_10 == this->mUnk_28) {
return;
}
if (this->mNumPostedPriceCards == 0) {
this->func_ov024_020d6530();
}
}
void MiscAdvManager::GiveLetterOrPriceCard(ItemId itemId) {
AdventureFlag flag = ItemManager::GetAdvFlagFromItem(itemId);
if (flag - AdventureFlag_MetPostmanFirstLetter < LetterType_Max) {
this->GiveLetter(flag);
}
if (itemId == ItemId_TenPriceCard) {
this->GivePriceCard(10);
}
}
unk32 MiscAdvManager::GetObtainedLetterCount() {
u8 ret = 0;
for (u32 i = 0; i < ARRAY_LEN(this->mObtainedLetters); i++) {
if (this->mObtainedLetters[i] >= 0) {
ret++;
}
}
return ret;
}
bool MiscAdvManager::GotUnreadLetters() {
for (u32 i = 0; i < ARRAY_LEN(this->mObtainedLetters); i++) {
if (this->mObtainedLetters[i] >= 0 && !GET_FLAG2(this->mLettersRead, i)) {
return true;
}
}
return false;
}
void MiscAdvManager::GiveLetter(AdventureFlag_Half flag) {
s8 letterType = flag - AdventureFlag_MetPostmanFirstLetter;
u32 i;
for (i = 0; i < ARRAY_LEN(this->mObtainedLetters); i++) {
if (letterType == this->mObtainedLetters[i]) {
return;
}
// LetterType_None
if (this->mObtainedLetters[i] < 0) {
break;
}
}
if (i < ARRAY_LEN(this->mObtainedLetters)) {
this->mObtainedLetters[i] = letterType;
}
}
unk32 MiscAdvManager::func_ov024_020d6468() {
unk32 ret = 0;
for (u32 i = 0; i < ARRAY_LEN(this->mObtainedStamps); i++) {
if (this->mObtainedStamps[i] >= 0) {
ret++;
}
}
return ret;
}
unk32 MiscAdvManager::GetStamp(unk32 index) {
return this->mObtainedStamps[index];
}
u16 *MiscAdvManager::GetStampDate(unk32 index) {
return (u16 *) &this->mStampDates[index];
}
Vec2b *MiscAdvManager::GetStampPos(unk32 index) {
return (Vec2b *) &this->mStampPositions[index];
}
// non-matching
void MiscAdvManager::func_ov024_020d64b4(unk32 param1, unk32 param2, u16 *param3) {
if (param2 < 0) {
return;
}
if ((u32) param2 >= StampType_Max || (u32) param1 >= StampType_Max) {
return;
}
for (u32 i = 0; i < ARRAY_LEN(this->mObtainedStamps); i++) {
if (param1 == this->mObtainedStamps[i]) {
this->mObtainedStamps[i] = -1;
}
}
u16 local_18;
data_02049bac.func_02014a34((void *) &local_18);
this->mObtainedStamps[param2] = param1;
this->mStampDates[param2] = local_18;
*(u16 *) &this->mStampPositions[param2] = *param3;
}
void MiscAdvManager::func_ov024_020d6530() {
this->mLastRandomNum = this->mRandomNum;
this->mRandomNum = func_ov000_020a9a50();
data_02049bac.func_02014a34(&this->mUnk_28);
}
unk32 MiscAdvManager::GetNumPostcards() {
unk32 numPostcards = this->mNumPriceCards;
if (numPostcards < 0) {
numPostcards = 0;
}
return numPostcards;
}
void MiscAdvManager::GivePriceCard(unk32 amount) {
if (this->mNumPriceCards < 0) {
this->mNumPriceCards = 0;
}
if (this->mNumPriceCards + amount > MAX_PRICECARDS) {
this->mNumPriceCards = MAX_PRICECARDS;
} else {
this->mNumPriceCards += amount;
}
}
void MiscAdvManager::PostPriceCard(unk32 amount, unk32 param2) {
if (amount > this->mNumPriceCards) {
this->mNumPriceCards = 0;
} else {
this->mNumPriceCards -= amount;
}
if (this->mNumPostedPriceCards + amount > MAX_PRICECARDS) {
this->mNumPostedPriceCards = MAX_PRICECARDS;
} else {
this->mNumPostedPriceCards += amount;
}
u16 date;
data_02049bac.func_02014a34(&date);
this->mPostDate = date;
if (this->mUnk_80 == -1 || param2 < this->mUnk_80) {
this->mUnk_80 = param2;
}
}
void MiscAdvManager::func_ov024_020d6610() {
this->mNumPostedPriceCards = 0;
this->mUnk_80 = -1;
this->func_ov024_020d6530();
}
void MiscAdvManager::SetInstance(MiscAdvManager *pInstance) {
gpMiscAdvManager = pInstance;
}
int MiscAdvManager::ClearInstance() {
gpMiscAdvManager = NULL;
//! @bug: missing return
}
+17 -18
View File
@@ -5,6 +5,7 @@
#include "Unknown/UnkStruct_027e0cd8.hpp"
#include "Unknown/UnkStruct_027e0ce0.hpp"
#include "Unknown/UnkStruct_027e0cec.hpp"
#include "Unknown/UnkStruct_027e0d34.hpp"
extern "C" void func_01ffedac(u16 *, Vec3p *);
extern "C" void func_01fff05c(u32 *, UnkStruct_027e0cd8_0c *, Vec3p *);
@@ -14,9 +15,7 @@ extern "C" void func_ov017_020bf99c();
extern "C" void func_ov031_0210acd4(u8);
extern "C" unk32 func_ov031_0210af50(u16, unk32 *);
extern void func_ov031_0210b0e4(u16, unk32);
extern "C" unk32 func_ov031_020d9834(unk32 *);
extern unk32 *data_027e0d34;
extern Cylinder data_ov031_02113478;
ARM DECL_PROFILE(ActorProfileRupee);
@@ -55,7 +54,7 @@ ARM void ActorRupee::func_ov031_020e8d2c(Vec3p *param1, u8 param2, unk32 param3,
stack.sp4.z = param1->z;
stack.sp2C = param4;
stack.sp30 = param3;
this->func_ov000_020973f4(&data_ov000_020b539c_eur, ActorId_Rupee, (Actor_5c *) &stack, 0);
this->func_ov000_020973f4(&data_ov000_020b539c_eur, ActorId_Rupee, (ActorParams *) &stack, 0);
}
ARM ActorRupee::ActorRupee() :
@@ -81,12 +80,12 @@ ARM bool ActorRupee::vfunc_18(unk32 param1) {
SET_FLAG(this->mFlags, ActorFlag_12);
}
if (this->mUnk_80 >= 0) {
if (this->mUnk_5C.mUnk_24 >= 0) {
if (this->func_ov000_02098a60(0)) {
return false;
}
if (this->mUnk_6E == 0) {
if (this->mUnk_5C.mParams[1] == 0) {
this->func_ov031_020e9904(3);
} else {
this->func_ov031_020e9904(10);
@@ -95,7 +94,7 @@ ARM bool ActorRupee::vfunc_18(unk32 param1) {
return true;
}
switch (this->mUnk_88) {
switch (this->mUnk_5C.mUnk_2C) {
case 0:
this->mUnk_96 = 0x1E0;
this->mUnk_94 = 0;
@@ -157,7 +156,7 @@ ARM bool ActorRupee::vfunc_18(unk32 param1) {
}
ARM void ActorRupee::func_ov031_020e8fec() {
switch (this->mUnk_6C) {
switch (this->mUnk_5C.mParams[0]) {
case RupeeId_Green:
data_027e09a8->func_ov000_02071b30(0x73, &this->mPos, 0);
break;
@@ -176,7 +175,7 @@ ARM void ActorRupee::func_ov031_020e8fec() {
ARM void ActorRupee::func_ov031_020e9068() {
bool var_r4 = false;
switch (this->mUnk_6C) {
switch (this->mUnk_5C.mParams[0]) {
case RupeeId_BigGreen:
case RupeeId_BigRed:
case RupeeId_Gold:
@@ -190,7 +189,7 @@ ARM void ActorRupee::func_ov031_020e9068() {
}
}
if (this->mUnk_80 >= 0 && this->mUnk_76 != 0) {
if (this->mUnk_5C.mUnk_24 >= 0 && this->mUnk_5C.mUnk_1A != 0) {
this->func_ov000_02098a88(0, 1);
}
@@ -373,7 +372,7 @@ ARM void ActorRupee::func_ov031_020e951c() {
itemId = ItemId_None;
switch (this->mUnk_6C) {
switch (this->mUnk_5C.mParams[0]) {
case RupeeId_Gold:
itemId = ItemId_BigGoldRupee;
break;
@@ -387,7 +386,7 @@ ARM void ActorRupee::func_ov031_020e951c() {
break;
}
if (itemId != ItemId_None && func_ov031_020d9834(data_027e0d34) == 0) {
if (itemId != ItemId_None && !data_027e0d34->TryItemGive(itemId)) {
return;
}
@@ -440,7 +439,7 @@ ARM void ActorRupee::func_ov031_020e9638() {
UNSET_FLAG(this->mFlags, ActorFlag_Visible);
this->mUnk_C4.mUnk_04 = 0;
if (this->mUnk_6E == 2) {
if (this->mUnk_5C.mParams[1] == 2) {
this->mUnk_4A = 1;
data_027e0cec->func_ov000_0209ff8c(&this->mUnk_F0, 0xD00C, &this->mPos, 2);
} else {
@@ -497,7 +496,7 @@ ARM void ActorRupee::func_ov031_020e9740() {
}
} else {
temp_r0 = data_027e0cd8->mUnk_0C;
this->mPos.y = temp_r0->vfunc_28(&this->mUnk_5C.mUnk_00, 0, 0);
this->mPos.y = temp_r0->vfunc_28(&this->mUnk_5C.mInitialPos, 0, 0);
this->func_ov031_020e9904(0xC);
}
@@ -662,11 +661,11 @@ ARM void ActorRupee::vfunc_20() {
// (*pcVar6)();
if ((this->mUnk_80 < 0) && (this->mUnk_4C != 5)) {
if ((this->mUnk_5C.mUnk_24 < 0) && (this->mUnk_4C != 5)) {
this->func_ov031_020e9d94();
}
if (this->mUnk_6E != 0) {
if (this->mUnk_5C.mParams[1] != 0) {
sVar1 = this->mUnk_4C;
if (!(sVar1 != 10 && sVar1 != 0xb && sVar1 != 0xc)) {
@@ -683,7 +682,7 @@ ARM void ActorRupee::func_ov031_020e9b88() {
func_ov000_02098838();
Vec3p_Add(&this->mPos, &this->mVel, &this->mPos);
if (this->mUnk_5C.mUnk_00.y < this->mPos.y + this->mVel.y) {
if (this->mUnk_5C.mInitialPos.y < this->mPos.y + this->mVel.y) {
this->mUnk_44 = 0x9C;
} else {
this->mUnk_44 = 0x9F;
@@ -721,7 +720,7 @@ ARM void ActorRupee::vfunc_2c(unk32 param1) {
return;
}
func_ov000_0205c1f0(auStack_30, data_ov031_02110aa0[this->mUnk_6C]);
func_ov000_0205c1f0(auStack_30, data_ov031_02110aa0[this->mUnk_5C.mParams[0]]);
iStack_18 = this->mPos;
if (!this->func_ov031_020e9d54()) {
@@ -743,7 +742,7 @@ ARM void ActorRupee::vfunc_2c(unk32 param1) {
}
ARM bool ActorRupee::func_ov031_020e9d54() {
switch (this->mUnk_6C) {
switch (this->mUnk_5C.mParams[0]) {
case RupeeId_BigGreen:
case RupeeId_BigRed:
case RupeeId_Gold:
@@ -0,0 +1,259 @@
#include "MapObject/MapObjectChestBase.hpp"
#include "Unknown/UnkStruct_027e09a8.hpp"
#include "Unknown/UnkStruct_027e0cd8.hpp"
#include "Unknown/UnkStruct_027e0ce0.hpp"
#include "Unknown/UnkStruct_027e0cec.hpp"
#pragma readonly_strings on
extern "C" unk32 func_0200f218(unk32, const char *);
extern "C" void func_0200b58c(void *);
extern "C" void func_01ffb714(Vec3p *, Vec3p *, void *);
extern "C" void func_01ffcfcc(Vec3p *, Vec3p *, Vec3p *);
static const Vec2p data_ov031_02115830(0x800, 0x800);
static const UnkSubStruct19 data_ov031_02115c84;
ARM MapObjectTreasureSpawned_74::MapObjectTreasureSpawned_74(unk32 param1) :
UnkSystem4(param1),
mUnk_60(1) {}
ARM void MapObjectTreasureSpawned_74::vfunc_1C(UnkSystem4_vfunc_1C *param1) {
unk32 iVar1;
unk32 uVar2;
if (param1->mUnk_04[1] != 0) {
iVar1 = param1->mUnk_04[1] + 0x40;
} else {
iVar1 = 0;
}
if (iVar1 != 0) {
uVar2 = func_0200f218(iVar1, "box_B");
} else {
uVar2 = -1;
}
if (param1->mUnk_00[1] == uVar2) {
if (!this->mUnk_60) {
*param1->mUnk_B8 = 0;
}
}
}
ARM void MapObjectTreasureSpawned_74::func_ov031_0210306c() {
func_0200b58c(&this->mUnk_08);
}
ARM MapObjectChestBase::MapObjectChestBase(unk32 param1) :
mUnk_040(0),
mUnk_044(-1),
mUnk_048(param1),
mUnk_04C(0),
mUnk_04D(1),
mUnk_074(0),
mItemId(ItemId_Nothing) {
this->mUnk_0DC.func_ov000_0206082c(0x5D, 0x05);
}
ARM MapObjectChestBase::~MapObjectChestBase() {}
ARM bool MapObjectChestBase::vfunc_00() {
SET_FLAG(this->mFlags, MapObjFlag_9);
this->mUnk_18[0] = 0x0D;
UnkStruct_027e0cd8_0c *pUVar2 = data_027e0cd8->mUnk_0C;
if (this->mUnk_20.mUnk_00[3] == 1) {
this->mPos.x += 0x7FC;
Vec2b sp48(this->mUnk_3A.x, this->mUnk_3A.y);
pUVar2->func_ov000_020801b0(&sp48, 7, 1);
sp48.x++;
pUVar2->func_ov000_020801b0(&sp48, 7, 1);
}
this->vfunc_38(this->vfunc_3C(), 1);
this->mItemId = this->mUnk_20.mUnk_00[0];
return true;
}
// non-matching
ARM void MapObjectChestBase::vfunc_04() {
q20 iVar2;
UnkStruct_027e0cd8_0c *pUVar5;
Vec3p sp48;
Vec3p sp3C;
Vec3p local_38;
Vec3p local_44;
Vec3p sp18;
Vec3p spC;
Vec2b local_5e;
Vec2b local_62;
Vec2b local_64;
Vec2b local_66;
Vec2b local_68;
Vec2us local_6c;
pUVar5 = data_027e0cd8->mUnk_0C;
sp48.x = FLOAT_TO_Q20(0.0f);
sp48.y = FLOAT_TO_Q20(0.0f);
sp48.z = FLOAT_TO_Q20(0.0f);
sp3C.x = FLOAT_TO_Q20(0.0f);
sp3C.y = FLOAT_TO_Q20(0.0f);
sp3C.z = FLOAT_TO_Q20(0.0f);
sp18.x = FLOAT_TO_Q20(0.5f);
sp18.y = FLOAT_TO_Q20(0.0f);
sp18.z = FLOAT_TO_Q20(0.5f);
func_01ffb714(&sp48, &sp18, &sp48);
spC.x = FLOAT_TO_Q20(0.5f);
spC.y = FLOAT_TO_Q20(1.0f);
spC.z = FLOAT_TO_Q20(0.5f);
Vec3p_Add((Vec3p *) &sp3C, &spC, (Vec3p *) &sp3C);
local_68.x = this->mUnk_3A.x;
local_68.y = this->mUnk_3A.y;
iVar2 = pUVar5->func_01ffedf4((Vec2b *) &local_68);
if (this->mUnk_20.mUnk_00[3] == 1) {
Vec2b temp_r0(this->mUnk_3A.x, this->mUnk_3A.y);
temp_r0.x--;
if (pUVar5->func_01ffedf4((Vec2b *) &temp_r0) > iVar2 || gpMapObjManager->func_01fff498(local_5e) != NULL) {
sp48.x -= FLOAT_TO_Q20(0.5f);
}
temp_r0.x += 3;
if (pUVar5->func_01ffedf4((Vec2b *) &temp_r0) > iVar2 || gpMapObjManager->func_01fff498(local_5e) != NULL) {
sp3C.x += FLOAT_TO_Q20(0.5f);
}
} else {
Vec2b temp_r0(this->mUnk_3A.x, this->mUnk_3A.y);
temp_r0.x--;
temp_r0.y += 2;
// local_5e.y = this->mUnk_3A.y + (this->mUnk_3A.x - 1);
// local_6c.y += local_5e.y;
// local_5e.y += 2;
if (gpMapObjManager->func_ov000_0209c3a8(&temp_r0) == MapObjectId_MiniBlocks) {
sp48.x -= FLOAT_TO_Q20(0.5f);
}
// temp_r0.x += 3;
if (gpMapObjManager->func_ov000_0209c3a8(&temp_r0) == MapObjectId_MiniBlocks) {
sp3C.x += FLOAT_TO_Q20(0.5f);
}
}
local_62.x = (this->mUnk_3A.y - 1) + this->mUnk_3A.x;
if (gpMapObjManager->func_ov000_0209c3a8(&local_62) == MapObjectId_MiniBlocks &&
iVar2 == pUVar5->func_01ffedf4(&local_62)) {
sp48.z -= FLOAT_TO_Q20(0.5f);
}
if (data_027e09a4->mSceneIndex == SceneIndex_d_flame) {
local_64.x = this->mUnk_3A.x;
local_66.y = this->mUnk_3A.y;
local_66.x = local_64.x - 1;
local_64.y = local_66.y - 1;
if (iVar2 > pUVar5->func_01ffedf4(&local_64) && iVar2 > pUVar5->func_01ffedf4(&local_66)) {
sp3C.y += FLOAT_TO_Q20(1.0f);
}
}
func_01ffcfcc(&local_44, &sp48, (Vec3p *) &sp3C);
this->mUnk_050.mUnk_0C.x = local_44.x;
this->mUnk_050.mUnk_0C.y = local_44.y;
this->mUnk_050.mUnk_0C.z = local_44.z;
this->mUnk_050.mUnk_18.x = local_38.x;
this->mUnk_050.mUnk_18.y = local_38.y;
this->mUnk_050.mUnk_18.z = local_38.z;
this->mUnk_050.mUnk_08 = 0x84007006;
this->mUnk_10 = &this->mUnk_050;
}
ARM void MapObjectChestBase::vfunc_08() {}
ARM void MapObjectChestBase::vfunc_0C() {
this->vfunc_08();
}
ARM unk32 MapObjectChestBase::vfunc_28() {
return this->func_ov031_021037d0();
}
ARM ItemId MapObjectChestBase::func_ov031_021037d0() {
switch (this->mUnk_16) {
case 0:
case 1:
case 4:
case 5:
case 6:
case 7:
case 8:
return ItemId_None;
case 2:
case 3:
default:
break;
}
this->vfunc_38(7, 0);
if ((u32) this->mItemId - ItemId_RedPotion <= 2 && data_027e0ce0->mUnk_2C->func_ov000_020a8948()) {
return ItemId_BigGreenRupee;
}
return this->mItemId;
}
ARM bool MapObjectChestBase::func_ov031_02103864() {
return this->mUnk_16 == 8 ? true : false;
}
ARM void MapObjectChestBase::func_ov031_02103878() {
this->vfunc_38(8, 1);
}
ARM void MapObjectChestBase::vfunc_38(unk32 param1, unk32 param2) {}
ARM void MapObjectChestBase::vfunc_18(s8 *param1, s8 param2) {}
ARM void MapObjectChestBase::vfunc_14() {}
ARM unk32 MapObjectChestBase::vfunc_3C() {}
ARM bool MapObjectChestBase::vfunc_40() {
return true;
}
ARM bool MapObjectChestBase::vfunc_44() {
return false;
}
ARM void MapObjectChestBase::func_ov031_02103f48() {
Vec3p local_10(this->mPos.x, this->mPos.y + 0x800, this->mPos.z);
data_027e0cec->func_ov000_0209feac(0x81f, &local_10, 4, 0, 0);
}
ARM void MapObjectChestBase::vfunc_4C() {
data_027e09a8->func_ov000_02071b30(0x150, &this->mPos, 0);
}
ARM void MapObjectChestBase::vfunc_50() {
data_027e09a8->func_ov000_02071b30(0x151, &this->mPos, 0);
}
ARM Vec2p *MapObjectChestBase::vfunc_54() {
return (Vec2p *) &data_ov031_02115830;
}
@@ -0,0 +1,43 @@
#include "MapObject/MapObjectTreasureSpawned.hpp"
#include "System/SysNew.hpp"
#include "Unknown/Common.hpp"
#include "Unknown/UnkStruct_027e0cd8.hpp"
static const Vec2p data_ov031_021157b0(0x96B, 0x99A);
ARM DECL_PROFILE(MapObjectProfileTreasureSpawned);
ARM MapObject *MapObjectProfileTreasureSpawned::Create() {
return new(HeapIndex_ITCM) MapObjectTreasureSpawned();
}
ARM MapObjectProfileTreasureSpawned::MapObjectProfileTreasureSpawned() :
MapObjectProfile_Derived2(MapObjectId_TreasureSpawned, MapObjectId_TreasureSpawned) {
this->mUnk_0E = 1;
this->mUnk_06 = 1;
this->mUnk_0C = 0x1333;
}
ARM MapObjectTreasureSpawned::MapObjectTreasureSpawned() :
MapObjectChestBase(1) {
this->mUnk_074.vfunc_08(GetUnkPointer1<MapObjectProfileTreasureSpawned>());
}
ARM unk32 MapObjectTreasureSpawned::vfunc_3C() {
if (data_027e0cd8->func_ov000_02081f3c(this->mUnk_20.mUnk_14, 1)) {
return 8;
}
return 3;
}
ARM bool MapObjectTreasureSpawned::vfunc_40() {
return true;
}
ARM Vec2p *MapObjectTreasureSpawned::vfunc_54() {
return (Vec2p *) &data_ov031_021157b0;
}
ARM MapObjectTreasureSpawned::~MapObjectTreasureSpawned() {}
ARM MapObjectProfileTreasureSpawned::~MapObjectProfileTreasureSpawned() {}
@@ -1,22 +0,0 @@
//! TODO: This file was generated automatically and might contain errors
#include "MapObject/MapObjectUnkTRES.hpp"
#include "System/SysNew.hpp"
ARM DECL_PROFILE(MapObjectProfileUnkTRES);
ARM MapObject *MapObjectProfileUnkTRES::Create() {
return new(HeapIndex_2) MapObjectUnkTRES();
}
ARM MapObjectProfileUnkTRES::MapObjectProfileUnkTRES() :
MapObjectProfile(MapObjectId_TRES) {}
ARM MapObjectUnkTRES::MapObjectUnkTRES() {}
ARM void MapObjectUnkTRES::func_ov031_02102f64(void) {}
ARM void MapObjectUnkTRES::func_ov031_02102f90(void) {}
ARM void MapObjectUnkTRES::func_ov031_02102f98(void) {}
ARM MapObjectUnkTRES::~MapObjectUnkTRES() {}
ARM MapObjectProfileUnkTRES::~MapObjectProfileUnkTRES() {}
+5
View File
@@ -0,0 +1,5 @@
#include "Unknown/UnkStruct_027e0d34.hpp"
bool UnkStruct_027e0d34::TryItemGive(ItemId itemId) {
return this->mUnk_04->func_ov000_02093bc8(itemId);
}
+33 -1
View File
@@ -1,7 +1,10 @@
//! TODO: This file was generated automatically and might contain errors
#include "Actor/ActorUnkGORY.hpp"
#include "Save/AdventureFlags.hpp"
#include "System/SysNew.hpp"
#include "Unknown/UnkStruct_027e09b8.hpp"
#include "Unknown/UnkStruct_027e0ce0.hpp"
ARM DECL_PROFILE(ActorProfileUnkGORY);
@@ -16,7 +19,36 @@ ARM ActorUnkGORY::ActorUnkGORY() {}
ARM void ActorUnkGORY::func_ov036_0211bc20(void) {}
ARM void ActorUnkGORY::func_ov036_0211bc84(void) {}
ARM void ActorUnkGORY::func_ov036_0211bcb0(void) {}
ARM ItemId ActorUnkGORY::func_ov036_0211bcb0(unk32 param1) {
switch (param1) {
case 0:
return ItemId_BombsRefill;
case 1:
return ItemId_YellowPotion;
case 2:
return ItemId_PurplePotion;
case 3:
return ItemId_NormalShield;
case 4:
if (GET_FLAG(data_027e09b8->mAdventureFlags, AdventureFlag_BoughtGoronShopQuiver)) {
return ItemId_TenPriceCard;
}
if (data_027e0ce0->mUnk_2C->mQuiverCapacity == UpgradeCapacity_Tier1) {
return ItemId_QuiverMedium;
} else if (data_027e0ce0->mUnk_2C->mQuiverCapacity == UpgradeCapacity_Tier2) {
return ItemId_QuiverLarge;
} else {
return ItemId_TenPriceCard;
}
default:
break;
}
return ItemId_Nothing;
}
ARM ActorUnkGORY::~ActorUnkGORY() {}
ARM ActorProfileUnkGORY::~ActorProfileUnkGORY() {}
+309 -5
View File
@@ -1,7 +1,12 @@
//! TODO: This file was generated automatically and might contain errors
#include "Actor/ActorUnkSHIT.hpp"
#include "Item/ItemManager.hpp"
#include "MainGame/MiscAdvManager.hpp"
#include "Save/AdventureFlags.hpp"
#include "System/SysNew.hpp"
#include "Unknown/UnkStruct_027e09b8.hpp"
#include "Unknown/UnkStruct_027e0ce0.hpp"
ARM DECL_PROFILE(ActorProfileUnkSHIT);
@@ -34,17 +39,316 @@ ARM void ActorUnkSHIT::func_ov036_0211c998(void) {}
ARM void ActorUnkSHIT::func_ov036_0211c9ac(void) {}
ARM void ActorUnkSHIT::func_ov036_0211c9cc(void) {}
ARM void ActorUnkSHIT::func_ov036_0211c9d4(void) {}
ARM void ActorUnkSHIT::func_ov036_0211cddc(void) {}
ARM unk32 ActorUnkSHIT::func_ov036_0211cddc(void) {}
ARM void ActorUnkSHIT::func_ov036_0211cdfc(void) {}
ARM void ActorUnkSHIT::func_ov036_0211ceec(void) {}
ARM void ActorUnkSHIT::func_ov036_0211d0a8(void) {}
ARM u16 ActorUnkSHIT::func_ov036_0211ceec(void) {
switch (this->mItemId) {
case ItemId_NormalShield: {
u16 param = this->mUnk_5C.mParams[3];
if (param == 4) {
return 200;
}
if (param == 2) {
return 150;
}
return 80;
}
case ItemId_RedPotion:
return 100;
case ItemId_PurplePotion:
return 150;
case ItemId_YellowPotion:
return 200;
case ItemId_TenPriceCard:
return 100;
case ItemId_DemonFossil:
case ItemId_StalfosSkull:
case ItemId_StarFragment:
case ItemId_BeeLarvae:
case ItemId_WoodHeart:
case ItemId_DarkPearlLoop:
case ItemId_WhitePearlLoop:
case ItemId_RutoCrown:
case ItemId_DragonScale:
case ItemId_PirateNecklace:
case ItemId_PalaceDish:
case ItemId_GoronAmber:
case ItemId_MysticJade:
case ItemId_AncientCoin:
case ItemId_PricelessStone:
case ItemId_RegalRing: {
return data_ov000_020b6510->func_ov000_020a9b4c(this->mItemId - ItemId_DemonFossil) * 2;
}
case ItemId_HeartContainer:
return 2000;
case ItemId_BombsRefill: {
u16 param = this->mUnk_5C.mParams[3];
if (param == 4) {
return 200;
}
if (param == 3) {
return 150;
}
return 100;
}
case ItemId_ArrowsRefill:
return 50;
case ItemId_QuiverMedium:
case ItemId_QuiverLarge:
return 2000;
case ItemId_BombBag:
case ItemId_BombBagMedium:
case ItemId_BombBagLarge:
return 500;
default:
break;
}
return 9999;
}
ARM unk32 ActorUnkSHIT::func_ov036_0211d0a8(void) {
if (this->mUnk_2D3) {
return 0x12;
}
switch (this->mItemId) {
case ItemId_SoldOutSign:
return 0x12;
case ItemId_NormalShield:
return 0x08;
case ItemId_RedPotion:
return 0x09;
case ItemId_PurplePotion:
return 0x0A;
case ItemId_YellowPotion:
return 0x0B;
case ItemId_TenPriceCard:
return 0x13;
case ItemId_DemonFossil:
case ItemId_StalfosSkull:
case ItemId_StarFragment:
case ItemId_BeeLarvae:
case ItemId_WoodHeart:
case ItemId_DarkPearlLoop:
case ItemId_WhitePearlLoop:
case ItemId_RutoCrown:
case ItemId_DragonScale:
case ItemId_PirateNecklace:
case ItemId_PalaceDish:
case ItemId_GoronAmber:
case ItemId_MysticJade:
case ItemId_AncientCoin:
case ItemId_PricelessStone:
case ItemId_RegalRing:
return 0x06;
case ItemId_HeartContainer:
return 0x07;
case ItemId_BombsRefill:
return 0x05;
case ItemId_ArrowsRefill:
return 0x03;
case ItemId_QuiverMedium:
case ItemId_QuiverLarge:
return 0x02;
case ItemId_BombBag:
case ItemId_BombBagMedium:
case ItemId_BombBagLarge:
return 0x04;
default:
break;
}
return 0x0D;
}
ARM void ActorUnkSHIT::func_ov036_0211d22c(void) {}
ARM void ActorUnkSHIT::func_ov036_0211d254(void) {}
ARM void ActorUnkSHIT::func_ov036_0211d270(void) {}
ARM void ActorUnkSHIT::func_ov036_0211d28c(void) {}
ARM void ActorUnkSHIT::func_ov036_0211d2a8(void) {}
ARM void ActorUnkSHIT::func_ov036_0211d2dc(void) {}
ARM void ActorUnkSHIT::func_ov036_0211d570(void) {}
ARM bool ActorUnkSHIT::func_ov036_0211d2dc(void) {
ItemManager *pIVar4 = data_027e0ce0->mUnk_2C;
switch (this->mItemId) {
case ItemId_NormalShield:
if (GET_FLAG(pIVar4->mUnk_08, ItemFlag_Shield)) {
return false;
}
break;
case ItemId_RedPotion:
case ItemId_PurplePotion:
case ItemId_YellowPotion:
if (pIVar4->func_ov000_020a8948()) {
return false;
}
break;
case ItemId_TenPriceCard:
if (gpMiscAdvManager->GotMaxPriceCards()) {
return false;
}
break;
case ItemId_DemonFossil:
case ItemId_StalfosSkull:
case ItemId_StarFragment:
case ItemId_BeeLarvae:
case ItemId_WoodHeart:
case ItemId_DarkPearlLoop:
case ItemId_WhitePearlLoop:
case ItemId_RutoCrown:
case ItemId_DragonScale:
case ItemId_PirateNecklace:
case ItemId_PalaceDish:
case ItemId_GoronAmber:
case ItemId_MysticJade:
case ItemId_AncientCoin:
if (data_ov000_020b6510->func_ov000_020a9ca4(this->mItemId - ItemId_DemonFossil)) {
return false;
}
break;
case ItemId_PricelessStone:
case ItemId_RegalRing:
return false;
case ItemId_HeartContainer:
if (this->mUnk_5C.mParams[3] == 5) {
if (GET_FLAG(data_027e09b8->mAdventureFlags, AdventureFlag_Unk_10F)) {
return false;
}
} else {
if (GET_FLAG(data_027e09b8->mAdventureFlags, AdventureFlag_Unk_10E)) {
return false;
}
}
break;
case ItemId_BombsRefill:
if (!GET_FLAG(pIVar4->mUnk_08, ItemFlag_Bombs)) {
return false;
}
{
u8 amount = pIVar4->mBombAmount;
if (amount >= pIVar4->func_ov000_020a8748()) {
return false;
}
}
break;
case ItemId_ArrowsRefill:
if (!GET_FLAG(pIVar4->mUnk_08, ItemFlag_Bow)) {
return false;
}
{
u8 amount = pIVar4->mArrowAmount;
if (amount >= pIVar4->func_ov000_020a8728()) {
return false;
}
}
break;
case ItemId_QuiverMedium:
case ItemId_QuiverLarge:
if (!GET_FLAG(pIVar4->mUnk_08, ItemFlag_Bow)) {
return false;
}
if (GET_FLAG(data_027e09b8->mAdventureFlags, AdventureFlag_BoughtGoronShopQuiver)) {
return false;
}
break;
case ItemId_BombBag:
case ItemId_BombBagMedium:
case ItemId_BombBagLarge:
if (GET_FLAG(data_027e09b8->mAdventureFlags, AdventureFlag_BoughtBombBagFromBeedle)) {
return false;
}
break;
default:
break;
}
return true;
}
ARM void ActorUnkSHIT::func_ov036_0211d570(unk32 param1) {
ItemManager *pIVar4 = data_027e0ce0->mUnk_2C;
switch (this->mItemId) {
case ItemId_NormalShield:
break;
case ItemId_RedPotion:
break;
case ItemId_PurplePotion:
break;
case ItemId_YellowPotion:
break;
case ItemId_TenPriceCard:
break;
case ItemId_DemonFossil:
case ItemId_StalfosSkull:
case ItemId_StarFragment:
case ItemId_BeeLarvae:
case ItemId_WoodHeart:
case ItemId_DarkPearlLoop:
case ItemId_WhitePearlLoop:
case ItemId_RutoCrown:
case ItemId_DragonScale:
case ItemId_PirateNecklace:
case ItemId_PalaceDish:
case ItemId_GoronAmber:
case ItemId_MysticJade:
case ItemId_AncientCoin:
case ItemId_PricelessStone:
case ItemId_RegalRing:
this->mUnk_2D3 = true;
break;
case ItemId_HeartContainer:
if (this->mUnk_5C.mParams[3] == 5) {
SET_FLAG(data_027e09b8->mAdventureFlags, AdventureFlag_Unk_10F);
} else {
SET_FLAG(data_027e09b8->mAdventureFlags, AdventureFlag_Unk_10E);
}
this->mUnk_2D3 = true;
break;
case ItemId_BombsRefill:
pIVar4->func_ov000_020a8820(10);
break;
case ItemId_ArrowsRefill:
pIVar4->func_ov000_020a87ec(10);
break;
case ItemId_QuiverMedium:
case ItemId_QuiverLarge:
SET_FLAG(data_027e09b8->mAdventureFlags, AdventureFlag_BoughtGoronShopQuiver);
this->mUnk_2D3 = true;
break;
case ItemId_BombBag:
case ItemId_BombBagMedium:
case ItemId_BombBagLarge:
SET_FLAG(data_027e09b8->mAdventureFlags, AdventureFlag_BoughtBombBagFromBeedle);
this->mUnk_2D3 = true;
break;
default:
break;
}
if (param1 == 0) {
pIVar4->GiveRupees(-this->func_ov036_0211cddc(), false, false);
}
}
ARM void ActorUnkSHIT::func_ov036_0211d75c(void) {}
ARM void ActorUnkSHIT::func_ov036_0211d774(void) {}
ARM void ActorUnkSHIT::func_ov036_0211d790(void) {}
+17 -1
View File
@@ -2,6 +2,8 @@
#include "Actor/ActorUnkKEYN.hpp"
#include "System/SysNew.hpp"
#include "Unknown/UnkStruct_027e09b8.hpp"
#include "Unknown/UnkStruct_027e0d34.hpp"
ARM DECL_PROFILE(ActorProfileUnkKEYN);
@@ -38,7 +40,21 @@ ARM void ActorUnkKEYN::func_ov070_02141fbc(void) {}
ARM void ActorUnkKEYN::func_ov070_02142014(void) {}
ARM void ActorUnkKEYN::func_ov070_021420a4(void) {}
ARM void ActorUnkKEYN::func_ov070_021420d8(void) {}
ARM void ActorUnkKEYN::func_ov070_02142140(void) {}
ARM void ActorUnkKEYN::func_ov070_02142140(void) {
if (this->mUnk_50 < this->mUnk_52) {
this->mUnk_50++;
}
if (!data_027e09b8->func_01ffd420()) {
if (data_027e0d34->TryItemGive(this->mItemId)) {
this->func_ov000_02098a88(0, 1);
this->Kill();
this->func_ov000_020984f0();
}
}
}
ARM void ActorUnkKEYN::func_ov070_021421bc(void) {}
ARM void ActorUnkKEYN::func_ov070_021421e8(void) {}
ARM void ActorUnkKEYN::func_ov070_021421ec(void) {}
+17 -1
View File
@@ -2,6 +2,8 @@
#include "Actor/ActorUnkSZKU.hpp"
#include "System/SysNew.hpp"
#include "Unknown/UnkStruct_027e09b8.hpp"
#include "Unknown/UnkStruct_027e0d34.hpp"
ARM DECL_PROFILE(ActorProfileUnkSZKU);
@@ -35,7 +37,21 @@ ARM void ActorUnkSZKU::func_ov071_0215fe54(void) {}
ARM void ActorUnkSZKU::func_ov071_0215fe94(void) {}
ARM void ActorUnkSZKU::func_ov071_0215fed4(void) {}
ARM void ActorUnkSZKU::func_ov071_0215ff08(void) {}
ARM void ActorUnkSZKU::func_ov071_0215ff3c(void) {}
ARM void ActorUnkSZKU::func_ov071_0215ff3c(void) {
if (this->mUnk_50 < this->mUnk_52) {
this->mUnk_50++;
}
if (!data_027e09b8->func_01ffd420()) {
if (data_027e0d34->TryItemGive(this->mItemId)) {
this->func_ov000_02098a88(0, 1);
this->Kill();
this->func_ov000_020984f0();
}
}
}
ARM void ActorUnkSZKU::func_ov071_0215ffb8(void) {}
ARM void ActorUnkSZKU::func_ov071_0215ffbc(void) {}
ARM void ActorUnkSZKU::func_ov071_02160000(void) {}
+15 -2
View File
@@ -1,7 +1,10 @@
//! TODO: This file was generated automatically and might contain errors
#include "MapObject/MapObjectUnkWDST.hpp"
#include "Item/Item.hpp"
#include "System/SysNew.hpp"
#include "Unknown/UnkStruct_027e09b8.hpp"
#include "Unknown/UnkStruct_027e0d34.hpp"
ARM DECL_PROFILE(MapObjectProfileUnkWDST);
@@ -19,7 +22,17 @@ ARM void MapObjectUnkWDST::func_ov094_02171e58(void) {}
ARM void MapObjectUnkWDST::func_ov094_02171e9c(void) {}
ARM void MapObjectUnkWDST::func_ov094_02171fbc(void) {}
ARM void MapObjectUnkWDST::func_ov094_02172030(void) {}
ARM void MapObjectUnkWDST::func_ov094_02172290(void) {}
ARM void MapObjectUnkWDST::func_ov094_02172290(void) {
if (!data_027e09b8->func_01ffd420()) {
if (this->mUnk_B8 != 2) {
data_027e0d34->TryItemGive(this->mUnk_B8 + ItemId_PanFluteSong_101);
}
this->func_ov094_02172c94(5);
}
}
ARM void MapObjectUnkWDST::func_ov094_021722e0(void) {}
ARM void MapObjectUnkWDST::func_ov094_021722f4(void) {}
ARM void MapObjectUnkWDST::func_ov094_021726a0(void) {}
@@ -32,7 +45,7 @@ ARM void MapObjectUnkWDST::func_ov094_02172a44(void) {}
ARM void MapObjectUnkWDST::func_ov094_02172ae0(void) {}
ARM void MapObjectUnkWDST::func_ov094_02172af4(void) {}
ARM void MapObjectUnkWDST::func_ov094_02172bfc(void) {}
ARM void MapObjectUnkWDST::func_ov094_02172c94(void) {}
ARM void MapObjectUnkWDST::func_ov094_02172c94(unk32 param1) {}
ARM void MapObjectUnkWDST::func_ov094_0217310c(void) {}
ARM void MapObjectUnkWDST::func_ov094_021731e4(void) {}
ARM void MapObjectUnkWDST::func_ov094_02173464(void) {}
+375 -127
View File
@@ -3,6 +3,8 @@
#include "Actor/ActorId.hpp"
#include "Actor/ActorManager.hpp"
#include "Actor/ActorUnkNSHD.hpp"
#include "MainGame/MiscAdvManager.hpp"
#include "MapObject/MapObjectChestBase.hpp"
#include "MapObject/MapObjectManager.hpp"
#include "Player/PlayerGet.hpp"
#include "System/OverlayManager.hpp"
@@ -13,11 +15,13 @@
#include "Unknown/UnkStruct_027e09bc.hpp"
#include "Unknown/UnkStruct_027e0cd8.hpp"
#include "Unknown/UnkStruct_027e0cec.hpp"
#include "Unknown/UnkStruct_027e0cf8.hpp"
#include "Unknown/UnkStruct_ov000_02067bc4.hpp"
#include "Unknown/UnkStruct_ov000_020b34c4.hpp"
#include "Unknown/UnkStruct_ov000_020b51b8.hpp"
#include "Unknown/UnkStruct_ov000_020b51c0.hpp"
#include "versions.h"
#include <nitro/math.h>
struct UnkStruct_02186240 {
@@ -26,6 +30,9 @@ struct UnkStruct_02186240 {
};
UnkStruct_02186240 data_ov110_02186240;
extern const char *data_ov000_020aa240; // .nsbtx
extern const char *data_ov000_020aa248; // .nsbmd
extern "C" void func_ov000_0205ca74(unk32);
extern "C" void func_01ffb6e4(unk32, const void *, void *);
extern "C" void func_01ffc5a0(UnkSystem4 *, unk32, u16, void *, unk32);
@@ -33,18 +40,15 @@ extern "C" void func_ov000_0208f820();
extern "C" unk32 func_ov024_020d5354(unk32 *, u16 *);
extern "C" void func_ov000_02058fc4(unk32 *, UnkStruct_PlayerGet_74 *, Vec3p *);
extern unk32 *data_027e0958;
extern "C" void func_ov024_020d6370(unk32 *, ItemId);
extern unk32 *data_ov024_020d86b0;
extern "C" void func_ov000_0208ba10(char *, void *, unk32);
extern "C" unk32 func_ov000_020a4c00(ItemId itemId);
extern "C" void func_02015ea8(unk32, unk16 *);
extern "C" void func_ov000_0208ba10(void *, void *, unk32);
extern "C" void func_02015ea8(unk32, void *);
extern "C" void func_02015628(char *, char *, unk32, void *, size_t);
extern "C" void func_02015664(char *, unk32);
extern "C" void func_020156c8(char *, char *, unk32);
extern "C" void func_020156f4(char *);
extern "C" void func_02015644(char *);
extern "C" UnkResourceStruct *func_ov000_0205abcc(char *, char *, unk32, unk32, unk32);
extern "C" UnkResourceStruct *func_ov000_0205abcc(void *, void *, unk32, unk32, unk32);
extern "C" unk32 func_ov000_02077590(unk32);
static const unk32 data_ov110_02185dc4[1] = {8};
@@ -56,14 +60,17 @@ static const UnkStruct_ov110_02185dc8 data_ov110_02185dc8[] = {
{ItemId_AncientShield, ItemFlag_AncientShield}, {ItemId_PanFlute, ItemFlag_PanFlute},
};
// non-matching
ARM bool ItemManager::func_ov110_02184a40(ItemId itemId) {
s16 itemFlag_s16;
ItemFlag itemFlag;
ItemFlag temp_r0_5;
u32 temp_r2;
u32 i;
static inline s16 GetItemFlag(ItemId itemId) {
for (u32 i = 0; i < ARRAY_LEN(data_ov110_02185dc8); i++) {
if (itemId == data_ov110_02185dc8[i].mItemId) {
return data_ov110_02185dc8[i].mItemFlag;
}
}
return ItemFlag_None;
}
ARM bool ItemManager::func_ov110_02184a40(ItemId itemId) {
switch (itemId) {
case ItemId_NormalKey:
this->func_ov000_020a87c8(1);
@@ -128,7 +135,7 @@ ARM bool ItemManager::func_ov110_02184a40(ItemId itemId) {
}
break;
default:
itemFlag = ItemManager::func_ov000_020a8984(itemId);
ItemFlag itemFlag = ItemManager::func_ov000_020a8984(itemId);
if (itemFlag != ItemFlag_None) {
this->func_ov000_020a863c(itemFlag);
@@ -148,35 +155,28 @@ ARM bool ItemManager::func_ov110_02184a40(ItemId itemId) {
if (this->mEquippedItem == ItemFlag_None) {
this->mEquippedItem = itemFlag;
data_ov024_020d8698->func_ov024_020cd458(itemFlag, 0);
data_ov024_020d8698->func_ov024_020cd458(this->mEquippedItem, 0);
}
} else {
itemFlag_s16 = ItemFlag_None;
itemFlag = GetItemFlag(itemId);
for (i = 0; i < ARRAY_LEN(data_ov110_02185dc8); i++) {
if (itemId == data_ov110_02185dc8[i].mItemId) {
itemFlag_s16 = data_ov110_02185dc8[i].mItemFlag;
break;
}
}
if (itemFlag_s16 != ItemFlag_None) {
this->func_ov000_020a863c(itemFlag_s16);
if (itemFlag != ItemFlag_None) {
this->func_ov000_020a863c(itemFlag);
}
}
break;
}
temp_r0_5 = ItemManager::func_ov110_02185db4(itemId);
AdventureFlag advFlag = ItemManager::GetAdvFlagFromItem(itemId);
if (temp_r0_5 != 0) {
temp_r0_5 &= 0xFFFF;
SET_FLAG(data_027e09b8->mAdventureFlags, temp_r0_5);
if (advFlag != AdventureFlag_Nothing) {
advFlag &= 0xFFFF;
SET_FLAG(data_027e09b8->mAdventureFlags, advFlag);
}
data_027e0ce0->mUnk_34->func_ov110_02185d3c(itemId);
data_ov000_020b6510->func_ov000_020aa0ac(itemId);
func_ov024_020d6370(data_ov024_020d86b0, itemId);
gpMiscAdvManager->GiveLetterOrPriceCard(itemId);
if (!GET_FLAG(this->mUnk_08, ItemFlag_LokomoSword) && itemId == ItemId_TearLight &&
this->mTearsAmount == MAX_TEARS_OF_LIGHT && (gOverlayManager.mLoadedOverlays[OverlaySlot_8] == OverlayIndex_Tower)) {
@@ -186,29 +186,246 @@ ARM bool ItemManager::func_ov110_02184a40(ItemId itemId) {
return false;
}
static const unk32 data_ov110_02185de8[] = {
0x30001, 0x30002, 0xB00D6, 0x8007A, 0x30003, 0x8007B, 0x8007C, 0x8007D, 0x8007E, 0x30004, 0x30005, 0x30006, 0x30007,
0x30008, 0x30009, 0x3000A, 0x3000B, 0x3000C, 0x3000D, 0x3000E, 0x3000F, 0xD0000, 0xD0001, 0xD0002, 0xD0003, 0xF00EB,
0x100000, 0x110000, 0x1C008E, 0x1E0048, 0x30010, 0x30011, 0x30012, 0x30013, 0x30014, 0x30015, 0x30016, 0x30017, 0xB00D7,
0x30018, 0x30019, 0x3001A, 0x3001B, 0x3001C, 0x3001D, 0x3001E, 0x3001F, 0x30020, 0x30021, 0x30022, 0x30023, 0x30024,
0x30025, 0x30026, 0x30027, 0x30028, 0x30029, 0x3002A, 0x3002B, 0x3002C, 0x3002D, 0x3002E, 0x3002F, 0x1400F7, 0x8007F,
0x30030, 0x30031, 0x30032, 0x30033, 0x30034, 0x30035, 0x30036, 0x30037, 0x30038, 0x30039, 0x3003A, 0x3003B, 0x3003C,
0x3003D, 0x3003E, 0x3003F, 0x30040, 0x30041, 0x30042, 0x30043, 0x30044, 0x30045, 0x30046, 0x30047, 0x1400F8, 0x30048,
0x30049, 0x3004A, 0x3004B, 0x3004C, 0x3004D, 0xD0004, 0xD0005, 0x3004E, 0x3004F, 0x1400F9, 0xF00EC, 0x80080, 0x110001,
0x1400FA, 0x100001, 0x30050, 0x30051, 0x30052, 0x30053, 0x30054, 0x30055, 0x30056, 0x30057, 0x30058, 0x030059, 0x3005A,
// 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
};
static const unk32 data_ov110_02185fbc[] = {
0x000, 0x000, 0x003, 0x000, 0x000, 0x1A3, 0x000, 0x27B, 0x0CB, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
0x000, 0x076, 0x077, 0x078, 0x00F, 0x010, 0x011, 0x012, 0x008, 0x009, 0x00A, 0x00B, 0x00C, 0x00D, 0x002, 0x01F, 0x020,
0x021, 0x079, 0x07A, 0x07B, 0x000, 0x000, 0x000, 0x000, 0x000, 0x068, 0x069, 0x06A, 0x06B, 0x06C, 0x06D, 0x06E, 0x06F,
0x070, 0x071, 0x072, 0x073, 0x074, 0x075, 0x0A6, 0x0A7, 0x0A8, 0x0A9, 0x0AA, 0x000, 0x000, 0x0B0, 0x0B1,
};
static const unk32 data_ov110_021860c4[] = {
0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000,
0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x000, 0x12D, 0x000, 0x000,
0x03C, 0x000, 0x000, 0x000, 0x000, 0x000, 0x0D6, 0x194, 0x18E, 0x18F, 0x190, 0x191, 0x192, 0x193, 0x046, 0x000, 0x000,
// 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_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_ObtainedBeedleQuintuplePointsCard, // ItemId_QuintupleCard
AdventureFlag_ReceivedCarbensLetter, // ItemId_CarbenLetter
AdventureFlag_Nothing, // ItemId_RecruitUniform2
AdventureFlag_Nothing, // ItemId_EngineerUniform
};
// non-matching
@@ -243,9 +460,9 @@ ARM PlayerGet::~PlayerGet() {
UnkStruct_ov000_0208f820_28_98 *pUnk_28_98 = this->mUnk_28->mUnk_98;
if (pUnk_28_98 != 0) {
pUnk_28_98->mUnk_40 &= ~0x10;
pUnk_28_98->mUnk_38.mUnk_40 &= ~0x10;
if (pUnk_28_98->mUnk_40 == 0) {
if (pUnk_28_98->mUnk_38.mUnk_40 == 0) {
// real?
pUnk_28_98->mUnk_38.~UnkStruct_PlayerGet_64();
}
@@ -273,24 +490,25 @@ ARM bool PlayerGet::func_ov110_02186b8c() {
}
#endif
// https://decomp.me/scratch/ZAW2N
ARM void PlayerGet::vfunc_0c(UnkStruct_PlayerGet_vfunc_0c_param1 *param1) {
ItemManager *pItemManager;
ItemId itemId;
ItemManager *pItemManager;
Actor *iVar10;
Vec3p *pUnk_38;
Vec3p *pUnk_3c;
char auStack_108[12];
Vec3p VStack_fc;
unk32 uStack_f0[4];
unk32 auStack_30[5];
switch (param1->mUnk_04) {
case 0x39:
*(u32 *) this->mUnk_54.mUnk_00 = param1->mUnk_10.x;
*(u32 *) this->mUnk_54.mUnk_04 = param1->mUnk_10.y;
this->mUnk_54.mUnk_08 = param1->mUnk_10.z;
pItemManager = this->mUnk_28->pItemManager;
itemId = param1->mUnk_1C;
Vec3p temp;
itemId = param1->mUnk_1C;
temp.x = param1->mUnk_10.x;
temp.y = param1->mUnk_10.y;
temp.z = param1->mUnk_10.z;
this->mUnk_54.mUnk_08 = temp.z;
this->mUnk_54.mUnk_00_s32 = temp.x;
this->mUnk_54.mUnk_04_s32 = temp.y;
pItemManager = this->mUnk_28->pItemManager;
switch (itemId) {
case ItemId_BombBag:
@@ -323,8 +541,9 @@ ARM void PlayerGet::vfunc_0c(UnkStruct_PlayerGet_vfunc_0c_param1 *param1) {
this->mUnk_54.mItemId = itemId;
this->mUnk_70 = 0;
this->mUnk_2C->mUnk_58 = 0;
func_ov000_0208ba10(auStack_108, &this->mUnk_24->mUnk_25, 0);
this->mUnk_40->mUnk_00 = 0x8000;
char auStack_108[12];
func_ov000_0208ba10(auStack_108, &this->mUnk_24->mUnk_94, 0);
*(s16 *) &this->mUnk_40->mUnk_00 = 0x8000;
pUnk_38 = this->mUnk_38;
pUnk_38->x = 0;
@@ -335,7 +554,7 @@ ARM void PlayerGet::vfunc_0c(UnkStruct_PlayerGet_vfunc_0c_param1 *param1) {
pUnk_3c->y = 0;
pUnk_3c->z = 0;
if (((*(u16 *) this->mUnk_54.mUnk_00 << 0x10) >> 0x1E) != 1) {
if (((u32) (u16) this->mUnk_54.mUnk_00_s16 << 16) >> 30 != 1) {
return;
}
@@ -352,48 +571,44 @@ ARM void PlayerGet::vfunc_0c(UnkStruct_PlayerGet_vfunc_0c_param1 *param1) {
break;
case 0x3A:
if (this->mUnk_54.mItemId != ItemId_Nothing) {
if (func_ov000_020a4c00(this->mUnk_54.mItemId) == 0) {
this->mUnk_8C.vfunc_08(0);
} else {
unk32 niVar10;
u32 niVar10 = func_ov000_020a4c00(this->mUnk_54.mItemId);
if (niVar10 == GIModel_None) {
this->mUnk_8C.vfunc_08(NULL);
} else {
if (this->mUnk_54.mItemId == ItemId_LokomoSword) {
niVar10 = func_ov000_020a4c00(ItemId_NormalSword);
}
unk16 auStack_110[2];
unk16 acStack_a6[2];
unk16 auStack_48[2];
unk16 auStack_64[2];
unk16 acStack_e0[2];
size_t len;
wchar_t pathBuffer[32];
char modelPath[64];
u16 idStr[5];
auStack_110[0] = 0;
auStack_110[1] = 0;
func_02015ea8(niVar10, auStack_110);
acStack_a6[1] = 0;
strncpy((char *) acStack_e0, "Player/get/", 0x39);
len = strlen((char *) acStack_e0);
strncpy((char *) acStack_e0 + len, (char *) auStack_110, 0x39 - len);
auStack_64[1] = 0;
strncpy((char *) acStack_a6, (char *) acStack_e0, 0x3f);
len = strlen((char *) acStack_a6);
strncpy((char *) acStack_a6 + len, ".nsbmd", 0x3f - len);
func_02015628((char *) auStack_64, (char *) acStack_a6, 0, &data_ov110_02186240,
sizeof(UnkStruct_02186240));
func_02015664((char *) auStack_64, 0x10);
strncpy((char *) acStack_a6, (char *) acStack_e0, 0x3f);
len = strlen((char *) acStack_a6);
strncpy((char *) acStack_a6 + len, ".nsbtx", 0x3f - len);
func_020156c8((char *) auStack_48, (char *) acStack_a6, 0);
idStr[0] = 0;
idStr[1] = 0;
func_02015ea8(niVar10, idStr);
idStr[4] = '\0';
unk32 var_r1_2;
UnkResourceStruct *ret =
func_ov000_0205abcc((char *) auStack_64, (char *) auStack_48, 0, 1, this->mUnk_30->mUnk_24);
strncpy((char *) pathBuffer, "Player/get/", 0x39);
size_t l = strlen((char *) pathBuffer);
strncpy((char *) pathBuffer + l, (char *) idStr, 0x39 - l);
pathBuffer[31] = '\0';
this->mUnk_8C.vfunc_08(GetUnkPointer1_Impl(ret));
func_020156f4((char *) auStack_48);
func_02015644((char *) auStack_64);
strncpy(modelPath, (char *) pathBuffer, 0x3F);
l = strlen(modelPath);
strncpy(modelPath + l, data_ov000_020aa248, 0x3F - l);
UnkFileSystem4 fs4(modelPath, 0, (unk32) &data_ov110_02186240, sizeof(UnkStruct_02186240));
fs4.vfunc_08(0x10);
strncpy(modelPath, (char *) pathBuffer, 0x3F);
l = strlen(modelPath);
strncpy(modelPath + l, data_ov000_020aa240, 0x3F - l);
UnkFileSystem2 fs2(modelPath, 0);
UnkResourceStruct *res = func_ov000_0205abcc((void *) &fs4, (void *) &fs2, 0, 1, this->mUnk_30->mUnk_24);
this->mUnk_8C.vfunc_08(GetUnkPointer1_Impl(res));
}
switch (this->mUnk_54.mItemId) {
@@ -409,8 +624,7 @@ ARM void PlayerGet::vfunc_0c(UnkStruct_PlayerGet_vfunc_0c_param1 *param1) {
}
UnkStruct_027e09bc_0c *uVar11 = data_027e09bc->mUnk_0C;
unk32 uVar6 = func_ov000_02077590(4);
uVar11->func_ov000_0207834c(this->mUnk_34, uVar6, 0);
uVar11->func_ov000_0207834c(this->mUnk_34, func_ov000_02077590(4), 0);
UnkStruct_PlayerGet_48 *pUnk_48 = this->mUnk_48;
pUnk_48->mUnk_42 = 0x1000;
@@ -418,19 +632,48 @@ ARM void PlayerGet::vfunc_0c(UnkStruct_PlayerGet_vfunc_0c_param1 *param1) {
pUnk_48->mUnk_5E = 0x1000;
pUnk_48->mUnk_63 = 0;
if (this->mUnk_44 != NULL) {
if (this->mUnk_44->mUnk_00 != NULL) {
this->mUnk_64.func_ov000_0208a100();
}
// pUnk24 = this->mUnk_24;
bool bVar8;
bool var_r1_4 = 0;
void **temp_r5_2 = this->mUnk_24->mUnk_78;
if (temp_r5_2 != NULL) {
u16 temp_r6 = *(u16 *) temp_r5_2;
bool var_r3 = 1;
bool var_r2 = 0;
// ...
if ((temp_r6 != 0x100) && (temp_r6 != 0x101)) {
var_r3 = 0;
}
UnkStruct_ov000_0208f820_28_98 *pUnk28_98 = this->mUnk_28->mUnk_98;
if (!bVar8 && pUnk28_98 != NULL) {
pUnk28_98->mUnk_40 |= 0x10;
this->mUnk_64.func_ov000_0208a100();
if (var_r3 != 0) {
bool var_r0_2;
if (temp_r6 == 0x101) {
var_r0_2 = 0;
} else {
var_r0_2 = ((u16 *) temp_r5_2)[1];
}
if (var_r0_2 == 1) {
var_r2 = 1;
}
}
if (var_r2 != 0) {
var_r1_4 = 1;
}
}
if (!var_r1_4) {
UnkStruct_ov000_0208f820_28_98 *pUnk28_98 = this->mUnk_28->mUnk_98;
if (pUnk28_98 != NULL) {
UnkStruct_PlayerGet_64 *ptr = &pUnk28_98->mUnk_38;
ptr->mUnk_40 |= 0x10;
this->mUnk_64.func_ov000_0208a100();
}
}
this->mUnk_73 = 0;
@@ -441,28 +684,33 @@ ARM void PlayerGet::vfunc_0c(UnkStruct_PlayerGet_vfunc_0c_param1 *param1) {
case ItemId_27:
case ItemId_28:
case ItemId_29:
data_ov000_020b51b8.func_ov000_0206c96c(data_027e0cd8->mUnk_0C->func_ov000_02080a44());
this->mUnk_73 = 1;
break;
default:
return;
break;
}
data_ov000_020b51b8.func_ov000_0206c96c(data_027e0cd8->mUnk_0C->func_ov000_02080a44());
this->mUnk_73 = 1;
break;
case 0x3B:
this->mUnk_72 = 0;
if (this->mUnk_54.mItemId != ItemId_Nothing) {
unk32 uStack_f0[4];
Vec3p VStack_fc;
Vec3p_Add(this->mUnk_34, &data_ov110_021861ec.mUnk_00, &VStack_fc);
data_027e0cec->func_ov000_0209feac(0x874, &VStack_fc, 1, 0, 0);
uStack_f0[0] = 0x870;
uStack_f0[1] = 0x871;
uStack_f0[2] = 0x872;
uStack_f0[0] = 0x870;
uStack_f0[3] = 0x873;
data_027e0cec->func_ov000_020a0000(this->mUnk_EC, this->mUnk_FC, uStack_f0, &VStack_fc, 1);
data_027e0cec->func_ov000_020a0000(this->mUnk_EC, &this->mUnk_FC, uStack_f0, &VStack_fc, 1);
}
data_027e0cf8->func_ov024_020c7828(this->mUnk_54.mItemId);
UnkStruct_ov000_02067bc4::UnkStruct1 auStack_30;
data_ov000_020b504c.func_ov000_02067cf8(ItemManager::func_ov110_02185da4(this->mUnk_54.mItemId), 0, &auStack_30);
data_ov000_020b504c.func_ov000_02067cf8(ItemManager::GetBmgIDFromItem(this->mUnk_54.mItemId), 0, &auStack_30);
break;
default:
break;
@@ -473,7 +721,6 @@ const UnkStruct_ov110_021861ec data_ov110_021861ec(0x5E3, 0x152D, 0xCD);
ARM void PlayerGet::vfunc_10(unk32 param1, unk32 param2) {
unk32 var_r1;
MapObject **temp_r0_6;
s32 temp_r5;
bool temp_r6;
s32 var_r0;
@@ -644,9 +891,9 @@ ARM void PlayerGet::vfunc_10(unk32 param1, unk32 param2) {
}
if (*(u16 *) this->mUnk_54.mUnk_00 == 0x1000) {
UnkStruct_func_01fff498 stack;
stack.ptrIndex = this->mUnk_54.mUnk_00[0];
stack.valueIndex = this->mUnk_54.mUnk_00[1];
Vec2b stack;
stack.x = this->mUnk_54.mUnk_00[0];
stack.y = this->mUnk_54.mUnk_00[1];
MapObject *pMapObj = gpMapObjManager->func_01fff498(stack);
@@ -665,10 +912,11 @@ ARM void PlayerGet::vfunc_10(unk32 param1, unk32 param2) {
}
if (var_r5_2 != MapObjectId_None) {
data_ov000_020b34c4.mUnk_04 = var_r5_2;
temp_r0_6 = gpMapObjManager->func_01fff520(&data_ov000_020b34c4, gpMapObjManager->mMapObjTable);
data_ov000_020b34c4.mUnk_04 = var_r5_2;
MapObjectChestBase **temp_r0_6 = (MapObjectChestBase **) gpMapObjManager->func_01fff520(
&data_ov000_020b34c4, gpMapObjManager->mMapObjTable);
if (temp_r0_6 == gpMapObjManager->mUnk_08) {
if ((MapObject **) temp_r0_6 == gpMapObjManager->mUnk_08) {
(*temp_r0_6)->func_ov031_02103878();
}
}
@@ -797,10 +1045,10 @@ THUMB void UnkStruct_027e0ce0_34::func_ov110_02185d3c(ItemId itemId) {
}
}
ARM unk32 ItemManager::func_ov110_02185da4(unk32 param1) {
return data_ov110_02185de8[param1];
ARM u32 ItemManager::GetBmgIDFromItem(ItemId itemId) {
return sBMGItemMap[itemId];
}
ARM ItemFlag ItemManager::func_ov110_02185db4(ItemId itemId) {
return data_ov110_02185fbc[itemId];
ARM AdventureFlag ItemManager::GetAdvFlagFromItem(ItemId itemId) {
return sAdvFlagItemMap[itemId];
}
@@ -37,9 +37,9 @@ ARM PlayerSceneChange::PlayerSceneChange() {
ARM PlayerSceneChange::~PlayerSceneChange() {
UnkStruct_ov000_0208f820_28 *pUnk_28 = this->mUnk_28;
pUnk_28->mUnk_40 &= 0xFFFD;
pUnk_28->mUnk_38.mUnk_40 &= 0xFFFD;
if (pUnk_28->mUnk_40 == 0) {
if (pUnk_28->mUnk_38.mUnk_40 == 0) {
pUnk_28->mUnk_38.~UnkStruct_PlayerGet_64();
}
@@ -78,9 +78,9 @@ extern "C" void func_01ff930c(UnkStruct_ov000_0208f820_40 *, unk16, unk32);
// https://decomp.me/scratch/c7PhN
ARM void PlayerSceneChange::vfunc_0c(UnkStruct_PlayerGet_vfunc_0c_param1 *param1) {
q4 *pSinCosTable = gSinCosTable;
UnkStruct_func_01fff498 stack4;
Vec2b stack4;
s16 stack3;
UnkStruct_func_01fff498 stack2;
Vec2b stack2;
UnkStackStruct1 stack;
switch (param1->mUnk_04) {
@@ -147,8 +147,8 @@ ARM void PlayerSceneChange::vfunc_0c(UnkStruct_PlayerGet_vfunc_0c_param1 *param1
break;
default:
if (this->mUnk_2C->mUnk_150 == 0x1000) {
stack2.ptrIndex = this->mUnk_2C->mUnk_150 >> 0x10;
stack2.valueIndex = 0;
stack2.y = this->mUnk_2C->mUnk_150 >> 0x10;
stack2.x = 0;
MapObjectUnkDRTY *pDRTY = (MapObjectUnkDRTY *) gpMapObjManager->func_01fff498(stack2);
@@ -287,8 +287,8 @@ ARM void PlayerSceneChange::vfunc_0c(UnkStruct_PlayerGet_vfunc_0c_param1 *param1
return;
}
stack4.ptrIndex = this->mUnk_8C >> 16;
stack4.valueIndex = 0;
stack4.y = this->mUnk_8C >> 16;
stack4.x = 0;
MapObject *target = gpMapObjManager->func_01fff498(stack4);
if (target != NULL && target->GetMapObjectId() == MapObjectId_WPHL) {
@@ -648,7 +648,7 @@ ARM void PlayerSceneChange::vfunc_10(unk32 param1, unk32 param2) {
this->mUnk_6C--;
if (this->mUnk_6C < 0x37) {
this->mUnk_28->mUnk_40 |= 0x02;
this->mUnk_28->mUnk_38.mUnk_40 |= 0x02;
break;
}
@@ -31,7 +31,7 @@ ARM void PlayerSceneChange2::vfunc_0c(UnkStruct_PlayerGet_vfunc_0c_param1 *param
func_ov000_0208ba10(auStack_18, &this->mUnk_24->mUnk_94, 0);
if (this->mUnk_44[0] != 0) {
if (this->mUnk_44->mUnk_00 != 0) {
this->mUnk_28->func_ov000_0208cf20(0x1400, 0);
}
+3 -3
View File
@@ -9,12 +9,12 @@ struct UnkStruct {
extern "C" void func_01ffecdc(int, void *);
MapObject *MapObjectManager::func_01fff498(UnkStruct_func_01fff498 param1) {
if (this->mUnk_0C[param1.valueIndex][param1.ptrIndex] < 0) {
MapObject *MapObjectManager::func_01fff498(Vec2b param1) {
if (this->mUnk_0C[param1.y][param1.x] < 0) {
return NULL;
}
return this->mMapObjTable[this->mUnk_0C[param1.valueIndex][param1.ptrIndex]];
return this->mMapObjTable[this->mUnk_0C[param1.y][param1.x]];
}
void MapObjectManager::func_01fff4cc(UnkCallback_func_01fff4cc param1, void *param2) {
+6 -1
View File
@@ -163,6 +163,7 @@ config.libs = [
Object("000_Second/Game/GameModeManagerBase_104.cpp"),
Object("000_Second/UnkSystem1_Base.cpp"),
Object("000_Second/UnkSystem1_Derived1.cpp"),
Object("000_Second/data_ov000_020af58c.cpp"),
Object("000_Second/Actor/Actor.cpp"),
Object("000_Second/Actor/ActorManager.cpp"),
Object("000_Second/Actor/ActorUnkSWOB.cpp"),
@@ -184,6 +185,7 @@ config.libs = [
"Overlay 1",
[
Object("001_SceneInit/Actor/ActorManager_001.cpp"),
Object("001_SceneInit/Item/ItemManager_001.cpp"),
]
),
GameLib(
@@ -231,6 +233,7 @@ config.libs = [
GameLib(
"Overlay 24",
[
Object("024_MainGame/MiscAdvManager.cpp"),
Object("024_MainGame/Actor/ActorUnkOBPC.cpp"),
]
),
@@ -365,6 +368,7 @@ config.libs = [
GameLib(
"Overlay 31",
[
Object("031_Land/UnkStruct_027e0d34.cpp"),
Object("031_Land/Actor/ActorRupee.cpp"),
Object("031_Land/Actor/ActorUnkAROW.cpp"),
Object("031_Land/Actor/ActorUnkATTG.cpp"),
@@ -421,7 +425,8 @@ config.libs = [
Object("031_Land/MapObject/MapObjectUnkTATZ.cpp"),
Object("031_Land/MapObject/MapObjectUnkTRED.cpp"),
Object("031_Land/MapObject/MapObjectUnkTREN.cpp"),
Object("031_Land/MapObject/MapObjectUnkTRES.cpp"),
Object("031_Land/MapObject/MapObjectTreasureSpawned.cpp"),
Object("031_Land/MapObject/MapObjectChestBase.cpp"),
Object("031_Land/MapObject/MapObjectUnkTREW.cpp"),
Object("031_Land/MapObject/MapObjectUnkTRWS.cpp"),
Object("031_Land/MapObject/MapObjectUnkTSUB.cpp"),