diff --git a/config/eur/arm9/dtcm/symbols.txt b/config/eur/arm9/dtcm/symbols.txt index 6fe927d5..62eea4b0 100644 --- a/config/eur/arm9/dtcm/symbols.txt +++ b/config/eur/arm9/dtcm/symbols.txt @@ -146,7 +146,7 @@ gPlayerControlDatas kind:bss addr:0x27e0fd8 gLinkStates kind:bss addr:0x27e0fdc data_027e0fe0 kind:bss addr:0x27e0fe0 gActorManager kind:bss addr:0x27e0fe4 -data_027e0fe8 kind:bss addr:0x27e0fe8 +gActorSpawner kind:bss addr:0x27e0fe8 data_027e0fec kind:bss addr:0x27e0fec data_027e0ff0 kind:bss addr:0x27e0ff0 data_027e0ff4 kind:bss addr:0x27e0ff4 diff --git a/config/eur/arm9/overlays/ov000/symbols.txt b/config/eur/arm9/overlays/ov000/symbols.txt index e0bce424..ebf28688 100644 --- a/config/eur/arm9/overlays/ov000/symbols.txt +++ b/config/eur/arm9/overlays/ov000/symbols.txt @@ -2959,14 +2959,14 @@ func_ov000_020c3ef0 kind:function(arm,size=0x18) addr:0x20c3ef0 func_ov000_020c3f08 kind:function(arm,size=0x34) addr:0x20c3f08 func_ov000_020c3f3c kind:function(arm,size=0x18) addr:0x20c3f3c func_ov000_020c3f54 kind:function(arm,size=0x48) addr:0x20c3f54 -func_ov000_020c3f9c kind:function(arm,size=0x38) addr:0x20c3f9c -func_ov000_020c3fd4 kind:function(arm,size=0x38) addr:0x20c3fd4 -func_ov000_020c400c kind:function(arm,size=0x4) addr:0x20c400c -func_ov000_020c4010 kind:function(arm,size=0x4) addr:0x20c4010 -func_ov000_020c4014 kind:function(arm,size=0x4) addr:0x20c4014 -func_ov000_020c4018 kind:function(arm,size=0x4) addr:0x20c4018 -func_ov000_020c401c kind:function(arm,size=0x2c) addr:0x20c401c -SpawnActor kind:function(arm,size=0x290) addr:0x20c4048 +_ZN12ActorSpawner6CreateEv kind:function(arm,size=0x38) addr:0x20c3f9c +_ZN12ActorSpawner7DestroyEv kind:function(arm,size=0x38) addr:0x20c3fd4 +_ZN12ActorSpawnerC1Ev kind:function(arm,size=0x4) addr:0x20c400c +_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 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/usa/arm9/dtcm/symbols.txt b/config/usa/arm9/dtcm/symbols.txt index 6fe927d5..62eea4b0 100644 --- a/config/usa/arm9/dtcm/symbols.txt +++ b/config/usa/arm9/dtcm/symbols.txt @@ -146,7 +146,7 @@ gPlayerControlDatas kind:bss addr:0x27e0fd8 gLinkStates kind:bss addr:0x27e0fdc data_027e0fe0 kind:bss addr:0x27e0fe0 gActorManager kind:bss addr:0x27e0fe4 -data_027e0fe8 kind:bss addr:0x27e0fe8 +gActorSpawner kind:bss addr:0x27e0fe8 data_027e0fec kind:bss addr:0x27e0fec data_027e0ff0 kind:bss addr:0x27e0ff0 data_027e0ff4 kind:bss addr:0x27e0ff4 diff --git a/config/usa/arm9/overlays/ov000/symbols.txt b/config/usa/arm9/overlays/ov000/symbols.txt index 53a8162a..d243eee1 100644 --- a/config/usa/arm9/overlays/ov000/symbols.txt +++ b/config/usa/arm9/overlays/ov000/symbols.txt @@ -2861,14 +2861,14 @@ func_ov000_020c3ef0 kind:function(arm,size=0x18) addr:0x20c3e90 func_ov000_020c3f08 kind:function(arm,size=0x34) addr:0x20c3ea8 func_ov000_020c3f3c kind:function(arm,size=0x18) addr:0x20c3edc func_ov000_020c3f54 kind:function(arm,size=0x48) addr:0x20c3ef4 -func_ov000_020c3f9c kind:function(arm,size=0x38) addr:0x20c3f3c -func_ov000_020c3fd4 kind:function(arm,size=0x38) addr:0x20c3f74 -func_ov000_020c400c kind:function(arm,size=0x4) addr:0x20c3fac -func_ov000_020c4010 kind:function(arm,size=0x4) addr:0x20c3fb0 -func_ov000_020c4014 kind:function(arm,size=0x4) addr:0x20c3fb4 -func_ov000_020c4018 kind:function(arm,size=0x4) addr:0x20c3fb8 -func_ov000_020c401c kind:function(arm,size=0x2c) addr:0x20c3fbc -SpawnActor kind:function(arm,size=0x290) addr:0x20c3fe8 +_ZN12ActorSpawner6CreateEv kind:function(arm,size=0x38) addr:0x20c3f3c +_ZN12ActorSpawner7DestroyEv kind:function(arm,size=0x38) addr:0x20c3f74 +_ZN12ActorSpawnerC1Ev kind:function(arm,size=0x4) addr:0x20c3fac +_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 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/include/Actor/ActorSpawner.hpp b/include/Actor/ActorSpawner.hpp new file mode 100644 index 00000000..e417ddcc --- /dev/null +++ b/include/Actor/ActorSpawner.hpp @@ -0,0 +1,25 @@ +#pragma once + +#include + +#include "global.h" +#include "types.h" + +#include "Actor/ActorRef.hpp" +#include "Actor/ActorType.hpp" + +class ActorSpawner { +public: + /* 0 (empty) */ + + static ActorSpawner *Create(); + static void Destroy(); + ActorSpawner(); + ~ActorSpawner(); + void _ZN12ActorSpawner19func_ov000_020c4014Ev(); + void _ZN12ActorSpawner19func_ov000_020c4018Ev(); + Actor *CreateActor(ActorTypeId type); + s32 Spawn(ActorTypeId type, Vec3p *pos, void *param3, ActorRef *ref); +}; + +extern ActorSpawner *gActorSpawner; diff --git a/src/00_Core/Actor/ActorSpawner.cpp b/src/00_Core/Actor/ActorSpawner.cpp new file mode 100644 index 00000000..514156ac --- /dev/null +++ b/src/00_Core/Actor/ActorSpawner.cpp @@ -0,0 +1,10 @@ +#include "Actor/ActorSpawner.hpp" + +ActorSpawner *ActorSpawner::Create() {} +void ActorSpawner::Destroy() {} +ActorSpawner::ActorSpawner() {} +ActorSpawner::~ActorSpawner() {} +void ActorSpawner::_ZN12ActorSpawner19func_ov000_020c4014Ev() {} +void ActorSpawner::_ZN12ActorSpawner19func_ov000_020c4018Ev() {} +Actor *ActorSpawner::CreateActor(ActorTypeId type) {} +s32 ActorSpawner::Spawn(ActorTypeId type, Vec3p *pos, void *param3, ActorRef *ref) {}