ActorSpawner OK

This commit is contained in:
Aetias
2025-05-30 18:48:13 +02:00
parent fdb4f5ee3f
commit 48d9d68c10
5 changed files with 23 additions and 21 deletions
@@ -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:
+5 -5
View File
@@ -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
@@ -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:
+5 -5
View File
@@ -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
+11 -11
View File
@@ -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;
}