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 .data start:0x020e72a8 end:0x020e72f4
src/00_Core/Actor/ActorSpawner.cpp: src/00_Core/Actor/ActorSpawner.cpp:
complete
.text start:0x020c3f9c end:0x020c42d8 .text start:0x020c3f9c end:0x020c42d8
src/00_Core/Actor/Dungeon/ActorSwitchObject.cpp: 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 _ZN16ActorRefillBombsC1Ev kind:function(arm,size=0x34) addr:0x21354f8
_ZN16ActorRefillBombsD1Ev kind:function(arm,size=0x14) addr:0x213552c _ZN16ActorRefillBombsD1Ev kind:function(arm,size=0x14) addr:0x213552c
_ZN16ActorRefillBombsD0Ev kind:function(arm,size=0x1c) addr:0x2135540 _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 _ZN19ActorRefillBombchusC1Ev kind:function(arm,size=0x34) addr:0x2135564
_ZN19ActorRefillBombchusD1Ev kind:function(arm,size=0x14) addr:0x2135598 _ZN19ActorRefillBombchusD1Ev kind:function(arm,size=0x14) addr:0x2135598
_ZN19ActorRefillBombchusD0Ev kind:function(arm,size=0x1c) addr:0x21355ac _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 _ZN17ActorRefillArrowsC1Ev kind:function(arm,size=0x34) addr:0x21355d0
_ZN17ActorRefillArrowsD1Ev kind:function(arm,size=0x14) addr:0x2135604 _ZN17ActorRefillArrowsD1Ev kind:function(arm,size=0x14) addr:0x2135604
_ZN17ActorRefillArrowsD0Ev kind:function(arm,size=0x1c) addr:0x2135618 _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 _ZN15ActorRefillTimeC1Ev kind:function(arm,size=0x34) addr:0x213563c
_ZN15ActorRefillTimeD1Ev kind:function(arm,size=0x14) addr:0x2135670 _ZN15ActorRefillTimeD1Ev kind:function(arm,size=0x14) addr:0x2135670
_ZN15ActorRefillTimeD0Ev kind:function(arm,size=0x1c) addr:0x2135684 _ZN15ActorRefillTimeD0Ev kind:function(arm,size=0x1c) addr:0x2135684
_ZN15ActorRefillTime4InitEv kind:function(arm,size=0x114) addr:0x21356a0 _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 _ZN9ActorLSTMC1Ev kind:function(arm,size=0x34) addr:0x21357bc
_ZN9ActorLSTMD1Ev kind:function(arm,size=0x14) addr:0x21357f0 _ZN9ActorLSTMD1Ev kind:function(arm,size=0x14) addr:0x21357f0
_ZN9ActorLSTMD0Ev kind:function(arm,size=0x1c) addr:0x2135804 _ZN9ActorLSTMD0Ev kind:function(arm,size=0x1c) addr:0x2135804
_ZN9ActorLSTM4InitEv kind:function(arm,size=0x118) addr:0x2135820 _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_02135940 kind:function(arm,size=0x34) addr:0x2135940
func_ov014_02135974 kind:function(arm,size=0xc4) addr:0x2135974 func_ov014_02135974 kind:function(arm,size=0xc4) addr:0x2135974
func_ov014_02135a38 kind:function(arm,size=0xc4) addr:0x2135a38 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 .data start:0x020e7248 end:0x020e7294
src/00_Core/Actor/ActorSpawner.cpp: src/00_Core/Actor/ActorSpawner.cpp:
complete
.text start:0x020c3f3c end:0x020c4278 .text start:0x020c3f3c end:0x020c4278
src/00_Core/Actor/Dungeon/ActorSwitchObject.cpp: 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 _ZN16ActorRefillBombsC1Ev kind:function(arm,size=0x34) addr:0x2135454
_ZN16ActorRefillBombsD1Ev kind:function(arm,size=0x14) addr:0x2135488 _ZN16ActorRefillBombsD1Ev kind:function(arm,size=0x14) addr:0x2135488
_ZN16ActorRefillBombsD0Ev kind:function(arm,size=0x1c) addr:0x213549c _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 _ZN19ActorRefillBombchusC1Ev kind:function(arm,size=0x34) addr:0x21354c0
_ZN19ActorRefillBombchusD1Ev kind:function(arm,size=0x14) addr:0x21354f4 _ZN19ActorRefillBombchusD1Ev kind:function(arm,size=0x14) addr:0x21354f4
_ZN19ActorRefillBombchusD0Ev kind:function(arm,size=0x1c) addr:0x2135508 _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 _ZN17ActorRefillArrowsC1Ev kind:function(arm,size=0x34) addr:0x213552c
_ZN17ActorRefillArrowsD1Ev kind:function(arm,size=0x14) addr:0x2135560 _ZN17ActorRefillArrowsD1Ev kind:function(arm,size=0x14) addr:0x2135560
_ZN17ActorRefillArrowsD0Ev kind:function(arm,size=0x1c) addr:0x2135574 _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 _ZN15ActorRefillTimeC1Ev kind:function(arm,size=0x34) addr:0x2135598
_ZN15ActorRefillTimeD1Ev kind:function(arm,size=0x14) addr:0x21355cc _ZN15ActorRefillTimeD1Ev kind:function(arm,size=0x14) addr:0x21355cc
_ZN15ActorRefillTimeD0Ev kind:function(arm,size=0x1c) addr:0x21355e0 _ZN15ActorRefillTimeD0Ev kind:function(arm,size=0x1c) addr:0x21355e0
_ZN15ActorRefillTime4InitEv kind:function(arm,size=0x114) addr:0x21355fc _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 _ZN9ActorLSTMC1Ev kind:function(arm,size=0x34) addr:0x2135718
_ZN9ActorLSTMD1Ev kind:function(arm,size=0x14) addr:0x213574c _ZN9ActorLSTMD1Ev kind:function(arm,size=0x14) addr:0x213574c
_ZN9ActorLSTMD0Ev kind:function(arm,size=0x1c) addr:0x2135760 _ZN9ActorLSTMD0Ev kind:function(arm,size=0x1c) addr:0x2135760
_ZN9ActorLSTM4InitEv kind:function(arm,size=0x118) addr:0x213577c _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_02135940 kind:function(arm,size=0x34) addr:0x213589c
func_ov014_02135974 kind:function(arm,size=0xc4) addr:0x21358d0 func_ov014_02135974 kind:function(arm,size=0xc4) addr:0x21358d0
func_ov014_02135a38 kind:function(arm,size=0xc4) addr:0x2135994 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) { ARM s32 ActorSpawner::Spawn(ActorTypeId type, Vec3p *pos, ActorSpawnOptions *options, ActorRef *ref) {
ActorManager *actorManager = gActorManager; ActorManager *actorManager = gActorManager;
u16 maxActors = actorManager->mMaxActors; u16 maxActors = actorManager->mMaxActors;
Actor **actorSlot = actorManager->mActorTable; s32 id = -1;
ActorRef actorRef; s32 index;
actorRef.id = -1; Actor **actorSlot = actorManager->mActorTable;
for (actorRef.index = 0; actorRef.index < maxActors; actorRef.index++, actorSlot++) { for (index = 0; index < maxActors; index++, actorSlot++) {
if (*actorSlot != NULL) { if (*actorSlot != NULL) {
continue; continue;
} }
@@ -51,7 +51,7 @@ ARM s32 ActorSpawner::Spawn(ActorTypeId type, Vec3p *pos, ActorSpawnOptions *opt
} }
actor->mType = type; actor->mType = type;
(*actorSlot)->mRef.id = actorManager->mNextActorId; (*actorSlot)->mRef.id = actorManager->mNextActorId;
(*actorSlot)->mRef.index = actorRef.index; (*actorSlot)->mRef.index = index;
(*actorSlot)->mUnk_014 = *pos; (*actorSlot)->mUnk_014 = *pos;
(*actorSlot)->mUnk_020 = options->mUnk_00; (*actorSlot)->mUnk_020 = options->mUnk_00;
(*actorSlot)->mAngle = options->mAngle; (*actorSlot)->mAngle = options->mAngle;
@@ -70,15 +70,15 @@ ARM s32 ActorSpawner::Spawn(ActorTypeId type, Vec3p *pos, ActorSpawnOptions *opt
actor2->mPrevPos = *pos; actor2->mPrevPos = *pos;
(*actorSlot)->mUnk_010 = gMapManager->GetCourseData_Unk_1c(); (*actorSlot)->mUnk_010 = gMapManager->GetCourseData_Unk_1c();
(*actorSlot)->mUnk_011 = gMapManager->GetCourseData_Unk_1d(); (*actorSlot)->mUnk_011 = gMapManager->GetCourseData_Unk_1d();
u16 nextIndex = actorRef.index + 1; u16 nextIndex = index + 1;
if (actorManager->mMaxActorIndex < nextIndex) { if (actorManager->mMaxActorIndex < nextIndex) {
actorManager->mMaxActorIndex = nextIndex; actorManager->mMaxActorIndex = nextIndex;
} }
actorManager->mCacheEmptyActorIndex = actorRef.index; actorManager->mCacheEmptyActorIndex = index;
actorRef.id = actorManager->mNextActorId; id = actorManager->mNextActorId;
if (ref != NULL) { if (ref != NULL) {
*ref = actorRef; *ref = ActorRef(id, index);
} }
actorManager->mNextActorId += 1; actorManager->mNextActorId += 1;
actorManager->mNumActors += 1; actorManager->mNumActors += 1;
@@ -91,8 +91,8 @@ ARM s32 ActorSpawner::Spawn(ActorTypeId type, Vec3p *pos, ActorSpawnOptions *opt
} }
break; break;
} }
if ((actorRef.id == -1) && (ref != NULL)) { if ((id == -1) && (ref != NULL)) {
ref->Reset(); ref->Reset();
} }
return actorRef.id; return id;
} }