summaryrefslogtreecommitdiff
path: root/include/Actor
diff options
context:
space:
mode:
authorAetias <144526980+AetiasHax@users.noreply.github.com>2024-10-20 17:03:41 +0200
committerGitHub <noreply@github.com>2024-10-20 17:03:41 +0200
commitf4c5e4862419a14487575bf477118458c0e4a289 (patch)
tree5c3e2ab28324e232a3a7cca148deb15894ada19a /include/Actor
parent58837ca1fcb5a8ce1af3a977a2f71d08c2d583e2 (diff)
parent52e0ac185a5a3570e166ddfaddb4662863ed3d63 (diff)
Merge pull request #36 from Yanis42/match_actor_rupee
Match ``14_Land/Actor/ActorRupee.cpp`` (79%)
Diffstat (limited to 'include/Actor')
-rw-r--r--include/Actor/Actor.hpp31
-rw-r--r--include/Actor/ActorRupee.hpp9
-rw-r--r--include/Actor/ActorType.hpp12
3 files changed, 42 insertions, 10 deletions
diff --git a/include/Actor/Actor.hpp b/include/Actor/Actor.hpp
index 8f9378d2..64402237 100644
--- a/include/Actor/Actor.hpp
+++ b/include/Actor/Actor.hpp
@@ -13,8 +13,25 @@
#include "Player/EquipBoomerang.hpp"
#include "System/SysNew.hpp"
+struct Actor_UnkStruct_012 {
+ /* 00 */ u16 mUnk_00;
+ /* 02 */ u8 mUnk_02;
+ /* 03 */ u8 mUnk_03;
+ /* 04 */ u32 mUnk_04;
+ /* 08 */ u32 mUnk_08;
+ /* 0c */ u32 mUnk_0c;
+ /* 10 */ u8 mUnk_10;
+ /* 11 */ u8 mUnk_11;
+ /* 12 */ u8 mUnk_12[0x2];
+ /* 14 */ u32 mUnk_14;
+ /* 18 */ u32 mUnk_18;
+ /* 1c */
+
+ Actor_UnkStruct_012();
+};
+
struct Actor_UnkStruct_020 {
- /* 00 */ unk16 mUnk_00[4];
+ /* 00 */ u16 mUnk_00[4];
/* 08 */ u8 mUnk_08[2];
/* 0a */ u8 mUnk_0a[2];
/* 0c */ unk8 mUnk_0c;
@@ -28,7 +45,7 @@ struct Actor_UnkStruct_020 {
};
struct Actor_UnkStruct_09c {
- /* 0 */ unk16 mUnk_0;
+ /* 0 */ u16 mUnk_0;
/* 2 */ unk8 mUnk_2;
/* 3 */ unk8 mUnk_3;
/* 4 */ unk32 mUnk_4;
@@ -40,8 +57,8 @@ struct Actor_UnkStruct_09c {
struct Actor_UnkStruct_0a4 {
/* 00 */ bool mUnk_00;
/* 01 */ bool mUnk_01;
- /* 01 */ bool mUnk_02;
- /* 01 */ bool mUnk_03;
+ /* 02 */ bool mUnk_02;
+ /* 03 */ bool mUnk_03;
/* 04 */ Vec3p mUnk_04;
/* 10 */ s32 mUnk_10;
/* 14 */
@@ -65,6 +82,8 @@ enum PlayerCollide_ {
PlayerCollide_Shield = 0x4,
PlayerCollide_Gongoron = 0x8,
PlayerCollide_Hammer = 0x10,
+
+ PlayerCollide_PickupFlags = PlayerCollide_Hammer | PlayerCollide_Gongoron | PlayerCollide_Sword | PlayerCollide_Player,
};
struct Knockback {
@@ -118,7 +137,7 @@ public:
/* 109 */ unk8 mUnk_109;
/* 10a */ unk8 mUnk_10a[0x6];
/* 110 */ unk8 mUnk_110;
- /* 111 */ unk8 mUnk_111;
+ /* 111 */ bool mUnk_111;
/* 112 */ unk8 mUnk_112;
/* 113 */ unk8 mUnk_113;
/* 114 */ unk8 mUnk_114;
@@ -159,7 +178,7 @@ public:
/* 14 */ virtual void vfunc_14(u32 param1);
/* 18 */ virtual void vfunc_18(u32 param1);
/* 1c */ virtual void vfunc_1c(u16 *param1);
- /* 20 */ virtual void vfunc_20(s32 param1);
+ /* 20 */ virtual void vfunc_20(bool param1);
/* 24 */ virtual void vfunc_24();
/* 28 */ virtual void vfunc_28();
/* 2c */ virtual s32 vfunc_2c();
diff --git a/include/Actor/ActorRupee.hpp b/include/Actor/ActorRupee.hpp
index c0618394..56519394 100644
--- a/include/Actor/ActorRupee.hpp
+++ b/include/Actor/ActorRupee.hpp
@@ -6,7 +6,8 @@
#include "Actor/Actor.hpp"
#include "Actor/ActorType.hpp"
-#include "Item/Item.hpp"
+#include "Item/ItemManager.hpp"
+#include "Player/PlayerLinkBase.hpp"
typedef u32 RupeeId;
enum RupeeId_ {
@@ -27,7 +28,7 @@ public:
/* 000 (base) */
/* 158 */ RupeeId mRupeeId;
- /* 15c */ unk16 mUnk_15c;
+ /* 15c */ u16 mUnk_15c;
/* 15e */ unk16 mUnk_15e;
/* 160 */
@@ -35,7 +36,7 @@ public:
/* 08 */ virtual bool vfunc_08() override;
/* 14 */ virtual void vfunc_14(u32 param1) override;
/* 18 */ virtual void vfunc_18(u32 param1) override;
- /* 20 */ virtual void vfunc_20(s32 param1) override;
+ /* 20 */ virtual void vfunc_20(bool param1) override;
/* 60 */ virtual bool vfunc_60() override;
/* 64 */ virtual void vfunc_64() override;
/* b4 */
@@ -47,6 +48,6 @@ public:
void func_ov14_0213b204(unk32 param1);
void Update(bool param1);
static void func_ov14_0213b5f4(RupeeId id, unk32 param2, Vec3p *param3, bool param4);
- static void func_ov14_0213b6a4(RupeeId id, void *param2);
+ static void func_ov14_0213b6a4(RupeeId id, Actor_UnkStruct_012 *param2);
static bool func_ov14_0213b70c(RupeeId id);
};
diff --git a/include/Actor/ActorType.hpp b/include/Actor/ActorType.hpp
index 76fb560d..4adc3a7a 100644
--- a/include/Actor/ActorType.hpp
+++ b/include/Actor/ActorType.hpp
@@ -126,6 +126,18 @@ enum ActorTypeId_ {
ActorTypeId_VLR0 = __ACTOR_TYPE_ID(V, L, R, 0),
};
+class ActorType_UnkClass {
+public:
+ u32 unk_00;
+ u32 unk_04;
+ u32 unk_08;
+ u32 unk_0C;
+ u32 unk_10;
+ ActorType_UnkClass(u32 unk_00, u32 unk_04) :
+ unk_00(unk_00),
+ unk_04(unk_04) {}
+};
+
class Actor;
typedef Actor *(*ActorCreateFunc)();