summaryrefslogtreecommitdiff
path: root/include/Actor
diff options
context:
space:
mode:
authorAetias <144526980+AetiasHax@users.noreply.github.com>2025-07-25 15:59:54 +0200
committerGitHub <noreply@github.com>2025-07-25 15:59:54 +0200
commit8ad6359c7d3c7afcbddd7d450b7fa4b9764255b6 (patch)
tree09095f8f36375fe4bb358c163d614ebfbc8fe344 /include/Actor
parentdda45d5574798dc45a31437f473eaa55b9142e13 (diff)
ActorSwitchObject OK (#130)
* Map symbol in Game * ActorSwitchObject OK * Mark ActorSwitchObject as complete * Document `mTrapActors` * Fix FilterActorBase * Fix regressions
Diffstat (limited to 'include/Actor')
-rw-r--r--include/Actor/ActorManager.hpp6
-rw-r--r--include/Actor/ActorRef.hpp4
-rw-r--r--include/Actor/ActorSpawner.hpp6
-rw-r--r--include/Actor/Dungeon/ActorSwitchObject.hpp11
-rw-r--r--include/Actor/FilterActorBase.hpp10
5 files changed, 21 insertions, 16 deletions
diff --git a/include/Actor/ActorManager.hpp b/include/Actor/ActorManager.hpp
index fd246f37..08ef7fd2 100644
--- a/include/Actor/ActorManager.hpp
+++ b/include/Actor/ActorManager.hpp
@@ -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);
diff --git a/include/Actor/ActorRef.hpp b/include/Actor/ActorRef.hpp
index eeace571..5ef03f2c 100644
--- a/include/Actor/ActorRef.hpp
+++ b/include/Actor/ActorRef.hpp
@@ -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) {}
diff --git a/include/Actor/ActorSpawner.hpp b/include/Actor/ActorSpawner.hpp
index e99bafb3..05bb46a9 100644
--- a/include/Actor/ActorSpawner.hpp
+++ b/include/Actor/ActorSpawner.hpp
@@ -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 {
diff --git a/include/Actor/Dungeon/ActorSwitchObject.hpp b/include/Actor/Dungeon/ActorSwitchObject.hpp
index 0658fcb2..12fcc16a 100644
--- a/include/Actor/Dungeon/ActorSwitchObject.hpp
+++ b/include/Actor/Dungeon/ActorSwitchObject.hpp
@@ -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();
};
diff --git a/include/Actor/FilterActorBase.hpp b/include/Actor/FilterActorBase.hpp
index 8d721195..1ef32ccb 100644
--- a/include/Actor/FilterActorBase.hpp
+++ b/include/Actor/FilterActorBase.hpp
@@ -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);
- }
};