summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAetias <144526980+AetiasHax@users.noreply.github.com>2025-05-29 08:58:56 +0200
committerGitHub <noreply@github.com>2025-05-29 08:58:56 +0200
commita65e5547da4894b8d9aceaee2a81dbebd671ae3e (patch)
tree39fd662766c4eae30755694bdd8dc9c376ca3de4 /include
parent59a5cc5da29bd84680ceeaf2c2eeabe9effb6b6d (diff)
parent2c27f6cb3d98b3a8fe94d631c47767dea4daeda8 (diff)
Merge pull request #96 from AetiasHax/delink-ActorRefill
Decomp `ActorRefill`
Diffstat (limited to 'include')
-rw-r--r--include/Actor/Actor.hpp10
-rw-r--r--include/Actor/ActorType.hpp9
-rw-r--r--include/Actor/Player/ActorRefill.hpp113
-rw-r--r--include/Item/ItemManager.hpp2
-rw-r--r--include/System/Random.hpp2
5 files changed, 128 insertions, 8 deletions
diff --git a/include/Actor/Actor.hpp b/include/Actor/Actor.hpp
index c22f086e..f82d34ab 100644
--- a/include/Actor/Actor.hpp
+++ b/include/Actor/Actor.hpp
@@ -64,6 +64,7 @@ struct Actor_UnkStruct_0a4 {
/* 14 */
Actor_UnkStruct_0a4(q20 x, q20 y, q20 z, s32 unk_10);
+ void func_ov000_0207a1c8(unk32 param1, Vec3p *param2);
};
class KillPickupsFilter : FilterActorReturn, public FilterActorBase {
@@ -83,7 +84,8 @@ enum PlayerCollide_ {
PlayerCollide_Gongoron = 0x8,
PlayerCollide_Hammer = 0x10,
- PlayerCollide_PickupFlags = PlayerCollide_Hammer | PlayerCollide_Gongoron | PlayerCollide_Sword | PlayerCollide_Player,
+ /* 0x1b */ PlayerCollide_PickupFlags =
+ PlayerCollide_Hammer | PlayerCollide_Gongoron | PlayerCollide_Sword | PlayerCollide_Player,
};
struct Knockback {
@@ -136,10 +138,10 @@ public:
/* 108 */ unk8 mUnk_108;
/* 109 */ unk8 mUnk_109;
/* 10a */ unk8 mUnk_10a[0x6];
- /* 110 */ unk8 mUnk_110;
+ /* 110 */ bool mUnk_110;
/* 111 */ bool mUnk_111;
- /* 112 */ unk8 mUnk_112;
- /* 113 */ unk8 mUnk_113;
+ /* 112 */ bool mUnk_112;
+ /* 113 */ bool mUnk_113;
/* 114 */ unk8 mUnk_114;
/* 115 */ unk8 mUnk_115;
/* 116 */ unk8 mUnk_116;
diff --git a/include/Actor/ActorType.hpp b/include/Actor/ActorType.hpp
index f71c533b..1d7d5723 100644
--- a/include/Actor/ActorType.hpp
+++ b/include/Actor/ActorType.hpp
@@ -25,8 +25,13 @@ enum ActorTypeId_ {
ActorTypeId_ShopItemShield = 'ITSL',
ActorTypeId_ShopItemSoldOut = 'ITSO',
- ActorTypeId_Heart = 'HART',
- ActorTypeId_Rupee = 'RUPY',
+ ActorTypeId_RefillArrows = 'FLAL',
+ ActorTypeId_RefillBombs = 'FLBM',
+ ActorTypeId_RefillBombchus = 'FLBT',
+ ActorTypeId_RefillTime = 'FLTM',
+ ActorTypeId_Heart = 'HART',
+ ActorTypeId_LSTM = 'LSTM',
+ ActorTypeId_Rupee = 'RUPY',
ActorTypeId_Arrow = 'ARRW',
ActorTypeId_Blast = 'BLST',
diff --git a/include/Actor/Player/ActorRefill.hpp b/include/Actor/Player/ActorRefill.hpp
new file mode 100644
index 00000000..bdd334ff
--- /dev/null
+++ b/include/Actor/Player/ActorRefill.hpp
@@ -0,0 +1,113 @@
+#pragma once
+
+#include "global.h"
+#include "types.h"
+
+#include "Actor/Actor.hpp"
+#include "Actor/ActorType.hpp"
+
+class ActorRefill : public Actor {
+public:
+ /* 000 (base) */
+ /* 158 */ unk32 mUnk_158;
+ /* 15c */ unk32 mUnk_15c;
+ /* 160 */ unk32 mUnk_160;
+ /* 164 */ u8 mUnk_164;
+ /* 165 */ unk8 mUnk_165[0x3];
+ /* 168 */
+
+public:
+ ActorRefill(unk32 param1);
+
+ /* 00 */ virtual ~ActorRefill() override;
+ /* 08 */ virtual bool vfunc_08() override;
+ /* 14 */ virtual void vfunc_14(u32 param1) override;
+ /* 20 */ virtual void vfunc_20(bool param1) override;
+ /* b4 */ virtual ItemFlag vfunc_b4() = 0;
+ /* b8 */
+
+ bool func_ov014_02135364(unk32 param1);
+ void func_ov014_02135474();
+};
+
+class ActorRefillBombs : public ActorRefill {
+public:
+ static ActorType gType;
+
+ /* 000 (base) */
+ /* 168 */
+
+public:
+ ActorRefillBombs();
+ static ActorRefillBombs *Create();
+
+ /* 00 */ virtual ~ActorRefillBombs() override;
+ /* b4 */ virtual ItemFlag vfunc_b4() override;
+ /* b8 */
+};
+
+class ActorRefillBombchus : public ActorRefill {
+public:
+ static ActorType gType;
+
+ /* 000 (base) */
+ /* 168 */
+
+public:
+ ActorRefillBombchus();
+ static ActorRefillBombchus *Create();
+
+ /* 00 */ virtual ~ActorRefillBombchus() override;
+ /* b4 */ virtual ItemFlag vfunc_b4() override;
+ /* b8 */
+};
+
+class ActorRefillArrows : public ActorRefill {
+public:
+ static ActorType gType;
+
+ /* 000 (base) */
+ /* 168 */
+
+public:
+ ActorRefillArrows();
+ static ActorRefillArrows *Create();
+
+ /* 00 */ virtual ~ActorRefillArrows() override;
+ /* b4 */ virtual ItemFlag vfunc_b4() override;
+ /* b8 */
+};
+
+class ActorRefillTime : public ActorRefill {
+public:
+ static ActorType gType;
+
+ /* 000 (base) */
+ /* 168 */
+
+public:
+ ActorRefillTime();
+ static ActorRefillTime *Create();
+
+ /* 00 */ virtual ~ActorRefillTime() override;
+ /* 08 */ virtual bool vfunc_08() override;
+ /* b4 */ virtual ItemFlag vfunc_b4() override;
+ /* b8 */
+};
+
+class ActorLSTM : public ActorRefill {
+public:
+ static ActorType gType;
+
+ /* 000 (base) */
+ /* 168 */
+
+public:
+ ActorLSTM();
+ static ActorLSTM *Create();
+
+ /* 00 */ virtual ~ActorLSTM() override;
+ /* 08 */ virtual bool vfunc_08() override;
+ /* b4 */ virtual ItemFlag vfunc_b4() override;
+ /* b8 */
+};
diff --git a/include/Item/ItemManager.hpp b/include/Item/ItemManager.hpp
index 37f22457..34d5a636 100644
--- a/include/Item/ItemManager.hpp
+++ b/include/Item/ItemManager.hpp
@@ -134,7 +134,7 @@ public:
// Ammo
u16 GetAmmo(ItemFlag equipId) const;
- void GiveAmmo(ItemFlag equipId, u16 amount);
+ void GiveAmmo(ItemFlag equipId, u32 amount);
u16 GetMaxAmmo(ItemFlag equipId) const;
void UpgradeQuiver();
void UpgradeBombBag();
diff --git a/include/System/Random.hpp b/include/System/Random.hpp
index 4506466d..cc1f2a12 100644
--- a/include/System/Random.hpp
+++ b/include/System/Random.hpp
@@ -19,4 +19,4 @@ struct Random {
}
};
-extern Random *gRandom;
+extern Random gRandom;