From 4f44cc2f9362f72155f4a8c5dafe4de3dafabe9e Mon Sep 17 00:00:00 2001 From: Aetias Date: Tue, 30 Apr 2024 18:05:13 +0200 Subject: [PATCH] Decomp `ItemManager::UpgradeQuiver` --- asm/ov00/Item/ItemManager.s | 27 --------------------------- include/Item/ItemManager.hpp | 1 + src/00_Core/Item/ItemManager.cpp | 5 +++++ 3 files changed, 6 insertions(+), 27 deletions(-) diff --git a/asm/ov00/Item/ItemManager.s b/asm/ov00/Item/ItemManager.s index 84a6b996..a06b1777 100644 --- a/asm/ov00/Item/ItemManager.s +++ b/asm/ov00/Item/ItemManager.s @@ -3,33 +3,6 @@ .text - .global _ZN11ItemManager13UpgradeQuiverEv - thumb_func_start _ZN11ItemManager13UpgradeQuiverEv -_ZN11ItemManager13UpgradeQuiverEv: ; 0x020ae458 - push {r4, lr} - add r4, r0, #0 - add r0, #0xb4 - ldrh r0, [r0] - cmp r0, #2 - bhs _020ae472 - add r0, r4, #0 - add r0, #0xb4 - ldrh r0, [r0] - add r1, r0, #1 - add r0, r4, #0 - add r0, #0xb4 - strh r1, [r0] -_020ae472: - add r0, r4, #0 - mov r1, #5 - bl _ZNK11ItemManager10GetMaxAmmoEi - add r4, #0xb0 - ldr r1, [r4] - strh r0, [r1, #0xa] - pop {r4, pc} - .align 2, 0 - thumb_func_end _ZN11ItemManager13UpgradeQuiverEv - .global _ZN11ItemManager14UpgradeBombBagEv thumb_func_start _ZN11ItemManager14UpgradeBombBagEv _ZN11ItemManager14UpgradeBombBagEv: ; 0x020ae484 diff --git a/include/Item/ItemManager.hpp b/include/Item/ItemManager.hpp index 61d477f1..bdb75c62 100644 --- a/include/Item/ItemManager.hpp +++ b/include/Item/ItemManager.hpp @@ -19,6 +19,7 @@ extern "C" { #include "Render/ModelRender.hpp" #define MAX_HOURGLASS_SECONDS 1500 // 25 minutes +#define MAX_AMMO_UPGRADE 2 typedef s32 FairyId; enum FairyId_ { diff --git a/src/00_Core/Item/ItemManager.cpp b/src/00_Core/Item/ItemManager.cpp index d5c88bb3..d98baa4a 100644 --- a/src/00_Core/Item/ItemManager.cpp +++ b/src/00_Core/Item/ItemManager.cpp @@ -827,3 +827,8 @@ ARM void ItemManager::UpdateSwordShieldInUse() { this->GetEquipItem(ItemFlag_OshusSword)->UpdateInUse(1); this->GetEquipItem(ItemFlag_WoodenShield)->UpdateInUse(1); } + +THUMB void ItemManager::UpgradeQuiver() { + if (mQuiverSize < MAX_AMMO_UPGRADE) mQuiverSize += 1; + (*mAmmo)[ItemFlag_Bow] = this->GetMaxAmmo(ItemFlag_Bow); +}