Decomp GetActualBuyPrice

This commit is contained in:
Zur3l
2026-07-11 16:00:04 -04:00
parent 59b2967ed6
commit 2ea04fcaf7
5 changed files with 15 additions and 26 deletions

View File

@@ -9,7 +9,6 @@
.public GetDungeonGroup
.public GetExclusiveItemType
.public GetItemActionName
.public GetItemBuyPrice
.public GetItemCategory
.public GetItemName
.public GetItemPaletteId

View File

@@ -1,31 +1,8 @@
.include "asm/macros.inc"
.include "main_0200D160.inc"
.include "main_0200D1A8.inc"
.text
arm_func_start GetActualBuyPrice
GetActualBuyPrice: ; 0x0200D160
stmdb sp!, {r4, lr}
mov r4, r0
ldrsh r0, [r4, #4]
bl IsShoppableItem
cmp r0, #0
moveq r0, #0
ldmeqia sp!, {r4, pc}
ldrsh r0, [r4, #4]
bl IsThrownItem
cmp r0, #0
ldrsh r0, [r4, #4]
beq _0200D1A0
bl GetItemBuyPrice
ldrh r1, [r4, #2]
mul r0, r1, r0
ldmia sp!, {r4, pc}
_0200D1A0:
bl GetItemBuyPrice
ldmia sp!, {r4, pc}
arm_func_end GetActualBuyPrice
arm_func_start GetActualSellPrice
GetActualSellPrice: ; 0x0200D1A8
stmdb sp!, {r4, lr}

View File

@@ -18,6 +18,7 @@ void BulkItemToItem(struct item* item, struct bulk_item* bulk_item);
void ItemToBulkItem(struct bulk_item* bulk, struct item* item);
s32 GetDisplayedBuyPrice(struct item* item);
s32 GetDisplayedSellPrice(struct item* item);
s32 GetActualBuyPrice(struct item* item);
#endif //PMDSKY_ITEM_UTIL_4_H

View File

@@ -58,7 +58,7 @@ Static main
Object asm/main_0200C5B4.o
Object src/item_util.o
Object src/item_util_4.o
Object asm/main_0200D160.o
Object asm/main_0200D1A8.o
Object src/item_util_1.o
Object asm/main_0200EB30.o
Object src/main_0200ECFC.o

View File

@@ -10,6 +10,7 @@ extern void ItemZInit();
extern u16 GetItemBuyPrice(s16);
extern u16 GetItemSellPrice(s16);
extern s32 GetMoneyQuantity(struct item*);
extern bool8 IsShoppableItem(s16);
extern bool8 IsThrownItem(s16);
BOOL IsLosableItem(struct item* item)
@@ -227,3 +228,14 @@ s32 GetDisplayedSellPrice(struct item* item)
}
return GetItemSellPrice(item->id);
}
s32 GetActualBuyPrice(struct item* item)
{
if (!IsShoppableItem(item->id)) {
return 0;
}
if (IsThrownItem(item->id)) {
return item->quantity * GetItemBuyPrice(item->id);
}
return GetItemBuyPrice(item->id);
}