diff options
| author | Aetias <aetias@outlook.com> | 2024-05-23 19:31:57 +0200 |
|---|---|---|
| committer | Aetias <aetias@outlook.com> | 2024-05-23 19:31:57 +0200 |
| commit | c806d36e26cf6022bdf16ca61b7827374e39640f (patch) | |
| tree | 0d8463f9201e05bb359819a256a3321832a0b9c6 /include/Actor | |
| parent | 549cfb6276b64676cc8a032e519a6a814f0fa1f5 (diff) | |
Decomp `Actor`
Diffstat (limited to 'include/Actor')
| -rw-r--r-- | include/Actor/Actor.hpp | 8 | ||||
| -rw-r--r-- | include/Actor/ActorManager.hpp | 8 | ||||
| -rw-r--r-- | include/Actor/ActorRef.hpp | 4 |
3 files changed, 11 insertions, 9 deletions
diff --git a/include/Actor/Actor.hpp b/include/Actor/Actor.hpp index 87c90905..bc8773ad 100644 --- a/include/Actor/Actor.hpp +++ b/include/Actor/Actor.hpp @@ -67,8 +67,7 @@ class Actor : public SysObject { public: /* 000 (vtable) */ /* 004 */ ActorTypeId mType; - /* 008 */ unk32 mId; - /* 00c */ unk32 mIndex; + /* 008 */ ActorRef mRef; /* 010 */ u8 mUnk_010; /* 011 */ u8 mUnk_011; /* 012 */ unk16 mUnk_012; @@ -79,8 +78,7 @@ public: /* 034 */ unk32 mUnk_034; /* 038 */ unk32 mUnk_038; /* 03c */ unk32 mUnk_03c; - /* 040 */ unk32 mUnk_040; - /* 044 */ unk32 mUnk_044; + /* 040 */ ActorRef mUnk_040; /* 048 */ Vec3p mPos; /* 054 */ Vec3p mPrevPos; /* 060 */ Vec3p mVel; @@ -207,7 +205,7 @@ public: bool CollidesWithPlayer(PlayerCollide flags); static void func_ov00_020c23c4(ActorRef *ref, Actor *actor); static void func_ov00_020c23d4(ActorRef *ref, Actor *actor, Cylinder *cylinder); - bool func_ov00_020c243c(unk32 param1, s32 *param2); + bool func_ov00_020c243c(ActorTypeId *actorTypes, s32 *param2); bool func_ov00_020c27a8(unk32 param1); bool IsFollowedByLink(); void StopLinkFollow(); diff --git a/include/Actor/ActorManager.hpp b/include/Actor/ActorManager.hpp index 59e04a58..12ad2e2f 100644 --- a/include/Actor/ActorManager.hpp +++ b/include/Actor/ActorManager.hpp @@ -83,16 +83,16 @@ public: Actor* FindActorById(u32 id); Actor* GetActor(ActorRef *ref); s32 FilterActors(FilterActorBase *filter, ActorList *filteredActors); - static void FindActorByType(ActorRef *ref, ActorManager *manager, u32 type); - static void FindNearestActorOfType(ActorRef *ref, ActorManager *manager, u32 type, Vec3p *pos); + static void FindActorByType(ActorRef *ref, ActorManager *manager, ActorTypeId type); + static void FindNearestActorOfType(ActorRef *ref, ActorManager *manager, ActorTypeId type, Vec3p *pos); bool func_ov00_020c398c(u32 index); void func_ov00_020c399c(u32 index, Cylinder *cylinder); - void func_ov00_020c39ac(u32 index, u32 *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(u32 type, u32 *types); + static bool ActorTypeIsOneOf(u32 type, ActorTypeId *types); }; extern ActorManager *gActorManager; diff --git a/include/Actor/ActorRef.hpp b/include/Actor/ActorRef.hpp index 5c9bc461..c96f111f 100644 --- a/include/Actor/ActorRef.hpp +++ b/include/Actor/ActorRef.hpp @@ -9,6 +9,10 @@ struct ActorRef { /* 8 */ inline ActorRef() { + this->Reset(); + } + + inline void Reset() { id = -1; index = -1; } |
