mirror of
https://github.com/zeldaret/ph
synced 2026-05-23 15:01:37 -04:00
ActorSpawner OK
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user