diff options
| author | Aetias <144526980+AetiasHax@users.noreply.github.com> | 2025-05-29 08:58:56 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-29 08:58:56 +0200 |
| commit | a65e5547da4894b8d9aceaee2a81dbebd671ae3e (patch) | |
| tree | 39fd662766c4eae30755694bdd8dc9c376ca3de4 /include | |
| parent | 59a5cc5da29bd84680ceeaf2c2eeabe9effb6b6d (diff) | |
| parent | 2c27f6cb3d98b3a8fe94d631c47767dea4daeda8 (diff) | |
Merge pull request #96 from AetiasHax/delink-ActorRefill
Decomp `ActorRefill`
Diffstat (limited to 'include')
| -rw-r--r-- | include/Actor/Actor.hpp | 10 | ||||
| -rw-r--r-- | include/Actor/ActorType.hpp | 9 | ||||
| -rw-r--r-- | include/Actor/Player/ActorRefill.hpp | 113 | ||||
| -rw-r--r-- | include/Item/ItemManager.hpp | 2 | ||||
| -rw-r--r-- | include/System/Random.hpp | 2 |
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; |
