diff options
| author | Aetias <aetias@outlook.com> | 2024-10-21 23:32:28 +0200 |
|---|---|---|
| committer | Aetias <aetias@outlook.com> | 2024-10-21 23:32:28 +0200 |
| commit | 52d4fce35141121262d0a93b64f2f778ef89767a (patch) | |
| tree | 15fae458daba6132b86e56d4d9e39581b0bb76ec /include | |
| parent | a62cc074e93cdd77605bddcd145a96d3cfa7618d (diff) | |
Decomp `ActorManager`
Diffstat (limited to 'include')
| -rw-r--r-- | include/Actor/ActorManager.hpp | 14 | ||||
| -rw-r--r-- | include/Actor/FilterActorBase.hpp | 14 | ||||
| -rw-r--r-- | include/DTCM/UnkStruct_027e103c.hpp | 23 | ||||
| -rw-r--r-- | include/Physics/AABB.hpp | 2 | ||||
| -rw-r--r-- | include/Physics/Sphere.hpp | 2 |
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); }; |
