summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAetias <aetias@outlook.com>2024-10-21 23:32:28 +0200
committerAetias <aetias@outlook.com>2024-10-21 23:32:28 +0200
commit52d4fce35141121262d0a93b64f2f778ef89767a (patch)
tree15fae458daba6132b86e56d4d9e39581b0bb76ec /include
parenta62cc074e93cdd77605bddcd145a96d3cfa7618d (diff)
Decomp `ActorManager`
Diffstat (limited to 'include')
-rw-r--r--include/Actor/ActorManager.hpp14
-rw-r--r--include/Actor/FilterActorBase.hpp14
-rw-r--r--include/DTCM/UnkStruct_027e103c.hpp23
-rw-r--r--include/Physics/AABB.hpp2
-rw-r--r--include/Physics/Sphere.hpp2
5 files changed, 34 insertions, 21 deletions
diff --git a/include/Actor/ActorManager.hpp b/include/Actor/ActorManager.hpp
index 7b3b1b46..d4acdc5f 100644
--- a/include/Actor/ActorManager.hpp
+++ b/include/Actor/ActorManager.hpp
@@ -21,13 +21,13 @@ class FilterActor : public FilterActorBase {
/* 04 */ u32 mType;
/* 08 */ s32 mUnk_08;
/* 0c */ s32 mUnk_0c;
- /* 10 */ s32 *mExcludeIds; // list of excluded actor ids, terminated by -1
+ /* 10 */ ActorRef *mExcludeRefs; // list of excluded actor ids, terminated by -1
/* 14 */ bool mExcludeNotInAABB;
/* 15 */ unk8 mUnk_15[3];
/* 18 */ AABB mAABB;
/* 30 */ bool mExcludeNotInSphere;
/* 31 */ unk8 mUnk_1a[3];
- /* 34 */ Sphere sphere;
+ /* 34 */ Sphere mSphere;
/* 44 */
/* 0 */ virtual bool Filter(Actor *actor) override;
@@ -78,21 +78,21 @@ public:
/* c4 */
void DeleteActor(u32 index, bool param2);
- static void func_ov00_020c3484(ActorRef *ref, Actor *actor, unk32 param3);
+ static void func_ov00_020c3484(ActorRef *ref, ActorManager *actorMgr, 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 *manager, ActorTypeId type);
- static void FindNearestActorOfType(ActorRef *ref, ActorManager *manager, ActorTypeId type, Vec3p *pos);
+ static void FindActorByType(ActorRef *ref, ActorManager *actorMgr, ActorTypeId type);
+ static void FindNearestActorOfType(ActorRef *ref, ActorManager *actorMgr, ActorTypeId type, Vec3p *pos);
bool func_ov00_020c398c(u32 index);
void func_ov00_020c399c(u32 index, Cylinder *cylinder);
- Actor *func_ov00_020c39ac(u32 index, const ActorTypeId *actorTypes, bool param3);
+ Actor *func_ov00_020c39ac(u32 index, ActorTypeId *actorTypes, bool param3);
s32 func_ov00_020c3b2c(s32 *param1);
s32 func_ov00_020c3bb0(unk32 param1, s32 *param2);
void func_ov00_020c3ce8(unk32 param1, unk32 param2);
void Actor_vfunc_28();
- static bool ActorTypeIsOneOf(char *type, char **types);
+ static bool ActorTypeIsOneOf(ActorTypeId type, ActorTypeId *types);
};
extern ActorManager *gActorManager;
diff --git a/include/Actor/FilterActorBase.hpp b/include/Actor/FilterActorBase.hpp
index a94100d0..8d721195 100644
--- a/include/Actor/FilterActorBase.hpp
+++ b/include/Actor/FilterActorBase.hpp
@@ -12,20 +12,6 @@ class Actor;
class FilterActorBase {
public:
/* 00 (vtable) */
- /* 04 */ unk32 mType;
- /* 08 */ unk32 mUnk_08;
- /* 0c */ unk32 mUnk_0c;
- /* 10 */ s32 *mExcludeIds;
- /* 14 */ bool mExcludeNotInAABB;
- /* 15 */ unk8 mUnk_15;
- /* 16 */ unk8 mUnk_16;
- /* 17 */ unk8 mUnk_17;
- /* 18 */ AABB mAABB;
- /* 30 */ bool mExcludeNotInSphere;
- /* 31 */ unk8 mUnk_31;
- /* 32 */ unk8 mUnk_32;
- /* 33 */ unk8 mUnk_33;
- /* 34 */ Sphere mSphere;
/* 0 */ virtual bool Filter(Actor *actor) = 0;
/* 4 */
diff --git a/include/DTCM/UnkStruct_027e103c.hpp b/include/DTCM/UnkStruct_027e103c.hpp
new file mode 100644
index 00000000..c95f759a
--- /dev/null
+++ b/include/DTCM/UnkStruct_027e103c.hpp
@@ -0,0 +1,23 @@
+#pragma once
+
+#include "global.h"
+#include "types.h"
+
+struct UnkStruct_027e103c {
+ /* 00 */ unk32 mUnk_00;
+ /* 04 */ unk32 mUnk_04;
+ /* 08 */ unk32 mUnk_08;
+ /* 0c */ unk32 mUnk_0c;
+ /* 10 */ unk32 mUnk_10;
+ /* 14 */ unk16 *mUnk_14;
+ /* 18 */ unk32 mUnk_18;
+ /* 1c */ unk16 mUnk_1c;
+ /* 1e */ unk16 mUnk_1a;
+ /* 20 */ unk16 mUnk_20;
+ /* 22 */ s16 mUnk_22;
+ /* 24 */ u8 mUnk_24;
+ /* 25 */ unk8 mUnk_25[7];
+ /* 2c */
+};
+
+extern UnkStruct_027e103c *data_027e103c;
diff --git a/include/Physics/AABB.hpp b/include/Physics/AABB.hpp
index 358aed1c..07f64910 100644
--- a/include/Physics/AABB.hpp
+++ b/include/Physics/AABB.hpp
@@ -8,4 +8,6 @@
struct AABB {
Vec3p min;
Vec3p max;
+
+ bool ContainsInXZ(Vec3p *vec);
};
diff --git a/include/Physics/Sphere.hpp b/include/Physics/Sphere.hpp
index eaed104d..eb88f74d 100644
--- a/include/Physics/Sphere.hpp
+++ b/include/Physics/Sphere.hpp
@@ -8,4 +8,6 @@
struct Sphere {
Vec3p pos;
int radius;
+
+ bool ContainsInXZ(Vec3p *vec);
};