summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSammygoodTunes <56520787+SammygoodTunes@users.noreply.github.com>2025-06-29 20:57:40 +0200
committerGitHub <noreply@github.com>2025-06-29 20:57:40 +0200
commita7717d570479538711b528aefc69cf63c9c1462f (patch)
tree8f6bdd35a85a4d43c57e694a9750880feb1a067c
parenta02e12a0d9880d66eefbbbc88823ccff98be36d0 (diff)
parent3fe49695b4936ea29526eb8b7d07250a69a06c38 (diff)
Merge branch 'zeldaret:main' into decomp/MapManager
-rw-r--r--config/eur/arm9/overlays/ov000/delinks.txt4
-rw-r--r--config/eur/arm9/overlays/ov000/symbols.txt10
-rw-r--r--config/eur/arm9/overlays/ov004/symbols.txt2
-rw-r--r--config/eur/arm9/overlays/ov014/symbols.txt24
-rw-r--r--config/eur/arm9/overlays/ov057/symbols.txt2
-rw-r--r--config/usa/arm9/overlays/ov000/delinks.txt4
-rw-r--r--config/usa/arm9/overlays/ov000/symbols.txt10
-rw-r--r--config/usa/arm9/overlays/ov004/symbols.txt2
-rw-r--r--config/usa/arm9/overlays/ov014/symbols.txt24
-rw-r--r--config/usa/arm9/overlays/ov057/symbols.txt2
-rw-r--r--include/Actor/Actor.hpp9
-rw-r--r--include/Actor/ActorRupee.hpp2
-rw-r--r--include/Actor/ActorSpawner.hpp19
-rw-r--r--include/Actor/Dungeon/ActorActionObject.hpp2
-rw-r--r--include/Actor/Dungeon/ActorEventIcon.hpp2
-rw-r--r--include/Actor/Dungeon/ActorSwitchObject.hpp2
-rw-r--r--include/Actor/Navi/ActorNavi.hpp2
-rw-r--r--include/Actor/Navi/ActorNaviBase.hpp2
-rw-r--r--include/Actor/Player/ActorArrow.hpp2
-rw-r--r--include/Actor/Player/ActorBlast.hpp2
-rw-r--r--include/Actor/Player/ActorBomb.hpp2
-rw-r--r--include/Actor/Player/ActorRefill.hpp18
-rw-r--r--include/Actor/Player/ActorRope.hpp2
-rw-r--r--include/Item/Item.hpp4
-rw-r--r--include/Save/AdventureFlags.hpp19
-rw-r--r--src/00_Core/Actor/Actor.cpp5
-rw-r--r--src/00_Core/Actor/ActorManager.cpp2
-rw-r--r--src/00_Core/Actor/ActorSpawner.cpp104
-rw-r--r--src/00_Core/Actor/Dungeon/ActorActionObject.cpp2
-rw-r--r--src/00_Core/Actor/Dungeon/ActorEventIcon.cpp2
-rw-r--r--src/00_Core/Actor/Dungeon/ActorSwitchObject.cpp4
-rw-r--r--src/00_Core/Item/ItemManager.cpp6
-rw-r--r--src/04_Load/Actor/Navi/ActorNaviBase.cpp2
-rw-r--r--src/14_Land/Actor/ActorRupee.cpp2
-rw-r--r--src/14_Land/Actor/Player/ActorArrow.cpp2
-rw-r--r--src/14_Land/Actor/Player/ActorBlast.cpp2
-rw-r--r--src/14_Land/Actor/Player/ActorBomb.cpp2
-rw-r--r--src/14_Land/Actor/Player/ActorRefill.cpp28
-rw-r--r--src/57_Rope/Actor/Player/ActorRope.cpp2
39 files changed, 232 insertions, 106 deletions
diff --git a/config/eur/arm9/overlays/ov000/delinks.txt b/config/eur/arm9/overlays/ov000/delinks.txt
index 4e7c7c37..56207f63 100644
--- a/config/eur/arm9/overlays/ov000/delinks.txt
+++ b/config/eur/arm9/overlays/ov000/delinks.txt
@@ -16,6 +16,10 @@ src/00_Core/Actor/ActorManager.cpp:
.text start:0x020c33d4 end:0x020c3e54
.data start:0x020e72a8 end:0x020e72f4
+src/00_Core/Actor/ActorSpawner.cpp:
+ complete
+ .text start:0x020c3f9c end:0x020c42d8
+
src/00_Core/Actor/Dungeon/ActorSwitchObject.cpp:
.text start:0x0208fa70 end:0x020903a8
.init start:0x020df678 end:0x020df6b8
diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt
index 5b628dcf..e07d7896 100644
--- a/config/eur/arm9/overlays/ov000/symbols.txt
+++ b/config/eur/arm9/overlays/ov000/symbols.txt
@@ -942,7 +942,7 @@ func_ov000_0208f9f0 kind:function(arm,size=0x1c) addr:0x208f9f0
func_ov000_0208fa0c kind:function(arm,size=0x5c) addr:0x208fa0c
func_ov000_0208fa68 kind:function(arm,size=0x8) addr:0x208fa68
_ZN17ActorSwitchObject6CreateEv kind:function(arm,size=0x78) addr:0x208fa70
-_ZN17ActorSwitchObject8vfunc_08Ev kind:function(arm,size=0x24) addr:0x208fae8
+_ZN17ActorSwitchObject4InitEv kind:function(arm,size=0x24) addr:0x208fae8
_ZN17ActorSwitchObject8vfunc_0cEv kind:function(arm,size=0x34) addr:0x208fb0c
_ZN17ActorSwitchObject8vfunc_14Ej kind:function(arm,size=0xbc) addr:0x208fb40
_ZN17ActorSwitchObject8vfunc_18Ej kind:function(arm,size=0x14) addr:0x208fbfc
@@ -961,7 +961,7 @@ func_ov000_020904c4 kind:function(arm,size=0x14) addr:0x20904c4
func_ov000_020904d8 kind:function(arm,size=0x1c) addr:0x20904d8
_ZN14ActorEventIcon6CreateEv kind:function(arm,size=0x30) addr:0x20904f4
_ZN14ActorEventIconC2Ev kind:function(arm,size=0x5c) addr:0x2090524
-_ZN14ActorEventIcon8vfunc_08Ev kind:function(arm,size=0xb0) addr:0x2090580
+_ZN14ActorEventIcon4InitEv kind:function(arm,size=0xb0) addr:0x2090580
_ZN14ActorEventIcon8vfunc_14Ej kind:function(arm,size=0xc) addr:0x2090630
_ZN14ActorEventIcon8vfunc_18Ej kind:function(arm,size=0xc) addr:0x209063c
_ZN14ActorEventIcon19func_ov000_02090648Ej kind:function(arm,size=0x12c) addr:0x2090648
@@ -2621,7 +2621,7 @@ _ZN17ActorActionObject6CreateEv kind:function(arm,size=0x30) addr:0x20be198
_ZN17ActorActionObjectC1Ev kind:function(arm,size=0x20) addr:0x20be1c8
_ZN17ActorActionObjectD1Ev kind:function(arm,size=0x14) addr:0x20be1e8
_ZN17ActorActionObjectD0Ev kind:function(arm,size=0x1c) addr:0x20be1fc
-_ZN17ActorActionObject8vfunc_08Ev kind:function(arm,size=0x7c) addr:0x20be218
+_ZN17ActorActionObject4InitEv kind:function(arm,size=0x7c) addr:0x20be218
_ZN17ActorActionObject8vfunc_14Ej kind:function(arm,size=0x178) addr:0x20be294
_ZN17ActorActionObject8vfunc_18Ej kind:function(arm,size=0xc) addr:0x20be40c
func_ov000_020be418 kind:function(arm,size=0x4c) addr:0x20be418
@@ -2732,7 +2732,7 @@ _ZN5ActorC2Ev kind:function(arm,size=0x1c4) addr:0x20c1554
_ZN5ActorD1Ev kind:function(arm,size=0x4) addr:0x20c1718
_ZN5ActorD0Ev kind:function(arm,size=0x14) addr:0x20c171c
_ZN5ActorD2Ev kind:function(arm,size=0x4) addr:0x20c1730
-_ZN5Actor8vfunc_08Ev kind:function(arm,size=0x8) addr:0x20c1734
+_ZN5Actor4InitEv kind:function(arm,size=0x8) addr:0x20c1734
_ZN5Actor8vfunc_0cEv kind:function(arm,size=0x4) addr:0x20c173c
_ZN5Actor8vfunc_10Ej kind:function(arm,size=0x4) addr:0x20c1740
_ZN5Actor8vfunc_24Ev kind:function(arm,size=0x4) addr:0x20c1744
@@ -2868,7 +2868,7 @@ _ZN12ActorSpawnerD1Ev kind:function(arm,size=0x4) addr:0x20c4010
_ZN12ActorSpawner19func_ov000_020c4014Ev kind:function(arm,size=0x4) addr:0x20c4014
_ZN12ActorSpawner19func_ov000_020c4018Ev kind:function(arm,size=0x4) addr:0x20c4018
_ZN12ActorSpawner11CreateActorEj kind:function(arm,size=0x2c) addr:0x20c401c
-_ZN12ActorSpawner5SpawnEjP5Vec3pPvP8ActorRef kind:function(arm,size=0x290) addr:0x20c4048
+_ZN12ActorSpawner5SpawnEjP5Vec3pP17ActorSpawnOptionsP8ActorRef kind:function(arm,size=0x290) addr:0x20c4048
func_ov000_020c42d8 kind:function(arm,size=0x14) addr:0x20c42d8
func_ov000_020c42ec kind:function(arm,size=0x30) addr:0x20c42ec
func_ov000_020c431c kind:function(arm,size=0x6c) addr:0x20c431c
diff --git a/config/eur/arm9/overlays/ov004/symbols.txt b/config/eur/arm9/overlays/ov004/symbols.txt
index 8a08244f..b78e8357 100644
--- a/config/eur/arm9/overlays/ov004/symbols.txt
+++ b/config/eur/arm9/overlays/ov004/symbols.txt
@@ -225,7 +225,7 @@ _ZN13ActorNaviBaseD1Ev kind:function(thumb,size=0x40) addr:0x210790c
_ZN13ActorNaviBaseD0Ev kind:function(thumb,size=0x48) addr:0x210794c
_ZN13ActorNaviBaseD2Ev kind:function(thumb,size=0x40) addr:0x2107994
_Z19func_ov004_021079d4Pi kind:function(thumb,size=0x6) addr:0x21079d4
-_ZN13ActorNaviBase8vfunc_08Ev kind:function(thumb,size=0xa4) addr:0x21079dc
+_ZN13ActorNaviBase4InitEv kind:function(thumb,size=0xa4) addr:0x21079dc
func_ov004_02107a80 kind:function(thumb,size=0x20) addr:0x2107a80
func_ov004_02107aa0 kind:function(thumb,size=0xc4) addr:0x2107aa0
func_ov004_02107b64 kind:function(thumb,size=0x9c) addr:0x2107b64
diff --git a/config/eur/arm9/overlays/ov014/symbols.txt b/config/eur/arm9/overlays/ov014/symbols.txt
index af3f2ed6..6f2c7d43 100644
--- a/config/eur/arm9/overlays/ov014/symbols.txt
+++ b/config/eur/arm9/overlays/ov014/symbols.txt
@@ -15,7 +15,7 @@ _ZN10ActorArrow19func_ov014_0211fd90Ev kind:function(arm,size=0x14) addr:0x211fd
_ZN10ActorArrowC2Ev kind:function(arm,size=0x108) addr:0x211fda4
_ZN10ActorArrowD1Ev kind:function(arm,size=0x28) addr:0x211feac
_ZN10ActorArrowD0Ev kind:function(arm,size=0x30) addr:0x211fed4
-_ZN10ActorArrow8vfunc_08Ev kind:function(arm,size=0x148) addr:0x211ff04
+_ZN10ActorArrow4InitEv kind:function(arm,size=0x148) addr:0x211ff04
_ZN10ActorArrow12CollidesWithEP5Actor kind:function(arm,size=0x88) addr:0x212004c
_ZN10ActorArrow19func_ov014_021200d4Ev kind:function(arm,size=0x44) addr:0x21200d4
_ZN10ActorArrow19func_ov014_02120118Ev kind:function(arm,size=0x68) addr:0x2120118
@@ -42,7 +42,7 @@ _ZN15ActorBlast_Unk18vfunc_10EPi kind:function(arm,size=0xa4) addr:0x212140c
_ZN10ActorBlastC2Ev kind:function(arm,size=0x8c) addr:0x21214b0
_ZN10ActorBlastD1Ev kind:function(arm,size=0x14) addr:0x212153c
_ZN10ActorBlastD0Ev kind:function(arm,size=0x1c) addr:0x2121550
-_ZN10ActorBlast8vfunc_08Ev kind:function(arm,size=0x260) addr:0x212156c
+_ZN10ActorBlast4InitEv kind:function(arm,size=0x260) addr:0x212156c
_ZN10ActorBlast8vfunc_14Ej kind:function(arm,size=0x218) addr:0x21217cc
_ZN15ActorBlast_Unk1D1Ev kind:function(arm,size=0x14) addr:0x21219e4
_ZN10ActorBlast8vfunc_18Ej kind:function(arm,size=0x90) addr:0x21219f8
@@ -55,7 +55,7 @@ _ZN14ActorBomb_Unk2D1Ev kind:function(arm,size=0x1c) addr:0x2121cd8
_ZN9ActorBombD1Ev kind:function(arm,size=0x38) addr:0x2121cf4
_ZN9ActorBombD0Ev kind:function(arm,size=0x40) addr:0x2121d2c
_ZN14ActorBomb_Unk2C1Ev kind:function(arm,size=0x14) addr:0x2121d6c
-_ZN9ActorBomb8vfunc_08Ev kind:function(arm,size=0x134) addr:0x2121d80
+_ZN9ActorBomb4InitEv kind:function(arm,size=0x134) addr:0x2121d80
_ZN9ActorBomb8vfunc_14Ej kind:function(arm,size=0xc58) addr:0x2121eb4
_ZN14ActorBomb_Unk1D1Ev kind:function(arm,size=0x14) addr:0x2122b0c
_ZN9ActorBomb8vfunc_18Ej kind:function(arm,size=0x98) addr:0x2122b20
@@ -595,7 +595,7 @@ _ZN11ActorRefillC2Ei kind:function(arm,size=0x40) addr:0x2134f14
_ZN11ActorRefillD1Ev kind:function(arm,size=0x14) addr:0x2134f54
_ZN11ActorRefillD0Ev kind:function(arm,size=0x1c) addr:0x2134f68
_ZN11ActorRefillD2Ev kind:function(arm,size=0x14) addr:0x2134f84
-_ZN11ActorRefill8vfunc_08Ev kind:function(arm,size=0xf4) addr:0x2134f98
+_ZN11ActorRefill4InitEv kind:function(arm,size=0xf4) addr:0x2134f98
_ZN11ActorRefill8vfunc_14Ej kind:function(arm,size=0x2d8) addr:0x213508c
_ZN11ActorRefill19func_ov014_02135364Ei kind:function(arm,size=0x54) addr:0x2135364
_ZN11ActorRefill8vfunc_20Eb kind:function(arm,size=0xbc) addr:0x21353b8
@@ -603,25 +603,25 @@ _ZN11ActorRefill19func_ov014_02135474Ev kind:function(arm,size=0x84) addr:0x2135
_ZN16ActorRefillBombsC1Ev kind:function(arm,size=0x34) addr:0x21354f8
_ZN16ActorRefillBombsD1Ev kind:function(arm,size=0x14) addr:0x213552c
_ZN16ActorRefillBombsD0Ev kind:function(arm,size=0x1c) addr:0x2135540
-_ZN16ActorRefillBombs8vfunc_b4Ev kind:function(arm,size=0x8) addr:0x213555c
+_ZN16ActorRefillBombs11GetAmmoItemEv kind:function(arm,size=0x8) addr:0x213555c
_ZN19ActorRefillBombchusC1Ev kind:function(arm,size=0x34) addr:0x2135564
_ZN19ActorRefillBombchusD1Ev kind:function(arm,size=0x14) addr:0x2135598
_ZN19ActorRefillBombchusD0Ev kind:function(arm,size=0x1c) addr:0x21355ac
-_ZN19ActorRefillBombchus8vfunc_b4Ev kind:function(arm,size=0x8) addr:0x21355c8
+_ZN19ActorRefillBombchus11GetAmmoItemEv kind:function(arm,size=0x8) addr:0x21355c8
_ZN17ActorRefillArrowsC1Ev kind:function(arm,size=0x34) addr:0x21355d0
_ZN17ActorRefillArrowsD1Ev kind:function(arm,size=0x14) addr:0x2135604
_ZN17ActorRefillArrowsD0Ev kind:function(arm,size=0x1c) addr:0x2135618
-_ZN17ActorRefillArrows8vfunc_b4Ev kind:function(arm,size=0x8) addr:0x2135634
+_ZN17ActorRefillArrows11GetAmmoItemEv kind:function(arm,size=0x8) addr:0x2135634
_ZN15ActorRefillTimeC1Ev kind:function(arm,size=0x34) addr:0x213563c
_ZN15ActorRefillTimeD1Ev kind:function(arm,size=0x14) addr:0x2135670
_ZN15ActorRefillTimeD0Ev kind:function(arm,size=0x1c) addr:0x2135684
-_ZN15ActorRefillTime8vfunc_08Ev kind:function(arm,size=0x114) addr:0x21356a0
-_ZN15ActorRefillTime8vfunc_b4Ev kind:function(arm,size=0x8) addr:0x21357b4
+_ZN15ActorRefillTime4InitEv kind:function(arm,size=0x114) addr:0x21356a0
+_ZN15ActorRefillTime11GetAmmoItemEv kind:function(arm,size=0x8) addr:0x21357b4
_ZN9ActorLSTMC1Ev kind:function(arm,size=0x34) addr:0x21357bc
_ZN9ActorLSTMD1Ev kind:function(arm,size=0x14) addr:0x21357f0
_ZN9ActorLSTMD0Ev kind:function(arm,size=0x1c) addr:0x2135804
-_ZN9ActorLSTM8vfunc_08Ev kind:function(arm,size=0x118) addr:0x2135820
-_ZN9ActorLSTM8vfunc_b4Ev kind:function(arm,size=0x8) addr:0x2135938
+_ZN9ActorLSTM4InitEv kind:function(arm,size=0x118) addr:0x2135820
+_ZN9ActorLSTM11GetAmmoItemEv kind:function(arm,size=0x8) addr:0x2135938
func_ov014_02135940 kind:function(arm,size=0x34) addr:0x2135940
func_ov014_02135974 kind:function(arm,size=0xc4) addr:0x2135974
func_ov014_02135a38 kind:function(arm,size=0xc4) addr:0x2135a38
@@ -784,7 +784,7 @@ func_ov014_0213ae20 kind:function(arm,size=0x28) addr:0x213ae20
func_ov014_0213ae48 kind:function(arm,size=0x20) addr:0x213ae48
_ZN10ActorRupee6CreateEv kind:function(arm,size=0x30) addr:0x213ae68
_ZN10ActorRupeeC1Ev kind:function(arm,size=0x34) addr:0x213ae98
-_ZN10ActorRupee8vfunc_08Ev kind:function(arm,size=0x240) addr:0x213aecc
+_ZN10ActorRupee4InitEv kind:function(arm,size=0x240) addr:0x213aecc
_ZN10ActorRupee8vfunc_60Ev kind:function(arm,size=0x10) addr:0x213b10c
_ZN10ActorRupee8vfunc_64Ev kind:function(arm,size=0x4) addr:0x213b11c
_ZN10ActorRupee4MoveEv kind:function(arm,size=0x6c) addr:0x213b120
diff --git a/config/eur/arm9/overlays/ov057/symbols.txt b/config/eur/arm9/overlays/ov057/symbols.txt
index 1da23918..9ded7bcd 100644
--- a/config/eur/arm9/overlays/ov057/symbols.txt
+++ b/config/eur/arm9/overlays/ov057/symbols.txt
@@ -36,7 +36,7 @@ _ZN13LinkStateItem19func_ov057_0219a364Ev kind:function(arm,size=0x4c) addr:0x21
_ZN22ActorRope_Unk_0219a3b08vfunc_08EPs kind:function(arm,size=0x4c) addr:0x219a3b0
_ZN22ActorRope_Unk_0219a3b08vfunc_10EPi kind:function(arm,size=0x64) addr:0x219a3fc
_ZN9ActorRopeC2Ev kind:function(arm,size=0x108) addr:0x219a460
-_ZN9ActorRope8vfunc_08Ev kind:function(arm,size=0x44) addr:0x219a568
+_ZN9ActorRope4InitEv kind:function(arm,size=0x44) addr:0x219a568
_ZN9ActorRope19func_ov057_0219a5acEv kind:function(arm,size=0x10c) addr:0x219a5ac
_ZN9ActorRope19func_ov057_0219a6b8Ev kind:function(arm,size=0x198) addr:0x219a6b8
_ZN9ActorRope19func_ov057_0219a850Ev kind:function(arm,size=0x114) addr:0x219a850
diff --git a/config/usa/arm9/overlays/ov000/delinks.txt b/config/usa/arm9/overlays/ov000/delinks.txt
index d0fd0130..894e26de 100644
--- a/config/usa/arm9/overlays/ov000/delinks.txt
+++ b/config/usa/arm9/overlays/ov000/delinks.txt
@@ -16,6 +16,10 @@ src/00_Core/Actor/ActorManager.cpp:
.text start:0x020c3374 end:0x020c3df4
.data start:0x020e7248 end:0x020e7294
+src/00_Core/Actor/ActorSpawner.cpp:
+ complete
+ .text start:0x020c3f3c end:0x020c4278
+
src/00_Core/Actor/Dungeon/ActorSwitchObject.cpp:
.text start:0x0208fa10 end:0x02090348
.init start:0x020df618 end:0x020df658
diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt
index de9e73d5..7c84ed39 100644
--- a/config/usa/arm9/overlays/ov000/symbols.txt
+++ b/config/usa/arm9/overlays/ov000/symbols.txt
@@ -942,7 +942,7 @@ func_ov000_0208f9f0 kind:function(arm,size=0x1c) addr:0x208f990
func_ov000_0208fa0c kind:function(arm,size=0x5c) addr:0x208f9ac
func_ov000_0208fa68 kind:function(arm,size=0x8) addr:0x208fa08
_ZN17ActorSwitchObject6CreateEv kind:function(arm,size=0x78) addr:0x208fa10
-_ZN17ActorSwitchObject8vfunc_08Ev kind:function(arm,size=0x24) addr:0x208fa88
+_ZN17ActorSwitchObject4InitEv kind:function(arm,size=0x24) addr:0x208fa88
_ZN17ActorSwitchObject8vfunc_0cEv kind:function(arm,size=0x34) addr:0x208faac
_ZN17ActorSwitchObject8vfunc_14Ej kind:function(arm,size=0xbc) addr:0x208fae0
_ZN17ActorSwitchObject8vfunc_18Ej kind:function(arm,size=0x14) addr:0x208fb9c
@@ -961,7 +961,7 @@ func_ov000_020904c4 kind:function(arm,size=0x14) addr:0x2090464
func_ov000_020904d8 kind:function(arm,size=0x1c) addr:0x2090478
_ZN14ActorEventIcon6CreateEv kind:function(arm,size=0x30) addr:0x2090494
_ZN14ActorEventIconC2Ev kind:function(arm,size=0x5c) addr:0x20904c4
-_ZN14ActorEventIcon8vfunc_08Ev kind:function(arm,size=0xb0) addr:0x2090520
+_ZN14ActorEventIcon4InitEv kind:function(arm,size=0xb0) addr:0x2090520
_ZN14ActorEventIcon8vfunc_14Ej kind:function(arm,size=0xc) addr:0x20905d0
_ZN14ActorEventIcon8vfunc_18Ej kind:function(arm,size=0xc) addr:0x20905dc
_ZN14ActorEventIcon19func_ov000_02090648Ej kind:function(arm,size=0x12c) addr:0x20905e8
@@ -2621,7 +2621,7 @@ _ZN17ActorActionObject6CreateEv kind:function(arm,size=0x30) addr:0x20be138
_ZN17ActorActionObjectC1Ev kind:function(arm,size=0x20) addr:0x20be168
_ZN17ActorActionObjectD1Ev kind:function(arm,size=0x14) addr:0x20be188
_ZN17ActorActionObjectD0Ev kind:function(arm,size=0x1c) addr:0x20be19c
-_ZN17ActorActionObject8vfunc_08Ev kind:function(arm,size=0x7c) addr:0x20be1b8
+_ZN17ActorActionObject4InitEv kind:function(arm,size=0x7c) addr:0x20be1b8
_ZN17ActorActionObject8vfunc_14Ej kind:function(arm,size=0x178) addr:0x20be234
_ZN17ActorActionObject8vfunc_18Ej kind:function(arm,size=0xc) addr:0x20be3ac
func_ov000_020be418 kind:function(arm,size=0x4c) addr:0x20be3b8
@@ -2732,7 +2732,7 @@ _ZN5ActorC2Ev kind:function(arm,size=0x1c4) addr:0x20c14f4
_ZN5ActorD1Ev kind:function(arm,size=0x4) addr:0x20c16b8
_ZN5ActorD0Ev kind:function(arm,size=0x14) addr:0x20c16bc
_ZN5ActorD2Ev kind:function(arm,size=0x4) addr:0x20c16d0
-_ZN5Actor8vfunc_08Ev kind:function(arm,size=0x8) addr:0x20c16d4
+_ZN5Actor4InitEv kind:function(arm,size=0x8) addr:0x20c16d4
_ZN5Actor8vfunc_0cEv kind:function(arm,size=0x4) addr:0x20c16dc
_ZN5Actor8vfunc_10Ej kind:function(arm,size=0x4) addr:0x20c16e0
_ZN5Actor8vfunc_24Ev kind:function(arm,size=0x4) addr:0x20c16e4
@@ -2868,7 +2868,7 @@ _ZN12ActorSpawnerD1Ev kind:function(arm,size=0x4) addr:0x20c3fb0
_ZN12ActorSpawner19func_ov000_020c4014Ev kind:function(arm,size=0x4) addr:0x20c3fb4
_ZN12ActorSpawner19func_ov000_020c4018Ev kind:function(arm,size=0x4) addr:0x20c3fb8
_ZN12ActorSpawner11CreateActorEj kind:function(arm,size=0x2c) addr:0x20c3fbc
-_ZN12ActorSpawner5SpawnEjP5Vec3pPvP8ActorRef kind:function(arm,size=0x290) addr:0x20c3fe8
+_ZN12ActorSpawner5SpawnEjP5Vec3pP17ActorSpawnOptionsP8ActorRef kind:function(arm,size=0x290) addr:0x20c3fe8
func_ov000_020c42d8 kind:function(arm,size=0x14) addr:0x20c4278
func_ov000_020c42ec kind:function(arm,size=0x30) addr:0x20c428c
func_ov000_020c431c kind:function(arm,size=0x6c) addr:0x20c42bc
diff --git a/config/usa/arm9/overlays/ov004/symbols.txt b/config/usa/arm9/overlays/ov004/symbols.txt
index db3bb3bd..532f2002 100644
--- a/config/usa/arm9/overlays/ov004/symbols.txt
+++ b/config/usa/arm9/overlays/ov004/symbols.txt
@@ -225,7 +225,7 @@ _ZN13ActorNaviBaseD1Ev kind:function(thumb,size=0x40) addr:0x210788c
_ZN13ActorNaviBaseD0Ev kind:function(thumb,size=0x48) addr:0x21078cc
_ZN13ActorNaviBaseD2Ev kind:function(thumb,size=0x40) addr:0x2107914
_Z19func_ov004_021079d4Pi kind:function(thumb,size=0x6) addr:0x2107954
-_ZN13ActorNaviBase8vfunc_08Ev kind:function(thumb,size=0xa4) addr:0x210795c
+_ZN13ActorNaviBase4InitEv kind:function(thumb,size=0xa4) addr:0x210795c
func_ov004_02107a80 kind:function(thumb,size=0x20) addr:0x2107a00
func_ov004_02107aa0 kind:function(thumb,size=0xc4) addr:0x2107a20
func_ov004_02107b64 kind:function(thumb,size=0x9c) addr:0x2107ae4
diff --git a/config/usa/arm9/overlays/ov014/symbols.txt b/config/usa/arm9/overlays/ov014/symbols.txt
index ce1b6513..a033bc75 100644
--- a/config/usa/arm9/overlays/ov014/symbols.txt
+++ b/config/usa/arm9/overlays/ov014/symbols.txt
@@ -15,7 +15,7 @@ _ZN10ActorArrow19func_ov014_0211fd90Ev kind:function(arm,size=0x14) addr:0x211fd
_ZN10ActorArrowC2Ev kind:function(arm,size=0x108) addr:0x211fd24
_ZN10ActorArrowD1Ev kind:function(arm,size=0x28) addr:0x211fe2c
_ZN10ActorArrowD0Ev kind:function(arm,size=0x30) addr:0x211fe54
-_ZN10ActorArrow8vfunc_08Ev kind:function(arm,size=0x148) addr:0x211fe84
+_ZN10ActorArrow4InitEv kind:function(arm,size=0x148) addr:0x211fe84
_ZN10ActorArrow12CollidesWithEP5Actor kind:function(arm,size=0x88) addr:0x211ffcc
_ZN10ActorArrow19func_ov014_021200d4Ev kind:function(arm,size=0x44) addr:0x2120054
_ZN10ActorArrow19func_ov014_02120118Ev kind:function(arm,size=0x68) addr:0x2120098
@@ -42,7 +42,7 @@ _ZN15ActorBlast_Unk18vfunc_10EPi kind:function(arm,size=0xa4) addr:0x212138c
_ZN10ActorBlastC2Ev kind:function(arm,size=0x8c) addr:0x2121430
_ZN10ActorBlastD1Ev kind:function(arm,size=0x14) addr:0x21214bc
_ZN10ActorBlastD0Ev kind:function(arm,size=0x1c) addr:0x21214d0
-_ZN10ActorBlast8vfunc_08Ev kind:function(arm,size=0x260) addr:0x21214ec
+_ZN10ActorBlast4InitEv kind:function(arm,size=0x260) addr:0x21214ec
_ZN10ActorBlast8vfunc_14Ej kind:function(arm,size=0x218) addr:0x212174c
_ZN15ActorBlast_Unk1D1Ev kind:function(arm,size=0x14) addr:0x2121964
_ZN10ActorBlast8vfunc_18Ej kind:function(arm,size=0x90) addr:0x2121978
@@ -55,7 +55,7 @@ _ZN14ActorBomb_Unk2D1Ev kind:function(arm,size=0x1c) addr:0x2121c58
_ZN9ActorBombD1Ev kind:function(arm,size=0x38) addr:0x2121c74
_ZN9ActorBombD0Ev kind:function(arm,size=0x40) addr:0x2121cac
_ZN14ActorBomb_Unk2C1Ev kind:function(arm,size=0x14) addr:0x2121cec
-_ZN9ActorBomb8vfunc_08Ev kind:function(arm,size=0x134) addr:0x2121d00
+_ZN9ActorBomb4InitEv kind:function(arm,size=0x134) addr:0x2121d00
_ZN9ActorBomb8vfunc_14Ej kind:function(arm,size=0xc58) addr:0x2121e34
_ZN14ActorBomb_Unk1D1Ev kind:function(arm,size=0x14) addr:0x2122a8c
_ZN9ActorBomb8vfunc_18Ej kind:function(arm,size=0x98) addr:0x2122aa0
@@ -595,7 +595,7 @@ _ZN11ActorRefillC2Ei kind:function(arm,size=0x40) addr:0x2134e70
_ZN11ActorRefillD1Ev kind:function(arm,size=0x14) addr:0x2134eb0
_ZN11ActorRefillD0Ev kind:function(arm,size=0x1c) addr:0x2134ec4
_ZN11ActorRefillD2Ev kind:function(arm,size=0x14) addr:0x2134ee0
-_ZN11ActorRefill8vfunc_08Ev kind:function(arm,size=0xf4) addr:0x2134ef4
+_ZN11ActorRefill4InitEv kind:function(arm,size=0xf4) addr:0x2134ef4
_ZN11ActorRefill8vfunc_14Ej kind:function(arm,size=0x2d8) addr:0x2134fe8
_ZN11ActorRefill19func_ov014_02135364Ei kind:function(arm,size=0x54) addr:0x21352c0
_ZN11ActorRefill8vfunc_20Eb kind:function(arm,size=0xbc) addr:0x2135314
@@ -603,25 +603,25 @@ _ZN11ActorRefill19func_ov014_02135474Ev kind:function(arm,size=0x84) addr:0x2135
_ZN16ActorRefillBombsC1Ev kind:function(arm,size=0x34) addr:0x2135454
_ZN16ActorRefillBombsD1Ev kind:function(arm,size=0x14) addr:0x2135488
_ZN16ActorRefillBombsD0Ev kind:function(arm,size=0x1c) addr:0x213549c
-_ZN16ActorRefillBombs8vfunc_b4Ev kind:function(arm,size=0x8) addr:0x21354b8
+_ZN16ActorRefillBombs11GetAmmoItemEv kind:function(arm,size=0x8) addr:0x21354b8
_ZN19ActorRefillBombchusC1Ev kind:function(arm,size=0x34) addr:0x21354c0
_ZN19ActorRefillBombchusD1Ev kind:function(arm,size=0x14) addr:0x21354f4
_ZN19ActorRefillBombchusD0Ev kind:function(arm,size=0x1c) addr:0x2135508
-_ZN19ActorRefillBombchus8vfunc_b4Ev kind:function(arm,size=0x8) addr:0x2135524
+_ZN19ActorRefillBombchus11GetAmmoItemEv kind:function(arm,size=0x8) addr:0x2135524
_ZN17ActorRefillArrowsC1Ev kind:function(arm,size=0x34) addr:0x213552c
_ZN17ActorRefillArrowsD1Ev kind:function(arm,size=0x14) addr:0x2135560
_ZN17ActorRefillArrowsD0Ev kind:function(arm,size=0x1c) addr:0x2135574
-_ZN17ActorRefillArrows8vfunc_b4Ev kind:function(arm,size=0x8) addr:0x2135590
+_ZN17ActorRefillArrows11GetAmmoItemEv kind:function(arm,size=0x8) addr:0x2135590
_ZN15ActorRefillTimeC1Ev kind:function(arm,size=0x34) addr:0x2135598
_ZN15ActorRefillTimeD1Ev kind:function(arm,size=0x14) addr:0x21355cc
_ZN15ActorRefillTimeD0Ev kind:function(arm,size=0x1c) addr:0x21355e0
-_ZN15ActorRefillTime8vfunc_08Ev kind:function(arm,size=0x114) addr:0x21355fc
-_ZN15ActorRefillTime8vfunc_b4Ev kind:function(arm,size=0x8) addr:0x2135710
+_ZN15ActorRefillTime4InitEv kind:function(arm,size=0x114) addr:0x21355fc
+_ZN15ActorRefillTime11GetAmmoItemEv kind:function(arm,size=0x8) addr:0x2135710
_ZN9ActorLSTMC1Ev kind:function(arm,size=0x34) addr:0x2135718
_ZN9ActorLSTMD1Ev kind:function(arm,size=0x14) addr:0x213574c
_ZN9ActorLSTMD0Ev kind:function(arm,size=0x1c) addr:0x2135760
-_ZN9ActorLSTM8vfunc_08Ev kind:function(arm,size=0x118) addr:0x213577c
-_ZN9ActorLSTM8vfunc_b4Ev kind:function(arm,size=0x8) addr:0x2135894
+_ZN9ActorLSTM4InitEv kind:function(arm,size=0x118) addr:0x213577c
+_ZN9ActorLSTM11GetAmmoItemEv kind:function(arm,size=0x8) addr:0x2135894
func_ov014_02135940 kind:function(arm,size=0x34) addr:0x213589c
func_ov014_02135974 kind:function(arm,size=0xc4) addr:0x21358d0
func_ov014_02135a38 kind:function(arm,size=0xc4) addr:0x2135994
@@ -784,7 +784,7 @@ func_ov014_0213ae20 kind:function(arm,size=0x28) addr:0x213ad7c
func_ov014_0213ae48 kind:function(arm,size=0x20) addr:0x213ada4
_ZN10ActorRupee6CreateEv kind:function(arm,size=0x30) addr:0x213adc4
_ZN10ActorRupeeC1Ev kind:function(arm,size=0x34) addr:0x213adf4
-_ZN10ActorRupee8vfunc_08Ev kind:function(arm,size=0x240) addr:0x213ae28
+_ZN10ActorRupee4InitEv kind:function(arm,size=0x240) addr:0x213ae28
_ZN10ActorRupee8vfunc_60Ev kind:function(arm,size=0x10) addr:0x213b068
_ZN10ActorRupee8vfunc_64Ev kind:function(arm,size=0x4) addr:0x213b078
_ZN10ActorRupee4MoveEv kind:function(arm,size=0x6c) addr:0x213b07c
diff --git a/config/usa/arm9/overlays/ov057/symbols.txt b/config/usa/arm9/overlays/ov057/symbols.txt
index 190088e2..99d8cd1a 100644
--- a/config/usa/arm9/overlays/ov057/symbols.txt
+++ b/config/usa/arm9/overlays/ov057/symbols.txt
@@ -36,7 +36,7 @@ _ZN13LinkStateItem19func_ov057_0219a364Ev kind:function(arm,size=0x4c) addr:0x21
_ZN22ActorRope_Unk_0219a3b08vfunc_08EPs kind:function(arm,size=0x4c) addr:0x219a310
_ZN22ActorRope_Unk_0219a3b08vfunc_10EPi kind:function(arm,size=0x64) addr:0x219a35c
_ZN9ActorRopeC2Ev kind:function(arm,size=0x108) addr:0x219a3c0
-_ZN9ActorRope8vfunc_08Ev kind:function(arm,size=0x44) addr:0x219a4c8
+_ZN9ActorRope4InitEv kind:function(arm,size=0x44) addr:0x219a4c8
_ZN9ActorRope19func_ov057_0219a5acEv kind:function(arm,size=0x10c) addr:0x219a50c
_ZN9ActorRope19func_ov057_0219a6b8Ev kind:function(arm,size=0x198) addr:0x219a618
_ZN9ActorRope19func_ov057_0219a850Ev kind:function(arm,size=0x114) addr:0x219a7b0
diff --git a/include/Actor/Actor.hpp b/include/Actor/Actor.hpp
index 2906b670..b58c39c8 100644
--- a/include/Actor/Actor.hpp
+++ b/include/Actor/Actor.hpp
@@ -35,8 +35,8 @@ struct Actor_UnkStruct_020 {
/* 08 */ u8 mUnk_08[2];
/* 0a */ u8 mUnk_0a[2];
/* 0c */ unk8 mUnk_0c;
- /* 0d */ unk8 mUnk_0d;
- /* 0e */ unk8 mUnk_0e;
+ /* 0d */ u8 mUnk_0d;
+ /* 0e */ u8 mUnk_0e;
/* 0f */ unk8 mUnk_0f;
/* 10 */ unk32 mUnk_10;
/* 14 */
@@ -110,8 +110,7 @@ public:
/* 012 */ unk16 mUnk_012;
/* 014 */ Vec3p mUnk_014;
/* 020 */ Actor_UnkStruct_020 mUnk_020;
- /* 034 */ unk32 mUnk_034;
- /* 038 */ unk32 mUnk_038;
+ /* 034 */ ActorRef mUnk_034;
/* 03c */ unk32 mUnk_03c;
/* 040 */ ActorRef mUnk_040;
/* 048 */ Vec3p mPos;
@@ -174,7 +173,7 @@ public:
/* 158 */
/* 00 */ virtual ~Actor();
- /* 08 */ virtual bool vfunc_08();
+ /* 08 */ virtual bool Init();
/* 0c */ virtual bool vfunc_0c();
/* 10 */ virtual void vfunc_10(u32 param1);
/* 14 */ virtual void vfunc_14(u32 param1);
diff --git a/include/Actor/ActorRupee.hpp b/include/Actor/ActorRupee.hpp
index a5fcbea3..983abaae 100644
--- a/include/Actor/ActorRupee.hpp
+++ b/include/Actor/ActorRupee.hpp
@@ -33,7 +33,7 @@ public:
/* 160 */
/* 00 */ virtual ~ActorRupee() override;
- /* 08 */ virtual bool vfunc_08() override;
+ /* 08 */ virtual bool Init() override;
/* 14 */ virtual void vfunc_14(u32 param1) override;
/* 18 */ virtual void vfunc_18(u32 param1) override;
/* 20 */ virtual void vfunc_20(bool param1) override;
diff --git a/include/Actor/ActorSpawner.hpp b/include/Actor/ActorSpawner.hpp
index 94047e10..e99bafb3 100644
--- a/include/Actor/ActorSpawner.hpp
+++ b/include/Actor/ActorSpawner.hpp
@@ -5,10 +5,23 @@
#include "global.h"
#include "types.h"
+#include "Actor/Actor.hpp"
#include "Actor/ActorRef.hpp"
#include "Actor/ActorType.hpp"
+#include "System/SysNew.hpp"
-class ActorSpawner {
+struct ActorSpawnOptions {
+ /* 00 */ Actor_UnkStruct_020 mUnk_00;
+ /* 14 */ s16 mAngle;
+ /* 16 */ unk8 mUnk_16[0x2];
+ /* 18 */ unk32 mUnk_18;
+ /* 1c */ ActorRef mUnk_1c;
+ /* 24 */ unk32 mUnk_24;
+ /* 28 */ unk32 mUnk_28;
+ /* 2c */
+};
+
+class ActorSpawner : public SysObject {
public:
/* 0 (empty) */
@@ -18,8 +31,8 @@ public:
~ActorSpawner();
void func_ov000_020c4014();
void func_ov000_020c4018();
- Actor *CreateActor(ActorTypeId type);
- s32 Spawn(ActorTypeId type, Vec3p *pos, void *param3, ActorRef *ref);
+ Actor *CreateActor(ActorTypeId typeId);
+ s32 Spawn(ActorTypeId type, Vec3p *pos, ActorSpawnOptions *param3, ActorRef *ref);
};
extern ActorSpawner *gActorSpawner;
diff --git a/include/Actor/Dungeon/ActorActionObject.hpp b/include/Actor/Dungeon/ActorActionObject.hpp
index 0bf35dfb..c4e2add3 100644
--- a/include/Actor/Dungeon/ActorActionObject.hpp
+++ b/include/Actor/Dungeon/ActorActionObject.hpp
@@ -10,7 +10,7 @@ public:
/* 158 */
/* 00 */ virtual ~ActorActionObject() override;
- /* 08 */ virtual bool vfunc_08() override;
+ /* 08 */ virtual bool Init() override;
/* 14 */ virtual void vfunc_14(u32 param1) override;
/* 18 */ virtual void vfunc_18(u32 param1) override;
/* b4 */
diff --git a/include/Actor/Dungeon/ActorEventIcon.hpp b/include/Actor/Dungeon/ActorEventIcon.hpp
index ccef162d..a7a86751 100644
--- a/include/Actor/Dungeon/ActorEventIcon.hpp
+++ b/include/Actor/Dungeon/ActorEventIcon.hpp
@@ -17,7 +17,7 @@ public:
/* 160 */ UnkStruct_02035064 mUnk_160;
/* 00 */ virtual ~ActorEventIcon() override;
- /* 08 */ virtual bool vfunc_08() override;
+ /* 08 */ virtual bool Init() override;
/* 14 */ virtual void vfunc_14(u32 param1) override;
/* 18 */ virtual void vfunc_18(u32 param1) override;
/* 1c */ virtual void vfunc_1c(u16 *param1) override;
diff --git a/include/Actor/Dungeon/ActorSwitchObject.hpp b/include/Actor/Dungeon/ActorSwitchObject.hpp
index 61cc3267..0658fcb2 100644
--- a/include/Actor/Dungeon/ActorSwitchObject.hpp
+++ b/include/Actor/Dungeon/ActorSwitchObject.hpp
@@ -21,7 +21,7 @@ public:
/* 198 */
/* 00 */ virtual ~ActorSwitchObject() override;
- /* 08 */ virtual bool vfunc_08() override;
+ /* 08 */ virtual bool Init() override;
/* 0c */ virtual bool vfunc_0c() override;
/* 14 */ virtual void vfunc_14(u32 param1) override;
/* 18 */ virtual void vfunc_18(u32 param1) override;
diff --git a/include/Actor/Navi/ActorNavi.hpp b/include/Actor/Navi/ActorNavi.hpp
index 86774de4..f8a86acc 100644
--- a/include/Actor/Navi/ActorNavi.hpp
+++ b/include/Actor/Navi/ActorNavi.hpp
@@ -40,7 +40,7 @@ public:
/* 3c8 */
/* 00 */ virtual ~ActorNavi() override;
- /* 08 */ virtual bool vfunc_08() override;
+ /* 08 */ virtual bool Init() override;
/* 20 */ virtual void vfunc_20(bool param1) override;
/* 8c */ virtual bool vfunc_8c() override;
/* b4 */ virtual FairyId GetFairyId() override;
diff --git a/include/Actor/Navi/ActorNaviBase.hpp b/include/Actor/Navi/ActorNaviBase.hpp
index 59db230b..c7dd7cea 100644
--- a/include/Actor/Navi/ActorNaviBase.hpp
+++ b/include/Actor/Navi/ActorNaviBase.hpp
@@ -46,7 +46,7 @@ public:
/* 294 */
/* 00 */ virtual ~ActorNaviBase() override;
- /* 08 */ virtual bool vfunc_08() override;
+ /* 08 */ virtual bool Init() override;
/* 10 */ virtual void vfunc_10(u32 param1) override;
/* 14 */ virtual void vfunc_14(u32 param1) override;
/* 18 */ virtual void vfunc_18(u32 param1) override;
diff --git a/include/Actor/Player/ActorArrow.hpp b/include/Actor/Player/ActorArrow.hpp
index a0ced1e3..021007f6 100644
--- a/include/Actor/Player/ActorArrow.hpp
+++ b/include/Actor/Player/ActorArrow.hpp
@@ -36,7 +36,7 @@ public:
/* 1b8 */
/* 00 */ virtual ~ActorArrow() override;
- /* 08 */ virtual bool vfunc_08() override;
+ /* 08 */ virtual bool Init() override;
/* 10 */ virtual void vfunc_10(u32 param1) override;
/* 14 */ virtual void vfunc_14(u32 param1) override;
/* 18 */ virtual void vfunc_18(u32 param1) override;
diff --git a/include/Actor/Player/ActorBlast.hpp b/include/Actor/Player/ActorBlast.hpp
index a1e8b5fe..431cc1d7 100644
--- a/include/Actor/Player/ActorBlast.hpp
+++ b/include/Actor/Player/ActorBlast.hpp
@@ -19,7 +19,7 @@ public:
/* 164 */
/* 00 */ virtual ~ActorBlast() override;
- /* 08 */ virtual bool vfunc_08() override;
+ /* 08 */ virtual bool Init() override;
/* 14 */ virtual void vfunc_14(u32 param1) override;
/* 18 */ virtual void vfunc_18(u32 param1) override;
/* b4 */
diff --git a/include/Actor/Player/ActorBomb.hpp b/include/Actor/Player/ActorBomb.hpp
index 17538bf8..3817a73e 100644
--- a/include/Actor/Player/ActorBomb.hpp
+++ b/include/Actor/Player/ActorBomb.hpp
@@ -54,7 +54,7 @@ public:
/* 26c */
/* 00 */ virtual ~ActorBomb() override;
- /* 08 */ virtual bool vfunc_08() override;
+ /* 08 */ virtual bool Init() override;
/* 14 */ virtual void vfunc_14(u32 param1) override;
/* 18 */ virtual void vfunc_18(u32 param1) override;
/* 20 */ virtual void vfunc_20(bool param1) override;
diff --git a/include/Actor/Player/ActorRefill.hpp b/include/Actor/Player/ActorRefill.hpp
index bdd334ff..eeab2793 100644
--- a/include/Actor/Player/ActorRefill.hpp
+++ b/include/Actor/Player/ActorRefill.hpp
@@ -20,10 +20,10 @@ public:
ActorRefill(unk32 param1);
/* 00 */ virtual ~ActorRefill() override;
- /* 08 */ virtual bool vfunc_08() override;
+ /* 08 */ virtual bool Init() override;
/* 14 */ virtual void vfunc_14(u32 param1) override;
/* 20 */ virtual void vfunc_20(bool param1) override;
- /* b4 */ virtual ItemFlag vfunc_b4() = 0;
+ /* b4 */ virtual ItemFlag GetAmmoItem() = 0;
/* b8 */
bool func_ov014_02135364(unk32 param1);
@@ -42,7 +42,7 @@ public:
static ActorRefillBombs *Create();
/* 00 */ virtual ~ActorRefillBombs() override;
- /* b4 */ virtual ItemFlag vfunc_b4() override;
+ /* b4 */ virtual ItemFlag GetAmmoItem() override;
/* b8 */
};
@@ -58,7 +58,7 @@ public:
static ActorRefillBombchus *Create();
/* 00 */ virtual ~ActorRefillBombchus() override;
- /* b4 */ virtual ItemFlag vfunc_b4() override;
+ /* b4 */ virtual ItemFlag GetAmmoItem() override;
/* b8 */
};
@@ -74,7 +74,7 @@ public:
static ActorRefillArrows *Create();
/* 00 */ virtual ~ActorRefillArrows() override;
- /* b4 */ virtual ItemFlag vfunc_b4() override;
+ /* b4 */ virtual ItemFlag GetAmmoItem() override;
/* b8 */
};
@@ -90,8 +90,8 @@ public:
static ActorRefillTime *Create();
/* 00 */ virtual ~ActorRefillTime() override;
- /* 08 */ virtual bool vfunc_08() override;
- /* b4 */ virtual ItemFlag vfunc_b4() override;
+ /* 08 */ virtual bool Init() override;
+ /* b4 */ virtual ItemFlag GetAmmoItem() override;
/* b8 */
};
@@ -107,7 +107,7 @@ public:
static ActorLSTM *Create();
/* 00 */ virtual ~ActorLSTM() override;
- /* 08 */ virtual bool vfunc_08() override;
- /* b4 */ virtual ItemFlag vfunc_b4() override;
+ /* 08 */ virtual bool Init() override;
+ /* b4 */ virtual ItemFlag GetAmmoItem() override;
/* b8 */
};
diff --git a/include/Actor/Player/ActorRope.hpp b/include/Actor/Player/ActorRope.hpp
index 1d70a5fd..245a7851 100644
--- a/include/Actor/Player/ActorRope.hpp
+++ b/include/Actor/Player/ActorRope.hpp
@@ -46,7 +46,7 @@ public:
/* 1a0 */
/* 00 */ virtual ~ActorRope() override;
- /* 08 */ virtual bool vfunc_08() override;
+ /* 08 */ virtual bool Init() override;
/* 10 */ virtual void vfunc_10(u32 param1) override;
/* 14 */ virtual void vfunc_14(u32 param1) override;
/* 18 */ virtual void vfunc_18(u32 param1) override;
diff --git a/include/Item/Item.hpp b/include/Item/Item.hpp
index 4d70c9f1..cea5c551 100644
--- a/include/Item/Item.hpp
+++ b/include/Item/Item.hpp
@@ -50,7 +50,7 @@ enum ItemFlag_ {
/* 0x2d */ ItemFlag_SwordsmansScroll = 45,
/* 0x2e */ ItemFlag_CycloneSlate = 46,
- /* 0x2f */ ItemFlag_Unk_47 = 47,
+ /* 0x2f */ ItemFlag_BigCatchLure = 47,
/* 0x60 */ ItemFlag_TreasureChart1 = 96,
/* 0x61 */ ItemFlag_TreasureChart2 = 97,
@@ -224,7 +224,7 @@ enum ItemId_ {
/* 0x7d */ ItemId_Unk_125 = 125,
/* 0x7e */ ItemId_Unk_126 = 126,
/* 0x7f */ ItemId_CycloneSlate = 127,
- /* 0x80 */ ItemId_Unk_128 = 128,
+ /* 0x80 */ ItemId_BigCatchLure = 128,
/* 0x81 */ ItemId_Rupoor10 = 129,
/* 0x82 */ ItemId_Rupoor50 = 130,
/* 0x83 */ ItemId_Unk_131 = 131,
diff --git a/include/Save/AdventureFlags.hpp b/include/Save/AdventureFlags.hpp
index 0484fba8..39d2e409 100644
--- a/include/Save/AdventureFlags.hpp
+++ b/include/Save/AdventureFlags.hpp
@@ -23,6 +23,10 @@ enum AdventureFlag_ {
/* 0x30 */ AdventureFlag_Cannon = 48,
+ /* 0x33 */ AdventureFlag_RegalNecklace = 51,
+
+ /* 0x7a */ AdventureFlag_CourageCrest = 122,
+
/* 0x7d */ AdventureFlag_Azurine = 125,
/* 0x7e */ AdventureFlag_Crimsonine = 126,
/* 0x7f */ AdventureFlag_Aquanine = 127,
@@ -30,11 +34,26 @@ enum AdventureFlag_ {
/* 0x8c */ AdventureFlag_SalvageArm = 140,
+ /* 0xa2 */ AdvantureFlag_HerosNewClothes = 162,
+ /* 0xa3 */ AdvantureFlag_Kaleidoscope = 163,
+ /* 0xa4 */ AdventureFlag_GuardNotebook = 164,
+
+ /* 0xa7 */ AdventureFlag_WoodHeart = 167,
+
+ /* 0xb6 */ AdventureFlag_SpawnFinalPhantoms = 182,
+
/* 0x126 */ AdventureFlag_ReceivedGoldenChimney = 294,
/* 0x127 */ AdventureFlag_ReceivedGoldenHandrail = 295,
/* 0x128 */ AdventureFlag_ReceivedGoldenCannon = 296,
/* 0x129 */ AdventureFlag_ReceivedGoldenHull = 297,
+ /* 0x137 */ AdventureFlag_FrogGlyph_MercayIsland = 311,
+ /* 0x138 */ AdventureFlag_FrogGlyph_MolidaIsland = 312,
+ /* 0x139 */ AdventureFlag_FrogGlyph_BannanIsland = 313,
+ /* 0x13a */ AdventureFlag_FrogGlyph_DeeEssIsland = 314,
+ /* 0x13b */ AdventureFlag_FrogGlyph_IsleOfFrost = 315,
+ /* 0x13c */ AdventureFlag_FrogGlyph_NorthEast = 316,
+
/* 0x187 */ AdventureFlag_COUNT = 391,
};
diff --git a/src/00_Core/Actor/Actor.cpp b/src/00_Core/Actor/Actor.cpp
index 4ef80de9..4263af4d 100644
--- a/src/00_Core/Actor/Actor.cpp
+++ b/src/00_Core/Actor/Actor.cpp
@@ -48,8 +48,7 @@ ARM Actor::Actor() :
mUnk_010(0),
mUnk_011(0),
mUnk_012(0),
- mUnk_034(-1),
- mUnk_038(-1),
+ mUnk_034(-1, -1),
mUnk_03c(-1),
mUnk_040(-1, -1),
mGravity(FLOAT_TO_Q20(0.0498)),
@@ -113,7 +112,7 @@ ARM Actor::Actor() :
ARM Actor::~Actor() {}
-ARM bool Actor::vfunc_08() {
+ARM bool Actor::Init() {
return true;
}
diff --git a/src/00_Core/Actor/ActorManager.cpp b/src/00_Core/Actor/ActorManager.cpp
index fed1075e..955c447d 100644
--- a/src/00_Core/Actor/ActorManager.cpp
+++ b/src/00_Core/Actor/ActorManager.cpp
@@ -154,7 +154,7 @@ ARM Actor *ActorManager::GetActor(ActorRef *ref) {
ARM bool FilterActor::Filter(Actor *actor) {
if (mType != actor->mType) return false;
- if (mUnk_08 != -1 && mUnk_08 != actor->mUnk_034) return false;
+ if (mUnk_08 != -1 && mUnk_08 != actor->mUnk_034.id) return false;
if (mExcludeRefs != NULL) {
for (s32 i = 0; mExcludeRefs[i].id != -1; ++i) {
ActorRef *ref = &mExcludeRefs[i];
diff --git a/src/00_Core/Actor/ActorSpawner.cpp b/src/00_Core/Actor/ActorSpawner.cpp
index 76b4ae74..55cf1a57 100644
--- a/src/00_Core/Actor/ActorSpawner.cpp
+++ b/src/00_Core/Actor/ActorSpawner.cpp
@@ -1,10 +1,98 @@
#include "Actor/ActorSpawner.hpp"
+#include "Actor/ActorManager.hpp"
+#include "Map/MapManager.hpp"
-ActorSpawner *ActorSpawner::Create() {}
-void ActorSpawner::Destroy() {}
-ActorSpawner::ActorSpawner() {}
-ActorSpawner::~ActorSpawner() {}
-void ActorSpawner::func_ov000_020c4014() {}
-void ActorSpawner::func_ov000_020c4018() {}
-Actor *ActorSpawner::CreateActor(ActorTypeId type) {}
-s32 ActorSpawner::Spawn(ActorTypeId type, Vec3p *pos, void *param3, ActorRef *ref) {}
+extern u32 *data_027e0ce0[];
+ARM ActorSpawner *ActorSpawner::Create() {
+ gActorSpawner = new(data_027e0ce0[1], 4) ActorSpawner();
+}
+
+ARM void ActorSpawner::Destroy() {
+ delete gActorSpawner;
+ gActorSpawner = NULL;
+}
+
+ARM ActorSpawner::ActorSpawner() {}
+
+ARM ActorSpawner::~ActorSpawner() {}
+
+ARM void ActorSpawner::func_ov000_020c4014() {}
+
+ARM void ActorSpawner::func_ov000_020c4018() {}
+
+ARM Actor *ActorSpawner::CreateActor(ActorTypeId typeId) {
+ Actor *actor = NULL;
+ ActorType *type = ActorType::Find(typeId);
+ if (type != NULL) {
+ actor = type->create();
+ }
+ return actor;
+}
+
+extern "C" unk32 GetCardinal(s16 angle);
+ARM s32 ActorSpawner::Spawn(ActorTypeId type, Vec3p *pos, ActorSpawnOptions *options, ActorRef *ref) {
+ ActorManager *actorManager = gActorManager;
+ u16 maxActors = actorManager->mMaxActors;
+ s32 id = -1;
+ s32 index;
+ Actor **actorSlot = actorManager->mActorTable;
+ for (index = 0; index < maxActors; index++, actorSlot++) {
+ if (*actorSlot != NULL) {
+ continue;
+ }
+
+ Actor *actor = this->CreateActor(type);
+ *actorSlot = actor;
+ if (actor == NULL) {
+ if (ref != NULL) {
+ ref->Reset();
+ }
+ return -1;
+ }
+ actor->mType = type;
+ (*actorSlot)->mRef.id = actorManager->mNextActorId;
+ (*actorSlot)->mRef.index = index;
+ (*actorSlot)->mUnk_014 = *pos;
+ (*actorSlot)->mUnk_020 = options->mUnk_00;
+ (*actorSlot)->mAngle = options->mAngle;
+ (*actorSlot)->mUnk_012 = options->mAngle;
+ (*actorSlot)->mUnk_074 = GetCardinal(options->mAngle);
+ if (options->mUnk_18 >= 0xffff) {
+ (*actorSlot)->mUnk_03c = -1;
+ } else {
+ (*actorSlot)->mUnk_03c = options->mUnk_18;
+ }
+ (*actorSlot)->mUnk_034 = options->mUnk_1c;
+ (*actorSlot)->mUnk_140 = options->mUnk_24;
+ (*actorSlot)->mUnk_144 = options->mUnk_28;
+ Actor *actor2 = *actorSlot;
+ actor2->mPos = *pos;
+ actor2->mPrevPos = *pos;
+ (*actorSlot)->mUnk_010 = gMapManager->GetCourseData_Unk_1c();
+ (*actorSlot)->mUnk_011 = gMapManager->GetCourseData_Unk_1d();
+ u16 nextIndex = index + 1;
+ if (actorManager->mMaxActorIndex < nextIndex) {
+ actorManager->mMaxActorIndex = nextIndex;
+ }
+ actorManager->mCacheEmptyActorIndex = index;
+
+ id = actorManager->mNextActorId;
+ if (ref != NULL) {
+ *ref = ActorRef(id, index);
+ }
+ actorManager->mNextActorId += 1;
+ actorManager->mNumActors += 1;
+ if (!(*actorSlot)->Init()) {
+ (*actorSlot)->mAlive = false;
+ if (ref != NULL) {
+ ref->Reset();
+ }
+ return -1;
+ }
+ break;
+ }
+ if ((id == -1) && (ref != NULL)) {
+ ref->Reset();
+ }
+ return id;
+}
diff --git a/src/00_Core/Actor/Dungeon/ActorActionObject.cpp b/src/00_Core/Actor/Dungeon/ActorActionObject.cpp
index 0a2c3970..ea2dfec2 100644
--- a/src/00_Core/Actor/Dungeon/ActorActionObject.cpp
+++ b/src/00_Core/Actor/Dungeon/ActorActionObject.cpp
@@ -18,7 +18,7 @@ ARM ActorActionObject::ActorActionObject() {}
ARM ActorActionObject::~ActorActionObject() {}
// non-matching
-ARM bool ActorActionObject::vfunc_08() {
+ARM bool ActorActionObject::Init() {
mGravity = 0;
mHitbox.pos = gVec3p_ZERO;
mHitbox.size = -1;
diff --git a/src/00_Core/Actor/Dungeon/ActorEventIcon.cpp b/src/00_Core/Actor/Dungeon/ActorEventIcon.cpp
index 94e7381d..22e35d8e 100644
--- a/src/00_Core/Actor/Dungeon/ActorEventIcon.cpp
+++ b/src/00_Core/Actor/Dungeon/ActorEventIcon.cpp
@@ -4,7 +4,7 @@ ActorType ActorEventIcon::gType = ActorType(ActorTypeId_EventIcon, (ActorCreateF
ActorEventIcon *ActorEventIcon::Create() {}
ActorEventIcon::ActorEventIcon() {}
-bool ActorEventIcon::vfunc_08() {}
+bool ActorEventIcon::Init() {}
void ActorEventIcon::vfunc_14(u32 param1) {}
void ActorEventIcon::vfunc_18(u32 param1) {}
u32 ActorEventIcon::func_ov000_02090648(u32 param1) {}
diff --git a/src/00_Core/Actor/Dungeon/ActorSwitchObject.cpp b/src/00_Core/Actor/Dungeon/ActorSwitchObject.cpp
index c767e5b9..78e229db 100644
--- a/src/00_Core/Actor/Dungeon/ActorSwitchObject.cpp
+++ b/src/00_Core/Actor/Dungeon/ActorSwitchObject.cpp
@@ -5,8 +5,8 @@ ActorType ActorSwitchObject::gType = ActorType(ActorTypeId_SwitchObject, (ActorC
ActorSwitchObject *ActorSwitchObject::Create() {}
-bool ActorSwitchObject::vfunc_08() {
- Actor::vfunc_08();
+bool ActorSwitchObject::Init() {
+ Actor::Init();
this->func_ov000_0208fc7c();
this->mUnk_130 = 0;
return true;
diff --git a/src/00_Core/Item/ItemManager.cpp b/src/00_Core/Item/ItemManager.cpp
index 4b2e7b44..3c77b0ab 100644
--- a/src/00_Core/Item/ItemManager.cpp
+++ b/src/00_Core/Item/ItemManager.cpp
@@ -461,7 +461,7 @@ static char *sItemModelNames2[8] = {
[ItemId_SandOfHours - ItemId_SwordsmanScroll] = "sand_m",
};
static char *sItemModelNames3[9] = {
- [ItemId_CycloneSlate - ItemId_CycloneSlate] = "compass", [ItemId_Unk_128 - ItemId_CycloneSlate] = "lure",
+ [ItemId_CycloneSlate - ItemId_CycloneSlate] = "compass", [ItemId_BigCatchLure - ItemId_CycloneSlate] = "lure",
[ItemId_Rupoor10 - ItemId_CycloneSlate] = "rupee_bb", [ItemId_Rupoor50 - ItemId_CycloneSlate] = "rupee_bb",
[ItemId_Unk_131 - ItemId_CycloneSlate] = NULL, [ItemId_Unk_132 - ItemId_CycloneSlate] = NULL,
[ItemId_Unk_133 - ItemId_CycloneSlate] = NULL, [ItemId_Unk_134 - ItemId_CycloneSlate] = NULL,
@@ -778,8 +778,8 @@ THUMB void ItemManager::GiveItem(ItemId id) {
SET_FLAG(mItemFlags.flags, ItemFlag_CycloneSlate);
} break;
- case ItemId_Unk_128: {
- SET_FLAG(mItemFlags.flags, ItemFlag_Unk_47);
+ case ItemId_BigCatchLure: {
+ SET_FLAG(mItemFlags.flags, ItemFlag_BigCatchLure);
} break;
case ItemId_Rupoor10: {
diff --git a/src/04_Load/Actor/Navi/ActorNaviBase.cpp b/src/04_Load/Actor/Navi/ActorNaviBase.cpp
index c4f5a069..21d91459 100644
--- a/src/04_Load/Actor/Navi/ActorNaviBase.cpp
+++ b/src/04_Load/Actor/Navi/ActorNaviBase.cpp
@@ -3,4 +3,4 @@
ActorNaviBase::ActorNaviBase() {}
ActorNaviBase::~ActorNaviBase() {}
void func_ov004_021079d4(unk32 *param1) {}
-bool ActorNaviBase::vfunc_08() {}
+bool ActorNaviBase::Init() {}
diff --git a/src/14_Land/Actor/ActorRupee.cpp b/src/14_Land/Actor/ActorRupee.cpp
index 32a95333..23ac82dc 100644
--- a/src/14_Land/Actor/ActorRupee.cpp
+++ b/src/14_Land/Actor/ActorRupee.cpp
@@ -36,7 +36,7 @@ ActorRupee::ActorRupee() {
}
// https://decomp.me/scratch/1qjCc
-bool ActorRupee::vfunc_08() {
+bool ActorRupee::Init() {
u32 dVar5;
u32 iVar7;
diff --git a/src/14_Land/Actor/Player/ActorArrow.cpp b/src/14_Land/Actor/Player/ActorArrow.cpp
index 48d27797..96529bf4 100644
--- a/src/14_Land/Actor/Player/ActorArrow.cpp
+++ b/src/14_Land/Actor/Player/ActorArrow.cpp
@@ -11,7 +11,7 @@ void ActorArrow::func_ov014_0211fd80(unk32 param1) {}
void ActorArrow::func_ov014_0211fd90() {}
ActorArrow::ActorArrow() {}
ActorArrow::~ActorArrow() {}
-bool ActorArrow::vfunc_08() {}
+bool ActorArrow::Init() {}
bool ActorArrow::CollidesWith(Actor *other) {}
void ActorArrow::func_ov014_021200d4() {}
void ActorArrow::func_ov014_02120118() {}
diff --git a/src/14_Land/Actor/Player/ActorBlast.cpp b/src/14_Land/Actor/Player/ActorBlast.cpp
index 0f892335..06f82f63 100644
--- a/src/14_Land/Actor/Player/ActorBlast.cpp
+++ b/src/14_Land/Actor/Player/ActorBlast.cpp
@@ -6,7 +6,7 @@ ActorBlast *ActorBlast::Create() {}
void ActorBlast_Unk1::vfunc_10(s32 *param1) {}
ActorBlast::ActorBlast() {}
ActorBlast::~ActorBlast() {}
-bool ActorBlast::vfunc_08() {}
+bool ActorBlast::Init() {}
void ActorBlast::vfunc_14(u32 param1) {}
ActorBlast_Unk1::~ActorBlast_Unk1() {}
void ActorBlast::vfunc_18(u32 param1) {}
diff --git a/src/14_Land/Actor/Player/ActorBomb.cpp b/src/14_Land/Actor/Player/ActorBomb.cpp
index 1ee7c1bc..91224f12 100644
--- a/src/14_Land/Actor/Player/ActorBomb.cpp
+++ b/src/14_Land/Actor/Player/ActorBomb.cpp
@@ -9,7 +9,7 @@ ActorBomb::ActorBomb() {}
ActorBomb_Unk2::~ActorBomb_Unk2() {}
ActorBomb::~ActorBomb() {}
ActorBomb_Unk2::ActorBomb_Unk2() {}
-bool ActorBomb::vfunc_08() {}
+bool ActorBomb::Init() {}
void ActorBomb::vfunc_14(u32 param1) {}
ActorBomb_Unk1::~ActorBomb_Unk1() {}
void ActorBomb::vfunc_18(u32 param1) {}
diff --git a/src/14_Land/Actor/Player/ActorRefill.cpp b/src/14_Land/Actor/Player/ActorRefill.cpp
index 0e6a9edf..91efd351 100644
--- a/src/14_Land/Actor/Player/ActorRefill.cpp
+++ b/src/14_Land/Actor/Player/ActorRefill.cpp
@@ -41,16 +41,16 @@ ARM ActorRefill::ActorRefill(unk32 param1) :
ARM ActorRefill::~ActorRefill() {}
-ARM bool ActorRefill::vfunc_08() {
+ARM bool ActorRefill::Init() {
ItemManager *itemManager;
- if (this->vfunc_b4() == ItemFlag_None) {
+ if (this->GetAmmoItem() == ItemFlag_None) {
if (data_027e0d38->func_ov000_02078b40() != 3) {
return false;
}
} else {
ItemManager *itemManager = gItemManager;
- ItemFlag item = this->vfunc_b4();
+ ItemFlag item = this->GetAmmoItem();
if (!itemManager->HasItem(item)) {
return false;
}
@@ -111,11 +111,11 @@ ARM void ActorRefill::vfunc_14(u32 param1) {
case 4:
case 5:
if (this->CollidesWithPlayer(PlayerCollide_PickupFlags) != 0) {
- if (this->vfunc_b4() == -1) {
+ if (this->GetAmmoItem() == -1) {
data_027e103c->func_ov000_020cfbf0(mUnk_158 * 60, 1, 0);
} else {
ItemManager *itemManager = gItemManager;
- itemManager->GiveAmmo(this->vfunc_b4(), mUnk_158);
+ itemManager->GiveAmmo(this->GetAmmoItem(), mUnk_158);
}
func_ov000_020d7ad4(&data_ov000_020eec9c, 0x100);
this->func_ov014_02135364(3);
@@ -227,7 +227,7 @@ ARM ActorRefillBombs::ActorRefillBombs() :
ARM ActorRefillBombs::~ActorRefillBombs() {}
-ARM ItemFlag ActorRefillBombs::vfunc_b4() {
+ARM ItemFlag ActorRefillBombs::GetAmmoItem() {
return ItemFlag_BombBag;
}
@@ -239,7 +239,7 @@ ARM ActorRefillBombchus::ActorRefillBombchus() :
ARM ActorRefillBombchus::~ActorRefillBombchus() {}
-ARM ItemFlag ActorRefillBombchus::vfunc_b4() {
+ARM ItemFlag ActorRefillBombchus::GetAmmoItem() {
return ItemFlag_BombchuBag;
}
@@ -251,7 +251,7 @@ ARM ActorRefillArrows::ActorRefillArrows() :
ARM ActorRefillArrows::~ActorRefillArrows() {}
-ARM ItemFlag ActorRefillArrows::vfunc_b4() {
+ARM ItemFlag ActorRefillArrows::GetAmmoItem() {
return ItemFlag_Bow;
}
@@ -263,8 +263,8 @@ ARM ActorRefillTime::ActorRefillTime() :
ARM ActorRefillTime::~ActorRefillTime() {}
-ARM bool ActorRefillTime::vfunc_08() {
- if (!ActorRefill::vfunc_08()) {
+ARM bool ActorRefillTime::Init() {
+ if (!ActorRefill::Init()) {
return false;
}
switch (mUnk_020.mUnk_00[0]) {
@@ -293,7 +293,7 @@ ARM bool ActorRefillTime::vfunc_08() {
return true;
}
-ARM ItemFlag ActorRefillTime::vfunc_b4() {
+ARM ItemFlag ActorRefillTime::GetAmmoItem() {
return ItemFlag_None;
}
@@ -305,8 +305,8 @@ ARM ActorLSTM::ActorLSTM() :
ARM ActorLSTM::~ActorLSTM() {}
-ARM bool ActorLSTM::vfunc_08() {
- if (!ActorRefill::vfunc_08()) {
+ARM bool ActorLSTM::Init() {
+ if (!ActorRefill::Init()) {
return false;
}
switch (mUnk_020.mUnk_00[0]) {
@@ -335,6 +335,6 @@ ARM bool ActorLSTM::vfunc_08() {
return true;
}
-ARM ItemFlag ActorLSTM::vfunc_b4() {
+ARM ItemFlag ActorLSTM::GetAmmoItem() {
return ItemFlag_None;
}
diff --git a/src/57_Rope/Actor/Player/ActorRope.cpp b/src/57_Rope/Actor/Player/ActorRope.cpp
index 023f134b..40ab1aa4 100644
--- a/src/57_Rope/Actor/Player/ActorRope.cpp
+++ b/src/57_Rope/Actor/Player/ActorRope.cpp
@@ -5,7 +5,7 @@ ActorRope_Unk_0219a3b0 gUnk_0219a3b0;
void ActorRope_Unk_0219a3b0::vfunc_08(unk16 *param1) {}
void ActorRope_Unk_0219a3b0::vfunc_10(s32 *param1) {}
ActorRope::ActorRope() {}
-bool ActorRope::vfunc_08() {}
+bool ActorRope::Init() {}
q20 ActorRope::func_ov057_0219a5ac() {}
void ActorRope::func_ov057_0219a6b8() {}
void ActorRope::func_ov057_0219a850() {}