Decompile overlay 1 (Part 2) (#91)

* UnkStruct_027e09b8_001 OK

* match func_ov001_020b7830

* fix build issues

* UnkStruct_027e0cd8_001 49%

* UnkStruct_027e0cd8_001 OK

* fix build issues

* UnkStruct_027e0cd8_0C_001 92%

* port some MSL C++ headers from rb3 and key decomps

* fix build issues

* UnkStruct_027e0cd8_0C_001 98%
This commit is contained in:
Yanis
2026-06-28 15:29:34 +02:00
committed by GitHub
parent af4e4dcf5d
commit b116e79e9f
110 changed files with 5210 additions and 635 deletions
+3 -3
View File
@@ -184,8 +184,8 @@ func_01ffe954 kind:function(arm,size=0x80) addr:0x01ffe954
func_01ffe9d4 kind:function(arm,size=0x308) addr:0x01ffe9d4
func_01ffecdc kind:function(arm,size=0xd0) addr:0x01ffecdc
func_01ffedac kind:function(arm,size=0x48) addr:0x01ffedac
_ZN21UnkStruct_027e0cd8_0c13func_01ffedf4EP5Vec2b kind:function(arm,size=0x1c) addr:0x01ffedf4
func_01ffee10 kind:function(arm,size=0x124) addr:0x01ffee10
_ZN26UnkStruct_027e0cd8_0C_Base13func_01ffedf4EP5Vec2b kind:function(arm,size=0x1c) addr:0x01ffedf4
_ZN26UnkStruct_027e0cd8_0C_Base8vfunc_28EP7VecFx32ii kind:function(arm,size=0x124) addr:0x01ffee10
func_01ffef34 kind:function(arm,size=0x128) addr:0x01ffef34
func_01fff05c kind:function(arm,size=0x58) addr:0x01fff05c
func_01fff0b4 kind:function(arm,size=0x94) addr:0x01fff0b4
@@ -212,7 +212,7 @@ _ZN9MapObject13func_01fff590Ei kind:function(arm,size=0x40) addr:0x01fff590
_ZN5Actor13func_01fff5d0Eii kind:function(arm,size=0x3c) addr:0x01fff5d0
_ZN18UnkStruct_027e09b413func_01fff60cEiiihii kind:function(arm,size=0x8c) addr:0x01fff60c
func_01fff698 kind:function(arm,size=0x38) addr:0x01fff698
_ZN16MapObjectManager13func_01fff6d0EP7VecFx32PiS2_ kind:function(arm,size=0x74) addr:0x01fff6d0
func_01fff6d0 kind:function(arm,size=0x74) addr:0x01fff6d0
func_01fff744 kind:function(arm,size=0x20) addr:0x01fff744
func_01fff764 kind:function(arm,size=0xec) addr:0x01fff764
func_01fff850 kind:function(arm,size=0x158) addr:0x01fff850
+54 -54
View File
@@ -219,8 +219,8 @@ _ZN32UnkStruct_027e0960_TableEntry_048vfunc_10Ev kind:function(arm,size=0xc) add
_ZN32UnkStruct_027e0960_TableEntry_048vfunc_1CEv kind:function(arm,size=0x1c) addr:0x0205a0a8
func_ov000_0205a0c4 kind:function(thumb,size=0x12) addr:0x0205a0c4
_ZN18UnkStruct_027e0960D1Ev kind:function(thumb,size=0x44) addr:0x0205a0d8
func_ov000_0205a11c kind:function(arm,size=0x4) addr:0x0205a11c
func_ov000_0205a120 kind:function(arm,size=0x40) addr:0x0205a120
_ZN18UnkStruct_027e096019func_ov000_0205a11cEv kind:function(arm,size=0x4) addr:0x0205a11c
_ZN18UnkStruct_027e096019func_ov000_0205a120Ev kind:function(arm,size=0x40) addr:0x0205a120
_ZN18UnkStruct_027e096019func_ov000_0205a160Ev kind:function(arm,size=0x4) addr:0x0205a160
_ZN18UnkStruct_027e096019func_ov000_0205a164Ev kind:function(arm,size=0x40) addr:0x0205a164
func_ov000_0205a1a4 kind:function(arm,size=0x34) addr:0x0205a1a4
@@ -987,10 +987,10 @@ func_ov000_02070148 kind:function(arm,size=0x1c) addr:0x02070148
func_ov000_02070164 kind:function(arm,size=0xfc) addr:0x02070164
_ZN18UnkStruct_027e09a021GetSceneIndexFromNameEPKc kind:function(arm,size=0x3c) addr:0x02070260
_ZN18UnkStruct_027e09a014GetCourseEntryEj kind:function(arm,size=0xc) addr:0x0207029c
func_ov000_020702a8 kind:function(arm,size=0x14) addr:0x020702a8
_ZN18UnkStruct_027e09a019func_ov000_020702a8Ej kind:function(arm,size=0x14) addr:0x020702a8
_ZN18UnkStruct_027e09a017GetRoomEntryIndexEv kind:function(arm,size=0x40) addr:0x020702bc
_ZN18UnkStruct_027e09a012GetRoomEntryEji kind:function(arm,size=0x14) addr:0x020702fc
func_ov000_02070310 kind:function(arm,size=0x68) addr:0x02070310
_ZN18UnkStruct_027e09a019func_ov000_02070310EjhPv kind:function(arm,size=0x68) addr:0x02070310
_ZN18UnkStruct_027e09a019func_ov000_02070378Ej kind:function(arm,size=0x44) addr:0x02070378
func_ov000_020703bc kind:function(arm,size=0x8) addr:0x020703bc
func_ov000_020703c4 kind:function(arm,size=0x5c) addr:0x020703c4
@@ -1080,7 +1080,7 @@ func_ov000_0207246c kind:function(arm,size=0x204) addr:0x0207246c
func_ov000_02072670 kind:function(arm,size=0x14) addr:0x02072670
func_ov000_02072684 kind:function(arm,size=0x18) addr:0x02072684
func_ov000_0207269c kind:function(arm,size=0x54) addr:0x0207269c
_ZN18UnkStruct_027e09ac19func_ov000_020726f0Eiii kind:function(arm,size=0x2d4) addr:0x020726f0
_ZN18UnkStruct_027e09ac19func_ov000_020726f0Etii kind:function(arm,size=0x2d4) addr:0x020726f0
_ZN18UnkStruct_027e09ac19func_ov000_020729c4EP21UnkStruct_027e09ac_14ttss kind:function(arm,size=0x88) addr:0x020729c4
func_ov000_02072a4c kind:function(arm,size=0xbc) addr:0x02072a4c
func_ov000_02072b08 kind:function(arm,size=0x1c) addr:0x02072b08
@@ -1090,7 +1090,7 @@ func_ov000_02072ba8 kind:function(arm,size=0x24) addr:0x02072ba8
func_ov000_02072bcc kind:function(arm,size=0xa4) addr:0x02072bcc
func_ov000_02072c70 kind:function(arm,size=0x44) addr:0x02072c70
func_ov000_02072cb4 kind:function(arm,size=0x10) addr:0x02072cb4
func_ov000_02072cc4 kind:function(arm,size=0x10) addr:0x02072cc4
_ZN18UnkStruct_027e09b019func_ov000_02072cc4Eii kind:function(arm,size=0x10) addr:0x02072cc4
func_ov000_02072cd4 kind:function(arm,size=0x24) addr:0x02072cd4
func_ov000_02072cf8 kind:function(arm,size=0x20) addr:0x02072cf8
func_ov000_02072d18 kind:function(arm,size=0x10) addr:0x02072d18
@@ -1106,15 +1106,15 @@ func_ov000_02072fd0 kind:function(arm,size=0xb0) addr:0x02072fd0
func_ov000_02073080 kind:function(arm,size=0x2c) addr:0x02073080
_ZN17ActorUnk_vfunc_B0C1Ev kind:function(arm,size=0x58) addr:0x020730ac
_ZN20stack_ov000_02073578C1Ev kind:function(arm,size=0x2c) addr:0x02073104
func_ov000_02073130 kind:function(arm,size=0x4) addr:0x02073130
_ZN19func_ov000_02073134D0Ev kind:function(arm,size=0x14) addr:0x02073134
_ZN26UnkStruct_027e09b8_04_BaseD1Ev kind:function(arm,size=0x4) addr:0x02073130
_ZN26UnkStruct_027e09b8_04_BaseD0Ev kind:function(arm,size=0x14) addr:0x02073134
func_ov000_02073148 kind:function(arm,size=0x4) addr:0x02073148
func_ov000_0207314c kind:function(arm,size=0x8) addr:0x0207314c
func_ov000_02073154 kind:function(arm,size=0x14) addr:0x02073154
func_ov000_02073168 kind:function(arm,size=0x4) addr:0x02073168
func_ov000_0207316c kind:function(arm,size=0x4) addr:0x0207316c
func_ov000_02073170 kind:function(arm,size=0x8) addr:0x02073170
func_ov000_02073178 kind:function(arm,size=0xc) addr:0x02073178
_ZN26UnkStruct_027e09b8_04_Base8vfunc_08Ev kind:function(arm,size=0x8) addr:0x0207314c
_ZN26UnkStruct_027e09b8_04_Base8vfunc_0CEv kind:function(arm,size=0x14) addr:0x02073154
_ZN26UnkStruct_027e09b8_04_Base8vfunc_14Ev kind:function(arm,size=0x4) addr:0x02073168
_ZN26UnkStruct_027e09b8_04_Base8vfunc_18Ev kind:function(arm,size=0x4) addr:0x0207316c
_ZN26UnkStruct_027e09b8_04_Base8vfunc_1CEv kind:function(arm,size=0x8) addr:0x02073170
_ZN26UnkStruct_027e09b8_04_Base8vfunc_20Ev kind:function(arm,size=0xc) addr:0x02073178
_ZN20MapObject_UnkStruct19vfunc2_00Ev kind:function(arm,size=0x4) addr:0x02073184
_ZN20MapObject_UnkStruct19vfunc2_04Ev kind:function(arm,size=0x4) addr:0x02073188
_ZN20MapObject_UnkStruct19vfunc2_08Ev kind:function(arm,size=0x4) addr:0x0207318c
@@ -1132,18 +1132,18 @@ func_ov000_0207332c kind:function(arm,size=0x5c) addr:0x0207332c
_ZN18UnkStruct_027e09b819func_ov000_02073388EPvi kind:function(arm,size=0xe8) addr:0x02073388
_ZN18UnkStruct_027e09b819func_ov000_02073470EPvi kind:function(arm,size=0x108) addr:0x02073470
_ZN18UnkStruct_027e09b819func_ov000_02073578EPvi kind:function(arm,size=0x98) addr:0x02073578
func_ov000_02073610 kind:function(arm,size=0xb0) addr:0x02073610
func_ov000_020736c0 kind:function(arm,size=0x10) addr:0x020736c0
_ZN18UnkStruct_027e09b819func_ov000_02073610EPvi kind:function(arm,size=0xb0) addr:0x02073610
_ZN18UnkStruct_027e09b819func_ov000_02074d78Ei kind:function(arm,size=0x10) addr:0x020736c0
func_ov000_020736d0 kind:function(arm,size=0x8) addr:0x020736d0
func_ov000_020736d8 kind:function(arm,size=0x8) addr:0x020736d8
func_ov000_020736e0 kind:function(arm,size=0x38) addr:0x020736e0
_ZN21UnkStruct_027e09b8_00C1Ev kind:function(arm,size=0x38) addr:0x020736e0
func_ov000_02073718 kind:function(arm,size=0x2c) addr:0x02073718
func_ov000_02073744 kind:function(arm,size=0x54) addr:0x02073744
func_ov000_02073798 kind:function(arm,size=0x60) addr:0x02073798
func_ov000_020737f8 kind:function(arm,size=0x94) addr:0x020737f8
func_ov000_0207388c kind:function(arm,size=0x124) addr:0x0207388c
func_ov000_020739b0 kind:function(arm,size=0x1ac) addr:0x020739b0
func_ov000_02073b5c kind:function(arm,size=0x64) addr:0x02073b5c
_ZN21UnkStruct_027e09b8_0019func_ov000_02073b5cEv kind:function(arm,size=0x64) addr:0x02073b5c
func_ov000_02073bc0 kind:function(arm,size=0x114) addr:0x02073bc0
func_ov000_02073cd4 kind:function(arm,size=0x3c) addr:0x02073cd4
func_ov000_02073d10 kind:function(arm,size=0x170) addr:0x02073d10
@@ -1159,7 +1159,7 @@ func_ov000_0207446c kind:function(arm,size=0xc4) addr:0x0207446c
func_ov000_02074530 kind:function(arm,size=0xbc) addr:0x02074530
_ZN19func_ov000_020745ecD1Ev kind:function(arm,size=0x28) addr:0x020745ec
_ZN19func_ov000_02074614D0Ev kind:function(arm,size=0x30) addr:0x02074614
func_ov000_02074644 kind:function(arm,size=0x6c) addr:0x02074644
_ZN21UnkStruct_027e09b8_10C1Ev kind:function(arm,size=0x6c) addr:0x02074644
func_ov000_020746b0 kind:function(arm,size=0x8) addr:0x020746b0
func_ov000_020746b8 kind:function(arm,size=0xc) addr:0x020746b8
func_ov000_020746c4 kind:function(arm,size=0x50) addr:0x020746c4
@@ -1183,7 +1183,7 @@ func_ov000_02074f74 kind:function(arm,size=0x38) addr:0x02074f74
func_ov000_02074fac kind:function(arm,size=0x28) addr:0x02074fac
func_ov000_02074fd4 kind:function(arm,size=0x14) addr:0x02074fd4
_ZN19func_ov000_02074fe8D0Ev kind:function(arm,size=0x40) addr:0x02074fe8
func_ov000_02075028 kind:function(arm,size=0x54) addr:0x02075028
_ZN25UnkSystem1_ov000_Derived3C1Ev kind:function(arm,size=0x54) addr:0x02075028
func_ov000_0207507c kind:function(arm,size=0x80) addr:0x0207507c
func_ov000_020750fc kind:function(arm,size=0x28) addr:0x020750fc
func_ov000_02075124 kind:function(arm,size=0x38) addr:0x02075124
@@ -1222,7 +1222,7 @@ func_ov000_0207715c kind:function(arm,size=0x2c) addr:0x0207715c
func_ov000_02077188 kind:function(arm,size=0x14) addr:0x02077188
func_ov000_0207719c kind:function(arm,size=0x1c) addr:0x0207719c
func_ov000_020771b8 kind:function(arm,size=0x10) addr:0x020771b8
func_ov000_020771c8 kind:function(arm,size=0x188) addr:0x020771c8
_ZN18UnkStruct_027e09bc19func_ov000_020771c8Ev kind:function(arm,size=0x188) addr:0x020771c8
func_ov000_02077350 kind:function(arm,size=0xf4) addr:0x02077350
func_ov000_02077444 kind:function(arm,size=0x24) addr:0x02077444
func_ov000_02077468 kind:function(arm,size=0x18) addr:0x02077468
@@ -1454,7 +1454,7 @@ func_ov000_0207d898 kind:function(arm,size=0x5c) addr:0x0207d898
func_ov000_0207d8f4 kind:function(arm,size=0x6c) addr:0x0207d8f4
func_ov000_0207d960 kind:function(arm,size=0x98) addr:0x0207d960
func_ov000_0207d9f8 kind:function(arm,size=0x48) addr:0x0207d9f8
func_ov000_0207da40 kind:function(arm,size=0x20c) addr:0x0207da40
_ZN18UnkStruct_027e09c019func_ov000_0207da40Ev kind:function(arm,size=0x20c) addr:0x0207da40
func_ov000_0207dc4c kind:function(arm,size=0x18) addr:0x0207dc4c
func_ov000_0207dc64 kind:function(arm,size=0x24) addr:0x0207dc64
func_ov000_0207dc88 kind:function(arm,size=0x210) addr:0x0207dc88
@@ -1534,20 +1534,20 @@ func_ov000_0207faac kind:function(arm,size=0x8) addr:0x0207faac
func_ov000_0207fab4 kind:function(arm,size=0x8) addr:0x0207fab4
func_ov000_0207fabc kind:function(arm,size=0x10) addr:0x0207fabc
func_ov000_0207facc kind:function(arm,size=0x64) addr:0x0207facc
func_ov000_0207fb30 kind:function(arm,size=0x30) addr:0x0207fb30
_ZN33UnkStruct_027e0cd8_0C_Base_148_00C1EP12ZMBEntryARAB kind:function(arm,size=0x30) addr:0x0207fb30
func_ov000_0207fb60 kind:function(arm,size=0x30) addr:0x0207fb60
func_ov000_0207fb90 kind:function(arm,size=0x8) addr:0x0207fb90
func_ov000_0207fb98 kind:function(arm,size=0x38) addr:0x0207fb98
func_ov000_0207fbd0 kind:function(arm,size=0x40) addr:0x0207fbd0
func_ov000_0207fc10 kind:function(arm,size=0x44) addr:0x0207fc10
func_ov000_0207fc54 kind:function(arm,size=0x3c) addr:0x0207fc54
_ZN33UnkStruct_027e0cd8_0C_Base_148_01C1EP12ZMBEntryARAB kind:function(arm,size=0x44) addr:0x0207fc10
_ZN33UnkStruct_027e0cd8_0C_Base_148_02C1EP12ZMBEntryARAB kind:function(arm,size=0x3c) addr:0x0207fc54
func_ov000_0207fc90 kind:function(arm,size=0x3c) addr:0x0207fc90
func_ov000_0207fccc kind:function(arm,size=0x44) addr:0x0207fccc
func_ov000_0207fd10 kind:function(arm,size=0x4) addr:0x0207fd10
func_ov000_0207fd14 kind:function(arm,size=0x4) addr:0x0207fd14
func_ov000_0207fd18 kind:function(arm,size=0x28) addr:0x0207fd18
func_ov000_0207fd40 kind:function(arm,size=0x38) addr:0x0207fd40
func_ov000_0207fd78 kind:function(arm,size=0x4) addr:0x0207fd78
_ZN26UnkStruct_027e0cd8_0C_Base8vfunc_24Ev kind:function(arm,size=0x4) addr:0x0207fd10
_ZN26UnkStruct_027e0cd8_0C_Base8vfunc_10Ev kind:function(arm,size=0x4) addr:0x0207fd14
_ZN26UnkStruct_027e0cd8_0C_Base8vfunc_0CEv kind:function(arm,size=0x28) addr:0x0207fd18
_ZN26UnkStruct_027e0cd8_0C_Base8vfunc_14Ev kind:function(arm,size=0x38) addr:0x0207fd40
_ZN26UnkStruct_027e0cd8_0C_Base8vfunc_18Ev kind:function(arm,size=0x4) addr:0x0207fd78
Unknown_func_ov000_0207fd7c kind:function(arm,size=0x40) addr:0x0207fd7c
func_ov000_0207fdbc kind:function(arm,size=0x250) addr:0x0207fdbc
func_ov000_0208000c kind:function(arm,size=0x5c) addr:0x0208000c
@@ -1555,30 +1555,30 @@ func_ov000_02080068 kind:function(arm,size=0x18) addr:0x02080068
func_ov000_02080080 kind:function(arm,size=0x18) addr:0x02080080
func_ov000_02080098 kind:function(arm,size=0xc8) addr:0x02080098
func_ov000_02080160 kind:function(arm,size=0x20) addr:0x02080160
_ZN21UnkStruct_027e0cd8_0c19func_ov000_02080180EPv kind:function(arm,size=0x10) addr:0x02080180
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_02080180EPv kind:function(arm,size=0x10) addr:0x02080180
func_ov000_02080190 kind:function(arm,size=0x20) addr:0x02080190
_ZN21UnkStruct_027e0cd8_0c19func_ov000_020801b0EP5Vec2bii kind:function(arm,size=0x60) addr:0x020801b0
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_020801b0EP5Vec2bii kind:function(arm,size=0x60) addr:0x020801b0
func_ov000_02080210 kind:function(arm,size=0x78) addr:0x02080210
func_ov000_02080288 kind:function(arm,size=0x64) addr:0x02080288
_ZN21UnkStruct_027e0cd8_0c19func_ov000_020802ecEtP7VecFx32 kind:function(arm,size=0x78) addr:0x020802ec
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_020802ecEtP7VecFx32 kind:function(arm,size=0x78) addr:0x020802ec
func_ov000_02080364 kind:function(arm,size=0x88) addr:0x02080364
_ZN21UnkStruct_027e0cd8_0c19func_ov000_020803ecEt kind:function(arm,size=0x150) addr:0x020803ec
_ZN21UnkStruct_027e0cd8_0c19func_ov000_0208053cEt kind:function(arm,size=0xe4) addr:0x0208053c
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_020803ecEt kind:function(arm,size=0x150) addr:0x020803ec
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_0208053cEt kind:function(arm,size=0xe4) addr:0x0208053c
func_ov000_02080620 kind:function(arm,size=0x38) addr:0x02080620
func_ov000_02080658 kind:function(arm,size=0xd8) addr:0x02080658
func_ov000_02080730 kind:function(arm,size=0x64) addr:0x02080730
func_ov000_02080794 kind:function(arm,size=0xac) addr:0x02080794
func_ov000_02080840 kind:function(arm,size=0x6c) addr:0x02080840
func_ov000_020808ac kind:function(arm,size=0x20) addr:0x020808ac
func_ov000_020808cc kind:function(arm,size=0x8) addr:0x020808cc
_ZN26UnkStruct_027e0cd8_0C_Base8vfunc_2CEv kind:function(arm,size=0x20) addr:0x020808ac
_ZN26UnkStruct_027e0cd8_0C_Base8vfunc_3CEv kind:function(arm,size=0x8) addr:0x020808cc
func_ov000_020808d4 kind:function(arm,size=0x20) addr:0x020808d4
_ZN21UnkStruct_027e0cd8_0c19func_ov000_020808f4EPvS0_i kind:function(arm,size=0x5c) addr:0x020808f4
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_020808f4EPvS0_i kind:function(arm,size=0x5c) addr:0x020808f4
func_ov000_02080950 kind:function(arm,size=0x48) addr:0x02080950
func_ov000_02080998 kind:function(arm,size=0x40) addr:0x02080998
func_ov000_020809d8 kind:function(arm,size=0x6c) addr:0x020809d8
_ZN21UnkStruct_027e0cd8_0c19func_ov000_02080a44Ev kind:function(arm,size=0x18) addr:0x02080a44
_ZN21UnkStruct_027e0cd8_0c19func_ov000_02080a5cEP7VecFx32 kind:function(arm,size=0x1c) addr:0x02080a5c
_ZN21UnkStruct_027e0cd8_0c19func_ov000_02080a78EP7VecFx32 kind:function(arm,size=0x18) addr:0x02080a78
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_02080a44Ev kind:function(arm,size=0x18) addr:0x02080a44
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_02080a5cEP7VecFx32 kind:function(arm,size=0x1c) addr:0x02080a5c
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_02080a78EP7VecFx32 kind:function(arm,size=0x18) addr:0x02080a78
func_ov000_02080a90 kind:function(arm,size=0x1c) addr:0x02080a90
func_ov000_02080aac kind:function(arm,size=0x18) addr:0x02080aac
func_ov000_02080ac4 kind:function(arm,size=0x68) addr:0x02080ac4
@@ -1593,11 +1593,11 @@ func_ov000_020810b8 kind:function(arm,size=0x7c) addr:0x020810b8
func_ov000_02081134 kind:function(arm,size=0x4) addr:0x02081134
func_ov000_02081138 kind:function(arm,size=0x18) addr:0x02081138
func_ov000_02081150 kind:function(arm,size=0x70) addr:0x02081150
func_ov000_020811c0 kind:function(arm,size=0xb0) addr:0x020811c0
func_ov000_02081270 kind:function(arm,size=0x24) addr:0x02081270
_ZN21UnkStruct_027e0cd8_04C1Ev kind:function(arm,size=0xb0) addr:0x020811c0
_ZN21UnkStruct_027e0cd8_04D1Ev kind:function(arm,size=0x24) addr:0x02081270
func_ov000_02081294 kind:function(arm,size=0x6c) addr:0x02081294
func_ov000_02081300 kind:function(arm,size=0x54) addr:0x02081300
func_ov000_02081354 kind:function(arm,size=0x118) addr:0x02081354
_ZN21UnkStruct_027e0cd8_0419func_ov000_02081354EPK15CourseListEntryPK29UnkStruct_func_ov000_020702a8P28SaveFile_00000_0000_Data_184b kind:function(arm,size=0x118) addr:0x02081354
func_ov000_0208146c kind:function(arm,size=0x80) addr:0x0208146c
func_ov000_020814ec kind:function(arm,size=0x34) addr:0x020814ec
func_ov000_02081520 kind:function(arm,size=0x54) addr:0x02081520
@@ -1629,7 +1629,7 @@ func_ov000_02081b84 kind:function(arm,size=0x18) addr:0x02081b84
func_ov000_02081b9c kind:function(arm,size=0x58) addr:0x02081b9c
func_ov000_02081bf4 kind:function(arm,size=0x34) addr:0x02081bf4
_ZN18UnkStruct_027e0cd819func_ov000_02081c28Ev kind:function(arm,size=0x78) addr:0x02081c28
func_ov000_02081ca0 kind:function(arm,size=0xa8) addr:0x02081ca0
_ZN18UnkStruct_027e0cd819func_ov000_02081ca0Ev kind:function(arm,size=0xa8) addr:0x02081ca0
func_ov000_02081d48 kind:function(arm,size=0x10) addr:0x02081d48
func_ov000_02081d58 kind:function(arm,size=0x4) addr:0x02081d58
_ZN18UnkStruct_027e0cd819func_ov000_02081d5cEv kind:function(arm,size=0x20) addr:0x02081d5c
@@ -1654,12 +1654,12 @@ _ZN19func_ov000_02082300D0Ev kind:function(arm,size=0x1c) addr:0x02082300
_ZN19func_ov000_0208231cD2Ev kind:function(arm,size=0x14) addr:0x0208231c
func_ov000_02082330 kind:function(arm,size=0x4) addr:0x02082330
func_ov000_02082334 kind:function(arm,size=0x8) addr:0x02082334
func_ov000_0208233c kind:function(arm,size=0x1c) addr:0x0208233c
_ZN29UnkStruct_027e0cd8_0C_Base_88C1Ev kind:function(arm,size=0x1c) addr:0x0208233c
func_ov000_02082358 kind:function(arm,size=0x20) addr:0x02082358
func_ov000_02082378 kind:function(arm,size=0x30) addr:0x02082378
func_ov000_020823a8 kind:function(arm,size=0x258) addr:0x020823a8
_ZN29UnkStruct_027e0cd8_0C_Base_8819func_ov000_020823a8Ei kind:function(arm,size=0x258) addr:0x020823a8
func_ov000_02082600 kind:function(arm,size=0x1c) addr:0x02082600
func_ov000_0208261c kind:function(arm,size=0x68) addr:0x0208261c
_ZN29UnkStruct_027e0cd8_0C_Base_8819func_ov000_0208261cEv kind:function(arm,size=0x68) addr:0x0208261c
func_ov000_02082684 kind:function(arm,size=0x34) addr:0x02082684
func_ov000_020826b8 kind:function(arm,size=0x90) addr:0x020826b8
func_ov000_02082748 kind:function(arm,size=0x14) addr:0x02082748
@@ -2962,12 +2962,12 @@ func_ov000_020a77d0 kind:function(arm,size=0x5c) addr:0x020a77d0
_Z22Cutscene_GetParamEntryi kind:function(arm,size=0x14) addr:0x020a782c
func_ov000_020a7840 kind:function(arm,size=0x84) addr:0x020a7840
_Z27Cutscene_IsAdventureFlagSeti kind:function(arm,size=0x44) addr:0x020a78c4
func_ov000_020a7908 kind:function(arm,size=0xdc) addr:0x020a7908
_ZN21UnkStruct_027e09b8_98C1Ev kind:function(arm,size=0xdc) addr:0x020a7908
func_ov000_020a79e4 kind:function(arm,size=0x6c) addr:0x020a79e4
func_ov000_020a7a50 kind:function(arm,size=0x20) addr:0x020a7a50
func_ov000_020a7a70 kind:function(arm,size=0xa8) addr:0x020a7a70
_ZN21UnkStruct_027e09b8_98D1Ev kind:function(arm,size=0xa8) addr:0x020a7a70
func_ov000_020a7b18 kind:function(arm,size=0x1c) addr:0x020a7b18
func_ov000_020a7b34 kind:function(arm,size=0x74) addr:0x020a7b34
_ZN21UnkStruct_027e09b8_9819func_ov000_020a7b34Ev kind:function(arm,size=0x74) addr:0x020a7b34
func_ov000_020a7ba8 kind:function(arm,size=0x98) addr:0x020a7ba8
func_ov000_020a7c40 kind:function(arm,size=0x4c) addr:0x020a7c40
func_ov000_020a7c8c kind:function(arm,size=0x24) addr:0x020a7c8c
@@ -3503,10 +3503,10 @@ data_ov000_020b2244 kind:data(any) addr:0x020b2244
data_ov000_020b2264 kind:data(any) addr:0x020b2264
data_ov000_020b2290 kind:data(any) addr:0x020b2290
data_ov000_020b22a8 kind:data(any) addr:0x020b22a8
data_ov000_020b22c0 kind:data(any) addr:0x020b22c0
_ZTV21UnkStruct_027e09b8_04 kind:data(any) addr:0x020b22b8
data_ov000_020b22ec kind:data(any) addr:0x020b22ec
_ZTV19data_ov000_020b2314 kind:data(any) addr:0x020b2314
data_ov000_020b234c kind:data(any) addr:0x020b234c
_ZTV21UnkStruct_027e09b8_0C kind:data(any) addr:0x020b2344
data_ov000_020b2378 kind:data(any) addr:0x020b2378
_ZTV19data_ov000_020b237c kind:data(any) addr:0x020b237c
_ZTV19data_ov000_020b2398 kind:data(any) addr:0x020b2398
@@ -3546,7 +3546,7 @@ data_ov000_020b28e0 kind:data(any) addr:0x020b28e0
data_ov000_020b28f8 kind:data(any) addr:0x020b28f8
data_ov000_020b290c kind:data(any) addr:0x020b290c
data_ov000_020b2920 kind:data(any) addr:0x020b2920
data_ov000_020b2940 kind:data(any) addr:0x020b2940
_ZTV10UnkSystem8 kind:data(any) addr:0x020b2938
data_ov000_020b294c kind:data(any) addr:0x020b294c
data_ov000_020b2954 kind:data(any) addr:0x020b2954
data_ov000_020b2964 kind:data(any) addr:0x020b2964
+8 -4
View File
@@ -18,16 +18,20 @@ src/001_SceneInit/CourseList.cpp:
.bss start:0x020c2fe0 end:0x020c40e8
src/001_SceneInit/UnkStruct_027e09b8_001.cpp:
complete
.text start:0x020b755c end:0x020b776c
src/001_SceneInit/UnkStruct_027e0cd8_001.cpp:
complete
.text start:0x020b776c end:0x020b81e0
.data start:0x020c2970 end:0x020c29f4
src/001_SceneInit/UnkStruct_027e0cd8_0C_001.cpp:
.text start:0x020b81e0 end:0x020b8e74
src/001_SceneInit/UnkStruct_027e0cd8_0C_148_154_001.cpp:
.text start:0x020b8e74 end:0x020b9270
.text start:0x020b81e0 end:0x020b9270
.init start:0x020c2838 end:0x020c28f0
.ctor start:0x020c2904 end:0x020c2908
.bss start:0x020c40e8 end:0x020c46f4
.data start:0x020c29f4 end:0x020c2b3c
src/001_SceneInit/ZeldaArrangeBinary.cpp:
.text start:0x020b9270 end:0x020b94b0
+14 -20
View File
@@ -314,8 +314,8 @@ from:0x020b7620 kind:thumb_call_arm to:0x02011f3c module:main
from:0x020b7628 kind:thumb_call_arm to:0x02074644 module:overlay(0)
from:0x020b7634 kind:thumb_call_arm to:0x02011f3c module:main
from:0x020b763c kind:thumb_call_arm to:0x020a7908 module:overlay(0)
from:0x020b7650 kind:load to:0x020b22c0 module:overlay(0)
from:0x020b7654 kind:load to:0x020b234c module:overlay(0)
from:0x020b7650 kind:load to:0x020b22b8 module:overlay(0) add:0x8
from:0x020b7654 kind:load to:0x020b2344 module:overlay(0) add:0x8
from:0x020b7658 kind:load to:0x0204a088 module:main
from:0x020b767e kind:thumb_call_arm to:0x02011ff4 module:main
from:0x020b7690 kind:thumb_call_arm to:0x020a7a70 module:overlay(0)
@@ -324,7 +324,7 @@ from:0x020b76a4 kind:thumb_call to:0x020b7760 module:overlay(1)
from:0x020b76bc kind:load to:0x02028c60 module:main
from:0x020b76cc kind:thumb_call_arm to:0x02073080 module:overlay(0)
from:0x020b76d8 kind:thumb_call_arm to:0x02011f3c module:main
from:0x020b76e2 kind:thumb_call_arm to:0x02165974 module:overlays(88,91)
from:0x020b76e2 kind:thumb_call_arm to:0x02165974 module:overlay(88)
from:0x020b76ee kind:thumb_call_arm to:0x02073610 module:overlay(0)
from:0x020b76f4 kind:thumb_call to:0x020be998 module:overlay(1)
from:0x020b76fc kind:load to:0x020b504c module:overlay(0)
@@ -339,7 +339,7 @@ from:0x020b777c kind:thumb_call to:0x020b7784 module:overlay(1)
from:0x020b7788 kind:thumb_call to:0x020b81c8 module:overlay(1)
from:0x020b77a2 kind:thumb_call_arm to:0x0201667c module:main
from:0x020b77be kind:thumb_call_arm to:0x020166f4 module:main
from:0x020b77e4 kind:load to:0x020b2940 module:overlay(0)
from:0x020b77e4 kind:load to:0x020b2938 module:overlay(0) add:0x8
from:0x020b77e8 kind:load to:0x027e09bc module:dtcm
from:0x020b77f8 kind:thumb_call_arm to:0x02081270 module:overlay(0)
from:0x020b77fe kind:thumb_call_arm to:0x02011ff4 module:main
@@ -433,7 +433,7 @@ from:0x020b7c36 kind:thumb_call_arm to:0x02082124 module:overlay(0)
from:0x020b7c9e kind:thumb_call to:0x020b803c module:overlay(1)
from:0x020b7ca4 kind:thumb_call to:0x020b7e50 module:overlay(1)
from:0x020b7cba kind:thumb_call_arm to:0x020c0f9c module:overlay(1)
from:0x020b7cc2 kind:thumb_call_arm to:0x021612ac module:overlays(84,60)
from:0x020b7cc2 kind:thumb_call_arm to:0x021612ac module:overlay(84)
from:0x020b7cd0 kind:thumb_call_arm to:0x02081520 module:overlay(0)
from:0x020b7cd8 kind:thumb_call_arm to:0x020814ec module:overlay(0)
from:0x020b7cf8 kind:thumb_call to:0x020b7d64 module:overlay(1)
@@ -441,7 +441,7 @@ from:0x020b7d02 kind:thumb_call to:0x020b7e68 module:overlay(1)
from:0x020b7d20 kind:thumb_call_arm to:0x02081d5c module:overlay(0)
from:0x020b7d2c kind:thumb_call_arm to:0x020cafd8 module:overlay(24)
from:0x020b7d3a kind:thumb_call_arm to:0x020cb000 module:overlay(24)
from:0x020b7d44 kind:load to:0x02164690 module:overlays(59,63,68,73,84)
from:0x020b7d44 kind:load to:0x02164690 module:overlay(84)
from:0x020b7d58 kind:load to:0x0216122c module:overlays(84,62,66)
from:0x020b7d5c kind:load to:0x027e09a4 module:dtcm
from:0x020b7d60 kind:load to:0x020d8694 module:overlay(24)
@@ -539,7 +539,7 @@ from:0x020b8218 kind:thumb_call to:0x02015550 module:main
from:0x020b822c kind:thumb_call_arm to:0x0208233c module:overlay(0)
from:0x020b83be kind:thumb_call to:0x020baea0 module:overlay(1)
from:0x020b83c6 kind:thumb_call to:0x020592a0 module:overlay(0)
from:0x020b83d0 kind:load to:0x020c29fc module:overlay(1)
from:0x020b83d0 kind:load to:0x020c29f4 module:overlay(1) add:0x8
from:0x020b83d4 kind:load to:0x027e0c90 module:dtcm
from:0x020b83d8 kind:load to:0x027e0ca8 module:dtcm
from:0x020b83dc kind:load to:0x027e0c9c module:dtcm
@@ -559,7 +559,7 @@ from:0x020b8466 kind:thumb_call to:0x020b8efc module:overlay(1)
from:0x020b846e kind:thumb_call to:0x0201556c module:main
from:0x020b8476 kind:thumb_call to:0x02057b8c module:overlay(0)
from:0x020b847c kind:thumb_call to:0x0201547c module:main
from:0x020b8484 kind:load to:0x020c29fc module:overlay(1)
from:0x020b8484 kind:load to:0x020c29f4 module:overlay(1) add:0x8
from:0x020b8488 kind:load to:0x027e095c module:dtcm
from:0x020b848c kind:load to:0x027e0ce8 module:dtcm
from:0x020b849c kind:thumb_call to:0x020592ec module:overlay(0)
@@ -573,7 +573,7 @@ from:0x020b8506 kind:thumb_call to:0x0201556c module:main
from:0x020b850e kind:thumb_call to:0x02057b8c module:overlay(0)
from:0x020b8514 kind:thumb_call to:0x0201547c module:main
from:0x020b851a kind:thumb_call_arm to:0x02011ff4 module:main
from:0x020b8524 kind:load to:0x020c29fc module:overlay(1)
from:0x020b8524 kind:load to:0x020c29f4 module:overlay(1) add:0x8
from:0x020b8528 kind:load to:0x027e095c module:dtcm
from:0x020b852c kind:load to:0x027e0ce8 module:dtcm
from:0x020b853c kind:thumb_call to:0x020592ec module:overlay(0)
@@ -586,7 +586,7 @@ from:0x020b859e kind:thumb_call to:0x020b8efc module:overlay(1)
from:0x020b85a6 kind:thumb_call to:0x0201556c module:main
from:0x020b85ae kind:thumb_call to:0x02057b8c module:overlay(0)
from:0x020b85b4 kind:thumb_call to:0x0201547c module:main
from:0x020b85bc kind:load to:0x020c29fc module:overlay(1)
from:0x020b85bc kind:load to:0x020c29f4 module:overlay(1) add:0x8
from:0x020b85c0 kind:load to:0x027e095c module:dtcm
from:0x020b85c4 kind:load to:0x027e0ce8 module:dtcm
from:0x020b85f0 kind:thumb_call_arm to:0x02026800 module:main
@@ -687,7 +687,7 @@ from:0x020b8d98 kind:load to:0x027e09a4 module:dtcm
from:0x020b8d9c kind:load to:0x027e0c90 module:dtcm
from:0x020b8e20 kind:load to:0x020823a8 module:overlay(0)
from:0x020b8e42 kind:thumb_call_arm to:0x02011f3c module:main
from:0x020b8e4a kind:thumb_call_arm to:0x021304a0 module:overlays(47,48,49,50,51,52)
from:0x020b8e4a kind:thumb_call_arm to:0x021304a0 module:overlay(47)
from:0x020b8e62 kind:thumb_call_arm to:0x02130504 module:overlay(47)
from:0x020b8e68 kind:thumb_call_arm to:0x02011ff4 module:main
from:0x020b8e7c kind:thumb_call to:0x020b8f18 module:overlay(1)
@@ -2315,12 +2315,9 @@ from:0x020c09ee kind:thumb_call_arm to:0x020c1014 module:overlay(1)
from:0x020c0a18 kind:load to:0x020c099d module:overlay(1)
from:0x020c0a1c kind:load to:0x020c09c1 module:overlay(1)
from:0x020c0a20 kind:load to:0x020c46fc module:overlay(1)
from:0x020c0ad4 kind:load to:0x020c2a18 module:overlay(1)
from:0x020c0b8c kind:load to:0x020c2a90 module:overlay(1)
from:0x020c0c40 kind:load to:0x020c2f4c module:overlay(1)
from:0x020c0c44 kind:load to:0x020c2928 module:overlays(2,4)
from:0x020c0cf8 kind:load to:0x020c2fc4 module:overlay(1)
from:0x020c0cfc kind:load to:0x020c29a0 module:overlay(1)
from:0x020c0e9c kind:load to:0x020c4701 module:overlay(1)
from:0x020c0f14 kind:load to:0x020c4701 module:overlay(1)
from:0x020c0f8c kind:load to:0x020c4701 module:overlay(1)
@@ -2337,9 +2334,6 @@ from:0x020c1680 kind:load to:0x020c4701 module:overlay(1)
from:0x020c168c kind:load to:0x020c273c module:overlay(1)
from:0x020c16f8 kind:load to:0x020c4701 module:overlay(1)
from:0x020c1718 kind:load to:0x020c1528 add:0x1400 module:overlay(1)
from:0x020c1720 kind:load to:0x020c29a0 module:overlay(1)
from:0x020c1728 kind:load to:0x020c2a18 module:overlay(1)
from:0x020c1730 kind:load to:0x020c2a90 module:overlay(1)
from:0x020c18a4 kind:load to:0x020c4700 module:overlay(1)
from:0x020c1930 kind:load to:0x020c4700 module:overlay(1)
from:0x020c19c0 kind:load to:0x020c4700 module:overlay(1)
@@ -2375,9 +2369,9 @@ from:0x020c28d4 kind:load to:0x020c40f4 module:overlay(1)
from:0x020c28d8 kind:load to:0x020b9259 module:overlay(1)
from:0x020c28dc kind:load to:0x020c40e8 module:overlay(1)
from:0x020c28e0 kind:load to:0x020c2a40 module:overlay(1)
from:0x020c28e4 kind:load to:0x020c2a54 module:overlay(1)
from:0x020c28e8 kind:load to:0x020c2a68 module:overlay(1)
from:0x020c28ec kind:load to:0x020c2a7c module:overlay(1)
from:0x020c28e4 kind:load to:0x020c2a40 add:0x14 module:overlay(1)
from:0x020c28e8 kind:load to:0x020c2a40 add:0x28 module:overlay(1)
from:0x020c28ec kind:load to:0x020c2a40 add:0x3c module:overlay(1)
from:0x020c28fc kind:load to:0x020c2fd4 module:overlay(1)
from:0x020c2900 kind:load to:0x020c2815 module:overlay(1)
from:0x020c2904 kind:load to:0x020c2839 module:overlay(1)
+111 -116
View File
@@ -43,77 +43,77 @@ _ZN18UnkStruct_027e09a015InitCourseTableEv kind:function(thumb,size=0x32) addr:0
_ZN8InstanceI18UnkStruct_027e09a0EC2Ev kind:function(thumb,size=0xc) addr:0x020b7544
_ZN8InstanceI18UnkStruct_027e09a0ED2Ev kind:function(thumb,size=0xc) addr:0x020b7550
_ZN18UnkStruct_027e09b86CreateEv kind:function(thumb,size=0x16) addr:0x020b755c
func_ov001_020b7574 kind:function(thumb,size=0xec) addr:0x020b7574
_ZN18UnkStruct_027e09b8C1Ev kind:function(thumb,size=0xec) addr:0x020b7574
_ZN18UnkStruct_027e09b8D1Ev kind:function(thumb,size=0x4c) addr:0x020b7660
func_ov001_020b76ac kind:function(thumb,size=0x14) addr:0x020b76ac
_ZN18UnkStruct_027e09b820ImportAdventureFlagsEPj kind:function(thumb,size=0x14) addr:0x020b76ac
_ZN18UnkStruct_027e09b819func_ov001_020b76c0Ej kind:function(thumb,size=0x40) addr:0x020b76c0
_ZN18UnkStruct_027e09b819func_ov001_020b7700Ev kind:function(thumb,size=0x28) addr:0x020b7700
func_ov001_020b7728 kind:function(thumb,size=0x2c) addr:0x020b7728
func_ov001_020b7754 kind:function(thumb,size=0xc) addr:0x020b7754
func_ov001_020b7760 kind:function(thumb,size=0xc) addr:0x020b7760
_ZN18UnkStruct_027e09b819func_ov001_020b7728Ev kind:function(thumb,size=0x2c) addr:0x020b7728
_ZN8InstanceI18UnkStruct_027e09b8EC2Ev kind:function(thumb,size=0xc) addr:0x020b7754
_ZN8InstanceI18UnkStruct_027e09b8ED2Ev kind:function(thumb,size=0xc) addr:0x020b7760
_ZN18UnkStruct_027e0cd86CreateEv kind:function(thumb,size=0x16) addr:0x020b776c
func_ov001_020b7784 kind:function(thumb,size=0x68) addr:0x020b7784
_ZN18UnkStruct_027e0cd8C1Ev kind:function(thumb,size=0x68) addr:0x020b7784
_ZN18UnkStruct_027e0cd8D1Ev kind:function(thumb,size=0x42) addr:0x020b77ec
_ZN18UnkStruct_027e0cd819func_ov001_020b7830EP22UnkStruct_SceneChange1 kind:function(thumb,size=0x24c) addr:0x020b7830
_ZN18UnkStruct_027e0cd819func_ov001_020b7830EPK22UnkStruct_SceneChange1 kind:function(thumb,size=0x24c) addr:0x020b7830
_ZN18UnkStruct_027e0cd819func_ov001_020b7a7cEv kind:function(thumb,size=0xbc) addr:0x020b7a7c
func_ov001_020b7b38 kind:function(thumb,size=0xd0) addr:0x020b7b38
_ZN18UnkStruct_027e0cd819func_ov001_020b7c08EP22UnkStruct_SceneChange1P21UnkStruct_WarpUnk1_A0 kind:function(thumb,size=0x15c) addr:0x020b7c08
func_ov001_020b7d64 kind:function(thumb,size=0xec) addr:0x020b7d64
func_ov001_020b7e50 kind:function(thumb,size=0x16) addr:0x020b7e50
func_ov001_020b7e68 kind:function(thumb,size=0x1d4) addr:0x020b7e68
func_ov001_020b803c kind:function(thumb,size=0xc0) addr:0x020b803c
func_ov001_020b80fc kind:function(thumb,size=0x24) addr:0x020b80fc
func_ov001_020b8120 kind:function(thumb,size=0x6c) addr:0x020b8120
func_ov001_020b818c kind:function(thumb,size=0x3c) addr:0x020b818c
func_ov001_020b81c8 kind:function(thumb,size=0xc) addr:0x020b81c8
func_ov001_020b81d4 kind:function(thumb,size=0xc) addr:0x020b81d4
_ZN21UnkStruct_027e0cd8_0cC1Ev kind:function(thumb,size=0x218) addr:0x020b81e0
func_ov001_020b83f8 kind:function(thumb,size=0x98) addr:0x020b83f8
func_ov001_020b8490 kind:function(thumb,size=0xa0) addr:0x020b8490
func_ov001_020b8530 kind:function(thumb,size=0x98) addr:0x020b8530
func_ov001_020b85c8 kind:function(thumb,size=0x2) addr:0x020b85c8
func_ov001_020b85cc kind:function(thumb,size=0x2) addr:0x020b85cc
func_ov001_020b85d0 kind:function(thumb,size=0x2f0) addr:0x020b85d0
func_ov001_020b88c0 kind:function(thumb,size=0x2c) addr:0x020b88c0
func_ov001_020b88ec kind:function(thumb,size=0x60) addr:0x020b88ec
func_ov001_020b894c kind:function(thumb,size=0xe0) addr:0x020b894c
func_ov001_020b8a2c kind:function(thumb,size=0x2c) addr:0x020b8a2c
func_ov001_020b8a58 kind:function(thumb,size=0x2) addr:0x020b8a58
_ZN21UnkStruct_027e0cd8_0c19func_ov001_020b8a5cEii kind:function(thumb,size=0x8e) addr:0x020b8a5c
func_ov001_020b8aec kind:function(thumb,size=0xa8) addr:0x020b8aec
func_ov001_020b8b94 kind:function(thumb,size=0x9c) addr:0x020b8b94
func_ov001_020b8c30 kind:function(thumb,size=0x4e) addr:0x020b8c30
func_ov001_020b8c80 kind:function(thumb,size=0x10) addr:0x020b8c80
func_ov001_020b8c90 kind:function(thumb,size=0x8) addr:0x020b8c90
func_ov001_020b8c98 kind:function(thumb,size=0x8) addr:0x020b8c98
func_ov001_020b8ca0 kind:function(thumb,size=0x8) addr:0x020b8ca0
func_ov001_020b8ca8 kind:function(thumb,size=0x2) addr:0x020b8ca8
func_ov001_020b8cac kind:function(thumb,size=0xfc) addr:0x020b8cac
func_ov001_020b8da8 kind:function(thumb,size=0xe) addr:0x020b8da8
func_ov001_020b8db8 kind:function(thumb,size=0x6c) addr:0x020b8db8
func_ov001_020b8e24 kind:function(thumb,size=0x30) addr:0x020b8e24
func_ov001_020b8e54 kind:function(thumb,size=0x20) addr:0x020b8e54
func_ov001_020b8e74 kind:function(thumb,size=0x18) addr:0x020b8e74
func_ov001_020b8e8c kind:function(thumb,size=0x1c) addr:0x020b8e8c
func_ov001_020b8ea8 kind:function(thumb,size=0x3c) addr:0x020b8ea8
func_ov001_020b8ee4 kind:function(thumb,size=0x18) addr:0x020b8ee4
func_ov001_020b8efc kind:function(thumb,size=0x1c) addr:0x020b8efc
func_ov001_020b8f18 kind:function(thumb,size=0x80) addr:0x020b8f18
func_ov001_020b8f98 kind:function(thumb,size=0xd4) addr:0x020b8f98
func_ov001_020b906c kind:function(thumb,size=0x80) addr:0x020b906c
func_ov001_020b90ec kind:function(thumb,size=0xc6) addr:0x020b90ec
func_ov001_020b91b4 kind:function(thumb,size=0x10) addr:0x020b91b4
func_ov001_020b91c4 kind:function(thumb,size=0x10) addr:0x020b91c4
func_ov001_020b91d4 kind:function(thumb,size=0x24) addr:0x020b91d4
func_ov001_020b91f8 kind:function(thumb,size=0x1c) addr:0x020b91f8
func_ov001_020b9214 kind:function(thumb,size=0x28) addr:0x020b9214
func_ov001_020b923c kind:function(thumb,size=0x1c) addr:0x020b923c
func_ov001_020b9258 kind:function(thumb,size=0x18) addr:0x020b9258
_ZN18UnkStruct_027e0cd819func_ov001_020b7b38EPK15CourseListEntryPK29UnkStruct_func_ov000_020702a8 kind:function(thumb,size=0xd0) addr:0x020b7b38
_ZN18UnkStruct_027e0cd819func_ov001_020b7c08EPK22UnkStruct_SceneChange1PK21UnkStruct_WarpUnk1_A0 kind:function(thumb,size=0x15c) addr:0x020b7c08
_ZN18UnkStruct_027e0cd819func_ov001_020b7d64EPK22UnkStruct_SceneChange1 kind:function(thumb,size=0xec) addr:0x020b7d64
_ZN18UnkStruct_027e0cd819func_ov001_020b7e50Ev kind:function(thumb,size=0x16) addr:0x020b7e50
_ZN18UnkStruct_027e0cd819func_ov001_020b7e68EPK22UnkStruct_SceneChange1b kind:function(thumb,size=0x1d4) addr:0x020b7e68
_ZN18UnkStruct_027e0cd819func_ov001_020b803cEv kind:function(thumb,size=0xc0) addr:0x020b803c
_ZN18UnkStruct_027e0cd819func_ov001_020b80fcEj kind:function(thumb,size=0x24) addr:0x020b80fc
_ZN18UnkStruct_027e0cd819func_ov001_020b8120Ej kind:function(thumb,size=0x6c) addr:0x020b8120
_ZN18UnkStruct_027e0cd819func_ov001_020b818cEv kind:function(thumb,size=0x3c) addr:0x020b818c
_ZN8InstanceI18UnkStruct_027e0cd8EC2Ev kind:function(thumb,size=0xc) addr:0x020b81c8
_ZN8InstanceI18UnkStruct_027e0cd8ED2Ev kind:function(thumb,size=0xc) addr:0x020b81d4
_ZN26UnkStruct_027e0cd8_0C_BaseC1EP18UnkStruct_027e0cd8 kind:function(thumb,size=0x218) addr:0x020b81e0
_ZN26UnkStruct_027e0cd8_0C_BaseD1Ev kind:function(thumb,size=0x98) addr:0x020b83f8
_ZN26UnkStruct_027e0cd8_0C_BaseD0Ev kind:function(thumb,size=0xa0) addr:0x020b8490
_ZN26UnkStruct_027e0cd8_0C_BaseD2Ev kind:function(thumb,size=0x98) addr:0x020b8530
_ZN26UnkStruct_027e0cd8_0C_Base8vfunc_38Ev kind:function(thumb,size=0x2) addr:0x020b85c8
_ZN26UnkStruct_027e0cd8_0C_Base8vfunc_08Ev kind:function(thumb,size=0x2) addr:0x020b85cc
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov001_020b85d0EPK22UnkStruct_SceneChange1 kind:function(thumb,size=0x2f0) addr:0x020b85d0
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov001_020b88c0Ei kind:function(thumb,size=0x2c) addr:0x020b88c0
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov001_020b88ecEv kind:function(thumb,size=0x60) addr:0x020b88ec
_ZN26UnkStruct_027e0cd8_0C_Base14LoadSceneModelEPK22UnkStruct_SceneChange1 kind:function(thumb,size=0xe0) addr:0x020b894c
_ZN26UnkStruct_027e0cd8_0C_Base8vfunc_1CEPK22UnkStruct_SceneChange1bb kind:function(thumb,size=0x2c) addr:0x020b8a2c
_ZN26UnkStruct_027e0cd8_0C_Base8vfunc_20Ev kind:function(thumb,size=0x2) addr:0x020b8a58
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov001_020b8a5cEii kind:function(thumb,size=0x8e) addr:0x020b8a5c
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov001_020b8aecEv kind:function(thumb,size=0xa8) addr:0x020b8aec
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov001_020b8b94EP12ZMBEntryARAB kind:function(thumb,size=0x9c) addr:0x020b8b94
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov001_020b8c30ERK33UnkStruct_027e0cd8_0C_Base_154_00 kind:function(thumb,size=0x4e) addr:0x020b8c30
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov001_020b8c80Ei kind:function(thumb,size=0x10) addr:0x020b8c80
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov001_020b8c90Ei kind:function(thumb,size=0x8) addr:0x020b8c90
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov001_020b8c98Ei kind:function(thumb,size=0x8) addr:0x020b8c98
_ZN26UnkStruct_027e0cd8_0C_Base8vfunc_34Ei kind:function(thumb,size=0x8) addr:0x020b8ca0
_ZN24UnkStruct_ov001_020c40f4D1Ev kind:function(thumb,size=0x2) addr:0x020b8ca8
_ZN26UnkStruct_027e0cd8_0C_Base8vfunc_40Eh kind:function(thumb,size=0xfc) addr:0x020b8cac
_ZN24UnkStruct_ov001_020c40f4C1Ev kind:function(thumb,size=0xe) addr:0x020b8da8
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov001_020b8db8Ev kind:function(thumb,size=0x6c) addr:0x020b8db8
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov001_020b8e24Ev kind:function(thumb,size=0x30) addr:0x020b8e24
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov001_020b8e54Ev kind:function(thumb,size=0x20) addr:0x020b8e54
_ZNSt13__vec_deleterI33UnkStruct_027e0cd8_0C_Base_154_00SaIS0_EE13sub_push_backERKS0_N10Metrowerks8int2typeILi0EEE kind:function(thumb,size=0x18) addr:0x020b8e74
_ZN12CustomVectorI33UnkStruct_027e0cd8_0C_Base_154_00ED1Ev kind:function(thumb,size=0x1c) addr:0x020b8e8c
_ZNSt13__vec_deleterIP38UnkStruct_027e0cd8_0C_Base_148_00_BaseSaIS1_EE5eraseEPS1_S4_13UnkMSLStruct1 kind:function(thumb,size=0x3c) addr:0x020b8ea8
_ZNSt13__vec_deleterIP38UnkStruct_027e0cd8_0C_Base_148_00_BaseSaIS1_EE13sub_push_backERKS1_N10Metrowerks8int2typeILi1EEE kind:function(thumb,size=0x18) addr:0x020b8ee4
_ZN12CustomVectorIP38UnkStruct_027e0cd8_0C_Base_148_00_BaseED1Ev kind:function(thumb,size=0x1c) addr:0x020b8efc
_ZNSt13__vec_deleterI33UnkStruct_027e0cd8_0C_Base_154_00SaIS0_EE7grow_byEm kind:function(thumb,size=0x80) addr:0x020b8f18
_ZNSt13__vec_deleterI33UnkStruct_027e0cd8_0C_Base_154_00SaIS0_EE14append_reallocEmRKS0_ kind:function(thumb,size=0xd4) addr:0x020b8f98
_ZNSt13__vec_deleterIP38UnkStruct_027e0cd8_0C_Base_148_00_BaseSaIS1_EE7grow_byEm kind:function(thumb,size=0x80) addr:0x020b906c
_ZNSt13__vec_deleterIP38UnkStruct_027e0cd8_0C_Base_148_00_BaseSaIS1_EE14append_reallocEmRKS1_ kind:function(thumb,size=0xc6) addr:0x020b90ec
_ZNSt20__vec_deleter_helperI33UnkStruct_027e0cd8_0C_Base_154_00SaIS0_EED1Ev kind:function(thumb,size=0x10) addr:0x020b91b4
_ZNSt20__vec_deleter_helperIP38UnkStruct_027e0cd8_0C_Base_148_00_BaseSaIS1_EED1Ev kind:function(thumb,size=0x10) addr:0x020b91c4
_ZNSt13__vec_deleterIP38UnkStruct_027e0cd8_0C_Base_148_00_BaseSaIS1_EE8allocateEmN10Metrowerks8int2typeILi1EEE kind:function(thumb,size=0x24) addr:0x020b91d4
_ZNSt13__vec_deleterIP38UnkStruct_027e0cd8_0C_Base_148_00_BaseSaIS1_EED2Ev kind:function(thumb,size=0x1c) addr:0x020b91f8
_ZNSt13__vec_deleterI33UnkStruct_027e0cd8_0C_Base_154_00SaIS0_EE8allocateEmN10Metrowerks8int2typeILi1EEE kind:function(thumb,size=0x28) addr:0x020b9214
_ZNSt13__vec_deleterI33UnkStruct_027e0cd8_0C_Base_154_00SaIS0_EED2Ev kind:function(thumb,size=0x1c) addr:0x020b923c
__arraydtor$4129 kind:function(thumb,size=0x18) addr:0x020b9258 local
func_ov001_020b9270 kind:function(thumb,size=0x70) addr:0x020b9270
func_ov001_020b92e0 kind:function(thumb,size=0x18c) addr:0x020b92e0
func_ov001_020b946c kind:function(thumb,size=0x4) addr:0x020b946c
func_ov001_020b9470 kind:function(thumb,size=0x3e) addr:0x020b9470
func_ov001_020b94b0 kind:function(thumb,size=0x164) addr:0x020b94b0
ZMB_ParseFile kind:function(thumb,size=0x164) addr:0x020b94b0
func_ov001_020b9614 kind:function(thumb,size=0xe) addr:0x020b9614
func_ov001_020b9624 kind:function(thumb,size=0xfc) addr:0x020b9624
func_ov001_020b9720 kind:function(thumb,size=0x40) addr:0x020b9720
@@ -154,31 +154,31 @@ func_ov001_020ba9d0 kind:function(thumb,size=0x110) addr:0x020ba9d0
_ZN18UnkStruct_027e09bcD1Ev kind:function(thumb,size=0x7c) addr:0x020baae0
_ZN18UnkStruct_027e09bc19func_ov001_020bab5cEv kind:function(thumb,size=0x6c) addr:0x020bab5c
_ZN18UnkStruct_027e09bc19func_ov001_020babc8Ev kind:function(thumb,size=0x20) addr:0x020babc8
func_ov001_020babe8 kind:function(thumb,size=0x20) addr:0x020babe8
func_ov001_020bac08 kind:function(thumb,size=0x20) addr:0x020bac08
_ZN18UnkStruct_027e09bc19func_ov001_020babe8Ev kind:function(thumb,size=0x20) addr:0x020babe8
_ZN18UnkStruct_027e09bc19func_ov001_020bac08Ev kind:function(thumb,size=0x20) addr:0x020bac08
func_ov001_020bac28 kind:function(thumb,size=0xc) addr:0x020bac28
func_ov001_020bac34 kind:function(thumb,size=0xc) addr:0x020bac34
_ZN16MapObjectManager6CreateEv kind:function(thumb,size=0x16) addr:0x020bac40
func_ov001_020bac58 kind:function(thumb,size=0x1e) addr:0x020bac58
_ZN16MapObjectManagerD1Ev kind:function(thumb,size=0x22) addr:0x020bac78
func_ov001_020bac9c kind:function(thumb,size=0x3c) addr:0x020bac9c
func_ov001_020bacd8 kind:function(thumb,size=0xa8) addr:0x020bacd8
func_ov001_020bad80 kind:function(thumb,size=0x20) addr:0x020bad80
func_ov001_020bada0 kind:function(thumb,size=0x14) addr:0x020bada0
func_ov001_020badb4 kind:function(thumb,size=0x2c) addr:0x020badb4
func_ov001_020bade0 kind:function(thumb,size=0x60) addr:0x020bade0
func_ov001_020bae40 kind:function(thumb,size=0x2c) addr:0x020bae40
func_ov001_020bae6c kind:function(thumb,size=0x34) addr:0x020bae6c
func_ov001_020baea0 kind:function(thumb,size=0x88) addr:0x020baea0
func_ov001_020baf28 kind:function(thumb,size=0x22) addr:0x020baf28
_ZN16MapObjectManager19func_ov001_020bac9cEv kind:function(thumb,size=0x3c) addr:0x020bac9c
_ZN16MapObjectManager19func_ov001_020bacd8EP9ZOBHeader kind:function(thumb,size=0xa8) addr:0x020bacd8
_ZN16MapObjectManager19func_ov001_020bad80Ev kind:function(thumb,size=0x20) addr:0x020bad80
_ZN16MapObjectManager19func_ov001_020bada0Ev kind:function(thumb,size=0x14) addr:0x020bada0
_ZN16MapObjectManager19func_ov001_020badb4Ev kind:function(thumb,size=0x2c) addr:0x020badb4
_ZN16MapObjectManager19func_ov001_020bade0Ev kind:function(thumb,size=0x60) addr:0x020bade0
_ZN16MapObjectManager19func_ov001_020bae40EP15ZeldaObjectList kind:function(thumb,size=0x2c) addr:0x020bae40
_ZN16MapObjectManager19func_ov001_020bae6cEv kind:function(thumb,size=0x34) addr:0x020bae6c
_ZN16MapObjectManager19func_ov001_020baea0EP5Vec2s kind:function(thumb,size=0x88) addr:0x020baea0
_ZN16MapObjectManager19func_ov001_020baf28Ev kind:function(thumb,size=0x22) addr:0x020baf28
func_ov001_020baf4c kind:function(thumb,size=0xc) addr:0x020baf4c
func_ov001_020baf58 kind:function(thumb,size=0xc) addr:0x020baf58
_ZN12ActorManager6CreateEv kind:function(thumb,size=0x16) addr:0x020baf64
_ZN12ActorManagerC1Ev kind:function(thumb,size=0x46) addr:0x020baf7c
_ZN12ActorManagerD1Ev kind:function(thumb,size=0x18) addr:0x020bafc4
_ZN12ActorManager19func_ov001_020bafdcEv kind:function(thumb,size=0x3c) addr:0x020bafdc
_ZN12ActorManager19func_ov001_020bb018EP36UnkStruct_func_ov001_020bb018_param2 kind:function(thumb,size=0x3fc) addr:0x020bb018
_ZN12ActorManager19func_ov001_020bb414EPS_ kind:function(thumb,size=0x74) addr:0x020bb414
_ZN12ActorManager19func_ov001_020bb018EP9ZOBHeader kind:function(thumb,size=0x3fc) addr:0x020bb018
_ZN12ActorManager19func_ov001_020bb414Ev kind:function(thumb,size=0x74) addr:0x020bb414
_ZN12ActorManager19func_ov001_020bb488Ev kind:function(thumb,size=0xc0) addr:0x020bb488
_ZN12ActorManager19func_ov001_020bb548Ev kind:function(thumb,size=0xe8) addr:0x020bb548
_ZN12ActorManager19func_ov001_020bb630Ev kind:function(thumb,size=0x80) addr:0x020bb630
@@ -225,11 +225,11 @@ _ZN18UnkStruct_027e0ce0D1Ev kind:function(thumb,size=0x86) addr:0x020bc450
func_ov001_020bc4d8 kind:function(thumb,size=0x4c) addr:0x020bc4d8
_ZN18UnkStruct_027e0ce019func_ov001_020bc524Eb kind:function(thumb,size=0xd4) addr:0x020bc524
_ZN18UnkStruct_027e0ce019func_ov001_020bc5f8Ev kind:function(thumb,size=0x62) addr:0x020bc5f8
func_ov001_020bc65c kind:function(thumb,size=0x40) addr:0x020bc65c
func_ov001_020bc69c kind:function(thumb,size=0x3c) addr:0x020bc69c
func_ov001_020bc6d8 kind:function(thumb,size=0xe) addr:0x020bc6d8
func_ov001_020bc6e8 kind:function(thumb,size=0x14) addr:0x020bc6e8
func_ov001_020bc6fc kind:function(thumb,size=0x52) addr:0x020bc6fc
_ZN18UnkStruct_027e0ce019func_ov001_020bc65cEv kind:function(thumb,size=0x40) addr:0x020bc65c
_ZN18UnkStruct_027e0ce019func_ov001_020bc69cEv kind:function(thumb,size=0x3c) addr:0x020bc69c
_ZN18UnkStruct_027e0ce019func_ov001_020bc6d8EiPK24UnkStruct_ov001_020c40f4 kind:function(thumb,size=0xe) addr:0x020bc6d8
_ZN18UnkStruct_027e0ce019func_ov001_020bc6e8EPK24UnkStruct_ov001_020c40f4 kind:function(thumb,size=0x14) addr:0x020bc6e8
_ZN18UnkStruct_027e0ce019func_ov001_020bc6fcEPK24UnkStruct_ov001_020c40f4S2_ii kind:function(thumb,size=0x52) addr:0x020bc6fc
func_ov001_020bc750 kind:function(thumb,size=0xc) addr:0x020bc750
func_ov001_020bc75c kind:function(thumb,size=0xc) addr:0x020bc75c
func_ov001_020bc768 kind:function(thumb,size=0x20) addr:0x020bc768
@@ -264,8 +264,8 @@ _ZN18UnkStruct_0204a11019func_ov001_020bd514EiPvii kind:function(thumb,size=0x78
_ZN18UnkStruct_0204a11019func_ov001_020bd58cEv kind:function(thumb,size=0x24) addr:0x020bd58c
_ZN18UnkStruct_0204a11019func_ov001_020bd5b0Ev kind:function(thumb,size=0x88) addr:0x020bd5b0
_ZN18UnkStruct_0204a11019func_ov001_020bd638Ev kind:function(thumb,size=0x40) addr:0x020bd638
func_ov001_020bd678 kind:function(thumb,size=0x14) addr:0x020bd678
func_ov001_020bd68c kind:function(thumb,size=0x1c) addr:0x020bd68c
_ZN18UnkStruct_0204a11019func_ov001_020bd678Ev kind:function(thumb,size=0x14) addr:0x020bd678
_ZN18UnkStruct_0204a11019func_ov001_020bd68cEv kind:function(thumb,size=0x1c) addr:0x020bd68c
func_ov001_020bd6a8 kind:function(thumb,size=0x18) addr:0x020bd6a8
func_ov001_020bd6c0 kind:function(thumb,size=0x38) addr:0x020bd6c0
func_ov001_020bd6f8 kind:function(thumb,size=0x30) addr:0x020bd6f8
@@ -287,8 +287,8 @@ func_ov001_020bd910 kind:function(thumb,size=0x24) addr:0x020bd910
func_ov001_020bd934 kind:function(thumb,size=0x3c) addr:0x020bd934
_ZN24UnkStruct_ov000_020b50c019func_ov001_020bd970EP22UnkStruct_SceneChange1 kind:function(thumb,size=0x494) addr:0x020bd970
_ZN24UnkStruct_ov000_020b50c019func_ov001_020bde04EP22UnkStruct_SceneChange1 kind:function(thumb,size=0x48) addr:0x020bde04
func_ov001_020bde4c kind:function(thumb,size=0x10) addr:0x020bde4c
func_ov001_020bde5c kind:function(thumb,size=0x10) addr:0x020bde5c
_ZN24UnkStruct_ov000_020b50c019func_ov001_020bde4cEPK22UnkStruct_SceneChange1 kind:function(thumb,size=0x10) addr:0x020bde4c
_ZN24UnkStruct_ov000_020b50c019func_ov001_020bde5cEv kind:function(thumb,size=0x10) addr:0x020bde5c
func_ov001_020bde6c kind:function(thumb,size=0xe) addr:0x020bde6c
func_ov001_020bde7c kind:function(thumb,size=0x14) addr:0x020bde7c
func_ov001_020bde90 kind:function(thumb,size=0x110) addr:0x020bde90
@@ -313,14 +313,14 @@ _ZN18UnkStruct_027e09c07DestroyEv kind:function(thumb,size=0x8) addr:0x020be2ec
func_ov001_020be2f4 kind:function(thumb,size=0xa0) addr:0x020be2f4
_ZN18UnkStruct_027e09c019func_ov001_020be394Ev kind:function(thumb,size=0x30) addr:0x020be394
_ZN18UnkStruct_027e09c019func_ov001_020be3c4Ev kind:function(thumb,size=0x18) addr:0x020be3c4
func_ov001_020be3dc kind:function(thumb,size=0x24) addr:0x020be3dc
func_ov001_020be400 kind:function(thumb,size=0x3c) addr:0x020be400
_ZN18UnkStruct_027e09c019func_ov001_020be3dcEP14UnkFileSystem3P26UnkStruct_027e0cd8_0C_Base kind:function(thumb,size=0x24) addr:0x020be3dc
_ZN18UnkStruct_027e09c019func_ov001_020be400Ev kind:function(thumb,size=0x3c) addr:0x020be400
func_ov001_020be43c kind:function(thumb,size=0x20) addr:0x020be43c
func_ov001_020be45c kind:function(thumb,size=0xc) addr:0x020be45c
func_ov001_020be468 kind:function(thumb,size=0xc) addr:0x020be468
func_ov001_020be474 kind:function(thumb,size=0x70) addr:0x020be474
func_ov001_020be4e4 kind:function(thumb,size=0x1e) addr:0x020be4e4
func_ov001_020be504 kind:function(thumb,size=0xc) addr:0x020be504
_ZN24UnkStruct_ov000_020b504c19func_ov001_020be504Ev kind:function(thumb,size=0xc) addr:0x020be504
_ZN24UnkStruct_ov000_020b504c19func_ov001_020be510Ev kind:function(thumb,size=0xd8) addr:0x020be510
func_ov001_020be5e8 kind:function(thumb,size=0x80) addr:0x020be5e8
_ZN24UnkStruct_ov000_020b504c19func_ov001_020be668Ev kind:function(thumb,size=0x70) addr:0x020be668
@@ -330,9 +330,9 @@ func_ov001_020be79c kind:function(thumb,size=0x90) addr:0x020be79c
func_ov001_020be82c kind:function(thumb,size=0x54) addr:0x020be82c
func_ov001_020be880 kind:function(thumb,size=0x60) addr:0x020be880
_ZN24UnkStruct_ov000_020b504c19func_ov001_020be8e0Ev kind:function(thumb,size=0x4c) addr:0x020be8e0
func_ov001_020be92c kind:function(thumb,size=0x20) addr:0x020be92c
func_ov001_020be94c kind:function(thumb,size=0x4c) addr:0x020be94c
func_ov001_020be998 kind:function(thumb,size=0x64) addr:0x020be998
_ZN24UnkStruct_ov000_020b504c19func_ov001_020be92cEP24UnkStruct_027e0cd8_04_0C kind:function(thumb,size=0x20) addr:0x020be92c
_ZN24UnkStruct_ov000_020b504c19func_ov001_020be94cEv kind:function(thumb,size=0x4c) addr:0x020be94c
_ZN24UnkStruct_ov000_020b504c19func_ov001_020be998Ev kind:function(thumb,size=0x64) addr:0x020be998
func_ov001_020be9fc kind:function(thumb,size=0x30) addr:0x020be9fc
func_ov001_020bea2c kind:function(thumb,size=0x14) addr:0x020bea2c
func_ov001_020bea40 kind:function(thumb,size=0x18) addr:0x020bea40
@@ -356,7 +356,7 @@ func_ov001_020bed34 kind:function(thumb,size=0x1c) addr:0x020bed34
func_ov001_020bed50 kind:function(thumb,size=0x248) addr:0x020bed50
func_ov001_020bef98 kind:function(thumb,size=0x7c) addr:0x020bef98
func_ov001_020bf014 kind:function(thumb,size=0x14) addr:0x020bf014
func_ov001_020bf028 kind:function(thumb,size=0x1c) addr:0x020bf028
_ZN18UnkStruct_027e0cec19func_ov001_020bf028Ev kind:function(thumb,size=0x1c) addr:0x020bf028
func_ov001_020bf044 kind:function(arm,size=0x38) addr:0x020bf044
func_ov001_020bf07c kind:function(arm,size=0x10) addr:0x020bf07c
func_ov001_020bf08c kind:function(arm,size=0x14) addr:0x020bf08c
@@ -506,10 +506,10 @@ data_ov001_020c276c kind:data(any) addr:0x020c276c
data_ov001_020c27a8 kind:data(any) addr:0x020c27a8
data_ov001_020c280c kind:data(any) addr:0x020c280c
__sinit_CourseList.cpp kind:function(thumb,size=0x24) addr:0x020c2814 local
__sinit_ov001_020c2838 kind:function(thumb,size=0xb8) addr:0x020c2838
__sinit_UnkStruct_027e0cd8_0C_001.cpp kind:function(thumb,size=0xb8) addr:0x020c2838
__sinit_ov001_020c28f0 kind:function(thumb,size=0x10) addr:0x020c28f0
.p__sinit_CourseList.cpp kind:data(word) addr:0x020c2900 local
.p__sinit_ov001_020c2838 kind:data(word) addr:0x020c2904
.p__sinit_UnkStruct_027e0cd8_0C_001.cpp kind:data(word) addr:0x020c2904
.p__sinit_ov001_020c28f0 kind:data(word) addr:0x020c2908
.p__sinit_ov001_020c1104 kind:data(word) addr:0x020c290c local
.p__sinit_ov001_020c1708 kind:data(word) addr:0x020c2910 local
@@ -518,28 +518,23 @@ __sinit_ov001_020c28f0 kind:function(thumb,size=0x10) addr:0x020c28f0
.p__sinit_ov001_020c2570 kind:data(word) addr:0x020c291c local
@433 kind:data(byte[22]) addr:0x020c2940 local
@450 kind:data(byte[22]) addr:0x020c2958 local
data_ov001_020c2970 kind:data(any) addr:0x020c2970
data_ov001_020c2984 kind:data(any) addr:0x020c2984
data_ov001_020c2988 kind:data(any) addr:0x020c2988
data_ov001_020c29a0 kind:data(any) addr:0x020c29a0
data_ov001_020c29a4 kind:data(any) addr:0x020c29a4
data_ov001_020c29bc kind:data(any) addr:0x020c29bc
data_ov001_020c29d8 kind:data(any) addr:0x020c29d8
data_ov001_020c29f0 kind:data(any) addr:0x020c29f0
data_ov001_020c29fc kind:data(any) addr:0x020c29fc
data_ov001_020c2a18 kind:data(any) addr:0x020c2a18
@3570 kind:data(byte[0x12]) addr:0x020c2970 local
@3571 kind:data(byte[0x04]) addr:0x020c2984 local
@3572 kind:data(byte[0x1a]) addr:0x020c2988 local
@3573 kind:data(byte[0x18]) addr:0x020c29a4 local
@3574 kind:data(byte[0x19]) addr:0x020c29bc local
@3575 kind:data(byte[0x17]) addr:0x020c29d8 local
@3576 kind:data(byte[0x04]) addr:0x020c29f0 local
_ZTV26UnkStruct_027e0cd8_0C_Base kind:data(any) addr:0x020c29f4
data_ov001_020c2a40 kind:data(any) addr:0x020c2a40
data_ov001_020c2a54 kind:data(any) addr:0x020c2a54
data_ov001_020c2a68 kind:data(any) addr:0x020c2a68
data_ov001_020c2a7c kind:data(any) addr:0x020c2a7c
data_ov001_020c2a90 kind:data(any) addr:0x020c2a90
data_ov001_020c2a98 kind:data(any) addr:0x020c2a98
data_ov001_020c2aac kind:data(any) addr:0x020c2aac
data_ov001_020c2ac0 kind:data(any) addr:0x020c2ac0
data_ov001_020c2ad4 kind:data(any) addr:0x020c2ad4
data_ov001_020c2af0 kind:data(any) addr:0x020c2af0
data_ov001_020c2b0c kind:data(any) addr:0x020c2b0c
data_ov001_020c2b24 kind:data(any) addr:0x020c2b24
@3283 kind:data(byte[0x6]) addr:0x020c2a90 local
@3284 kind:data(byte[0x13]) addr:0x020c2a98 local
@3285 kind:data(byte[0x13]) addr:0x020c2aac local
@3286 kind:data(byte[0x13]) addr:0x020c2ac0 local
@3287 kind:data(byte[0x1b]) addr:0x020c2ad4 local
@3288 kind:data(byte[0x1c]) addr:0x020c2af0 local
@3292 kind:data(byte[0x17]) addr:0x020c2b0c local
@3293 kind:data(byte[0x15]) addr:0x020c2b24 local
data_ov001_020c2b3c kind:data(any) addr:0x020c2b3c
data_ov001_020c2b48 kind:data(any) addr:0x020c2b48
data_ov001_020c2b58 kind:data(any) addr:0x020c2b58
@@ -640,8 +635,8 @@ data_ov001_020c2fcc kind:data(any) addr:0x020c2fcc
data_ov001_020c2fd4 kind:data(any) addr:0x020c2fd4
_ZGVN14StaticInstanceI16CourseInitBinaryE9sInstanceE kind:bss addr:0x020c2fe0
_ZN14StaticInstanceI16CourseInitBinaryE9sInstanceE kind:bss addr:0x020c2fe4
data_ov001_020c40e8 kind:bss addr:0x020c40e8
data_ov001_020c40f4 kind:bss addr:0x020c40f4
@4613 kind:bss addr:0x020c40e8 local
data_ov001_020c40f4 kind:bss addr:0x020c40f4 local
data_ov001_020c46f4 kind:bss addr:0x020c46f4
data_ov001_020c46f8 kind:bss addr:0x020c46f8
data_ov001_020c46fc kind:bss addr:0x020c46fc
+1 -1
View File
@@ -41,7 +41,7 @@ _ZN27UnkStruct_027e09a4_54_Type3C1EP18UnkStruct_027e09a4 kind:function(arm,size=
_ZN19func_ov021_020ea77cD1Ev kind:function(arm,size=0x30) addr:0x020ea77c
_ZN19func_ov021_020ea7acD0Ev kind:function(arm,size=0x38) addr:0x020ea7ac
func_ov021_020ea7e4 kind:function(arm,size=0xc) addr:0x020ea7e4
func_ov021_020ea7f0 kind:function(arm,size=0x20) addr:0x020ea7f0
_ZN30UnkStruct_027e0cd8_0C_Derived3C1EP18UnkStruct_027e0cd8 kind:function(arm,size=0x20) addr:0x020ea7f0
func_ov021_020ea810 kind:function(arm,size=0x28) addr:0x020ea810
_ZN19func_ov021_020ea838D1Ev kind:function(arm,size=0x14) addr:0x020ea838
_ZN19func_ov021_020ea84cD0Ev kind:function(arm,size=0x1c) addr:0x020ea84c
+5 -5
View File
@@ -101,7 +101,7 @@ _ZN21UnkStruct_027e0ce0_38D0Ev kind:function(arm,size=0xe4) addr:0x020dc80c
func_ov026_020dc8f0 kind:function(arm,size=0x28) addr:0x020dc8f0
func_ov026_020dc918 kind:function(arm,size=0x98) addr:0x020dc918
func_ov026_020dc9b0 kind:function(arm,size=0x64) addr:0x020dc9b0
func_ov026_020dca14 kind:function(arm,size=0x1788) addr:0x020dca14
_ZN24UnkStruct_ov026_02138d1019func_ov026_020dca14Ev kind:function(arm,size=0x1788) addr:0x020dca14
func_ov026_020de19c kind:function(arm,size=0x38) addr:0x020de19c
func_ov026_020de1d4 kind:function(arm,size=0x30) addr:0x020de1d4
func_ov026_020de204 kind:function(arm,size=0x158) addr:0x020de204
@@ -291,8 +291,8 @@ func_ov026_020e8c74 kind:function(arm,size=0x98) addr:0x020e8c74
func_ov026_020e8d0c kind:function(arm,size=0x364) addr:0x020e8d0c
func_ov026_020e9070 kind:function(arm,size=0x10) addr:0x020e9070
func_ov026_020e9080 kind:function(arm,size=0x74) addr:0x020e9080
func_ov026_020e90f4 kind:function(arm,size=0x44) addr:0x020e90f4
func_ov026_020e9138 kind:function(arm,size=0x48) addr:0x020e9138
_ZN21UnkStruct_027e0cd8_10C1Ev kind:function(arm,size=0x44) addr:0x020e90f4
_ZN21UnkStruct_027e0cd8_10D1Ev kind:function(arm,size=0x48) addr:0x020e9138
func_ov026_020e9180 kind:function(arm,size=0x2c) addr:0x020e9180
func_ov026_020e91ac kind:function(arm,size=0x1c) addr:0x020e91ac
func_ov026_020e91c8 kind:function(arm,size=0x1c) addr:0x020e91c8
@@ -1090,7 +1090,7 @@ func_ov026_021056a4 kind:function(arm,size=0x38) addr:0x021056a4
func_ov026_021056dc kind:function(arm,size=0x38) addr:0x021056dc
func_ov026_02105714 kind:function(arm,size=0x1c) addr:0x02105714
func_ov026_02105730 kind:function(arm,size=0x4) addr:0x02105730
func_ov026_02105734 kind:function(arm,size=0x1dc) addr:0x02105734
_ZN30UnkStruct_027e0cd8_0C_Derived2C1EP18UnkStruct_027e0cd8 kind:function(arm,size=0x1dc) addr:0x02105734
func_ov026_02105910 kind:function(arm,size=0x10c) addr:0x02105910
_ZN19func_ov026_02105a1cD0Ev kind:function(arm,size=0x114) addr:0x02105a1c
func_ov026_02105b30 kind:function(arm,size=0xc0) addr:0x02105b30
@@ -1122,7 +1122,7 @@ func_ov026_02106a84 kind:function(arm,size=0x4) addr:0x02106a84
func_ov026_02106a88 kind:function(arm,size=0x4) addr:0x02106a88
func_ov026_02106a8c kind:function(arm,size=0x8) addr:0x02106a8c
func_ov026_02106a94 kind:function(arm,size=0x14) addr:0x02106a94
_ZN25UnkStruct_027e0cd8_0c_16019func_ov026_02106aa8Ev kind:function(arm,size=0x14) addr:0x02106aa8
_ZN25UnkStruct_027e0cd8_0C_16019func_ov026_02106aa8Ev kind:function(arm,size=0x14) addr:0x02106aa8
func_ov026_02106abc kind:function(arm,size=0x84) addr:0x02106abc
func_ov026_02106b40 kind:function(arm,size=0x4c) addr:0x02106b40
func_ov026_02106b8c kind:function(arm,size=0x64) addr:0x02106b8c
+2 -2
View File
@@ -1,5 +1,5 @@
func_ov047_021304a0 kind:function(arm,size=0x64) addr:0x021304a0
func_ov047_02130504 kind:function(arm,size=0x28) addr:0x02130504
_ZN29UnkStruct_027e0cd8_0C_Base_98C1Ev kind:function(arm,size=0x64) addr:0x021304a0
_ZN29UnkStruct_027e0cd8_0C_Base_98D1Ev kind:function(arm,size=0x28) addr:0x02130504
func_ov047_0213052c kind:function(arm,size=0x30) addr:0x0213052c
func_ov047_0213055c kind:function(arm,size=0x200) addr:0x0213055c
func_ov047_0213075c kind:function(arm,size=0x39c) addr:0x0213075c
+1 -1
View File
@@ -2,7 +2,7 @@ func_ov088_021658a0 kind:function(arm,size=0x30) addr:0x021658a0
_ZN19func_ov088_021658d0D1Ev kind:function(arm,size=0x34) addr:0x021658d0
_ZN19func_ov088_02165904D0Ev kind:function(arm,size=0x3c) addr:0x02165904
_ZN19func_ov088_02165940D2Ev kind:function(arm,size=0x34) addr:0x02165940
func_ov088_02165974 kind:function(arm,size=0x14c) addr:0x02165974
_ZN21UnkStruct_027e09b8_08C1EPv kind:function(arm,size=0x14c) addr:0x02165974
func_ov088_02165ac0 kind:function(arm,size=0x84) addr:0x02165ac0
_ZN19func_ov088_02165b44D0Ev kind:function(arm,size=0x8c) addr:0x02165b44
func_ov088_02165bd0 kind:function(arm,size=0xc) addr:0x02165bd0
+1 -1
View File
@@ -21,7 +21,7 @@ func_ov101_02183328 kind:function(thumb,size=0x134) addr:0x02183328
func_ov101_0218345c kind:function(thumb,size=0x2) addr:0x0218345c
func_ov101_02183460 kind:function(thumb,size=0xc) addr:0x02183460
func_ov101_0218346c kind:function(thumb,size=0x12) addr:0x0218346c
func_ov101_02183480 kind:function(thumb,size=0x68) addr:0x02183480
_ZN21UnkStruct_027e0cd8_0CC1EP18UnkStruct_027e0cd8 kind:function(thumb,size=0x68) addr:0x02183480
func_ov101_021834e8 kind:function(thumb,size=0xd8) addr:0x021834e8
func_ov101_021835c0 kind:function(thumb,size=0xe0) addr:0x021835c0
func_ov101_021836a0 kind:function(thumb,size=0xd0) addr:0x021836a0
+5 -5
View File
@@ -526,7 +526,7 @@ func_0200e350 kind:function(arm,size=0x48) addr:0x0200e350
func_0200e398 kind:function(arm,size=0x60) addr:0x0200e398
func_0200e3f8 kind:function(arm,size=0x68) addr:0x0200e3f8
func_0200e460 kind:function(arm,size=0x240) addr:0x0200e460
func_0200e6a0 kind:function(arm,size=0xb0) addr:0x0200e6a0
G3d_0200e6a0 kind:function(arm,size=0xb0) addr:0x0200e6a0
func_0200e750 kind:function(arm,size=0x80) addr:0x0200e750
func_0200e7d0 kind:function(arm,size=0x80) addr:0x0200e7d0
func_0200e850 kind:function(arm,size=0x80) addr:0x0200e850
@@ -719,7 +719,7 @@ 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
_ZN18UnkStruct_02049bac13func_02014a34EPv kind:function(arm,size=0xcc) addr:0x02014a34
func_02014b00 kind:function(arm,size=0x54) addr:0x02014b00
_ZN18UnkStruct_02049bac13func_02014b00Ev 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
func_02014b80 kind:function(arm,size=0x3c) addr:0x02014b80
@@ -754,7 +754,7 @@ _ZN17UnkFileSystem2_10D1Ev kind:function(arm,size=0x20) addr:0x020153c4
func_020153e4 kind:function(arm,size=0x18) addr:0x020153e4
_ZN10UnkSystem3C1EPKciii kind:function(thumb,size=0x12) addr:0x020153fc
_ZN10UnkSystem313func_02015410EPKci kind:function(thumb,size=0xc) addr:0x02015410
func_0201541c kind:function(thumb,size=0x44) addr:0x0201541c
_ZN10UnkSystem313func_0201541cEPKci kind:function(thumb,size=0x44) addr:0x0201541c
_ZN10UnkSystem313func_02015460EPKcPvi kind:function(thumb,size=0x1c) addr:0x02015460
_ZN10UnkSystem3D1Ev kind:function(thumb,size=0x20) addr:0x0201547c
func_0201549c kind:function(thumb,size=0x14) addr:0x0201549c
@@ -1477,7 +1477,7 @@ OS_GetLockID kind:function(arm,size=0x58) addr:0x02026738
func_02026790 kind:function(arm,size=0x30) addr:0x02026790
sscanf kind:function(arm,size=0x28) addr:0x020267c0
vsscanf kind:function(arm,size=0x18) addr:0x020267e8
func_02026800 kind:function(arm,size=0x28) addr:0x02026800
snprintf kind:function(arm,size=0x28) addr:0x02026800
func_02026828 kind:function(arm,size=0xc) addr:0x02026828
OS_func_0035 kind:function(arm,size=0x18) addr:0x02026834
OS_func_0036 kind:function(arm,size=0x78) addr:0x0202684c
@@ -2039,7 +2039,7 @@ func_02038d2c kind:function(arm,size=0x18) addr:0x02038d2c
_ZN13func_02038d44D0Ev kind:function(arm,size=0x20) addr:0x02038d44
func_02038d64 kind:function(arm,size=0x30) addr:0x02038d64
func_02038d94 kind:function(arm,size=0x2c) addr:0x02038d94
func_02038dc0 kind:function(arm,size=0x8c) addr:0x02038dc0
_ZNSt15__vector_commonILb1EE18throw_length_errorEv kind:function(arm,size=0x8c) addr:0x02038dc0
_dadd kind:function(arm,size=0x318) addr:0x02038e4c
_dsub kind:function(arm,size=0x3b4) addr:0x0203917c
_dmul kind:function(arm,size=0x364) addr:0x02039530
+3 -3
View File
@@ -184,8 +184,8 @@ func_01ffe954 kind:function(arm,size=0x80) addr:0x01ffe954
func_01ffe9d4 kind:function(arm,size=0x308) addr:0x01ffe9d4
func_01ffecdc kind:function(arm,size=0xd0) addr:0x01ffecdc
func_01ffedac kind:function(arm,size=0x48) addr:0x01ffedac
_ZN21UnkStruct_027e0cd8_0c13func_01ffedf4EP5Vec2b kind:function(arm,size=0x1c) addr:0x01ffedf4
func_01ffee10 kind:function(arm,size=0x124) addr:0x01ffee10
_ZN26UnkStruct_027e0cd8_0C_Base13func_01ffedf4EP5Vec2b kind:function(arm,size=0x1c) addr:0x01ffedf4
_ZN26UnkStruct_027e0cd8_0C_Base8vfunc_28EP7VecFx32ii kind:function(arm,size=0x124) addr:0x01ffee10
func_01ffef34 kind:function(arm,size=0x128) addr:0x01ffef34
func_01fff05c kind:function(arm,size=0x58) addr:0x01fff05c
func_01fff0b4 kind:function(arm,size=0x94) addr:0x01fff0b4
@@ -212,7 +212,7 @@ _ZN9MapObject13func_01fff590Ei kind:function(arm,size=0x40) addr:0x01fff590
_ZN5Actor13func_01fff5d0Eii kind:function(arm,size=0x3c) addr:0x01fff5d0
_ZN18UnkStruct_027e09b413func_01fff60cEiiihii kind:function(arm,size=0x8c) addr:0x01fff60c
func_01fff698 kind:function(arm,size=0x38) addr:0x01fff698
_ZN16MapObjectManager13func_01fff6d0EP7VecFx32PiS2_ kind:function(arm,size=0x74) addr:0x01fff6d0
func_01fff6d0 kind:function(arm,size=0x74) addr:0x01fff6d0
func_01fff744 kind:function(arm,size=0x20) addr:0x01fff744
func_01fff764 kind:function(arm,size=0xec) addr:0x01fff764
func_01fff850 kind:function(arm,size=0x158) addr:0x01fff850
+57 -57
View File
@@ -219,8 +219,8 @@ _ZN32UnkStruct_027e0960_TableEntry_048vfunc_10Ev kind:function(arm,size=0xc) add
_ZN32UnkStruct_027e0960_TableEntry_048vfunc_1CEv kind:function(arm,size=0x1c) addr:0x0205b630
func_ov000_0205b64c kind:function(thumb,size=0x12) addr:0x0205b64c
_ZN18UnkStruct_027e0960D1Ev kind:function(thumb,size=0x44) addr:0x0205b660
func_ov000_0205b6a4 kind:function(arm,size=0x4) addr:0x0205b6a4
func_ov000_0205b6a8 kind:function(arm,size=0x40) addr:0x0205b6a8
_ZN18UnkStruct_027e096019func_ov000_0205a11cEv kind:function(arm,size=0x4) addr:0x0205b6a4
_ZN18UnkStruct_027e096019func_ov000_0205a120Ev kind:function(arm,size=0x40) addr:0x0205b6a8
_ZN18UnkStruct_027e096019func_ov000_0205a160Ev kind:function(arm,size=0x4) addr:0x0205b6e8
_ZN18UnkStruct_027e096019func_ov000_0205a164Ev kind:function(arm,size=0x40) addr:0x0205b6ec
func_ov000_0205b72c kind:function(arm,size=0x34) addr:0x0205b72c
@@ -258,7 +258,7 @@ func_ov000_0205bf98 kind:function(arm,size=0x60) addr:0x0205bf98
func_ov000_0205bff8 kind:function(arm,size=0xe8) addr:0x0205bff8
func_ov000_0205c0e0 kind:function(thumb,size=0x1e) addr:0x0205c0e0
func_ov000_0205c100 kind:function(thumb,size=0x52) addr:0x0205c100
func_ov000_0205c154 kind:function(thumb,size=0x56) addr:0x0205c154
func_ov000_0205abcc kind:function(thumb,size=0x56) addr:0x0205c154
func_ov000_0205c1ac kind:function(arm,size=0x10) addr:0x0205c1ac
func_ov000_0205c1bc kind:function(arm,size=0x2c) addr:0x0205c1bc
func_ov000_0205c1e8 kind:function(arm,size=0x10) addr:0x0205c1e8
@@ -988,10 +988,10 @@ func_ov000_02071800 kind:function(arm,size=0x1c) addr:0x02071800
func_ov000_0207181c kind:function(arm,size=0xfc) addr:0x0207181c
_ZN18UnkStruct_027e09a021GetSceneIndexFromNameEPKc kind:function(arm,size=0x3c) addr:0x02071918
_ZN18UnkStruct_027e09a014GetCourseEntryEj kind:function(arm,size=0xc) addr:0x02071954
func_ov000_02071960 kind:function(arm,size=0x14) addr:0x02071960
_ZN18UnkStruct_027e09a019func_ov000_020702a8Ej kind:function(arm,size=0x14) addr:0x02071960
_ZN18UnkStruct_027e09a017GetRoomEntryIndexEv kind:function(arm,size=0x40) addr:0x02071974
_ZN18UnkStruct_027e09a012GetRoomEntryEji kind:function(arm,size=0x14) addr:0x020719b4
func_ov000_020719c8 kind:function(arm,size=0x68) addr:0x020719c8
_ZN18UnkStruct_027e09a019func_ov000_02070310EjhPv kind:function(arm,size=0x68) addr:0x020719c8
_ZN18UnkStruct_027e09a019func_ov000_02070378Ej kind:function(arm,size=0x44) addr:0x02071a30
func_ov000_02071a74 kind:function(arm,size=0x8) addr:0x02071a74
func_ov000_02071a7c kind:function(arm,size=0x5c) addr:0x02071a7c
@@ -1081,7 +1081,7 @@ func_ov000_02073b24 kind:function(arm,size=0x204) addr:0x02073b24
func_ov000_02073d28 kind:function(arm,size=0x14) addr:0x02073d28
func_ov000_02073d3c kind:function(arm,size=0x18) addr:0x02073d3c
func_ov000_02073d54 kind:function(arm,size=0x54) addr:0x02073d54
_ZN18UnkStruct_027e09ac19func_ov000_020726f0Eiii kind:function(arm,size=0x2d4) addr:0x02073da8
_ZN18UnkStruct_027e09ac19func_ov000_020726f0Etii kind:function(arm,size=0x2d4) addr:0x02073da8
_ZN18UnkStruct_027e09ac19func_ov000_020729c4EP21UnkStruct_027e09ac_14ttss kind:function(arm,size=0x88) addr:0x0207407c
func_ov000_02074104 kind:function(arm,size=0xbc) addr:0x02074104
func_ov000_020741c0 kind:function(arm,size=0x1c) addr:0x020741c0
@@ -1091,7 +1091,7 @@ func_ov000_02074260 kind:function(arm,size=0x24) addr:0x02074260
func_ov000_02074284 kind:function(arm,size=0xa4) addr:0x02074284
func_ov000_02074328 kind:function(arm,size=0x44) addr:0x02074328
func_ov000_0207436c kind:function(arm,size=0x10) addr:0x0207436c
func_ov000_0207437c kind:function(arm,size=0x10) addr:0x0207437c
_ZN18UnkStruct_027e09b019func_ov000_02072cc4Eii kind:function(arm,size=0x10) addr:0x0207437c
func_ov000_0207438c kind:function(arm,size=0x24) addr:0x0207438c
func_ov000_020743b0 kind:function(arm,size=0x20) addr:0x020743b0
func_ov000_020743d0 kind:function(arm,size=0x10) addr:0x020743d0
@@ -1104,18 +1104,18 @@ func_ov000_02074610 kind:function(arm,size=0x40) addr:0x02074610
func_ov000_02074650 kind:function(arm,size=0x24) addr:0x02074650
func_ov000_02074674 kind:function(arm,size=0x14) addr:0x02074674
func_ov000_02074688 kind:function(arm,size=0xb0) addr:0x02074688
func_ov000_02074738 kind:function(arm,size=0x2c) addr:0x02074738
func_ov000_02073080 kind:function(arm,size=0x2c) addr:0x02074738
_ZN17ActorUnk_vfunc_B0C1Ev kind:function(arm,size=0x58) addr:0x02074764
_ZN20stack_ov000_02073578C1Ev kind:function(arm,size=0x2c) addr:0x020747bc
func_ov000_020747e8 kind:function(arm,size=0x4) addr:0x020747e8
_ZN19func_ov000_020747ecD0Ev kind:function(arm,size=0x14) addr:0x020747ec
_ZN26UnkStruct_027e09b8_04_BaseD1Ev kind:function(arm,size=0x4) addr:0x020747e8
_ZN26UnkStruct_027e09b8_04_BaseD0Ev kind:function(arm,size=0x14) addr:0x020747ec
func_ov000_02074800 kind:function(arm,size=0x4) addr:0x02074800
func_ov000_02074804 kind:function(arm,size=0x8) addr:0x02074804
func_ov000_0207480c kind:function(arm,size=0x14) addr:0x0207480c
func_ov000_02074820 kind:function(arm,size=0x4) addr:0x02074820
func_ov000_02074824 kind:function(arm,size=0x4) addr:0x02074824
func_ov000_02074828 kind:function(arm,size=0x8) addr:0x02074828
func_ov000_02074830 kind:function(arm,size=0xc) addr:0x02074830
_ZN26UnkStruct_027e09b8_04_Base8vfunc_08Ev kind:function(arm,size=0x8) addr:0x02074804
_ZN26UnkStruct_027e09b8_04_Base8vfunc_0CEv kind:function(arm,size=0x14) addr:0x0207480c
_ZN26UnkStruct_027e09b8_04_Base8vfunc_14Ev kind:function(arm,size=0x4) addr:0x02074820
_ZN26UnkStruct_027e09b8_04_Base8vfunc_18Ev kind:function(arm,size=0x4) addr:0x02074824
_ZN26UnkStruct_027e09b8_04_Base8vfunc_1CEv kind:function(arm,size=0x8) addr:0x02074828
_ZN26UnkStruct_027e09b8_04_Base8vfunc_20Ev kind:function(arm,size=0xc) addr:0x02074830
_ZN20MapObject_UnkStruct19vfunc2_00Ev kind:function(arm,size=0x4) addr:0x0207483c
_ZN20MapObject_UnkStruct19vfunc2_04Ev kind:function(arm,size=0x4) addr:0x02074840
_ZN20MapObject_UnkStruct19vfunc2_08Ev kind:function(arm,size=0x4) addr:0x02074844
@@ -1133,18 +1133,18 @@ func_ov000_020749e4 kind:function(arm,size=0x5c) addr:0x020749e4
_ZN18UnkStruct_027e09b819func_ov000_02073388EPvi kind:function(arm,size=0xe8) addr:0x02074a40
_ZN18UnkStruct_027e09b819func_ov000_02073470EPvi kind:function(arm,size=0x108) addr:0x02074b28
_ZN18UnkStruct_027e09b819func_ov000_02073578EPvi kind:function(arm,size=0x98) addr:0x02074c30
func_ov000_02074cc8 kind:function(arm,size=0xb0) addr:0x02074cc8
_ZN18UnkStruct_027e09b819func_ov000_02073610EPvi kind:function(arm,size=0xb0) addr:0x02074cc8
_ZN18UnkStruct_027e09b819func_ov000_02074d78Ei kind:function(arm,size=0x10) addr:0x02074d78
func_ov000_02074d88 kind:function(arm,size=0x8) addr:0x02074d88
func_ov000_02074d90 kind:function(arm,size=0x8) addr:0x02074d90
func_ov000_02074d98 kind:function(arm,size=0x38) addr:0x02074d98
_ZN21UnkStruct_027e09b8_00C1Ev kind:function(arm,size=0x38) addr:0x02074d98
func_ov000_02074dd0 kind:function(arm,size=0x2c) addr:0x02074dd0
func_ov000_02074dfc kind:function(arm,size=0x54) addr:0x02074dfc
func_ov000_02074e50 kind:function(arm,size=0x60) addr:0x02074e50
func_ov000_02074eb0 kind:function(arm,size=0x94) addr:0x02074eb0
func_ov000_02074f44 kind:function(arm,size=0x124) addr:0x02074f44
func_ov000_02075068 kind:function(arm,size=0x1ac) addr:0x02075068
func_ov000_02075214 kind:function(arm,size=0x64) addr:0x02075214
_ZN21UnkStruct_027e09b8_0019func_ov000_02073b5cEv kind:function(arm,size=0x64) addr:0x02075214
func_ov000_02075278 kind:function(arm,size=0x114) addr:0x02075278
func_ov000_0207538c kind:function(arm,size=0x3c) addr:0x0207538c
func_ov000_020753c8 kind:function(arm,size=0x170) addr:0x020753c8
@@ -1160,7 +1160,7 @@ func_ov000_02075b24 kind:function(arm,size=0xc4) addr:0x02075b24
func_ov000_02075be8 kind:function(arm,size=0xbc) addr:0x02075be8
_ZN19func_ov000_02075ca4D1Ev kind:function(arm,size=0x28) addr:0x02075ca4
_ZN19func_ov000_02075cccD0Ev kind:function(arm,size=0x30) addr:0x02075ccc
func_ov000_02075cfc kind:function(arm,size=0x6c) addr:0x02075cfc
_ZN21UnkStruct_027e09b8_10C1Ev kind:function(arm,size=0x6c) addr:0x02075cfc
func_ov000_02075d68 kind:function(arm,size=0x8) addr:0x02075d68
func_ov000_02075d70 kind:function(arm,size=0xc) addr:0x02075d70
func_ov000_02075d7c kind:function(arm,size=0x50) addr:0x02075d7c
@@ -1181,7 +1181,7 @@ func_ov000_0207662c kind:function(arm,size=0x38) addr:0x0207662c
func_ov000_02076664 kind:function(arm,size=0x28) addr:0x02076664
func_ov000_0207668c kind:function(arm,size=0x14) addr:0x0207668c
_ZN19func_ov000_020766a0D0Ev kind:function(arm,size=0x40) addr:0x020766a0
func_ov000_020766e0 kind:function(arm,size=0x54) addr:0x020766e0
_ZN25UnkSystem1_ov000_Derived3C1Ev kind:function(arm,size=0x54) addr:0x020766e0
func_ov000_02076734 kind:function(arm,size=0x80) addr:0x02076734
func_ov000_020767b4 kind:function(arm,size=0x28) addr:0x020767b4
func_ov000_020767dc kind:function(arm,size=0x38) addr:0x020767dc
@@ -1220,7 +1220,7 @@ func_ov000_02078814 kind:function(arm,size=0x2c) addr:0x02078814
func_ov000_02078840 kind:function(arm,size=0x14) addr:0x02078840
func_ov000_02078854 kind:function(arm,size=0x1c) addr:0x02078854
func_ov000_02078870 kind:function(arm,size=0x10) addr:0x02078870
func_ov000_02078880 kind:function(arm,size=0x188) addr:0x02078880
_ZN18UnkStruct_027e09bc19func_ov000_020771c8Ev kind:function(arm,size=0x188) addr:0x02078880
func_ov000_02078a08 kind:function(arm,size=0xf4) addr:0x02078a08
func_ov000_02078afc kind:function(arm,size=0x24) addr:0x02078afc
func_ov000_02078b20 kind:function(arm,size=0x18) addr:0x02078b20
@@ -1452,7 +1452,7 @@ func_ov000_0207ef50 kind:function(arm,size=0x5c) addr:0x0207ef50
func_ov000_0207efac kind:function(arm,size=0x6c) addr:0x0207efac
func_ov000_0207f018 kind:function(arm,size=0x98) addr:0x0207f018
func_ov000_0207f0b0 kind:function(arm,size=0x48) addr:0x0207f0b0
func_ov000_0207f0f8 kind:function(arm,size=0x20c) addr:0x0207f0f8
_ZN18UnkStruct_027e09c019func_ov000_0207da40Ev kind:function(arm,size=0x20c) addr:0x0207f0f8
func_ov000_0207f304 kind:function(arm,size=0x18) addr:0x0207f304
func_ov000_0207f31c kind:function(arm,size=0x24) addr:0x0207f31c
func_ov000_0207f340 kind:function(arm,size=0x210) addr:0x0207f340
@@ -1532,20 +1532,20 @@ func_ov000_02081164 kind:function(arm,size=0x8) addr:0x02081164
func_ov000_0208116c kind:function(arm,size=0x8) addr:0x0208116c
func_ov000_02081174 kind:function(arm,size=0x10) addr:0x02081174
func_ov000_02081184 kind:function(arm,size=0x64) addr:0x02081184
func_ov000_020811e8 kind:function(arm,size=0x30) addr:0x020811e8
_ZN33UnkStruct_027e0cd8_0C_Base_148_00C1EP12ZMBEntryARAB kind:function(arm,size=0x30) addr:0x020811e8
func_ov000_02081218 kind:function(arm,size=0x30) addr:0x02081218
func_ov000_02081248 kind:function(arm,size=0x8) addr:0x02081248
func_ov000_02081250 kind:function(arm,size=0x38) addr:0x02081250
func_ov000_02081288 kind:function(arm,size=0x40) addr:0x02081288
func_ov000_020812c8 kind:function(arm,size=0x44) addr:0x020812c8
func_ov000_0208130c kind:function(arm,size=0x3c) addr:0x0208130c
_ZN33UnkStruct_027e0cd8_0C_Base_148_01C1EP12ZMBEntryARAB kind:function(arm,size=0x44) addr:0x020812c8
_ZN33UnkStruct_027e0cd8_0C_Base_148_02C1EP12ZMBEntryARAB kind:function(arm,size=0x3c) addr:0x0208130c
func_ov000_02081348 kind:function(arm,size=0x3c) addr:0x02081348
func_ov000_02081384 kind:function(arm,size=0x44) addr:0x02081384
func_ov000_020813c8 kind:function(arm,size=0x4) addr:0x020813c8
func_ov000_020813cc kind:function(arm,size=0x4) addr:0x020813cc
func_ov000_020813d0 kind:function(arm,size=0x28) addr:0x020813d0
func_ov000_020813f8 kind:function(arm,size=0x38) addr:0x020813f8
func_ov000_02081430 kind:function(arm,size=0x4) addr:0x02081430
_ZN26UnkStruct_027e0cd8_0C_Base8vfunc_24Ev kind:function(arm,size=0x4) addr:0x020813c8
_ZN26UnkStruct_027e0cd8_0C_Base8vfunc_10Ev kind:function(arm,size=0x4) addr:0x020813cc
_ZN26UnkStruct_027e0cd8_0C_Base8vfunc_0CEv kind:function(arm,size=0x28) addr:0x020813d0
_ZN26UnkStruct_027e0cd8_0C_Base8vfunc_14Ev kind:function(arm,size=0x38) addr:0x020813f8
_ZN26UnkStruct_027e0cd8_0C_Base8vfunc_18Ev kind:function(arm,size=0x4) addr:0x02081430
Unknown_func_ov000_0207fd7c kind:function(arm,size=0x40) addr:0x02081434
func_ov000_02081474 kind:function(arm,size=0x250) addr:0x02081474
func_ov000_020816c4 kind:function(arm,size=0x5c) addr:0x020816c4
@@ -1553,30 +1553,30 @@ func_ov000_02081720 kind:function(arm,size=0x18) addr:0x02081720
func_ov000_02081738 kind:function(arm,size=0x18) addr:0x02081738
func_ov000_02081750 kind:function(arm,size=0xc8) addr:0x02081750
func_ov000_02081818 kind:function(arm,size=0x20) addr:0x02081818
_ZN21UnkStruct_027e0cd8_0c19func_ov000_02080180EPv kind:function(arm,size=0x10) addr:0x02081838
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_02080180EPv kind:function(arm,size=0x10) addr:0x02081838
func_ov000_02081848 kind:function(arm,size=0x20) addr:0x02081848
_ZN21UnkStruct_027e0cd8_0c19func_ov000_020801b0EP5Vec2bii kind:function(arm,size=0x60) addr:0x02081868
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_020801b0EP5Vec2bii kind:function(arm,size=0x60) addr:0x02081868
func_ov000_020818c8 kind:function(arm,size=0x78) addr:0x020818c8
func_ov000_02081940 kind:function(arm,size=0x64) addr:0x02081940
_ZN21UnkStruct_027e0cd8_0c19func_ov000_020802ecEtP7VecFx32 kind:function(arm,size=0x78) addr:0x020819a4
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_020802ecEtP7VecFx32 kind:function(arm,size=0x78) addr:0x020819a4
func_ov000_02081a1c kind:function(arm,size=0x88) addr:0x02081a1c
_ZN21UnkStruct_027e0cd8_0c19func_ov000_020803ecEt kind:function(arm,size=0x150) addr:0x02081aa4
_ZN21UnkStruct_027e0cd8_0c19func_ov000_0208053cEt kind:function(arm,size=0xe4) addr:0x02081bf4
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_020803ecEt kind:function(arm,size=0x150) addr:0x02081aa4
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_0208053cEt kind:function(arm,size=0xe4) addr:0x02081bf4
func_ov000_02081cd8 kind:function(arm,size=0x38) addr:0x02081cd8
func_ov000_02081d10 kind:function(arm,size=0xd8) addr:0x02081d10
func_ov000_02081de8 kind:function(arm,size=0x64) addr:0x02081de8
func_ov000_02081e4c kind:function(arm,size=0xac) addr:0x02081e4c
func_ov000_02081ef8 kind:function(arm,size=0x6c) addr:0x02081ef8
func_ov000_02081f64 kind:function(arm,size=0x20) addr:0x02081f64
func_ov000_02081f84 kind:function(arm,size=0x8) addr:0x02081f84
_ZN26UnkStruct_027e0cd8_0C_Base8vfunc_2CEv kind:function(arm,size=0x20) addr:0x02081f64
_ZN26UnkStruct_027e0cd8_0C_Base8vfunc_3CEv kind:function(arm,size=0x8) addr:0x02081f84
func_ov000_02081f8c kind:function(arm,size=0x20) addr:0x02081f8c
_ZN21UnkStruct_027e0cd8_0c19func_ov000_020808f4EPvS0_i kind:function(arm,size=0x5c) addr:0x02081fac
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_020808f4EPvS0_i kind:function(arm,size=0x5c) addr:0x02081fac
func_ov000_02082008 kind:function(arm,size=0x48) addr:0x02082008
func_ov000_02082050 kind:function(arm,size=0x40) addr:0x02082050
func_ov000_02082090 kind:function(arm,size=0x6c) addr:0x02082090
_ZN21UnkStruct_027e0cd8_0c19func_ov000_02080a44Ev kind:function(arm,size=0x18) addr:0x020820fc
_ZN21UnkStruct_027e0cd8_0c19func_ov000_02080a5cEP7VecFx32 kind:function(arm,size=0x1c) addr:0x02082114
_ZN21UnkStruct_027e0cd8_0c19func_ov000_02080a78EP7VecFx32 kind:function(arm,size=0x18) addr:0x02082130
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_02080a44Ev kind:function(arm,size=0x18) addr:0x020820fc
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_02080a5cEP7VecFx32 kind:function(arm,size=0x1c) addr:0x02082114
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov000_02080a78EP7VecFx32 kind:function(arm,size=0x18) addr:0x02082130
func_ov000_02082148 kind:function(arm,size=0x1c) addr:0x02082148
func_ov000_02082164 kind:function(arm,size=0x18) addr:0x02082164
func_ov000_0208217c kind:function(arm,size=0x68) addr:0x0208217c
@@ -1591,14 +1591,14 @@ func_ov000_02082770 kind:function(arm,size=0x7c) addr:0x02082770
func_ov000_020827ec kind:function(arm,size=0x4) addr:0x020827ec
func_ov000_020827f0 kind:function(arm,size=0x18) addr:0x020827f0
func_ov000_02082808 kind:function(arm,size=0x70) addr:0x02082808
func_ov000_02082878 kind:function(arm,size=0xb0) addr:0x02082878
func_ov000_02082928 kind:function(arm,size=0x24) addr:0x02082928
_ZN21UnkStruct_027e0cd8_04C1Ev kind:function(arm,size=0xb0) addr:0x02082878
_ZN21UnkStruct_027e0cd8_04D1Ev kind:function(arm,size=0x24) addr:0x02082928
func_ov000_0208294c kind:function(arm,size=0x6c) addr:0x0208294c
func_ov000_020829b8 kind:function(arm,size=0x54) addr:0x020829b8
func_ov000_02082a0c kind:function(arm,size=0x118) addr:0x02082a0c
_ZN21UnkStruct_027e0cd8_0419func_ov000_02081354EPK15CourseListEntryPK29UnkStruct_func_ov000_020702a8P28SaveFile_00000_0000_Data_184b kind:function(arm,size=0x118) addr:0x02082a0c
func_ov000_02082b24 kind:function(arm,size=0x80) addr:0x02082b24
func_ov000_02082ba4 kind:function(arm,size=0x34) addr:0x02082ba4
func_ov000_02082bd8 kind:function(arm,size=0x54) addr:0x02082bd8
func_ov000_020814ec kind:function(arm,size=0x34) addr:0x02082ba4
func_ov000_02081520 kind:function(arm,size=0x54) addr:0x02082bd8
func_ov000_02082c2c kind:function(arm,size=0x8c) addr:0x02082c2c
func_ov000_02082cb8 kind:function(arm,size=0x2c) addr:0x02082cb8
func_ov000_02082ce4 kind:function(arm,size=0x28) addr:0x02082ce4
@@ -1627,7 +1627,7 @@ func_ov000_0208323c kind:function(arm,size=0x18) addr:0x0208323c
func_ov000_02083254 kind:function(arm,size=0x58) addr:0x02083254
func_ov000_020832ac kind:function(arm,size=0x34) addr:0x020832ac
_ZN18UnkStruct_027e0cd819func_ov000_02081c28Ev kind:function(arm,size=0x78) addr:0x020832e0
func_ov000_02083358 kind:function(arm,size=0xa8) addr:0x02083358
_ZN18UnkStruct_027e0cd819func_ov000_02081ca0Ev kind:function(arm,size=0xa8) addr:0x02083358
func_ov000_02083400 kind:function(arm,size=0x10) addr:0x02083400
func_ov000_02083410 kind:function(arm,size=0x4) addr:0x02083410
_ZN18UnkStruct_027e0cd819func_ov000_02081d5cEv kind:function(arm,size=0x20) addr:0x02083414
@@ -1652,12 +1652,12 @@ _ZN19func_ov000_020839b8D0Ev kind:function(arm,size=0x1c) addr:0x020839b8
_ZN19func_ov000_020839d4D2Ev kind:function(arm,size=0x14) addr:0x020839d4
func_ov000_020839e8 kind:function(arm,size=0x4) addr:0x020839e8
func_ov000_020839ec kind:function(arm,size=0x8) addr:0x020839ec
func_ov000_020839f4 kind:function(arm,size=0x1c) addr:0x020839f4
_ZN29UnkStruct_027e0cd8_0C_Base_88C1Ev kind:function(arm,size=0x1c) addr:0x020839f4
func_ov000_02083a10 kind:function(arm,size=0x20) addr:0x02083a10
func_ov000_02083a30 kind:function(arm,size=0x30) addr:0x02083a30
func_ov000_02083a60 kind:function(arm,size=0x258) addr:0x02083a60
_ZN29UnkStruct_027e0cd8_0C_Base_8819func_ov000_020823a8Ei kind:function(arm,size=0x258) addr:0x02083a60
func_ov000_02083cb8 kind:function(arm,size=0x1c) addr:0x02083cb8
func_ov000_02083cd4 kind:function(arm,size=0x68) addr:0x02083cd4
_ZN29UnkStruct_027e0cd8_0C_Base_8819func_ov000_0208261cEv kind:function(arm,size=0x68) addr:0x02083cd4
func_ov000_02083d3c kind:function(arm,size=0x34) addr:0x02083d3c
func_ov000_02083d70 kind:function(arm,size=0x90) addr:0x02083d70
func_ov000_02083e00 kind:function(arm,size=0x14) addr:0x02083e00
@@ -2961,12 +2961,12 @@ func_ov000_020a8fd0 kind:function(arm,size=0x5c) addr:0x020a8fd0
_Z22Cutscene_GetParamEntryi kind:function(arm,size=0x14) addr:0x020a902c
func_ov000_020a9040 kind:function(arm,size=0x84) addr:0x020a9040
_Z27Cutscene_IsAdventureFlagSeti kind:function(arm,size=0x44) addr:0x020a90c4
func_ov000_020a9108 kind:function(arm,size=0xdc) addr:0x020a9108
_ZN21UnkStruct_027e09b8_98C1Ev kind:function(arm,size=0xdc) addr:0x020a9108
func_ov000_020a91e4 kind:function(arm,size=0x6c) addr:0x020a91e4
func_ov000_020a9250 kind:function(arm,size=0x20) addr:0x020a9250
func_ov000_020a9270 kind:function(arm,size=0xa8) addr:0x020a9270
_ZN21UnkStruct_027e09b8_98D1Ev kind:function(arm,size=0xa8) addr:0x020a9270
func_ov000_020a9318 kind:function(arm,size=0x1c) addr:0x020a9318
func_ov000_020a9334 kind:function(arm,size=0x74) addr:0x020a9334
_ZN21UnkStruct_027e09b8_9819func_ov000_020a7b34Ev kind:function(arm,size=0x74) addr:0x020a9334
func_ov000_020a93a8 kind:function(arm,size=0x98) addr:0x020a93a8
func_ov000_020a9440 kind:function(arm,size=0x4c) addr:0x020a9440
func_ov000_020a948c kind:function(arm,size=0x24) addr:0x020a948c
@@ -3503,10 +3503,10 @@ data_ov000_020b3a44 kind:data(any) addr:0x020b3a44
data_ov000_020b3a64 kind:data(any) addr:0x020b3a64
data_ov000_020b3a90 kind:data(any) addr:0x020b3a90
data_ov000_020b3aa8 kind:data(any) addr:0x020b3aa8
data_ov000_020b3ac0 kind:data(any) addr:0x020b3ac0
_ZTV21UnkStruct_027e09b8_04 kind:data(any) addr:0x020b3ab8
data_ov000_020b3aec kind:data(any) addr:0x020b3aec
_ZTV19data_ov000_020b3b14 kind:data(any) addr:0x020b3b14
data_ov000_020b3b4c kind:data(any) addr:0x020b3b4c
_ZTV21UnkStruct_027e09b8_0C kind:data(any) addr:0x020b3b44
data_ov000_020b3b78 kind:data(any) addr:0x020b3b78
_ZTV19data_ov000_020b3b7c kind:data(any) addr:0x020b3b7c
_ZTV19data_ov000_020b3b98 kind:data(any) addr:0x020b3b98
@@ -3546,7 +3546,7 @@ data_ov000_020b40e0 kind:data(any) addr:0x020b40e0
data_ov000_020b40f8 kind:data(any) addr:0x020b40f8
data_ov000_020b410c kind:data(any) addr:0x020b410c
data_ov000_020b4120 kind:data(any) addr:0x020b4120
data_ov000_020b4140 kind:data(any) addr:0x020b4140
_ZTV10UnkSystem8 kind:data(any) addr:0x020b4138
data_ov000_020b414c kind:data(any) addr:0x020b414c
data_ov000_020b4154 kind:data(any) addr:0x020b4154
data_ov000_020b4164 kind:data(any) addr:0x020b4164
+8 -4
View File
@@ -18,16 +18,20 @@ src/001_SceneInit/CourseList.cpp:
.bss start:0x020c4820 end:0x020c5928
src/001_SceneInit/UnkStruct_027e09b8_001.cpp:
complete
.text start:0x020b8d84 end:0x020b8f94
src/001_SceneInit/UnkStruct_027e0cd8_001.cpp:
complete
.text start:0x020b8f94 end:0x020b9a20
.data start:0x020c41b0 end:0x020c4234
src/001_SceneInit/UnkStruct_027e0cd8_0C_001.cpp:
.text start:0x020b9a20 end:0x020ba6b4
src/001_SceneInit/UnkStruct_027e0cd8_0C_148_154_001.cpp:
.text start:0x020ba6b4 end:0x020baab0
.text start:0x020b9a20 end:0x020baab0
.init start:0x020c408c end:0x020c4144
.bss start:0x020c5928 end:0x020c5f34
.data start:0x020c4234 end:0x020c437c
.ctor start:0x020c4158 end:0x020c415c
src/001_SceneInit/ZeldaArrangeBinary.cpp:
.text start:0x020baab0 end:0x020bacf0
+16 -22
View File
@@ -314,8 +314,8 @@ from:0x020b8e48 kind:thumb_call_arm to:0x02011f3c module:main
from:0x020b8e50 kind:thumb_call_arm to:0x02075cfc module:overlay(0)
from:0x020b8e5c kind:thumb_call_arm to:0x02011f3c module:main
from:0x020b8e64 kind:thumb_call_arm to:0x020a9108 module:overlay(0)
from:0x020b8e78 kind:load to:0x020b3ac0 module:overlay(0)
from:0x020b8e7c kind:load to:0x020b3b4c module:overlay(0)
from:0x020b8e78 kind:load to:0x020b3ab8 module:overlay(0) add:0x8
from:0x020b8e7c kind:load to:0x020b3b44 module:overlay(0) add:0x8
from:0x020b8e80 kind:load to:0x0204b608 module:main
from:0x020b8ea6 kind:thumb_call_arm to:0x02011ff4 module:main
from:0x020b8eb8 kind:thumb_call_arm to:0x020a9270 module:overlay(0)
@@ -339,7 +339,7 @@ from:0x020b8fa4 kind:thumb_call to:0x020b8fac module:overlay(1)
from:0x020b8fb0 kind:thumb_call to:0x020b9a08 module:overlay(1)
from:0x020b8fca kind:thumb_call_arm to:0x02016614 module:main
from:0x020b8fe6 kind:thumb_call_arm to:0x0201668c module:main
from:0x020b900c kind:load to:0x020b4140 module:overlay(0)
from:0x020b900c kind:load to:0x020b4138 module:overlay(0) add:0x8
from:0x020b9010 kind:load to:0x027e09bc module:dtcm
from:0x020b9020 kind:thumb_call_arm to:0x02082928 module:overlay(0)
from:0x020b9026 kind:thumb_call_arm to:0x02011ff4 module:main
@@ -441,8 +441,8 @@ from:0x020b953e kind:thumb_call to:0x020b96a8 module:overlay(1)
from:0x020b955c kind:thumb_call_arm to:0x02083414 module:overlay(0)
from:0x020b9568 kind:thumb_call_arm to:0x020cc828 module:overlay(24)
from:0x020b9576 kind:thumb_call_arm to:0x020cc850 module:overlay(24)
from:0x020b9580 kind:load to:0x021668f0 module:overlays(59,68,84)
from:0x020b9598 kind:load to:0x02163428 module:overlays(62,66,84)
from:0x020b9580 kind:load to:0x021668f0 module:overlay(84)
from:0x020b9598 kind:load to:0x02163428 module:overlay(84)
from:0x020b959c kind:load to:0x027e09a4 module:dtcm
from:0x020b95a0 kind:load to:0x020da034 module:overlay(24)
from:0x020b95b2 kind:thumb_call_arm to:0x02071954 module:overlay(0)
@@ -539,7 +539,7 @@ from:0x020b9a58 kind:thumb_call to:0x020154e8 module:main
from:0x020b9a6c kind:thumb_call_arm to:0x020839f4 module:overlay(0)
from:0x020b9bfe kind:thumb_call to:0x020bc6e8 module:overlay(1)
from:0x020b9c06 kind:thumb_call to:0x0205a820 module:overlay(0)
from:0x020b9c10 kind:load to:0x020c423c module:overlay(1)
from:0x020b9c10 kind:load to:0x020c4234 module:overlay(1) add:0x8
from:0x020b9c14 kind:load to:0x027e0c90 module:dtcm
from:0x020b9c18 kind:load to:0x027e0ca8 module:dtcm
from:0x020b9c1c kind:load to:0x027e0c9c module:dtcm
@@ -551,7 +551,7 @@ from:0x020b9c30 kind:load to:0x027e0ce8 module:dtcm
from:0x020b9c34 kind:load to:0x027e095c module:dtcm
from:0x020b9c44 kind:thumb_call to:0x0205a868 module:overlay(0)
from:0x020b9c4c kind:thumb_call to:0x020bc770 module:overlay(1)
from:0x020b9c5c kind:thumb_call_arm to:0x02131f24 module:overlays(26,47)
from:0x020b9c5c kind:thumb_call_arm to:0x02131f24 module:overlay(47)
from:0x020b9c62 kind:thumb_call_arm to:0x02011ff4 module:main
from:0x020b9c94 kind:thumb_call to:0x020ba32c module:overlay(1)
from:0x020b9c9e kind:thumb_call to:0x020ba6cc module:overlay(1)
@@ -559,12 +559,12 @@ from:0x020b9ca6 kind:thumb_call to:0x020ba73c module:overlay(1)
from:0x020b9cae kind:thumb_call to:0x02015504 module:main
from:0x020b9cb6 kind:thumb_call to:0x0205910c module:overlay(0)
from:0x020b9cbc kind:thumb_call to:0x02015414 module:main
from:0x020b9cc4 kind:load to:0x020c423c module:overlay(1)
from:0x020b9cc4 kind:load to:0x020c4234 module:overlay(1) add:0x8
from:0x020b9cc8 kind:load to:0x027e095c module:dtcm
from:0x020b9ccc kind:load to:0x027e0ce8 module:dtcm
from:0x020b9cdc kind:thumb_call to:0x0205a868 module:overlay(0)
from:0x020b9ce4 kind:thumb_call to:0x020bc770 module:overlay(1)
from:0x020b9cf4 kind:thumb_call_arm to:0x02131f24 module:overlays(26,47)
from:0x020b9cf4 kind:thumb_call_arm to:0x02131f24 module:overlay(47)
from:0x020b9cfa kind:thumb_call_arm to:0x02011ff4 module:main
from:0x020b9d2c kind:thumb_call to:0x020ba32c module:overlay(1)
from:0x020b9d36 kind:thumb_call to:0x020ba6cc module:overlay(1)
@@ -573,12 +573,12 @@ from:0x020b9d46 kind:thumb_call to:0x02015504 module:main
from:0x020b9d4e kind:thumb_call to:0x0205910c module:overlay(0)
from:0x020b9d54 kind:thumb_call to:0x02015414 module:main
from:0x020b9d5a kind:thumb_call_arm to:0x02011ff4 module:main
from:0x020b9d64 kind:load to:0x020c423c module:overlay(1)
from:0x020b9d64 kind:load to:0x020c4234 module:overlay(1) add:0x8
from:0x020b9d68 kind:load to:0x027e095c module:dtcm
from:0x020b9d6c kind:load to:0x027e0ce8 module:dtcm
from:0x020b9d7c kind:thumb_call to:0x0205a868 module:overlay(0)
from:0x020b9d84 kind:thumb_call to:0x020bc770 module:overlay(1)
from:0x020b9d94 kind:thumb_call_arm to:0x02131f24 module:overlays(26,47)
from:0x020b9d94 kind:thumb_call_arm to:0x02131f24 module:overlay(47)
from:0x020b9d9a kind:thumb_call_arm to:0x02011ff4 module:main
from:0x020b9dcc kind:thumb_call to:0x020ba32c module:overlay(1)
from:0x020b9dd6 kind:thumb_call to:0x020ba6cc module:overlay(1)
@@ -586,7 +586,7 @@ from:0x020b9dde kind:thumb_call to:0x020ba73c module:overlay(1)
from:0x020b9de6 kind:thumb_call to:0x02015504 module:main
from:0x020b9dee kind:thumb_call to:0x0205910c module:overlay(0)
from:0x020b9df4 kind:thumb_call to:0x02015414 module:main
from:0x020b9dfc kind:load to:0x020c423c module:overlay(1)
from:0x020b9dfc kind:load to:0x020c4234 module:overlay(1) add:0x8
from:0x020b9e00 kind:load to:0x027e095c module:dtcm
from:0x020b9e04 kind:load to:0x027e0ce8 module:dtcm
from:0x020b9e30 kind:thumb_call_arm to:0x02027d30 module:main
@@ -688,7 +688,7 @@ from:0x020ba5dc kind:load to:0x027e0c90 module:dtcm
from:0x020ba660 kind:load to:0x02083a60 module:overlay(0)
from:0x020ba682 kind:thumb_call_arm to:0x02011f3c module:main
from:0x020ba68a kind:thumb_call_arm to:0x02131ec0 module:overlays(47,48,49,50,51,52)
from:0x020ba6a2 kind:thumb_call_arm to:0x02131f24 module:overlays(26,47)
from:0x020ba6a2 kind:thumb_call_arm to:0x02131f24 module:overlay(47)
from:0x020ba6a8 kind:thumb_call_arm to:0x02011ff4 module:main
from:0x020ba6bc kind:thumb_call to:0x020ba758 module:overlay(1)
from:0x020ba6c6 kind:thumb_call to:0x020ba7d8 module:overlay(1)
@@ -2318,12 +2318,9 @@ from:0x020c2242 kind:thumb_call_arm to:0x020c2868 module:overlay(1)
from:0x020c226c kind:load to:0x020c21f1 module:overlay(1)
from:0x020c2270 kind:load to:0x020c2215 module:overlay(1)
from:0x020c2274 kind:load to:0x020c5f3c module:overlay(1)
from:0x020c2328 kind:load to:0x020c426c module:overlay(1)
from:0x020c23e0 kind:load to:0x020c42e4 module:overlay(1)
from:0x020c2494 kind:load to:0x020c47a0 module:overlay(1)
from:0x020c2498 kind:load to:0x020c417c module:overlays(2,4)
from:0x020c254c kind:load to:0x020c4818 module:overlay(1)
from:0x020c2550 kind:load to:0x020c41f4 module:overlay(1)
from:0x020c26f0 kind:load to:0x020c5f41 module:overlay(1)
from:0x020c2768 kind:load to:0x020c5f41 module:overlay(1)
from:0x020c27e0 kind:load to:0x020c5f41 module:overlay(1)
@@ -2340,9 +2337,6 @@ from:0x020c2ed4 kind:load to:0x020c5f41 module:overlay(1)
from:0x020c2ee0 kind:load to:0x020c3f90 module:overlay(1)
from:0x020c2f4c kind:load to:0x020c5f41 module:overlay(1)
from:0x020c2f6c kind:load to:0x020c417c module:overlays(2,4)
from:0x020c2f74 kind:load to:0x020c41f4 module:overlay(1)
from:0x020c2f7c kind:load to:0x020c426c module:overlay(1)
from:0x020c2f84 kind:load to:0x020c42e4 module:overlay(1)
from:0x020c30f8 kind:load to:0x020c5f40 module:overlay(1)
from:0x020c3184 kind:load to:0x020c5f40 module:overlay(1)
from:0x020c3214 kind:load to:0x020c5f40 module:overlay(1)
@@ -2382,9 +2376,9 @@ from:0x020c4128 kind:load to:0x020c5934 module:overlay(1)
from:0x020c412c kind:load to:0x020baa99 module:overlay(1)
from:0x020c4130 kind:load to:0x020c5928 module:overlay(1)
from:0x020c4134 kind:load to:0x020c4280 module:overlay(1)
from:0x020c4138 kind:load to:0x020c4294 module:overlay(1)
from:0x020c413c kind:load to:0x020c42a8 module:overlay(1)
from:0x020c4140 kind:load to:0x020c42bc module:overlay(1)
from:0x020c4138 kind:load to:0x020c4280 add:0x14 module:overlay(1)
from:0x020c413c kind:load to:0x020c4280 add:0x28 module:overlay(1)
from:0x020c4140 kind:load to:0x020c4280 add:0x3c module:overlay(1)
from:0x020c4150 kind:load to:0x020c4814 module:overlay(1)
from:0x020c4154 kind:load to:0x020c4069 module:overlay(1)
from:0x020c4158 kind:load to:0x020c408d module:overlay(1)
+112 -118
View File
@@ -43,77 +43,77 @@ _ZN18UnkStruct_027e09a015InitCourseTableEv kind:function(thumb,size=0x32) addr:0
_ZN8InstanceI18UnkStruct_027e09a0EC2Ev kind:function(thumb,size=0xc) addr:0x020b8d6c
_ZN8InstanceI18UnkStruct_027e09a0ED2Ev kind:function(thumb,size=0xc) addr:0x020b8d78
_ZN18UnkStruct_027e09b86CreateEv kind:function(thumb,size=0x16) addr:0x020b8d84
func_ov001_020b7574 kind:function(thumb,size=0xec) addr:0x020b8d9c
_ZN18UnkStruct_027e09b8C1Ev kind:function(thumb,size=0xec) addr:0x020b8d9c
_ZN18UnkStruct_027e09b8D1Ev kind:function(thumb,size=0x4c) addr:0x020b8e88
func_ov001_020b76ac kind:function(thumb,size=0x14) addr:0x020b8ed4
_ZN18UnkStruct_027e09b820ImportAdventureFlagsEPj kind:function(thumb,size=0x14) addr:0x020b8ed4
_ZN18UnkStruct_027e09b819func_ov001_020b76c0Ej kind:function(thumb,size=0x40) addr:0x020b8ee8
_ZN18UnkStruct_027e09b819func_ov001_020b7700Ev kind:function(thumb,size=0x28) addr:0x020b8f28
func_ov001_020b7728 kind:function(thumb,size=0x2c) addr:0x020b8f50
func_ov001_020b7754 kind:function(thumb,size=0xc) addr:0x020b8f7c
func_ov001_020b7760 kind:function(thumb,size=0xc) addr:0x020b8f88
_ZN18UnkStruct_027e09b819func_ov001_020b7728Ev kind:function(thumb,size=0x2c) addr:0x020b8f50
_ZN8InstanceI18UnkStruct_027e09b8EC2Ev kind:function(thumb,size=0xc) addr:0x020b8f7c
_ZN8InstanceI18UnkStruct_027e09b8ED2Ev kind:function(thumb,size=0xc) addr:0x020b8f88
_ZN18UnkStruct_027e0cd86CreateEv kind:function(thumb,size=0x16) addr:0x020b8f94
func_ov001_020b7784 kind:function(thumb,size=0x68) addr:0x020b8fac
_ZN18UnkStruct_027e0cd8C1Ev kind:function(thumb,size=0x68) addr:0x020b8fac
_ZN18UnkStruct_027e0cd8D1Ev kind:function(thumb,size=0x42) addr:0x020b9014
_ZN18UnkStruct_027e0cd819func_ov001_020b7830EP22UnkStruct_SceneChange1 kind:function(thumb,size=0x24c) addr:0x020b9058
_ZN18UnkStruct_027e0cd819func_ov001_020b7830EPK22UnkStruct_SceneChange1 kind:function(thumb,size=0x24c) addr:0x020b9058
_ZN18UnkStruct_027e0cd819func_ov001_020b7a7cEv kind:function(thumb,size=0xbc) addr:0x020b92a4
func_ov001_020b7b38 kind:function(thumb,size=0xd0) addr:0x020b9360
_ZN18UnkStruct_027e0cd819func_ov001_020b7c08EP22UnkStruct_SceneChange1P21UnkStruct_WarpUnk1_A0 kind:function(thumb,size=0x174) addr:0x020b9430
func_ov001_020b7d64 kind:function(thumb,size=0xec) addr:0x020b95a4
func_ov001_020b7e50 kind:function(thumb,size=0x16) addr:0x020b9690
func_ov001_020b7e68 kind:function(thumb,size=0x1d4) addr:0x020b96a8
func_ov001_020b803c kind:function(thumb,size=0xc0) addr:0x020b987c
func_ov001_020b80fc kind:function(thumb,size=0x24) addr:0x020b993c
func_ov001_020b8120 kind:function(thumb,size=0x6c) addr:0x020b9960
func_ov001_020b818c kind:function(thumb,size=0x3c) addr:0x020b99cc
func_ov001_020b81c8 kind:function(thumb,size=0xc) addr:0x020b9a08
func_ov001_020b81d4 kind:function(thumb,size=0xc) addr:0x020b9a14
_ZN21UnkStruct_027e0cd8_0cC1Ev kind:function(thumb,size=0x218) addr:0x020b9a20
func_ov001_020b83f8 kind:function(thumb,size=0x98) addr:0x020b9c38
func_ov001_020b8490 kind:function(thumb,size=0xa0) addr:0x020b9cd0
func_ov001_020b8530 kind:function(thumb,size=0x98) addr:0x020b9d70
func_ov001_020b85c8 kind:function(thumb,size=0x2) addr:0x020b9e08
func_ov001_020b85cc kind:function(thumb,size=0x2) addr:0x020b9e0c
func_ov001_020b85d0 kind:function(thumb,size=0x2f0) addr:0x020b9e10
func_ov001_020b88c0 kind:function(thumb,size=0x2c) addr:0x020ba100
func_ov001_020b88ec kind:function(thumb,size=0x60) addr:0x020ba12c
func_ov001_020b894c kind:function(thumb,size=0xe0) addr:0x020ba18c
func_ov001_020b8a2c kind:function(thumb,size=0x2c) addr:0x020ba26c
func_ov001_020b8a58 kind:function(thumb,size=0x2) addr:0x020ba298
_ZN21UnkStruct_027e0cd8_0c19func_ov001_020b8a5cEii kind:function(thumb,size=0x8e) addr:0x020ba29c
func_ov001_020b8aec kind:function(thumb,size=0xa8) addr:0x020ba32c
func_ov001_020b8b94 kind:function(thumb,size=0x9c) addr:0x020ba3d4
func_ov001_020b8c30 kind:function(thumb,size=0x4e) addr:0x020ba470
func_ov001_020b8c80 kind:function(thumb,size=0x10) addr:0x020ba4c0
func_ov001_020b8c90 kind:function(thumb,size=0x8) addr:0x020ba4d0
func_ov001_020b8c98 kind:function(thumb,size=0x8) addr:0x020ba4d8
func_ov001_020b8ca0 kind:function(thumb,size=0x8) addr:0x020ba4e0
func_ov001_020b8ca8 kind:function(thumb,size=0x2) addr:0x020ba4e8
func_ov001_020b8cac kind:function(thumb,size=0xfc) addr:0x020ba4ec
func_ov001_020b8da8 kind:function(thumb,size=0xe) addr:0x020ba5e8
func_ov001_020b8db8 kind:function(thumb,size=0x6c) addr:0x020ba5f8
func_ov001_020b8e24 kind:function(thumb,size=0x30) addr:0x020ba664
func_ov001_020b8e54 kind:function(thumb,size=0x20) addr:0x020ba694
func_ov001_020b8e74 kind:function(thumb,size=0x18) addr:0x020ba6b4
func_ov001_020b8e8c kind:function(thumb,size=0x1c) addr:0x020ba6cc
func_ov001_020b8ea8 kind:function(thumb,size=0x3c) addr:0x020ba6e8
func_ov001_020b8ee4 kind:function(thumb,size=0x18) addr:0x020ba724
func_ov001_020b8efc kind:function(thumb,size=0x1c) addr:0x020ba73c
func_ov001_020b8f18 kind:function(thumb,size=0x80) addr:0x020ba758
func_ov001_020b8f98 kind:function(thumb,size=0xd4) addr:0x020ba7d8
func_ov001_020b906c kind:function(thumb,size=0x80) addr:0x020ba8ac
func_ov001_020b90ec kind:function(thumb,size=0xc6) addr:0x020ba92c
func_ov001_020b91b4 kind:function(thumb,size=0x10) addr:0x020ba9f4
func_ov001_020b91c4 kind:function(thumb,size=0x10) addr:0x020baa04
func_ov001_020b91d4 kind:function(thumb,size=0x24) addr:0x020baa14
func_ov001_020b91f8 kind:function(thumb,size=0x1c) addr:0x020baa38
func_ov001_020b9214 kind:function(thumb,size=0x28) addr:0x020baa54
func_ov001_020b923c kind:function(thumb,size=0x1c) addr:0x020baa7c
func_ov001_020b9258 kind:function(thumb,size=0x18) addr:0x020baa98
_ZN18UnkStruct_027e0cd819func_ov001_020b7b38EPK15CourseListEntryPK29UnkStruct_func_ov000_020702a8 kind:function(thumb,size=0xd0) addr:0x020b9360
_ZN18UnkStruct_027e0cd819func_ov001_020b7c08EPK22UnkStruct_SceneChange1PK21UnkStruct_WarpUnk1_A0 kind:function(thumb,size=0x174) addr:0x020b9430
_ZN18UnkStruct_027e0cd819func_ov001_020b7d64EPK22UnkStruct_SceneChange1 kind:function(thumb,size=0xec) addr:0x020b95a4
_ZN18UnkStruct_027e0cd819func_ov001_020b7e50Ev kind:function(thumb,size=0x16) addr:0x020b9690
_ZN18UnkStruct_027e0cd819func_ov001_020b7e68EPK22UnkStruct_SceneChange1b kind:function(thumb,size=0x1d4) addr:0x020b96a8
_ZN18UnkStruct_027e0cd819func_ov001_020b803cEv kind:function(thumb,size=0xc0) addr:0x020b987c
_ZN18UnkStruct_027e0cd819func_ov001_020b80fcEj kind:function(thumb,size=0x24) addr:0x020b993c
_ZN18UnkStruct_027e0cd819func_ov001_020b8120Ej kind:function(thumb,size=0x6c) addr:0x020b9960
_ZN18UnkStruct_027e0cd819func_ov001_020b818cEv kind:function(thumb,size=0x3c) addr:0x020b99cc
_ZN8InstanceI18UnkStruct_027e0cd8EC2Ev kind:function(thumb,size=0xc) addr:0x020b9a08
_ZN8InstanceI18UnkStruct_027e0cd8ED2Ev kind:function(thumb,size=0xc) addr:0x020b9a14
_ZN26UnkStruct_027e0cd8_0C_BaseC1EP18UnkStruct_027e0cd8 kind:function(thumb,size=0x218) addr:0x020b9a20
_ZN26UnkStruct_027e0cd8_0C_BaseD1Ev kind:function(thumb,size=0x98) addr:0x020b9c38
_ZN26UnkStruct_027e0cd8_0C_BaseD0Ev kind:function(thumb,size=0xa0) addr:0x020b9cd0
_ZN26UnkStruct_027e0cd8_0C_BaseD2Ev kind:function(thumb,size=0x98) addr:0x020b9d70
_ZN26UnkStruct_027e0cd8_0C_Base8vfunc_38Ev kind:function(thumb,size=0x2) addr:0x020b9e08
_ZN26UnkStruct_027e0cd8_0C_Base8vfunc_08Ev kind:function(thumb,size=0x2) addr:0x020b9e0c
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov001_020b85d0EPK22UnkStruct_SceneChange1 kind:function(thumb,size=0x2f0) addr:0x020b9e10
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov001_020b88c0Ei kind:function(thumb,size=0x2c) addr:0x020ba100
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov001_020b88ecEv kind:function(thumb,size=0x60) addr:0x020ba12c
_ZN26UnkStruct_027e0cd8_0C_Base14LoadSceneModelEPK22UnkStruct_SceneChange1 kind:function(thumb,size=0xe0) addr:0x020ba18c
_ZN26UnkStruct_027e0cd8_0C_Base8vfunc_1CEPK22UnkStruct_SceneChange1bb kind:function(thumb,size=0x2c) addr:0x020ba26c
_ZN26UnkStruct_027e0cd8_0C_Base8vfunc_20Ev kind:function(thumb,size=0x2) addr:0x020ba298
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov001_020b8a5cEii kind:function(thumb,size=0x8e) addr:0x020ba29c
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov001_020b8aecEv kind:function(thumb,size=0xa8) addr:0x020ba32c
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov001_020b8b94EP12ZMBEntryARAB kind:function(thumb,size=0x9c) addr:0x020ba3d4
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov001_020b8c30ERK33UnkStruct_027e0cd8_0C_Base_154_00 kind:function(thumb,size=0x4e) addr:0x020ba470
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov001_020b8c80Ei kind:function(thumb,size=0x10) addr:0x020ba4c0
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov001_020b8c90Ei kind:function(thumb,size=0x8) addr:0x020ba4d0
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov001_020b8c98Ei kind:function(thumb,size=0x8) addr:0x020ba4d8
_ZN26UnkStruct_027e0cd8_0C_Base8vfunc_34Ei kind:function(thumb,size=0x8) addr:0x020ba4e0
_ZN24UnkStruct_ov001_020c40f4D1Ev kind:function(thumb,size=0x2) addr:0x020ba4e8
_ZN26UnkStruct_027e0cd8_0C_Base8vfunc_40Eh kind:function(thumb,size=0xfc) addr:0x020ba4ec
_ZN24UnkStruct_ov001_020c40f4C1Ev kind:function(thumb,size=0xe) addr:0x020ba5e8
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov001_020b8db8Ev kind:function(thumb,size=0x6c) addr:0x020ba5f8
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov001_020b8e24Ev kind:function(thumb,size=0x30) addr:0x020ba664
_ZN26UnkStruct_027e0cd8_0C_Base19func_ov001_020b8e54Ev kind:function(thumb,size=0x20) addr:0x020ba694
_ZNSt13__vec_deleterI33UnkStruct_027e0cd8_0C_Base_154_00SaIS0_EE13sub_push_backERKS0_N10Metrowerks8int2typeILi0EEE kind:function(thumb,size=0x18) addr:0x020ba6b4
_ZN12CustomVectorI33UnkStruct_027e0cd8_0C_Base_154_00ED1Ev kind:function(thumb,size=0x1c) addr:0x020ba6cc
_ZNSt13__vec_deleterIP38UnkStruct_027e0cd8_0C_Base_148_00_BaseSaIS1_EE5eraseEPS1_S4_13UnkMSLStruct1 kind:function(thumb,size=0x3c) addr:0x020ba6e8
_ZNSt13__vec_deleterIP38UnkStruct_027e0cd8_0C_Base_148_00_BaseSaIS1_EE13sub_push_backERKS1_N10Metrowerks8int2typeILi1EEE kind:function(thumb,size=0x18) addr:0x020ba724
_ZN12CustomVectorIP38UnkStruct_027e0cd8_0C_Base_148_00_BaseED1Ev kind:function(thumb,size=0x1c) addr:0x020ba73c
_ZNSt13__vec_deleterI33UnkStruct_027e0cd8_0C_Base_154_00SaIS0_EE7grow_byEm kind:function(thumb,size=0x80) addr:0x020ba758
_ZNSt13__vec_deleterI33UnkStruct_027e0cd8_0C_Base_154_00SaIS0_EE14append_reallocEmRKS0_ kind:function(thumb,size=0xd4) addr:0x020ba7d8
_ZNSt13__vec_deleterIP38UnkStruct_027e0cd8_0C_Base_148_00_BaseSaIS1_EE7grow_byEm kind:function(thumb,size=0x80) addr:0x020ba8ac
_ZNSt13__vec_deleterIP38UnkStruct_027e0cd8_0C_Base_148_00_BaseSaIS1_EE14append_reallocEmRKS1_ kind:function(thumb,size=0xc6) addr:0x020ba92c
_ZNSt20__vec_deleter_helperI33UnkStruct_027e0cd8_0C_Base_154_00SaIS0_EED1Ev kind:function(thumb,size=0x10) addr:0x020ba9f4
_ZNSt20__vec_deleter_helperIP38UnkStruct_027e0cd8_0C_Base_148_00_BaseSaIS1_EED1Ev kind:function(thumb,size=0x10) addr:0x020baa04
_ZNSt13__vec_deleterIP38UnkStruct_027e0cd8_0C_Base_148_00_BaseSaIS1_EE8allocateEmN10Metrowerks8int2typeILi1EEE kind:function(thumb,size=0x24) addr:0x020baa14
_ZNSt13__vec_deleterIP38UnkStruct_027e0cd8_0C_Base_148_00_BaseSaIS1_EED2Ev kind:function(thumb,size=0x1c) addr:0x020baa38
_ZNSt13__vec_deleterI33UnkStruct_027e0cd8_0C_Base_154_00SaIS0_EE8allocateEmN10Metrowerks8int2typeILi1EEE kind:function(thumb,size=0x28) addr:0x020baa54
_ZNSt13__vec_deleterI33UnkStruct_027e0cd8_0C_Base_154_00SaIS0_EED2Ev kind:function(thumb,size=0x1c) addr:0x020baa7c
__arraydtor$4129 kind:function(thumb,size=0x18) addr:0x020baa98 local
func_ov001_020b9270 kind:function(thumb,size=0x70) addr:0x020baab0
func_ov001_020b92e0 kind:function(thumb,size=0x18c) addr:0x020bab20
func_ov001_020b946c kind:function(thumb,size=0x4) addr:0x020bacac
func_ov001_020b9470 kind:function(thumb,size=0x3e) addr:0x020bacb0
func_ov001_020b94b0 kind:function(thumb,size=0x164) addr:0x020bacf0
ZMB_ParseFile kind:function(thumb,size=0x164) addr:0x020bacf0
func_ov001_020b9614 kind:function(thumb,size=0xe) addr:0x020bae54
func_ov001_020b9624 kind:function(thumb,size=0xfc) addr:0x020bae64
func_ov001_020b9720 kind:function(thumb,size=0x40) addr:0x020baf60
@@ -154,31 +154,31 @@ func_ov001_020ba9d0 kind:function(thumb,size=0x110) addr:0x020bc20c
_ZN18UnkStruct_027e09bcD1Ev kind:function(thumb,size=0x7c) addr:0x020bc31c
_ZN18UnkStruct_027e09bc19func_ov001_020bab5cEv kind:function(thumb,size=0x6c) addr:0x020bc398
_ZN18UnkStruct_027e09bc19func_ov001_020babc8Ev kind:function(thumb,size=0x20) addr:0x020bc404
func_ov001_020babe8 kind:function(thumb,size=0x20) addr:0x020bc424
func_ov001_020bac08 kind:function(thumb,size=0x20) addr:0x020bc444
_ZN18UnkStruct_027e09bc19func_ov001_020babe8Ev kind:function(thumb,size=0x20) addr:0x020bc424
_ZN18UnkStruct_027e09bc19func_ov001_020bac08Ev kind:function(thumb,size=0x20) addr:0x020bc444
func_ov001_020bac28 kind:function(thumb,size=0xc) addr:0x020bc464
func_ov001_020bac34 kind:function(thumb,size=0xc) addr:0x020bc470
_ZN16MapObjectManager6CreateEv kind:function(thumb,size=0x16) addr:0x020bc47c
func_ov001_020bac58 kind:function(thumb,size=0x1e) addr:0x020bc494
_ZN16MapObjectManagerD1Ev kind:function(thumb,size=0x22) addr:0x020bc4b4
func_ov001_020bac9c kind:function(thumb,size=0x3c) addr:0x020bc4d8
func_ov001_020bacd8 kind:function(thumb,size=0xa8) addr:0x020bc514
func_ov001_020bad80 kind:function(thumb,size=0x20) addr:0x020bc5bc
func_ov001_020bada0 kind:function(thumb,size=0x20) addr:0x020bc5dc
func_ov001_020badb4 kind:function(thumb,size=0x2c) addr:0x020bc5fc
func_ov001_020bade0 kind:function(thumb,size=0x60) addr:0x020bc628
func_ov001_020bae40 kind:function(thumb,size=0x2c) addr:0x020bc688
func_ov001_020bae6c kind:function(thumb,size=0x34) addr:0x020bc6b4
func_ov001_020baea0 kind:function(thumb,size=0x88) addr:0x020bc6e8
func_ov001_020baf28 kind:function(thumb,size=0x22) addr:0x020bc770
_ZN16MapObjectManager19func_ov001_020bac9cEv kind:function(thumb,size=0x3c) addr:0x020bc4d8
_ZN16MapObjectManager19func_ov001_020bacd8EP9ZOBHeader kind:function(thumb,size=0xa8) addr:0x020bc514
_ZN16MapObjectManager19func_ov001_020bad80Ev kind:function(thumb,size=0x20) addr:0x020bc5bc
_ZN16MapObjectManager19func_ov001_020bada0Ev kind:function(thumb,size=0x20) addr:0x020bc5dc
_ZN16MapObjectManager19func_ov001_020badb4Ev kind:function(thumb,size=0x2c) addr:0x020bc5fc
_ZN16MapObjectManager19func_ov001_020bade0Ev kind:function(thumb,size=0x60) addr:0x020bc628
_ZN16MapObjectManager19func_ov001_020bae40EP15ZeldaObjectList kind:function(thumb,size=0x2c) addr:0x020bc688
_ZN16MapObjectManager19func_ov001_020bae6cEv kind:function(thumb,size=0x34) addr:0x020bc6b4
_ZN16MapObjectManager19func_ov001_020baea0EP5Vec2s kind:function(thumb,size=0x88) addr:0x020bc6e8
_ZN16MapObjectManager19func_ov001_020baf28Ev kind:function(thumb,size=0x22) addr:0x020bc770
func_ov001_020baf4c kind:function(thumb,size=0xc) addr:0x020bc794
func_ov001_020baf58 kind:function(thumb,size=0xc) addr:0x020bc7a0
_ZN12ActorManager6CreateEv kind:function(thumb,size=0x16) addr:0x020bc7ac
_ZN12ActorManagerC1Ev kind:function(thumb,size=0x46) addr:0x020bc7c4
_ZN12ActorManagerD1Ev kind:function(thumb,size=0x18) addr:0x020bc80c
_ZN12ActorManager19func_ov001_020bafdcEv kind:function(thumb,size=0x3c) addr:0x020bc824
_ZN12ActorManager19func_ov001_020bb018EP36UnkStruct_func_ov001_020bb018_param2 kind:function(thumb,size=0x3fc) addr:0x020bc860
_ZN12ActorManager19func_ov001_020bb414EPS_ kind:function(thumb,size=0x74) addr:0x020bcc5c
_ZN12ActorManager19func_ov001_020bb018EP9ZOBHeader kind:function(thumb,size=0x3fc) addr:0x020bc860
_ZN12ActorManager19func_ov001_020bb414Ev kind:function(thumb,size=0x74) addr:0x020bcc5c
_ZN12ActorManager19func_ov001_020bb488Ev kind:function(thumb,size=0xc0) addr:0x020bccd0
_ZN12ActorManager19func_ov001_020bb548Ev kind:function(thumb,size=0xe8) addr:0x020bcd90
_ZN12ActorManager19func_ov001_020bb630Ev kind:function(thumb,size=0x80) addr:0x020bce78
@@ -225,11 +225,11 @@ _ZN18UnkStruct_027e0ce0D1Ev kind:function(thumb,size=0x86) addr:0x020bdc98
func_ov001_020bc4d8 kind:function(thumb,size=0x4c) addr:0x020bdd20
_ZN18UnkStruct_027e0ce019func_ov001_020bc524Eb kind:function(thumb,size=0xd4) addr:0x020bdd6c
_ZN18UnkStruct_027e0ce019func_ov001_020bc5f8Ev kind:function(thumb,size=0x62) addr:0x020bde40
func_ov001_020bc65c kind:function(thumb,size=0x40) addr:0x020bdea4
func_ov001_020bc69c kind:function(thumb,size=0x3c) addr:0x020bdee4
func_ov001_020bc6d8 kind:function(thumb,size=0xe) addr:0x020bdf20
func_ov001_020bc6e8 kind:function(thumb,size=0x14) addr:0x020bdf30
func_ov001_020bc6fc kind:function(thumb,size=0x52) addr:0x020bdf44
_ZN18UnkStruct_027e0ce019func_ov001_020bc65cEv kind:function(thumb,size=0x40) addr:0x020bdea4
_ZN18UnkStruct_027e0ce019func_ov001_020bc69cEv kind:function(thumb,size=0x3c) addr:0x020bdee4
_ZN18UnkStruct_027e0ce019func_ov001_020bc6d8EiPK24UnkStruct_ov001_020c40f4 kind:function(thumb,size=0xe) addr:0x020bdf20
_ZN18UnkStruct_027e0ce019func_ov001_020bc6e8EPK24UnkStruct_ov001_020c40f4 kind:function(thumb,size=0x14) addr:0x020bdf30
_ZN18UnkStruct_027e0ce019func_ov001_020bc6fcEPK24UnkStruct_ov001_020c40f4S2_ii kind:function(thumb,size=0x52) addr:0x020bdf44
func_ov001_020bc750 kind:function(thumb,size=0xc) addr:0x020bdf98
func_ov001_020bc75c kind:function(thumb,size=0xc) addr:0x020bdfa4
func_ov001_020bc768 kind:function(thumb,size=0x20) addr:0x020bdfb0
@@ -264,8 +264,8 @@ _ZN18UnkStruct_0204a11019func_ov001_020bd514EiPvii kind:function(thumb,size=0x78
_ZN18UnkStruct_0204a11019func_ov001_020bd58cEv kind:function(thumb,size=0x24) addr:0x020bedd4
_ZN18UnkStruct_0204a11019func_ov001_020bd5b0Ev kind:function(thumb,size=0x88) addr:0x020bedf8
_ZN18UnkStruct_0204a11019func_ov001_020bd638Ev kind:function(thumb,size=0x40) addr:0x020bee80
func_ov001_020bd678 kind:function(thumb,size=0x14) addr:0x020beec0
func_ov001_020bd68c kind:function(thumb,size=0x1c) addr:0x020beed4
_ZN18UnkStruct_0204a11019func_ov001_020bd678Ev kind:function(thumb,size=0x14) addr:0x020beec0
_ZN18UnkStruct_0204a11019func_ov001_020bd68cEv kind:function(thumb,size=0x1c) addr:0x020beed4
func_ov001_020bd6a8 kind:function(thumb,size=0x18) addr:0x020beef0
func_ov001_020bd6c0 kind:function(thumb,size=0x38) addr:0x020bef08
func_ov001_020bd6f8 kind:function(thumb,size=0x30) addr:0x020bef40
@@ -287,8 +287,8 @@ func_ov001_020bd910 kind:function(thumb,size=0x30) addr:0x020bf158
func_ov001_020bd934 kind:function(thumb,size=0x3c) addr:0x020bf188
_ZN24UnkStruct_ov000_020b50c019func_ov001_020bd970EP22UnkStruct_SceneChange1 kind:function(thumb,size=0x494) addr:0x020bf1c4
_ZN24UnkStruct_ov000_020b50c019func_ov001_020bde04EP22UnkStruct_SceneChange1 kind:function(thumb,size=0x48) addr:0x020bf658
func_ov001_020bde4c kind:function(thumb,size=0x10) addr:0x020bf6a0
func_ov001_020bde5c kind:function(thumb,size=0x10) addr:0x020bf6b0
_ZN24UnkStruct_ov000_020b50c019func_ov001_020bde4cEPK22UnkStruct_SceneChange1 kind:function(thumb,size=0x10) addr:0x020bf6a0
_ZN24UnkStruct_ov000_020b50c019func_ov001_020bde5cEv kind:function(thumb,size=0x10) addr:0x020bf6b0
func_ov001_020bde6c kind:function(thumb,size=0xe) addr:0x020bf6c0
func_ov001_020bde7c kind:function(thumb,size=0x14) addr:0x020bf6d0
func_ov001_020bde90 kind:function(thumb,size=0x110) addr:0x020bf6e4
@@ -313,14 +313,14 @@ _ZN18UnkStruct_027e09c07DestroyEv kind:function(thumb,size=0x8) addr:0x020bfb40
func_ov001_020be2f4 kind:function(thumb,size=0xa0) addr:0x020bfb48
_ZN18UnkStruct_027e09c019func_ov001_020be394Ev kind:function(thumb,size=0x30) addr:0x020bfbe8
_ZN18UnkStruct_027e09c019func_ov001_020be3c4Ev kind:function(thumb,size=0x18) addr:0x020bfc18
func_ov001_020be3dc kind:function(thumb,size=0x24) addr:0x020bfc30
func_ov001_020be400 kind:function(thumb,size=0x3c) addr:0x020bfc54
_ZN18UnkStruct_027e09c019func_ov001_020be3dcEP14UnkFileSystem3P26UnkStruct_027e0cd8_0C_Base kind:function(thumb,size=0x24) addr:0x020bfc30
_ZN18UnkStruct_027e09c019func_ov001_020be400Ev kind:function(thumb,size=0x3c) addr:0x020bfc54
func_ov001_020be43c kind:function(thumb,size=0x20) addr:0x020bfc90
func_ov001_020be45c kind:function(thumb,size=0xc) addr:0x020bfcb0
func_ov001_020be468 kind:function(thumb,size=0xc) addr:0x020bfcbc
func_ov001_020be474 kind:function(thumb,size=0x70) addr:0x020bfcc8
func_ov001_020be4e4 kind:function(thumb,size=0x1e) addr:0x020bfd38
func_ov001_020be504 kind:function(thumb,size=0xc) addr:0x020bfd58
_ZN24UnkStruct_ov000_020b504c19func_ov001_020be504Ev kind:function(thumb,size=0xc) addr:0x020bfd58
_ZN24UnkStruct_ov000_020b504c19func_ov001_020be510Ev kind:function(thumb,size=0xd8) addr:0x020bfd64
func_ov001_020be5e8 kind:function(thumb,size=0x80) addr:0x020bfe3c
_ZN24UnkStruct_ov000_020b504c19func_ov001_020be668Ev kind:function(thumb,size=0x70) addr:0x020bfebc
@@ -330,9 +330,9 @@ func_ov001_020be79c kind:function(thumb,size=0x90) addr:0x020bfff0
func_ov001_020be82c kind:function(thumb,size=0x54) addr:0x020c0080
func_ov001_020be880 kind:function(thumb,size=0x60) addr:0x020c00d4
_ZN24UnkStruct_ov000_020b504c19func_ov001_020be8e0Ev kind:function(thumb,size=0x4c) addr:0x020c0134
func_ov001_020be92c kind:function(thumb,size=0x20) addr:0x020c0180
func_ov001_020be94c kind:function(thumb,size=0x4c) addr:0x020c01a0
func_ov001_020be998 kind:function(thumb,size=0x64) addr:0x020c01ec
_ZN24UnkStruct_ov000_020b504c19func_ov001_020be92cEP24UnkStruct_027e0cd8_04_0C kind:function(thumb,size=0x20) addr:0x020c0180
_ZN24UnkStruct_ov000_020b504c19func_ov001_020be94cEv kind:function(thumb,size=0x4c) addr:0x020c01a0
_ZN24UnkStruct_ov000_020b504c19func_ov001_020be998Ev kind:function(thumb,size=0x64) addr:0x020c01ec
func_ov001_020be9fc kind:function(thumb,size=0x30) addr:0x020c0250
func_ov001_020bea2c kind:function(thumb,size=0x14) addr:0x020c0280
func_ov001_020bea40 kind:function(thumb,size=0x18) addr:0x020c0294
@@ -356,7 +356,7 @@ func_ov001_020bed34 kind:function(thumb,size=0x1c) addr:0x020c0588
func_ov001_020bed50 kind:function(thumb,size=0x248) addr:0x020c05a4
func_ov001_020bef98 kind:function(thumb,size=0x7c) addr:0x020c07ec
func_ov001_020bf014 kind:function(thumb,size=0x14) addr:0x020c0868
func_ov001_020bf028 kind:function(thumb,size=0x1c) addr:0x020c087c
_ZN18UnkStruct_027e0cec19func_ov001_020bf028Ev kind:function(thumb,size=0x1c) addr:0x020c087c
func_ov001_020bf044 kind:function(arm,size=0x38) addr:0x020c0898
func_ov001_020bf07c kind:function(arm,size=0x10) addr:0x020c08d0
func_ov001_020bf08c kind:function(arm,size=0x14) addr:0x020c08e0
@@ -507,10 +507,10 @@ data_ov001_020c3fc0 kind:data(any) addr:0x020c3fc0
data_ov001_020c3ffc kind:data(any) addr:0x020c3ffc
data_ov001_020c4060 kind:data(any) addr:0x020c4060
__sinit_CourseList.cpp kind:function(thumb,size=0x24) addr:0x020c4068 local
__sinit_ov001_020c408c kind:function(thumb,size=0xb8) addr:0x020c408c
__sinit_UnkStruct_027e0cd8_0C_001.cpp kind:function(thumb,size=0xb8) addr:0x020c408c
__sinit_ov001_020c4144 kind:function(thumb,size=0x10) addr:0x020c4144
.p__sinit_CourseList.cpp kind:data(word) addr:0x020c4154 local
.p__sinit_ov001_020c408c kind:data(word) addr:0x020c4158
.p__sinit_UnkStruct_027e0cd8_0C_001.cpp kind:data(word) addr:0x020c4158
.p__sinit_ov001_020c4144 kind:data(word) addr:0x020c415c
.p__sinit_ov001_020c2958 kind:data(word) addr:0x020c4160 local
.p__sinit_ov001_020c2f5c kind:data(word) addr:0x020c4164 local
@@ -519,29 +519,23 @@ __sinit_ov001_020c4144 kind:function(thumb,size=0x10) addr:0x020c4144
.p__sinit_ov001_020c3dc4 kind:data(word) addr:0x020c4170 local
@433 kind:data(byte[22]) addr:0x020c4180 local
@450 kind:data(byte[22]) addr:0x020c4198 local
data_ov001_020c41b0 kind:data(any) addr:0x020c41b0
data_ov001_020c41c4 kind:data(any) addr:0x020c41c4
data_ov001_020c41c8 kind:data(any) addr:0x020c41c8
data_ov001_020c41e4 kind:data(any) addr:0x020c41e4
data_ov001_020c41f4 kind:data(any) addr:0x020c41f4
data_ov001_020c41fc kind:data(any) addr:0x020c41fc
data_ov001_020c4218 kind:data(any) addr:0x020c4218
data_ov001_020c4230 kind:data(any) addr:0x020c4230
data_ov001_020c423c kind:data(any) addr:0x020c423c
data_ov001_020c426c kind:data(any) addr:0x020c426c
data_ov001_020c4280 kind:data(any) addr:0x020c4280
data_ov001_020c4294 kind:data(any) addr:0x020c4294
data_ov001_020c42a8 kind:data(any) addr:0x020c42a8
data_ov001_020c42bc kind:data(any) addr:0x020c42bc
data_ov001_020c42d0 kind:data(any) addr:0x020c42d0
data_ov001_020c42d8 kind:data(any) addr:0x020c42d8
data_ov001_020c42e4 kind:data(any) addr:0x020c42e4
data_ov001_020c42ec kind:data(any) addr:0x020c42ec
data_ov001_020c4300 kind:data(any) addr:0x020c4300
data_ov001_020c4314 kind:data(any) addr:0x020c4314
data_ov001_020c4330 kind:data(any) addr:0x020c4330
data_ov001_020c434c kind:data(any) addr:0x020c434c
data_ov001_020c4364 kind:data(any) addr:0x020c4364
@3570 kind:data(byte[0x12]) addr:0x020c41b0 local
@3571 kind:data(byte[0x04]) addr:0x020c41c4 local
@3572 kind:data(byte[0x1a]) addr:0x020c41c8 local
@3573 kind:data(byte[0x18]) addr:0x020c41e4 local
@3574 kind:data(byte[0x19]) addr:0x020c41fc local
@3575 kind:data(byte[0x17]) addr:0x020c4218 local
@3576 kind:data(byte[0x04]) addr:0x020c4230 local
_ZTV26UnkStruct_027e0cd8_0C_Base kind:data(any) addr:0x020c4234
data_ov001_020c2a40 kind:data(any) addr:0x020c4280
@3283 kind:data(byte[0x6]) addr:0x020c42d0 local
@3284 kind:data(byte[0x13]) addr:0x020c42d8 local
@3285 kind:data(byte[0x13]) addr:0x020c42ec local
@3286 kind:data(byte[0x13]) addr:0x020c4300 local
@3287 kind:data(byte[0x1b]) addr:0x020c4314 local
@3288 kind:data(byte[0x1c]) addr:0x020c4330 local
@3292 kind:data(byte[0x17]) addr:0x020c434c local
@3293 kind:data(byte[0x15]) addr:0x020c4364 local
data_ov001_020c437c kind:data(any) addr:0x020c437c
data_ov001_020c4388 kind:data(any) addr:0x020c4388
data_ov001_020c4398 kind:data(any) addr:0x020c4398
@@ -639,8 +633,8 @@ data_ov001_020c4814 kind:data(any) addr:0x020c4814
data_ov001_020c4818 kind:data(any) addr:0x020c4818
_ZGVN14StaticInstanceI16CourseInitBinaryE9sInstanceE kind:bss addr:0x020c4820
_ZN14StaticInstanceI16CourseInitBinaryE9sInstanceE kind:bss addr:0x020c4824
data_ov001_020c5928 kind:bss addr:0x020c5928
data_ov001_020c5934 kind:bss addr:0x020c5934
@4613 kind:bss addr:0x020c5928 local
data_ov001_020c40f4 kind:bss addr:0x020c5934 local
data_ov001_020c5f34 kind:bss addr:0x020c5f34
data_ov001_020c5f38 kind:bss addr:0x020c5f38
data_ov001_020c5f3c kind:bss addr:0x020c5f3c
+1 -1
View File
@@ -41,7 +41,7 @@ _ZN27UnkStruct_027e09a4_54_Type3C1EP18UnkStruct_027e09a4 kind:function(arm,size=
_ZN19func_ov021_020ebffcD1Ev kind:function(arm,size=0x30) addr:0x020ebffc
_ZN19func_ov021_020ec02cD0Ev kind:function(arm,size=0x38) addr:0x020ec02c
func_ov021_020ec064 kind:function(arm,size=0xc) addr:0x020ec064
func_ov021_020ec070 kind:function(arm,size=0x20) addr:0x020ec070
_ZN30UnkStruct_027e0cd8_0C_Derived3C1EP18UnkStruct_027e0cd8 kind:function(arm,size=0x20) addr:0x020ec070
func_ov021_020ec090 kind:function(arm,size=0x28) addr:0x020ec090
_ZN19func_ov021_020ec0b8D1Ev kind:function(arm,size=0x14) addr:0x020ec0b8
_ZN19func_ov021_020ec0ccD0Ev kind:function(arm,size=0x1c) addr:0x020ec0cc
+6 -6
View File
@@ -101,7 +101,7 @@ _ZN21UnkStruct_027e0ce0_38D0Ev kind:function(arm,size=0xe4) addr:0x020de1fc
func_ov026_020de2e0 kind:function(arm,size=0x28) addr:0x020de2e0
func_ov026_020de308 kind:function(arm,size=0x98) addr:0x020de308
func_ov026_020de3a0 kind:function(arm,size=0x64) addr:0x020de3a0
func_ov026_020de404 kind:function(arm,size=0x1788) addr:0x020de404
_ZN24UnkStruct_ov026_02138d1019func_ov026_020dca14Ev kind:function(arm,size=0x1788) addr:0x020de404
func_ov026_020dfb8c kind:function(arm,size=0x38) addr:0x020dfb8c
func_ov026_020dfbc4 kind:function(arm,size=0x30) addr:0x020dfbc4
func_ov026_020dfbf4 kind:function(arm,size=0x158) addr:0x020dfbf4
@@ -291,13 +291,13 @@ func_ov026_020eac08 kind:function(arm,size=0x98) addr:0x020eac08
func_ov026_020eaca0 kind:function(arm,size=0x364) addr:0x020eaca0
func_ov026_020eb004 kind:function(arm,size=0x10) addr:0x020eb004
func_ov026_020eb014 kind:function(arm,size=0x74) addr:0x020eb014
func_ov026_020eb088 kind:function(arm,size=0x44) addr:0x020eb088
func_ov026_020eb0cc kind:function(arm,size=0x48) addr:0x020eb0cc
_ZN21UnkStruct_027e0cd8_10C1Ev kind:function(arm,size=0x44) addr:0x020eb088
_ZN21UnkStruct_027e0cd8_10D1Ev kind:function(arm,size=0x48) addr:0x020eb0cc
func_ov026_020eb114 kind:function(arm,size=0x2c) addr:0x020eb114
func_ov026_020eb140 kind:function(arm,size=0x1c) addr:0x020eb140
func_ov026_020eb15c kind:function(arm,size=0x1c) addr:0x020eb15c
func_ov026_020eb178 kind:function(arm,size=0x24) addr:0x020eb178
func_ov026_020eb19c kind:function(arm,size=0x4) addr:0x020eb19c
func_ov026_020e9208 kind:function(arm,size=0x4) addr:0x020eb19c
func_ov026_020eb1a0 kind:function(arm,size=0x24) addr:0x020eb1a0
func_ov026_020eb1c4 kind:function(arm,size=0x20) addr:0x020eb1c4
func_ov026_020eb1e4 kind:function(arm,size=0x20) addr:0x020eb1e4
@@ -1095,7 +1095,7 @@ func_ov026_02107900 kind:function(arm,size=0x38) addr:0x02107900
func_ov026_02107938 kind:function(arm,size=0x38) addr:0x02107938
func_ov026_02107970 kind:function(arm,size=0x1c) addr:0x02107970
func_ov026_0210798c kind:function(arm,size=0x4) addr:0x0210798c
func_ov026_02107990 kind:function(arm,size=0x1dc) addr:0x02107990
_ZN30UnkStruct_027e0cd8_0C_Derived2C1EP18UnkStruct_027e0cd8 kind:function(arm,size=0x1dc) addr:0x02107990
func_ov026_02107b6c kind:function(arm,size=0x10c) addr:0x02107b6c
_ZN19func_ov026_02107c78D0Ev kind:function(arm,size=0x114) addr:0x02107c78
func_ov026_02107d8c kind:function(arm,size=0xc0) addr:0x02107d8c
@@ -1127,7 +1127,7 @@ func_ov026_02108ce0 kind:function(arm,size=0x4) addr:0x02108ce0
func_ov026_02108ce4 kind:function(arm,size=0x4) addr:0x02108ce4
func_ov026_02108ce8 kind:function(arm,size=0x8) addr:0x02108ce8
func_ov026_02108cf0 kind:function(arm,size=0x14) addr:0x02108cf0
_ZN25UnkStruct_027e0cd8_0c_16019func_ov026_02106aa8Ev kind:function(arm,size=0x14) addr:0x02108d04
_ZN25UnkStruct_027e0cd8_0C_16019func_ov026_02106aa8Ev kind:function(arm,size=0x14) addr:0x02108d04
func_ov026_02108d18 kind:function(arm,size=0x84) addr:0x02108d18
func_ov026_02108d9c kind:function(arm,size=0x4c) addr:0x02108d9c
func_ov026_02108de8 kind:function(arm,size=0x64) addr:0x02108de8
+2 -2
View File
@@ -1,5 +1,5 @@
func_ov047_02131ec0 kind:function(arm,size=0x64) addr:0x02131ec0
func_ov047_02131f24 kind:function(arm,size=0x28) addr:0x02131f24
_ZN29UnkStruct_027e0cd8_0C_Base_98C1Ev kind:function(arm,size=0x64) addr:0x02131ec0
_ZN29UnkStruct_027e0cd8_0C_Base_98D1Ev kind:function(arm,size=0x28) addr:0x02131f24
func_ov047_02131f4c kind:function(arm,size=0x30) addr:0x02131f4c
func_ov047_02131f7c kind:function(arm,size=0x200) addr:0x02131f7c
func_ov047_0213217c kind:function(arm,size=0x39c) addr:0x0213217c
+3 -3
View File
@@ -385,8 +385,8 @@ _ZN12ActorUnkLBRC19func_ov084_021632e0Ev kind:function(arm,size=0xbc) addr:0x021
_ZN12ActorUnkLBRCD1Ev kind:function(arm,size=0x38) addr:0x0216339c
_ZN12ActorUnkLBRCD0Ev kind:function(arm,size=0x40) addr:0x021633d4
_ZN19ActorProfileUnkLBRCD1Ev kind:function(arm,size=0x14) addr:0x02163414
func_ov084_02163428 kind:function(arm,size=0x80) addr:0x02163428
func_ov084_021634a8 kind:function(arm,size=0x1c) addr:0x021634a8
func_ov084_0216122c kind:function(arm,size=0x80) addr:0x02163428
func_ov084_021612ac kind:function(arm,size=0x1c) addr:0x021634a8
_ZN23MapObjectProfileUnkPLV210GetProfileEv kind:function(arm,size=0xc) addr:0x021634c4
_ZN23MapObjectProfileUnkPLV26CreateEv kind:function(arm,size=0x24) addr:0x021634d0
_ZN23MapObjectProfileUnkPLV2C1Ev kind:function(arm,size=0xa4) addr:0x021634f4
@@ -663,7 +663,7 @@ _ZN15ProfileInstanceI23MapObjectProfileUnkSTSVE8sProfileE kind:bss addr:0x021667
_ZGVN15ProfileInstanceI19ActorProfileUnkLBRCE8sProfileE kind:bss addr:0x02166808
@33823 kind:bss addr:0x0216680c
_ZN15ProfileInstanceI19ActorProfileUnkLBRCE8sProfileE kind:bss addr:0x02166818
data_ov084_021668f0 kind:bss addr:0x021668f0
data_ov084_02164690 kind:bss addr:0x021668f0
_ZGVN15ProfileInstanceI23MapObjectProfileUnkPLV2E8sProfileE kind:bss addr:0x021668f4
@33267 kind:bss addr:0x021668f8
_ZN15ProfileInstanceI23MapObjectProfileUnkPLV2E8sProfileE kind:bss addr:0x02166904
+1 -1
View File
@@ -2,7 +2,7 @@ func_ov088_02167b00 kind:function(arm,size=0x30) addr:0x02167b00
_ZN19func_ov088_02167b30D1Ev kind:function(arm,size=0x34) addr:0x02167b30
_ZN19func_ov088_02167b64D0Ev kind:function(arm,size=0x3c) addr:0x02167b64
_ZN19func_ov088_02167ba0D2Ev kind:function(arm,size=0x34) addr:0x02167ba0
func_ov088_02167bd4 kind:function(arm,size=0x14c) addr:0x02167bd4
_ZN21UnkStruct_027e09b8_08C1EPv kind:function(arm,size=0x14c) addr:0x02167bd4
func_ov088_02167d20 kind:function(arm,size=0x84) addr:0x02167d20
_ZN19func_ov088_02167da4D0Ev kind:function(arm,size=0x8c) addr:0x02167da4
func_ov088_02167e30 kind:function(arm,size=0xc) addr:0x02167e30
+2 -2
View File
@@ -11,7 +11,7 @@ func_ov089_02167c94 kind:function(arm,size=0x34) addr:0x02167c94
func_ov089_02167cc8 kind:function(arm,size=0x94) addr:0x02167cc8
func_ov089_02167d5c kind:function(arm,size=0x1c) addr:0x02167d5c
func_ov089_02167d78 kind:function(arm,size=0x11c) addr:0x02167d78
func_ov089_02167e94 kind:function(arm,size=0x4c) addr:0x02167e94
func_ov089_02165c34 kind:function(arm,size=0x4c) addr:0x02167e94
func_ov089_02167ee0 kind:function(arm,size=0xe8) addr:0x02167ee0
func_ov089_02167fc8 kind:function(arm,size=0x34) addr:0x02167fc8
func_ov089_02167ffc kind:function(arm,size=0x5c) addr:0x02167ffc
@@ -419,7 +419,7 @@ data_ov089_02173768 kind:data(any) addr:0x02173768
data_ov089_0217376c kind:data(any) addr:0x0217376c
data_ov089_02173780 kind:bss addr:0x02173780
data_ov089_02173784 kind:bss addr:0x02173784
data_ov089_021737a0 kind:bss addr:0x021737a0
data_ov089_02171540 kind:bss addr:0x021737a0
data_ov089_0217381c kind:bss addr:0x0217381c ambiguous
data_ov089_0217382c kind:bss addr:0x0217382c ambiguous
data_ov089_0217386c kind:bss addr:0x0217386c ambiguous
+1 -1
View File
@@ -21,7 +21,7 @@ func_ov101_02184ea8 kind:function(thumb,size=0x134) addr:0x02184ea8
func_ov101_02184fdc kind:function(thumb,size=0x2) addr:0x02184fdc
func_ov101_02184fe0 kind:function(thumb,size=0xc) addr:0x02184fe0
func_ov101_02184fec kind:function(thumb,size=0x12) addr:0x02184fec
func_ov101_02185000 kind:function(thumb,size=0x68) addr:0x02185000
_ZN21UnkStruct_027e0cd8_0CC1EP18UnkStruct_027e0cd8 kind:function(thumb,size=0x68) addr:0x02185000
func_ov101_02185068 kind:function(thumb,size=0xd8) addr:0x02185068
func_ov101_02185140 kind:function(thumb,size=0xe0) addr:0x02185140
func_ov101_02185220 kind:function(thumb,size=0xd0) addr:0x02185220
+5 -5
View File
@@ -526,7 +526,7 @@ func_0200e350 kind:function(arm,size=0x48) addr:0x0200e350
func_0200e398 kind:function(arm,size=0x60) addr:0x0200e398
func_0200e3f8 kind:function(arm,size=0x68) addr:0x0200e3f8
func_0200e460 kind:function(arm,size=0x240) addr:0x0200e460
func_0200e6a0 kind:function(arm,size=0xb0) addr:0x0200e6a0
G3d_0200e6a0 kind:function(arm,size=0xb0) addr:0x0200e6a0
func_0200e750 kind:function(arm,size=0x80) addr:0x0200e750
func_0200e7d0 kind:function(arm,size=0x80) addr:0x0200e7d0
func_0200e850 kind:function(arm,size=0x80) addr:0x0200e850
@@ -719,7 +719,7 @@ 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
_ZN18UnkStruct_02049bac13func_02014a34EPv kind:function(arm,size=0xcc) addr:0x02014a38
func_02014b04 kind:function(arm,size=0x54) addr:0x02014b04
_ZN18UnkStruct_02049bac13func_02014b00Ev 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
func_02014b84 kind:function(arm,size=0x3c) addr:0x02014b84
@@ -754,7 +754,7 @@ _ZN17UnkFileSystem2_10D1Ev kind:function(arm,size=0x20) addr:0x0201535c
func_0201537c kind:function(arm,size=0x18) addr:0x0201537c
_ZN10UnkSystem3C1EPKciii kind:function(thumb,size=0x12) addr:0x02015394
_ZN10UnkSystem313func_02015410EPKci kind:function(thumb,size=0xc) addr:0x020153a8
func_020153b4 kind:function(thumb,size=0x44) addr:0x020153b4
_ZN10UnkSystem313func_0201541cEPKci kind:function(thumb,size=0x44) addr:0x020153b4
_ZN10UnkSystem313func_02015460EPKcPvi kind:function(thumb,size=0x1c) addr:0x020153f8
_ZN10UnkSystem3D1Ev kind:function(thumb,size=0x20) addr:0x02015414
func_02015434 kind:function(thumb,size=0x14) addr:0x02015434
@@ -1498,7 +1498,7 @@ OS_GetLockID kind:function(arm,size=0x58) addr:0x02027c68
func_02027cc0 kind:function(arm,size=0x30) addr:0x02027cc0
sscanf kind:function(arm,size=0x28) addr:0x02027cf0
vsscanf kind:function(arm,size=0x18) addr:0x02027d18
func_02026800 kind:function(arm,size=0x28) addr:0x02027d30
snprintf kind:function(arm,size=0x28) addr:0x02027d30
func_02027d58 kind:function(arm,size=0xc) addr:0x02027d58
OS_func_0035 kind:function(arm,size=0x18) addr:0x02027d64
OS_func_0036 kind:function(arm,size=0x78) addr:0x02027d7c
@@ -2060,7 +2060,7 @@ func_0203a25c kind:function(arm,size=0x18) addr:0x0203a25c
_ZN13func_0203a274D0Ev kind:function(arm,size=0x20) addr:0x0203a274
func_0203a294 kind:function(arm,size=0x30) addr:0x0203a294
func_0203a2c4 kind:function(arm,size=0x2c) addr:0x0203a2c4
func_0203a2f0 kind:function(arm,size=0x8c) addr:0x0203a2f0
_ZNSt15__vector_commonILb1EE18throw_length_errorEv kind:function(arm,size=0x8c) addr:0x0203a2f0
_dadd kind:function(arm,size=0x318) addr:0x0203a37c
_dsub kind:function(arm,size=0x3b4) addr:0x0203a6ac
_dmul kind:function(arm,size=0x364) addr:0x0203aa60
+2 -8
View File
@@ -9,12 +9,6 @@
class UnkStruct_SceneChange1;
struct UnkStruct_func_ov001_020bb018_param2 {
/* 00 */ STRUCT_PAD(0x00, 0x08);
/* 08 */ u16 mUnk_08;
/* 08 */ u16 mUnk_0A;
};
class ActorManager : public AutoInstance<ActorManager> {
public:
/* 00 */ Actor **mActorTable;
@@ -55,7 +49,8 @@ public:
// overlay 1
void func_ov001_020bafdc();
void func_ov001_020bb018(UnkStruct_func_ov001_020bb018_param2 *param1);
void func_ov001_020bb018(ZOBHeader *pHeader);
void func_ov001_020bb414();
void func_ov001_020bb488();
void func_ov001_020bb548();
void func_ov001_020bb630();
@@ -65,7 +60,6 @@ public:
static ActorManager *Create();
static void Destroy();
static void func_ov001_020bb414(ActorManager *instance);
static bool func_ov001_020bb728(s32 param1);
static void func_ov001_020bb824();
static void func_ov001_020bb844();
+1 -1
View File
@@ -67,7 +67,7 @@ struct CutsceneParamsEntry {
/* 0B */ u8 mNextCutsceneIndex;
/* 0C */ bool mNextIsCS; // doesn't makes sense with the array's data
/* 0C */ bool mUnk_0D;
/* 0E */ unk16 mUnk_0E;
/* 0E */ u16 mUnk_0E;
/* 10 */ AdventureFlag_Half mFlag;
/* 12 */ unk16 mUnk_12; // pad?
/* 14 */ u32 mUnk_14;
+1 -1
View File
@@ -166,7 +166,7 @@ public:
// data_ov000_020b1d14 vtable
/* 08 */ virtual ~TitleScreenManager_Base() override;
/* 10 */ virtual void vfunc_10(unk32 param1, unk32 param2, unk32 param3) override;
/* 38 */ virtual void vfunc_38(u32 param1, u8 param2, unk16 param3, unk16 param4);
/* 38 */ virtual void vfunc_38(u32 sceneIndex, u8 roomIndex, unk16 param3, unk16 param4);
/* 3C */ virtual void vfunc_3C();
/* 40 */ virtual void vfunc_40();
/* 44 */ virtual void vfunc_44();
+1 -1
View File
@@ -953,7 +953,7 @@ public:
/* 28 */ virtual void vfunc_28(unk8 *param1) override;
/* 2C */ virtual void DrawUI(unk8 *param1) override;
/* 34 */ virtual void vfunc_34(unk32 param1, unk32 param2) override;
/* 38 */ virtual void vfunc_38(u32 param1, u8 param2, unk16 param3, unk16 param4) override;
/* 38 */ virtual void vfunc_38(u32 sceneIndex, u8 roomIndex, unk16 param3, unk16 param4) override;
void func_ov001_020c08b8();
+12 -1
View File
@@ -2,6 +2,7 @@
#include "MapObject/MapObject.hpp"
#include "Unknown/UnkStruct_ov000_020b34c4.hpp"
#include "files.h"
#include "types.h"
#include "math.hpp"
@@ -33,7 +34,6 @@ public:
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(VecFx32 *param1, s32 *param2, s32 *param3);
// overlay 0
MapObjectId func_ov000_0209c3a8(Vec2b *param1);
@@ -43,6 +43,17 @@ public:
static void func_ov000_0209c490();
// overlay 1
void func_ov001_020bac9c();
void func_ov001_020bacd8(ZOBHeader *pHeader);
void func_ov001_020bad80();
void func_ov001_020bada0();
void func_ov001_020badb4();
void func_ov001_020bade0();
void func_ov001_020baea0(Vec2s *param1);
void func_ov001_020bae40(ZeldaObjectList *pObjList);
void func_ov001_020bae6c();
void func_ov001_020baf28();
static MapObjectManager *Create();
static void Destroy();
};
+11
View File
@@ -0,0 +1,11 @@
#pragma once
#include "global.h"
#include "types.h"
#include <nitro/math.h>
struct AABB {
VecFx32 min;
VecFx32 max;
};
+2 -2
View File
@@ -110,8 +110,8 @@ struct SaveInventory {
};
struct SaveFile_00000_0000_Data_158 {
/* 00 */ unk8 unk_00[0x0C];
/* 0C */ unk8 unk_0C[0x20];
/* 00 */ u32 unk_00[3];
/* 0C */ u32 unk_0C[8];
/* 2C */
SaveFile_00000_0000_Data_158() {
+1 -1
View File
@@ -52,7 +52,7 @@ public:
/* 218 */ SaveFile *mpSaveFile;
/* 21C */ SaveFile_00000_0000_Data_D9C mUnk_21C;
/* 23C */ PTMF<SaveFile>::PTMFCallback mUnk_23C;
/* 244 */ unk32 mUnk_244;
/* 244 */ void *mUnk_244;
bool IsUnk20A() {
return this->mUnk_20A == 0;
+1 -6
View File
@@ -4,6 +4,7 @@
#include "global.h"
#include "types.h"
#include <new>
#include <stddef.h>
#define GAME_ASSERT(cond, line, msg, ...) \
@@ -35,12 +36,6 @@ enum HeapIndex_ {
void *operator new(size_t length, u32 id, u32 idLength = 4);
void *operator new[](size_t length, u32 id, u32 idLength = 4);
void operator delete[](void *ptr);
inline void *operator new(size_t length, void *ptr = nullptr) {
#pragma unused(length)
return ptr;
}
class UnkStruct_02011e10_Sub1 {
public:
+1 -1
View File
@@ -134,7 +134,7 @@ public:
/* 24 */ virtual void vfunc_24() override;
/* 28 */ virtual void vfunc_28(unk8 *param1) override;
/* 2C */ virtual void DrawUI(unk8 *param1) override;
/* 38 */ virtual void vfunc_38(u32 param1, u8 param2, unk16 param3, unk16 param4) override;
/* 38 */ virtual void vfunc_38(u32 sceneIndex, u8 roomIndex, unk16 param3, unk16 param4) override;
static TitleScreenManager *Create(unk32 param1);
};
+12
View File
@@ -2,6 +2,7 @@
#include "Animation/CellAnimObject.hpp"
#include "Game/GameModeManager.hpp"
#include "LinkList.hpp"
#include "System/SysNew.hpp"
#include "Unknown/UnkFileSystem.hpp"
#include "global.h"
@@ -850,6 +851,7 @@ public:
~UnkSystem3();
void func_02015410(const char *path, unk32 param2);
void func_0201541c(const char *param1, unk32 param2);
void func_02015460(const char *param1, void *param2, unk32 param3);
};
@@ -1275,3 +1277,13 @@ struct TrainSpeedPreset {
/* 3C */ fx32 unk_3C;
/* 40 */
};
class UnkSystem8 : public LinkList<UnkSystem8> {
public:
/* 00 (vtable) */
/* 04 (base) */
/* 0C */
// data_ov000_020b2940
/* 00 */ virtual void vfunc_00();
};
+1
View File
@@ -11,6 +11,7 @@ public:
~UnkStruct_02049bac();
void func_02014a34(void *param1);
u64 func_02014b00();
};
// some time system?
+2
View File
@@ -291,6 +291,8 @@ public:
void func_ov001_020bd58c(void);
void func_ov001_020bd638(void);
void func_ov001_020bd5b0(void);
void func_ov001_020bd678(void);
void func_ov001_020bd68c(void);
// overlay 18
void func_ov018_020c5300(void);
+3 -1
View File
@@ -74,8 +74,10 @@ public:
static UnkStruct_027e0960 *Create();
// overlay 1
void func_ov000_0205a164();
void func_ov000_0205a11c();
void func_ov000_0205a120();
void func_ov000_0205a160();
void func_ov000_0205a164();
static void Destroy();
};
+6 -2
View File
@@ -4,10 +4,13 @@
#include "Unknown/UnkFileSystem.hpp"
#include "files.h"
#include "global.h"
#include "math.hpp"
#include "types.h"
struct UnkStruct_func_ov000_020702a8 {
/* 00 */ STRUCT_PAD(0x00, 0x20);
/* 00 */ STRUCT_PAD(0x00, 0x10);
/* 10 */ Vec2s mUnk_10;
/* 14 */ STRUCT_PAD(0x14, 0x20);
/* 20 */ unk16 mUnk_20;
};
@@ -30,11 +33,12 @@ public:
~UnkStruct_027e09a0();
CourseListEntry *GetCourseEntry(u32 sceneIndex);
UnkStruct_func_ov000_020702a8 *func_ov000_020702a8(unk32 param1);
UnkStruct_func_ov000_020702a8 *func_ov000_020702a8(u32 sceneIndex);
unk32 GetRoomEntryIndex();
CourseListRoomEntry *GetRoomEntry(u32 sceneIndex, unk32 param2);
u32 GetSceneIndexFromName(const char *sceneName);
bool func_ov000_02070378(u32 param1);
void func_ov000_02070310(u32 sceneIndex, u8 roomIndex, void *param3);
// overlay 1
void InitCourseTable();
+6
View File
@@ -9,6 +9,8 @@
#include "iterator.hpp"
#include "types.h"
#include <nitro/mi.h>
struct SaveFile;
class UnkStruct_027e09a4;
@@ -60,6 +62,10 @@ struct UnkStruct_SceneChange1 {
this->mUnk_10 = 0;
}
UnkStruct_SceneChange1(const UnkStruct_SceneChange1 *pSource) {
MI_CpuCopy32((void *) pSource, this, sizeof(UnkStruct_SceneChange1));
}
UnkStruct_SceneChange1(s32) {}
};
+1 -1
View File
@@ -79,7 +79,7 @@ public:
~UnkStruct_027e09ac();
// overlay 0
void func_ov000_020726f0(unk32 param1, unk32 param2, unk32 param3);
void func_ov000_020726f0(u16 param1, unk32 param2, unk32 param3);
void func_ov000_020729c4(UnkStruct_027e09ac_14 *param1, u16 param2, u16 param3, s16 param4, s16 param5);
// overlay 1
+16
View File
@@ -0,0 +1,16 @@
#pragma once
#include "global.h"
#include "types.h"
class UnkStruct_027e09b0 {
public:
/* 00 */ unk32 mUnk_00;
UnkStruct_027e09b0();
~UnkStruct_027e09b0();
void func_ov000_02072cc4(unk32 param1, unk32 param2);
};
extern UnkStruct_027e09b0 *data_027e09b0;
+105 -25
View File
@@ -3,6 +3,8 @@
#include "Cutscene/Cutscene.hpp"
#include "MapObject/MapObject.hpp"
#include "Save/AdventureFlags.hpp"
#include "Unknown/UnkStruct_027e09a4.hpp"
#include "Unknown/UnkSystem1.hpp"
#include "types.h"
#include "versions.h"
@@ -22,60 +24,135 @@ public:
/* FD4 */
UnkStruct_027e09b8_00();
~UnkStruct_027e09b8_00();
void func_ov000_02073b5c();
void func_ov000_02073bc0();
};
class UnkStruct_027e09b8_04 {
class UnkStruct_027e09b8_04_Base {
public:
/* 00 */ STRUCT_PAD(0x00, 0x64);
/* 00 (vtable) */
/* 04 */
/* 00 */ virtual ~UnkStruct_027e09b8_04_Base();
/* 08 */ virtual void vfunc_08();
/* 0C */ virtual void vfunc_0C();
/* 10 */ virtual void vfunc_10() = 0;
/* 14 */ virtual void vfunc_14();
/* 18 */ virtual void vfunc_18();
/* 1C */ virtual void vfunc_1C();
/* 20 */ virtual void vfunc_20();
/* 24 */
};
class UnkStruct_027e09b8_04 : public UnkStruct_027e09b8_04_Base {
public:
/* 00 (base) */
/* 04 */ STRUCT_PAD(0x04, 0x14);
/* 14 */ UnkStruct_0204a060_Base mUnk_14;
/* 38 */ UnkStruct_WarpUnk1_50 mUnk_38;
/* 60 */ unk32 mUnk_60;
/* 64 */
UnkStruct_027e09b8_04();
~UnkStruct_027e09b8_04();
UnkStruct_027e09b8_04() {
this->vfunc_0C();
}
// data_ov000_020b22c0
/* 00 */ virtual ~UnkStruct_027e09b8_04() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C() override;
/* 10 */ virtual void vfunc_10() override;
/* 18 */ virtual void vfunc_18() override;
/* 1C */ virtual void vfunc_1C() override;
/* 20 */ virtual void vfunc_20() override;
};
class UnkStruct_027e09b8_08 {
class UnkStruct_027e09b8_08 : public UnkStruct_027e09b8_04_Base {
public:
/* 00 */ STRUCT_PAD(0x00, 0x00);
/* 00 */
/* 00 (base) */
/* 04 */ STRUCT_PAD(0x04, 0x30);
/* 30 */
UnkStruct_027e09b8_08();
UnkStruct_027e09b8_08(void *param1);
~UnkStruct_027e09b8_08();
/* 10 */ virtual void vfunc_10() override;
};
class UnkStruct_027e09b8_0C {
class UnkStruct_027e09b8_0C : public UnkStruct_027e09b8_04_Base {
public:
/* 00 */ STRUCT_PAD(0x00, 0xC4);
/* 00 (base) */
/* 04 */ STRUCT_PAD(0x04, 0x0C);
/* 0C */ UnkSystem1_ov000_Derived3 mUnk_0C;
/* 20 */ STRUCT_PAD(0x20, 0x98);
/* 98 */ UnkStruct_WarpUnk1_50 mUnk_98;
/* C0 */ unk32 mUnk_C4;
/* C4 */ MapObjectId mMapObjId;
/* C8 */
UnkStruct_027e09b8_0C();
~UnkStruct_027e09b8_0C();
UnkStruct_027e09b8_0C() {
this->vfunc_0C();
}
// data_ov000_020b234c
/* 00 */ virtual ~UnkStruct_027e09b8_0C() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C() override;
/* 10 */ virtual void vfunc_10() override;
/* 14 */ virtual void vfunc_14() override;
/* 18 */ virtual void vfunc_18() override;
};
class UnkStruct_027e09b8_10 {
class UnkStruct_027e09b8_10 : public UnkStruct_027e09b8_04_Base {
public:
/* 00 */ STRUCT_PAD(0x00, 0x18);
/* 00 (base) */
/* 04 */ STRUCT_PAD(0x04, 0x18);
/* 18 */
UnkStruct_027e09b8_10();
~UnkStruct_027e09b8_10();
/* 10 */ virtual void vfunc_10() override;
};
class UnkStruct_027e09b8_98 {
public:
/* 0000 */ STRUCT_PAD(0x00, 0x151C);
/* 151C */
UnkStruct_027e09b8_98();
~UnkStruct_027e09b8_98();
void func_ov000_020a7b34();
};
class UnkStruct_027e09b8 : public AutoInstance<UnkStruct_027e09b8> {
public:
/* 00 */ UnkStruct_027e09b8_00 *mUnk_00;
/* 04 */ UnkStruct_027e09b8_04 *mUnk_04;
/* 08 */ UnkStruct_027e09b8_08 *mUnk_08;
/* 0C */ UnkStruct_027e09b8_0C *mUnk_0C;
/* 10 */ UnkStruct_027e09b8_10 *mUnk_10;
/* 04 */ UnkStruct_027e09b8_04_Base *mUnk_04[4];
/* 14 */ u32 mAdventureFlags[32]; //! TODO
#if IS_JP
//! TODO: figure out if the other versions got these too
/* 94 */ u16 mUnk_94;
#endif
/* 96 */ bool mUnk_96;
/* 97 */ bool mUnk_97;
/* 98 */ UnkStruct_027e09b8_98 *mUnk_98;
/* 9C */
UnkStruct_027e09b8_04 *GetUnk04() {
return (UnkStruct_027e09b8_04 *) this->mUnk_04[0];
}
UnkStruct_027e09b8_08 *GetUnk08() {
return (UnkStruct_027e09b8_08 *) this->mUnk_04[1];
}
UnkStruct_027e09b8_0C *GetUnk0C() {
return (UnkStruct_027e09b8_0C *) this->mUnk_04[2];
}
UnkStruct_027e09b8_10 *GetUnk10() {
return (UnkStruct_027e09b8_10 *) this->mUnk_04[3];
}
bool HasAdventureFlag(AdventureFlag flag) {
return GET_FLAG(this->mAdventureFlags, flag);
@@ -92,18 +169,21 @@ public:
unk32 func_ov000_020732fc(unk32 param1);
bool func_ov000_020732dc(unk32 param1);
unk32 func_ov000_0207330c();
unk32 func_ov000_02073470(void *param1, unk32 param2);
unk32 func_ov000_02073388(void *param1, unk32 param2);
void func_ov000_02073578(void *param1, unk32 param2);
void func_ov000_0207332c();
unk32 func_ov000_02073388(void *param1, unk32 param2);
unk32 func_ov000_02073470(void *param1, unk32 param2);
void func_ov000_02073578(void *param1, unk32 param2);
void func_ov000_02073610(void *param1, unk32 param2);
#if IS_JP
void func_ov000_02074d78(unk32 param1);
#endif
// overlay 1
void ImportAdventureFlags(AdventureFlag *pAdventureFlags);
void func_ov001_020b76c0(CutsceneIndex csIndex);
void func_ov001_020b7700();
void func_ov001_020b7728();
static UnkStruct_027e09b8 *Create();
static void Destroy();
+9 -1
View File
@@ -1,5 +1,6 @@
#pragma once
#include "Unknown/Common.hpp"
#include "global.h"
#include "types.h"
@@ -20,13 +21,20 @@ public:
/* 04 */ UnkStruct_027e09bc_0C *mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0C */ UnkStruct_027e09bc_0C *mUnk_0C;
/* 10 */ STRUCT_PAD(0x10, 0x48);
/* 48 */ UnkSystem8 mUnk_48;
UnkStruct_027e09bc();
~UnkStruct_027e09bc();
// overlay 0
void func_ov000_020771c8();
// overlay 1
void func_ov001_020babc8();
void func_ov001_020bab5c();
void func_ov001_020babc8();
void func_ov001_020babe8();
void func_ov001_020bac08();
static UnkStruct_027e09bc *Create();
static void Destroy();
+7 -1
View File
@@ -2,9 +2,12 @@
#include "Actor/ActorRef.hpp"
#include "Actor/ActorShotArrow.hpp"
#include "Unknown/UnkFileSystem.hpp"
#include "global.h"
#include "types.h"
class UnkStruct_027e0cd8_0C_Base;
class UnkStruct_027e09c0 : public AutoInstance<UnkStruct_027e09c0> {
public:
/* 00 */ unk32 mUnk_00;
@@ -13,11 +16,14 @@ public:
~UnkStruct_027e09c0();
// overlay 0
void func_ov000_0207da40();
void func_ov000_0207e58c(ActorRef param1, unk32 param2, u8 param3, ActorShotArrow_194 *param4);
// overlay 1
void func_ov001_020be3c4();
void func_ov001_020be394();
void func_ov001_020be3c4();
void func_ov001_020be3dc(UnkFileSystem3 *param1, UnkStruct_027e0cd8_0C_Base *param2);
void func_ov001_020be400();
static UnkStruct_027e09c0 *Create();
static void Destroy();
+309 -83
View File
@@ -5,108 +5,295 @@
#include "types.h"
#include "MapObject/MapObjectManager.hpp"
#include "Render/ModelRender.hpp"
#include "Save/SaveFile.hpp"
#include "Unknown/Common.hpp"
#include "Unknown/UnkFileSystem.hpp"
#include "Unknown/UnkStruct_027e09a4.hpp"
class MapObject_20;
#include <algorithm>
#include <vector>
class UnkStruct_027e0cd8_0c_160 {
class MapObject_20;
class UnkStruct_027e0cd8;
template <typename T> class FixedVector {
private:
/* 00 */ T *mpBegin;
/* 04 */ T *mpEnd;
/* 08 */ size_t mCapacity;
public:
FixedVector() :
mpBegin(NULL),
mpEnd(NULL),
mCapacity(0) {}
void Init(T *pFrom, size_t capacity) {
this->mpBegin = pFrom;
this->mpEnd = pFrom;
this->mCapacity = capacity;
}
T *begin() {
return this->mpBegin;
}
T *end() {
return this->mpEnd;
}
void grow_by(int n) {
this->mpEnd += n;
}
};
class UnkStruct_ov001_020c40f4 {
public:
/* 00 */ VecFx32 mUnk_00;
/* 0C */ unk16 mUnk_0C;
/* 0E */ u8 mUnk_0E;
/* 0F */ u8 mUnk_0F;
/* 10 */ unk32 mUnk_10;
/* 14 */ unk32 mUnk_14;
/* 18 */
UnkStruct_ov001_020c40f4() {
this->mUnk_0E = -1;
this->mUnk_0F = 0;
this->mUnk_10 = 0;
this->mUnk_14 = 0;
}
~UnkStruct_ov001_020c40f4() {}
public:
struct Predicate {
unk32 type;
unk32 id;
Predicate(unk32 t, unk32 i) :
type(t),
id(i) {}
bool operator()(const UnkStruct_ov001_020c40f4 &elem) const {
return type == elem.mUnk_0E && id == elem.mUnk_14;
}
};
};
class UnkStruct_027e0cd8_0C_160 {
public:
bool func_ov026_02106aa8();
};
class UnkStruct_027e0cd8_0c {
class UnkStruct_027e0cd8_0C_Base_88 {
public:
/* 00 */ VecFx32 mUnk_00;
/* 0C */ bool mUnk_0C;
/* 0D */ unk8 mUnk_0D; // pad?
/* 0E */ unk8 mUnk_0E; // pad?
/* 0F */ unk8 mUnk_0F; // pad?
/* 10 */
UnkStruct_027e0cd8_0C_Base_88();
void func_ov000_020823a8(unk32 param1);
void func_ov000_0208261c();
};
class UnkStruct_027e0cd8_0C_Base_98 {
public:
/* 00 */ STRUCT_PAD(0x00, 0xB0);
/* B0 */
UnkStruct_027e0cd8_0C_Base_98();
~UnkStruct_027e0cd8_0C_Base_98();
};
class UnkStruct_027e0cd8_0C_Base_148_00_Base {
public:
/* 00 */ STRUCT_PAD(0x00, 0x14);
/* 14 */
UnkStruct_027e0cd8_0C_Base_148_00_Base();
};
class UnkStruct_027e0cd8_0C_Base_148_00 : public UnkStruct_027e0cd8_0C_Base_148_00_Base {
public:
/* 00 */ STRUCT_PAD(0x14, 0x2C);
/* 2C */
UnkStruct_027e0cd8_0C_Base_148_00(ZMBEntryARAB *pARAB);
~UnkStruct_027e0cd8_0C_Base_148_00();
};
class UnkStruct_027e0cd8_0C_Base_148_01 : public UnkStruct_027e0cd8_0C_Base_148_00_Base {
public:
/* 00 */ STRUCT_PAD(0x14, 0x28);
/* 28 */
UnkStruct_027e0cd8_0C_Base_148_01(ZMBEntryARAB *pARAB);
~UnkStruct_027e0cd8_0C_Base_148_01();
};
class UnkStruct_027e0cd8_0C_Base_148_02 : public UnkStruct_027e0cd8_0C_Base_148_00_Base {
public:
/* 00 */ STRUCT_PAD(0x14, 0x34);
/* 34 */
UnkStruct_027e0cd8_0C_Base_148_02(ZMBEntryARAB *pARAB);
~UnkStruct_027e0cd8_0C_Base_148_02();
};
// UnkStruct_ov001_020c2a40 ?
class UnkStruct_027e0cd8_0C_Base_154_00 {
public:
/* 00 */ STRUCT_PAD(0x00, 0x14);
/* 14 */
UnkStruct_027e0cd8_0C_Base_154_00(const UnkStruct_027e0cd8_0C_Base_154_00 &ref) {
MI_CpuCopy32((void *) &ref, this, sizeof(UnkStruct_027e0cd8_0C_Base_154_00));
}
};
class UnkStruct_027e0cd8_0C_Base {
public:
/* 000 (vtable) */
/* 004 */ unk32 *mUnk_04;
/* 008 */ unk32 *mUnk_08;
/* 00C */ unk32 mUnk_0C;
/* 010 */ unk32 *mUnk_10;
/* 014 */ unk32 *mUnk_14;
/* 018 */ unk32 mUnk_18;
/* 01C */ unk32 *mUnk_1C;
/* 020 */ unk32 mUnk_20;
/* 024 */ unk32 *mUnk_24;
/* 028 */ unk32 mUnk_28;
/* 02C */ unk32 *mUnk_2C;
/* 030 */ unk32 mUnk_30;
/* 034 */ unk32 *mUnk_34;
/* 038 */ unk32 mUnk_38;
/* 03C */ unk32 mUnk_3C;
/* 040 */ unk32 mUnk_40;
/* 044 */ unk32 mUnk_44;
/* 048 */ unk32 mUnk_48;
/* 04C */ unk32 mUnk_4C;
/* 050 */ unk32 mUnk_50;
/* 054 */ unk32 mUnk_54;
/* 058 */ unk32 mUnk_58;
/* 05C */ unk32 mUnk_5C;
/* 060 */ unk32 mUnk_60;
/* 064 */ unk32 mUnk_64;
/* 068 */ unk32 mUnk_68;
/* 06C */ unk32 mUnk_6C;
/* 070 */ unk32 *mUnk_70;
/* 074 */ unk32 *mUnk_74;
/* 078 */ unk32 *mUnk_78;
/* 07C */ unk32 mUnk_7C;
/* 080 */ unk32 mUnk_80;
/* 084 */ unk32 mUnk_84;
/* 088 */ unk32 *mUnk_88;
/* 08C */ unk32 *mUnk_8C;
/* 090 */ unk32 mUnk_90;
/* 094 */ unk32 mUnk_94;
/* 098 */ unk32 mUnk_98;
/* 09C */ unk32 mUnk_9C;
/* 0A0 */ unk32 mUnk_A0;
/* 0A4 */ unk32 mUnk_A4;
/* 0A8 */ unk32 mUnk_A8;
/* 0AC */ unk32 mUnk_AC;
/* 0B0 */ unk32 mUnk_B0;
/* 0B4 */ ZeldaObjectList *mUnk_B4;
/* 0B8 */ ZeldaObjectList *mUnk_B8;
/* 0BC */ ZeldaObjectList *mUnk_BC;
/* 0C0 */ ZeldaObjectList *mUnk_C0;
/* 0C4 */ ZeldaObjectList *mUnk_C4;
/* 0C8 */ ZeldaObjectList *mUnk_C8;
/* 0CC */ ZeldaObjectList *mUnk_CC;
/* 0D0 */ ZeldaObjectList *mUnk_D0;
/* 0D4 */ ZeldaObjectList *mUnk_D4;
/* 0D8 */ ZeldaObjectList *mUnk_D8;
/* 0DC */ ZeldaObjectList *mUnk_DC[8];
/* 0FC */ STRUCT_PAD(0xFC, 0x128);
/* 004 */ UnkSystem3 mUnk_004;
/* 010 */ ModelRender mSceneRender;
/* 070 */ UnkFileSystem5 mUnk_070;
/* 084 */ union {
/* 84 */ wchar_t mUnk_084[2];
struct {
/* 084 */ u16 mUnk_084_00;
/* 086 */ u16 mUnk_084_01;
};
};
/* 088 */ UnkStruct_027e0cd8_0C_Base_88 mUnk_088;
/* 098 */ UnkStruct_027e0cd8_0C_Base_98 *mUnk_098;
/* 09C */ Vec2s mUnk_09C;
/* 0A0 */ unk32 mUnk_0A0;
/* 0A4 */ unk32 mUnk_0A4;
/* 0A8 */ unk32 mUnk_0A8;
/* 0AC */ bool mUnk_0AC;
/* 0AC */ bool mUnk_0AD;
/* 0AC */ bool mUnk_0AE;
/* 0AC */ bool mUnk_0AF;
/* 0B0 */ unk32 mUnk_0B0;
/* 0B4 */ ZeldaObjectList *mUnk_0B4;
/* 0B8 */ ZeldaObjectList *mUnk_0B8[8]; // map objects
/* 0D8 */ ZeldaObjectList *mUnk_0D8;
/* 0DC */ ZeldaObjectList *mUnk_0DC[8]; // actors
/* 0FC */ unk32 mUnk_0FC;
/* 100 */ volatile BOOL mIsCS;
/* 104 */ unk16 mUnk_104;
/* 108 */ unk32 mUnk_108;
/* 10C */ unk32 mUnk_10C;
/* 110 */ unk32 mUnk_110;
/* 114 */ unk32 mUnk_114;
/* 118 */ unk32 mUnk_118;
/* 11C */ unk32 mUnk_11C;
/* 120 */ unk32 mUnk_120;
/* 124 */ unk32 mUnk_124;
/* 128 */ u16 mUnk_128;
/* 12A */ STRUCT_PAD(0x12A, 0x160);
/* 160 */ UnkStruct_027e0cd8_0c_160 *mUnk_160;
/* 164 */ STRUCT_PAD(0x164, 0x1E0);
/* 1E0 */
/* 12A */ bool mUnk_12A;
/* 12B */ bool mUnk_12B;
/* 12C */ bool mUnk_12C;
/* 12D */ bool mUnk_12D;
/* 12E */ bool mUnk_12E;
/* 130 */ unk32 mUnk_130;
/* 134 */ unk32 mUnk_134;
/* 138 */ unk32 mUnk_138;
/* 13C */ FixedVector<UnkStruct_ov001_020c40f4> mUnk_13C;
/* 148 */ CustomVector<UnkStruct_027e0cd8_0C_Base_148_00_Base *> mUnk_148;
/* 154 */ CustomVector<UnkStruct_027e0cd8_0C_Base_154_00> mUnk_154;
/* 160 */
// data_ov031_02112a0c
/* 00 */ virtual void vfunc_00();
/* 04 */ virtual void vfunc_04();
UnkStruct_027e0cd8_0C_Base(UnkStruct_027e0cd8 *param1);
/* 00 */ virtual ~UnkStruct_027e0cd8_0C_Base();
/* 08 */ virtual void vfunc_08();
/* 0C */ virtual void vfunc_0C();
/* 10 */ virtual void vfunc_10();
/* 14 */ virtual void vfunc_14();
/* 18 */ virtual void vfunc_18();
/* 1C */ virtual void vfunc_1C();
/* 1C */ virtual void vfunc_1C(const UnkStruct_SceneChange1 *param1, bool param2, bool param3);
/* 20 */ virtual void vfunc_20();
/* 24 */ virtual void vfunc_24();
/* 28 */ virtual fx32 vfunc_28(VecFx32 *param1, unk32 param2, unk32 param3);
/* 2C */ virtual void vfunc_2C();
/* 30 */ virtual void LoadSceneModel(const UnkStruct_SceneChange1 *param1);
/* 34 */ virtual void vfunc_34(unk32 param1);
/* 38 */ virtual void vfunc_38();
/* 3C */ virtual void vfunc_3C();
/* 40 */ virtual void vfunc_40(u8 spawnIndex);
// itcm
fx32 func_01ffedf4(Vec2b *pPos);
// overlay 0
unk32 func_ov000_02080180(void *param1);
void func_ov000_020801b0(Vec2b *param1, unk32 param2, unk32 param3);
bool func_ov000_020802ec(u16 param1, VecFx32 *param2);
void func_ov000_020803ec(u16 param1);
void func_ov000_0208053c(u16 param1);
bool func_ov000_02080658(unk32 param1, UnkStruct_SceneChange1 *param2);
void func_ov000_020808f4(void *param1, void *param2, unk32 param3);
unk32 func_ov000_02080a44();
void func_ov000_020801b0(Vec2b *param1, unk32 param2, unk32 param3);
void func_ov000_0208053c(u16 param1);
void func_ov000_020803ec(u16 param1);
bool func_ov000_020802ec(u16 param1, VecFx32 *param2);
void func_ov000_02080a5c(VecFx32 *param1);
void func_ov000_02080a78(VecFx32 *param1);
VecFx32 *func_ov001_020b8a5c(unk32 spawnIndex, unk32 param1);
// overlay 1
void func_ov001_020b85d0(const UnkStruct_SceneChange1 *param1);
void func_ov001_020b88c0(unk32 param1);
void func_ov001_020b88ec();
const UnkStruct_ov001_020c40f4 *func_ov001_020b8a5c(unk32 spawnIndex, unk32 param1);
void func_ov001_020b8aec();
void func_ov001_020b8b94(ZMBEntryARAB *pARAB);
void func_ov001_020b8c30(const UnkStruct_027e0cd8_0C_Base_154_00 &param1);
void *func_ov001_020b8c80(unk32 param1);
void func_ov001_020b8c90(unk32 param1);
void func_ov001_020b8c98(unk32 param1);
void func_ov001_020b8db8();
void func_ov001_020b8e24();
void func_ov001_020b8e54();
};
class UnkStruct_027e0cd8_0C : public UnkStruct_027e0cd8_0C_Base {
public:
/* 000 (base) */
/* 160 */ UnkStruct_027e0cd8_0C_160 *mUnk_160;
/* 164 */ STRUCT_PAD(0x164, 0x1E0);
/* 1E0 */
UnkStruct_027e0cd8_0C(UnkStruct_027e0cd8 *param1);
// data_ov031_02112a0c
/* 00 */ virtual ~UnkStruct_027e0cd8_0C() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C() override;
/* 10 */ virtual void vfunc_10() override;
/* 14 */ virtual void vfunc_14() override;
/* 18 */ virtual void vfunc_18() override;
/* 1C */ virtual void vfunc_1C(const UnkStruct_SceneChange1 *param1, bool param2, bool param3) override;
/* 20 */ virtual void vfunc_20() override;
/* 24 */ virtual void vfunc_24() override;
/* 28 */ virtual fx32 vfunc_28(VecFx32 *param1, unk32 param2, unk32 param3) override;
/* 2C */ virtual void vfunc_2C() override;
};
class UnkStruct_027e0cd8_0C_Derived2 : public UnkStruct_027e0cd8_0C_Base {
public:
/* 00 (base) */
/* 04 */ STRUCT_PAD(0x160, 0x4F8);
UnkStruct_027e0cd8_0C_Derived2(UnkStruct_027e0cd8 *param1);
};
class UnkStruct_027e0cd8_0C_Derived3 : public UnkStruct_027e0cd8_0C_Base {
public:
/* 00 (base) */
UnkStruct_027e0cd8_0C_Derived3(UnkStruct_027e0cd8 *param1);
};
class UnkStruct_027e0cd8_04_0C {
@@ -114,7 +301,8 @@ public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ s16 mUnk_08;
/* 0C */ STRUCT_PAD(0x0C, 0x50);
/* 0C */ volatile u32 mUnk_0C;
/* 10 */ STRUCT_PAD(0x10, 0x50);
/* 50 */
UnkStruct_027e0cd8_04_0C();
@@ -122,28 +310,57 @@ public:
class UnkStruct_027e0cd8_04 {
public:
/* 00 */ unk32 mUnk_00;
/* 00 */ unk8 mUnk_00;
/* 00 */ bool mUnk_01;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0C */ UnkStruct_027e0cd8_04_0C *mUnk_0C;
/* 10 */
/* 10 */ u8 mUnk_10;
/* 11 */ u8 mUnk_11;
/* 12 */ STRUCT_PAD(0x12, 0x40);
/* 40 */ u8 mUnk_40[1][10]; // at least one
STRUCT_PAD(0x4C, 0xB4);
/* B4 */
UnkStruct_027e0cd8_04();
~UnkStruct_027e0cd8_04();
void func_ov000_02081354(const CourseListEntry *pEntry, const UnkStruct_func_ov000_020702a8 *pUnk1,
SaveFile_00000_0000_Data_184 *param3, bool param4);
};
class UnkStruct_027e0cd8_10 : public UnkDataStruct4 {
public:
/* 00 (base) */
/* D0 */ unk32 mUnk_D0;
/* D4 */
UnkStruct_027e0cd8_10();
~UnkStruct_027e0cd8_10();
};
class UnkStruct_027e0cd8 : public AutoInstance<UnkStruct_027e0cd8> {
public:
/* 00 */ unk32 mUnk_00;
/* 00 */ Vec2s mUnk_00;
/* 04 */ UnkStruct_027e0cd8_04 *mUnk_04; // stage flags
/* 08 */ unk32 mUnk_08;
/* 0C */ UnkStruct_027e0cd8_0c *mUnk_0C; // related to train?
/* 10 */ MapObjectManager *mUnk_10;
/* 14 */ STRUCT_PAD(0x14, 0x24);
/* 08 */ UnkStruct_027e0cd8_04 *mUnk_08;
/* 0C */ UnkStruct_027e0cd8_0C_Base *mUnk_0C; // related to train?
/* 10 */ UnkStruct_027e0cd8_10 *mUnk_10;
/* 14 */ unk16 mUnk_14;
/* 16 */ bool mUnk_16;
/* 16 */ bool mUnk_17;
/* 18 */ UnkSystem8 mUnk_18;
/* 24 */ VecFx32 mUnk_24;
/* 34 */ STRUCT_PAD(0x34, 0x4C);
/* 30 */ unk32 mUnk_30; // scene index but unknown purpose
/* 34 */ unk32 mUnk_34; // scene index but unknown purpose
/* 38 */ s64 mUnk_38[2];
/* 48 */ bool mUnk_48[2];
/* 4C */
UnkStruct_027e0cd8_0C *GetUnk0C() {
return (UnkStruct_027e0cd8_0C *) this->mUnk_0C;
}
UnkStruct_027e0cd8();
~UnkStruct_027e0cd8();
@@ -156,11 +373,20 @@ public:
u32 func_ov000_02081d5c(); // returns current room index?
bool func_ov000_02082124();
bool func_ov000_02081c28();
void func_ov000_02081ca0();
// overlay 1
void func_ov001_020b7830(const UnkStruct_SceneChange1 *param1);
void func_ov001_020b7a7c();
void func_ov001_020b7830(UnkStruct_SceneChange1 *param1);
void func_ov001_020b7c08(UnkStruct_SceneChange1 *param1, UnkStruct_WarpUnk1_A0 *param2);
void func_ov001_020b7b38(const CourseListEntry *pEntry, const UnkStruct_func_ov000_020702a8 *pUnk1);
void func_ov001_020b7c08(const UnkStruct_SceneChange1 *param1, const UnkStruct_WarpUnk1_A0 *param2);
void func_ov001_020b7d64(const UnkStruct_SceneChange1 *param1);
void func_ov001_020b7e50();
void func_ov001_020b7e68(const UnkStruct_SceneChange1 *param1, bool param2);
void func_ov001_020b803c();
bool func_ov001_020b80fc(SceneIndex sceneIndex);
void func_ov001_020b8120(SceneIndex sceneIndex);
void func_ov001_020b818c();
static UnkStruct_027e0cd8 *Create();
static void Destroy();
+9 -1
View File
@@ -14,6 +14,8 @@
#include <nitro/math.h>
class UnkStruct_ov001_020c40f4;
class UnkStruct_027e0ce0_34 {
public:
/* 00 */ unk32 mUnk_00[4];
@@ -442,8 +444,14 @@ public:
static UnkStruct_027e0ce0_34 *func_ov000_0205c904();
// overlay 1
void func_ov001_020bc5f8();
void func_ov001_020bc524(bool param1);
void func_ov001_020bc5f8();
void func_ov001_020bc65c();
void func_ov001_020bc69c();
void func_ov001_020bc6d8(unk32 param1, const UnkStruct_ov001_020c40f4 *param2);
void func_ov001_020bc6e8(const UnkStruct_ov001_020c40f4 *param1);
void func_ov001_020bc6fc(const UnkStruct_ov001_020c40f4 *param1, const UnkStruct_ov001_020c40f4 *param2, unk32 param3,
unk32 param4);
static UnkStruct_027e0ce0 *Create();
static void Destroy();
+1
View File
@@ -15,6 +15,7 @@ public:
void func_ov000_020a0000(UnkStruct_PlayerGet_ec *param1, void *param2, unk32 *param3, VecFx32 *param4, unk32 param5);
void func_ov000_020a0110(UnkStruct_PlayerGet_ec *param1);
void func_ov000_020a0220(void *param1, void *param2);
void func_ov001_020bf028();
// overlay 1
static UnkStruct_027e0cec *Create();
@@ -9,6 +9,8 @@
#include "types.h"
#include <nitro/pad.h>
class UnkStruct_027e0cd8_04_0C;
class UnkStruct_ov000_02067bc4_Sub1 {
public:
unk32 func_02022128(void);
@@ -163,10 +165,14 @@ public:
void func_ov000_02067b60();
// overlay 1
void func_ov001_020be504(void);
void func_ov001_020be510();
void func_ov001_020be668(void);
void func_ov001_020be6f4(void);
void func_ov001_020be8e0(void);
void func_ov001_020be92c(UnkStruct_027e0cd8_04_0C *param1);
void func_ov001_020be94c(void);
void func_ov001_020be998(void);
};
// gMessageManager?
+3 -1
View File
@@ -63,8 +63,10 @@ public:
void func_ov001_020bd87c(void);
void func_ov001_020bd8dc(void);
void func_ov001_020bd8ac(void);
void func_ov001_020bde04(UnkStruct_SceneChange1 *param1);
void func_ov001_020bd970(UnkStruct_SceneChange1 *param1);
void func_ov001_020bde5c(void);
void func_ov001_020bde04(UnkStruct_SceneChange1 *param1);
void func_ov001_020bde4c(const UnkStruct_SceneChange1 *param1);
// overlay 18
UnkStruct_ov018_020c5ac0 *func_ov018_020c5718(void);
@@ -10,6 +10,10 @@ public:
UnkStruct_ov026_02138d10();
~UnkStruct_ov026_02138d10();
// overlay 0
void func_ov026_020dca14();
// overlay 26
unk32 func_ov026_020e13f4();
unk32 func_ov026_020e18fc();
void func_ov026_020e1440();
+17
View File
@@ -85,6 +85,23 @@ public:
/* 24 */ virtual ~UnkSystem1_ov000_Derived2() override;
};
// data_ov000_020b23a0
class UnkSystem1_ov000_Derived3 : public UnkSystem1_ov000_Derived1 {
public:
/* 00 (base) */
/* 14 */
UnkSystem1_ov000_Derived3();
/* 00 */ virtual void vfunc_00(unk32 param1) override;
/* 08 */ virtual void vfunc_08(unk32 param1) override;
/* 10 */ virtual unk32 vfunc_10(u16 *param1) override;
/* 14 */ virtual bool vfunc_14(FLW1Instr *param1) override;
/* 1C */ virtual unk32 vfunc_1C(u32 param1, unk32 param2, unk32 param3) override;
/* 20 */ virtual unk32 vfunc_20(unk32 param1, unk32 param2, unk32 param3) override;
/* 24 */ virtual ~UnkSystem1_ov000_Derived3() override;
};
// data_ov010_020b8e10
class UnkSystem1_ov010 : public UnkSystem1_ov000_Derived1 {
public:
+34 -3
View File
@@ -24,13 +24,17 @@ typedef struct FileInfos {
} FileInfos;
// .zob
typedef struct ZeldaObjectList {
typedef struct ZOBHeader {
/* 00 */ FileType type; // always "ZOLB"
/* 04 */ unk32 nSize; // file size?
/* 08 */ unk16 unk_08;
/* 0A */ unk16 unk_0a;
/* 0A */ unk16 unk_0A;
/* 0C */ u16 nEntries; // number of entries
/* 0E */ unk16 unk_0e;
/* 0E */ unk16 unk_0E;
} ZOBHeader; // size = 0x10
typedef struct ZeldaObjectList {
/* 00 */ ZOBHeader header;
/* 10 */ u32 aIdList[]; // actor id or map object id
} ZeldaObjectList;
@@ -140,6 +144,15 @@ enum ZMBSectionType_ {
ZMBSectionType_NPCA = 'NPCA', // actor list, same as above
};
typedef struct ZMBFileInfos {
/* 00 */ void *pFile;
/* 04 */ size_t size;
/* 08 */ unk16 unk_08;
/* 0C */ unk16 unk_0C;
/* 10 */ unk16 unk_10;
/* 14 */ unk16 unk_14;
} ZMBFileInfos;
typedef struct ZMBHeader {
/* 00 */ u32 magic; // 'MAPB'
/* 04 */ FileType type; // always "ZMB1"
@@ -169,6 +182,23 @@ typedef struct ZMBSectionRALB {
/* 0C */ ZMBEntryRALB entries[];
} ZMBSectionRALB;
typedef struct ZMBEntryARAB {
/* 00 */ u8 unk_00;
/* 01 */ u8 unk_01;
/* 02 */ u8 unk_02;
/* 03 */ u8 unk_03;
/* 04 */ unk32 unk_04;
/* 08 */ unk32 unk_08;
/* 0C */ u8 unk_0C;
/* 0D */ u8 unk_0D;
/* 0E */ unk8 unk_0E;
/* 0F */ unk8 unk_0F;
} ZMBEntryARAB; // size = 0x10
struct UnkStruct_027e0cd8_0C_Base;
extern BOOL ZMB_ParseFile(ZMBFileInfos *pFileInfos, UnkStruct_027e0cd8_0C_Base *pDst, BOOL param3);
// .cib
typedef struct CourseInitEntry {
/* 00 */ const char name[16];
@@ -206,6 +236,7 @@ typedef struct CourseListEntry {
/* 1E */ u8 unk_1E;
/* 1F */ u8 unk_1F;
/* 20 */ u8 defaultMapPaintIndex;
/* 21 */ s8 unk_21; // scene index but unknown purpose
/* 24 */ CourseListRoomEntry roomEntries[];
} CourseListEntry; // size >= 0x28
+13
View File
@@ -76,6 +76,12 @@
#define ALIGN_NEXT(X, N) ALIGN_PREV(((X) + (N) - 1), N)
#define ALIGN(X, N) ((X + N) & ~N)
#define STACK_PAD(N) \
struct __StackPad { \
char pad[(N)]; \
~__StackPad() {} \
} __stack_pad
#define VTABLE_PAD(name) \
class _VTABLE_PAD_##name { \
public: \
@@ -90,4 +96,11 @@
} \
(void) 0
#define DELETE_ARRAY(ptr) \
{ \
delete[] ptr; \
ptr = NULL; \
} \
(void) 0
#endif
+10
View File
@@ -39,6 +39,16 @@ union Vec2s {
}
Vec2s() {}
Vec2s(Vec2s *from) {
#if __MWERKS__
this->coords = from->coords;
#else
this->x = from->x;
this->y = from->y;
#endif
}
Vec2s(s16 X, s16 Y) {
x = X;
y = Y;
+2
View File
@@ -7,6 +7,8 @@
extern "C" {
#endif
struct mbstate_t {};
size_t wcslen(const wchar_t *str);
wchar_t *wcscpy(wchar_t *dest, const wchar_t *src);
wchar_t *wcsncpy(wchar_t *dest, const wchar_t *src, size_t n);
+83
View File
@@ -0,0 +1,83 @@
#ifndef _STD_ALGORITHM_H
#define _STD_ALGORITHM_H
// from rb3/key decomp
#include <msl_unk.hpp>
namespace std {
template <class T> inline const T &min(const T &a, const T &b) {
return b < a ? b : a;
}
template <class T> inline const T &max(const T &a, const T &b) {
return a < b ? b : a;
}
template <class T, class _Compare> inline const T &min(const T &a, const T &b, _Compare comp) {
return comp(b, a) ? b : a;
}
template <class T, class _Compare> inline const T &max(const T &a, const T &b, _Compare comp) {
return comp(a, b) ? b : a;
}
template <typename InputIterator, typename Predicate>
inline InputIterator find_if(InputIterator first, InputIterator last, Predicate p) {
for (; first != last && !p(*first); ++first) {
}
return first;
}
template <typename It, typename T> inline It find(It first, It last, const T &value) {
while (first != last && *first != value) {
first++;
}
return first;
}
// adapted from https://github.com/matta/sgi-stl/blob/635eaeef4533214ec140fb17411558ad441d2996/stl/stl_algo.h#L638
template <typename It, typename T> inline It remove(It first, It last, const T &value) {
first = find(first, last, value);
if (first != last) {
It it = first;
for (it++; it != last; it++) {
if (*it != value) {
*first = *it;
first++;
}
}
}
return first;
}
template <typename T, typename Size, bool V /* ? */> struct __fill_n {
static inline void fill_n(T *first, Size n, const T &value) {
for (; n != 0; first++, n--) {
*first = value;
}
}
};
template <typename OutputIt /* ? */, typename Size, typename T>
inline void fill_n(OutputIt *first, Size n, const T &value) {
__fill_n<OutputIt, Size, false>::fill_n(first, n, value);
}
template <typename T> inline T &move(T &p) {
return p;
}
template <typename T> inline void swap(T &a, T &b) {
T temp = move(a);
a = move(b);
b = move(temp);
}
} // namespace std
#endif
+156
View File
@@ -0,0 +1,156 @@
#ifndef _STD_PAIR
#define _STD_PAIR
// from key decomp
#include "type_traits.hpp"
namespace Metrowerks {
namespace details {
template <typename T1, typename T2, bool T1Empty = std::is_empty<T1>::value, bool T2Empty = std::is_empty<T2>::value>
struct compressed_pair_selector {
static const int value = 0;
};
template <typename T1, typename T2> struct compressed_pair_selector<T1, T2, true, false> {
static const int value = 1;
};
template <typename T1, typename T2> struct compressed_pair_selector<T1, T2, false, true> {
static const int value = 2;
};
template <typename T1, typename T2> struct compressed_pair_selector<T1, T2, true, true> {
static const int value = 3;
};
template <typename T> struct compressed_pair_selector<T, T, false, false> {
static const int value = 0;
};
template <typename T> struct compressed_pair_selector<T, T, true, true> {
static const int value = 1;
};
// Note to future self: template signature must stay as-is for symbols
template <typename T1, typename T2, int Selector = compressed_pair_selector<T1, T2>::value> class compressed_pair_imp {
public:
typedef typename Metrowerks::call_traits<T1>::param_type first_param;
typedef typename Metrowerks::call_traits<T2>::param_type second_param;
compressed_pair_imp() {}
compressed_pair_imp(first_param first, second_param second) :
m_First(first),
m_Second(second) {}
compressed_pair_imp(first_param first) :
m_First(first) {}
compressed_pair_imp(second_param second) :
m_Second(second) {}
T1 &first() {
return m_First;
}
const T1 &first() const {
return m_First;
}
T2 &second() {
return m_Second;
}
const T2 &second() const {
return m_Second;
}
private:
T1 m_First;
T2 m_Second;
};
template <typename T1, typename T2> class compressed_pair_imp<T1, T2, 1> : private T1 {
public:
typedef typename Metrowerks::call_traits<T1>::param_type first_param;
typedef typename Metrowerks::call_traits<T2>::param_type second_param;
compressed_pair_imp() {}
compressed_pair_imp(first_param first, second_param second) :
T1(first),
m_Second(second) {}
compressed_pair_imp(first_param first) :
T1(first) {}
compressed_pair_imp(second_param second) :
m_Second(second) {}
T1 &first() {
return *this;
}
const T1 &first() const {
return *this;
}
T2 &second() {
return m_Second;
}
const T2 &second() const {
return m_Second;
}
private:
T2 m_Second;
};
template <typename T1, typename T2> class compressed_pair_imp<T1, T2, 2> : private T2 {
public:
typedef typename Metrowerks::call_traits<T1>::param_type first_param;
typedef typename Metrowerks::call_traits<T2>::param_type second_param;
compressed_pair_imp() {}
compressed_pair_imp(first_param first, second_param second) :
m_First(first),
T2(second) {}
compressed_pair_imp(first_param first) :
m_First(first) {}
compressed_pair_imp(second_param second) :
T2(second) {}
T1 &first() {
return m_First;
}
const T1 &first() const {
return m_First;
}
T2 &second() {
return *this;
}
const T2 &second() const {
return *this;
}
private:
T1 m_First;
};
} // namespace details
template <typename T1, typename T2> struct compressed_pair : public details::compressed_pair_imp<T1, T2> {
typedef typename details::compressed_pair_imp<T1, T2>::first_param first_param;
typedef typename details::compressed_pair_imp<T1, T2>::second_param second_param;
typedef details::compressed_pair_imp<T1, T2> _Base;
compressed_pair() {}
compressed_pair(first_param first) :
_Base(first) {}
compressed_pair(second_param second) :
_Base(second) {}
compressed_pair(first_param first, second_param second) :
_Base(first, second) {}
template <class U, class V>
compressed_pair(const compressed_pair<U, V> &p) :
_Base(p.first(), p.second()) {}
};
} // namespace Metrowerks
#endif
+13
View File
@@ -0,0 +1,13 @@
#ifndef _STD_CSTDDEF_H
#define _STD_CSTDDEF_H
// from rb3 decomp
#include <stddef.h>
namespace std {
using ::ptrdiff_t;
using ::size_t;
}
#endif
+39
View File
@@ -0,0 +1,39 @@
#ifndef _STD_CSTRING_H
#define _STD_CSTRING_H
// from rb3 decomp
#include <string.h>
#include <mem.h>
namespace std {
using ::size_t;
using ::memchr;
using ::memcmp;
using ::memcpy;
using ::memmove;
using ::memset;
// using ::strcat;
using ::strcpy;
// using ::strncat;
using ::strncpy;
// using ::strxfrm;
// using ::strchr;
using ::strcmp;
// using ::strcoll;
// using ::strcspn;
using ::strlen;
using ::strncmp;
// using ::strpbrk;
// using ::strrchr;
// using ::strspn;
// using ::strstr;
// using ::strtok;
// using ::strerror;
} // namespace std
#endif
+82
View File
@@ -0,0 +1,82 @@
#ifndef MSL_CPP_CWCHAR_H
#define MSL_CPP_CWCHAR_H
// from rb3 decomp
#include <wstring.h>
namespace std {
// using ::mbstate_t;
// using ::wint_t;
using ::size_t;
// using ::tm;
// using ::wcscat;
using ::wcscpy;
// using ::wcsncat;
using ::wcsncpy;
// using ::wcsxfrm;
using ::wcschr;
// using ::wcscmp;
// using ::wcscoll;
// using ::wcscspn;
using ::wcslen;
// using ::wcsncmp;
// using ::wcspbrk;
// using ::wcsrchr;
// using ::wcsspn;
// using ::wcsstr;
// using ::wcstok;
// using ::wmemchr;
// using ::wmemcmp;
// using ::wmemcpy;
// using ::wmemmove;
// using ::wmemset;
// using ::btowc;
// using ::mbrlen;
// using ::mbrtowc;
// using ::mbsinit;
// using ::mbsrtowcs;
// using ::wcrtomb;
// using ::wcsrtombs;
// using ::wctob;
// using ::fgetwc;
// using ::fgetws;
// using ::fputwc;
// using ::fputws;
// using ::getwc;
// using ::getwchar;
// using ::putwc;
// using ::putwchar;
// using ::ungetwc;
// using ::fwide;
// using ::fwprintf;
// using ::fwscanf;
// using ::swprintf;
// using ::swscanf;
// using ::vfwprintf;
// using ::vfwscanf;
// using ::vswprintf;
// using ::vswscanf;
// using ::vwprintf;
// using ::vwscanf;
// using ::wprintf;
// using ::wscanf;
// using ::wcsftime;
// using ::wcstod;
// using ::wcstof;
// using ::wcstol;
// using ::wcstold;
// using ::wcstoll;
// using ::wcstoul;
// using ::wcstoull;
}
#endif
+28
View File
@@ -0,0 +1,28 @@
#ifndef _STD_DEFAULT_DELETE
#define _STD_DEFAULT_DELETE
// from rb3 decomp
#include <new>
namespace std {
namespace detail {
template <typename T> struct default_delete {
void operator()(T *ptr) {
delete ptr;
}
};
template <typename T> struct default_delete<T[]> {
void operator()(T ptr[]) {
delete[] ptr;
}
};
} // namespace detail
} // namespace std
#endif
+38
View File
@@ -0,0 +1,38 @@
#ifndef _STD_EXCEPTION
#define _STD_EXCEPTION
// from rb3 decomp
namespace std {
class exception {
public:
exception() {}
virtual ~exception() {}
virtual const char *what() const {
return "exception";
}
};
class bad_exception : public exception {
public:
bad_exception() {}
virtual ~bad_exception() {}
virtual const char *what() const {
return "bad_exception";
}
};
typedef void (*unexpected_handler)();
unexpected_handler set_unexpected(unexpected_handler f) throw();
void unexpected();
typedef void (*terminate_handler)();
terminate_handler set_terminate(terminate_handler f) throw();
void terminate();
bool uncaught_exception() throw();
} // namespace std
#endif
+115
View File
@@ -0,0 +1,115 @@
#ifndef _STD_IOSFWD
#define _STD_IOSFWD
// from rb3 decomp
#include <cwchar>
namespace std {
typedef mbstate_t __char_state_type;
typedef mbstate_t __wchar_state_type;
template <class CharT>
struct char_traits;
template <>
struct char_traits<char>;
template <>
struct char_traits<wchar_t>;
template <class T>
class allocator;
template <class CharT, class Traits = char_traits<CharT> >
class basic_ios;
template <class CharT, class Traits = char_traits<CharT> >
class basic_streambuf;
template <class CharT, class Traits = char_traits<CharT> >
class basic_istream;
template <class CharT, class Traits = char_traits<CharT> >
class basic_ostream;
template <class CharT, class Traits = char_traits<CharT> >
class basic_iostream;
template <class CharT, class Traits = char_traits<CharT> >
class basic_filebuf;
template <class CharT, class Traits = char_traits<CharT> >
class basic_ifstream;
template <class CharT, class Traits = char_traits<CharT> >
class basic_ofstream;
template <class CharT, class Traits = char_traits<CharT> >
class basic_fstream;
template <
class CharT,
class Traits = char_traits<CharT>,
class Allocator = allocator<CharT> >
class basic_stringbuf;
template <
class CharT,
class Traits = char_traits<CharT>,
class Allocator = allocator<CharT> >
class basic_istringstream;
template <
class CharT,
class Traits = char_traits<CharT>,
class Allocator = allocator<CharT> >
class basic_ostringstream;
template <
class CharT,
class Traits = char_traits<CharT>,
class Allocator = allocator<CharT> >
class basic_stringstream;
template <class CharT, class Traits = char_traits<CharT> >
class istreambuf_iterator;
template <class CharT, class Traits = char_traits<CharT> >
class ostreambuf_iterator;
typedef basic_ios<char> ios;
typedef basic_ios<wchar_t> wios;
typedef basic_streambuf<char> streambuf;
typedef basic_istream<char> istream;
typedef basic_ostream<char> ostream;
typedef basic_iostream<char> iostream;
typedef basic_stringbuf<char> stringbuf;
typedef basic_istringstream<char> istringstream;
typedef basic_ostringstream<char> ostringstream;
typedef basic_stringstream<char> stringstream;
typedef basic_filebuf<char> filebuf;
typedef basic_ifstream<char> ifstream;
typedef basic_ofstream<char> ofstream;
typedef basic_fstream<char> fstream;
typedef basic_streambuf<wchar_t> wstreambuf;
typedef basic_istream<wchar_t> wistream;
typedef basic_ostream<wchar_t> wostream;
typedef basic_iostream<wchar_t> wiostream;
typedef basic_stringbuf<wchar_t> wstringbuf;
typedef basic_istringstream<wchar_t> wistringstream;
typedef basic_ostringstream<wchar_t> wostringstream;
typedef basic_stringstream<wchar_t> wstringstream;
typedef basic_filebuf<wchar_t> wfilebuf;
typedef basic_ifstream<wchar_t> wifstream;
typedef basic_ofstream<wchar_t> wofstream;
typedef basic_fstream<wchar_t> wfstream;
template <class State>
class fpos;
typedef fpos<__char_state_type /*char_traits<char>::state_type*/> streampos;
typedef fpos<__wchar_state_type /*char_traits<wchar_t>::state_type*/> wstreampos;
class strstreambuf;
class istrstream;
class ostrstream;
class strstream;
}
#endif
+371
View File
@@ -0,0 +1,371 @@
#ifndef _STD_ITERATOR_H
#define _STD_ITERATOR_H
// from rb3 decomp
// clang-format off: too excessive with splitting things into multiple lines
// Based on https://github.com/SwareJonge/mkdd/blob/main/libs/PowerPC_EABI_Support/include/iterator
#include <cstddef>
#include <iosfwd>
namespace std {
struct input_iterator_tag {};
struct output_iterator_tag {};
struct forward_iterator_tag : public input_iterator_tag {};
struct bidirectional_iterator_tag : public forward_iterator_tag {};
struct random_access_iterator_tag : public bidirectional_iterator_tag {};
template <typename Iterator>
struct iterator_traits {
typedef typename Iterator::difference_type difference_type;
typedef typename Iterator::value_type value_type;
typedef typename Iterator::pointer pointer;
typedef typename Iterator::reference reference;
typedef typename Iterator::iterator_category iterator_category;
};
template <typename IteratorTag, typename ValueType, typename DifferenceType = ptrdiff_t,
typename Pointer = ValueType *, typename Reference = ValueType &>
struct iterator {
typedef IteratorTag iterator_category;
typedef ValueType value_type;
typedef DifferenceType difference_type;
typedef Pointer pointer;
typedef Reference reference;
};
template <class Container>
class insert_iterator : public iterator<output_iterator_tag, void, void, void, void> {
typedef iterator<output_iterator_tag, void, void, void, void> _Base;
public:
typedef Container container_type;
typedef typename _Base::iterator_category iterator_category;
typedef typename _Base::value_type value_type;
typedef typename _Base::difference_type difference_type;
typedef typename _Base::pointer pointer;
typedef typename _Base::reference reference;
insert_iterator() {}
insert_iterator(Container& c, typename Container::iterator i)
: container(&c), iter(i) { }
insert_iterator& operator=(typename Container::const_reference value) {
iter = container->insert(iter, value);
++iter;
return *this;
}
insert_iterator& operator*() { return *this; }
insert_iterator& operator++() { return *this; }
insert_iterator& operator++(int) { return *this; }
protected:
Container* container;
typename Container::iterator iter;
};
template <class Container>
insert_iterator<Container> inserter(Container& c, typename Container::iterator i) {
return insert_iterator<Container>(c, i);
}
template <class Container>
class front_insert_iterator : public iterator<output_iterator_tag, void, void, void, void> {
typedef iterator<output_iterator_tag, void, void, void, void> _Base;
public:
typedef Container container_type;
typedef typename _Base::iterator_category iterator_category;
typedef typename _Base::value_type value_type;
typedef typename _Base::difference_type difference_type;
typedef typename _Base::pointer pointer;
typedef typename _Base::reference reference;
explicit front_insert_iterator(Container& c) : container(&c) { }
front_insert_iterator& operator=(typename Container::const_reference value) {
typename Container::iterator iter = container->push_front(iter, value);
++iter;
return *this;
}
front_insert_iterator& operator*() { return *this; }
front_insert_iterator& operator++() { return *this; }
front_insert_iterator& operator++(int) { return *this; }
protected:
Container* container;
};
template <class Container>
front_insert_iterator<Container> front_inserter(Container& c) {
return front_insert_iterator<Container>(c);
}
template <class Container>
class back_insert_iterator : public iterator<output_iterator_tag, void, void, void, void> {
typedef iterator<output_iterator_tag, void, void, void, void> _Base;
public:
typedef Container container_type;
typedef typename _Base::iterator_category iterator_category;
typedef typename _Base::value_type value_type;
typedef typename _Base::difference_type difference_type;
typedef typename _Base::pointer pointer;
typedef typename _Base::reference reference;
explicit back_insert_iterator(Container& c) : container(&c) { }
back_insert_iterator& operator=(typename Container::const_reference value) {
typename Container::iterator iter = container->push_back(iter, value);
++iter;
return *this;
}
back_insert_iterator& operator*() { return *this; }
back_insert_iterator& operator++() { return *this; }
back_insert_iterator& operator++(int) { return *this; }
protected:
Container* container;
};
template <class Container>
back_insert_iterator<Container> back_inserter(Container& c) {
return back_insert_iterator<Container>(c);
}
template <class Iter>
class reverse_iterator : public iterator<
typename iterator_traits<Iter>::iterator_category,
typename iterator_traits<Iter>::value_type,
typename iterator_traits<Iter>::difference_type,
typename iterator_traits<Iter>::pointer,
typename iterator_traits<Iter>::reference
> {
typedef iterator<
typename iterator_traits<Iter>::iterator_category,
typename iterator_traits<Iter>::value_type,
typename iterator_traits<Iter>::difference_type,
typename iterator_traits<Iter>::pointer,
typename iterator_traits<Iter>::reference
> _Base;
public:
typedef Iter iterator_type;
typedef typename _Base::iterator_category iterator_category;
typedef typename _Base::value_type value_type;
typedef typename _Base::difference_type difference_type;
typedef typename _Base::pointer pointer;
typedef typename _Base::reference reference;
reverse_iterator() {}
explicit reverse_iterator(Iter itr) : current(itr) {}
template <typename U>
reverse_iterator(const reverse_iterator<U>& other) : current(other.current) {}
template <typename U>
reverse_iterator& operator=(const reverse_iterator<U>& other) {
current = other.current;
}
Iter base() { return current; }
reference operator*() const {
Iter it = current;
--it;
return *it;
}
pointer operator->() const {
return &(operator*());
}
reverse_iterator& operator++() {
--current;
return *this;
}
reverse_iterator operator++(int) {
reverse_iterator tmp = *this;
++*this;
return tmp;
}
reverse_iterator& operator--() {
++current;
return *this;
}
reverse_iterator operator--(int) {
reverse_iterator tmp = *this;
--*this;
return tmp;
}
reverse_iterator operator+(difference_type n) const {
return reverse_iterator(current - n);
}
reverse_iterator& operator+=(difference_type n) {
current -= n;
return *this;
}
reverse_iterator operator-(difference_type n) const {
return reverse_iterator(current + n);
}
reverse_iterator& operator-=(difference_type n) {
current += n;
return *this;
}
reference operator[](difference_type n) const {
return current[-n - 1];
}
protected:
Iter current;
};
template <class Iterator1, class Iterator2>
bool operator==(const reverse_iterator<Iterator1> &lhs, const reverse_iterator<Iterator2> &rhs) {
return lhs.base() == rhs.base();
}
template <class Iterator1, class Iterator2>
bool operator<(const reverse_iterator<Iterator1> &lhs, const reverse_iterator<Iterator2> &rhs) {
return lhs.base() < rhs.base();
}
template <class Iterator1, class Iterator2>
bool operator!=(const reverse_iterator<Iterator1> &lhs, const reverse_iterator<Iterator2> &rhs) {
return !(lhs.base() == rhs.base());
}
template <class Iterator1, class Iterator2>
bool operator>(const reverse_iterator<Iterator1> &lhs, const reverse_iterator<Iterator2> &rhs) {
return rhs.base() < lhs.base();
}
template <class Iterator1, class Iterator2>
bool operator<=(const reverse_iterator<Iterator1> &lhs, const reverse_iterator<Iterator2> &rhs) {
return !(rhs.base() < lhs.base());
}
template <class Iterator1, class Iterator2>
bool operator>=(const reverse_iterator<Iterator1> &lhs, const reverse_iterator<Iterator2> &rhs) {
return !(lhs.base() < rhs.base());
}
template<class Iter>
reverse_iterator<Iter> operator+(
typename reverse_iterator<Iter>::difference_type lhs,
const reverse_iterator<Iter>& rhs
) {
return rhs + lhs;
}
template<class Iter1, class Iter2>
typename reverse_iterator<Iter1>::difference_type operator-(
const reverse_iterator<Iter1>& lhs,
const reverse_iterator<Iter2>& rhs
) {
return rhs.base() - lhs.base();
}
template <class Iter>
reverse_iterator<Iter> make_reverse_iterator(Iter itr) {
return reverse_iterator<Iter>(itr);
}
template <class T, class CharT = char, class Traits = char_traits<CharT>, class Distance = ptrdiff_t>
class istream_iterator : public iterator<input_iterator_tag, T, Distance, const T *, const T &> {};
template <class Iterator1, class Iterator2>
bool operator==(const istream_iterator<Iterator1> &lhs, const istream_iterator<Iterator2> &rhs);
template <class Iterator1, class Iterator2>
bool operator!=(const istream_iterator<Iterator1> &lhs, const istream_iterator<Iterator2> &rhs);
template <class T, class CharT = char, class Traits = char_traits<CharT> >
class ostream_iterator : public iterator<output_iterator_tag, void, void, void, void> {};
template <class Iterator1, class Iterator2>
bool operator==(const ostream_iterator<Iterator1> &lhs, const ostream_iterator<Iterator2> &rhs);
template <class Iterator1, class Iterator2>
bool operator!=(const ostream_iterator<Iterator1> &lhs, const ostream_iterator<Iterator2> &rhs);
template <class CharT, class Traits /*= char_traits<CharT>*/ >
class istreambuf_iterator : public iterator<input_iterator_tag, CharT, typename Traits::off_type, CharT *, CharT> {};
template <class Iterator1, class Iterator2>
bool operator==(const istreambuf_iterator<Iterator1> &lhs, const istreambuf_iterator<Iterator2> &rhs);
template <class Iterator1, class Iterator2>
bool operator!=(const istreambuf_iterator<Iterator1> &lhs, const istreambuf_iterator<Iterator2> &rhs);
template <class CharT, class Traits /*= char_traits<CharT>*/ >
class ostreambuf_iterator : public iterator<output_iterator_tag, void, void, void, void> {};
template <class Iterator1, class Iterator2>
bool operator==(const ostreambuf_iterator<Iterator1> &lhs, const ostreambuf_iterator<Iterator2> &rhs);
template <class Iterator1, class Iterator2>
bool operator!=(const ostreambuf_iterator<Iterator1> &lhs, const ostreambuf_iterator<Iterator2> &rhs);
template <class Iterator, class Distance>
void __advance(Iterator &it, Distance n, input_iterator_tag) {
for (; n > 0; --n)
++it;
}
template <class Iterator, class Distance>
void __advance(Iterator &it, Distance n, bidirectional_iterator_tag) {
// positive value
for (; n > 0; --n)
++it;
// negative value
for (; n < 0; ++n)
--it;
}
template <class Iterator, class Distance>
void __advance(Iterator &it, Distance n, random_access_iterator_tag) {
it += n;
}
template <class Iterator, class Distance>
void advance(Iterator &it, Distance n) {
return __advance(it, n, iterator_traits<Iterator>::iterator_category());
}
template <class Iterator>
typename iterator_traits<Iterator>::difference_type
__distance(Iterator first, Iterator last, input_iterator_tag) {
typename iterator_traits<Iterator>::difference_type result = 0;
for (; first != last; ++first)
++result;
return result;
}
template <class Iterator>
typename iterator_traits<Iterator>::difference_type
__distance(Iterator first, Iterator last, random_access_iterator_tag) {
return last - first;
}
template <class Iterator>
typename iterator_traits<Iterator>::difference_type
distance(Iterator first, Iterator last) {
return __distance(first, last, iterator_traits<Iterator>::iterator_category());
}
}
// clang-format on
#endif
+131
View File
@@ -0,0 +1,131 @@
#ifndef _STD_LIMITS_H
#define _STD_LIMITS_H
// from rb3 decomp
// Based on https://github.com/SwareJonge/mkdd/blob/main/libs/PowerPC_EABI_Support/include/limits
namespace std {
template <typename T>
class numeric_limits {
public:
static T min();
static T max();
};
template <>
class numeric_limits<bool> {
public:
static bool min() { return false; }
static bool max() { return true; }
};
template <>
class numeric_limits<char> {
public:
static char min() { return -0x80; }
static char max() { return 0x7F; }
};
template <>
class numeric_limits<signed char> {
public:
static signed char min() { return -0x80; }
static signed char max() { return 0x7F; }
};
template <>
class numeric_limits<unsigned char> {
public:
static unsigned char min() { return 0x0; }
static unsigned char max() { return 0xFF; }
};
// template <>
// class numeric_limits<short> {
// public:
// static short min() { return -0x8000; }
// static short max() { return 0x7FFF; }
// };
template <>
class numeric_limits<signed short> {
public:
static signed short min() { return -0x8000; }
static signed short max() { return 0x7FFF; }
};
template <>
class numeric_limits<unsigned short> {
public:
static unsigned short min() { return 0x0; }
static unsigned short max() { return 0xFFFF; }
};
// template <>
// class numeric_limits<int> {
// public:
// static int min() { return -0x80000000; }
// static int max() { return 0x7FFFFFFF; }
// };
template <>
class numeric_limits<signed int> {
public:
static signed int min() { return -0x80000000; }
static signed int max() { return 0x7FFFFFFF; }
};
template <>
class numeric_limits<unsigned int> {
public:
static unsigned int min() { return 0x0; }
static unsigned int max() { return 0xFFFFFFFF; }
};
// template <>
// class numeric_limits<long> {
// public:
// static long min() { return -0x80000000; }
// static long max() { return 0x7FFFFFFF; }
// };
template <>
class numeric_limits<signed long> {
public:
static signed long min() { return -0x80000000; }
static signed long max() { return 0x7FFFFFFF; }
};
template <>
class numeric_limits<unsigned long> {
public:
static unsigned long min() { return 0x0; }
static unsigned long max() { return 0xFFFFFFFF; }
};
// template <>
// class numeric_limits<long long> {
// public:
// static long long min() { return -0x8000000000000000; }
// static long long max() { return 0x7FFFFFFFFFFFFFFF; }
// };
template <>
class numeric_limits<signed long long> {
public:
static signed long long min() { return -0x8000000000000000; }
static signed long long max() { return 0x7FFFFFFFFFFFFFFF; }
};
template <>
class numeric_limits<unsigned long long> {
public:
static unsigned long long min() { return 0x0; }
static unsigned long long max() { return 0xFFFFFFFFFFFFFFFF; }
};
}
#endif
+51
View File
@@ -0,0 +1,51 @@
#ifndef _STD_MEMORY
#define _STD_MEMORY
#include <new>
#include <limits>
// from rb3 decomp
namespace std {
template <class T> class allocator {
public:
typedef T value_type;
typedef T *pointer;
typedef const T *const_pointer;
typedef T &reference;
typedef const T &const_reference;
typedef size_t size_type;
typedef ptrdiff_t difference_type;
template <class U> struct rebind {
typedef allocator<U> other;
};
allocator() {}
allocator(const allocator<T> &) {}
template <class U> allocator(const allocator<U> &) {}
~allocator() {}
size_type max_size() const throw() {
return std::numeric_limits<size_t>::max() / sizeof(T);
}
pointer allocate(size_type count, const void *hint = 0) {
return reinterpret_cast<pointer>(::operator new(count * sizeof(T), 1, 4));
}
void deallocate(pointer p, size_type n) {
::operator delete(p);
}
void construct(pointer p, const_reference val) {
new(p) T(val);
}
void destroy(pointer p) {
p->~T();
}
};
}; // namespace std
#endif // _STD_MEMORY
+3
View File
@@ -0,0 +1,3 @@
#pragma once
struct UnkMSLStruct1 {};
+27
View File
@@ -0,0 +1,27 @@
#ifndef _STD_NEW
#define _STD_NEW
#include <stddef.h>
// from rb3 decomp
void *operator new(size_t size);
void *operator new[](size_t size);
void operator delete(void *ptr);
void operator delete[](void *ptr);
inline void *operator new(size_t length, void *ptr) {
#pragma unused(length)
return ptr;
}
inline void *operator new[](size_t length, void *ptr) {
#pragma unused(length)
return ptr;
}
inline void operator delete(void *ptr, void *place) {}
inline void operator delete[](void *ptr, void *place) {}
#endif // _STD_NEW
+109
View File
@@ -0,0 +1,109 @@
#ifndef _STD_SHARED_PTR
#define _STD_SHARED_PTR
// from rb3 decomp
#include <cstddef>
#include <typeinfo>
#include "compressed_pair.hpp"
#include "default_delete.hpp"
// clang-format off
namespace std {
namespace tr1 {
namespace detail {
class shared_ptr_deleter_common {
public:
virtual ~shared_ptr_deleter_common() {}
// Return type is most definitely not correct
virtual const void *get_deleter(const std::type_info &info) const = 0;
protected:
virtual void dispose() = 0;
public:
void release();
int m_RefCount;
int m_WeakCount;
};
template <typename T, typename Deleter = std::detail::default_delete<T> >
class shared_ptr_deleter : public shared_ptr_deleter_common {
public:
shared_ptr_deleter(T *ptr) :
m_Ptr(ptr) {}
~shared_ptr_deleter() {}
const void *get_deleter(const std::type_info &info) const {
if (info == typeid(Deleter)) {
return &m_Ptr.second();
}
return nullptr;
}
protected:
void dispose() {
m_Ptr.second()(m_Ptr.first());
}
private:
Metrowerks::compressed_pair<T *, Deleter> m_Ptr;
};
template <typename T> class shared_ptr_base {
protected:
void __set(T *ptr, tr1::detail::shared_ptr_deleter_common *deleter) {
m_Ptr = ptr;
m_Deleter = deleter;
}
public:
~shared_ptr_base() throw() {
if (m_Deleter) {
m_Deleter->release();
}
}
T *get() const {
return m_Ptr;
}
protected:
T *m_Ptr;
tr1::detail::shared_ptr_deleter_common *m_Deleter;
};
} // namespace detail
} // namespace tr1
namespace detail {
template <typename T> class shared_ptr : public tr1::detail::shared_ptr_base<T> {
public:
shared_ptr();
explicit shared_ptr(T *ptr) {
__set(ptr, new tr1::detail::shared_ptr_deleter<T>(ptr));
}
};
template <typename T> class shared_ptr<T[]> : public tr1::detail::shared_ptr_base<T> {
public:
shared_ptr();
explicit shared_ptr(T ptr[]) {
this->__set(ptr, new tr1::detail::shared_ptr_deleter<T, std::detail::default_delete<T[]> >(ptr));
}
};
} // namespace detail
} // namespace std
// clang-format on
#endif
+83
View File
@@ -0,0 +1,83 @@
#ifndef _STD_STDEXCEPT
#define _STD_STDEXCEPT
// from rb3 decomp
#include "shared_ptr.hpp"
#include <cstring>
#include <exception>
#include <new>
namespace std {
class logic_error : public exception {
public:
explicit logic_error(const char *what_arg) :
m_What(new char[strlen(what_arg) + 1]) {}
virtual const char *what() const {
return (char *)m_What.get();
}
private:
detail::shared_ptr<char[]> m_What;
};
class runtime_error : public exception {
public:
explicit runtime_error(const char *what_arg) :
m_What(new char[strlen(what_arg) + 1]) {}
virtual const char *what() const {
return m_What.get();
}
private:
detail::shared_ptr<char[]> m_What;
};
class domain_error : public logic_error {
public:
explicit domain_error(const char *what_arg) :
logic_error(what_arg) {}
};
class invalid_argument : public logic_error {
public:
explicit invalid_argument(const char *what_arg) :
logic_error(what_arg) {}
};
class length_error : public logic_error {
public:
explicit length_error(const char *what_arg) :
logic_error(what_arg) {}
};
class out_of_range : public logic_error {
public:
explicit out_of_range(const char *what_arg) :
logic_error(what_arg) {}
};
class range_error : public runtime_error {
public:
explicit range_error(const char *what_arg) :
runtime_error(what_arg) {}
};
class overflow_error : public runtime_error {
public:
explicit overflow_error(const char *what_arg) :
runtime_error(what_arg) {}
};
class underflow_error : public runtime_error {
public:
explicit underflow_error(const char *what_arg) :
runtime_error(what_arg) {}
};
} // namespace std
#endif
+35
View File
@@ -0,0 +1,35 @@
#ifndef _STD_TYPE_TRAITS
#define _STD_TYPE_TRAITS
// from rb3 decomp
//! TODO: these files aren't supposed to be organised like this according to rb3/key decomps
// Anachronistic backport of a large amount of the template metaprogramming library.
// Most implementation details are copied straight from cppreference,
// with others being copied from Boost, and a few using MSL intrinsics.
#include "type_traits/category.hpp"
#include "type_traits/integral_constant.hpp"
#include "type_traits/manip.hpp"
#include "type_traits/manip_2.hpp"
#include "type_traits/operation.hpp"
#include "type_traits/property.hpp"
#include "type_traits/relationship.hpp"
#include "type_traits/utility.hpp"
#include "type_traits/call_traits.hpp"
#include "type_traits/intrinsics.hpp"
namespace Metrowerks {
template <int I> struct int2type {
enum {
val = I
};
// static const int value = I;
// int value; // assumed
};
} // namespace Metrowerks
#endif
@@ -0,0 +1,122 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
// from rb3 decomp
template <typename T> struct is_function : public false_type {};
template <typename Ret> struct is_function<Ret (*)()> : public true_type {};
template <typename Ret> struct is_function<Ret (*)(...)> : public true_type {};
template <typename Ret, typename T1> struct is_function<Ret (*)(T1)> : public true_type {};
template <typename Ret, typename T1> struct is_function<Ret (*)(T1, ...)> : public true_type {};
template <typename Ret, typename T1, typename T2> struct is_function<Ret (*)(T1, T2)> : public true_type {};
template <typename Ret, typename T1, typename T2> struct is_function<Ret (*)(T1, T2, ...)> : public true_type {};
template <typename Ret, typename T1, typename T2, typename T3> struct is_function<Ret (*)(T1, T2, T3)> : public true_type {};
template <typename Ret, typename T1, typename T2, typename T3>
struct is_function<Ret (*)(T1, T2, T3, ...)> : public true_type {};
template <typename Ret, typename T1, typename T2, typename T3, typename T4>
struct is_function<Ret (*)(T1, T2, T3, T4)> : public true_type {};
template <typename Ret, typename T1, typename T2, typename T3, typename T4>
struct is_function<Ret (*)(T1, T2, T3, T4, ...)> : public true_type {};
template <typename Ret, typename T1, typename T2, typename T3, typename T4, typename T5>
struct is_function<Ret (*)(T1, T2, T3, T4, T5)> : public true_type {};
template <typename Ret, typename T1, typename T2, typename T3, typename T4, typename T5>
struct is_function<Ret (*)(T1, T2, T3, T4, T5, ...)> : public true_type {};
template <typename Ret, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
struct is_function<Ret (*)(T1, T2, T3, T4, T5, T6)> : public true_type {};
template <typename Ret, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
struct is_function<Ret (*)(T1, T2, T3, T4, T5, T6, ...)> : public true_type {};
template <typename Ret, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
struct is_function<Ret (*)(T1, T2, T3, T4, T5, T6, T7)> : public true_type {};
template <typename Ret, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
struct is_function<Ret (*)(T1, T2, T3, T4, T5, T6, T7, ...)> : public true_type {};
template <typename Ret, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
struct is_function<Ret (*)(T1, T2, T3, T4, T5, T6, T7, T8)> : public true_type {};
template <typename Ret, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
struct is_function<Ret (*)(T1, T2, T3, T4, T5, T6, T7, T8, ...)> : public true_type {};
template <typename Ret, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8,
typename T9>
struct is_function<Ret (*)(T1, T2, T3, T4, T5, T6, T7, T8, T9)> : public true_type {};
template <typename Ret, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8,
typename T9>
struct is_function<Ret (*)(T1, T2, T3, T4, T5, T6, T7, T8, T9, ...)> : public true_type {};
template <typename Ret, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8,
typename T9, typename T10>
struct is_function<Ret (*)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> : public true_type {};
template <typename Ret, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8,
typename T9, typename T10>
struct is_function<Ret (*)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, ...)> : public true_type {};
template <typename Ret, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8,
typename T9, typename T10, typename T11>
struct is_function<Ret (*)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> : public true_type {};
template <typename Ret, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8,
typename T9, typename T10, typename T11>
struct is_function<Ret (*)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, ...)> : public true_type {};
template <typename Ret, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8,
typename T9, typename T10, typename T11, typename T12>
struct is_function<Ret (*)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)> : public true_type {};
template <typename Ret, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8,
typename T9, typename T10, typename T11, typename T12>
struct is_function<Ret (*)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, ...)> : public true_type {};
template <typename Ret, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8,
typename T9, typename T10, typename T11, typename T12, typename T13>
struct is_function<Ret (*)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)> : public true_type {};
template <typename Ret, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8,
typename T9, typename T10, typename T11, typename T12, typename T13>
struct is_function<Ret (*)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, ...)> : public true_type {};
template <typename Ret, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8,
typename T9, typename T10, typename T11, typename T12, typename T13, typename T14>
struct is_function<Ret (*)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)> : public true_type {};
template <typename Ret, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8,
typename T9, typename T10, typename T11, typename T12, typename T13, typename T14>
struct is_function<Ret (*)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, ...)> : public true_type {};
template <typename Ret, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8,
typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15>
struct is_function<Ret (*)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)> : public true_type {};
template <typename Ret, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8,
typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15>
struct is_function<Ret (*)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, ...)> : public true_type {};
template <typename Ret, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8,
typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16>
struct is_function<Ret (*)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16)> : public true_type {};
template <typename Ret, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8,
typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16>
struct is_function<Ret (*)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, ...)> : public true_type {};
@@ -0,0 +1,49 @@
#ifndef _METROWERKS_TYPE_TRAITS_CALL_TRAITS
#define _METROWERKS_TYPE_TRAITS_CALL_TRAITS
// from rb3 decomp
namespace Metrowerks {
namespace details {
// probably doesn't cover all useful cases (e.g. long long),
// but this will do for our purposes
template <typename T, bool Small = sizeof(T) <= sizeof(void *)> struct call_traits_imp {
typedef const T param_type;
};
template <typename T> struct call_traits_imp<T, false> {
typedef const T &param_type;
};
template <typename T, bool Small> struct call_traits_imp<T *, Small> {
typedef T *param_type;
};
template <typename T, bool Small> struct call_traits_imp<const T *, Small> {
typedef const T *param_type;
};
template <typename T, bool Small> struct call_traits_imp<T &, Small> {
typedef T &param_type;
};
template <typename T, bool Small> struct call_traits_imp<const T &, Small> {
typedef const T &param_type;
};
} // namespace details
// name known; boost
template <typename T> struct call_traits {
typedef T value_type;
typedef T &reference;
typedef const T &const_reference;
typedef typename details::call_traits_imp<T>::param_type param_type;
};
} // namespace Metrowerks
#endif
+123
View File
@@ -0,0 +1,123 @@
#ifndef _MSL_TYPE_TRAITS_CATEGORY
#define _MSL_TYPE_TRAITS_CATEGORY
// from rb3 decomp
#include <cstddef>
#include "type_traits/call_traits.hpp"
#include "type_traits/intrinsics.hpp"
#include "type_traits/integral_constant.hpp"
#include "type_traits/manip.hpp"
#include "type_traits/operation.hpp"
#include "type_traits/relationship.hpp"
// clang-format off: conciseness
namespace std {
template <typename T>
struct is_void : public is_same<typename remove_cv<T>::type, void> {};
template <typename T>
struct is_integral : public bool_constant<Metrowerks::is_integral<T>::value> {};
template <typename T>
struct is_floating_point : public bool_constant<Metrowerks::is_floating_point<T>::value> {};
template <typename T> struct is_array : public false_type {};
template <typename T> struct is_array<T[]> : public true_type {};
template <typename T, std::size_t N> struct is_array<T[N]> : public true_type {};
template <typename T>
struct is_enum : public bool_constant<Metrowerks::is_enum<T>::value> {};
template <typename T>
struct is_union : public bool_constant<Metrowerks::is_union<T>::value> {};
template <typename T>
struct is_class : public bool_constant<Metrowerks::is_class<T>::value> {};
// C++11: needs variadic template args to implement properly
// As a stopgap, variants for up to 16 parameters are generated
#include "_category_function.hpp"
template <typename T> struct is_pointer : public false_type {};
template <typename T> struct is_pointer<T*> : public true_type {};
template <typename T> struct is_pointer<T* const> : public true_type {};
template <typename T> struct is_pointer<T* volatile> : public true_type {};
template <typename T> struct is_pointer<T* const volatile> : public true_type {};
template <typename T> struct is_lvalue_reference : public false_type {};
template <typename T> struct is_lvalue_reference<T&> : public true_type {};
template <typename T> struct is_rvalue_reference : public false_type {};
// template <typename T> struct is_rvalue_reference<T&&> : public true_type {}; // C++11
namespace detail {
template <typename T>
struct is_member_pointer : public false_type {};
template <typename T, typename U>
struct is_member_pointer<T U::*> : public true_type {};
}
template <typename T>
struct is_member_pointer
: public detail::is_member_pointer<typename remove_cv<T>::type> {};
template <typename T>
struct is_member_object_pointer : public bool_constant<
is_member_pointer<T>::value &&
!is_function<T>::value
> {};
template <typename T>
struct is_member_function_pointer : public bool_constant<
is_member_pointer<T>::value &&
is_function<T>::value
> {};
template <typename T>
struct is_arithmetic : public bool_constant<
is_integral<T>::value ||
is_floating_point<T>::value
> {};
template <typename T>
struct is_fundamental : public bool_constant<
is_arithmetic<T>::value ||
is_void<T>::value
> {};
template <typename T>
struct is_scalar : public bool_constant<
is_arithmetic<T>::value ||
is_enum<T>::value ||
is_pointer<T>::value ||
is_member_pointer<T>::value
> {};
template <typename T>
struct is_object : public bool_constant<
is_scalar<T>::value ||
is_array<T>::value ||
is_union<T>::value ||
is_class<T>::value
> {};
template <typename T>
struct is_compound : public negation<is_fundamental<T> > {};
template <typename T>
struct is_reference : public bool_constant<
is_lvalue_reference<T>::value ||
is_rvalue_reference<T>::value
> {};
}
// clang-format on
#endif
@@ -0,0 +1,29 @@
#ifndef _MSL_TYPE_TRAITS_INTEGRAL_CONSTANT
#define _MSL_TYPE_TRAITS_INTEGRAL_CONSTANT
// from rb3 decomp
namespace std {
template <typename T, T V> struct integral_constant {
static const T value = V;
typedef T value_type;
typedef integral_constant type;
operator const value_type() const throw() {
return value;
}
const value_type operator()() const throw() {
return value;
}
};
typedef integral_constant<bool, true> true_type;
typedef integral_constant<bool, false> false_type;
template <bool B> struct bool_constant : public integral_constant<bool, B> {};
} // namespace std
#endif
+258
View File
@@ -0,0 +1,258 @@
#ifndef _METROWERKS_TYPE_TRAITS_INTRINSICS
#define _METROWERKS_TYPE_TRAITS_INTRINSICS
// from rb3 decomp
#include <cstddef>
// Builtins reference: https://decomp.me/scratch/k4ZpJ
namespace Metrowerks {
namespace detail {
#ifdef DECOMP_IDE_FLAG
#define __builtin_ntype(T) (detail::ntype) 0
#define __builtin_align(T) 0
#define __builtin_is_pod(T) 0
#define __builtin_is_polymorphic(T) 0
#define __builtin_is_abstract(T) 0
#define __builtin_trivial_members(T) 0
#define __builtin_trivial_members(T) 0
#define __builtin_trivial_members(T) 0
#define __builtin_trivial_members(T) 0
#define __builtin_trivial_members(T) 0
#define __builtin_has_nothrow_default_constructor(T) 0
#define __builtin_has_nothrow_copy(T) 0
#define __builtin_has_nothrow_assign(T) 0
#define __builtin_has_nothrow_destructor(T) 0
#define __builtin_has_virtual_destructor(T) 0
typedef double short_double;
typedef double __vec2x32float__;
#else
typedef short double short_double;
#endif
enum trivial_member {
trivial_dtor = 0x01,
trivial_copy_assign = 0x02,
trivial_copy_ctor = 0x04,
trivial_default_ctor = 0x08,
};
enum ntype {
ntype_void = 0x00,
ntype_bool = 0x01,
ntype_char = 0x02,
ntype_signed_char = 0x03,
ntype_unsigned_char = 0x04,
ntype_wchar_t = 0x05,
ntype_signed_short = 0x06,
ntype_unsigned_short = 0x07,
ntype_signed_int = 0x08,
ntype_unsigned_int = 0x09,
ntype_signed_long = 0x0A,
ntype_unsigned_long = 0x0B, // assumed, the actual result is the same as
// ntype_signed_long for some reason
ntype_signed_long_long = 0x0C,
ntype_unsigned_long_long = 0x0D,
ntype_float = 0x0E,
ntype_short_double = 0x0F,
ntype_double = 0x10,
ntype_long_double = 0x11,
ntype_vec2x32float = 0x22,
ntype_type_mask = 0xFF,
ntype_flag_integral = 0x0100,
ntype_flag_floating = 0x0200,
ntype_flag_enum = 0x0400,
ntype_pointer = 0x0800,
ntype_array = 0x1000,
ntype_class = 0x2000,
ntype_union = 0x2001,
ntype_pointer_to_member = 0x4000,
ntype_function = 0x8000,
ntype_flag_0x10000 = 0x10000,
};
// clang-format off: conciseness
template <ntype N>
struct ntype_to_integral_helper;
template <> struct ntype_to_integral_helper<ntype_void> { typedef void type; };
template <> struct ntype_to_integral_helper<ntype_bool> { typedef bool type; };
template <> struct ntype_to_integral_helper<ntype_char> { typedef char type; };
template <> struct ntype_to_integral_helper<ntype_signed_char> { typedef signed char type; };
template <> struct ntype_to_integral_helper<ntype_unsigned_char> { typedef unsigned char type; };
template <> struct ntype_to_integral_helper<ntype_wchar_t> { typedef wchar_t type; };
template <> struct ntype_to_integral_helper<ntype_signed_short> { typedef signed short type; };
template <> struct ntype_to_integral_helper<ntype_unsigned_short> { typedef unsigned short type; };
template <> struct ntype_to_integral_helper<ntype_signed_int> { typedef signed int type; };
template <> struct ntype_to_integral_helper<ntype_unsigned_int> { typedef unsigned int type; };
template <> struct ntype_to_integral_helper<ntype_signed_long> { typedef signed long type; };
template <> struct ntype_to_integral_helper<ntype_unsigned_long> { typedef unsigned long type; };
template <> struct ntype_to_integral_helper<ntype_signed_long_long> { typedef signed long long type; };
template <> struct ntype_to_integral_helper<ntype_unsigned_long_long> { typedef unsigned long long type; };
template <ntype N>
struct ntype_to_integral : public ntype_to_integral_helper<ntype(N & ntype_type_mask)> {};
template <ntype N>
struct ntype_to_floating_helper;
template <> struct ntype_to_floating_helper<ntype_float> { typedef float type; };
template <> struct ntype_to_floating_helper<ntype_short_double> { typedef short_double type; };
template <> struct ntype_to_floating_helper<ntype_double> { typedef double type; };
template <> struct ntype_to_floating_helper<ntype_long_double> { typedef long double type; };
// template <> struct ntype_to_floating_helper<ntype_vec2x32float> { typedef __vec2x32float__ type; };
template <ntype N>
struct ntype_to_floating : public ntype_to_floating_helper<ntype(N & ntype_type_mask)> {};
template <ntype N, bool integer, bool floating>
struct ntype_to_type_helper;
template <ntype N>
struct ntype_to_type_helper<N, true, false> : public ntype_to_integral<N> {};
template <ntype N>
struct ntype_to_type_helper<N, false, true> : public ntype_to_floating<N> {};
template <ntype N>
struct ntype_to_type : public ntype_to_type_helper<
ntype(N & ntype_type_mask),
bool(N & ntype_flag_integral),
bool(N & ntype_flag_floating)
> {};
// __builtin_ntype doesn't respect ref types correctly
template <typename T, ntype NType>
struct ntype_ref_helper {
static const bool value = __builtin_ntype(T) == NType;
};
template <typename T, ntype NType>
struct ntype_ref_helper<T&, NType> {
static const bool value = false;
};
template <typename T, ntype Flag>
struct ntype_ref_helper_flag {
static const bool value = (__builtin_ntype(T) & Flag) == Flag;
};
template <typename T, ntype Flag>
struct ntype_ref_helper_flag<T&, Flag> {
static const bool value = false;
};
// clang-format on
} // namespace detail
template <class T> struct alignment_of {
static const std::size_t value = __builtin_align(T);
};
template <typename T> struct is_integral {
static const bool value = detail::ntype_ref_helper_flag<T, detail::ntype_flag_integral>::value;
};
template <typename T> struct is_floating_point {
static const bool value = detail::ntype_ref_helper_flag<T, detail::ntype_flag_floating>::value;
};
template <typename T> struct is_enum {
static const bool value = detail::ntype_ref_helper_flag<T, detail::ntype_flag_enum>::value;
};
template <typename T> struct is_class {
static const bool value = detail::ntype_ref_helper<T, detail::ntype_class>::value;
};
// name known; boost
template <typename T> struct is_union {
static const bool value = detail::ntype_ref_helper<T, detail::ntype_union>::value;
};
// name known; boost/STLport
template <typename T> struct is_POD {
static const bool value = __builtin_is_pod(T);
};
template <typename T> struct is_polymorphic {
static const bool value = __builtin_is_polymorphic(T);
};
template <typename T> struct is_abstract {
static const bool value = __builtin_is_abstract(T);
};
template <typename T> struct is_trivial {
static const bool value = __builtin_trivial_members(T) == (detail::trivial_dtor | detail::trivial_copy_assign |
detail::trivial_copy_ctor | detail::trivial_default_ctor);
};
// name known; boost/STLport
template <typename T> struct has_trivial_default_ctor {
static const bool value = __builtin_trivial_members(T) & detail::trivial_default_ctor;
};
// name known; boost/STLport
template <typename T> struct has_trivial_copy_ctor {
static const bool value = __builtin_trivial_members(T) & detail::trivial_copy_ctor;
};
// name known; boost/STLport
template <typename T> struct has_trivial_assignment {
static const bool value = __builtin_trivial_members(T) & detail::trivial_copy_assign;
};
// name known; boost/STLport
template <typename T> struct has_trivial_dtor {
static const bool value = __builtin_trivial_members(T) & detail::trivial_dtor;
};
template <typename T> struct has_nothrow_default_ctor {
static const bool value = __builtin_has_nothrow_default_constructor(T);
};
template <typename T> struct has_nothrow_copy_ctor {
static const bool value = __builtin_has_nothrow_copy(T);
};
template <typename T> struct has_nothrow_assignment {
static const bool value = __builtin_has_nothrow_assign(T);
};
template <typename T> struct has_nothrow_dtor {
static const bool value = __builtin_has_nothrow_destructor(T);
};
template <typename T> struct has_virtual_dtor {
static const bool value = __builtin_has_virtual_destructor(T);
};
template <typename T, bool IsEnum> struct underlying_type_helper {};
template <typename T> struct underlying_type_helper<T, true> : public detail::ntype_to_integral<__builtin_ntype(T)> {};
template <typename T> struct underlying_type : public underlying_type_helper<T, is_enum<T>::value> {};
} // namespace Metrowerks
#endif
+109
View File
@@ -0,0 +1,109 @@
#ifndef _MSL_TYPE_TRAITS_MANIP
#define _MSL_TYPE_TRAITS_MANIP
// from rb3 decomp
#include <cstddef>
#include "type_traits/call_traits.hpp"
#include "type_traits/intrinsics.hpp"
// clang-format off: conciseness
namespace std {
#pragma region "const-volatile modifications"
template <typename T> struct add_const { typedef const T type; };
template <typename T> struct add_volatile { typedef volatile T type; };
template <typename T> struct add_cv { typedef const volatile T type; };
template <typename T> struct remove_const { typedef T type; };
template <typename T> struct remove_const<const T> { typedef T type; };
template <typename T> struct remove_const<const volatile T> { typedef volatile T type; };
template <typename T> struct remove_volatile { typedef T type; };
template <typename T> struct remove_volatile<volatile T> { typedef T type; };
template <typename T> struct remove_volatile<const volatile T> { typedef const T type; };
template <typename T> struct remove_cv { typedef T type; };
template <typename T> struct remove_cv<const T> { typedef T type; };
template <typename T> struct remove_cv<volatile T> { typedef T type; };
template <typename T> struct remove_cv<const volatile T> { typedef T type; };
namespace detail {
template <typename From, typename To> struct copy_const { typedef To type; };
template <typename From, typename To> struct copy_const<const From, To> { typedef const To type; };
template <typename From, typename To> struct copy_volatile { typedef To type; };
template <typename From, typename To> struct copy_volatile<volatile From, To> { typedef volatile To type; };
template <typename From, typename To> struct copy_cv { typedef From type; };
template <typename From, typename To> struct copy_cv<const From, To> { typedef const To type; };
template <typename From, typename To> struct copy_cv<volatile From, To> { typedef volatile To type; };
template <typename From, typename To> struct copy_cv<const volatile From, To> { typedef const volatile To type; };
}
#pragma endregion
#pragma region "reference modifications"
template <typename T> struct add_lvalue_reference { typedef T& type; };
// template <typename T> struct add_rvalue_reference { typedef T&& type; }; // C++11
template <> struct add_lvalue_reference<void> { typedef void type; };
template <> struct add_lvalue_reference<const void> { typedef const void type; };
template <> struct add_lvalue_reference<volatile void> { typedef volatile void type; };
template <> struct add_lvalue_reference<const volatile void> { typedef const volatile void type; };
template <typename T> struct remove_reference { typedef T type; };
template <typename T> struct remove_reference<T&> { typedef T type; };
// template <typename T> struct remove_reference<T&&> { typedef T type; }; // C++11
#pragma endregion
#pragma region "pointer modifications"
template <typename T> struct add_pointer { typedef typename remove_reference<T>::type* type; };
template <typename T> struct remove_pointer { typedef T type; };
template <typename T> struct remove_pointer<T*> { typedef T type; };
template <typename T> struct remove_pointer<T* const> { typedef T type; };
template <typename T> struct remove_pointer<T* volatile> { typedef T type; };
template <typename T> struct remove_pointer<T* const volatile> { typedef T type; };
#pragma endregion
#pragma region "array modifications"
template <typename T> struct remove_extent { typedef T type; };
template <typename T> struct remove_extent<T[]> { typedef T type; };
template <typename T, std::size_t N> struct remove_extent<T[N]> { typedef T type; };
template <typename T> struct remove_all_extents { typedef T type; };
template <typename T> struct remove_all_extents<T[]> { typedef typename remove_all_extents<T>::type type; };
template <typename T, std::size_t N> struct remove_all_extents<T[N]> { typedef typename remove_all_extents<T>::type type; };
#pragma endregion
#pragma region "miscellaneous transformations"
// Not implementable, __attribute__ ((aligned (i))) doesn't work with template args
// template <std::size_t Len, std::size_t Align = 4> struct aligned_storage;
// template <std::size_t Len, typename... Types> struct aligned_union
template <typename T>
struct remove_cvref {
typedef typename remove_cv<typename remove_reference<T>::value>::value type;
};
// template <typename... T> struct common_type;
template <typename T>
struct underlying_type {
typedef typename Metrowerks::underlying_type<T>::value type;
};
// template <typename Fn, typename... ArgTypes> struct result_of;
#pragma endregion
}
// clang-format on
#endif
+99
View File
@@ -0,0 +1,99 @@
#ifndef _MSL_TYPE_TRAITS_MANIP_2
#define _MSL_TYPE_TRAITS_MANIP_2
// from rb3 decomp
// Separate for manip traits that aren't free-standing
#include <cstddef>
#include "type_traits/category.hpp"
#include "type_traits/manip.hpp"
// clang-format off: conciseness
namespace std {
#pragma region "sign modifications"
namespace detail {
template <typename T> struct make_signed_helper;
template <> struct make_signed_helper<signed char> { typedef signed char type; };
template <> struct make_signed_helper<signed short> { typedef signed short type; };
template <> struct make_signed_helper<signed int> { typedef signed int type; };
template <> struct make_signed_helper<signed long> { typedef signed long type; };
template <> struct make_signed_helper<signed long long> { typedef signed long long type; };
template <> struct make_signed_helper<unsigned char> { typedef signed char type; };
template <> struct make_signed_helper<unsigned short> { typedef signed short type; };
template <> struct make_signed_helper<unsigned int> { typedef signed int type; };
template <> struct make_signed_helper<unsigned long> { typedef signed long type; };
template <> struct make_signed_helper<unsigned long long> { typedef signed long long type; };
template <> struct make_signed_helper<char> { typedef signed char type; };
template <> struct make_signed_helper<wchar_t> { typedef signed short type; };
template <typename T, bool IsEnum = is_enum<T>::value>
struct make_signed : public make_signed_helper<T> {};
template <typename T>
struct make_signed<T, true> : public make_signed_helper<typename underlying_type<T>::type> {};
}
template <typename T>
struct make_signed : public detail::copy_cv<T, detail::make_signed<typename remove_cv<T>::type> > {};
namespace detail {
template <typename T> struct make_unsigned_helper;
template <> struct make_unsigned_helper<signed char> { typedef unsigned char type; };
template <> struct make_unsigned_helper<signed short> { typedef unsigned short type; };
template <> struct make_unsigned_helper<signed int> { typedef unsigned int type; };
template <> struct make_unsigned_helper<signed long> { typedef unsigned long type; };
template <> struct make_unsigned_helper<signed long long> { typedef unsigned long long type; };
template <> struct make_unsigned_helper<unsigned char> { typedef unsigned char type; };
template <> struct make_unsigned_helper<unsigned short> { typedef unsigned short type; };
template <> struct make_unsigned_helper<unsigned int> { typedef unsigned int type; };
template <> struct make_unsigned_helper<unsigned long> { typedef unsigned long type; };
template <> struct make_unsigned_helper<unsigned long long> { typedef unsigned long long type; };
template <> struct make_unsigned_helper<char> { typedef unsigned char type; };
template <> struct make_unsigned_helper<wchar_t> { typedef unsigned short type; };
template <typename T, bool IsEnum = is_enum<T>::value>
struct make_unsigned : public make_unsigned_helper<T> {};
template <typename T>
struct make_unsigned<T, true> : public make_unsigned_helper<typename underlying_type<T>::type> {};
}
template <typename T>
struct make_unsigned : public detail::copy_cv<T, detail::make_unsigned<typename remove_cv<T>::type> > {};
#pragma endregion
template<class T>
struct decay
{
private:
typedef typename remove_reference<T>::type U;
public:
typedef typename conditional<
is_array<U>::value,
typename add_pointer<typename remove_extent<U>::type>::type,
typename conditional<
is_function<U>::value,
typename add_pointer<U>::type,
typename remove_cv<U>::type
>::type
>::type type;
};
}
// clang-format on
#endif
@@ -0,0 +1,78 @@
#ifndef _MSL_TYPE_TRAITS_OPERATION
#define _MSL_TYPE_TRAITS_OPERATION
// from rb3 decomp
#include "integral_constant.hpp"
// clang-format off: conciseness
namespace std {
#pragma region "enable_if: logical if"
template <bool B, typename T = void>
struct enable_if {};
template <typename T>
struct enable_if<true, T> { typedef T type; };
#pragma endregion
#pragma region "conditional: logical if/else"
template <bool B, typename T, typename F> struct conditional;
template <typename T, typename F> struct conditional<true, T, F> { typedef T type; };
template <typename T, typename F> struct conditional<false, T, F> { typedef F type; };
#pragma endregion
#pragma region "conjunction: logical AND; all"
// template <typename... B> struct conjunction;
struct conjunction : public true_type {};
template <typename B1, typename B2>
struct conjunction2 : public conditional< !bool(B1::value), B1, B2 >::type {};
template <typename B1, typename B2, typename B3>
struct conjunction3 : public conditional< !bool(B1::value), B1, conjunction2<B2, B3> >::type {};
template <typename B1, typename B2, typename B3, typename B4>
struct conjunction4 : public conditional< !bool(B1::value), B1, conjunction3<B2, B3, B4> >::type {};
#pragma endregion
#pragma region "disjunction: logical OR; any"
// template <typename... B> struct disjunction;
struct disjunction : public false_type {};
template <typename B1, typename B2>
struct disjunction2 : public conditional< bool(B1::value), B1, B2>::type {};
template <typename B1, typename B2, typename B3>
struct disjunction3 : public conditional< bool(B1::value), B1, disjunction2<B2, B3> >::type {};
template <typename B1, typename B2, typename B3, typename B4>
struct disjunction4 : public conditional< bool(B1::value), B1, disjunction3<B2, B3, B4> >::type {};
#pragma endregion
#pragma region "negation: logical NOT"
template <typename B>
struct negation : public integral_constant<bool, !bool(B::value)> {};
// NAND; not all
struct negative_conjunction : public negation<conjunction> {};
template <typename B1, typename B2>
struct negative_conjunction2 : public negation<conjunction2<B1, B2> > {};
template <typename B1, typename B2, typename B3>
struct negative_conjunction3 : public negation<conjunction3<B1, B2, B3> > {};
template <typename B1, typename B2, typename B3, typename B4>
struct negative_conjunction4 : public negation<conjunction4<B1, B2, B3, B4> > {};
// NOR; not any
struct negative_disjunction : public negation<disjunction> {};
template <typename B1, typename B2>
struct negative_disjunction2 : public negation<disjunction2<B1, B2> > {};
template <typename B1, typename B2, typename B3>
struct negative_disjunction3 : public negation<disjunction3<B1, B2, B3> > {};
template <typename B1, typename B2, typename B3, typename B4>
struct negative_disjunction4 : public negation<disjunction4<B1, B2, B3, B4> > {};
#pragma endregion
}
// clang-format on
#endif
+150
View File
@@ -0,0 +1,150 @@
#ifndef _MSL_TYPE_TRAITS_PROPERTY
#define _MSL_TYPE_TRAITS_PROPERTY
// from rb3 decomp
#include "type_traits/call_traits.hpp"
#include "type_traits/intrinsics.hpp"
#include "type_traits/category.hpp"
#include "type_traits/integral_constant.hpp"
#include "type_traits/relationship.hpp"
// clang-format off: conciseness
namespace std {
#pragma region "type properties"
template <typename T> struct is_const : public false_type {};
template <typename T> struct is_const<const T> : public true_type {};
template <typename T> struct is_volatile : public false_type {};
template <typename T> struct is_volatile<volatile T> : public true_type {};
template <typename T>
struct is_trivial : public bool_constant<Metrowerks::is_trivial<T>::value> {};
template <typename T>
struct is_trivially_copyable : public bool_constant<
Metrowerks::has_trivial_copy_ctor<T>::value &&
Metrowerks::has_trivial_assignment<T>::value
> {};
template <typename T> struct is_standard_layout;
template <typename T>
struct is_pod : public bool_constant<Metrowerks::is_POD<T>::value> {};
template <typename T> struct is_literal_type;
namespace detail {
template <typename T>
struct is_empty_helper1 : public T { int i; };
struct is_empty_helper2 { int i; };
template <typename T, bool IsInheritable = is_class<T>::value>
struct is_empty : public bool_constant<sizeof(is_empty_helper1<T>) == sizeof(is_empty_helper2)> {};
template <typename T>
struct is_empty<T, false> : public false_type {};
}
template <typename T>
struct is_empty : public detail::is_empty<T> {};
template <typename T>
struct is_polymorphic : public bool_constant<Metrowerks::is_polymorphic<T>::value> {};
template <typename T>
struct is_abstract : public bool_constant<Metrowerks::is_abstract<T>::value> {};
namespace detail {
template <typename T, bool IsArithmetic = is_arithmetic<T>::value>
struct is_signed : public bool_constant<(T(0) > T(-1))> {};
template <typename T>
struct is_signed<T, false> : public false_type {};
}
template <typename T>
struct is_signed : public detail::is_signed<T> {};
template <typename T>
struct is_unsigned : public bool_constant<!is_signed<T>::value> {};
#pragma endregion
#pragma region "supported operations"
// template <typename T, typename... Args> struct is_constructible;
// template <typename T, typename... Args> struct is_trivially_constructible;
// template <typename T, typename... Args> struct is_nothrow_constructible;
template <typename T> struct is_default_constructible;
template <typename T> struct is_trivially_default_constructible
: public bool_constant<Metrowerks::has_trivial_default_ctor<T>::value> {};
template <typename T> struct is_nothrow_default_constructible
: public bool_constant<Metrowerks::has_nothrow_default_ctor<T>::value> {};
template <typename T> struct is_copy_constructible;
template <typename T> struct is_trivially_copy_constructible
: public bool_constant<Metrowerks::has_trivial_copy_ctor<T>::value> {};
template <typename T> struct is_nothrow_copy_constructible
: public bool_constant<Metrowerks::has_nothrow_copy_ctor<T>::value> {};
template <typename T> struct is_move_constructible : public false_type {}; // C++11
template <typename T> struct is_trivially_move_constructible : public false_type {}; // C++11
template <typename T> struct is_nothrow_move_constructible : public false_type {}; // C++11
template <typename T, typename U> struct is_assignable;
template <typename T, typename U> struct is_trivially_assignable;
template <typename T, typename U> struct is_nothrow_assignable;
template <typename T> struct is_copy_assignable;
template <typename T> struct is_trivially_copy_assignable
: public bool_constant<Metrowerks::has_trivial_assignment<T>::value> {};
template <typename T> struct is_nothrow_copy_assignable
: public bool_constant<Metrowerks::has_nothrow_assignment<T>::value> {};
template <typename T> struct is_move_assignable : public false_type {}; // C++11
template <typename T> struct is_trivially_move_assignable : public false_type {}; // C++11
template <typename T> struct is_nothrow_move_assignable : public false_type {}; // C++11
template <typename T> struct is_destructible;
template <typename T> struct is_trivially_destructible
: public bool_constant<Metrowerks::has_trivial_dtor<T>::value> {};
template <typename T> struct is_nothrow_destructible
: public bool_constant<Metrowerks::has_nothrow_dtor<T>::value> {};
template <typename T> struct has_virtual_destructor
: public bool_constant<Metrowerks::has_virtual_dtor<T>::value> {};
#pragma endregion
#pragma region "type property queries"
template <typename T>
struct alignment_of : public integral_constant<size_t, Metrowerks::alignment_of<T>::value> {};
template <typename T>
struct rank : public integral_constant<size_t, 0> {};
template <typename T>
struct rank<T[]> : public integral_constant<size_t, rank<T>::value + 1> {};
template <typename T, size_t N>
struct rank<T[N]> : public integral_constant<size_t, rank<T>::value + 1> {};
template <typename T, unsigned N = 0>
struct extent : public integral_constant<size_t, 0> {};
template <typename T>
struct extent<T[], 0> : public integral_constant<size_t, 0> {};
template <typename T, unsigned N>
struct extent<T[], N> : public extent<T, N - 1> {};
template <typename T, size_t I>
struct extent<T[I], 0> : public integral_constant<size_t, I> {};
template <typename T, size_t I, unsigned N>
struct extent<T[I], N> : public extent<T, N - 1> {};
#pragma endregion
}
// clang-format on
#endif
@@ -0,0 +1,54 @@
#ifndef _MSL_TYPE_TRAITS_RELATIONSHIP
#define _MSL_TYPE_TRAITS_RELATIONSHIP
// from rb3 decomp
#include "type_traits/integral_constant.hpp"
#include "type_traits/utility.hpp"
// clang-format off: conciseness
namespace std {
namespace detail {
template <typename From, typename To>
struct is_convertible {
static true_type test(To) { __MWERKS_NOEVAL; }
static false_type test(...) { __MWERKS_NOEVAL; }
#ifdef DECOMP_IDE_FLAG
typedef false_type type;
#else
typedef __decltype__(test(declval<From>())) type;
#endif
};
template <typename Base, typename Derived>
struct is_base_of {
static true_type test(const volatile Base*) { __MWERKS_NOEVAL; }
static false_type test(const volatile void*) { __MWERKS_NOEVAL; }
#ifdef DECOMP_IDE_FLAG
typedef false_type type;
#else
typedef __decltype__(test(declval<Derived*>())) type;
#endif
};
}
template <typename T, typename U>
struct is_same : public false_type {};
template <typename T>
struct is_same<T, T> : public true_type {};
template <typename From, typename To>
struct is_convertible : public detail::is_convertible<From, To> {};
template <typename Base, typename Derived>
struct is_base_of : public detail::is_base_of<Base, Derived> {};
}
// clang-format on
#endif
+24
View File
@@ -0,0 +1,24 @@
#ifndef _MSL_TYPE_TRAITS_UTILITY
#define _MSL_TYPE_TRAITS_UTILITY
// from rb3 decomp
// clang-format off: conciseness
#ifdef DECOMP_IDE_FLAG
#define __static_assert(cond, msg)
#endif
// #define __MWERKS_NOEVAL __static_assert(false, "Cannot be called from an evaluated context!")
#define __MWERKS_NOEVAL
namespace std {
template <typename T>
static T declval() { __MWERKS_NOEVAL; }
}
// clang-format on
#endif
+56
View File
@@ -0,0 +1,56 @@
#ifndef _STD_TYPEINFO
#define _STD_TYPEINFO
// from rb3 decomp
#include <cstddef>
#include <cstring>
#include <exception>
namespace std {
class type_info {
public:
/*virtual*/ ~type_info();
bool operator==(const type_info &rhs) const {
return strcmp((char *) this->m_Name, (char *) rhs.m_Name) == 0;
}
bool before(const type_info &rhs) const throw();
size_t hash_code() const throw() {
return m_HashCode;
}
const char *name() const throw() {
return m_Name;
}
private:
// These constructors are normally deleted, but our C++ version
// doesn't support that, so they're privated as a workaround
type_info();
type_info(const type_info &);
type_info &operator=(const type_info &);
const char *m_Name;
size_t m_HashCode;
};
class bad_cast : public exception {
public:
virtual ~bad_cast() {}
virtual const char *what() const {
return "bad_cast";
}
};
class bad_typeid : public exception {
public:
virtual ~bad_typeid() {}
virtual const char *what() const {
return "bad_typeid";
}
};
} // namespace std
#endif
+544 -5
View File
@@ -1,10 +1,549 @@
#pragma once
#ifndef _STD_VECTOR
#define _STD_VECTOR
#include <algorithm>
#include <cstddef>
#include <iterator>
#include <memory>
#include <stdexcept>
#include <compressed_pair.hpp>
#include <msl_unk.hpp>
#define TAG_UNK 0
// from key decomp
namespace std {
template <class T> class vector {
template <bool> class __vector_common {
public:
T *elements;
int size;
int capacity;
static void throw_length_error();
};
template <typename T, class Allocator> class __vec_deleter_helper;
template <typename T, class Allocator> class __vec_deleter {
public:
typedef typename Metrowerks::compressed_pair<size_t, Allocator>::second_param allocator_param;
typedef T value_type;
typedef Allocator allocator_type;
typedef size_t size_type;
typedef value_type &reference;
typedef const value_type &const_reference;
typedef T *iterator;
typedef const T *const_iterator;
typedef T *pointer;
typedef const pointer const_pointer;
__vec_deleter() :
data_(nullptr),
size_(0),
capacity_(0) {}
explicit __vec_deleter(allocator_param a) :
data_(nullptr),
size_(0),
capacity_(0, a) {}
~__vec_deleter();
reference operator[](size_t n) {
return data_[n];
}
const_reference operator[](size_t n) const {
return data_[n];
}
pointer data() {
return data_;
}
iterator begin() {
return data_;
}
iterator end() {
return data_ + size_;
}
reference front() {
return data_[0];
}
const_reference front() const {
return data_[0];
}
reference back() {
return data_[size_ - 1];
}
const_reference back() const {
return data_[size_ - 1];
}
void throw_length_error();
#if DONT_INLINE_STD
void clear() {
bool _b[4];
size_t size = size_;
_b[0] = false;
erase_at_end(size, _b[0]);
}
void erase_at_end(size_t, bool &);
#else
void erase_at_end(const size_t n) {
// erase_at_end(n, Metrowerks::int2type<true>());
size_ -= n;
}
void clear() {
erase_at_end(size());
}
#endif
// void erase_at_end(size_t n, Metrowerks::int2type<true>) DONT_INLINE_CLASS {
// T* e = end();
// size_ -= n;
// while (n != 0) {
// e--;
// e->~T();
// n--;
// }
// }
size_t &cap() {
return capacity_.first();
}
Allocator alloc() const {
return capacity_.second();
}
iterator erase(iterator __first, iterator __last, UnkMSLStruct1);
void sub_push_back(const_reference x, Metrowerks::int2type<false>);
void sub_push_back(const_reference x, Metrowerks::int2type<true>);
void sub_push_back(const_reference x) {
sub_push_back(x, Metrowerks::int2type<Metrowerks::has_trivial_copy_ctor<T>::value &&
Metrowerks::has_trivial_assignment<T>::value>());
}
void push_back(const_reference x, Metrowerks::int2type<false>) {
if (size_ < cap()) {
alloc().construct(end(), x);
size_++;
} else {
sub_push_back(x);
}
}
void push_back(const_reference x, Metrowerks::int2type<true>) {
if (size_ < cap()) {
size_++;
back() = x;
} else {
sub_push_back(x);
}
}
void push_back(const_reference x) {
push_back(x, Metrowerks::int2type<Metrowerks::has_trivial_copy_ctor<T>::value &&
Metrowerks::has_trivial_assignment<T>::value>());
}
void allocate(size_t min, size_t max) {
allocate(min, max, Metrowerks::int2type<true>());
}
void allocate(size_t min, size_t max, Metrowerks::int2type<true> t) {
allocate(max, t);
}
void allocate(size_t n) {
allocate(n, Metrowerks::int2type<true>());
}
void allocate(size_t n, Metrowerks::int2type<true> t);
void optimize_after_moved_from() {
optimize_after_moved_from(Metrowerks::int2type<true>());
}
void optimize_after_moved_from(Metrowerks::int2type<true>) {
size_ = 0;
}
bool expand_by(size_t n) {
size_t max_cap = 0;
return expand_by(n, max_cap, Metrowerks::int2type<true>());
}
bool expand_by(size_t n, size_t &max_cap, Metrowerks::int2type<true>) {
max_cap = grow_by(n);
return false;
}
size_t grow_by(size_t n);
void append_realloc(size_t n, const_reference x);
size_t max_size() const {
return alloc().max_size();
}
size_t capacity() const {
return capacity_.first();
}
volatile size_t size() {
return size_;
}
void resize(size_t n) {
size_ = n;
}
void move_construct_to_end(iterator begin, iterator end);
void reallocate_copy(size_t n) {
__vec_deleter<T, Allocator> tmp(alloc());
tmp.allocate(n);
tmp.move_construct_to_end(begin(), end());
optimize_after_moved_from();
swap(cap(), tmp.cap());
swap(data_, tmp.data_);
swap(size_, tmp.size_);
}
void reserve(size_t n) {
if (n > cap()) {
reallocate_copy(n);
}
}
bool empty() const {
return size_ == 0;
}
public:
T *data_;
size_t size_;
Metrowerks::compressed_pair<size_t, Allocator> capacity_;
};
template <typename T, typename Allocator> __vec_deleter<T, Allocator>::~__vec_deleter() {
UnkMSLStruct1 unk = UnkMSLStruct1(); // somehow needed
if (data_ != nullptr) {
clear();
alloc().deallocate(data_, cap());
}
}
template <typename T, typename Allocator> size_t __vec_deleter<T, Allocator>::grow_by(size_t n) {
size_t max = max_size();
size_t c = cap();
if (n > max - c) {
__vector_common<true>::throw_length_error();
}
size_t a = max / 3;
if (c < a) {
return c + std::max((c + 1) * 3 / 5, n);
} else if (c < a * 2) {
return c + std::max((c + 1) / 2, n);
}
return max;
}
template <typename T, typename Allocator>
void __vec_deleter<T, Allocator>::allocate(size_t n, Metrowerks::int2type<true> t) {
size_t max = max_size();
if (max < n) {
__vector_common<true>::throw_length_error();
}
data_ = alloc().allocate(n);
cap() = n;
}
// https://decomp.me/scratch/Yw4fn
template <typename T, typename Allocator> void __vec_deleter<T, Allocator>::append_realloc(size_t n, const_reference x) {
__vec_deleter_helper<T, Allocator> tmp(alloc());
size_t max = tmp.grow_by((size_ + n) - cap());
tmp.allocate(size_ + n, max);
tmp.start_ = size_;
tmp.construct_at_end(n, x);
tmp.move_construct_to_begin(begin(), end());
optimize_after_moved_from();
std::swap(cap(), tmp.cap());
std::swap(data_, tmp.data_);
std::swap(size_, tmp.size_);
}
template <typename T, typename Allocator>
void __vec_deleter<T, Allocator>::sub_push_back(const_reference x, Metrowerks::int2type<TAG_UNK>) {
if (expand_by(1)) {
size_++;
back() = x;
} else {
append_realloc(1, x);
}
}
template <typename T, typename Allocator>
void __vec_deleter<T, Allocator>::sub_push_back(const_reference x, Metrowerks::int2type<true>) {
if (expand_by(1)) {
size_++;
back() = x;
} else {
append_realloc(1, x);
}
}
template <typename T, typename Allocator>
__vec_deleter<T, Allocator>::iterator __vec_deleter<T, Allocator>::erase(iterator __first, iterator __last,
UnkMSLStruct1) {
// adapted from https://github.com/matta/sgi-stl/blob/635eaeef4533214ec140fb17411558ad441d2996/stl/stl_vector.h#L420
if (__first != __last) {
std::memmove(__first, __last, (end() - __last) * sizeof(value_type));
this->size_ -= __last - __first;
}
return __first;
}
template <typename T, class Allocator> class __vec_deleter_helper : public __vec_deleter<T, Allocator> {
protected:
typedef __vec_deleter<T, Allocator> _Base;
typedef _Base::allocator_param allocator_param;
typedef _Base::value_type value_type;
typedef _Base::allocator_type allocator_type;
typedef _Base::size_type size_type;
typedef _Base::reference reference;
typedef _Base::const_reference const_reference;
typedef _Base::pointer pointer;
typedef _Base::const_pointer const_pointer;
typedef _Base::iterator iterator;
typedef _Base::const_iterator const_iterator;
public:
__vec_deleter_helper(allocator_param a) :
_Base(a),
start_(0) {}
~__vec_deleter_helper();
void construct_at_end(size_t n, const_reference x) {
construct_at_end(n, x, Metrowerks::int2type<Metrowerks::has_trivial_copy_ctor<T>::value>());
}
void construct_at_end(size_t n, const_reference x, Metrowerks::int2type<TAG_UNK>) {
for (pointer p = _Base::data_ + _Base::size_; n; n--, p++, _Base::size_++) {
_Base::alloc().construct(p, x);
}
}
void construct_at_end(size_t n, const_reference x, Metrowerks::int2type<true>) {
std::fill_n(_Base::data_ + start_ + _Base::size_, n, x);
_Base::size_ += n;
}
void move_construct_to_begin(pointer first, pointer last) {
move_construct_to_begin(first, last, Metrowerks::int2type<Metrowerks::has_trivial_copy_ctor<T>::value ? 2 : 0>());
}
void move_construct_to_begin(pointer first, pointer last, Metrowerks::int2type<TAG_UNK>) {
for (pointer ptr = _Base::data_ + start_; first < last; start_--, _Base::size_++) {
_Base::alloc().construct(--ptr, std::move(*--last));
}
}
void move_construct_to_begin(pointer first, pointer last, Metrowerks::int2type<2>) {
size_t n = last - first;
start_ -= n;
memcpy(_Base::data_ + start_, first, n * sizeof(value_type));
memset(first, 0, n * sizeof(value_type));
_Base::size_ += n;
}
size_t start_;
};
template <typename T, class Allocator> __vec_deleter_helper<T, Allocator>::~__vec_deleter_helper() {
T *start = _Base::data_ + start_;
T *end = start + _Base::size_;
while (start < end) {
_Base::alloc().destroy(end);
end--;
}
_Base::size_ = 0;
}
template <typename T, class Allocator, bool I> class __vec_constructor : public __vec_deleter<T, Allocator> {
protected:
typedef __vec_deleter<T, Allocator> _Base;
typedef _Base::allocator_param allocator_param;
typedef _Base::value_type value_type;
typedef _Base::allocator_type allocator_type;
typedef _Base::size_type size_type;
typedef _Base::reference reference;
typedef _Base::const_reference const_reference;
typedef _Base::pointer pointer;
typedef _Base::const_pointer const_pointer;
typedef _Base::iterator iterator;
typedef _Base::const_iterator const_iterator;
public:
__vec_constructor() {}
// ~__vec_constructor();
};
template <typename T, class Allocator>
class __vec_constructor<T, Allocator, true> : public __vec_constructor<T, Allocator, false> {
protected:
typedef __vec_deleter<T, Allocator> _Deleter;
typedef __vec_constructor<T, Allocator, false> _Constructor;
typedef _Constructor::allocator_param allocator_param;
typedef _Constructor::value_type value_type;
typedef _Constructor::allocator_type allocator_type;
typedef _Constructor::size_type size_type;
typedef _Constructor::reference reference;
typedef _Constructor::const_reference const_reference;
typedef _Constructor::pointer pointer;
typedef _Constructor::const_pointer const_pointer;
typedef _Constructor::iterator iterator;
typedef _Constructor::const_iterator const_iterator;
__vec_constructor() {}
// ~__vec_constructor() { }
public:
void push_back(const_reference x) {
_Constructor::push_back(x);
}
reference operator[](size_t n) {
return _Deleter::operator[](n);
}
const_reference operator[](size_t n) const {
return _Deleter::operator[](n);
}
};
// clang-format off
template <typename T, typename Allocator = allocator<T> > class vector : public __vec_constructor<T, Allocator, true> {
// clang-format on
protected:
typedef __vec_constructor<T, Allocator, true> _Constructor;
typedef __vec_deleter<T, Allocator> _Deleter;
typedef _Constructor::allocator_param allocator_param;
typedef _Constructor::value_type value_type;
typedef _Constructor::allocator_type allocator_type;
typedef _Constructor::size_type size_type;
typedef _Constructor::reference reference;
typedef _Constructor::const_reference const_reference;
typedef _Constructor::pointer pointer;
typedef _Constructor::const_pointer const_pointer;
public:
typedef _Constructor::iterator iterator;
typedef _Constructor::const_iterator const_iterator;
vector() {}
~vector() { }
void push_back(const_reference x) {
_Constructor::push_back(x);
}
void clear() {
_Deleter::clear();
}
reference operator[](size_t n) {
return _Deleter::operator[](n);
}
const_reference operator[](size_t n) const {
return _Deleter::operator[](n);
}
iterator erase(iterator __first, iterator __last) {
return _Deleter::erase(__first, __last, UnkMSLStruct1());
}
};
} // namespace std
template <typename T> class CustomVector : public std::vector<T> {
public:
protected:
typedef std::vector<T> _Vector;
typedef _Vector::allocator_param allocator_param;
typedef _Vector::value_type value_type;
typedef _Vector::allocator_type allocator_type;
typedef _Vector::size_type size_type;
typedef _Vector::reference reference;
typedef _Vector::const_reference const_reference;
typedef _Vector::pointer pointer;
typedef _Vector::const_pointer const_pointer;
public:
typedef _Vector::iterator iterator;
typedef _Vector::const_iterator const_iterator;
~CustomVector();
iterator unk_action2(iterator begin, iterator end, UnkMSLStruct1) {
iterator it = begin;
while (it != end) {
T *ptr = (T *) *it;
if (ptr != NULL) {
if (*((u8 *) ptr + 4)) {
::operator delete(ptr);
}
*it = NULL;
}
it++;
begin = this->begin();
end = this->end();
}
return std::remove(begin, end, (T) NULL);
}
void unk_action1() {
this->erase(this->unk_action2(this->begin(), this->end(), UnkMSLStruct1()), this->end());
this->clear();
}
};
template <typename T> CustomVector<T>::~CustomVector() {
UnkMSLStruct1 unk = UnkMSLStruct1(); // somehow needed
if (_Vector::begin() != nullptr) {
_Vector::clear();
_Vector::alloc().deallocate(_Vector::begin(), _Vector::cap());
}
}
#endif
+1
View File
@@ -192,6 +192,7 @@ typedef struct BMDSectionModel {
/* 08 */ G3d_NameList modelList;
} BMDSectionModel;
void G3d_0200e6a0(const G3d_Model *pModel, s32 param2, s32 param3);
u32 *G3d_0200f05c(const G3d_NameList *pNameList, const char *pName);
static inline u32 *G3d_GetModelOffsetPtr(const BMDSectionModel *pSection, u8 modelIndex) {
+1 -1
View File
@@ -48,7 +48,7 @@ void ActorUnkEFIK::vfunc_20() {
for (int i = 0; i < length; i++) {
u8 j;
u8 k;
UnkStruct_027e0cd8_0c *pUVar5 = data_027e0cd8->mUnk_0C;
UnkStruct_027e0cd8_0C_Base *pUVar5 = data_027e0cd8->mUnk_0C;
u8 bStack_3c[2];
bStack_3c[0] = 0;
+5 -4
View File
@@ -15,6 +15,7 @@ extern "C" void func_01ffb9cc(VecFx32 *, VecFx32 *);
extern "C" u16 func_01ffbbe0(fx32 x, fx32 z);
extern "C" void func_01ffecdc(unk32 param1, Cylinder *param2);
extern "C" bool func_01ffd768(unk32, void *, void *, unk8);
extern "C" void func_01fff6d0(void *, VecFx32 *param1, s32 *param2, s32 *param3);
MapObject::MapObject() {
this->mUnk_10 = NULL;
@@ -57,9 +58,9 @@ void MapObject::func_ov000_0209d0bc(Vec2b *param1, MapObject *thisx) {
VecFx32 pos;
Vec2p out;
MapObjectManager *t = data_027e0cd8->mUnk_10;
pos = thisx->mPos;
t->func_01fff6d0(&pos, (fx32 *) &out.y, (fx32 *) &out.x);
UnkStruct_027e0cd8_10 *ptr = data_027e0cd8->mUnk_10;
pos = thisx->mPos;
func_01fff6d0(ptr, &pos, (fx32 *) &out.y, (fx32 *) &out.x);
Vec2p temp;
temp.y = out.x;
@@ -145,7 +146,7 @@ void MapObject::func_ov000_0209d2c4(unk32 param1, bool param2) {
}
void MapObject::func_ov000_0209d2f0(unk32 param1, unk32 param2, Vec2b *param3) {
UnkStruct_027e0cd8_0c *temp_r5 = data_027e0cd8->mUnk_0C;
UnkStruct_027e0cd8_0C_Base *temp_r5 = data_027e0cd8->mUnk_0C;
Vec2b sp0(0, 0);
sp0.x = this->mUnk_3A.x;
@@ -36,12 +36,12 @@ MapObjectMiniBlocks::MapObjectMiniBlocks() {
bool MapObjectMiniBlocks::vfunc_00(void) {
GET_PROFILE(MapObjectProfileMiniBlocks)
->func_ov000_0209ccd8(this->mUnk_20.mUnk_00[1], data_ov000_020af574[this->mUnk_20.mUnk_00[1]]);
UnkStruct_027e0cd8_0c *pUnkStruct_027e0cd8_0c = data_027e0cd8->mUnk_0C;
UnkStruct_027e0cd8_0C_Base *pUnkStruct_027e0cd8_0C = data_027e0cd8->mUnk_0C;
u8 uVar6;
if (this->mUnk_20.mUnk_00[1] != MiniBlocksVariant_BLKF) {
Vec2b vec(this->mUnk_3A.x, this->mUnk_3A.y);
this->mPos.y = pUnkStruct_027e0cd8_0c->func_01ffedf4(&vec);
this->mPos.y = pUnkStruct_027e0cd8_0C->func_01ffedf4(&vec);
}
VecFx32 vec;
+11 -11
View File
@@ -83,9 +83,9 @@ void ActorManager::func_ov001_020bafdc() {
}
// https://decomp.me/scratch/UywfM
void ActorManager::func_ov001_020bb018(UnkStruct_func_ov001_020bb018_param2 *param1) {
u16 unk_0A = param1->mUnk_0A;
u16 unk_08 = param1->mUnk_08;
void ActorManager::func_ov001_020bb018(ZOBHeader *pHeader) {
u16 unk_0A = pHeader->unk_0A;
u16 unk_08 = pHeader->unk_08;
this->mActorCount = 0;
this->mNextActorId = 0;
@@ -206,19 +206,19 @@ void ActorManager::func_ov001_020bb018(UnkStruct_func_ov001_020bb018_param2 *par
}
}
void ActorManager::func_ov001_020bb414(ActorManager *instance) {
void ActorManager::func_ov001_020bb414() {
func_ov001_020ba59c(&data_0204999c);
if (data_027e09a4->UnkCheck(data_027e09a4->mUnk_00.mSceneIndex)) {
instance->func_ov001_020bb844();
this->func_ov001_020bb844();
}
if (instance->mActorTable != 0) {
delete instance->mActorTable;
if (this->mActorTable != 0) {
delete this->mActorTable;
}
instance->mActorTable = NULL;
instance->mActorTableEnd = NULL;
this->mActorTable = NULL;
this->mActorTableEnd = NULL;
}
void ActorManager::func_ov001_020bb488() {
@@ -228,7 +228,7 @@ void ActorManager::func_ov001_020bb488() {
case 0x01:
case 0x03:
case 0x06:
if (data_027e0cd8->mUnk_0C->mUnk_128 & 0x800) {
if (data_027e0cd8->GetUnk0C()->mUnk_128 & 0x800) {
func_ov031_020ea100();
}
break;
@@ -363,7 +363,7 @@ bool ActorManager::func_ov001_020bb728(s32 param1) {
}
void ActorManager::func_ov001_020bb7b0(ZeldaObjectList *pObjList) {
for (s32 i = 0; i < pObjList->nEntries; i++) {
for (s32 i = 0; i < pObjList->header.nEntries; i++) {
u32 id = pObjList->aIdList[i];
ActorProfile *pActorProfile = data_ov000_020b539c_eur.GetProfileFromId(id);
@@ -0,0 +1,85 @@
#include "System/SysNew.hpp"
#include "Unknown/UnkStruct_0204a088.hpp"
#include "Unknown/UnkStruct_027e09b8.hpp"
#include "Unknown/UnkStruct_ov000_02067bc4.hpp"
#include <nitro/mi.h>
struct UnkStruct_ov000_02073080 {
/* 00 */ STRUCT_PAD(0x00, 0x08);
/* 08 */ CutsceneIndex csIndex;
/* 0C */ STRUCT_PAD(0x0C, 0x1C);
/* 1C */
};
extern "C" void func_ov000_02073080(void *);
UnkStruct_027e09b8 *UnkStruct_027e09b8::Create() {
return new(HeapIndex_1) UnkStruct_027e09b8();
}
UnkStruct_027e09b8::UnkStruct_027e09b8() {
MI_CpuFill32(0, this->mAdventureFlags, sizeof(this->mAdventureFlags));
this->mUnk_94 = 0;
this->mUnk_96 = false;
this->mUnk_97 = false;
MI_CpuFill32(0, this->mUnk_04, sizeof(this->mUnk_04));
this->mUnk_00 = new(HeapIndex_1) UnkStruct_027e09b8_00();
this->mUnk_04[0] = new(HeapIndex_1) UnkStruct_027e09b8_04();
this->mUnk_04[2] = new(HeapIndex_1) UnkStruct_027e09b8_0C();
if (data_0204a088 != NULL) {
this->mUnk_04[3] = new(HeapIndex_1) UnkStruct_027e09b8_10();
}
this->mUnk_98 = new(HeapIndex_1) UnkStruct_027e09b8_98();
}
UnkStruct_027e09b8::~UnkStruct_027e09b8() {
for (int i = 0; i < ARRAY_LEN(this->mUnk_04); i++) {
delete this->mUnk_04[i];
}
delete this->mUnk_00;
if (this->mUnk_98 != NULL) {
DELETE(this->mUnk_98);
}
}
void UnkStruct_027e09b8::ImportAdventureFlags(AdventureFlag *pAdventureFlags) {
MI_CpuCopy32(pAdventureFlags, this->mAdventureFlags, sizeof(this->mAdventureFlags));
}
void UnkStruct_027e09b8::func_ov001_020b76c0(CutsceneIndex csIndex) {
UnkStruct_ov000_02073080 auStack_30;
func_ov000_02073080(&auStack_30);
auStack_30.csIndex = csIndex;
this->mUnk_04[1] = new(HeapIndex_1) UnkStruct_027e09b8_08(&auStack_30);
this->func_ov000_02073610(&auStack_30, 0);
data_ov000_020b504c.func_ov001_020be998();
}
void UnkStruct_027e09b8::func_ov001_020b7700() {
if (this->mUnk_04[1] != NULL) {
data_ov000_020b504c.func_ov001_020be504();
DELETE(this->mUnk_04[1]);
}
}
void UnkStruct_027e09b8::func_ov001_020b7728() {
this->mUnk_00->func_ov000_02073b5c();
for (int i = 0; i < ARRAY_LEN(this->mUnk_04); i++) {
if (this->mUnk_04[i] != NULL) {
this->mUnk_04[i]->vfunc_0C();
}
}
this->mUnk_98->func_ov000_020a7b34();
}
DECL_INSTANCE(UnkStruct_027e09b8, data_027e09b8);
@@ -0,0 +1,492 @@
#include "Actor/ActorManager.hpp"
#include "Save/SaveManager.hpp"
#include "System/OverlayManager.hpp"
#include "System/SysNew.hpp"
#include "Unknown/Common.hpp"
#include "Unknown/UnkStruct_02049bac.hpp"
#include "Unknown/UnkStruct_027e09a0.hpp"
#include "Unknown/UnkStruct_027e09a4.hpp"
#include "Unknown/UnkStruct_027e09b8.hpp"
#include "Unknown/UnkStruct_027e09bc.hpp"
#include "Unknown/UnkStruct_027e09c0.hpp"
#include "Unknown/UnkStruct_027e0cd8.hpp"
#include "Unknown/UnkStruct_027e0ce0.hpp"
#include "Unknown/UnkStruct_027e0cec.hpp"
#include "Unknown/UnkStruct_ov000_02067bc4.hpp"
#include "Unknown/UnkStruct_ov000_020b50c0.hpp"
#include "Unknown/UnkStruct_ov024_020d8660.hpp"
#include "Unknown/UnkStruct_ov024_020d8694.hpp"
#include "Unknown/UnkStruct_ov026_02138d10.hpp"
#include "files.h"
#include "versions.h"
#include <dsprot.h>
#include <printf.h>
extern "C" void func_ov026_020e9208();
extern "C" void func_ov000_02081520(void *, void *, u8);
extern "C" void func_ov000_020814ec(void *, void *);
extern "C" void func_ov084_0216122c();
extern "C" void func_ov084_021612ac();
extern void *data_ov084_02164690;
struct UnkStruct7 {
/* 00 */ u16 unk_00;
/* 02 */ Vec2s unk_02;
/* 04 */
};
UnkStruct_027e0cd8 *UnkStruct_027e0cd8::Create() {
return new(HeapIndex_1) UnkStruct_027e0cd8();
}
UnkStruct_027e0cd8::UnkStruct_027e0cd8() :
mUnk_04(NULL),
mUnk_08(NULL),
mUnk_0C(NULL),
mUnk_10(NULL),
mUnk_16(true),
mUnk_17(true),
mUnk_30(-1),
mUnk_34(-1) {
UnkStruct_027e09bc *ptr = data_027e09bc;
UnkSystem8 *pList = GetLinkListRef(this->mUnk_18);
ptr->mUnk_48.Prepend(pList);
VecFx32_Init(0, 0, 0, &this->mUnk_24);
for (int i = 0; i < ARRAY_LEN(this->mUnk_38); i++) {
this->mUnk_38[i] = 0;
this->mUnk_48[i] = false;
}
}
UnkStruct_027e0cd8::~UnkStruct_027e0cd8() {
DELETE(this->mUnk_04);
DELETE(this->mUnk_08);
}
void UnkStruct_027e0cd8::func_ov001_020b7830(const UnkStruct_SceneChange1 *param1) {
CourseListEntry *pEntry;
UnkStruct_func_ov000_020702a8 *pUnk1;
pEntry = data_027e09a0->GetCourseEntry(param1->mSceneIndex);
pUnk1 = data_027e09a0->func_ov000_020702a8(param1->mSceneIndex);
wchar_t sp80[16];
sp80[0] = L'\0';
sp80[sizeof(sp80) / 2 - 1] = L'\0';
snprintf((char *) sp80, sizeof(sp80), "Map/%s/course.bin", pEntry->name);
UnkStruct2 sp70((char *) sp80, 0x01);
sp70.func_020154ec("MCS");
bool isCS = true;
if (param1->mIsCS != true) {
isCS = false;
}
UnkFileSystem3 sp60(isCS ? "MCS:objlist/npctype_1.zob" : "MCS:objlist/npctype.zob");
gpActorManager->func_ov001_020bb018((ZOBHeader *) sp60.vfunc_08(sizeof(ZOBHeader)));
UnkFileSystem3 sp50(isCS ? "MCS:objlist/motype_1.zob" : "MCS:objlist/motype.zob");
gpMapObjManager->func_ov001_020bacd8((ZOBHeader *) sp50.vfunc_08(sizeof(ZOBHeader)));
UnkStruct7 sp4;
Vec2s_Copy(&pUnk1->mUnk_10, &sp4.unk_02);
Vec2s_Copy(&sp4.unk_02, &this->mUnk_00);
this->mUnk_14 = pEntry->unk_10;
this->mUnk_04 = new(HeapIndex_1) UnkStruct_027e0cd8_04();
if (pEntry->unk_21 != -1) {
this->mUnk_08 = new(HeapIndex_1) UnkStruct_027e0cd8_04();
}
if (DSProt_DetectEmulator(NULL) == 0) {
this->mUnk_30 = 0x1C;
}
if (this->mUnk_14 == 0x02 || this->mUnk_14 == 0x04) {
this->mUnk_10 = new(HeapIndex_1) UnkStruct_027e0cd8_10();
func_ov026_020e9208();
} else if (data_027e09a4->mUnk_60 == 0 && data_ov024_020d8694 != NULL) {
if (data_027e09a4->CurrentSceneIndex() == SceneIndex_d_main) {
data_ov024_020d8694->func_ov024_020cb000(20);
} else {
data_ov024_020d8694->func_ov024_020cafb8(20);
}
}
this->func_ov001_020b8120(param1->mSceneIndex);
if (pEntry->unk_21 != -1) {
wchar_t sp30[16];
sp30[0] = L'\0';
sp30[sizeof(sp30) / 2 - 1] = L'\0';
snprintf((char *) sp30, sizeof(sp30), "Map/%s/course.bin", data_027e09a0->GetCourseEntry(pEntry->unk_21)->name);
UnkStruct2 sp20((const char *) sp30, 0x01);
sp20.func_020154ec("MCT");
this->func_ov001_020b7b38(pEntry, pUnk1);
} else {
this->func_ov001_020b7b38(pEntry, pUnk1);
}
UnkStruct_SceneChange1 sceneChange(param1);
if (sceneChange.mRoomIndex != 0xFF) {
func_ov000_02081520(&sp4, this->mUnk_04, sceneChange.mRoomIndex);
func_ov000_020814ec(this->mUnk_04, &sp4);
} else {
sceneChange.mRoomIndex = this->mUnk_04->mUnk_40[this->mUnk_04->mUnk_10][this->mUnk_04->mUnk_11];
}
this->func_ov001_020b7d64(&sceneChange);
this->func_ov001_020b7e68(&sceneChange, 0x01);
}
void UnkStruct_027e0cd8::func_ov001_020b7a7c() {
this->func_ov001_020b818c();
this->func_ov001_020b803c();
data_02049ba0.Unload(OverlaySlot_12);
data_02049ba0.Unload(OverlaySlot_16);
data_02049ba0.Unload(OverlaySlot_15);
data_02049ba0.Unload(OverlaySlot_14);
data_02049ba0.Unload(OverlaySlot_13);
this->func_ov001_020b7e50();
this->mUnk_30 = -1;
if (data_027e09a4->mUnk_60 == 0) {
this->func_ov000_02081ca0();
}
DELETE(this->mUnk_04);
DELETE(this->mUnk_08);
if (this->mUnk_10 != NULL) {
DELETE(this->mUnk_10);
}
gpMapObjManager->func_ov001_020bad80();
gpActorManager->func_ov001_020bb414();
}
void UnkStruct_027e0cd8::func_ov001_020b7b38(const CourseListEntry *pEntry, const UnkStruct_func_ov000_020702a8 *pUnk1) {
if (pEntry->saveCourseIndex < SaveCourseIndex_Max) {
SaveManager_00 *ptr = gSaveManager.mUnk_000;
this->mUnk_04->func_ov000_02081354(pEntry, pUnk1, &ptr->unk_030[pEntry->saveCourseIndex], false);
SET_FLAG(ptr->unk_004.unk_00, pEntry->saveCourseIndex);
} else {
SaveFile_00000_0000_Data_184 local_1c;
MI_CpuFill32(0, &local_1c, sizeof(local_1c));
this->mUnk_04->func_ov000_02081354(pEntry, pUnk1, &local_1c, false);
}
this->mUnk_34 = pEntry->unk_21;
if (this->mUnk_34 != SceneIndex_None) {
CourseListEntry *pOtherEntry = data_027e09a0->GetCourseEntry(this->mUnk_34);
UnkStruct_func_ov000_020702a8 *pOtherUnk1 = data_027e09a0->func_ov000_020702a8(this->mUnk_34);
if (pOtherEntry->saveCourseIndex < SaveCourseIndex_Max) {
this->mUnk_08->func_ov000_02081354(pOtherEntry, pOtherUnk1,
&gSaveManager.mUnk_000->unk_030[pOtherEntry->saveCourseIndex], true);
} else {
SaveFile_00000_0000_Data_184 local_1c;
MI_CpuFill32(0, &local_1c, sizeof(local_1c));
this->mUnk_08->func_ov000_02081354(pOtherEntry, pOtherUnk1, &local_1c, true);
}
}
}
void UnkStruct_027e0cd8::func_ov001_020b7c08(const UnkStruct_SceneChange1 *param1, const UnkStruct_WarpUnk1_A0 *param2) {
UnkStruct_SceneChange1 sceneChange(param1);
Vec2s sp4;
if (this->mUnk_30 == param1->mSceneIndex && DSProt_DetectNotFlashcart(NULL) != 0) {
data_ov084_02164690 = &sceneChange;
}
if (!this->func_ov000_02082124() &&
(param1->mSceneIndex < SceneIndex_tekiya00 || param1->mSceneIndex > SceneIndex_tekiya09)) {
#if IS_JP
VecFx32_Copy(&param2->mUnk_04, &this->mUnk_24);
#endif
if (param1->mSceneIndex == SceneIndex_f_water) {
switch (param1->mRoomIndex) {
case 1:
this->mUnk_24.x = 0x16000;
this->mUnk_24.z = 0xFFFF6000;
break;
case 2:
this->mUnk_24.x = 0xFFFE8000;
this->mUnk_24.z = 0x8000;
break;
case 3:
this->mUnk_24.x = 0xFFFFD000;
this->mUnk_24.z = 0x8800;
break;
case 4:
this->mUnk_24.x = 0x8000;
this->mUnk_24.z = 0xFFFFE800;
break;
default:
break;
}
} else {
#if IS_JP
if (param1->mSceneIndex == SceneIndex_f_snow2 && param1->mRoomIndex == 2) {
this->mUnk_24.x = 0xFFFFF000;
this->mUnk_24.z = 0xFFFF0000;
}
#else
VecFx32_Copy(&param2->mUnk_04, &this->mUnk_24);
#endif
}
}
this->func_ov001_020b803c();
this->func_ov001_020b7e50();
if (sceneChange.mRoomIndex != ROOM_INDEX_NONE) {
if (this->mUnk_30 == sceneChange.mSceneIndex && DSProt_DetectNotEmulator(func_ov084_0216122c) == 0) {
func_ov084_021612ac();
}
func_ov000_02081520(&sp4, this->mUnk_04, sceneChange.mRoomIndex);
func_ov000_020814ec(this->mUnk_04, &sp4);
} else {
sceneChange.mRoomIndex = this->mUnk_04->mUnk_40[this->mUnk_04->mUnk_10][this->mUnk_04->mUnk_11];
}
this->func_ov001_020b7d64(&sceneChange);
this->func_ov001_020b7e68(&sceneChange, 0x00);
if (data_027e09a4->mUnk_60 == 0 && data_ov024_020d8694 != NULL) {
if (data_027e09a4->CurrentSceneIndex() == SceneIndex_f_first && this->func_ov000_02081d5c() == 0) {
data_ov024_020d8694->func_ov024_020cafd8(20);
} else {
data_ov024_020d8694->func_ov024_020cb000(20);
}
}
}
void UnkStruct_027e0cd8::func_ov001_020b7d64(const UnkStruct_SceneChange1 *param1) {
UnkStruct_027e0cd8_04_0C *iVar7;
u32 temp_r1;
u16 uVar5;
u16 uVar6;
u16 uVar4;
u16 uVar3;
iVar7 = this->mUnk_04->mUnk_0C;
switch (data_027e09a0->GetCourseEntry(param1->mSceneIndex)->unk_10) {
case 0:
case 1:
case 3:
case 6:
this->mUnk_0C = new(HeapIndex_1) UnkStruct_027e0cd8_0C(this);
uVar3 = iVar7->mUnk_0C & 0x0F;
temp_r1 = iVar7->mUnk_0C;
uVar5 = (temp_r1 >> 4) & 0x0F;
uVar6 = (temp_r1 >> 8) & 0x0F;
uVar4 = (temp_r1 >> 12) & 0x0F;
if (uVar3 != 0) {
data_02049ba0.LoadIfNotLoaded(OverlaySlot_13, uVar3 - 1 + OverlayIndex_MapA1);
}
if (uVar5 != 0) {
data_02049ba0.LoadIfNotLoaded(OverlaySlot_14, uVar5 - 1 + OverlayIndex_MapB1);
}
if (uVar6 != 0) {
data_02049ba0.LoadIfNotLoaded(OverlaySlot_15, uVar6 - 1 + OverlayIndex_MapC1);
}
if (uVar4 != 0) {
data_02049ba0.LoadIfNotLoaded(OverlaySlot_16, uVar4 - 1 + OverlayIndex_MapD1);
}
break;
case 2:
case 4:
this->mUnk_0C = new(HeapIndex_1) UnkStruct_027e0cd8_0C_Derived2(this);
break;
case 5:
this->mUnk_0C = new(HeapIndex_1) UnkStruct_027e0cd8_0C_Derived3(this);
break;
default:
break;
}
}
void UnkStruct_027e0cd8::func_ov001_020b7e50() {
DELETE(this->mUnk_0C);
}
void UnkStruct_027e0cd8::func_ov001_020b7e68(const UnkStruct_SceneChange1 *param1, bool param2) {
if (this->mUnk_10 != NULL) {
this->mUnk_10->func_ov024_020d2520((UnkStruct_SceneChange1 *) param1);
}
data_ov000_020b504c.func_ov001_020be92c(this->mUnk_04->mUnk_0C);
this->mUnk_0C->func_ov001_020b85d0(param1);
this->mUnk_0C->vfunc_1C(param1, this->mUnk_04->mUnk_01, param2);
data_ov000_020b50c0.func_ov001_020bde4c(param1);
data_027e0ce0->func_ov001_020bc65c();
data_027e09bc->func_ov001_020babe8();
data_027e0960->func_ov000_0205a11c();
gpActorManager->func_ov001_020bb488();
gpMapObjManager->func_ov001_020bada0();
data_0204a110.func_ov001_020bd678();
if (data_027e09a4->mUnk_60 == 0) {
data_ov024_020d8660->func_ov024_020c4ba0();
}
unk32 unk_10 = data_027e09a0->GetCourseEntry(param1->mSceneIndex)->unk_10;
if (data_027e09a4->mUnk_60 == 1) {
for (int i = 0; i < 4; i++) {
UnkStruct_027e0ce0 *ptr = data_027e0ce0;
const UnkStruct_ov001_020c40f4 *arg = this->mUnk_0C->func_ov001_020b8a5c(i, 0x00);
ptr->func_ov001_020bc6d8(i, arg);
}
} else if (unk_10 == 2 || unk_10 == 4) {
UnkStruct_027e0ce0 *ptr = data_027e0ce0;
const UnkStruct_ov001_020c40f4 *arg = this->mUnk_0C->func_ov001_020b8a5c(param1->mSpawnIndex, 0x00);
ptr->func_ov001_020bc6e8(arg);
} else {
UnkStruct_027e0cd8_0C_Base *temp_pUnkC = this->mUnk_0C;
u32 temp_unk118 = temp_pUnkC->mUnk_118;
u8 temp_spawn = param1->mSpawnIndex;
UnkStruct_027e0ce0 *ptr = data_027e0ce0;
const UnkStruct_ov001_020c40f4 *spC = temp_pUnkC->func_ov001_020b8a5c(param1->mSpawnIndex, 0);
ptr->func_ov001_020bc6fc(spC, temp_pUnkC->func_ov001_020b8a5c(temp_spawn, 1), temp_pUnkC->mUnk_11C, temp_unk118);
}
data_027e09bc->func_ov000_020771c8();
unk32 iVar7 = data_027e09a0->GetCourseEntry(param1->mSceneIndex)->unk_10;
data_027e09c0->func_ov000_0207da40();
this->mUnk_0C->vfunc_08();
if (iVar7 == 2 || iVar7 == 4) {
data_ov026_02138d10->func_ov026_020dca14();
}
gpMapObjManager->func_ov001_020bac9c();
gpActorManager->func_ov001_020bafdc();
if (data_027e09a4->mUnk_60 == 0) {
SaveManager_00 *ptr = gSaveManager.mUnk_000;
u16 auStack_18[2];
data_027e09a0->func_ov000_02070310(param1->mSceneIndex, param1->mRoomIndex, &auStack_18);
if (auStack_18[1] < 0x100) {
SET_FLAG(ptr->unk_004.unk_0C, auStack_18[1]);
}
}
}
void UnkStruct_027e0cd8::func_ov001_020b803c() {
this->mUnk_0C->vfunc_20();
if (data_027e09a4->mUnk_60 == 0 && data_ov024_020d8660 != NULL) {
data_ov024_020d8660->func_ov024_020c4cc8();
}
data_0204a110.func_ov001_020bd68c();
gpMapObjManager->func_ov001_020badb4();
gpActorManager->func_ov001_020bb548();
data_027e0ce0->func_ov001_020bc69c();
data_027e09bc->func_ov001_020bac08();
data_027e0cec->func_ov001_020bf028();
data_027e0960->func_ov000_0205a120();
data_027e09b8->func_ov001_020b7728();
DELETE_ARRAY(gSaveManager.mUnk_244);
data_ov000_020b50c0.func_ov001_020bde5c();
data_ov000_020b504c.func_ov001_020be94c();
this->mUnk_0C->func_ov001_020b88ec();
if (this->mUnk_10 != NULL) {
this->mUnk_10->func_ov024_020d2564();
}
}
bool UnkStruct_027e0cd8::func_ov001_020b80fc(SceneIndex sceneIndex) {
int index;
switch (sceneIndex) {
case SceneIndex_t_area0:
index = 0;
break;
case SceneIndex_t_area1:
index = 1;
break;
default:
index = 2;
break;
}
if (index == 2) {
return 0;
}
return this->mUnk_48[index];
}
void UnkStruct_027e0cd8::func_ov001_020b8120(SceneIndex sceneIndex) {
int index;
switch (sceneIndex) {
case SceneIndex_t_area0:
index = 0;
break;
case SceneIndex_t_area1:
index = 1;
break;
default:
index = 2;
break;
}
if (index != 2) {
s64 value = data_02049bac.func_02014b00();
if (value > (this->mUnk_38[index] + 600) || value < this->mUnk_38[index]) {
this->mUnk_48[index] = ((u32) value / 300) & 1;
}
}
}
void UnkStruct_027e0cd8::func_ov001_020b818c() {
int index;
switch (data_027e09a4->CurrentSceneIndex()) {
case SceneIndex_t_area0:
index = 0;
break;
case SceneIndex_t_area1:
index = 1;
break;
default:
index = 2;
break;
}
if (index != 2) {
this->mUnk_38[index] = data_02049bac.func_02014b00();
}
}
DECL_INSTANCE(UnkStruct_027e0cd8, data_027e0cd8);
@@ -0,0 +1,488 @@
#include "Actor/ActorManager.hpp"
#include "Cutscene/Cutscene.hpp"
#include "Game/GameModeManager.hpp"
#include "MapObject/MapObjectManager.hpp"
#include "Physics/AABB.hpp"
#include "Unknown/UnkStruct_027e095c.hpp"
#include "Unknown/UnkStruct_027e09a0.hpp"
#include "Unknown/UnkStruct_027e09ac.hpp"
#include "Unknown/UnkStruct_027e09b0.hpp"
#include "Unknown/UnkStruct_027e09b8.hpp"
#include "Unknown/UnkStruct_027e09c0.hpp"
#include "Unknown/UnkStruct_027e0cd8.hpp"
#include <nns/g3d/g3d.h>
#include <printf.h>
#include <vector>
extern "C" BMDSectionModel *func_ov000_0205abcc(void *, void *, unk32, unk32, unk32);
extern "C" void func_ov089_02165c34(void *);
extern AABB data_027e0ca8;
extern AABB data_027e0cc0;
extern AABB data_027e0c90;
extern int data_ov089_02171540;
static UnkStruct_ov001_020c40f4 data_ov001_020c40f4[0x40];
struct UnkStruct_ov001_020c2a40 {
/* 00 */ unk32 unk_00;
/* 04 */ unk32 unk_04;
/* 08 */ unk16 unk_08;
/* 0A */ u8 unk_0A;
/* 0B */ u8 unk_0B;
/* 0C */ u8 unk_0C;
/* 0D */ u8 unk_0D;
/* 0E */ u8 unk_0E;
/* 0F */ u8 unk_0F;
/* 10 */ u8 unk_10;
/* 11 */ STRUCT_PAD(0x11, 0x14); // pad?
/* 14 */
UnkStruct_ov001_020c2a40(unk32 param1, unk32 param2, unk16 param3, unk8 param4, unk8 param5, unk8 param6, unk8 param7) {
this->unk_00 = param1;
this->unk_04 = param2;
this->unk_08 = param3;
this->unk_0A = param4;
this->unk_0B = param5;
this->unk_0C = param6;
this->unk_0D = param7;
this->unk_0E = 0x2B;
this->unk_0F = 0;
this->unk_10 = 0;
}
};
static const UnkStruct_ov001_020c2a40 data_ov001_020c2a40[] = {
UnkStruct_ov001_020c2a40(0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C),
UnkStruct_ov001_020c2a40(0x29, 0x00, 0x00, 0x0B, 0x01, 0x00, 0x3D),
UnkStruct_ov001_020c2a40(0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E),
UnkStruct_ov001_020c2a40(0x04, 0x00, 0x00, 0x00, 0xFA, 0x00, 0x3F),
};
// https://decomp.me/scratch/JcRNn
UnkStruct_027e0cd8_0C_Base::UnkStruct_027e0cd8_0C_Base(UnkStruct_027e0cd8 *param1) :
mUnk_004(NULL, 0x9B, 0x01, 0x01),
mSceneRender(NULL),
mUnk_070(NULL, 0x9B, 0x01, 0x00),
mUnk_084_00(0),
mUnk_084_01(0),
mUnk_098(0),
mUnk_09C(&param1->mUnk_00),
mUnk_0AC(false),
mUnk_0AD(false),
mUnk_0AE(false),
mUnk_0AF(false),
mUnk_0FC(0),
mIsCS(false),
mUnk_104(0),
mUnk_108(0),
mUnk_10C(0),
mUnk_110(0),
mUnk_114(0),
mUnk_118(0),
mUnk_11C(1),
mUnk_120(0),
mUnk_124(0),
mUnk_128(0),
mUnk_12A(true),
mUnk_12B(false),
mUnk_12C(false),
mUnk_12D(false),
mUnk_12E(false),
mUnk_130(0),
mUnk_134(0),
mUnk_138(0) {
Vec2s local_30;
VecFx32 sp18;
VecFx32 spC;
this->mUnk_0A0 = 0;
this->mUnk_0A4 = 0;
this->mUnk_0A8 = 0;
fx32 y = (this->mUnk_11C << 14);
fx32 z = ((u32) (u16) this->mUnk_09C.y >> 1) << 12;
fx32 x = ((u32) (u16) this->mUnk_09C.x >> 1) << 12;
data_027e0c90.min.x = -x;
data_027e0c90.min.y = -y;
data_027e0c90.min.z = -z;
data_027e0c90.max.x = x;
data_027e0c90.max.y = 0;
data_027e0c90.max.z = z;
spC = data_027e0c90.min;
data_027e0ca8.min = spC;
sp18 = data_027e0c90.max;
data_027e0ca8.max = sp18;
data_027e0cc0.min = spC;
data_027e0cc0.max = sp18;
this->mUnk_13C.Init(data_ov001_020c40f4, 0x40);
Vec2s_Copy(&this->mUnk_09C, &local_30);
gpMapObjManager->func_ov001_020baea0(&local_30);
data_027e095c->func_ov000_020592a0();
}
UnkStruct_027e0cd8_0C_Base::~UnkStruct_027e0cd8_0C_Base() {
data_027e095c->func_ov000_020592ec();
gpMapObjManager->func_ov001_020baf28();
DELETE(this->mUnk_098);
this->mUnk_130 = 0;
this->mUnk_138 = 0;
this->mUnk_134 = 0;
this->mUnk_154.clear();
this->func_ov001_020b8aec();
}
void UnkStruct_027e0cd8_0C_Base::vfunc_38() {}
void UnkStruct_027e0cd8_0C_Base::vfunc_08() {}
void UnkStruct_027e0cd8_0C_Base::func_ov001_020b85d0(const UnkStruct_SceneChange1 *param1) {
this->mIsCS = param1->mIsCS;
wchar_t local_c8[2];
local_c8[0] = L'\0';
local_c8[sizeof(local_c8) / 2 - 1] = L'\0';
snprintf((char *) local_c8, sizeof(local_c8), "M%02d", param1->mRoomIndex);
this->mUnk_084[0] = local_c8[0];
this->mUnk_084[1] = local_c8[1];
CourseListEntry *pEntry = data_027e09a0->GetCourseEntry(param1->mSceneIndex);
wchar_t local_34[16];
local_34[0] = L'\0';
local_34[sizeof(local_34) / 2 - 1] = L'\0';
snprintf((char *) local_34, sizeof(local_34), "Map/%s/map%02d.bin", pEntry->name, param1->mRoomIndex);
this->mUnk_004.~UnkSystem3();
this->mUnk_004.mUnk_00 = local_34;
this->mUnk_004.func_0201541c((char *) local_c8, 0x10);
this->LoadSceneModel(param1);
snprintf((char *) local_34, sizeof(local_34), "%s:zcb/%s_%02d.zcb", local_c8, pEntry->name, param1->mRoomIndex);
UnkFileSystem3 local_44((char *) local_34);
data_027e09c0->func_ov001_020be3dc(&local_44, this);
wchar_t local_64[16];
local_64[0] = L'\0';
local_64[sizeof(local_64) / 2 - 1] = L'\0';
snprintf((char *) local_64, sizeof(local_64), "%s:zmb/%s_%02d.zmb", local_c8, pEntry->name, param1->mRoomIndex);
UnkFileSystem3 local_74((char *) local_64);
local_74.vfunc_08(0x10);
ZMBFileInfos zmbFileInfos;
zmbFileInfos.pFile = local_74.mpFile;
zmbFileInfos.size = local_74.mFileSize;
zmbFileInfos.unk_08 = 0;
zmbFileInfos.unk_0C = 0;
zmbFileInfos.unk_10 = 0;
zmbFileInfos.unk_14 = 0;
ZMB_ParseFile(&zmbFileInfos, this, true);
gpMapObjManager->func_ov001_020bade0();
gpActorManager->func_ov001_020bb630();
if (param1->mIsCS == false) {
gpActorManager->func_ov001_020bb6b0((UnkStruct_SceneChange1 *) param1);
}
data_027e095c->func_ov000_020592a0();
u32 isCs = this->mIsCS;
snprintf((char *) local_34, sizeof(local_34), "%s:zob/motype_%02d_%1d.zob", local_c8, param1->mRoomIndex, isCs);
UnkFileSystem3 local_94((char *) local_34);
this->mUnk_0B4 = (ZeldaObjectList *) local_94.vfunc_08(sizeof(ZOBHeader));
gpMapObjManager->func_ov001_020bae40(this->mUnk_0B4);
for (int i = 0; i < ARRAY_LEN(this->mUnk_0B8); i++) {
// i + 2 because 0 is the default one and 1 is the cutscene one
snprintf((char *) local_34, sizeof(local_34), "%s:zob/motype_%02d_%1d.zob", local_c8, param1->mRoomIndex, i + 2);
UnkFileSystem3 local_a4((char *) local_34);
this->mUnk_0B8[i] = (ZeldaObjectList *) local_a4.vfunc_08(sizeof(ZOBHeader));
}
isCs = this->mIsCS;
snprintf((char *) local_34, sizeof(local_34), "%s:zob/npctype_%02d_%1d.zob", local_c8, param1->mRoomIndex, isCs);
UnkFileSystem3 local_b4((char *) local_34);
this->mUnk_0D8 = (ZeldaObjectList *) local_b4.vfunc_08(sizeof(ZOBHeader));
gpActorManager->func_ov001_020bb7b0(this->mUnk_0D8);
for (int i = 0; i < ARRAY_LEN(this->mUnk_0DC); i++) {
// i + 2 because 0 is the default one and 1 is the cutscene one
snprintf((char *) local_34, sizeof(local_34), "%s:zob/npctype_%02d_%1d.zob", local_c8, param1->mRoomIndex, i + 2);
UnkFileSystem3 local_c4((char *) local_34);
this->mUnk_0DC[i] = (ZeldaObjectList *) local_c4.vfunc_08(sizeof(ZOBHeader));
}
data_027e09b0->func_ov000_02072cc4(0x0000, 0x7FFF);
ZMB_ParseFile(&zmbFileInfos, this, false);
this->vfunc_40(param1->mSpawnIndex);
if (param1->mSceneIndex == SceneIndex_t_area1) {
if (GET_FLAG(data_027e09b8->mAdventureFlags, AdventureFlag_ObtainedSnowSource)) {
this->mUnk_110 = 0x0A;
}
} else if (param1->mSceneIndex == SceneIndex_t_area3) {
if (GET_FLAG(data_027e09b8->mAdventureFlags, AdventureFlag_ObtainedFireSource)) {
this->mUnk_110 = 0x10;
this->mUnk_114 = 0x1F;
}
}
this->func_ov001_020b8db8();
this->func_ov001_020b8e24();
if (param1->mIsCS == true) {
this->mUnk_114 = Cutscene_GetParamEntry(param1->mCutsceneIndex)->mUnk_0E;
}
data_027e09ac->func_ov000_020726f0(this->mUnk_114, 0x00, 0x00);
this->vfunc_38();
}
void UnkStruct_027e0cd8_0C_Base::func_ov001_020b88c0(unk32 param1) {
gpMapObjManager->func_ov001_020bae40(this->mUnk_0B8[param1]);
gpActorManager->func_ov001_020bb7b0(this->mUnk_0DC[param1]);
}
void UnkStruct_027e0cd8_0C_Base::func_ov001_020b88ec() {
this->func_ov001_020b8e54();
this->mUnk_088.func_ov000_0208261c();
gpMapObjManager->func_ov001_020bae6c();
gpActorManager->func_ov001_020bb7f0();
data_027e095c->func_ov000_020592ec();
data_027e09c0->func_ov001_020be400();
this->mUnk_004.~UnkSystem3();
if (this->mUnk_128 & 0x200) {
func_ov089_02165c34(&data_ov089_02171540);
}
}
void UnkStruct_027e0cd8_0C_Base::LoadSceneModel(const UnkStruct_SceneChange1 *param1) {
const char *pName = data_027e09a0->GetCourseEntry(param1->mSceneIndex)->name;
wchar_t local_40[20];
local_40[0] = L'\0';
local_40[sizeof(local_40) / 2 - 1] = L'\0';
snprintf((char *) local_40, sizeof(local_40), "%s:nsbmd/%s_%02d.nsbmd", this->mUnk_084, pName, param1->mRoomIndex);
UnkFileSystem3 local_50((char *) local_40);
wchar_t local_78[20];
local_78[0] = L'\0';
local_78[sizeof(local_78) / 2 - 1] = L'\0';
const char *path = "Map/%s/map%02d.nsbtx";
snprintf((char *) local_78, sizeof(local_78), path, pName, param1->mRoomIndex);
this->mUnk_070.vfunc_0C();
this->mUnk_070.mUnk_04 = (char *) local_78;
this->mUnk_070.vfunc_08(0x10);
BMDSectionModel *pBMD = func_ov000_0205abcc(&local_50, &this->mUnk_070, 0x01, 0x00, 0x00);
G3d_Model *pModel = G3d_GetModelPtr(pBMD);
G3d_0200e6a0(pModel, 0x00, 0x40);
G3d_0200e6a0(pModel, 0x00, 0x80);
this->mSceneRender.vfunc_08(pModel);
}
void UnkStruct_027e0cd8_0C_Base::vfunc_1C(const UnkStruct_SceneChange1 *param1, bool param2, bool param3) {
SceneIndex sceneIndex = param1->mSceneIndex;
u8 roomIndex = param1->mRoomIndex;
if (param2 != 0) {
if (param3 == 0) {
return;
}
roomIndex = 99;
}
gpCurrentGameModeMgr->vfunc_38(sceneIndex, roomIndex, 0x01, 0x00);
}
void UnkStruct_027e0cd8_0C_Base::vfunc_20() {}
const UnkStruct_ov001_020c40f4 *UnkStruct_027e0cd8_0C_Base::func_ov001_020b8a5c(unk32 spawnIndex, unk32 param1) {
UnkStruct_ov001_020c40f4 *result =
std::find_if(this->mUnk_13C.begin(), this->mUnk_13C.end(), UnkStruct_ov001_020c40f4::Predicate(spawnIndex, param1));
if (param1 == 0) {
if (result == this->mUnk_13C.end()) {
result = this->mUnk_13C.begin();
}
if (result->mUnk_0F == 0) {
result->mUnk_00.y = this->vfunc_28(&result->mUnk_00, 1, 0);
}
return result;
} else {
if (result == this->mUnk_13C.end()) {
return this->func_ov001_020b8a5c(spawnIndex, 0x00);
}
if (result->mUnk_0F == 0) {
result->mUnk_00.y = this->vfunc_28(&result->mUnk_00, 1, 0);
}
return result;
}
}
void UnkStruct_027e0cd8_0C_Base::func_ov001_020b8aec() {
STACK_PAD(0x24);
this->mUnk_148.unk_action1();
}
void UnkStruct_027e0cd8_0C_Base::func_ov001_020b8b94(ZMBEntryARAB *pARAB) {
UnkStruct_027e0cd8_0C_Base_148_00_Base *ptr = NULL;
if (pARAB->unk_0C == 1) {
ptr = new(HeapIndex_1) UnkStruct_027e0cd8_0C_Base_148_02(pARAB);
} else if (pARAB->unk_0D == 1) {
ptr = new(HeapIndex_1) UnkStruct_027e0cd8_0C_Base_148_01(pARAB);
} else {
ptr = new(HeapIndex_1) UnkStruct_027e0cd8_0C_Base_148_00(pARAB);
}
this->mUnk_148.push_back(ptr);
}
void UnkStruct_027e0cd8_0C_Base::func_ov001_020b8c30(const UnkStruct_027e0cd8_0C_Base_154_00 &param1) {
this->mUnk_154.push_back(param1);
}
void *UnkStruct_027e0cd8_0C_Base::func_ov001_020b8c80(unk32 param1) {
return (void *) &data_ov001_020c2a40[param1 - 0x3C];
}
void UnkStruct_027e0cd8_0C_Base::func_ov001_020b8c90(unk32 param1) {
this->mUnk_138 = param1;
}
void UnkStruct_027e0cd8_0C_Base::func_ov001_020b8c98(unk32 param1) {
this->mUnk_134 = param1;
}
void UnkStruct_027e0cd8_0C_Base::vfunc_34(unk32 param1) {
this->mUnk_130 = param1;
}
void UnkStruct_027e0cd8_0C_Base::vfunc_40(u8 spawnIndex) {
switch (spawnIndex) {
case 0xFB:
case 0xFC:
case 0xFD:
case 0xFE: {
UnkStruct_ov001_020c40f4 stack_elem;
UnkStruct_WarpUnk1_A0 *pEntry = data_027e09a4->func_ov000_02070538();
VecFx32 pos = pEntry->mUnk_04;
fx16 angle = DEG_TO_ANG(0);
switch (spawnIndex) {
case 0xFB:
pos.z = data_027e0c90.max.z - FLOAT_TO_FX32(0.5f);
angle = DEG_TO_ANG(180);
break;
case 0xFC:
pos.z = data_027e0c90.min.z + FLOAT_TO_FX32(0.5f);
angle = DEG_TO_ANG(0);
break;
case 0xFD:
pos.x = data_027e0c90.max.x - FLOAT_TO_FX32(0.5f);
angle = DEG_TO_ANG(270);
break;
case 0xFE:
pos.x = data_027e0c90.min.x + FLOAT_TO_FX32(0.5f);
angle = DEG_TO_ANG(90);
break;
default:
break;
}
stack_elem.mUnk_0E = spawnIndex;
VecFx32_Copy(&pos, &stack_elem.mUnk_00);
stack_elem.mUnk_0C = angle;
stack_elem.mUnk_10 = 0xFD;
UnkStruct_ov001_020c40f4 *pEnd = this->mUnk_13C.end();
if (pEnd != NULL) {
pEnd->mUnk_00 = stack_elem.mUnk_00;
pEnd->mUnk_0C = stack_elem.mUnk_0C;
pEnd->mUnk_0E = stack_elem.mUnk_0E;
pEnd->mUnk_0F = stack_elem.mUnk_0F;
pEnd->mUnk_10 = stack_elem.mUnk_10;
pEnd->mUnk_14 = stack_elem.mUnk_14;
}
this->mUnk_13C.grow_by(1);
break;
}
default:
break;
}
}
void UnkStruct_027e0cd8_0C_Base::func_ov001_020b8db8() {
unk32 uVar1;
uVar1 = 0;
switch (this->mUnk_110) {
case 0x00:
case 0x03:
uVar1 = 0x0A;
break;
case 0x0E:
uVar1 = 0x01;
break;
case 0x05:
case 0x09:
uVar1 = 0x02;
break;
case 0x0A:
uVar1 = 0x03;
break;
case 0x02:
uVar1 = 0x04;
break;
case 0x0F:
uVar1 = 0x05;
break;
case 0x10:
uVar1 = 0x06;
break;
case 0x08:
uVar1 = 0x00;
break;
case 0x0C:
uVar1 = 0x09;
break;
case 0x06:
uVar1 = 0x07;
break;
case 0x01:
case 0x07:
case 0x04:
case 0x0B:
break;
default:
uVar1 = 0x00;
break;
}
this->mUnk_088.func_ov000_020823a8(uVar1);
}
void UnkStruct_027e0cd8_0C_Base::func_ov001_020b8e24() {
if (this->mUnk_110 == 7 && this->mUnk_098 == NULL) {
this->mUnk_098 = new(HeapIndex_1) UnkStruct_027e0cd8_0C_Base_98();
}
}
void UnkStruct_027e0cd8_0C_Base::func_ov001_020b8e54() {
DELETE(this->mUnk_098);
}
+1 -1
View File
@@ -173,7 +173,7 @@ void CargoManager::RemoveAmount(unk32 decr) {
bool CargoManager::func_ov017_020bec9c() {
if (data_027e09a4->IsTrain()) {
return data_027e0cd8->mUnk_0C->mUnk_160->func_ov026_02106aa8();
return data_027e0cd8->GetUnk0C()->mUnk_160->func_ov026_02106aa8();
}
return false;
+1 -1
View File
@@ -123,7 +123,7 @@ SaveManager::SaveManager() {
this->mUnk_20A = 0;
this->mUnk_214 = 0;
this->mpSaveFile = NULL;
this->mUnk_244 = 0;
this->mUnk_244 = NULL;
func_020327c8(&this->mUnk_004, 0x1021);
+2 -2
View File
@@ -117,8 +117,8 @@ void ActorUnkOBPC::SetState(ActorState state, int param2) {
}
bool ActorUnkOBPC::func_ov024_020d7154(void) {
u8 temp_r4 = this->mUnk_5C.mParams[0];
UnkStruct_027e0cd8_0c *temp_r5 = data_027e0cd8->mUnk_0C;
u8 temp_r4 = this->mUnk_5C.mParams[0];
UnkStruct_027e0cd8_0C_Base *temp_r5 = data_027e0cd8->mUnk_0C;
ActorManager *pActorMgr;
VecFx32 sp10;
@@ -601,8 +601,8 @@ void AdventureModeManager::vfunc_34(unk32 param1, unk32 param2) {
}
}
void AdventureModeManager::vfunc_38(u32 param1, u8 param2, unk16 param3, unk16 param4) {
this->func_ov024_020c6514(param1, param2, param3, param4);
void AdventureModeManager::vfunc_38(u32 sceneIndex, u8 roomIndex, unk16 param3, unk16 param4) {
this->func_ov024_020c6514(sceneIndex, roomIndex, param3, param4);
}
void AdventureModeManager::func_ov024_020c6514(SceneIndex sceneIndex, u8 param2, unk16 param3, unk16 param4) {
@@ -40,7 +40,7 @@ void AdventureModeManager_184::vfunc_0C(unk32 param1) {
}
data_0204a088->func_ov000_02061248();
MapObjectId mapObjId = data_027e09b8->mUnk_0C->mMapObjId;
MapObjectId mapObjId = data_027e09b8->GetUnk0C()->mMapObjId;
if (data_027e09a4->IsTrain() || (data_027e09b8->func_ov000_020732dc(2) &&
(mapObjId != MapObjectId_WDST ||
@@ -77,7 +77,7 @@ void AdventureModeManager_184::func_ov024_020c979c(unk32 param1) {
return;
}
MapObjectId mapObjId = data_027e09b8->mUnk_0C->mMapObjId;
MapObjectId mapObjId = data_027e09b8->GetUnk0C()->mMapObjId;
if (data_027e09a4->IsTrain()) {
if (data_027e09a4->IsDarkRealm()) {
+4 -4
View File
@@ -6,8 +6,8 @@
#include "files.h"
#include <nitro/mi.h>
#include <printf.h>
extern "C" void func_02026800(void *, int, const char *, ...);
extern "C" unk32 func_02032784(unk32 param1);
extern "C" unk32 func_ov000_0205c7ac(unk32, unk32);
extern "C" bool func_ov000_0205c74c(unk32, unk32, unk32, unk32);
@@ -55,20 +55,20 @@ void UnkDataStruct4::func_ov024_020d258c(u32 sceneIndex, u8 roomIndex) {
sp10[0] = L'\0';
sp10[1] = L'\0';
func_02026800(sp10, sizeof(sp10), "T%02d", roomIndex);
snprintf((char *) sp10, sizeof(sp10), "T%02d", roomIndex);
sp34[0] = L'\0';
sp34[15] = L'\0';
pEntry = data_027e09a0->GetCourseEntry(sceneIndex);
const char *string = "Map/%s/train%02d.bin";
func_02026800(sp34, sizeof(sp34), string, pEntry->name, roomIndex);
snprintf((char *) sp34, sizeof(sp34), string, pEntry->name, roomIndex);
UnkStruct2 sp24(NULL, 1);
sp24.mUnk_04 = (char *) sp34;
sp24.func_020154ec((char *) sp10);
pEntry = data_027e09a0->GetCourseEntry(sceneIndex);
func_02026800(sp34, sizeof(sp34), "%s:ztb/%s_%02d.ztb", sp10, pEntry->name, roomIndex);
snprintf((char *) sp34, sizeof(sp34), "%s:ztb/%s_%02d.ztb", sp10, pEntry->name, roomIndex);
UnkFileSystem3 sp14((char *) sp34);
sp14.vfunc_08(0x10);

Some files were not shown because too many files have changed in this diff Show More