Add EquipItem virtual class and descendants

This commit is contained in:
Aetias
2023-12-20 10:43:07 +01:00
parent 7550a63c03
commit e5d545a7da
8 changed files with 273 additions and 0 deletions
+30
View File
@@ -0,0 +1,30 @@
#pragma once
#include "types.h"
#include "Player/EquipItem.hpp"
class EquipBomb : public EquipItem {
private:
/* 00 (base) */
/* 09 */ u8 mUnk_09[3];
/* 0c */ u32 mUnk_0c;
/* 10 */ u8 mUnk_10[0x14];
/* 24 */ u32 mUnk_24;
/* 28 */
public:
EquipBomb();
/* 00 */ virtual void vfunc_00(u32 param1, u32 param2, u32 param3) override; // func_ov55_02198d00
/* 04 */ virtual EquipItem* vfunc_04() override; // func_ov14_213d214
/* 08 */ virtual ~EquipBomb() override;
/* 0c */ virtual u32 GetId() const override;
/* 14 */ virtual bool IsUsable(u32 param1, u32 param2) const override;
/* 18 */ virtual void vfunc_18() override; // func_ov55_02198d8c
/* 30 */ virtual void vfunc_30() override; // func_ov55_02198da4
/* 38 */ virtual void vfunc_38(u32 param1, u32 param2, u32 param3) override; // func_ov55_2198df8
/* 50 */ virtual void vfunc_50(); // func_ov14_0213d228
/* 54 */
};
+43
View File
@@ -0,0 +1,43 @@
#pragma once
#include "types.h"
#include "Player/EquipItem.hpp"
class EquipBombchu : public EquipItem {
private:
/* 00 (base) */
/* 09 */ u8 mUnk_09[3];
/* 0c */ u8 mUnk_0c[0x0c];
/* 18 */ u32 mUnk_18;
/* 1c */ void *mUnk_1c;
/* 20 */ void *mUnk_20;
/* 24 */ u32 mUnk_24;
/* 28 */ u32 mUnk_28;
/* 2c */ void *mUnk_2c;
/* 30 */ u32 mUnk_30;
/* 34 */ u32 mUnk_34;
/* 38 */ u8 mUnk_38[0xc];
/* 44 */ u16 mUnk_44;
/* 46 */ u8 mUnk_46;
/* 47 */ char mUnk_47;
/* 48 */ bool mUnk_48;
/* 49 */
public:
EquipBombchu();
/* 00 */ virtual void vfunc_00(u32 param1, u32 param2, u32 param3) override; // func_ov58_02198fc0
/* 04 */ virtual EquipItem* vfunc_04() override; // func_ov14_0213eb5c
/* 08 */ virtual ~EquipBombchu() override;
/* 0c */ virtual u32 GetId() const override;
bool CheckUsable(u32 param1) const;
/* 14 */ virtual bool IsUsable(u32 param1, u32 param2) const override;
/* 18 */ virtual void vfunc_18() override; // func_ov58_0219903c
/* 1c */ virtual void vfunc_1c() override; // func_ov58_02199060
/* 30 */ virtual void vfunc_30() override; // func_ov58_0219906c
/* 34 */ virtual void vfunc_34(u16 *param1) override; // func_ov58_0213ecb4
/* 38 */ virtual void vfunc_38(u32 param1, u32 param2, u32 param3) override; // func_ov58_02199170
/* 50 */
};
+32
View File
@@ -0,0 +1,32 @@
#pragma once
#include "types.h"
#include "Player/EquipItem.hpp"
class EquipBoomerang : public EquipItem {
private:
/* 00 (base) */
/* 09 */ u8 mUnk_09[3];
/* 0c */ void *mUnk_0c;
/* 10 */ u32 mUnk_10;
/* 14 */ u8 mUnk_18[8];
/* 20 */ u32 mUnk_20;
/* 24 */ u32 mUnk_24;
/* 28 */ u32 mUnk_28;
/* 2c */ u16 mUnk_2c;
/* 2e */
public:
/* 04 */ virtual EquipItem* vfunc_04() override; // func_ov14_213d010
/* 08 */ virtual ~EquipBoomerang() override;
/* 0c */ virtual u32 GetId() const override;
/* 10 */ virtual void vfunc_10() override; // func_ov14_0213d078
/* 14 */ virtual bool IsUsable(u32 param1, u32 param2) const override;
/* 18 */ virtual void vfunc_18() override; // func_ov53_02199064
/* 1c */ virtual void vfunc_1c() override; // func_ov53_021990d0
/* 30 */ virtual void vfunc_30() override; // func_ov53_0219913c
/* 38 */ virtual void vfunc_38(u32 param1, u32 param2, u32 param3) override; // func_ov53_02199318
/* 50 */
};
+29
View File
@@ -0,0 +1,29 @@
#pragma once
#include "types.h"
#include "Player/EquipItem.hpp"
class EquipBow : public EquipItem {
private:
/* 0 (base) */
/* 9 */ u8 mUnk_9;
/* a */ u8 mUnk_a;
/* b */ u8 mUnk_b;
/* c */ u8 mUnk_c;
/* d */
public:
EquipBow();
/* 00 */ virtual void vfunc_00(u32 param1, u32 param2, u32 param3) override; // func_ov56_02198d00
/* 04 */ virtual EquipItem* vfunc_04() override; // func_ov14_0213ead4
/* 08 */ virtual ~EquipBow() override;
/* 0c */ virtual u32 GetId() const override;
/* 14 */ virtual bool IsUsable(u32 param1, u32 param2) const override;
/* 18 */ virtual void vfunc_18() override; // func_ov56_02198d84
/* 30 */ virtual void vfunc_30() override; // func_ov56_02198de4
/* 38 */ virtual void vfunc_38(u32 param1, u32 param2, u32 param3) override; // func_ov56_02198df8
/* 50 */
};
+38
View File
@@ -0,0 +1,38 @@
#pragma once
#include "types.h"
#include "Player/EquipItem.hpp"
class EquipHammer : public EquipItem {
private:
/* 00 (base) */
/* 09 */ u8 mUnk_09[3];
/* 0c */ u8 mUnk_0c[0xc];
/* 18 */ u32 mUnk_18;
/* 1c */ u8 mUnk_1c;
/* 1d */ u8 mUnk_1d;
/* 1e */ u8 mUnk_1e[2];
/* 20 */ u32 mUnk_20;
/* 24 */ void *mUnk_24;
/* 28 */ u32 mUnk_28;
/* 2c */
public:
EquipHammer();
/* 04 */ virtual EquipItem* vfunc_04() override; // func_ov14_0213ede4
/* 08 */ virtual ~EquipHammer() override;
/* 0c */ virtual u32 GetId() const override;
/* 10 */ virtual void vfunc_10() override; // func_ov14_0213ee04
/* 14 */ virtual bool IsUsable(u32 param1, u32 param2) const override;
/* 18 */ virtual void vfunc_18() override; // func_ov59_02198e3c
/* 1c */ virtual void vfunc_1c() override; // func_ov59_02198e58
/* 2c */ virtual u32 vfunc_2c() override; // func_ov59_02198fcc
/* 30 */ virtual void vfunc_30() override; // func_ov59_02198e6c
/* 38 */ virtual void vfunc_38(u32 param1, u32 param2, u32 param3) override; // func_0v59_02198fc8
/* 3c */ virtual void vfunc_3c(void *param1) const override; // func_ov14_0213ee10
/* 4c */ virtual u32 vfunc_4c() const override; // func_ov14_0213eea8
/* 50 */
};
+39
View File
@@ -0,0 +1,39 @@
#pragma once
#include "types.h"
class EquipItem {
private:
/* 0 (vtable) */
/* 4 */ u16 mUnk_00;
/* 6 */ u16 mUnk_04;
/* 8 */ bool mInUse;
public:
EquipItem();
/* 00 */ virtual void vfunc_00(u32 param1, u32 param2, u32 param3); // func_ov00_020be8dc
/* 04 */ virtual EquipItem* vfunc_04(); // func_ov04_0210ba74
/* 08 */ virtual ~EquipItem();
/* 0c */ virtual u32 GetId() const = 0;
/* 10 */ virtual void vfunc_10(); // func_ov04_0210ba88
u16 GetAmmo();
/* 14 */ virtual bool IsUsable(u32 param1, u32 param2) const;
/* 18 */ virtual void vfunc_18() = 0;
/* 1c */ virtual void vfunc_1c(); // func_ov00_020be8e0
/* 20 */ virtual void GiveAmmo(u32 amount);
/* 24 */ virtual bool IsInUse() const;
/* 28 */ virtual bool UpdateInUse(u32 param1);
/* 2c */ virtual u32 vfunc_2c(); // func_ov00_020be964
/* 30 */ virtual void vfunc_30() = 0;
/* 34 */ virtual void vfunc_34(u16 *param1); // func_ov00_020be96c
/* 38 */ virtual void vfunc_38(u32 param1, u32 param2, u32 param3) = 0;
/* 3c */ virtual void vfunc_3c(void *param1) const; // func_ov00_020beb90
/* 40 */ virtual u32 vfunc_40() const; // func_ov00_020be970
/* 44 */ virtual u32 vfunc_44(u32 param1) const; // func_ov00_020be978
/* 48 */ virtual u32 vfunc_48(u32 param1) const; // func_ov00_020be980
/* 4c */ virtual u32 vfunc_4c() const; // func_ov00_020be988
/* 50 */
};
+39
View File
@@ -0,0 +1,39 @@
#pragma once
#include "types.h"
#include "Player/EquipItem.hpp"
class EquipRope : public EquipItem {
private:
/* 00 (base) */
/* 09 */ u8 mUnk_09;
/* 0a */ u16 mUnk_0a;
/* 0c */ u8 mUnk_0c[4];
/* 10 */ u32 mUnk_10;
/* 14 */ u32 mUnk_14;
/* 18 */ u8 mUnk_18[0x54];
/* 6c */ u16 mUnk_6c;
/* 6e */ u8 mUnk_6e[2];
/* 70 */ u16 mUnk_70;
/* 72 */ u8 mUnk_72[0x12];
/* 84 */ void *mUnk_84;
/* 88 */ u8 mUnk_88[0x18];
/* a0 */ u32 mUnk_a0;
public:
EquipRope();
/* 04 */ virtual EquipItem* vfunc_04() override; // func_ov14_0213d314
/* 08 */ virtual ~EquipRope() override;
/* 0c */ virtual u32 GetId() const override;
/* 10 */ virtual void vfunc_10() override; // func_ov14_0213d3a0
u16 GetAmmo();
/* 14 */ virtual bool IsUsable(u32 param1, u32 param2) const override;
/* 18 */ virtual void vfunc_18() override; // func_ov57_021992f4
/* 1c */ virtual void vfunc_1c() override; // func_ov57_0219935c
/* 30 */ virtual void vfunc_30() override; // func_ov57_02199744
/* 38 */ virtual void vfunc_38(u32 param1, u32 param2, u32 param3) override; // func_ov57_021998f0
/* 50 */
};
+23
View File
@@ -0,0 +1,23 @@
#pragma once
#include "types.h"
#include "Player/EquipItem.hpp"
class EquipShovel : public EquipItem {
public:
/* 00 */ virtual void vfunc_00(u32 param1, u32 param2, u32 param3) override; // func_ov54_02198d00
/* 04 */ virtual EquipItem* vfunc_04() override; // func_ov14_0213cf9c
/* 08 */ virtual ~EquipShovel() override;
/* 0c */ virtual u32 GetId() const override;
/* 14 */ virtual bool IsUsable(u32 param1, u32 param2) const override;
/* 18 */ virtual void vfunc_18() override; // func_0v54_02198d2c
/* 30 */ virtual void vfunc_30() override; // func_ov54_02198e04
/* 38 */ virtual void vfunc_38(u32 param1, u32 param2, u32 param3) override; // func_ov54_02198e4c
/* 40 */ virtual u32 vfunc_40() const override; // func_ov54_02198d30
/* 44 */ virtual u32 vfunc_44(u32 param1) const override; // func_ov54_02198d38
/* 48 */ virtual u32 vfunc_48(u32 param1) const override; // func_ov54_02198d48
/* 50 */
};