From baefb70a8ed711b8178575d3ceba936186ce0c27 Mon Sep 17 00:00:00 2001 From: Aetias Date: Mon, 1 Jan 2024 15:43:06 +0100 Subject: [PATCH] Add sword, shield and potion equip item classes --- include/Player/EquipBomb.hpp | 3 +- include/Player/EquipBombchu.hpp | 3 +- include/Player/EquipBoomerang.hpp | 3 +- include/Player/EquipBow.hpp | 13 +++---- include/Player/EquipHammer.hpp | 2 +- include/Player/EquipItem.hpp | 2 +- include/Player/EquipPotion.hpp | 47 ++++++++++++++++++++++++ include/Player/EquipRope.hpp | 1 + include/Player/EquipScoop.hpp | 5 +++ include/Player/EquipShield.hpp | 36 +++++++++++++++++++ include/Player/EquipSword.hpp | 59 +++++++++++++++++++++++++++++++ 11 files changed, 162 insertions(+), 12 deletions(-) create mode 100644 include/Player/EquipPotion.hpp create mode 100644 include/Player/EquipShield.hpp create mode 100644 include/Player/EquipSword.hpp diff --git a/include/Player/EquipBomb.hpp b/include/Player/EquipBomb.hpp index b0c24798..2718c71b 100644 --- a/include/Player/EquipBomb.hpp +++ b/include/Player/EquipBomb.hpp @@ -9,8 +9,7 @@ private: /* 09 */ unk8 mUnk_09[3]; /* 0c */ unk32 mUnk_0c; /* 10 */ unk8 mUnk_10[0x14]; - /* 24 */ unk32 mUnk_24; - /* 28 */ + /* 24 */ public: EquipBomb(); diff --git a/include/Player/EquipBombchu.hpp b/include/Player/EquipBombchu.hpp index 4eb65af1..270b8c3f 100644 --- a/include/Player/EquipBombchu.hpp +++ b/include/Player/EquipBombchu.hpp @@ -21,7 +21,8 @@ private: /* 46 */ u8 mUnk_46; /* 47 */ char mUnk_47; /* 48 */ bool mUnk_48; - /* 49 */ + /* 49 */ unk8 mUnk_49[3]; + /* 4c */ public: EquipBombchu(); diff --git a/include/Player/EquipBoomerang.hpp b/include/Player/EquipBoomerang.hpp index 4fc005e4..cc341b16 100644 --- a/include/Player/EquipBoomerang.hpp +++ b/include/Player/EquipBoomerang.hpp @@ -14,7 +14,8 @@ private: /* 24 */ u32 mUnk_24; /* 28 */ u32 mUnk_28; /* 2c */ u16 mUnk_2c; - /* 2e */ + /* 2e */ unk8 mUnk_2e[2]; + /* 30 */ public: /* 04 */ virtual EquipItem* vfunc_04() override; // func_ov14_213d010 diff --git a/include/Player/EquipBow.hpp b/include/Player/EquipBow.hpp index 9800eedc..7156a8ad 100644 --- a/include/Player/EquipBow.hpp +++ b/include/Player/EquipBow.hpp @@ -5,12 +5,13 @@ class EquipBow : public EquipItem { private: - /* 0 (base) */ - /* 9 */ u8 mUnk_9; - /* a */ u8 mUnk_a; - /* b */ u8 mUnk_b; - /* c */ u8 mUnk_c; - /* d */ + /* 00 (base) */ + /* 09 */ unk8 mUnk_09; + /* 0a */ unk8 mUnk_0a; + /* 0b */ unk8 mUnk_0b; + /* 0c */ unk8 mUnk_0c; + /* 0d */ unk8 mUnk_0d[3]; + /* 10 */ public: EquipBow(); diff --git a/include/Player/EquipHammer.hpp b/include/Player/EquipHammer.hpp index 10911bf6..7a1a95e6 100644 --- a/include/Player/EquipHammer.hpp +++ b/include/Player/EquipHammer.hpp @@ -32,7 +32,7 @@ public: /* 2c */ virtual unk32 vfunc_2c() override; // func_ov59_02198fcc /* 30 */ virtual void vfunc_30() override; // func_ov59_02198e6c /* 38 */ virtual void vfunc_38(unk32 param1, unk32 param2, unk32 param3) override; // func_0v59_02198fc8 - /* 3c */ virtual void vfunc_3c(void *param1) const override; // func_ov14_0213ee10 + /* 3c */ virtual bool vfunc_3c(void *param1, unk32 param2, unk32 param3) const override; // func_ov14_0213ee10 /* 4c */ virtual unk32 vfunc_4c() const override; // func_ov14_0213eea8 /* 50 */ }; diff --git a/include/Player/EquipItem.hpp b/include/Player/EquipItem.hpp index e8da3cf9..55d2de2a 100644 --- a/include/Player/EquipItem.hpp +++ b/include/Player/EquipItem.hpp @@ -31,7 +31,7 @@ public: /* 30 */ virtual void vfunc_30() = 0; /* 34 */ virtual void vfunc_34(unk16 *param1); // func_ov00_020be96c /* 38 */ virtual void vfunc_38(unk32 param1, unk32 param2, unk32 param3) = 0; - /* 3c */ virtual void vfunc_3c(void *param1) const; // func_ov00_020beb90 + /* 3c */ virtual bool vfunc_3c(void *param1, unk32 param2, unk32 param3) const; // func_ov00_020beb90 /* 40 */ virtual unk32 vfunc_40() const; // func_ov00_020be970 /* 44 */ virtual unk32 vfunc_44(unk32 param1) const; // func_ov00_020be978 /* 48 */ virtual unk32 vfunc_48(unk32 param1) const; // func_ov00_020be980 diff --git a/include/Player/EquipPotion.hpp b/include/Player/EquipPotion.hpp new file mode 100644 index 00000000..ec1ef429 --- /dev/null +++ b/include/Player/EquipPotion.hpp @@ -0,0 +1,47 @@ +#pragma once + +#include "types.h" +#include "Player/EquipItem.hpp" + +class EquipPotion : public EquipItem { +private: + /* 00 (base) */ + /* 09 */ unk8 mUnk_09[3]; + /* 0c */ unk32 mUnk_0c; + /* 10 */ + +public: + EquipPotion(); + + /* 00 */ virtual void vfunc_00(unk32 param1, unk32 param2, unk32 param3) override; // func_ov55_021991a8 + /* 04 */ virtual EquipItem* vfunc_04() override; // func_ov14_02151564 + /* 08 */ virtual ~EquipPotion() override; + + /* 14 */ virtual bool IsUsable(unk32 param1, unk32 param2) const override; + /* 18 */ virtual void vfunc_18() override; // func_ov55_021991ac + /* 1c */ virtual void vfunc_1c() override; // func_ov55_021991b0 + + /* 30 */ virtual void vfunc_30() override; // func_ov55_02199274 + /* 38 */ virtual void vfunc_38(unk32 param1, unk32 param2, unk32 param3) override; // func_0v55_02199278 + /* 50 */ +}; + +class EquipPotionA : public EquipPotion { +public: + EquipPotionA(); + + /* 04 */ virtual EquipItem* vfunc_04() override; // func_ov14_021515a8 + /* 08 */ virtual ~EquipPotionA() override; + /* 0c */ virtual ItemFlag GetId() const override; + /* 50 */ +}; + +class EquipPotionB : public EquipPotion { +public: + EquipPotionB(); + + /* 04 */ virtual EquipItem* vfunc_04() override; // func_ov14_021515e8 + /* 08 */ virtual ~EquipPotionB() override; + /* 0c */ virtual ItemFlag GetId() const override; + /* 50 */ +}; diff --git a/include/Player/EquipRope.hpp b/include/Player/EquipRope.hpp index 60c15d75..b3efe986 100644 --- a/include/Player/EquipRope.hpp +++ b/include/Player/EquipRope.hpp @@ -19,6 +19,7 @@ private: /* 84 */ void *mUnk_84; /* 88 */ unk8 mUnk_88[0x18]; /* a0 */ unk32 mUnk_a0; + /* a4 */ public: EquipRope(); diff --git a/include/Player/EquipScoop.hpp b/include/Player/EquipScoop.hpp index 4f7cf7ad..d7893bb5 100644 --- a/include/Player/EquipScoop.hpp +++ b/include/Player/EquipScoop.hpp @@ -4,6 +4,11 @@ #include "Player/EquipItem.hpp" class EquipScoop : public EquipItem { +private: + /* 0 (base) */ + /* 9 */ unk8 mUnk_9[3]; + /* c */ + public: /* 00 */ virtual void vfunc_00(unk32 param1, unk32 param2, unk32 param3) override; // func_ov54_02198d00 /* 04 */ virtual EquipItem* vfunc_04() override; // func_ov14_0213cf9c diff --git a/include/Player/EquipShield.hpp b/include/Player/EquipShield.hpp new file mode 100644 index 00000000..5a27dd1d --- /dev/null +++ b/include/Player/EquipShield.hpp @@ -0,0 +1,36 @@ +#pragma once + +#include "types.h" +#include "Player/EquipItem.hpp" + +class EquipShield { +private: + /* 00 (base) */ + /* 09 */ unk8 mUnk_09[7]; + /* 10 */ void *mUnk_10; + /* 14 */ void *mUnk_14; + /* 18 */ unk8 mUnk_18[4]; + /* 1c */ void *mUnk_1c; + /* 20 */ void *mUnk_20; + /* 24 */ void *mUnk_24; + /* 28 */ void *mUnk_28; + /* 2c */ + +public: + EquipShield(); + + /* 00 */ virtual void vfunc_00(unk32 param1, unk32 param2, unk32 param3) override; // func_ov00_020c06d4 + /* 04 */ virtual EquipItem* vfunc_04() override; // func_ov04_0210bc28 + /* 08 */ virtual ~EquipShield() override; // func_ov04_0210bc94 + /* 0c */ virtual ItemFlag GetId() const override; + /* 10 */ virtual void vfunc_10() override; // func_ov00_020c076c + + /* 14 */ virtual bool IsUsable(unk32 param1, unk32 param2) const override; + /* 18 */ virtual void vfunc_18() override; // func_ov00_020c0770 + /* 1c */ virtual void vfunc_1c(); // func_ov00_020c07f8 + + /* 30 */ virtual void vfunc_30() override; // func_ov00_020c0804 + /* 38 */ virtual void vfunc_38(unk32 param1, unk32 param2, unk32 param3) override; // func_ov00_020c086c + /* 3c */ virtual bool vfunc_3c(void *param1, unk32 param2, unk32 param3) const; // func_ov00_020c0a88 + /* 50 */ +}; diff --git a/include/Player/EquipSword.hpp b/include/Player/EquipSword.hpp new file mode 100644 index 00000000..47e046a1 --- /dev/null +++ b/include/Player/EquipSword.hpp @@ -0,0 +1,59 @@ +#pragma once + +#include "types.h" +#include "Player/EquipItem.hpp" + +class EquipSword : public EquipItem { +private: + /* 00 (base) */ + /* 09 */ unk8 mUnk_09[3]; // padding? + /* 0c */ void *mUnk_0c; + /* 10 */ void *mUnk_10; + /* 14 */ void *mUnk_14; + /* 18 */ void *mUnk_18; + /* 1c */ void *mUnk_1c; + /* 20 */ void *mUnk_20; + /* 24 */ void *mUnk_24; + /* 28 */ void *mUnk_28; + /* 2c */ unk32 mUnk_2c; + /* 30 */ unk32 mUnk_30; + /* 34 */ unk32 mUnk_34; + /* 38 */ unk8 mUnk_38[8]; + /* 40 */ void *mUnk_40; + /* 44 */ unk32 mUnk_44; + /* 48 */ unk32 mUnk_48; + /* 4c */ unk32 mUnk_4c; + /* 50 */ unk32 mUnk_50; + /* 54 */ unk16 mUnk_54; + /* 56 */ unk16 mUnk_56; + /* 58 */ unk16 mUnk_58; + /* 5a */ unk16 mUnk_5a; + /* 5c */ unk16 mUnk_5c; + /* 5e */ unk8 mUnk_5e[2]; + /* 60 */ unk32 mUnk_60; + /* 64 */ unk32 mUnk_64; + /* 68 */ void *mUnk_68; + /* 6c */ unk8 mUnk_6c[2]; + /* 6e */ unk8 mUnk_6e; + /* 6f */ unk8 mUnk_6f; + /* 70 */ + +public: + EquipSword(); + + /* 00 */ virtual void vfunc_00(unk32 param1, unk32 param2, unk32 param3) override; // func_ov00_020beffc + /* 04 */ virtual EquipItem* vfunc_04() override; // func_ov04_0210b918 + /* 08 */ virtual ~EquipSword() override; + /* 0c */ virtual ItemFlag GetId() const override; + /* 10 */ virtual void vfunc_10() override; // func_ov00_020bf18c + + /* 18 */ virtual void vfunc_18() override; // func_ov00_020bf270 + /* 1c */ virtual void vfunc_1c() override; // func_ov00_020bf2d8 + + /* 28 */ virtual bool UpdateInUse(unk32 param1) override; + /* 2c */ virtual u32 vfunc_2c() override; // func_ov00_020c0674 + /* 30 */ virtual void vfunc_30() override; // func_ov00_020bf538 + /* 38 */ virtual void vfunc_38(unk32 param1, unk32 param2, unk32 param3) override; // func_ov00_020bff94 + /* 3c */ virtual bool vfunc_3c(void *param1, unk32 param2, unk32 param3) const override; // func_ov00_020c01dc + /* 50 */ +};