diff --git a/asm/ov00/ItemManager/ItemManager.s b/asm/ov00/ItemManager/ItemManager.s index 6a0b4cd0..80ce9cd9 100644 --- a/asm/ov00/ItemManager/ItemManager.s +++ b/asm/ov00/ItemManager/ItemManager.s @@ -3,23 +3,6 @@ .text - .global _ZNK11ItemManager13GetFairyLevelEi - arm_func_start _ZNK11ItemManager13GetFairyLevelEi -_ZNK11ItemManager13GetFairyLevelEi: ; 0x020ada48 - stmdb sp!, {r3, r4, r5, lr} - mov r4, r1 - add r1, r4, #0x1a - mov r5, r0 - bl _ZNK11ItemManager7HasItemEj - cmp r0, #0 - movne r0, #2 - ldmneia sp!, {r3, r4, r5, pc} - mov r0, r5 - add r1, r4, #0x17 - bl _ZNK11ItemManager7HasItemEj - ldmia sp!, {r3, r4, r5, pc} - arm_func_end _ZNK11ItemManager13GetFairyLevelEi - .global _ZNK11ItemManager7HasItemEj arm_func_start _ZNK11ItemManager7HasItemEj _ZNK11ItemManager7HasItemEj: ; 0x020ada78 diff --git a/include/Item.hpp b/include/Item.hpp index c6b34287..f85caaaf 100644 --- a/include/Item.hpp +++ b/include/Item.hpp @@ -26,9 +26,11 @@ enum ItemFlag_ { ItemFlag_CourageLv1 = 23, ItemFlag_PowerLv1 = 24, ItemFlag_WisdomLv1 = 25, + ItemFlag_FAIRY_LV1 = ItemFlag_CourageLv1, ItemFlag_CourageLv2 = 26, ItemFlag_PowerLv2 = 27, ItemFlag_WisdomLv2 = 28, + ItemFlag_FAIRY_LV2 = ItemFlag_CourageLv2, ItemFlag_Hourglass = 32, ItemFlag_SeaChartSW = 33, diff --git a/src/ItemManager.cpp b/src/ItemManager.cpp index 2b4b106c..6549eb86 100644 --- a/src/ItemManager.cpp +++ b/src/ItemManager.cpp @@ -351,3 +351,9 @@ ARM u32 ItemManager::GetActiveFairyLevel(FairyId id) const { if (id == fairy) return this->GetFairyLevel(id); return 0; } + +ARM u32 ItemManager::GetFairyLevel(FairyId id) const { + if (this->HasItem(ItemFlag_FAIRY_LV2 + id)) return 2; + if (this->HasItem(ItemFlag_FAIRY_LV1 + id)) return 1; + return 0; +}