ActorSwitchObject OK (#130)

* Map symbol in Game

* ActorSwitchObject OK

* Mark ActorSwitchObject as complete

* Document `mTrapActors`

* Fix FilterActorBase

* Fix regressions
This commit is contained in:
Aetias
2025-07-25 15:59:54 +02:00
committed by GitHub
parent dda45d5574
commit 8ad6359c7d
33 changed files with 519 additions and 347 deletions
+3 -3
View File
@@ -78,13 +78,13 @@ public:
/* c4 */
void DeleteActor(u32 index, bool param2);
static void func_ov00_020c3484(ActorRef *ref, ActorManager *actorMgr, unk32 param3);
ActorRef func_ov00_020c3484(unk32 param3);
void Actor_vfunc_10(u32 param1);
Actor *FindActorById(s32 id);
Actor *GetActor(ActorRef *ref);
s32 FilterActors(FilterActorBase *filter, ActorList *filteredActors);
static void FindActorByType(ActorRef *ref, ActorManager *actorMgr, ActorTypeId type);
static void FindNearestActorOfType(ActorRef *ref, ActorManager *actorMgr, ActorTypeId type, Vec3p *pos);
ActorRef FindActorByType(ActorTypeId type);
ActorRef FindNearestActorOfType(ActorTypeId type, Vec3p *pos);
bool func_ov00_020c398c(u32 index);
void func_ov00_020c399c(u32 index, Cylinder *cylinder);
Actor *func_ov00_020c39ac(s32 index, const ActorTypeId *actorTypes, bool param3);
+3 -1
View File
@@ -8,7 +8,9 @@ struct ActorRef {
/* 4 */ s32 index;
/* 8 */
inline ActorRef() {}
inline ActorRef() {
Reset();
}
inline ActorRef(s32 id, s32 index) :
id(id),
index(index) {}
+6
View File
@@ -19,6 +19,12 @@ struct ActorSpawnOptions {
/* 24 */ unk32 mUnk_24;
/* 28 */ unk32 mUnk_28;
/* 2c */
void func_ov000_020c3348();
inline ActorSpawnOptions() :
mUnk_1c(-1, -1) {
func_ov000_020c3348();
}
};
class ActorSpawner : public SysObject {
+9 -2
View File
@@ -17,7 +17,7 @@ public:
/* 164 */ unk32 mUnk_164;
/* 168 */ unk32 mUnk_168;
/* 16c */ u32 mUnk_16c;
/* 170 */ ActorRef mUnk_170[5];
/* 170 */ ActorRef mTrapActors[5];
/* 198 */
/* 00 */ virtual ~ActorSwitchObject() override;
@@ -27,10 +27,17 @@ public:
/* 18 */ virtual void vfunc_18(u32 param1) override;
/* b4 */
inline ActorSwitchObject() :
mUnk_158(0),
mUnk_15c(0),
mUnk_160(0),
mUnk_164(0),
mUnk_168(0) {}
static ActorSwitchObject *Create();
bool func_ov000_0208fc10(s32 param1);
void func_ov000_0208fc7c();
bool func_ov000_0208fcb4();
unk32 func_ov000_0208fcb4();
void func_ov000_0208fef8();
void func_ov000_0209032c();
};
-10
View File
@@ -20,14 +20,4 @@ public:
class FilterActorReturn {
public:
/* 00 */ ActorRef refs[20];
inline FilterActorReturn() {
ActorRef *ref = refs;
ActorRef *end;
do {
end = &refs[20];
ref->Reset();
ref++;
} while (ref < end);
}
};