Decomp ItemManager::func_ov00_020ae4dc

This commit is contained in:
Aetias
2024-04-30 18:15:26 +02:00
parent 7ab07cf116
commit 81c5e92ebc
5 changed files with 16 additions and 21 deletions
-17
View File
@@ -3,23 +3,6 @@
.text
.global _ZN11ItemManager18func_ov00_020ae4dcEj
arm_func_start _ZN11ItemManager18func_ov00_020ae4dcEj
_ZN11ItemManager18func_ov00_020ae4dcEj: ; 0x020ae4dc
ldrh r3, [r0, #0xba]
add r2, r3, r1
cmp r2, #9
movgt r1, #9
strgth r1, [r0, #0xba]
bxgt lr
rsb r1, r1, #0
cmp r3, r1
movlt r1, #0
strlth r1, [r0, #0xba]
strgeh r2, [r0, #0xba]
bx lr
arm_func_end _ZN11ItemManager18func_ov00_020ae4dcEj
.global _ZN11ItemManager9SetPotionEjh
arm_func_start _ZN11ItemManager9SetPotionEjh
_ZN11ItemManager9SetPotionEjh: ; 0x020ae50c
+1 -1
View File
@@ -10,7 +10,7 @@
.extern _ZN10MapManager18func_ov00_02083938Ei
.extern _ZN10MapManager18func_ov00_020846a4Ev
.extern _ZN10MapManager18func_ov00_02084d24Ecci
.extern _ZN11ItemManager18func_ov00_020ae4dcEj
.extern _ZN11ItemManager18func_ov00_020ae4dcEi
.extern _ZN12ActorManager12FilterActorsEP15ActorFilterBaseP9ActorList
.extern _ZN12ActorManager15FindActorByTypeEP8ActorRefPS_j
.extern _ZN12ActorManager18func_ov00_020c3b2cEPi
+1 -1
View File
@@ -755,7 +755,7 @@ _0216df70:
ldr r0, _0216e008 ; =gItemManager
mvn r1, #0
ldr r0, [r0]
bl _ZN11ItemManager18func_ov00_020ae4dcEj
bl _ZN11ItemManager18func_ov00_020ae4dcEi
add r0, r6, r4
add r1, r7, r5
ldr r3, _0216e000 ; =data_027e0fc8
+3 -2
View File
@@ -20,6 +20,7 @@ extern "C" {
#define MAX_HOURGLASS_SECONDS 1500 // 25 minutes
#define MAX_AMMO_UPGRADE 2
#define MAX_UNK_0BA 9
typedef s32 FairyId;
enum FairyId_ {
@@ -205,7 +206,7 @@ private:
/* 0b4 */ u16 mQuiverSize;
/* 0b6 */ u16 mBombBagSize;
/* 0b8 */ u16 mBombchuBagSize;
/* 0ba */ unk16 mUnk_0ba; // only between 0 and 9
/* 0ba */ u16 mUnk_0ba; // only between 0 and 9
/* 0bc */ Potion mPotions[2];
/* 0be */ unk8 mUnk_0be[2]; // padding?
/* 0c0 */ ItemModel *mItemModels[ItemModelId_COUNT];
@@ -323,7 +324,7 @@ public:
void GiveKeys(u32 amount);
// Unknown
void func_ov00_020ae4dc(unk32 param1); // sets mUnk_0ba
void func_ov00_020ae4dc(s32 param1);
void func_ov00_020ae648(unk32 param1, unk32 param2, unk32 param3);
};
+11
View File
@@ -842,3 +842,14 @@ THUMB void ItemManager::UpgradeBombchuBag() {
if (mBombchuBagSize < MAX_AMMO_UPGRADE) mBombchuBagSize += 1;
(*mAmmo)[ItemFlag_BombchuBag] = this->GetMaxAmmo(ItemFlag_BombchuBag);
}
ARM void ItemManager::func_ov00_020ae4dc(s32 param1) {
s32 newValue = mUnk_0ba + param1;
if (newValue > MAX_UNK_0BA) {
mUnk_0ba = MAX_UNK_0BA;
} else if (mUnk_0ba < -param1) {
mUnk_0ba = 0;
} else {
mUnk_0ba = newValue;
}
}