mirror of
https://github.com/zeldaret/ph
synced 2026-07-08 21:55:05 -04:00
Decomp ItemManager::func_ov00_020ae4dc
This commit is contained in:
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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);
|
||||
};
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user