diff --git a/asm/include/ov02.inc b/asm/include/ov02.inc index 8c247a69..cd7d52d9 100644 --- a/asm/include/ov02.inc +++ b/asm/include/ov02.inc @@ -266,7 +266,7 @@ .extern func_0203493c .extern func_02032788 .extern func_ov09_02118028 -.extern _ZNK11ItemManager21HasShipPartPriceShownEjj +.extern _ZNK11ItemManager18IsTreasureSalvagedEjj .extern func_0203493c .extern func_0203493c .extern func_ov09_02118028 diff --git a/asm/include/ov05.inc b/asm/include/ov05.inc index ca7f2f94..53217657 100644 --- a/asm/include/ov05.inc +++ b/asm/include/ov05.inc @@ -318,7 +318,7 @@ .extern func_ov00_0209d90c .extern func_02034a1c .extern _ZNK11ItemManager7HasItemEj -.extern _ZNK11ItemManager21HasShipPartPriceShownEj +.extern _ZNK11ItemManager18IsTreasureSalvagedEj .extern func_ov00_0209d90c .extern func_ov00_02079680 .extern func_02034984 @@ -336,7 +336,7 @@ .extern func_ov00_02097760 .extern _ZNK11ItemManager7HasItemEj .extern func_ov00_02097760 -.extern _ZNK11ItemManager21HasShipPartPriceShownEj +.extern _ZNK11ItemManager18IsTreasureSalvagedEj .extern func_ov00_0209d90c .extern func_ov00_02079680 .extern func_02034984 diff --git a/asm/include/ov15.inc b/asm/include/ov15.inc index bcf5ce73..5a69603d 100644 --- a/asm/include/ov15.inc +++ b/asm/include/ov15.inc @@ -3082,7 +3082,7 @@ .extern _ZN11ItemManager18func_ov00_020ae648Ejjj .extern func_ov00_020d71a0 .extern func_ov00_02097750 -.extern _ZN11ItemManager21AddShipPartPriceShownEj +.extern _ZN11ItemManager19SetTreasureSalvagedEj .extern _ZN11ItemManager8GiveItemEjjj .extern func_01ff9bf8 .extern func_01ffa0f4 @@ -3174,7 +3174,7 @@ .extern func_ov00_020c1734 .extern data_027e0d38 .extern _ZNK11ItemManager7HasItemEj -.extern _ZNK11ItemManager21HasShipPartPriceShownEj +.extern _ZNK11ItemManager18IsTreasureSalvagedEj .extern gItemManager .extern data_027e0fe4 .extern data_027e0f94 @@ -6122,7 +6122,7 @@ .extern func_ov09_0211ca20 .extern func_ov09_0211cac0 .extern _ZN11ItemManager8GiveItemEjjj -.extern _ZN11ItemManager21AddShipPartPriceShownEj +.extern _ZN11ItemManager19SetTreasureSalvagedEj .extern _ZN11ItemManager15LoadFanfareItemEj .extern gItemManager .extern data_027e0fe4 diff --git a/asm/include/ov26.inc b/asm/include/ov26.inc index 8593a7d9..6a68ba1a 100644 --- a/asm/include/ov26.inc +++ b/asm/include/ov26.inc @@ -1068,7 +1068,7 @@ .extern data_027e0e60 .extern data_027e0d3c .extern identifier, -.extern _ZNK11ItemManager21HasShipPartPriceShownEj +.extern _ZNK11ItemManager18IsTreasureSalvagedEj .extern func_ov00_0209d90c .extern func_ov00_02097760 .extern func_ov00_02079680 diff --git a/asm/include/ov45.inc b/asm/include/ov45.inc index 7cfdf065..44691eaa 100644 --- a/asm/include/ov45.inc +++ b/asm/include/ov45.inc @@ -435,7 +435,7 @@ .extern func_ov09_02113f40 .extern func_ov09_02118028 .extern identifier, -.extern _ZN11ItemManager21AddShipPartPriceShownEjj +.extern _ZN11ItemManager19SetTreasureSalvagedEjj .extern gItemManager .extern func_ov09_021181f0 .extern func_ov09_021183dc @@ -503,7 +503,7 @@ .extern func_02032788 .extern func_ov09_02118028 .extern identifier, -.extern _ZNK11ItemManager21HasShipPartPriceShownEjj +.extern _ZNK11ItemManager18IsTreasureSalvagedEjj .extern func_0203493c .extern func_0203493c .extern func_ov09_02118028 diff --git a/asm/ov00/ItemManager/ItemManager.s b/asm/ov00/ItemManager/ItemManager.s index 40a5381e..bde5809f 100644 --- a/asm/ov00/ItemManager/ItemManager.s +++ b/asm/ov00/ItemManager/ItemManager.s @@ -3,22 +3,9 @@ .text - .global _ZNK11ItemManager21HasShipPartPriceShownEj - arm_func_start _ZNK11ItemManager21HasShipPartPriceShownEj -_ZNK11ItemManager21HasShipPartPriceShownEj: ; 0x020adabc - mov r2, r1, lsr #5 - add r0, r0, r2, lsl #2 - ldr r2, [r0, #0x138] - and r1, r1, #0x1f - mov r0, #1 - tst r2, r0, lsl r1 - moveq r0, #0 - bx lr - arm_func_end _ZNK11ItemManager21HasShipPartPriceShownEj - - .global _ZN11ItemManager21AddShipPartPriceShownEj - thumb_func_start _ZN11ItemManager21AddShipPartPriceShownEj -_ZN11ItemManager21AddShipPartPriceShownEj: ; 0x020adadc + .global _ZN11ItemManager19SetTreasureSalvagedEj + thumb_func_start _ZN11ItemManager19SetTreasureSalvagedEj +_ZN11ItemManager19SetTreasureSalvagedEj: ; 0x020adadc push {r4, r5} mov r2, #0x4e lsl r2, r2, #2 @@ -37,7 +24,7 @@ _ZN11ItemManager21AddShipPartPriceShownEj: ; 0x020adadc pop {r4, r5} bx lr .align 2, 0 - thumb_func_end _ZN11ItemManager21AddShipPartPriceShownEj + thumb_func_end _ZN11ItemManager19SetTreasureSalvagedEj .global _ZN11ItemManager10RemoveItemEj thumb_func_start _ZN11ItemManager10RemoveItemEj @@ -1243,7 +1230,7 @@ _ZN11ItemManager17EquipPreviousItemEv: ; 0x020ae3c0 bx ip .align 2, 0 arm_func_end _ZN11ItemManager17EquipPreviousItemEv -_020ae3cc: .word _ZN11ItemManager15SetEquippedItemEj +_020ae3cc: .word _ZN11ItemManager15SetEquippedItemEj - 1 .global _ZN11ItemManager13ForceEquipItemEj thumb_func_start _ZN11ItemManager13ForceEquipItemEj @@ -1646,9 +1633,9 @@ _020ae6de: _020ae6e8: .word gItemManager _020ae6ec: .word data_ov00_020eec68 - .global _ZNK11ItemManager21HasShipPartPriceShownEjj - thumb_func_start _ZNK11ItemManager21HasShipPartPriceShownEjj -_ZNK11ItemManager21HasShipPartPriceShownEjj: ; 0x020ae6f0 + .global _ZNK11ItemManager18IsTreasureSalvagedEjj + thumb_func_start _ZNK11ItemManager18IsTreasureSalvagedEjj +_ZNK11ItemManager18IsTreasureSalvagedEjj: ; 0x020ae6f0 push {r3, r4} lsl r3, r1, #3 add r1, r1, r3 @@ -1672,11 +1659,11 @@ _020ae716: add r0, r2, #0 pop {r3, r4} bx lr - thumb_func_end _ZNK11ItemManager21HasShipPartPriceShownEjj + thumb_func_end _ZNK11ItemManager18IsTreasureSalvagedEjj - .global _ZN11ItemManager21AddShipPartPriceShownEjj - thumb_func_start _ZN11ItemManager21AddShipPartPriceShownEjj -_ZN11ItemManager21AddShipPartPriceShownEjj: ; 0x020ae71c + .global _ZN11ItemManager19SetTreasureSalvagedEjj + thumb_func_start _ZN11ItemManager19SetTreasureSalvagedEjj +_ZN11ItemManager19SetTreasureSalvagedEjj: ; 0x020ae71c push {r4, r5} lsl r3, r1, #3 add r1, r1, r3 @@ -1697,7 +1684,7 @@ _ZN11ItemManager21AddShipPartPriceShownEjj: ; 0x020ae71c str r2, [r1, r0] pop {r4, r5} bx lr - thumb_func_end _ZN11ItemManager21AddShipPartPriceShownEjj + thumb_func_end _ZN11ItemManager19SetTreasureSalvagedEjj .global _ZNK11ItemManager21HasTreasurePriceShownEj thumb_func_start _ZNK11ItemManager21HasTreasurePriceShownEj diff --git a/asm/ov02.s b/asm/ov02.s index a5109989..1ebdeba6 100644 --- a/asm/ov02.s +++ b/asm/ov02.s @@ -2883,7 +2883,7 @@ _020f1424: mov r1, r0 ldr r2, [r5, #0x1c] mov r0, r6 - blx _ZNK11ItemManager21HasShipPartPriceShownEjj + blx _ZNK11ItemManager18IsTreasureSalvagedEjj cmp r0, #0 beq _020f14f4 add ip, sp, #0x28 diff --git a/asm/ov05.s b/asm/ov05.s index f48aba9d..a3e54a2c 100644 --- a/asm/ov05.s +++ b/asm/ov05.s @@ -4644,7 +4644,7 @@ _02104694: beq _0210471c ldr r0, [r6] and r1, sb, #0xff - bl _ZNK11ItemManager21HasShipPartPriceShownEj + bl _ZNK11ItemManager18IsTreasureSalvagedEj cmp r0, #0 bne _0210471c ldr r0, [r5] @@ -4793,7 +4793,7 @@ _021048a8: ldr r0, _02104a38 ; =gItemManager mov r1, #0 ldr r0, [r0] - bl _ZNK11ItemManager21HasShipPartPriceShownEj + bl _ZNK11ItemManager18IsTreasureSalvagedEj cmp r0, #0 addne sp, sp, #0x34 ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} diff --git a/asm/ov15.s b/asm/ov15.s index a93b221c..96fc9ac7 100644 --- a/asm/ov15.s +++ b/asm/ov15.s @@ -44581,7 +44581,7 @@ _02145390: bhs _021453d4 ldr r0, _0214581c ; =gItemManager ldr r0, [r0] - blx _ZN11ItemManager21AddShipPartPriceShownEj + blx _ZN11ItemManager19SetTreasureSalvagedEj b _021453f8 _021453d4: sub r0, r1, #0x20 @@ -45653,7 +45653,7 @@ func_ov15_021461b0: ; 0x021461b0 ldr r0, _021462c4 ; =gItemManager ldrh r1, [r5, r4] ldr r0, [r0] - bl _ZNK11ItemManager21HasShipPartPriceShownEj + bl _ZNK11ItemManager18IsTreasureSalvagedEj cmp r0, #0 beq _02146244 add sp, sp, #0x18 @@ -88246,7 +88246,7 @@ _0216a8f8: bhs _0216a918 ldr r0, _0216a95c ; =gItemManager ldr r0, [r0] - blx _ZN11ItemManager21AddShipPartPriceShownEj + blx _ZN11ItemManager19SetTreasureSalvagedEj b _0216a93c _0216a918: sub r0, r1, #0x20 diff --git a/asm/ov26.s b/asm/ov26.s index b621a1d0..257c01bb 100644 --- a/asm/ov26.s +++ b/asm/ov26.s @@ -13278,7 +13278,7 @@ func_ov26_021778e8: ; 0x021778e8 ldr r0, _021779cc ; =gItemManager mov r1, #0 ldr r0, [r0] - bl _ZNK11ItemManager21HasShipPartPriceShownEj + bl _ZNK11ItemManager18IsTreasureSalvagedEj cmp r0, #0 addne sp, sp, #0xc ldmneia sp!, {r3, r4, r5, r6, pc} diff --git a/asm/ov45.s b/asm/ov45.s index 3ad1e404..33fb3ea5 100644 --- a/asm/ov45.s +++ b/asm/ov45.s @@ -5128,7 +5128,7 @@ func_ov45_0218d4d4: ; 0x0218d4d4 mov r1, r0 ldr r2, [r5, #0x1c] mov r0, r4 - blx _ZN11ItemManager21AddShipPartPriceShownEjj + blx _ZN11ItemManager19SetTreasureSalvagedEjj ldmia sp!, {r3, r4, r5, pc} .align 2, 0 arm_func_end func_ov45_0218d4d4 @@ -6012,7 +6012,7 @@ _0218de84: mov r1, r0 ldr r2, [r5, #0x1c] mov r0, r6 - blx _ZNK11ItemManager21HasShipPartPriceShownEjj + blx _ZNK11ItemManager18IsTreasureSalvagedEjj cmp r0, #0 beq _0218df54 add ip, sp, #0x28 diff --git a/include/ItemManager.hpp b/include/ItemManager.hpp index dd85b7c8..07f726a4 100644 --- a/include/ItemManager.hpp +++ b/include/ItemManager.hpp @@ -283,9 +283,7 @@ public: void EquipShipPart(ShipPart part, ShipType type); s8 GetShipPartCount(ShipPart part, ShipType type) const; void SetShipPartCount(ShipPart part, ShipType type, s8 count); - bool HasShipPartPriceShown(u32 index) const; bool HasShipPartPriceShown(ShipPart part, ShipType type) const; - void AddShipPartPriceShown(u32 index); void AddShipPartPriceShown(ShipPart part, ShipType type); u8 GetMaxShipPartCount() const; @@ -294,6 +292,8 @@ public: void SetTreasureCount(Treasure treasure, s8 count); bool HasTreasurePriceShown(Treasure treasure) const; void AddTreasurePriceShown(Treasure treasure); + bool IsTreasureSalvaged(u32 index) const; + void SetTreasureSalvaged(u32 index); u8 GetMaxTreasureCount() const; // mUnk_098, mUnk_09e diff --git a/src/ItemManager.cpp b/src/ItemManager.cpp index 39c81fc9..800d245a 100644 --- a/src/ItemManager.cpp +++ b/src/ItemManager.cpp @@ -365,3 +365,7 @@ ARM bool ItemManager::HasItem(ItemFlag item) const { THUMB void ItemManager::AddItem(ItemFlag item) { SET_FLAG(this->mItemFlags.flags, item); } + +ARM bool ItemManager::IsTreasureSalvaged(u32 index) const { + return GET_FLAG(&this->mSalvagedTreasureFlags, index); +}