summaryrefslogtreecommitdiff
path: root/include/Actor
diff options
context:
space:
mode:
authorAetias <aetias@outlook.com>2024-05-23 19:31:57 +0200
committerAetias <aetias@outlook.com>2024-05-23 19:31:57 +0200
commitc806d36e26cf6022bdf16ca61b7827374e39640f (patch)
tree0d8463f9201e05bb359819a256a3321832a0b9c6 /include/Actor
parent549cfb6276b64676cc8a032e519a6a814f0fa1f5 (diff)
Decomp `Actor`
Diffstat (limited to 'include/Actor')
-rw-r--r--include/Actor/Actor.hpp8
-rw-r--r--include/Actor/ActorManager.hpp8
-rw-r--r--include/Actor/ActorRef.hpp4
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;
}