diff --git a/config/eur/arm9/overlays/ov000/delinks.txt b/config/eur/arm9/overlays/ov000/delinks.txt index 5ef9d228..56207f63 100644 --- a/config/eur/arm9/overlays/ov000/delinks.txt +++ b/config/eur/arm9/overlays/ov000/delinks.txt @@ -17,6 +17,7 @@ src/00_Core/Actor/ActorManager.cpp: .data start:0x020e72a8 end:0x020e72f4 src/00_Core/Actor/ActorSpawner.cpp: + complete .text start:0x020c3f9c end:0x020c42d8 src/00_Core/Actor/Dungeon/ActorSwitchObject.cpp: diff --git a/config/eur/arm9/overlays/ov014/symbols.txt b/config/eur/arm9/overlays/ov014/symbols.txt index da54c8f2..6f2c7d43 100644 --- a/config/eur/arm9/overlays/ov014/symbols.txt +++ b/config/eur/arm9/overlays/ov014/symbols.txt @@ -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 _ZN15ActorRefillTime4InitEv kind:function(arm,size=0x114) addr:0x21356a0 -_ZN15ActorRefillTime8vfunc_b4Ev kind:function(arm,size=0x8) addr:0x21357b4 +_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 _ZN9ActorLSTM4InitEv kind:function(arm,size=0x118) addr:0x2135820 -_ZN9ActorLSTM8vfunc_b4Ev kind:function(arm,size=0x8) addr:0x2135938 +_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 diff --git a/config/usa/arm9/overlays/ov000/delinks.txt b/config/usa/arm9/overlays/ov000/delinks.txt index 5d8f5cc3..894e26de 100644 --- a/config/usa/arm9/overlays/ov000/delinks.txt +++ b/config/usa/arm9/overlays/ov000/delinks.txt @@ -17,6 +17,7 @@ src/00_Core/Actor/ActorManager.cpp: .data start:0x020e7248 end:0x020e7294 src/00_Core/Actor/ActorSpawner.cpp: + complete .text start:0x020c3f3c end:0x020c4278 src/00_Core/Actor/Dungeon/ActorSwitchObject.cpp: diff --git a/config/usa/arm9/overlays/ov014/symbols.txt b/config/usa/arm9/overlays/ov014/symbols.txt index af30394f..a033bc75 100644 --- a/config/usa/arm9/overlays/ov014/symbols.txt +++ b/config/usa/arm9/overlays/ov014/symbols.txt @@ -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 _ZN15ActorRefillTime4InitEv kind:function(arm,size=0x114) addr:0x21355fc -_ZN15ActorRefillTime8vfunc_b4Ev kind:function(arm,size=0x8) addr:0x2135710 +_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 _ZN9ActorLSTM4InitEv kind:function(arm,size=0x118) addr:0x213577c -_ZN9ActorLSTM8vfunc_b4Ev kind:function(arm,size=0x8) addr:0x2135894 +_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 diff --git a/src/00_Core/Actor/ActorSpawner.cpp b/src/00_Core/Actor/ActorSpawner.cpp index 60feae90..55cf1a57 100644 --- a/src/00_Core/Actor/ActorSpawner.cpp +++ b/src/00_Core/Actor/ActorSpawner.cpp @@ -33,10 +33,10 @@ 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; - Actor **actorSlot = actorManager->mActorTable; - ActorRef actorRef; - actorRef.id = -1; - for (actorRef.index = 0; actorRef.index < maxActors; actorRef.index++, actorSlot++) { + s32 id = -1; + s32 index; + Actor **actorSlot = actorManager->mActorTable; + for (index = 0; index < maxActors; index++, actorSlot++) { if (*actorSlot != NULL) { continue; } @@ -51,7 +51,7 @@ ARM s32 ActorSpawner::Spawn(ActorTypeId type, Vec3p *pos, ActorSpawnOptions *opt } actor->mType = type; (*actorSlot)->mRef.id = actorManager->mNextActorId; - (*actorSlot)->mRef.index = actorRef.index; + (*actorSlot)->mRef.index = index; (*actorSlot)->mUnk_014 = *pos; (*actorSlot)->mUnk_020 = options->mUnk_00; (*actorSlot)->mAngle = options->mAngle; @@ -70,15 +70,15 @@ ARM s32 ActorSpawner::Spawn(ActorTypeId type, Vec3p *pos, ActorSpawnOptions *opt actor2->mPrevPos = *pos; (*actorSlot)->mUnk_010 = gMapManager->GetCourseData_Unk_1c(); (*actorSlot)->mUnk_011 = gMapManager->GetCourseData_Unk_1d(); - u16 nextIndex = actorRef.index + 1; + u16 nextIndex = index + 1; if (actorManager->mMaxActorIndex < nextIndex) { actorManager->mMaxActorIndex = nextIndex; } - actorManager->mCacheEmptyActorIndex = actorRef.index; + actorManager->mCacheEmptyActorIndex = index; - actorRef.id = actorManager->mNextActorId; + id = actorManager->mNextActorId; if (ref != NULL) { - *ref = actorRef; + *ref = ActorRef(id, index); } actorManager->mNextActorId += 1; actorManager->mNumActors += 1; @@ -91,8 +91,8 @@ ARM s32 ActorSpawner::Spawn(ActorTypeId type, Vec3p *pos, ActorSpawnOptions *opt } break; } - if ((actorRef.id == -1) && (ref != NULL)) { + if ((id == -1) && (ref != NULL)) { ref->Reset(); } - return actorRef.id; + return id; }