From 89b20bc2da98b82174d3bbc0d6c7421fa48a876d Mon Sep 17 00:00:00 2001 From: Aetias Date: Sat, 17 Feb 2024 00:27:54 +0100 Subject: Decomp `ItemManager::EquipItem_vfunc_3c` --- include/ItemManager.hpp | 4 ++-- include/Player/EquipHammer.hpp | 4 ++-- include/Player/EquipItem.hpp | 4 ++-- include/Player/EquipShield.hpp | 2 +- include/Player/EquipSword.hpp | 2 +- include/lib/math.h | 15 +++++++++++++-- 6 files changed, 21 insertions(+), 10 deletions(-) (limited to 'include') diff --git a/include/ItemManager.hpp b/include/ItemManager.hpp index cd304e5f..ee88540c 100644 --- a/include/ItemManager.hpp +++ b/include/ItemManager.hpp @@ -251,7 +251,7 @@ public: void Sword_vfunc_38(unk32 param1); void Shield_vfunc_38(unk32 param1); void EquipItem_vfunc_38(unk32 param1); - void func_ov00_020ad678(Vec3p *param1, ItemFlag equipId); + bool EquipItem_vfunc_3c(Vec4p *param1, ItemFlag equipId); void EquipItem_vfunc_2c(ItemFlag equipId); EquipItem* GetEquipItem(ItemFlag equipId); unk32 func_ov00_020ad790(unk32 param1); @@ -327,7 +327,7 @@ public: void func_ov00_020ae350() const; void GiveKeys(u32 amount); void func_ov00_020ae4dc(unk32 param1); // sets mUnk_0ba - void _ZN11ItemManager18func_ov00_020ae648Ejjj(unk32 param1, unk32 param2, unk32 param3); + void func_ov00_020ae648(unk32 param1, unk32 param2, unk32 param3); }; extern ItemManager *gItemManager; diff --git a/include/Player/EquipHammer.hpp b/include/Player/EquipHammer.hpp index da0fef3b..8ea2364e 100644 --- a/include/Player/EquipHammer.hpp +++ b/include/Player/EquipHammer.hpp @@ -31,7 +31,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) override; // func_0v59_02198fc8 - /* 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 + /* 3c */ virtual bool vfunc_3c(Vec4p *param1) const override; // func_ov14_0213ee10 + /* 4c */ virtual s32 vfunc_4c() const override; // func_ov14_0213eea8 /* 50 */ }; diff --git a/include/Player/EquipItem.hpp b/include/Player/EquipItem.hpp index 4009bbf0..4ab0c8ea 100644 --- a/include/Player/EquipItem.hpp +++ b/include/Player/EquipItem.hpp @@ -32,10 +32,10 @@ public: /* 30 */ virtual void vfunc_30() = 0; /* 34 */ virtual void vfunc_34(unk16 *param1); // func_ov00_020be96c /* 38 */ virtual void vfunc_38(unk32 param1) = 0; - /* 3c */ virtual bool vfunc_3c(void *param1, unk32 param2, unk32 param3) const; // func_ov00_020beb90 + /* 3c */ virtual bool vfunc_3c(Vec4p *param1) 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 - /* 4c */ virtual unk32 vfunc_4c() const; // func_ov00_020be988 + /* 4c */ virtual s32 vfunc_4c() const; // func_ov00_020be988 /* 50 */ }; diff --git a/include/Player/EquipShield.hpp b/include/Player/EquipShield.hpp index 2e554108..3eb47d83 100644 --- a/include/Player/EquipShield.hpp +++ b/include/Player/EquipShield.hpp @@ -30,6 +30,6 @@ public: /* 30 */ virtual void vfunc_30() override; // func_ov00_020c0804 /* 38 */ virtual void vfunc_38(unk32 param1) override; // func_ov00_020c086c - /* 3c */ virtual bool vfunc_3c(void *param1, unk32 param2, unk32 param3) const; // func_ov00_020c0a88 + /* 3c */ virtual bool vfunc_3c(Vec4p *param1) const; // func_ov00_020c0a88 /* 50 */ }; diff --git a/include/Player/EquipSword.hpp b/include/Player/EquipSword.hpp index 85aaecb3..57b64443 100644 --- a/include/Player/EquipSword.hpp +++ b/include/Player/EquipSword.hpp @@ -53,6 +53,6 @@ public: /* 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) override; // func_ov00_020bff94 - /* 3c */ virtual bool vfunc_3c(void *param1, unk32 param2, unk32 param3) const override; // func_ov00_020c01dc + /* 3c */ virtual bool vfunc_3c(Vec4p *param1) const override; // func_ov00_020c01dc /* 50 */ }; diff --git a/include/lib/math.h b/include/lib/math.h index 1b27fe54..d3379e7f 100644 --- a/include/lib/math.h +++ b/include/lib/math.h @@ -3,8 +3,6 @@ #include "types.h" -extern "C" u32 FastDivide(u32 a, u32 b); - // 20.12 fixed point number typedef u32 p32; @@ -15,4 +13,17 @@ typedef struct { /* c */ } Vec3p; +typedef struct { + /* 00 */ p32 x; + /* 04 */ p32 y; + /* 08 */ p32 z; + /* 0c */ p32 w; + /* 10 */ +} Vec4p; + +extern "C" u32 FastDivide(u32 a, u32 b); +extern "C" bool Approach(unk32 *src, unk32 dest, unk32 step); +extern "C" bool Approach_thunk(unk32 *src, unk32 dest, unk32 step); +extern "C" bool func_01ffec34(Vec4p *param1, Vec4p *param2); + #endif -- cgit v1.2.3