summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAetias <aetias@outlook.com>2024-01-07 12:29:52 +0100
committerAetias <aetias@outlook.com>2024-01-07 12:29:52 +0100
commit73027843396517b0df3dab4e1b9529a986b2001c (patch)
treed47644278e50b181aa45e4ff4fab8a6f29773ade /include
parent417cd3c9f6fd36b9d8c4c98fd839007bc5ebc4cc (diff)
Declare all ItemManager functions in overlay 0
Diffstat (limited to 'include')
-rw-r--r--include/ItemManager.hpp150
1 files changed, 108 insertions, 42 deletions
diff --git a/include/ItemManager.hpp b/include/ItemManager.hpp
index 74c9a723..6f33f105 100644
--- a/include/ItemManager.hpp
+++ b/include/ItemManager.hpp
@@ -129,32 +129,34 @@ struct UnkStruct_027e0d38 {
/* 2c */
};
-enum ItemModel_ {
- ItemModel_OshusSword, // swA
- ItemModel_PhantomSword, // swB
- ItemModel_WoodenShield, // shA
- ItemModel_Bow, // bow
- ItemModel_Arrow, // arrow
- ItemModel_ArrowS, // arrow_s, purpose unknown
- ItemModel_Boomerang, // boomerang
- ItemModel_Scoop, // scp
- ItemModel_Bomb, // bomb
- ItemModel_Bombchu, // bomchu
- ItemModel_RedPotion, // rev_bin
- ItemModel_BluePotion, // rev_binP
- ItemModel_YellowPotion, // rev_binY
- ItemModel_Hammer, // ham
- ItemModel_RopeTop, // ropetop
- ItemModel_BombchuPt, // bomchu_pt, purpose unknown
- ItemModel_COUNT,
+typedef u32 ItemModelId;
+enum ItemModelId_ {
+ ItemModelId_OshusSword, // swA
+ ItemModelId_PhantomSword, // swB
+ ItemModelId_WoodenShield, // shA
+ ItemModelId_Bow, // bow
+ ItemModelId_Arrow, // arrow
+ ItemModelId_ArrowS, // arrow_s, purpose unknown
+ ItemModelId_Boomerang, // boomerang
+ ItemModelId_Scoop, // scp
+ ItemModelId_Bomb, // bomb
+ ItemModelId_Bombchu, // bomchu
+ ItemModelId_RedPotion, // rev_bin
+ ItemModelId_BluePotion, // rev_binP
+ ItemModelId_YellowPotion, // rev_binY
+ ItemModelId_Hammer, // ham
+ ItemModelId_RopeTop, // ropetop
+ ItemModelId_BombchuPt, // bomchu_pt, purpose unknown
+ ItemModelId_COUNT,
};
-enum DungeonItemModel_ {
- DungeonItemModel_ForceGem, // force
- DungeonItemModel_BossKey, // bosskey
- DungeonItemModel_CircleCrystal, // switch_cstl_c_c
- DungeonItemModel_SquareCrystal, // switch_cstl_s_c
- DungeonItemModel_TriangleCrystal, // switch_cstl_t_c
- DungeonItemModel_COUNT,
+typedef u32 DungeonItemModelId;
+enum DungeonItemModelId_ {
+ DungeonItemModelId_ForceGem, // force
+ DungeonItemModelId_BossKey, // bosskey
+ DungeonItemModelId_CircleCrystal, // switch_cstl_c_c
+ DungeonItemModelId_SquareCrystal, // switch_cstl_s_c
+ DungeonItemModelId_TriangleCrystal, // switch_cstl_t_c
+ DungeonItemModelId_COUNT,
};
struct ItemModel;
@@ -202,9 +204,9 @@ private:
/* 028 */ ShipType mEquippedShipParts[ShipPart_COUNT];
/* 048 */ ShipParts mShipParts[ShipPart_COUNT];
/* 090 */ s8 mTreasure[Treasure_COUNT];
- /* 098 */ u8 mUnk_098[6];
- /* 09e */ u16 mUnk_09e[6]; // corresponds with mUnk_098
- /* 0a6 */ unk16 mUnk_0a6; // padding?
+ /* 098 */ u8 mUnk_098[6]; // max 99
+ /* 09e */ u16 mUnk_09e[6]; // max 9999, corresponds with mUnk_098
+ /* 0aa */ unk16 mUnk_0aa; // padding?
/* 0ac */ EquipItem *(*mEquipItems)[ItemFlag_EQUIP_COUNT];
/* 0b0 */ u16 (*mAmmo)[ItemFlag_EQUIP_COUNT];
/* 0b4 */ u16 mQuiverSize;
@@ -213,12 +215,12 @@ private:
/* 0ba */ unk16 mUnk_0ba; // only between 0 and 9
/* 0bc */ Potion mPotions[2];
/* 0be */ unk8 mUnk_0be[2]; // padding?
- /* 0c0 */ ItemModel *mItemModels[ItemModel_COUNT];
- /* 100 */ ItemModel *mDungeonItemModels[DungeonItemModel_COUNT]; // non-null in dungeons/caves
+ /* 0c0 */ ItemModel *mItemModels[ItemModelId_COUNT];
+ /* 100 */ ItemModel *mDungeonItemModels[DungeonItemModelId_COUNT]; // non-null in dungeons/caves
/* 114 */ void *mUnk_114;
- /* 118 */ unk32 mUnk_118;
+ /* 118 */ ItemId mFanfareItem;
/* 11c */ unk32 mUnk_11c;
- /* 120 */ void *mUnk_120;
+ /* 120 */ void *mFanfareItemModel;
/* 124 */ void *mUnk_124;
/* 128 */ ItemFlags mItemFlags;
/* 138 */ u32 mSalvagedTreasureFlags;
@@ -239,21 +241,85 @@ public:
FairyId GetEquippedFairy() const;
Navi* GetFairy(FairyId id) const;
+ unk32 func_ov00_020ad9e8(FairyId id) const;
void TickEquipItem();
- ItemFlag GetEquippedItem() const; // 020ae390
- void Sword_vfunc_38(); // 020ad5bc
- void Shield_vfunc_38(); // 020ad5d8
- void EquipItem_vfunc_38(unk32 param1, unk32 param2, unk32 param3); // 020ad5f4
+ ItemFlag GetEquippedItem() const;
+ void Sword_vfunc_38();
+ void Shield_vfunc_38();
+ void EquipItem_vfunc_38(unk32 param1, unk32 param2, unk32 param3);
+ void func_ov00_020ad678(unk32 *param1, ItemFlag equipId);
+ void EquipItem_vfunc_2c(ItemFlag equipId);
+ EquipItem GetEquipItem(ItemFlag equipId);
+ unk32 func_ov00_020ad790(unk32 param1);
+ bool EquipItem(ItemFlag equipId);
+ void EquipPreviousItem();
+ void ForceEquipItem(ItemFlag equipId);
+ bool ClearForcedEquipItem();
+ void UpdateSwordShieldInUse();
- void* GetIslandData(u32 index); // 020ad52c
- void* GetDungeonData(u32 index); // 020ad588
+ u16 GetAmmo(ItemFlag equipId) const;
+ void GiveAmmo(ItemFlag equipId, u16 amount);
+ u16 GetMaxAmmo(ItemFlag equipId) const;
+ void UpgradeQuiver();
+ void UpgradeBombBag();
+ void UpgradeBombchuBag();
- void func_020ad538(unk32 param1); // 020ad538
- void func_020ad560(unk32 param1); // 020ad560
- void func_020ad594(unk32 param1); // 020ad594
+ void func_ov00_020ad528();
+ ItemModel* GetItemModel(ItemModelId id);
+ void func_ov00_020ad538(unk32 param1) const;
+ void func_ov00_020ad560(unk32 param1) const;
+ ItemModel* GetDungeonItemModel(DungeonItemModelId id);
+ void func_ov00_020ad594(unk32 param1) const;
+ void LoadFanfareItem(ItemId id);
+ bool GetFanfareItemScale(Vec3p *pScale) const;
+ void LoadDungeonItemModels();
+
+ ShipType GetEquippedShipPart(ShipPart part) const;
+ void EquipShipPart(ShipPart part, ShipType type);
+ u8 GetShipPartCount(ShipPart part, ShipType type) const;
+ void SetShipPartCount(ShipPart part, ShipType type, u8 count);
+ bool HasShipPartPriceShown(u32 index) const;
+ bool HasShipPartPriceShown(ShipPart part, ShipType type) const;
+ void AddShipPartPriceShown(u32 index);
+ void AddShipPartPriceShown(ShipPart part, ShipType type);
+
+ s8 GetTreasureCount(Treasure treasure) const;
+ void SetTreasureCount(Treasure treasure, s8 count);
+ bool HasTreasurePriceShown(Treasure treasure) const;
+ void AddTreasurePriceShown(Treasure treasure);
- bool HasItem(ItemFlag item);
+ u8 GetUnk_098(u32 index) const;
+ u16 GetUnk_09e(u32 index) const;
+ u32 GetUnk_09e_Divided(u32 index) const; // gets mUnk_09e value divided by 2.54, rounded half up
+ void SetUnk_09e(u32 index, u16 value) const; // also increments the corresponding mUnk_098 value
+
+ u32 func_ov00_020ad9e0() const; // returns 99
+ u32 func_ov00_020ad9e4() const; // returns 99
+
+ unk32 func_ov00_020ada48(ItemFlag item) const;
+ bool HasItem(ItemFlag item) const;
+ void AddItem(ItemFlag item);
+ void RemoveItem(ItemFlag item);
+ void GiveItem(ItemId id, unk32 param2, unk32 param3);
+ void GiveEquipItem(ItemFlag item, u16 ammo);
+ void UnequipPotion();
+
+ u32 GetMaxRupees() const;
+ void GiveRupees(u16 amount, unk32 param2);
+
+ void func_ov00_020ae350() const;
+
+ void GiveKeys(u32 amount);
+
+ void func_ov00_020ae4dc(unk32 param1); // sets mUnk_0ba
+
+ void SetPotion(u32 index, Potion potion);
+ bool HasPotion(u32 index) const;
+ bool HasAllPotions() const;
+ bool HasBluePotion();
+
+ void func_ov00_020ae648(unk32 param1, unk32 param2, unk32 param3)
};
extern ItemManager *gItemManager;