mirror of
https://github.com/pret/pmd-sky.git
synced 2026-08-05 02:37:05 -05:00
5414 lines
131 KiB
ArmAsm
5414 lines
131 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "overlay_22.inc"
|
|
|
|
.text
|
|
|
|
arm_func_start GreenKecleonShopUpdateItemNamesAndCollectionMenu
|
|
GreenKecleonShopUpdateItemNamesAndCollectionMenu: ; 0x0238A140
|
|
stmdb sp!, {r3, lr}
|
|
bl GreenKecleonShopFillItemNameData
|
|
bl GreenKecleonShopInitCollectionMenu
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end GreenKecleonShopUpdateItemNamesAndCollectionMenu
|
|
|
|
arm_func_start GreenKecleonShopInitCollectionMenu
|
|
GreenKecleonShopInitCollectionMenu: ; 0x0238A150
|
|
stmdb sp!, {lr}
|
|
sub sp, sp, #0xc
|
|
ldr r0, _0238A210 ; =GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
ldr r2, _0238A214 ; =0x0000032D
|
|
ldr r1, [r0, #4]
|
|
mov r3, #0x10
|
|
strh r2, [r1, #8]
|
|
ldr r1, [r0, #4]
|
|
mov r2, #0xd
|
|
str r3, [r1, #0xc]
|
|
ldr r1, [r0, #4]
|
|
mov r0, #0x12
|
|
str r2, [r1, #4]
|
|
bl Arm9LoadUnkFieldNa0x2029EC8
|
|
ldr r2, _0238A210 ; =GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
ldr r1, _0238A218 ; =GreenKecleonShopUnkCollectionMenuCallback
|
|
ldr ip, [r2, #4]
|
|
mov r3, #8
|
|
str r0, [ip]
|
|
str r1, [sp]
|
|
ldr r1, [r2, #4]
|
|
ldr r0, _0238A21C ; =SHOP_WINDOW_PARAMS_1
|
|
ldr ip, [r1, #0x9c]
|
|
ldr r1, _0238A220 ; =0x00401C33
|
|
str ip, [sp, #4]
|
|
str r3, [sp, #8]
|
|
ldr r2, [r2, #4]
|
|
ldr r3, _0238A224 ; =GreenKecleonGetItemNameStringByIndex
|
|
bl CreateCollectionMenu
|
|
ldr r2, _0238A210 ; =GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
mov r1, #0x76
|
|
ldr r3, [r2, #4]
|
|
strb r0, [r3, #0x98]
|
|
ldr r0, [r2, #4]
|
|
ldrsb r0, [r0, #0x98]
|
|
bl SetCollectionMenuWidth
|
|
ldr r0, _0238A210 ; =GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
ldr r1, _0238A228 ; =GreenKecleonShopVoidFnCollectionMenuCallback
|
|
ldr r0, [r0, #4]
|
|
ldrsb r0, [r0, #0x98]
|
|
bl SetCollectionMenuVoidFn
|
|
mov r0, #0
|
|
bl sub_0204440C
|
|
ldr r0, _0238A210 ; =GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
ldr r0, [r0, #4]
|
|
ldrsb r0, [r0, #0x98]
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {pc}
|
|
.align 2, 0
|
|
_0238A210: .word GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
#ifdef JAPAN
|
|
_0238A214: .word 0x000031F2
|
|
#else
|
|
_0238A214: .word 0x0000032D
|
|
#endif
|
|
_0238A218: .word GreenKecleonShopUnkCollectionMenuCallback
|
|
_0238A21C: .word SHOP_WINDOW_PARAMS_1
|
|
_0238A220: .word 0x00401C33
|
|
_0238A224: .word GreenKecleonGetItemNameStringByIndex
|
|
_0238A228: .word GreenKecleonShopVoidFnCollectionMenuCallback
|
|
arm_func_end GreenKecleonShopInitCollectionMenu
|
|
|
|
arm_func_start GreenKecleonShopDoNothing
|
|
GreenKecleonShopDoNothing: ; 0x0238A22C
|
|
bx lr
|
|
arm_func_end GreenKecleonShopDoNothing
|
|
|
|
arm_func_start GreenKecleonShopGetCollectionMenuStatus
|
|
GreenKecleonShopGetCollectionMenuStatus: ; 0x0238A230
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0238A2A8 ; =GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
ldr r0, [r0, #4]
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
ldrsb r0, [r0, #0x98]
|
|
bl IsCollectionMenuActive
|
|
cmp r0, #0
|
|
bne _0238A284
|
|
ldr r0, _0238A2A8 ; =GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
ldr r0, [r0, #4]
|
|
ldrsb r0, [r0, #0x98]
|
|
bl sub_0202C75C
|
|
mvn r1, #0
|
|
cmp r0, r1
|
|
ldrne r1, _0238A2A8 ; =GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
moveq r0, #2
|
|
strneh r0, [r1]
|
|
movne r0, #3
|
|
ldmia sp!, {r3, pc}
|
|
_0238A284:
|
|
ldr r0, _0238A2A8 ; =GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
ldr r0, [r0, #4]
|
|
ldrsb r0, [r0, #0x98]
|
|
bl GetWindowIdSelectedMenuItemIdx
|
|
and r1, r0, #0xff
|
|
mov r0, #0x12
|
|
bl Arm9StoreUnkFieldNa0x2029ED8
|
|
mov r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0238A2A8: .word GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
arm_func_end GreenKecleonShopGetCollectionMenuStatus
|
|
|
|
arm_func_start GreenKecleonShopGetShopItemSlot
|
|
GreenKecleonShopGetShopItemSlot: ; 0x0238A2AC
|
|
ldr r0, _0238A2BC ; =GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
ldrsh r0, [r0]
|
|
and r0, r0, #0xff
|
|
bx lr
|
|
.align 2, 0
|
|
_0238A2BC: .word GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
arm_func_end GreenKecleonShopGetShopItemSlot
|
|
|
|
arm_func_start GreenKecleonShopInitItemNameData
|
|
GreenKecleonShopInitItemNameData: ; 0x0238A2C0
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0x398
|
|
mov r1, #8
|
|
bl MemAlloc
|
|
ldr r1, _0238A2F0 ; =GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
str r0, [r1, #4]
|
|
bl GreenKecleonShopFillItemNameData
|
|
ldr r0, _0238A2F0 ; =GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
mvn r1, #1
|
|
ldr r0, [r0, #4]
|
|
strb r1, [r0, #0x98]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0238A2F0: .word GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
arm_func_end GreenKecleonShopInitItemNameData
|
|
|
|
arm_func_start GreenKecleonShopFreeItemNameData
|
|
GreenKecleonShopFreeItemNameData: ; 0x0238A2F4
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0238A31C ; =GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
ldr r0, [r0, #4]
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
bl MemFree
|
|
ldr r0, _0238A31C ; =GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
mov r1, #0
|
|
str r1, [r0, #4]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0238A31C: .word GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
arm_func_end GreenKecleonShopFreeItemNameData
|
|
|
|
arm_func_start GreenKecleonShopFillItemNameData
|
|
GreenKecleonShopFillItemNameData: ; 0x0238A320
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x64
|
|
mov r3, #0
|
|
ldr r0, _0238A4C0 ; =GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
mov r2, r3
|
|
_0238A334:
|
|
ldr r1, [r0, #4]
|
|
add r1, r1, r3
|
|
add r3, r3, #1
|
|
strb r2, [r1, #0x390]
|
|
cmp r3, #8
|
|
blt _0238A334
|
|
bl RemoveInvalidKecleonShop1Items
|
|
mov sl, #0
|
|
ldr r4, _0238A4C0 ; =GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
mov r8, #3
|
|
ldr r1, [r4, #4]
|
|
mov r7, #1
|
|
str r0, [r1, #0x9c]
|
|
mov r6, sl
|
|
mov r5, #0x6a
|
|
mov fp, sl
|
|
b _0238A488
|
|
_0238A378:
|
|
and r0, sl, #0xff
|
|
bl GetCurrentKecleonShop1ItemByIndex
|
|
ldrsh r1, [r0]
|
|
strh r1, [sp, #4]
|
|
ldrh r1, [r0, #2]
|
|
add r0, sp, #0
|
|
strh r1, [sp, #2]
|
|
strb r8, [sp]
|
|
str r7, [sp, #8]
|
|
strb r6, [sp, #0xc]
|
|
strh r5, [sp, #0xe]
|
|
strb r7, [sp, #0x10]
|
|
bl GetActualBuyPrice
|
|
ldr r1, [r4, #4]
|
|
add r1, r1, sl, lsl #2
|
|
str r0, [r1, #0x370]
|
|
bl GetMoneyCarried
|
|
ldr r1, [r4, #4]
|
|
add r2, sp, #8
|
|
add r1, r1, sl, lsl #2
|
|
ldr r1, [r1, #0x370]
|
|
cmp r1, r0
|
|
add r0, sp, #0x14
|
|
add r1, sp, #0
|
|
bgt _0238A40C
|
|
bl MaybeGetColoredFormattedItemName
|
|
mov r0, #0x50
|
|
mul sb, sl, r0
|
|
ldr r0, [r4, #4]
|
|
add r1, sp, #0x14
|
|
add r0, r0, #0xe8
|
|
add r0, r0, sb
|
|
bl strcpy
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, sl
|
|
strb fp, [r0, #0x368]
|
|
b _0238A464
|
|
_0238A40C:
|
|
bl MaybeGetUncoloredFormattedItemName
|
|
mov r0, #0x50
|
|
mul sb, sl, r0
|
|
ldr r0, [r4, #4]
|
|
ldr r1, _0238A4C4 ; =GREEN_KEC_SHOP_RED_COLOR_TEXT_TAG
|
|
add r0, r0, #0xe8
|
|
add r0, r0, sb
|
|
bl strcpy
|
|
ldr r0, [r4, #4]
|
|
add r1, sp, #0x14
|
|
add r0, r0, #0xe8
|
|
add r0, r0, sb
|
|
bl strcat
|
|
ldr r0, [r4, #4]
|
|
ldr r1, _0238A4C8 ; =GREEN_KEC_SHOP_UNCOLOR_TEXT_TAG
|
|
add r0, r0, #0xe8
|
|
add r0, r0, sb
|
|
bl strcat
|
|
ldr r0, [r4, #4]
|
|
add r1, r0, sl
|
|
mov r0, #0
|
|
strb r0, [r1, #0x368]
|
|
_0238A464:
|
|
ldr r2, [r4, #4]
|
|
add r0, r2, #0xe8
|
|
add r1, r0, sb
|
|
add r0, r2, sl, lsl #3
|
|
str r1, [r0, #0xa0]
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, sl, lsl #3
|
|
str sl, [r0, #0xa4]
|
|
add sl, sl, #1
|
|
_0238A488:
|
|
ldr r1, [r4, #4]
|
|
ldr r0, [r1, #0x9c]
|
|
cmp sl, r0
|
|
blt _0238A378
|
|
mov r2, #0
|
|
add r1, r1, sl, lsl #3
|
|
ldr r0, _0238A4C0 ; =GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
str r2, [r1, #0xa0]
|
|
ldr r0, [r0, #4]
|
|
sub r1, r2, #1
|
|
add r0, r0, sl, lsl #3
|
|
str r1, [r0, #0xa4]
|
|
add sp, sp, #0x64
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
_0238A4C0: .word GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
_0238A4C4: .word GREEN_KEC_SHOP_RED_COLOR_TEXT_TAG
|
|
_0238A4C8: .word GREEN_KEC_SHOP_UNCOLOR_TEXT_TAG
|
|
arm_func_end GreenKecleonShopFillItemNameData
|
|
|
|
arm_func_start GreenKecleonShopCountSelectedItems
|
|
GreenKecleonShopCountSelectedItems: ; 0x0238A4CC
|
|
ldr r1, _0238A504 ; =GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
mov r0, #0
|
|
ldr r3, [r1, #4]
|
|
mov r2, r0
|
|
ldr ip, [r3, #0x9c]
|
|
b _0238A4F8
|
|
_0238A4E4:
|
|
add r1, r3, r2
|
|
ldrb r1, [r1, #0x390]
|
|
add r2, r2, #1
|
|
cmp r1, #0
|
|
addne r0, r0, #1
|
|
_0238A4F8:
|
|
cmp r2, ip
|
|
blt _0238A4E4
|
|
bx lr
|
|
.align 2, 0
|
|
_0238A504: .word GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
arm_func_end GreenKecleonShopCountSelectedItems
|
|
|
|
arm_func_start GreenKecleonShopGetFirstSelectedItemIndex
|
|
GreenKecleonShopGetFirstSelectedItemIndex: ; 0x0238A508
|
|
ldr r1, _0238A540 ; =GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
mov r0, #0
|
|
ldr r2, [r1, #4]
|
|
ldr r3, [r2, #0x9c]
|
|
b _0238A530
|
|
_0238A51C:
|
|
add r1, r2, r0
|
|
ldrb r1, [r1, #0x390]
|
|
cmp r1, #0
|
|
bxne lr
|
|
add r0, r0, #1
|
|
_0238A530:
|
|
cmp r0, r3
|
|
blt _0238A51C
|
|
mvn r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_0238A540: .word GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
arm_func_end GreenKecleonShopGetFirstSelectedItemIndex
|
|
|
|
arm_func_start GreenKecleonShopSumSelectedItemPrices
|
|
GreenKecleonShopSumSelectedItemPrices: ; 0x0238A544
|
|
ldr r1, _0238A584 ; =GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
mov r0, #0
|
|
ldr r3, [r1, #4]
|
|
mov r2, r0
|
|
ldr ip, [r3, #0x9c]
|
|
b _0238A578
|
|
_0238A55C:
|
|
add r1, r3, r2
|
|
ldrb r1, [r1, #0x390]
|
|
cmp r1, #0
|
|
addne r1, r3, r2, lsl #2
|
|
ldrne r1, [r1, #0x370]
|
|
add r2, r2, #1
|
|
addne r0, r0, r1
|
|
_0238A578:
|
|
cmp r2, ip
|
|
blt _0238A55C
|
|
bx lr
|
|
.align 2, 0
|
|
_0238A584: .word GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
arm_func_end GreenKecleonShopSumSelectedItemPrices
|
|
|
|
arm_func_start GreenKecleonShopPurchaseSingleItem
|
|
GreenKecleonShopPurchaseSingleItem: ; 0x0238A588
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
and r0, r4, #0xff
|
|
bl GetCurrentKecleonShop1ItemByIndex
|
|
bl SpecialProcAddItemToBag
|
|
and r0, r4, #0xff
|
|
bl RemoveItemFromKecleonShop1
|
|
ldr r0, _0238A5C8 ; =GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
ldr r0, [r0, #4]
|
|
add r0, r0, r4, lsl #2
|
|
ldr r0, [r0, #0x370]
|
|
rsb r0, r0, #0
|
|
bl AddMoneyCarried
|
|
bl sub_020108B4
|
|
bl GreenKecleonShopFillItemNameData
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0238A5C8: .word GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
arm_func_end GreenKecleonShopPurchaseSingleItem
|
|
|
|
arm_func_start GreenKecleonShopPurchaseSelectedItems
|
|
GreenKecleonShopPurchaseSelectedItems: ; 0x0238A5CC
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r4, #0
|
|
mov r5, r4
|
|
ldr r6, _0238A63C ; =GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
b _0238A618
|
|
_0238A5E0:
|
|
add r0, r1, r5
|
|
ldrb r0, [r0, #0x390]
|
|
cmp r0, #0
|
|
beq _0238A614
|
|
and r0, r5, #0xff
|
|
bl GetCurrentKecleonShop1ItemByIndex
|
|
bl SpecialProcAddItemToBag
|
|
ldr r1, [r6, #4]
|
|
and r0, r5, #0xff
|
|
add r1, r1, r5, lsl #2
|
|
ldr r1, [r1, #0x370]
|
|
add r4, r4, r1
|
|
bl RemoveItemFromKecleonShop1
|
|
_0238A614:
|
|
add r5, r5, #1
|
|
_0238A618:
|
|
ldr r1, [r6, #4]
|
|
ldr r0, [r1, #0x9c]
|
|
cmp r5, r0
|
|
blt _0238A5E0
|
|
rsb r0, r4, #0
|
|
bl AddMoneyCarried
|
|
bl sub_020108B4
|
|
bl GreenKecleonShopFillItemNameData
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0238A63C: .word GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
arm_func_end GreenKecleonShopPurchaseSelectedItems
|
|
|
|
arm_func_start GreenKecleonGetItemNameStringByIndex
|
|
GreenKecleonGetItemNameStringByIndex: ; 0x0238A640
|
|
ldr r0, _0238A678 ; =GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
ldr r0, [r0, #4]
|
|
add r0, r0, r1
|
|
ldrb r0, [r0, #0x390]
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
str r0, [r2]
|
|
ldr r2, _0238A678 ; =GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
mov r0, #0x50
|
|
ldr r2, [r2, #4]
|
|
add r2, r2, #0xe8
|
|
mla r0, r1, r0, r2
|
|
bx lr
|
|
.align 2, 0
|
|
_0238A678: .word GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
arm_func_end GreenKecleonGetItemNameStringByIndex
|
|
|
|
arm_func_start GreenKecleonShopUnkCollectionMenuCallback
|
|
GreenKecleonShopUnkCollectionMenuCallback: ; 0x0238A67C
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
tst r0, #0x400
|
|
mov r4, #0
|
|
beq _0238A730
|
|
ldr r0, _0238A770 ; =GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
ldr r0, [r0, #4]
|
|
ldrsb r0, [r0, #0x98]
|
|
bl GetWindowIdSelectedMenuItemIdx
|
|
ldr r1, _0238A770 ; =GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
mov r5, r0
|
|
ldr r0, [r1, #4]
|
|
add r2, r0, #0x390
|
|
ldrb r0, [r2, r5]
|
|
cmp r0, #0
|
|
beq _0238A6D0
|
|
mov r1, r4
|
|
mov r0, #6
|
|
strb r1, [r2, r5]
|
|
bl PlaySeVolumeWrapper
|
|
mov r4, #1
|
|
b _0238A730
|
|
_0238A6D0:
|
|
bl GetCurrentBagCapacity
|
|
mov r7, r0
|
|
bl GreenKecleonShopCountSelectedItems
|
|
mov r6, r0
|
|
bl GetNbItemsInBag
|
|
add r0, r6, r0
|
|
cmp r0, r7
|
|
blt _0238A6F8
|
|
cmp r6, #0
|
|
bne _0238A728
|
|
_0238A6F8:
|
|
ldr r0, _0238A770 ; =GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
ldr r0, [r0, #4]
|
|
add r2, r0, r5
|
|
ldrb r0, [r2, #0x368]
|
|
cmp r0, #0
|
|
bne _0238A728
|
|
mov r1, #1
|
|
mov r0, #6
|
|
strb r1, [r2, #0x390]
|
|
bl PlaySeVolumeWrapper
|
|
mov r4, #1
|
|
b _0238A730
|
|
_0238A728:
|
|
mov r0, #2
|
|
bl PlaySeVolumeWrapper
|
|
_0238A730:
|
|
bl GreenKecleonShopCountSelectedItems
|
|
cmp r0, #0
|
|
ble _0238A754
|
|
ldr r0, _0238A770 ; =GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
mov r1, #1
|
|
ldr r0, [r0, #4]
|
|
ldrsb r0, [r0, #0x98]
|
|
bl sub_0202D16C
|
|
b _0238A768
|
|
_0238A754:
|
|
ldr r0, _0238A770 ; =GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
mov r1, #0
|
|
ldr r0, [r0, #4]
|
|
ldrsb r0, [r0, #0x98]
|
|
bl sub_0202D16C
|
|
_0238A768:
|
|
mov r0, r4
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0238A770: .word GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
arm_func_end GreenKecleonShopUnkCollectionMenuCallback
|
|
|
|
arm_func_start GreenKecleonShopVoidFnCollectionMenuCallback
|
|
GreenKecleonShopVoidFnCollectionMenuCallback: ; 0x0238A774
|
|
stmdb sp!, {r3, lr}
|
|
and r0, r0, #0xff
|
|
bl GetCurrentKecleonShop1ItemByIndex
|
|
ldrsh r0, [r0]
|
|
bl sub_020444B0
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end GreenKecleonShopVoidFnCollectionMenuCallback
|
|
|
|
arm_func_start PurpleKecleonShopUpdateItemNamesAndCollectionMenu
|
|
PurpleKecleonShopUpdateItemNamesAndCollectionMenu: ; 0x0238A78C
|
|
stmdb sp!, {r3, lr}
|
|
bl PurpleKecleonShopFillItemNameData
|
|
bl PurpleKecleonShopInitCollectionMenu
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end PurpleKecleonShopUpdateItemNamesAndCollectionMenu
|
|
|
|
arm_func_start PurpleKecleonShopInitCollectionMenu
|
|
PurpleKecleonShopInitCollectionMenu: ; 0x0238A79C
|
|
stmdb sp!, {lr}
|
|
sub sp, sp, #0xc
|
|
ldr r0, _0238A85C ; =PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
ldr r2, _0238A860 ; =0x0000032E
|
|
ldr r1, [r0, #4]
|
|
mov r3, #0x10
|
|
strh r2, [r1, #8]
|
|
ldr r1, [r0, #4]
|
|
mov r2, #0xd
|
|
str r3, [r1, #0xc]
|
|
ldr r1, [r0, #4]
|
|
mov r0, #0x13
|
|
str r2, [r1, #4]
|
|
bl Arm9LoadUnkFieldNa0x2029EC8
|
|
ldr r2, _0238A85C ; =PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
ldr r1, _0238A864 ; =PurpleKecleonShopUnkCollectionMenuCallback
|
|
ldr ip, [r2, #4]
|
|
mov r3, #8
|
|
str r0, [ip]
|
|
str r1, [sp]
|
|
ldr r1, [r2, #4]
|
|
ldr r0, _0238A868 ; =SHOP_WINDOW_PARAMS_2
|
|
ldr ip, [r1, #0x9c]
|
|
ldr r1, _0238A86C ; =0x00401C33
|
|
str ip, [sp, #4]
|
|
str r3, [sp, #8]
|
|
ldr r2, [r2, #4]
|
|
ldr r3, _0238A870 ; =PurpleKecleonGetItemNameStringByIndex
|
|
bl CreateCollectionMenu
|
|
ldr r2, _0238A85C ; =PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
mov r1, #0x76
|
|
ldr r3, [r2, #4]
|
|
strb r0, [r3, #0x98]
|
|
ldr r0, [r2, #4]
|
|
ldrsb r0, [r0, #0x98]
|
|
bl SetCollectionMenuWidth
|
|
ldr r0, _0238A85C ; =PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
ldr r1, _0238A874 ; =PurpleKecleonShopCollectionMenuCallback
|
|
ldr r0, [r0, #4]
|
|
ldrsb r0, [r0, #0x98]
|
|
bl SetCollectionMenuVoidFn
|
|
mov r0, #0
|
|
bl sub_0204440C
|
|
ldr r0, _0238A85C ; =PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
ldr r0, [r0, #4]
|
|
ldrsb r0, [r0, #0x98]
|
|
add sp, sp, #0xc
|
|
ldmia sp!, {pc}
|
|
.align 2, 0
|
|
_0238A85C: .word PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
#ifdef JAPAN
|
|
_0238A860: .word 0x000031F3
|
|
#else
|
|
_0238A860: .word 0x0000032E
|
|
#endif
|
|
_0238A864: .word PurpleKecleonShopUnkCollectionMenuCallback
|
|
_0238A868: .word SHOP_WINDOW_PARAMS_2
|
|
_0238A86C: .word 0x00401C33
|
|
_0238A870: .word PurpleKecleonGetItemNameStringByIndex
|
|
_0238A874: .word PurpleKecleonShopCollectionMenuCallback
|
|
arm_func_end PurpleKecleonShopInitCollectionMenu
|
|
|
|
arm_func_start PurpleKecleonShopDoNothing
|
|
PurpleKecleonShopDoNothing: ; 0x0238A878
|
|
bx lr
|
|
arm_func_end PurpleKecleonShopDoNothing
|
|
|
|
arm_func_start PurpleKecleonShopGetCollectionMenuStatus
|
|
PurpleKecleonShopGetCollectionMenuStatus: ; 0x0238A87C
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0238A8F4 ; =PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
ldr r0, [r0, #4]
|
|
cmp r0, #0
|
|
moveq r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
ldrsb r0, [r0, #0x98]
|
|
bl IsCollectionMenuActive
|
|
cmp r0, #0
|
|
bne _0238A8D0
|
|
ldr r0, _0238A8F4 ; =PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
ldr r0, [r0, #4]
|
|
ldrsb r0, [r0, #0x98]
|
|
bl sub_0202C75C
|
|
mvn r1, #0
|
|
cmp r0, r1
|
|
ldrne r1, _0238A8F4 ; =PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
moveq r0, #2
|
|
strneh r0, [r1]
|
|
movne r0, #3
|
|
ldmia sp!, {r3, pc}
|
|
_0238A8D0:
|
|
ldr r0, _0238A8F4 ; =PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
ldr r0, [r0, #4]
|
|
ldrsb r0, [r0, #0x98]
|
|
bl GetWindowIdSelectedMenuItemIdx
|
|
and r1, r0, #0xff
|
|
mov r0, #0x13
|
|
bl Arm9StoreUnkFieldNa0x2029ED8
|
|
mov r0, #0
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0238A8F4: .word PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
arm_func_end PurpleKecleonShopGetCollectionMenuStatus
|
|
|
|
arm_func_start PurpleKecleonShopGetShopItemSlot
|
|
PurpleKecleonShopGetShopItemSlot: ; 0x0238A8F8
|
|
ldr r0, _0238A908 ; =PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
ldrsh r0, [r0]
|
|
and r0, r0, #0xff
|
|
bx lr
|
|
.align 2, 0
|
|
_0238A908: .word PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
arm_func_end PurpleKecleonShopGetShopItemSlot
|
|
|
|
arm_func_start PurpleKecleonShopInitItemNameData
|
|
PurpleKecleonShopInitItemNameData: ; 0x0238A90C
|
|
stmdb sp!, {r3, lr}
|
|
mov r0, #0x234
|
|
mov r1, #8
|
|
bl MemAlloc
|
|
ldr r1, _0238A93C ; =PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
str r0, [r1, #4]
|
|
bl PurpleKecleonShopFillItemNameData
|
|
ldr r0, _0238A93C ; =PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
mvn r1, #1
|
|
ldr r0, [r0, #4]
|
|
strb r1, [r0, #0x98]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0238A93C: .word PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
arm_func_end PurpleKecleonShopInitItemNameData
|
|
|
|
arm_func_start PurpleKecleonShopFreeItemNameData
|
|
PurpleKecleonShopFreeItemNameData: ; 0x0238A940
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0238A968 ; =PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
ldr r0, [r0, #4]
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
bl MemFree
|
|
ldr r0, _0238A968 ; =PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
mov r1, #0
|
|
str r1, [r0, #4]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0238A968: .word PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
arm_func_end PurpleKecleonShopFreeItemNameData
|
|
|
|
arm_func_start PurpleKecleonShopFillItemNameData
|
|
PurpleKecleonShopFillItemNameData: ; 0x0238A96C
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
|
sub sp, sp, #0x64
|
|
mov r3, #0
|
|
ldr r0, _0238AB0C ; =PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
mov r2, r3
|
|
_0238A980:
|
|
ldr r1, [r0, #4]
|
|
add r1, r1, r3
|
|
add r3, r3, #1
|
|
strb r2, [r1, #0x230]
|
|
cmp r3, #4
|
|
blt _0238A980
|
|
bl RemoveInvalidKecleonShop2Items
|
|
mov sl, #0
|
|
ldr r4, _0238AB0C ; =PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
mov r8, #3
|
|
ldr r1, [r4, #4]
|
|
mov r7, #1
|
|
str r0, [r1, #0x9c]
|
|
mov r6, sl
|
|
mov r5, #0x6a
|
|
mov fp, sl
|
|
b _0238AAD4
|
|
_0238A9C4:
|
|
and r0, sl, #0xff
|
|
bl GetCurrentKecleonShop2ItemByIndex
|
|
ldrsh r1, [r0]
|
|
strh r1, [sp, #4]
|
|
ldrh r1, [r0, #2]
|
|
add r0, sp, #0
|
|
strh r1, [sp, #2]
|
|
strb r8, [sp]
|
|
str r7, [sp, #8]
|
|
strb r6, [sp, #0xc]
|
|
strh r5, [sp, #0xe]
|
|
strb r7, [sp, #0x10]
|
|
bl GetActualBuyPrice
|
|
ldr r1, [r4, #4]
|
|
add r1, r1, sl, lsl #2
|
|
str r0, [r1, #0x210]
|
|
bl GetMoneyCarried
|
|
ldr r1, [r4, #4]
|
|
add r2, sp, #8
|
|
add r1, r1, sl, lsl #2
|
|
ldr r1, [r1, #0x210]
|
|
cmp r1, r0
|
|
add r0, sp, #0x14
|
|
add r1, sp, #0
|
|
bgt _0238AA58
|
|
bl MaybeGetColoredFormattedItemName
|
|
mov r0, #0x50
|
|
mul sb, sl, r0
|
|
ldr r0, [r4, #4]
|
|
add r1, sp, #0x14
|
|
add r0, r0, #0xc8
|
|
add r0, r0, sb
|
|
bl strcpy
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, sl
|
|
strb fp, [r0, #0x208]
|
|
b _0238AAB0
|
|
_0238AA58:
|
|
bl MaybeGetUncoloredFormattedItemName
|
|
mov r0, #0x50
|
|
mul sb, sl, r0
|
|
ldr r0, [r4, #4]
|
|
ldr r1, _0238AB10 ; =PURPLE_KEC_SHOP_RED_COLOR_TEXT_TAG
|
|
add r0, r0, #0xc8
|
|
add r0, r0, sb
|
|
bl strcpy
|
|
ldr r0, [r4, #4]
|
|
add r1, sp, #0x14
|
|
add r0, r0, #0xc8
|
|
add r0, r0, sb
|
|
bl strcat
|
|
ldr r0, [r4, #4]
|
|
ldr r1, _0238AB14 ; =PURPLE_KEC_SHOP_UNCOLOR_TEXT_TAG
|
|
add r0, r0, #0xc8
|
|
add r0, r0, sb
|
|
bl strcat
|
|
ldr r0, [r4, #4]
|
|
add r1, r0, sl
|
|
mov r0, #0
|
|
strb r0, [r1, #0x208]
|
|
_0238AAB0:
|
|
ldr r2, [r4, #4]
|
|
add r0, r2, #0xc8
|
|
add r1, r0, sb
|
|
add r0, r2, sl, lsl #3
|
|
str r1, [r0, #0xa0]
|
|
ldr r0, [r4, #4]
|
|
add r0, r0, sl, lsl #3
|
|
str sl, [r0, #0xa4]
|
|
add sl, sl, #1
|
|
_0238AAD4:
|
|
ldr r1, [r4, #4]
|
|
ldr r0, [r1, #0x9c]
|
|
cmp sl, r0
|
|
blt _0238A9C4
|
|
mov r2, #0
|
|
add r1, r1, sl, lsl #3
|
|
ldr r0, _0238AB0C ; =PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
str r2, [r1, #0xa0]
|
|
ldr r0, [r0, #4]
|
|
sub r1, r2, #1
|
|
add r0, r0, sl, lsl #3
|
|
str r1, [r0, #0xa4]
|
|
add sp, sp, #0x64
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc}
|
|
.align 2, 0
|
|
_0238AB0C: .word PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
_0238AB10: .word PURPLE_KEC_SHOP_RED_COLOR_TEXT_TAG
|
|
_0238AB14: .word PURPLE_KEC_SHOP_UNCOLOR_TEXT_TAG
|
|
arm_func_end PurpleKecleonShopFillItemNameData
|
|
|
|
arm_func_start PurpleKecleonShopCountSelectedItems
|
|
PurpleKecleonShopCountSelectedItems: ; 0x0238AB18
|
|
ldr r1, _0238AB50 ; =PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
mov r0, #0
|
|
ldr r3, [r1, #4]
|
|
mov r2, r0
|
|
ldr ip, [r3, #0x9c]
|
|
b _0238AB44
|
|
_0238AB30:
|
|
add r1, r3, r2
|
|
ldrb r1, [r1, #0x230]
|
|
add r2, r2, #1
|
|
cmp r1, #0
|
|
addne r0, r0, #1
|
|
_0238AB44:
|
|
cmp r2, ip
|
|
blt _0238AB30
|
|
bx lr
|
|
.align 2, 0
|
|
_0238AB50: .word PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
arm_func_end PurpleKecleonShopCountSelectedItems
|
|
|
|
arm_func_start PurpleKecleonShopGetFirstSelectedItemIndex
|
|
PurpleKecleonShopGetFirstSelectedItemIndex: ; 0x0238AB54
|
|
ldr r1, _0238AB8C ; =PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
mov r0, #0
|
|
ldr r2, [r1, #4]
|
|
ldr r3, [r2, #0x9c]
|
|
b _0238AB7C
|
|
_0238AB68:
|
|
add r1, r2, r0
|
|
ldrb r1, [r1, #0x230]
|
|
cmp r1, #0
|
|
bxne lr
|
|
add r0, r0, #1
|
|
_0238AB7C:
|
|
cmp r0, r3
|
|
blt _0238AB68
|
|
mvn r0, #0
|
|
bx lr
|
|
.align 2, 0
|
|
_0238AB8C: .word PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
arm_func_end PurpleKecleonShopGetFirstSelectedItemIndex
|
|
|
|
arm_func_start PurpleKecleonShopSumSelectedItemPrices
|
|
PurpleKecleonShopSumSelectedItemPrices: ; 0x0238AB90
|
|
ldr r1, _0238ABD0 ; =PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
mov r0, #0
|
|
ldr r3, [r1, #4]
|
|
mov r2, r0
|
|
ldr ip, [r3, #0x9c]
|
|
b _0238ABC4
|
|
_0238ABA8:
|
|
add r1, r3, r2
|
|
ldrb r1, [r1, #0x230]
|
|
cmp r1, #0
|
|
addne r1, r3, r2, lsl #2
|
|
ldrne r1, [r1, #0x210]
|
|
add r2, r2, #1
|
|
addne r0, r0, r1
|
|
_0238ABC4:
|
|
cmp r2, ip
|
|
blt _0238ABA8
|
|
bx lr
|
|
.align 2, 0
|
|
_0238ABD0: .word PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
arm_func_end PurpleKecleonShopSumSelectedItemPrices
|
|
|
|
arm_func_start PurpleKecleonShopPurchaseSingleItem
|
|
PurpleKecleonShopPurchaseSingleItem: ; 0x0238ABD4
|
|
stmdb sp!, {r4, lr}
|
|
mov r4, r0
|
|
and r0, r4, #0xff
|
|
bl GetCurrentKecleonShop2ItemByIndex
|
|
bl SpecialProcAddItemToBag
|
|
and r0, r4, #0xff
|
|
bl RemoveItemFromKecleonShop2
|
|
ldr r0, _0238AC14 ; =PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
ldr r0, [r0, #4]
|
|
add r0, r0, r4, lsl #2
|
|
ldr r0, [r0, #0x210]
|
|
rsb r0, r0, #0
|
|
bl AddMoneyCarried
|
|
bl sub_02010BC0
|
|
bl PurpleKecleonShopFillItemNameData
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0238AC14: .word PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
arm_func_end PurpleKecleonShopPurchaseSingleItem
|
|
|
|
arm_func_start PurpleKecleonShopPurchaseSelectedItems
|
|
PurpleKecleonShopPurchaseSelectedItems: ; 0x0238AC18
|
|
stmdb sp!, {r4, r5, r6, lr}
|
|
mov r4, #0
|
|
mov r5, r4
|
|
ldr r6, _0238AC88 ; =PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
b _0238AC64
|
|
_0238AC2C:
|
|
add r0, r1, r5
|
|
ldrb r0, [r0, #0x230]
|
|
cmp r0, #0
|
|
beq _0238AC60
|
|
and r0, r5, #0xff
|
|
bl GetCurrentKecleonShop2ItemByIndex
|
|
bl SpecialProcAddItemToBag
|
|
ldr r1, [r6, #4]
|
|
and r0, r5, #0xff
|
|
add r1, r1, r5, lsl #2
|
|
ldr r1, [r1, #0x210]
|
|
add r4, r4, r1
|
|
bl RemoveItemFromKecleonShop2
|
|
_0238AC60:
|
|
add r5, r5, #1
|
|
_0238AC64:
|
|
ldr r1, [r6, #4]
|
|
ldr r0, [r1, #0x9c]
|
|
cmp r5, r0
|
|
blt _0238AC2C
|
|
rsb r0, r4, #0
|
|
bl AddMoneyCarried
|
|
bl sub_02010BC0
|
|
bl PurpleKecleonShopFillItemNameData
|
|
ldmia sp!, {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0238AC88: .word PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
arm_func_end PurpleKecleonShopPurchaseSelectedItems
|
|
|
|
arm_func_start PurpleKecleonGetItemNameStringByIndex
|
|
PurpleKecleonGetItemNameStringByIndex: ; 0x0238AC8C
|
|
ldr r0, _0238ACC4 ; =PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
ldr r0, [r0, #4]
|
|
add r0, r0, r1
|
|
ldrb r0, [r0, #0x230]
|
|
cmp r0, #0
|
|
movne r0, #1
|
|
moveq r0, #0
|
|
str r0, [r2]
|
|
ldr r2, _0238ACC4 ; =PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
mov r0, #0x50
|
|
ldr r2, [r2, #4]
|
|
add r2, r2, #0xc8
|
|
mla r0, r1, r0, r2
|
|
bx lr
|
|
.align 2, 0
|
|
_0238ACC4: .word PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
arm_func_end PurpleKecleonGetItemNameStringByIndex
|
|
|
|
arm_func_start PurpleKecleonShopUnkCollectionMenuCallback
|
|
PurpleKecleonShopUnkCollectionMenuCallback: ; 0x0238ACC8
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
tst r0, #0x400
|
|
mov r4, #0
|
|
beq _0238AD7C
|
|
ldr r0, _0238ADBC ; =PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
ldr r0, [r0, #4]
|
|
ldrsb r0, [r0, #0x98]
|
|
bl GetWindowIdSelectedMenuItemIdx
|
|
ldr r1, _0238ADBC ; =PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
mov r5, r0
|
|
ldr r0, [r1, #4]
|
|
add r2, r0, #0x230
|
|
ldrb r0, [r2, r5]
|
|
cmp r0, #0
|
|
beq _0238AD1C
|
|
mov r1, r4
|
|
mov r0, #6
|
|
strb r1, [r2, r5]
|
|
bl PlaySeVolumeWrapper
|
|
mov r4, #1
|
|
b _0238AD7C
|
|
_0238AD1C:
|
|
bl GetCurrentBagCapacity
|
|
mov r7, r0
|
|
bl PurpleKecleonShopCountSelectedItems
|
|
mov r6, r0
|
|
bl GetNbItemsInBag
|
|
add r0, r6, r0
|
|
cmp r0, r7
|
|
blt _0238AD44
|
|
cmp r6, #0
|
|
bne _0238AD74
|
|
_0238AD44:
|
|
ldr r0, _0238ADBC ; =PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
ldr r0, [r0, #4]
|
|
add r2, r0, r5
|
|
ldrb r0, [r2, #0x208]
|
|
cmp r0, #0
|
|
bne _0238AD74
|
|
mov r1, #1
|
|
mov r0, #6
|
|
strb r1, [r2, #0x230]
|
|
bl PlaySeVolumeWrapper
|
|
mov r4, #1
|
|
b _0238AD7C
|
|
_0238AD74:
|
|
mov r0, #2
|
|
bl PlaySeVolumeWrapper
|
|
_0238AD7C:
|
|
bl PurpleKecleonShopCountSelectedItems
|
|
cmp r0, #0
|
|
ble _0238ADA0
|
|
ldr r0, _0238ADBC ; =PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
mov r1, #1
|
|
ldr r0, [r0, #4]
|
|
ldrsb r0, [r0, #0x98]
|
|
bl sub_0202D16C
|
|
b _0238ADB4
|
|
_0238ADA0:
|
|
ldr r0, _0238ADBC ; =PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
mov r1, #0
|
|
ldr r0, [r0, #4]
|
|
ldrsb r0, [r0, #0x98]
|
|
bl sub_0202D16C
|
|
_0238ADB4:
|
|
mov r0, r4
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0238ADBC: .word PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
arm_func_end PurpleKecleonShopUnkCollectionMenuCallback
|
|
|
|
arm_func_start PurpleKecleonShopCollectionMenuCallback
|
|
PurpleKecleonShopCollectionMenuCallback: ; 0x0238ADC0
|
|
stmdb sp!, {r3, lr}
|
|
and r0, r0, #0xff
|
|
bl GetCurrentKecleonShop2ItemByIndex
|
|
ldrsh r0, [r0]
|
|
bl sub_020444B0
|
|
ldmia sp!, {r3, pc}
|
|
arm_func_end PurpleKecleonShopCollectionMenuCallback
|
|
|
|
arm_func_start KecleonShopSubcaseManager1
|
|
KecleonShopSubcaseManager1: ; 0x0238ADD8
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
|
|
sub sp, sp, #0xac
|
|
ldr r1, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r2, [r1]
|
|
str r0, [r2, #0x10]
|
|
ldr r2, [r1]
|
|
ldr r0, [r2, #0x10]
|
|
cmp r0, #0x30
|
|
addls pc, pc, r0, lsl #2
|
|
b _0238C16C
|
|
_0238AE00: ; jump table
|
|
b _0238AEC4 ; case 0
|
|
b _0238AF18 ; case 1
|
|
b _0238AFB0 ; case 2
|
|
b _0238B000 ; case 3
|
|
b _0238B3C4 ; case 4
|
|
b _0238B050 ; case 5
|
|
b _0238B0A0 ; case 6
|
|
b _0238B0F0 ; case 7
|
|
b _0238B13C ; case 8
|
|
b _0238B188 ; case 9
|
|
b _0238B1D4 ; case 10
|
|
b _0238B220 ; case 11
|
|
b _0238B26C ; case 12
|
|
b _0238B2BC ; case 13
|
|
b _0238B30C ; case 14
|
|
b _0238B374 ; case 15
|
|
b _0238B3E0 ; case 16
|
|
b _0238B43C ; case 17
|
|
b _0238B748 ; case 18
|
|
b _0238B498 ; case 19
|
|
b _0238B510 ; case 20
|
|
b _0238B594 ; case 21
|
|
b _0238B680 ; case 22
|
|
b _0238B5DC ; case 23
|
|
b _0238BA48 ; case 24
|
|
b _0238BC40 ; case 25
|
|
b _0238C038 ; case 26
|
|
b _0238C0A0 ; case 27
|
|
b _0238B7D8 ; case 28
|
|
b _0238B834 ; case 29
|
|
b _0238BB58 ; case 30
|
|
b _0238B890 ; case 31
|
|
b _0238B8F0 ; case 32
|
|
b _0238B958 ; case 33
|
|
b _0238BA7C ; case 34
|
|
b _0238B98C ; case 35
|
|
b _0238BA14 ; case 36
|
|
b _0238BEA4 ; case 37
|
|
b _0238C06C ; case 38
|
|
b _0238C110 ; case 39
|
|
b _0238BBD8 ; case 40
|
|
b _0238BFB4 ; case 41
|
|
b _0238BFE8 ; case 42
|
|
b _0238C16C ; case 43
|
|
b _0238AF70 ; case 44
|
|
b _0238C16C ; case 45
|
|
b _0238C16C ; case 46
|
|
b _0238C16C ; case 47
|
|
b _0238AFA4 ; case 48
|
|
_0238AEC4:
|
|
ldr r0, _0238BD64 ; =KEC_SHOP_START_STR
|
|
bl Debug_Print0
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #1
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #9]
|
|
bl ClearBagSelectedItemTable
|
|
bl KecleonShopSumBagItemSellPrices
|
|
mov r0, #0
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238BD68 ; =0x00003008
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238BD6C ; =KECLEON_SHOP_TEXT_STRINGS
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238C16C
|
|
_0238AF18:
|
|
ldr r0, _0238BD70 ; =KEC_SHOP_RESTART_STR
|
|
bl Debug_Print0
|
|
bl ClearBagSelectedItemTable
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, _0238BD74 ; =0x0000017F
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x50]
|
|
bl KecleonShopSumBagItemSellPrices
|
|
mov r0, #0
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238BD68 ; =0x00003008
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238BD78 ; =ov22_0238E8F2
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238C16C
|
|
_0238AF70:
|
|
ldr r0, _0238BD7C ; =KEC_SHOP_SELECTMENU_STR
|
|
bl Debug_Print0
|
|
mov r4, #5
|
|
ldr r0, _0238BD80 ; =SHOP_WINDOW_PARAMS_6
|
|
ldr r1, _0238BD84 ; =0x00300013
|
|
ldr r3, _0238BD88 ; =SHOP_MAIN_MENU_ITEMS_3
|
|
mov r2, #0
|
|
str r4, [sp]
|
|
bl CreateSimpleMenuFromStringIds
|
|
ldr r1, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x4c]
|
|
b _0238C16C
|
|
_0238AFA4:
|
|
mov r0, #0
|
|
str r0, [r2, #0xc]
|
|
b _0238C16C
|
|
_0238AFB0:
|
|
ldr r0, _0238BD8C ; =KEC_SHOP_EXPLANATION_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
mov r0, #0
|
|
str r2, [r1, #0x14]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238BD90 ; =0x00003018
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238BD94 ; =ov22_0238E91E
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238C16C
|
|
_0238B000:
|
|
ldr r0, _0238BD98 ; =KEC_SHOP_THANKS_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #4
|
|
ldr r1, [r0]
|
|
mov r0, #0
|
|
str r2, [r1, #0x14]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238BD90 ; =0x00003018
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238BD9C ; =ov22_0238E8F4
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238C16C
|
|
_0238B050:
|
|
ldr r0, _0238BDA0 ; =KEC_SHOP_SHOP_NON_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
mov r0, #0
|
|
str r2, [r1, #0x14]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238BD90 ; =0x00003018
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238BDA4 ; =ov22_0238E90A
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238C16C
|
|
_0238B0A0:
|
|
ldr r0, _0238BDA8 ; =KEC_SHOP_GOLD_NON_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x11
|
|
ldr r1, [r0]
|
|
mov r0, #1
|
|
str r2, [r1, #0x14]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238BD90 ; =0x00003018
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238BDAC ; =ov22_0238E90C
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238C16C
|
|
_0238B0F0:
|
|
ldr r0, _0238BDB0 ; =KEC_SHOP_GOLD_MAX_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r1, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r0, #1
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x14]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238BD90 ; =0x00003018
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238BDB4 ; =ov22_0238E90E
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238C16C
|
|
_0238B13C:
|
|
ldr r0, _0238BDB8 ; =KEC_SHOP_GOLD_FULL_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r1, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r0, #1
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x14]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238BD90 ; =0x00003018
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238BDBC ; =ov22_0238E91C
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238C16C
|
|
_0238B188:
|
|
ldr r0, _0238BDC0 ; =KEC_SHOP_SELL_NON_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r1, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r0, #1
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x14]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238BD90 ; =0x00003018
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238BDC4 ; =ov22_0238E910
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238C16C
|
|
_0238B1D4:
|
|
ldr r0, _0238BDC8 ; =KEC_SHOP_ITEM_NON_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r1, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r0, #1
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x14]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238BD90 ; =0x00003018
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238BDCC ; =ov22_0238E912
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238C16C
|
|
_0238B220:
|
|
ldr r0, _0238BDD0 ; =KEC_SHOP_ITEM_MAX_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r1, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r0, #1
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x14]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238BD90 ; =0x00003018
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238BDD4 ; =ov22_0238E914
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238C16C
|
|
_0238B26C:
|
|
ldr r0, _0238BDD8 ; =KEC_SHOP_SOLD_OUT_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
mov r0, #0
|
|
str r2, [r1, #0x14]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238BD90 ; =0x00003018
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238BDDC ; =ov22_0238E916
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238C16C
|
|
_0238B2BC:
|
|
ldr r0, _0238BDE0 ; =KEC_SHOP_BUY_POOR_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x11
|
|
ldr r1, [r0]
|
|
mov r0, #1
|
|
str r2, [r1, #0x14]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238BD90 ; =0x00003018
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238BDE4 ; =ov22_0238E918
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238C16C
|
|
_0238B30C:
|
|
ldr r0, _0238BDE8 ; =KEC_SHOP_SELL_BAD_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r1, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x1d
|
|
ldr r4, [r1]
|
|
mov r0, #1
|
|
ldrsh r3, [r4, #0x30]
|
|
str r3, [r4, #0x64]
|
|
ldr r4, [r1]
|
|
ldrh r3, [r4, #0x2e]
|
|
str r3, [r4, #0x78]
|
|
ldr r1, [r1]
|
|
str r2, [r1, #0x14]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238BD90 ; =0x00003018
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238BDEC ; =ov22_0238E91A
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238C16C
|
|
_0238B374:
|
|
ldr r0, _0238BDF0 ; =KEC_SHOP_SELL_FULL_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x1d
|
|
ldr r1, [r0]
|
|
mov r0, #1
|
|
str r2, [r1, #0x14]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238BD90 ; =0x00003018
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238BDBC ; =ov22_0238E91C
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238C16C
|
|
_0238B3C4:
|
|
ldrb r0, [r2, #8]
|
|
cmp r0, #0
|
|
beq _0238B3D8
|
|
bl GreenKecleonShopDoNothing
|
|
b _0238C16C
|
|
_0238B3D8:
|
|
bl PurpleKecleonShopDoNothing
|
|
b _0238C16C
|
|
_0238B3E0:
|
|
ldr r0, _0238BDF4 ; =KEC_SHOP_MODE_BUY_START_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r3, #0x13
|
|
ldr r1, [r0]
|
|
mov r2, #0x2e
|
|
str r3, [r1, #0x14]
|
|
ldr r1, [r0]
|
|
mov r0, #0
|
|
str r2, [r1, #0x10]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238BD90 ; =0x00003018
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238BDF8 ; =ov22_0238E8F6
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238C16C
|
|
_0238B43C:
|
|
ldr r0, _0238BDFC ; =KEC_SHOP_BUY_RESTART_STR
|
|
bl Debug_Print0
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r3, #0x14
|
|
ldr r1, [r0]
|
|
mov r2, #0x2e
|
|
str r3, [r1, #0x14]
|
|
ldr r1, [r0]
|
|
mov r0, #0
|
|
str r2, [r1, #0x10]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #0x30
|
|
ldr r4, [r0]
|
|
ldr r2, _0238BE00 ; =ov22_0238E8F8
|
|
ldr r3, [r4]
|
|
ldrsb r0, [r4, #0x48]
|
|
mul r1, r3, r1
|
|
ldrh r2, [r2, r1]
|
|
ldr r1, _0238BD90 ; =0x00003018
|
|
add r3, r4, #0x50
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238C16C
|
|
_0238B498:
|
|
ldr r0, _0238BE04 ; =KEC_SHOP_BUY_SELECT_STR
|
|
bl Debug_Print0
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x48]
|
|
bl ShowDialogueBox
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x48]
|
|
bl sub_0202F2C4
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x49]
|
|
bl HidePortraitBox
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #8]
|
|
cmp r0, #0
|
|
beq _0238B4EC
|
|
bl GreenKecleonShopUpdateItemNamesAndCollectionMenu
|
|
b _0238B4F0
|
|
_0238B4EC:
|
|
bl PurpleKecleonShopUpdateItemNamesAndCollectionMenu
|
|
_0238B4F0:
|
|
ldr r1, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x4a]
|
|
mov r0, #0
|
|
bl sub_0204426C
|
|
mov r0, #0
|
|
bl sub_02044568
|
|
b _0238C16C
|
|
_0238B510:
|
|
ldr r0, _0238BE08 ; =KEC_SHOP_BUY_RESELECT_STR
|
|
bl Debug_Print0
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r2, _0238BD74 ; =0x0000017F
|
|
ldr r1, [r0]
|
|
str r2, [r1, #0x9c]
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x48]
|
|
bl ShowDialogueBox
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x48]
|
|
bl sub_0202F2C4
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x49]
|
|
bl HidePortraitBox
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #8]
|
|
cmp r0, #0
|
|
beq _0238B570
|
|
bl GreenKecleonShopInitCollectionMenu
|
|
b _0238B574
|
|
_0238B570:
|
|
bl PurpleKecleonShopInitCollectionMenu
|
|
_0238B574:
|
|
ldr r1, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x4a]
|
|
mov r0, #0
|
|
bl sub_0204426C
|
|
mov r0, #0
|
|
bl sub_02044568
|
|
b _0238C16C
|
|
_0238B594:
|
|
ldr r0, _0238BE0C ; =KEC_SHOP_SUB_MENU_BUY_STR
|
|
bl Debug_Print0
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r3, _0238BE10 ; =SHOP_MAIN_MENU_ITEMS_2
|
|
ldr r0, [r0]
|
|
mov r4, #3
|
|
ldrb r0, [r0, #8]
|
|
mov r1, #0x13
|
|
mov r2, #0
|
|
cmp r0, #0
|
|
ldrne r0, _0238BE14 ; =SHOP_WINDOW_PARAMS_7
|
|
str r4, [sp]
|
|
ldreq r0, _0238BE18 ; =SHOP_WINDOW_PARAMS_10
|
|
bl CreateSimpleMenuFromStringIds
|
|
ldr r1, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x4c]
|
|
b _0238C16C
|
|
_0238B5DC:
|
|
ldr r0, _0238BE1C ; =KEC_SHOP_BUY_CONFIRM_STR
|
|
bl Debug_Print0
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r2, _0238BE20 ; =KECLEON_SHOP_ITEM_CATEGORY_BOOLS
|
|
ldr r1, [r0]
|
|
add r0, r1, #0xe0
|
|
add r1, r1, #0x2c
|
|
bl MaybeGetColoredFormattedItemName
|
|
ldr r1, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r0, #0
|
|
ldr r3, [r1]
|
|
add r2, r3, #0xe0
|
|
str r2, [r3, #0x88]
|
|
ldr r3, [r1]
|
|
ldrsh r2, [r3, #0x30]
|
|
str r2, [r3, #0x64]
|
|
ldr r3, [r1]
|
|
ldrh r2, [r3, #0x2e]
|
|
str r2, [r3, #0x78]
|
|
ldr r2, [r1]
|
|
ldr r1, [r2, #0x1c]
|
|
str r1, [r2, #0x74]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238BD68 ; =0x00003008
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238BE24 ; =ov22_0238E8FA
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r3, #0x2f
|
|
ldr r2, [r0]
|
|
mov r1, #0x18
|
|
str r3, [r2, #0x10]
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x14]
|
|
b _0238C16C
|
|
_0238B680:
|
|
ldrsh r1, [r2, #0x30]
|
|
ldrh r2, [r2, #0x2e]
|
|
ldr r0, _0238BE28 ; =KEC_SHOP_BUY_EXPLA_ITEM_STR
|
|
bl Debug_Print0
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x50
|
|
bl InitPreprocessorArgs
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r2, _0238BE2C ; =KEC_SHOP_ITEM_TEXT_TAG
|
|
ldr r5, [r0]
|
|
ldr r3, _0238BE30 ; =0x0000C402
|
|
ldrh r4, [r5, #0x2e]
|
|
mov r1, #0x400
|
|
str r4, [r5, #0x50]
|
|
ldr r5, [r0]
|
|
ldrsh r4, [r5, #0x30]
|
|
str r4, [r5, #0x60]
|
|
ldr r5, [r0]
|
|
ldrh r4, [r5, #0x2e]
|
|
str r4, [r5, #0x74]
|
|
ldr r0, [r0]
|
|
add r4, r0, #0x50
|
|
add r0, r0, #0xa0
|
|
str r4, [sp]
|
|
bl PreprocessString
|
|
add r0, sp, #0xc
|
|
bl InitPreprocessorArgs
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
add r1, sp, #0xc
|
|
ldr r3, [r0]
|
|
ldr r0, _0238BE34 ; =SHOP_WINDOW_PARAMS_9
|
|
add r2, r3, #0xa0
|
|
str r2, [sp, #0x44]
|
|
str r1, [sp]
|
|
ldrsh r2, [r3, #0x30]
|
|
add r3, r3, #0x50
|
|
ldr r1, _0238BE38 ; =0x00001013
|
|
#if defined(EUROPE)
|
|
add r2, r2, #0xd3
|
|
add r2, r2, #0x2900
|
|
#elif defined(JAPAN)
|
|
add r2, r2, #0xce
|
|
add r2, r2, #0x4100
|
|
#else
|
|
add r2, r2, #0xd1
|
|
add r2, r2, #0x2900
|
|
#endif
|
|
mov r2, r2, lsl #0x10
|
|
mov r2, r2, lsr #0x10
|
|
stmib sp, {r2, r3}
|
|
ldr r3, _0238BE3C ; =0x0000033E
|
|
mov r2, #0
|
|
bl CreateScrollBoxSingle
|
|
ldr r1, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x4d]
|
|
b _0238C16C
|
|
_0238B748:
|
|
ldr r0, _0238BE40 ; =KEC_SHOP_BUY_THANKS_STR
|
|
bl Debug_Print0
|
|
bl RemoveInvalidKecleonShopItems
|
|
cmp r0, #0
|
|
bne _0238B790
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #8]
|
|
cmp r0, #0
|
|
beq _0238B778
|
|
bl GreenKecleonShopDoNothing
|
|
b _0238B77C
|
|
_0238B778:
|
|
bl PurpleKecleonShopDoNothing
|
|
_0238B77C:
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #0xc
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x14]
|
|
b _0238B7A0
|
|
_0238B790:
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #0x11
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x14]
|
|
_0238B7A0:
|
|
mov r0, #0
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #0x30
|
|
ldr r4, [r0]
|
|
ldr r2, _0238BE44 ; =ov22_0238E8FE
|
|
ldr r3, [r4]
|
|
ldrsb r0, [r4, #0x48]
|
|
mul r1, r3, r1
|
|
ldrh r2, [r2, r1]
|
|
ldr r1, _0238BD90 ; =0x00003018
|
|
add r3, r4, #0x50
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238C16C
|
|
_0238B7D8:
|
|
ldr r0, _0238BE48 ; =KEC_SHOP_SELL_START_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r3, #0x1f
|
|
ldr r1, [r0]
|
|
mov r2, #0x2e
|
|
str r3, [r1, #0x14]
|
|
ldr r1, [r0]
|
|
mov r0, #0
|
|
str r2, [r1, #0x10]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238BD90 ; =0x00003018
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238BE4C ; =ov22_0238E900
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238C16C
|
|
_0238B834:
|
|
ldr r0, _0238BE50 ; =KEC_SHOP_SELL_RESTART_STR
|
|
bl Debug_Print0
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r3, #0x20
|
|
ldr r1, [r0]
|
|
mov r2, #0x2e
|
|
str r3, [r1, #0x14]
|
|
ldr r1, [r0]
|
|
mov r0, #0
|
|
str r2, [r1, #0x10]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #0x30
|
|
ldr r4, [r0]
|
|
ldr r2, _0238BE54 ; =ov22_0238E902
|
|
ldr r3, [r4]
|
|
ldrsb r0, [r4, #0x48]
|
|
mul r1, r3, r1
|
|
ldrh r2, [r2, r1]
|
|
ldr r1, _0238BD90 ; =0x00003018
|
|
add r3, r4, #0x50
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238C16C
|
|
_0238B890:
|
|
ldr r0, _0238BE58 ; =KEC_SHOP_SELL_SELECT_STR
|
|
bl Debug_Print0
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x48]
|
|
bl ShowDialogueBox
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x48]
|
|
bl sub_0202F2C4
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x49]
|
|
bl HidePortraitBox
|
|
bl sub_02042730
|
|
mov r0, #4
|
|
mov r1, #0
|
|
mov r2, #8
|
|
mov r3, #1
|
|
bl InitUnkStorageStruct0xA0
|
|
ldr r1, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x4b]
|
|
b _0238C16C
|
|
_0238B8F0:
|
|
ldr r0, _0238BE5C ; =KEC_SHOP_SELL_RESELECT_STR
|
|
bl Debug_Print0
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r2, _0238BD74 ; =0x0000017F
|
|
ldr r1, [r0]
|
|
str r2, [r1, #0x9c]
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x48]
|
|
bl ShowDialogueBox
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x48]
|
|
bl sub_0202F2C4
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x49]
|
|
bl HidePortraitBox
|
|
mov r0, #4
|
|
mov r1, #0
|
|
mov r2, #8
|
|
mov r3, #1
|
|
bl InitUnkStorageStruct0xA0
|
|
ldr r1, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x4b]
|
|
b _0238C16C
|
|
_0238B958:
|
|
ldr r0, _0238BE60 ; =KEC_SHOP_SELL_SUB_MENU_STR
|
|
bl Debug_Print0
|
|
mov r4, #3
|
|
ldr r0, _0238BE14 ; =SHOP_WINDOW_PARAMS_7
|
|
ldr r3, _0238BE64 ; =SHOP_MAIN_MENU_ITEMS_1
|
|
mov r1, #0x13
|
|
mov r2, #0
|
|
str r4, [sp]
|
|
bl CreateSimpleMenuFromStringIds
|
|
ldr r1, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x4c]
|
|
b _0238C16C
|
|
_0238B98C:
|
|
ldr r0, _0238BE68 ; =KEC_SHOP_SELL_CONFIRM_STR
|
|
bl Debug_Print0
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r2, _0238BE20 ; =KECLEON_SHOP_ITEM_CATEGORY_BOOLS
|
|
ldr r1, [r0]
|
|
add r0, r1, #0xe0
|
|
add r1, r1, #0x2c
|
|
bl MaybeGetColoredFormattedItemName
|
|
ldr r1, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r4, #0x2f
|
|
ldr r3, [r1]
|
|
mov r2, #0x24
|
|
add r0, r3, #0xe0
|
|
str r0, [r3, #0x88]
|
|
ldr r5, [r1]
|
|
mov r0, #0
|
|
ldr r3, [r5, #0x1c]
|
|
str r3, [r5, #0x74]
|
|
ldr r3, [r1]
|
|
str r4, [r3, #0x10]
|
|
ldr r1, [r1]
|
|
str r2, [r1, #0x14]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238BD68 ; =0x00003008
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238BE6C ; =ov22_0238E904
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238C16C
|
|
_0238BA14:
|
|
ldr r0, _0238BE70 ; =KEC_SHOP_SELL_CONFIRM_NEW_STR
|
|
bl Debug_Print0
|
|
mov r4, #2
|
|
ldr r0, _0238BE74 ; =SHOP_WINDOW_PARAMS_8
|
|
ldr r1, _0238BD84 ; =0x00300013
|
|
ldr r3, _0238BE78 ; =SHOP_MENU_ITEMS_CONFIRM
|
|
mov r2, #0
|
|
str r4, [sp]
|
|
bl CreateSimpleMenuFromStringIds
|
|
ldr r1, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x4c]
|
|
b _0238C16C
|
|
_0238BA48:
|
|
ldr r0, _0238BE7C ; =KEC_SHOP_BUY_CONFIRM_NEW_STR
|
|
bl Debug_Print0
|
|
mov r4, #2
|
|
ldr r0, _0238BE74 ; =SHOP_WINDOW_PARAMS_8
|
|
ldr r1, _0238BD84 ; =0x00300013
|
|
ldr r3, _0238BE78 ; =SHOP_MENU_ITEMS_CONFIRM
|
|
mov r2, #0
|
|
str r4, [sp]
|
|
bl CreateSimpleMenuFromStringIds
|
|
ldr r1, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x4c]
|
|
b _0238C16C
|
|
_0238BA7C:
|
|
ldr r0, _0238BE80 ; =KEC_SHOP_SELL_EXPLA_STR
|
|
bl Debug_Print0
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x50
|
|
bl InitPreprocessorArgs
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r5, #0
|
|
ldr r6, [r0]
|
|
ldr r2, _0238BE2C ; =KEC_SHOP_ITEM_TEXT_TAG
|
|
ldrh r4, [r6, #0x2e]
|
|
ldr r3, _0238BE30 ; =0x0000C402
|
|
mov r1, #0x400
|
|
str r4, [r6, #0x50]
|
|
ldr r6, [r0]
|
|
ldrsh r4, [r6, #0x30]
|
|
str r4, [r6, #0x60]
|
|
ldr r6, [r0]
|
|
ldrh r4, [r6, #0x2e]
|
|
str r4, [r6, #0x74]
|
|
ldr r6, [r0]
|
|
ldrh r4, [r6, #0x2e]
|
|
add r4, r4, #0xbc
|
|
str r4, [r6, #0x68]
|
|
ldr r4, [r0]
|
|
str r5, [r4, #0x7c]
|
|
ldr r0, [r0]
|
|
add r4, r0, #0x50
|
|
add r0, r0, #0xa0
|
|
str r4, [sp]
|
|
bl PreprocessString
|
|
add r0, sp, #0x5c
|
|
bl InitPreprocessorArgs
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
add r1, sp, #0x5c
|
|
ldr r3, [r0]
|
|
ldr r0, _0238BE34 ; =SHOP_WINDOW_PARAMS_9
|
|
add r2, r3, #0xa0
|
|
str r2, [sp, #0x94]
|
|
str r1, [sp]
|
|
ldrsh r2, [r3, #0x30]
|
|
add r3, r3, #0x50
|
|
ldr r1, _0238BE38 ; =0x00001013
|
|
#if defined(EUROPE)
|
|
add r2, r2, #0xd3
|
|
add r2, r2, #0x2900
|
|
#elif defined(JAPAN)
|
|
add r2, r2, #0xce
|
|
add r2, r2, #0x4100
|
|
#else
|
|
add r2, r2, #0xd1
|
|
add r2, r2, #0x2900
|
|
#endif
|
|
mov r2, r2, lsl #0x10
|
|
mov r2, r2, lsr #0x10
|
|
stmib sp, {r2, r3}
|
|
ldr r3, _0238BE3C ; =0x0000033E
|
|
mov r2, r5
|
|
bl CreateScrollBoxSingle
|
|
ldr r1, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x4d]
|
|
b _0238C16C
|
|
_0238BB58:
|
|
ldr r0, _0238BE84 ; =KEC_SHOP_SELL_THANKS_STR
|
|
bl Debug_Print0
|
|
bl GetNbItemsInBag
|
|
cmp r0, #0
|
|
beq _0238BB7C
|
|
bl GetMoneyCarried
|
|
ldr r1, _0238BE88 ; =0x0001869F
|
|
cmp r0, r1
|
|
blt _0238BB90
|
|
_0238BB7C:
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #1
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x14]
|
|
b _0238BBA0
|
|
_0238BB90:
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #0x1d
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x14]
|
|
_0238BBA0:
|
|
mov r0, #0
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #0x30
|
|
ldr r4, [r0]
|
|
ldr r2, _0238BE8C ; =ov22_0238E908
|
|
ldr r3, [r4]
|
|
ldrsb r0, [r4, #0x48]
|
|
mul r1, r3, r1
|
|
ldrh r2, [r2, r1]
|
|
ldr r1, _0238BD90 ; =0x00003018
|
|
add r3, r4, #0x50
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238C16C
|
|
_0238BBD8:
|
|
ldr r0, _0238BE90 ; =KEC_SHOP_SELL_ALL_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r1, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r0, #0
|
|
ldr r2, [r1]
|
|
ldr r1, [r2, #0x28]
|
|
str r1, [r2, #0x74]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x2f
|
|
ldr r1, [r0]
|
|
mov r3, #0x29
|
|
str r2, [r1, #0x10]
|
|
ldr r2, [r0]
|
|
ldr r1, _0238BD68 ; =0x00003008
|
|
str r3, [r2, #0x14]
|
|
ldr r3, [r0]
|
|
mov r2, #0x30
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238BE94 ; =ov22_0238E906
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238C16C
|
|
_0238BC40:
|
|
ldr r0, _0238BE98 ; =KEC_SHOP_BUT_MULTI_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #8]
|
|
cmp r0, #0
|
|
beq _0238BC7C
|
|
bl GreenKecleonShopCountSelectedItems
|
|
ldr r1, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x20]
|
|
bl GreenKecleonShopSumSelectedItemPrices
|
|
ldr r1, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
b _0238BC94
|
|
_0238BC7C:
|
|
bl PurpleKecleonShopCountSelectedItems
|
|
ldr r1, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x20]
|
|
bl PurpleKecleonShopSumSelectedItemPrices
|
|
ldr r1, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
_0238BC94:
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x28]
|
|
bl GetMoneyCarried
|
|
cmp r0, #0
|
|
bne _0238BCCC
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r3, #6
|
|
ldr r2, [r0]
|
|
mov r1, #0x30
|
|
str r3, [r2, #0x14]
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x10]
|
|
bl KecleonShopSubcaseManager2
|
|
b _0238C16C
|
|
_0238BCCC:
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r5, [r0]
|
|
ldr r4, [r5, #0x28]
|
|
bl GetMoneyCarried
|
|
cmp r4, r0
|
|
ble _0238BD04
|
|
mov r1, #0xd
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
str r1, [r5, #0x14]
|
|
ldr r0, [r0]
|
|
mov r1, #0x30
|
|
str r1, [r0, #0x10]
|
|
bl KecleonShopSubcaseManager2
|
|
b _0238C16C
|
|
_0238BD04:
|
|
ldr r1, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r0, #0
|
|
ldr r1, [r1]
|
|
str r4, [r1, #0x74]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x2f
|
|
ldr r1, [r0]
|
|
mov r3, #0x1a
|
|
str r2, [r1, #0x10]
|
|
ldr r2, [r0]
|
|
mov r1, #0x30
|
|
str r3, [r2, #0x14]
|
|
ldr r4, [r0]
|
|
ldr r2, _0238BE9C ; =ov22_0238E8FC
|
|
ldr r3, [r4]
|
|
ldrsb r0, [r4, #0x48]
|
|
mul r1, r3, r1
|
|
ldrh r2, [r2, r1]
|
|
ldr r1, _0238BD68 ; =0x00003008
|
|
add r3, r4, #0x50
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238C16C
|
|
.align 2, 0
|
|
_0238BD60: .word KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
_0238BD64: .word KEC_SHOP_START_STR
|
|
_0238BD68: .word 0x00003008
|
|
_0238BD6C: .word KECLEON_SHOP_TEXT_STRINGS
|
|
_0238BD70: .word KEC_SHOP_RESTART_STR
|
|
_0238BD74: .word 0x0000017F
|
|
_0238BD78: .word ov22_0238E8F2
|
|
_0238BD7C: .word KEC_SHOP_SELECTMENU_STR
|
|
_0238BD80: .word SHOP_WINDOW_PARAMS_6
|
|
_0238BD84: .word 0x00300013
|
|
_0238BD88: .word SHOP_MAIN_MENU_ITEMS_3
|
|
_0238BD8C: .word KEC_SHOP_EXPLANATION_STR
|
|
_0238BD90: .word 0x00003018
|
|
_0238BD94: .word ov22_0238E91E
|
|
_0238BD98: .word KEC_SHOP_THANKS_STR
|
|
_0238BD9C: .word ov22_0238E8F4
|
|
_0238BDA0: .word KEC_SHOP_SHOP_NON_STR
|
|
_0238BDA4: .word ov22_0238E90A
|
|
_0238BDA8: .word KEC_SHOP_GOLD_NON_STR
|
|
_0238BDAC: .word ov22_0238E90C
|
|
_0238BDB0: .word KEC_SHOP_GOLD_MAX_STR
|
|
_0238BDB4: .word ov22_0238E90E
|
|
_0238BDB8: .word KEC_SHOP_GOLD_FULL_STR
|
|
_0238BDBC: .word ov22_0238E91C
|
|
_0238BDC0: .word KEC_SHOP_SELL_NON_STR
|
|
_0238BDC4: .word ov22_0238E910
|
|
_0238BDC8: .word KEC_SHOP_ITEM_NON_STR
|
|
_0238BDCC: .word ov22_0238E912
|
|
_0238BDD0: .word KEC_SHOP_ITEM_MAX_STR
|
|
_0238BDD4: .word ov22_0238E914
|
|
_0238BDD8: .word KEC_SHOP_SOLD_OUT_STR
|
|
_0238BDDC: .word ov22_0238E916
|
|
_0238BDE0: .word KEC_SHOP_BUY_POOR_STR
|
|
_0238BDE4: .word ov22_0238E918
|
|
_0238BDE8: .word KEC_SHOP_SELL_BAD_STR
|
|
_0238BDEC: .word ov22_0238E91A
|
|
_0238BDF0: .word KEC_SHOP_SELL_FULL_STR
|
|
_0238BDF4: .word KEC_SHOP_MODE_BUY_START_STR
|
|
_0238BDF8: .word ov22_0238E8F6
|
|
_0238BDFC: .word KEC_SHOP_BUY_RESTART_STR
|
|
_0238BE00: .word ov22_0238E8F8
|
|
_0238BE04: .word KEC_SHOP_BUY_SELECT_STR
|
|
_0238BE08: .word KEC_SHOP_BUY_RESELECT_STR
|
|
_0238BE0C: .word KEC_SHOP_SUB_MENU_BUY_STR
|
|
_0238BE10: .word SHOP_MAIN_MENU_ITEMS_2
|
|
_0238BE14: .word SHOP_WINDOW_PARAMS_7
|
|
_0238BE18: .word SHOP_WINDOW_PARAMS_10
|
|
_0238BE1C: .word KEC_SHOP_BUY_CONFIRM_STR
|
|
_0238BE20: .word KECLEON_SHOP_ITEM_CATEGORY_BOOLS
|
|
_0238BE24: .word ov22_0238E8FA
|
|
_0238BE28: .word KEC_SHOP_BUY_EXPLA_ITEM_STR
|
|
_0238BE2C: .word KEC_SHOP_ITEM_TEXT_TAG
|
|
_0238BE30: .word 0x0000C402
|
|
_0238BE34: .word SHOP_WINDOW_PARAMS_9
|
|
_0238BE38: .word 0x00001013
|
|
#ifdef JAPAN
|
|
_0238BE3C: .word 0x00003203
|
|
#else
|
|
_0238BE3C: .word 0x0000033E
|
|
#endif
|
|
_0238BE40: .word KEC_SHOP_BUY_THANKS_STR
|
|
_0238BE44: .word ov22_0238E8FE
|
|
_0238BE48: .word KEC_SHOP_SELL_START_STR
|
|
_0238BE4C: .word ov22_0238E900
|
|
_0238BE50: .word KEC_SHOP_SELL_RESTART_STR
|
|
_0238BE54: .word ov22_0238E902
|
|
_0238BE58: .word KEC_SHOP_SELL_SELECT_STR
|
|
_0238BE5C: .word KEC_SHOP_SELL_RESELECT_STR
|
|
_0238BE60: .word KEC_SHOP_SELL_SUB_MENU_STR
|
|
_0238BE64: .word SHOP_MAIN_MENU_ITEMS_1
|
|
_0238BE68: .word KEC_SHOP_SELL_CONFIRM_STR
|
|
_0238BE6C: .word ov22_0238E904
|
|
_0238BE70: .word KEC_SHOP_SELL_CONFIRM_NEW_STR
|
|
_0238BE74: .word SHOP_WINDOW_PARAMS_8
|
|
_0238BE78: .word SHOP_MENU_ITEMS_CONFIRM
|
|
_0238BE7C: .word KEC_SHOP_BUY_CONFIRM_NEW_STR
|
|
_0238BE80: .word KEC_SHOP_SELL_EXPLA_STR
|
|
_0238BE84: .word KEC_SHOP_SELL_THANKS_STR
|
|
_0238BE88: .word 0x0001869F
|
|
_0238BE8C: .word ov22_0238E908
|
|
_0238BE90: .word KEC_SHOP_SELL_ALL_STR
|
|
_0238BE94: .word ov22_0238E906
|
|
_0238BE98: .word KEC_SHOP_BUT_MULTI_STR
|
|
_0238BE9C: .word ov22_0238E8FC
|
|
_0238BEA0: .word KEC_SHOP_SELL_MULTI_STR
|
|
_0238BEA4:
|
|
ldr r0, _0238BEA0 ; =KEC_SHOP_SELL_MULTI_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r8, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r6, #0
|
|
ldr r0, [r8]
|
|
mov r4, r6
|
|
str r6, [r0, #0x24]
|
|
ldr r0, [r8]
|
|
mov r5, #1
|
|
str r6, [r0, #0x28]
|
|
mov r7, #6
|
|
_0238BED4:
|
|
ldr r0, [r8]
|
|
mul r1, r6, r7
|
|
ldr r0, [r0, #0x44]
|
|
ldr r2, [r0, #0x384]
|
|
ldrb r0, [r2, r1]
|
|
add sb, r2, r1
|
|
tst r0, #1
|
|
movne r0, r5
|
|
moveq r0, r4
|
|
tst r0, #0xff
|
|
beq _0238BF48
|
|
ldrsh r0, [sb, #4]
|
|
bl IsShoppableItem
|
|
cmp r0, #0
|
|
beq _0238BF48
|
|
mov r0, r6
|
|
bl IsBagItemIndexSelected
|
|
cmp r0, #0
|
|
beq _0238BF48
|
|
mov r0, sb
|
|
bl GetActualSellPrice
|
|
ldr r2, [r8]
|
|
ldr r1, [r2, #0x28]
|
|
add r0, r1, r0
|
|
str r0, [r2, #0x28]
|
|
ldr r1, [r8]
|
|
ldr r0, [r1, #0x24]
|
|
add r0, r0, #1
|
|
str r0, [r1, #0x24]
|
|
_0238BF48:
|
|
add r6, r6, #1
|
|
cmp r6, #0x32
|
|
blt _0238BED4
|
|
ldr r1, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r0, #0
|
|
ldr r2, [r1]
|
|
ldr r1, [r2, #0x28]
|
|
str r1, [r2, #0x74]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x2f
|
|
ldr r1, [r0]
|
|
mov r3, #0x26
|
|
str r2, [r1, #0x10]
|
|
ldr r2, [r0]
|
|
mov r1, #0x30
|
|
str r3, [r2, #0x14]
|
|
ldr r4, [r0]
|
|
ldr r2, _0238BE94 ; =ov22_0238E906
|
|
ldr r3, [r4]
|
|
ldrsb r0, [r4, #0x48]
|
|
mul r1, r3, r1
|
|
ldrh r2, [r2, r1]
|
|
ldr r1, _0238BD68 ; =0x00003008
|
|
add r3, r4, #0x50
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238C16C
|
|
_0238BFB4:
|
|
ldr r0, _0238C174 ; =KEC_SHOP_ALL_CONFIRM_STR
|
|
bl Debug_Print0
|
|
mov r4, #2
|
|
ldr r0, _0238BE74 ; =SHOP_WINDOW_PARAMS_8
|
|
ldr r1, _0238BD84 ; =0x00300013
|
|
ldr r3, _0238BE78 ; =SHOP_MENU_ITEMS_CONFIRM
|
|
mov r2, #0
|
|
str r4, [sp]
|
|
bl CreateSimpleMenuFromStringIds
|
|
ldr r1, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x4c]
|
|
b _0238C16C
|
|
_0238BFE8:
|
|
ldr r0, _0238C178 ; =KEC_SHOP_SELL_ALL_THANKS_STR
|
|
bl Debug_Print0
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
mov r0, #0
|
|
str r2, [r1, #0x14]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #0x30
|
|
ldr r4, [r0]
|
|
ldr r2, _0238BE8C ; =ov22_0238E908
|
|
ldr r3, [r4]
|
|
ldrsb r0, [r4, #0x48]
|
|
mul r1, r3, r1
|
|
ldrh r2, [r2, r1]
|
|
ldr r1, _0238BD90 ; =0x00003018
|
|
add r3, r4, #0x50
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238C16C
|
|
_0238C038:
|
|
ldr r0, _0238C174 ; =KEC_SHOP_ALL_CONFIRM_STR
|
|
bl Debug_Print0
|
|
mov r4, #2
|
|
ldr r0, _0238BE74 ; =SHOP_WINDOW_PARAMS_8
|
|
ldr r1, _0238BD84 ; =0x00300013
|
|
ldr r3, _0238BE78 ; =SHOP_MENU_ITEMS_CONFIRM
|
|
mov r2, #0
|
|
str r4, [sp]
|
|
bl CreateSimpleMenuFromStringIds
|
|
ldr r1, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x4c]
|
|
b _0238C16C
|
|
_0238C06C:
|
|
ldr r0, _0238C174 ; =KEC_SHOP_ALL_CONFIRM_STR
|
|
bl Debug_Print0
|
|
mov r4, #2
|
|
ldr r0, _0238BE74 ; =SHOP_WINDOW_PARAMS_8
|
|
ldr r1, _0238BD84 ; =0x00300013
|
|
ldr r3, _0238BE78 ; =SHOP_MENU_ITEMS_CONFIRM
|
|
mov r2, #0
|
|
str r4, [sp]
|
|
bl CreateSimpleMenuFromStringIds
|
|
ldr r1, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x4c]
|
|
b _0238C16C
|
|
_0238C0A0:
|
|
ldr r0, _0238C17C ; =KEC_SHOP_BUY_MULTI_THANKS_STR
|
|
bl Debug_Print0
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x48]
|
|
bl ShowDialogueBox
|
|
bl RemoveInvalidKecleonShopItems
|
|
cmp r0, #0
|
|
ldreq r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
moveq r1, #0xc
|
|
ldrne r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
movne r1, #1
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x14]
|
|
mov r0, #0
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #0x30
|
|
ldr r4, [r0]
|
|
ldr r2, _0238BE44 ; =ov22_0238E8FE
|
|
ldr r3, [r4]
|
|
ldrsb r0, [r4, #0x48]
|
|
mul r1, r3, r1
|
|
ldrh r2, [r2, r1]
|
|
ldr r1, _0238BD90 ; =0x00003018
|
|
add r3, r4, #0x50
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238C16C
|
|
_0238C110:
|
|
ldr r0, _0238C180 ; =KEC_SHOP_SELL_MULTI_THANKS_STR
|
|
bl Debug_Print0
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x48]
|
|
bl ShowDialogueBox
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
mov r0, #0
|
|
str r2, [r1, #0x14]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238BD60 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238BD90 ; =0x00003018
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238BE8C ; =ov22_0238E908
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
bl ClearBagSelectedItemTable
|
|
_0238C16C:
|
|
add sp, sp, #0xac
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
|
|
.align 2, 0
|
|
_0238C174: .word KEC_SHOP_ALL_CONFIRM_STR
|
|
_0238C178: .word KEC_SHOP_SELL_ALL_THANKS_STR
|
|
_0238C17C: .word KEC_SHOP_BUY_MULTI_THANKS_STR
|
|
_0238C180: .word KEC_SHOP_SELL_MULTI_THANKS_STR
|
|
arm_func_end KecleonShopSubcaseManager1
|
|
|
|
arm_func_start KecleonShopSubcaseManager2
|
|
KecleonShopSubcaseManager2: ; 0x0238C184
|
|
stmdb sp!, {r4, r5, r6, r7, r8, sb, lr}
|
|
sub sp, sp, #0xac
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r2, [r0]
|
|
ldr r0, [r2, #0x10]
|
|
cmp r0, #0x30
|
|
addls pc, pc, r0, lsl #2
|
|
b _0238D510
|
|
_0238C1A4: ; jump table
|
|
b _0238C268 ; case 0
|
|
b _0238C2BC ; case 1
|
|
b _0238C354 ; case 2
|
|
b _0238C3A4 ; case 3
|
|
b _0238C768 ; case 4
|
|
b _0238C3F4 ; case 5
|
|
b _0238C444 ; case 6
|
|
b _0238C494 ; case 7
|
|
b _0238C4E0 ; case 8
|
|
b _0238C52C ; case 9
|
|
b _0238C578 ; case 10
|
|
b _0238C5C4 ; case 11
|
|
b _0238C610 ; case 12
|
|
b _0238C660 ; case 13
|
|
b _0238C6B0 ; case 14
|
|
b _0238C718 ; case 15
|
|
b _0238C784 ; case 16
|
|
b _0238C7E0 ; case 17
|
|
b _0238CAEC ; case 18
|
|
b _0238C83C ; case 19
|
|
b _0238C8B4 ; case 20
|
|
b _0238C938 ; case 21
|
|
b _0238CA24 ; case 22
|
|
b _0238C980 ; case 23
|
|
b _0238CDEC ; case 24
|
|
b _0238CFE4 ; case 25
|
|
b _0238D3DC ; case 26
|
|
b _0238D444 ; case 27
|
|
b _0238CB7C ; case 28
|
|
b _0238CBD8 ; case 29
|
|
b _0238CEFC ; case 30
|
|
b _0238CC34 ; case 31
|
|
b _0238CC94 ; case 32
|
|
b _0238CCFC ; case 33
|
|
b _0238CE20 ; case 34
|
|
b _0238CD30 ; case 35
|
|
b _0238CDB8 ; case 36
|
|
b _0238D248 ; case 37
|
|
b _0238D410 ; case 38
|
|
b _0238D4B4 ; case 39
|
|
b _0238CF7C ; case 40
|
|
b _0238D358 ; case 41
|
|
b _0238D38C ; case 42
|
|
b _0238D510 ; case 43
|
|
b _0238C314 ; case 44
|
|
b _0238D510 ; case 45
|
|
b _0238D510 ; case 46
|
|
b _0238D510 ; case 47
|
|
b _0238C348 ; case 48
|
|
_0238C268:
|
|
ldr r0, _0238D108 ; =KEC_SHOP_START_STR
|
|
bl Debug_Print0
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #1
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #9]
|
|
bl ClearBagSelectedItemTable
|
|
bl KecleonShopSumBagItemSellPrices
|
|
mov r0, #0
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238D10C ; =0x00003008
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238D110 ; =KECLEON_SHOP_TEXT_STRINGS
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238D510
|
|
_0238C2BC:
|
|
ldr r0, _0238D114 ; =KEC_SHOP_RESTART_STR
|
|
bl Debug_Print0
|
|
bl ClearBagSelectedItemTable
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, _0238D118 ; =0x0000017F
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x50]
|
|
bl KecleonShopSumBagItemSellPrices
|
|
mov r0, #0
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238D10C ; =0x00003008
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238D11C ; =ov22_0238E8F2
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238D510
|
|
_0238C314:
|
|
ldr r0, _0238D120 ; =KEC_SHOP_SELECTMENU_STR
|
|
bl Debug_Print0
|
|
mov r4, #5
|
|
ldr r0, _0238D124 ; =SHOP_WINDOW_PARAMS_6
|
|
ldr r1, _0238D128 ; =0x00300013
|
|
ldr r3, _0238D12C ; =SHOP_MAIN_MENU_ITEMS_3
|
|
mov r2, #0
|
|
str r4, [sp]
|
|
bl CreateSimpleMenuFromStringIds
|
|
ldr r1, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x4c]
|
|
b _0238D510
|
|
_0238C348:
|
|
mov r0, #0
|
|
str r0, [r2, #0xc]
|
|
b _0238D510
|
|
_0238C354:
|
|
ldr r0, _0238D130 ; =KEC_SHOP_EXPLANATION_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
mov r0, #0
|
|
str r2, [r1, #0x14]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238D134 ; =0x00003018
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238D138 ; =ov22_0238E91E
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238D510
|
|
_0238C3A4:
|
|
ldr r0, _0238D13C ; =KEC_SHOP_THANKS_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #4
|
|
ldr r1, [r0]
|
|
mov r0, #0
|
|
str r2, [r1, #0x14]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238D134 ; =0x00003018
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238D140 ; =ov22_0238E8F4
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238D510
|
|
_0238C3F4:
|
|
ldr r0, _0238D144 ; =KEC_SHOP_SHOP_NON_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
mov r0, #0
|
|
str r2, [r1, #0x14]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238D134 ; =0x00003018
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238D148 ; =ov22_0238E90A
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238D510
|
|
_0238C444:
|
|
ldr r0, _0238D14C ; =KEC_SHOP_GOLD_NON_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x11
|
|
ldr r1, [r0]
|
|
mov r0, #1
|
|
str r2, [r1, #0x14]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238D134 ; =0x00003018
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238D150 ; =ov22_0238E90C
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238D510
|
|
_0238C494:
|
|
ldr r0, _0238D154 ; =KEC_SHOP_GOLD_MAX_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r1, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r0, #1
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x14]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238D134 ; =0x00003018
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238D158 ; =ov22_0238E90E
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238D510
|
|
_0238C4E0:
|
|
ldr r0, _0238D15C ; =KEC_SHOP_GOLD_FULL_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r1, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r0, #1
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x14]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238D134 ; =0x00003018
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238D160 ; =ov22_0238E91C
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238D510
|
|
_0238C52C:
|
|
ldr r0, _0238D164 ; =KEC_SHOP_SELL_NON_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r1, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r0, #1
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x14]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238D134 ; =0x00003018
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238D168 ; =ov22_0238E910
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238D510
|
|
_0238C578:
|
|
ldr r0, _0238D16C ; =KEC_SHOP_ITEM_NON_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r1, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r0, #1
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x14]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238D134 ; =0x00003018
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238D170 ; =ov22_0238E912
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238D510
|
|
_0238C5C4:
|
|
ldr r0, _0238D174 ; =KEC_SHOP_ITEM_MAX_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r1, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r0, #1
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x14]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238D134 ; =0x00003018
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238D178 ; =ov22_0238E914
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238D510
|
|
_0238C610:
|
|
ldr r0, _0238D17C ; =KEC_SHOP_SOLD_OUT_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
mov r0, #0
|
|
str r2, [r1, #0x14]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238D134 ; =0x00003018
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238D180 ; =ov22_0238E916
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238D510
|
|
_0238C660:
|
|
ldr r0, _0238D184 ; =KEC_SHOP_BUY_POOR_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x11
|
|
ldr r1, [r0]
|
|
mov r0, #1
|
|
str r2, [r1, #0x14]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238D134 ; =0x00003018
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238D188 ; =ov22_0238E918
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238D510
|
|
_0238C6B0:
|
|
ldr r0, _0238D18C ; =KEC_SHOP_SELL_BAD_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r1, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x1d
|
|
ldr r4, [r1]
|
|
mov r0, #1
|
|
ldrsh r3, [r4, #0x30]
|
|
str r3, [r4, #0x64]
|
|
ldr r4, [r1]
|
|
ldrh r3, [r4, #0x2e]
|
|
str r3, [r4, #0x78]
|
|
ldr r1, [r1]
|
|
str r2, [r1, #0x14]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238D134 ; =0x00003018
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238D190 ; =ov22_0238E91A
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238D510
|
|
_0238C718:
|
|
ldr r0, _0238D194 ; =KEC_SHOP_SELL_FULL_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x1d
|
|
ldr r1, [r0]
|
|
mov r0, #1
|
|
str r2, [r1, #0x14]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238D134 ; =0x00003018
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238D160 ; =ov22_0238E91C
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238D510
|
|
_0238C768:
|
|
ldrb r0, [r2, #8]
|
|
cmp r0, #0
|
|
beq _0238C77C
|
|
bl GreenKecleonShopDoNothing
|
|
b _0238D510
|
|
_0238C77C:
|
|
bl PurpleKecleonShopDoNothing
|
|
b _0238D510
|
|
_0238C784:
|
|
ldr r0, _0238D198 ; =KEC_SHOP_MODE_BUY_START_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r3, #0x13
|
|
ldr r1, [r0]
|
|
mov r2, #0x2e
|
|
str r3, [r1, #0x14]
|
|
ldr r1, [r0]
|
|
mov r0, #0
|
|
str r2, [r1, #0x10]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238D134 ; =0x00003018
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238D19C ; =ov22_0238E8F6
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238D510
|
|
_0238C7E0:
|
|
ldr r0, _0238D1A0 ; =KEC_SHOP_BUY_RESTART_STR
|
|
bl Debug_Print0
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r3, #0x14
|
|
ldr r1, [r0]
|
|
mov r2, #0x2e
|
|
str r3, [r1, #0x14]
|
|
ldr r1, [r0]
|
|
mov r0, #0
|
|
str r2, [r1, #0x10]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #0x30
|
|
ldr r4, [r0]
|
|
ldr r2, _0238D1A4 ; =ov22_0238E8F8
|
|
ldr r3, [r4]
|
|
ldrsb r0, [r4, #0x48]
|
|
mul r1, r3, r1
|
|
ldrh r2, [r2, r1]
|
|
ldr r1, _0238D134 ; =0x00003018
|
|
add r3, r4, #0x50
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238D510
|
|
_0238C83C:
|
|
ldr r0, _0238D1A8 ; =KEC_SHOP_BUY_SELECT_STR
|
|
bl Debug_Print0
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x48]
|
|
bl ShowDialogueBox
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x48]
|
|
bl sub_0202F2C4
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x49]
|
|
bl HidePortraitBox
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #8]
|
|
cmp r0, #0
|
|
beq _0238C890
|
|
bl GreenKecleonShopUpdateItemNamesAndCollectionMenu
|
|
b _0238C894
|
|
_0238C890:
|
|
bl PurpleKecleonShopUpdateItemNamesAndCollectionMenu
|
|
_0238C894:
|
|
ldr r1, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x4a]
|
|
mov r0, #0
|
|
bl sub_0204426C
|
|
mov r0, #0
|
|
bl sub_02044568
|
|
b _0238D510
|
|
_0238C8B4:
|
|
ldr r0, _0238D1AC ; =KEC_SHOP_BUY_RESELECT_STR
|
|
bl Debug_Print0
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r2, _0238D118 ; =0x0000017F
|
|
ldr r1, [r0]
|
|
str r2, [r1, #0x9c]
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x48]
|
|
bl ShowDialogueBox
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x48]
|
|
bl sub_0202F2C4
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x49]
|
|
bl HidePortraitBox
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #8]
|
|
cmp r0, #0
|
|
beq _0238C914
|
|
bl GreenKecleonShopInitCollectionMenu
|
|
b _0238C918
|
|
_0238C914:
|
|
bl PurpleKecleonShopInitCollectionMenu
|
|
_0238C918:
|
|
ldr r1, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x4a]
|
|
mov r0, #0
|
|
bl sub_0204426C
|
|
mov r0, #0
|
|
bl sub_02044568
|
|
b _0238D510
|
|
_0238C938:
|
|
ldr r0, _0238D1B0 ; =KEC_SHOP_SUB_MENU_BUY_STR
|
|
bl Debug_Print0
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r3, _0238D1B4 ; =SHOP_MAIN_MENU_ITEMS_2
|
|
ldr r0, [r0]
|
|
mov r4, #3
|
|
ldrb r0, [r0, #8]
|
|
mov r1, #0x13
|
|
mov r2, #0
|
|
cmp r0, #0
|
|
ldrne r0, _0238D1B8 ; =SHOP_WINDOW_PARAMS_7
|
|
str r4, [sp]
|
|
ldreq r0, _0238D1BC ; =SHOP_WINDOW_PARAMS_10
|
|
bl CreateSimpleMenuFromStringIds
|
|
ldr r1, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x4c]
|
|
b _0238D510
|
|
_0238C980:
|
|
ldr r0, _0238D1C0 ; =KEC_SHOP_BUY_CONFIRM_STR
|
|
bl Debug_Print0
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r2, _0238D1C4 ; =KECLEON_SHOP_ITEM_CATEGORY_BOOLS
|
|
ldr r1, [r0]
|
|
add r0, r1, #0xe0
|
|
add r1, r1, #0x2c
|
|
bl MaybeGetColoredFormattedItemName
|
|
ldr r1, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r0, #0
|
|
ldr r3, [r1]
|
|
add r2, r3, #0xe0
|
|
str r2, [r3, #0x88]
|
|
ldr r3, [r1]
|
|
ldrsh r2, [r3, #0x30]
|
|
str r2, [r3, #0x64]
|
|
ldr r3, [r1]
|
|
ldrh r2, [r3, #0x2e]
|
|
str r2, [r3, #0x78]
|
|
ldr r2, [r1]
|
|
ldr r1, [r2, #0x1c]
|
|
str r1, [r2, #0x74]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238D10C ; =0x00003008
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238D1C8 ; =ov22_0238E8FA
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r3, #0x2f
|
|
ldr r2, [r0]
|
|
mov r1, #0x18
|
|
str r3, [r2, #0x10]
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x14]
|
|
b _0238D510
|
|
_0238CA24:
|
|
ldrsh r1, [r2, #0x30]
|
|
ldrh r2, [r2, #0x2e]
|
|
ldr r0, _0238D1CC ; =KEC_SHOP_BUY_EXPLA_ITEM_STR
|
|
bl Debug_Print0
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x50
|
|
bl InitPreprocessorArgs
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r2, _0238D1D0 ; =KEC_SHOP_ITEM_TEXT_TAG
|
|
ldr r5, [r0]
|
|
ldr r3, _0238D1D4 ; =0x0000C402
|
|
ldrh r4, [r5, #0x2e]
|
|
mov r1, #0x400
|
|
str r4, [r5, #0x50]
|
|
ldr r5, [r0]
|
|
ldrsh r4, [r5, #0x30]
|
|
str r4, [r5, #0x60]
|
|
ldr r5, [r0]
|
|
ldrh r4, [r5, #0x2e]
|
|
str r4, [r5, #0x74]
|
|
ldr r0, [r0]
|
|
add r4, r0, #0x50
|
|
add r0, r0, #0xa0
|
|
str r4, [sp]
|
|
bl PreprocessString
|
|
add r0, sp, #0x5c
|
|
bl InitPreprocessorArgs
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
add r1, sp, #0x5c
|
|
ldr r3, [r0]
|
|
ldr r0, _0238D1D8 ; =SHOP_WINDOW_PARAMS_9
|
|
add r2, r3, #0xa0
|
|
str r2, [sp, #0x94]
|
|
str r1, [sp]
|
|
ldrsh r2, [r3, #0x30]
|
|
add r3, r3, #0x50
|
|
ldr r1, _0238D1DC ; =0x00001013
|
|
#if defined(EUROPE)
|
|
add r2, r2, #0xd3
|
|
add r2, r2, #0x2900
|
|
#elif defined(JAPAN)
|
|
add r2, r2, #0xce
|
|
add r2, r2, #0x4100
|
|
#else
|
|
add r2, r2, #0xd1
|
|
add r2, r2, #0x2900
|
|
#endif
|
|
mov r2, r2, lsl #0x10
|
|
mov r2, r2, lsr #0x10
|
|
stmib sp, {r2, r3}
|
|
ldr r3, _0238D1E0 ; =0x0000033E
|
|
mov r2, #0
|
|
bl CreateScrollBoxSingle
|
|
ldr r1, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x4d]
|
|
b _0238D510
|
|
_0238CAEC:
|
|
ldr r0, _0238D1E4 ; =KEC_SHOP_BUY_THANKS_STR
|
|
bl Debug_Print0
|
|
bl RemoveInvalidKecleonShopItems
|
|
cmp r0, #0
|
|
bne _0238CB34
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #8]
|
|
cmp r0, #0
|
|
beq _0238CB1C
|
|
bl GreenKecleonShopDoNothing
|
|
b _0238CB20
|
|
_0238CB1C:
|
|
bl PurpleKecleonShopDoNothing
|
|
_0238CB20:
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #0xc
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x14]
|
|
b _0238CB44
|
|
_0238CB34:
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #0x11
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x14]
|
|
_0238CB44:
|
|
mov r0, #0
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #0x30
|
|
ldr r4, [r0]
|
|
ldr r2, _0238D1E8 ; =ov22_0238E8FE
|
|
ldr r3, [r4]
|
|
ldrsb r0, [r4, #0x48]
|
|
mul r1, r3, r1
|
|
ldrh r2, [r2, r1]
|
|
ldr r1, _0238D134 ; =0x00003018
|
|
add r3, r4, #0x50
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238D510
|
|
_0238CB7C:
|
|
ldr r0, _0238D1EC ; =KEC_SHOP_SELL_START_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r3, #0x1f
|
|
ldr r1, [r0]
|
|
mov r2, #0x2e
|
|
str r3, [r1, #0x14]
|
|
ldr r1, [r0]
|
|
mov r0, #0
|
|
str r2, [r1, #0x10]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238D134 ; =0x00003018
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238D1F0 ; =ov22_0238E900
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238D510
|
|
_0238CBD8:
|
|
ldr r0, _0238D1F4 ; =KEC_SHOP_SELL_RESTART_STR
|
|
bl Debug_Print0
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r3, #0x20
|
|
ldr r1, [r0]
|
|
mov r2, #0x2e
|
|
str r3, [r1, #0x14]
|
|
ldr r1, [r0]
|
|
mov r0, #0
|
|
str r2, [r1, #0x10]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #0x30
|
|
ldr r4, [r0]
|
|
ldr r2, _0238D1F8 ; =ov22_0238E902
|
|
ldr r3, [r4]
|
|
ldrsb r0, [r4, #0x48]
|
|
mul r1, r3, r1
|
|
ldrh r2, [r2, r1]
|
|
ldr r1, _0238D134 ; =0x00003018
|
|
add r3, r4, #0x50
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238D510
|
|
_0238CC34:
|
|
ldr r0, _0238D1FC ; =KEC_SHOP_SELL_SELECT_STR
|
|
bl Debug_Print0
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x48]
|
|
bl ShowDialogueBox
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x48]
|
|
bl sub_0202F2C4
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x49]
|
|
bl HidePortraitBox
|
|
bl sub_02042730
|
|
mov r0, #4
|
|
mov r1, #0
|
|
mov r2, #8
|
|
mov r3, #1
|
|
bl InitUnkStorageStruct0xA0
|
|
ldr r1, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x4b]
|
|
b _0238D510
|
|
_0238CC94:
|
|
ldr r0, _0238D200 ; =KEC_SHOP_SELL_RESELECT_STR
|
|
bl Debug_Print0
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r2, _0238D118 ; =0x0000017F
|
|
ldr r1, [r0]
|
|
str r2, [r1, #0x9c]
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x48]
|
|
bl ShowDialogueBox
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x48]
|
|
bl sub_0202F2C4
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x49]
|
|
bl HidePortraitBox
|
|
mov r0, #4
|
|
mov r1, #0
|
|
mov r2, #8
|
|
mov r3, #1
|
|
bl InitUnkStorageStruct0xA0
|
|
ldr r1, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x4b]
|
|
b _0238D510
|
|
_0238CCFC:
|
|
ldr r0, _0238D204 ; =KEC_SHOP_SELL_SUB_MENU_STR
|
|
bl Debug_Print0
|
|
mov r4, #3
|
|
ldr r0, _0238D1B8 ; =SHOP_WINDOW_PARAMS_7
|
|
ldr r3, _0238D208 ; =SHOP_MAIN_MENU_ITEMS_1
|
|
mov r1, #0x13
|
|
mov r2, #0
|
|
str r4, [sp]
|
|
bl CreateSimpleMenuFromStringIds
|
|
ldr r1, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x4c]
|
|
b _0238D510
|
|
_0238CD30:
|
|
ldr r0, _0238D20C ; =KEC_SHOP_SELL_CONFIRM_STR
|
|
bl Debug_Print0
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r2, _0238D1C4 ; =KECLEON_SHOP_ITEM_CATEGORY_BOOLS
|
|
ldr r1, [r0]
|
|
add r0, r1, #0xe0
|
|
add r1, r1, #0x2c
|
|
bl MaybeGetColoredFormattedItemName
|
|
ldr r1, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r4, #0x2f
|
|
ldr r3, [r1]
|
|
mov r2, #0x24
|
|
add r0, r3, #0xe0
|
|
str r0, [r3, #0x88]
|
|
ldr r5, [r1]
|
|
mov r0, #0
|
|
ldr r3, [r5, #0x1c]
|
|
str r3, [r5, #0x74]
|
|
ldr r3, [r1]
|
|
str r4, [r3, #0x10]
|
|
ldr r1, [r1]
|
|
str r2, [r1, #0x14]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238D10C ; =0x00003008
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238D210 ; =ov22_0238E904
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238D510
|
|
_0238CDB8:
|
|
ldr r0, _0238D214 ; =KEC_SHOP_SELL_CONFIRM_NEW_STR
|
|
bl Debug_Print0
|
|
mov r4, #2
|
|
ldr r0, _0238D218 ; =SHOP_WINDOW_PARAMS_8
|
|
ldr r1, _0238D128 ; =0x00300013
|
|
ldr r3, _0238D21C ; =SHOP_MENU_ITEMS_CONFIRM
|
|
mov r2, #0
|
|
str r4, [sp]
|
|
bl CreateSimpleMenuFromStringIds
|
|
ldr r1, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x4c]
|
|
b _0238D510
|
|
_0238CDEC:
|
|
ldr r0, _0238D220 ; =KEC_SHOP_BUY_CONFIRM_NEW_STR
|
|
bl Debug_Print0
|
|
mov r4, #2
|
|
ldr r0, _0238D218 ; =SHOP_WINDOW_PARAMS_8
|
|
ldr r1, _0238D128 ; =0x00300013
|
|
ldr r3, _0238D21C ; =SHOP_MENU_ITEMS_CONFIRM
|
|
mov r2, #0
|
|
str r4, [sp]
|
|
bl CreateSimpleMenuFromStringIds
|
|
ldr r1, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x4c]
|
|
b _0238D510
|
|
_0238CE20:
|
|
ldr r0, _0238D224 ; =KEC_SHOP_SELL_EXPLA_STR
|
|
bl Debug_Print0
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x50
|
|
bl InitPreprocessorArgs
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r5, #0
|
|
ldr r6, [r0]
|
|
ldr r2, _0238D1D0 ; =KEC_SHOP_ITEM_TEXT_TAG
|
|
ldrh r4, [r6, #0x2e]
|
|
ldr r3, _0238D1D4 ; =0x0000C402
|
|
mov r1, #0x400
|
|
str r4, [r6, #0x50]
|
|
ldr r6, [r0]
|
|
ldrsh r4, [r6, #0x30]
|
|
str r4, [r6, #0x60]
|
|
ldr r6, [r0]
|
|
ldrh r4, [r6, #0x2e]
|
|
str r4, [r6, #0x74]
|
|
ldr r6, [r0]
|
|
ldrh r4, [r6, #0x2e]
|
|
add r4, r4, #0xbc
|
|
str r4, [r6, #0x68]
|
|
ldr r4, [r0]
|
|
str r5, [r4, #0x7c]
|
|
ldr r0, [r0]
|
|
add r4, r0, #0x50
|
|
add r0, r0, #0xa0
|
|
str r4, [sp]
|
|
bl PreprocessString
|
|
add r0, sp, #0xc
|
|
bl InitPreprocessorArgs
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
add r1, sp, #0xc
|
|
ldr r3, [r0]
|
|
ldr r0, _0238D1D8 ; =SHOP_WINDOW_PARAMS_9
|
|
add r2, r3, #0xa0
|
|
str r2, [sp, #0x44]
|
|
str r1, [sp]
|
|
ldrsh r2, [r3, #0x30]
|
|
add r3, r3, #0x50
|
|
ldr r1, _0238D1DC ; =0x00001013
|
|
#if defined(EUROPE)
|
|
add r2, r2, #0xd3
|
|
add r2, r2, #0x2900
|
|
#elif defined(JAPAN)
|
|
add r2, r2, #0xce
|
|
add r2, r2, #0x4100
|
|
#else
|
|
add r2, r2, #0xd1
|
|
add r2, r2, #0x2900
|
|
#endif
|
|
mov r2, r2, lsl #0x10
|
|
mov r2, r2, lsr #0x10
|
|
stmib sp, {r2, r3}
|
|
ldr r3, _0238D1E0 ; =0x0000033E
|
|
mov r2, r5
|
|
bl CreateScrollBoxSingle
|
|
ldr r1, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x4d]
|
|
b _0238D510
|
|
_0238CEFC:
|
|
ldr r0, _0238D228 ; =KEC_SHOP_SELL_THANKS_STR
|
|
bl Debug_Print0
|
|
bl GetNbItemsInBag
|
|
cmp r0, #0
|
|
beq _0238CF20
|
|
bl GetMoneyCarried
|
|
ldr r1, _0238D22C ; =0x0001869F
|
|
cmp r0, r1
|
|
blt _0238CF34
|
|
_0238CF20:
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #1
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x14]
|
|
b _0238CF44
|
|
_0238CF34:
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #0x1d
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x14]
|
|
_0238CF44:
|
|
mov r0, #0
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #0x30
|
|
ldr r4, [r0]
|
|
ldr r2, _0238D230 ; =ov22_0238E908
|
|
ldr r3, [r4]
|
|
ldrsb r0, [r4, #0x48]
|
|
mul r1, r3, r1
|
|
ldrh r2, [r2, r1]
|
|
ldr r1, _0238D134 ; =0x00003018
|
|
add r3, r4, #0x50
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238D510
|
|
_0238CF7C:
|
|
ldr r0, _0238D234 ; =KEC_SHOP_SELL_ALL_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r1, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r0, #0
|
|
ldr r2, [r1]
|
|
ldr r1, [r2, #0x28]
|
|
str r1, [r2, #0x74]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x2f
|
|
ldr r1, [r0]
|
|
mov r3, #0x29
|
|
str r2, [r1, #0x10]
|
|
ldr r2, [r0]
|
|
ldr r1, _0238D10C ; =0x00003008
|
|
str r3, [r2, #0x14]
|
|
ldr r3, [r0]
|
|
mov r2, #0x30
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238D238 ; =ov22_0238E906
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238D510
|
|
_0238CFE4:
|
|
ldr r0, _0238D23C ; =KEC_SHOP_BUT_MULTI_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #8]
|
|
cmp r0, #0
|
|
beq _0238D020
|
|
bl GreenKecleonShopCountSelectedItems
|
|
ldr r1, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x20]
|
|
bl GreenKecleonShopSumSelectedItemPrices
|
|
ldr r1, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
b _0238D038
|
|
_0238D020:
|
|
bl PurpleKecleonShopCountSelectedItems
|
|
ldr r1, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x20]
|
|
bl PurpleKecleonShopSumSelectedItemPrices
|
|
ldr r1, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
_0238D038:
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x28]
|
|
bl GetMoneyCarried
|
|
cmp r0, #0
|
|
bne _0238D070
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r3, #6
|
|
ldr r2, [r0]
|
|
mov r1, #0x30
|
|
str r3, [r2, #0x14]
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x10]
|
|
bl KecleonShopSubcaseManager2
|
|
b _0238D510
|
|
_0238D070:
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r5, [r0]
|
|
ldr r4, [r5, #0x28]
|
|
bl GetMoneyCarried
|
|
cmp r4, r0
|
|
ble _0238D0A8
|
|
mov r1, #0xd
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
str r1, [r5, #0x14]
|
|
ldr r0, [r0]
|
|
mov r1, #0x30
|
|
str r1, [r0, #0x10]
|
|
bl KecleonShopSubcaseManager2
|
|
b _0238D510
|
|
_0238D0A8:
|
|
ldr r1, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r0, #0
|
|
ldr r1, [r1]
|
|
str r4, [r1, #0x74]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x2f
|
|
ldr r1, [r0]
|
|
mov r3, #0x1a
|
|
str r2, [r1, #0x10]
|
|
ldr r2, [r0]
|
|
mov r1, #0x30
|
|
str r3, [r2, #0x14]
|
|
ldr r4, [r0]
|
|
ldr r2, _0238D240 ; =ov22_0238E8FC
|
|
ldr r3, [r4]
|
|
ldrsb r0, [r4, #0x48]
|
|
mul r1, r3, r1
|
|
ldrh r2, [r2, r1]
|
|
ldr r1, _0238D10C ; =0x00003008
|
|
add r3, r4, #0x50
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238D510
|
|
.align 2, 0
|
|
_0238D104: .word KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
_0238D108: .word KEC_SHOP_START_STR
|
|
_0238D10C: .word 0x00003008
|
|
_0238D110: .word KECLEON_SHOP_TEXT_STRINGS
|
|
_0238D114: .word KEC_SHOP_RESTART_STR
|
|
_0238D118: .word 0x0000017F
|
|
_0238D11C: .word ov22_0238E8F2
|
|
_0238D120: .word KEC_SHOP_SELECTMENU_STR
|
|
_0238D124: .word SHOP_WINDOW_PARAMS_6
|
|
_0238D128: .word 0x00300013
|
|
_0238D12C: .word SHOP_MAIN_MENU_ITEMS_3
|
|
_0238D130: .word KEC_SHOP_EXPLANATION_STR
|
|
_0238D134: .word 0x00003018
|
|
_0238D138: .word ov22_0238E91E
|
|
_0238D13C: .word KEC_SHOP_THANKS_STR
|
|
_0238D140: .word ov22_0238E8F4
|
|
_0238D144: .word KEC_SHOP_SHOP_NON_STR
|
|
_0238D148: .word ov22_0238E90A
|
|
_0238D14C: .word KEC_SHOP_GOLD_NON_STR
|
|
_0238D150: .word ov22_0238E90C
|
|
_0238D154: .word KEC_SHOP_GOLD_MAX_STR
|
|
_0238D158: .word ov22_0238E90E
|
|
_0238D15C: .word KEC_SHOP_GOLD_FULL_STR
|
|
_0238D160: .word ov22_0238E91C
|
|
_0238D164: .word KEC_SHOP_SELL_NON_STR
|
|
_0238D168: .word ov22_0238E910
|
|
_0238D16C: .word KEC_SHOP_ITEM_NON_STR
|
|
_0238D170: .word ov22_0238E912
|
|
_0238D174: .word KEC_SHOP_ITEM_MAX_STR
|
|
_0238D178: .word ov22_0238E914
|
|
_0238D17C: .word KEC_SHOP_SOLD_OUT_STR
|
|
_0238D180: .word ov22_0238E916
|
|
_0238D184: .word KEC_SHOP_BUY_POOR_STR
|
|
_0238D188: .word ov22_0238E918
|
|
_0238D18C: .word KEC_SHOP_SELL_BAD_STR
|
|
_0238D190: .word ov22_0238E91A
|
|
_0238D194: .word KEC_SHOP_SELL_FULL_STR
|
|
_0238D198: .word KEC_SHOP_MODE_BUY_START_STR
|
|
_0238D19C: .word ov22_0238E8F6
|
|
_0238D1A0: .word KEC_SHOP_BUY_RESTART_STR
|
|
_0238D1A4: .word ov22_0238E8F8
|
|
_0238D1A8: .word KEC_SHOP_BUY_SELECT_STR
|
|
_0238D1AC: .word KEC_SHOP_BUY_RESELECT_STR
|
|
_0238D1B0: .word KEC_SHOP_SUB_MENU_BUY_STR
|
|
_0238D1B4: .word SHOP_MAIN_MENU_ITEMS_2
|
|
_0238D1B8: .word SHOP_WINDOW_PARAMS_7
|
|
_0238D1BC: .word SHOP_WINDOW_PARAMS_10
|
|
_0238D1C0: .word KEC_SHOP_BUY_CONFIRM_STR
|
|
_0238D1C4: .word KECLEON_SHOP_ITEM_CATEGORY_BOOLS
|
|
_0238D1C8: .word ov22_0238E8FA
|
|
_0238D1CC: .word KEC_SHOP_BUY_EXPLA_ITEM_STR
|
|
_0238D1D0: .word KEC_SHOP_ITEM_TEXT_TAG
|
|
_0238D1D4: .word 0x0000C402
|
|
_0238D1D8: .word SHOP_WINDOW_PARAMS_9
|
|
_0238D1DC: .word 0x00001013
|
|
#ifdef JAPAN
|
|
_0238D1E0: .word 0x00003203
|
|
#else
|
|
_0238D1E0: .word 0x0000033E
|
|
#endif
|
|
_0238D1E4: .word KEC_SHOP_BUY_THANKS_STR
|
|
_0238D1E8: .word ov22_0238E8FE
|
|
_0238D1EC: .word KEC_SHOP_SELL_START_STR
|
|
_0238D1F0: .word ov22_0238E900
|
|
_0238D1F4: .word KEC_SHOP_SELL_RESTART_STR
|
|
_0238D1F8: .word ov22_0238E902
|
|
_0238D1FC: .word KEC_SHOP_SELL_SELECT_STR
|
|
_0238D200: .word KEC_SHOP_SELL_RESELECT_STR
|
|
_0238D204: .word KEC_SHOP_SELL_SUB_MENU_STR
|
|
_0238D208: .word SHOP_MAIN_MENU_ITEMS_1
|
|
_0238D20C: .word KEC_SHOP_SELL_CONFIRM_STR
|
|
_0238D210: .word ov22_0238E904
|
|
_0238D214: .word KEC_SHOP_SELL_CONFIRM_NEW_STR
|
|
_0238D218: .word SHOP_WINDOW_PARAMS_8
|
|
_0238D21C: .word SHOP_MENU_ITEMS_CONFIRM
|
|
_0238D220: .word KEC_SHOP_BUY_CONFIRM_NEW_STR
|
|
_0238D224: .word KEC_SHOP_SELL_EXPLA_STR
|
|
_0238D228: .word KEC_SHOP_SELL_THANKS_STR
|
|
_0238D22C: .word 0x0001869F
|
|
_0238D230: .word ov22_0238E908
|
|
_0238D234: .word KEC_SHOP_SELL_ALL_STR
|
|
_0238D238: .word ov22_0238E906
|
|
_0238D23C: .word KEC_SHOP_BUT_MULTI_STR
|
|
_0238D240: .word ov22_0238E8FC
|
|
_0238D244: .word KEC_SHOP_SELL_MULTI_STR
|
|
_0238D248:
|
|
ldr r0, _0238D244 ; =KEC_SHOP_SELL_MULTI_STR
|
|
bl Debug_Print0
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r8, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r6, #0
|
|
ldr r0, [r8]
|
|
mov r4, r6
|
|
str r6, [r0, #0x24]
|
|
ldr r0, [r8]
|
|
mov r5, #1
|
|
str r6, [r0, #0x28]
|
|
mov r7, #6
|
|
_0238D278:
|
|
ldr r0, [r8]
|
|
mul r1, r6, r7
|
|
ldr r0, [r0, #0x44]
|
|
ldr r2, [r0, #0x384]
|
|
ldrb r0, [r2, r1]
|
|
add sb, r2, r1
|
|
tst r0, #1
|
|
movne r0, r5
|
|
moveq r0, r4
|
|
tst r0, #0xff
|
|
beq _0238D2EC
|
|
ldrsh r0, [sb, #4]
|
|
bl IsShoppableItem
|
|
cmp r0, #0
|
|
beq _0238D2EC
|
|
mov r0, r6
|
|
bl IsBagItemIndexSelected
|
|
cmp r0, #0
|
|
beq _0238D2EC
|
|
mov r0, sb
|
|
bl GetActualSellPrice
|
|
ldr r2, [r8]
|
|
ldr r1, [r2, #0x28]
|
|
add r0, r1, r0
|
|
str r0, [r2, #0x28]
|
|
ldr r1, [r8]
|
|
ldr r0, [r1, #0x24]
|
|
add r0, r0, #1
|
|
str r0, [r1, #0x24]
|
|
_0238D2EC:
|
|
add r6, r6, #1
|
|
cmp r6, #0x32
|
|
blt _0238D278
|
|
ldr r1, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r0, #0
|
|
ldr r2, [r1]
|
|
ldr r1, [r2, #0x28]
|
|
str r1, [r2, #0x74]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x2f
|
|
ldr r1, [r0]
|
|
mov r3, #0x26
|
|
str r2, [r1, #0x10]
|
|
ldr r2, [r0]
|
|
mov r1, #0x30
|
|
str r3, [r2, #0x14]
|
|
ldr r4, [r0]
|
|
ldr r2, _0238D238 ; =ov22_0238E906
|
|
ldr r3, [r4]
|
|
ldrsb r0, [r4, #0x48]
|
|
mul r1, r3, r1
|
|
ldrh r2, [r2, r1]
|
|
ldr r1, _0238D10C ; =0x00003008
|
|
add r3, r4, #0x50
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238D510
|
|
_0238D358:
|
|
ldr r0, _0238D518 ; =KEC_SHOP_ALL_CONFIRM_STR
|
|
bl Debug_Print0
|
|
mov r4, #2
|
|
ldr r0, _0238D218 ; =SHOP_WINDOW_PARAMS_8
|
|
ldr r1, _0238D128 ; =0x00300013
|
|
ldr r3, _0238D21C ; =SHOP_MENU_ITEMS_CONFIRM
|
|
mov r2, #0
|
|
str r4, [sp]
|
|
bl CreateSimpleMenuFromStringIds
|
|
ldr r1, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x4c]
|
|
b _0238D510
|
|
_0238D38C:
|
|
ldr r0, _0238D51C ; =KEC_SHOP_SELL_ALL_THANKS_STR
|
|
bl Debug_Print0
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
mov r0, #0
|
|
str r2, [r1, #0x14]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #0x30
|
|
ldr r4, [r0]
|
|
ldr r2, _0238D230 ; =ov22_0238E908
|
|
ldr r3, [r4]
|
|
ldrsb r0, [r4, #0x48]
|
|
mul r1, r3, r1
|
|
ldrh r2, [r2, r1]
|
|
ldr r1, _0238D134 ; =0x00003018
|
|
add r3, r4, #0x50
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238D510
|
|
_0238D3DC:
|
|
ldr r0, _0238D518 ; =KEC_SHOP_ALL_CONFIRM_STR
|
|
bl Debug_Print0
|
|
mov r4, #2
|
|
ldr r0, _0238D218 ; =SHOP_WINDOW_PARAMS_8
|
|
ldr r1, _0238D128 ; =0x00300013
|
|
ldr r3, _0238D21C ; =SHOP_MENU_ITEMS_CONFIRM
|
|
mov r2, #0
|
|
str r4, [sp]
|
|
bl CreateSimpleMenuFromStringIds
|
|
ldr r1, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x4c]
|
|
b _0238D510
|
|
_0238D410:
|
|
ldr r0, _0238D518 ; =KEC_SHOP_ALL_CONFIRM_STR
|
|
bl Debug_Print0
|
|
mov r4, #2
|
|
ldr r0, _0238D218 ; =SHOP_WINDOW_PARAMS_8
|
|
ldr r1, _0238D128 ; =0x00300013
|
|
ldr r3, _0238D21C ; =SHOP_MENU_ITEMS_CONFIRM
|
|
mov r2, #0
|
|
str r4, [sp]
|
|
bl CreateSimpleMenuFromStringIds
|
|
ldr r1, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x4c]
|
|
b _0238D510
|
|
_0238D444:
|
|
ldr r0, _0238D520 ; =KEC_SHOP_BUY_MULTI_THANKS_STR
|
|
bl Debug_Print0
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x48]
|
|
bl ShowDialogueBox
|
|
bl RemoveInvalidKecleonShopItems
|
|
cmp r0, #0
|
|
ldreq r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
moveq r1, #0xc
|
|
ldrne r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
movne r1, #1
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x14]
|
|
mov r0, #0
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #0x30
|
|
ldr r4, [r0]
|
|
ldr r2, _0238D1E8 ; =ov22_0238E8FE
|
|
ldr r3, [r4]
|
|
ldrsb r0, [r4, #0x48]
|
|
mul r1, r3, r1
|
|
ldrh r2, [r2, r1]
|
|
ldr r1, _0238D134 ; =0x00003018
|
|
add r3, r4, #0x50
|
|
bl ShowStringIdInDialogueBox
|
|
b _0238D510
|
|
_0238D4B4:
|
|
ldr r0, _0238D524 ; =KEC_SHOP_SELL_MULTI_THANKS_STR
|
|
bl Debug_Print0
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x48]
|
|
bl ShowDialogueBox
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
mov r0, #0
|
|
str r2, [r1, #0x14]
|
|
bl KecleonShopUpdatePortraitEmotion
|
|
ldr r0, _0238D104 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x30
|
|
ldr r3, [r0]
|
|
ldr r1, _0238D134 ; =0x00003018
|
|
ldrsb r0, [r3, #0x48]
|
|
ldr r4, [r3], #0x50
|
|
mul r5, r4, r2
|
|
ldr r2, _0238D230 ; =ov22_0238E908
|
|
ldrh r2, [r2, r5]
|
|
bl ShowStringIdInDialogueBox
|
|
bl ClearBagSelectedItemTable
|
|
_0238D510:
|
|
add sp, sp, #0xac
|
|
ldmia sp!, {r4, r5, r6, r7, r8, sb, pc}
|
|
.align 2, 0
|
|
_0238D518: .word KEC_SHOP_ALL_CONFIRM_STR
|
|
_0238D51C: .word KEC_SHOP_SELL_ALL_THANKS_STR
|
|
_0238D520: .word KEC_SHOP_BUY_MULTI_THANKS_STR
|
|
_0238D524: .word KEC_SHOP_SELL_MULTI_THANKS_STR
|
|
arm_func_end KecleonShopSubcaseManager2
|
|
|
|
arm_func_start RemoveInvalidKecleonShopItems
|
|
RemoveInvalidKecleonShopItems: ; 0x0238D528
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0238D550 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #8]
|
|
cmp r0, #0
|
|
beq _0238D548
|
|
bl RemoveInvalidKecleonShop1Items
|
|
ldmia sp!, {r3, pc}
|
|
_0238D548:
|
|
bl RemoveInvalidKecleonShop2Items
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0238D550: .word KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
arm_func_end RemoveInvalidKecleonShopItems
|
|
|
|
arm_func_start KecleonShopSumBagItemSellPrices
|
|
KecleonShopSumBagItemSellPrices: ; 0x0238D554
|
|
stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, lr}
|
|
ldr r8, _0238D5F0 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r6, #0
|
|
ldr r0, [r8]
|
|
mov r4, r6
|
|
str r6, [r0, #0x24]
|
|
ldr r0, [r8]
|
|
mov r5, #1
|
|
str r6, [r0, #0x28]
|
|
mov r7, #6
|
|
_0238D57C:
|
|
ldr r0, [r8]
|
|
mul r1, r6, r7
|
|
ldr r0, [r0, #0x44]
|
|
ldr r2, [r0, #0x384]
|
|
ldrb r0, [r2, r1]
|
|
add sb, r2, r1
|
|
tst r0, #1
|
|
movne r0, r5
|
|
moveq r0, r4
|
|
tst r0, #0xff
|
|
beq _0238D5E0
|
|
ldrsh r0, [sb, #4]
|
|
bl IsShoppableItem
|
|
cmp r0, #0
|
|
beq _0238D5E0
|
|
mov r0, sb
|
|
bl GetActualSellPrice
|
|
ldr r2, [r8]
|
|
ldr r1, [r2, #0x28]
|
|
add r0, r1, r0
|
|
str r0, [r2, #0x28]
|
|
ldr r1, [r8]
|
|
ldr r0, [r1, #0x24]
|
|
add r0, r0, #1
|
|
str r0, [r1, #0x24]
|
|
_0238D5E0:
|
|
add r6, r6, #1
|
|
cmp r6, #0x32
|
|
blt _0238D57C
|
|
ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, pc}
|
|
.align 2, 0
|
|
_0238D5F0: .word KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
arm_func_end KecleonShopSumBagItemSellPrices
|
|
|
|
arm_func_start KecleonShopUpdatePortraitEmotion
|
|
KecleonShopUpdatePortraitEmotion: ; 0x0238D5F4
|
|
stmdb sp!, {r3, lr}
|
|
ldr r2, _0238D63C ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #0
|
|
ldr r3, [r2]
|
|
ldrb r2, [r3, #8]
|
|
cmp r2, #0
|
|
beq _0238D614
|
|
b _0238D614
|
|
_0238D614:
|
|
cmp r0, #1
|
|
moveq r1, #3
|
|
add r0, r3, #0x1e0
|
|
bl SetPortraitEmotion
|
|
ldr r0, _0238D63C ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r0]
|
|
ldrsb r0, [r1, #0x49]
|
|
add r1, r1, #0x1e0
|
|
bl ShowPortraitInPortraitBox
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0238D63C: .word KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
arm_func_end KecleonShopUpdatePortraitEmotion
|
|
|
|
arm_func_start KecleonShopEntryPoint
|
|
KecleonShopEntryPoint: ; 0x0238D640
|
|
stmdb sp!, {r4, lr}
|
|
ldr r2, _0238D7A0 ; =ov11_0238A130
|
|
mov r0, #0x1f0
|
|
mov r1, #8
|
|
ldr r4, [r2]
|
|
bl MemAlloc
|
|
ldr r1, _0238D7A4 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
str r0, [r1]
|
|
add r0, r0, #0x50
|
|
bl InitPreprocessorArgs
|
|
mov r0, #0
|
|
bl CreateDialogueBox
|
|
ldr r2, _0238D7A4 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #3
|
|
ldr r3, [r2]
|
|
mov r2, #1
|
|
strb r0, [r3, #0x48]
|
|
mov r0, #0
|
|
bl CreatePortraitBox
|
|
ldr r1, _0238D7A4 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x49]
|
|
bl AllocUnkBagStruct
|
|
ldr r2, _0238D7A4 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #0
|
|
ldr r0, [r2]
|
|
sub ip, r1, #2
|
|
str r1, [r0, #0x38]
|
|
ldr r3, [r2]
|
|
ldr r0, _0238D7A8 ; =BAG_ITEMS_PTR_MIRROR
|
|
str r1, [r3, #0x3c]
|
|
ldr lr, [r2]
|
|
ldr r3, _0238D7AC ; =0x0000017F
|
|
str r1, [lr, #0x40]
|
|
ldr lr, [r2]
|
|
str r4, [lr]
|
|
ldr r4, [r2]
|
|
str r1, [r4, #4]
|
|
ldr r4, [r2]
|
|
strb ip, [r4, #0x4a]
|
|
ldr r4, [r2]
|
|
strb ip, [r4, #0x4b]
|
|
ldr r4, [r2]
|
|
strb ip, [r4, #0x4c]
|
|
ldr r4, [r0]
|
|
ldr r0, [r2]
|
|
str r4, [r0, #0x44]
|
|
ldr r0, [r2]
|
|
str r3, [r0, #0x9c]
|
|
ldr r2, [r2]
|
|
ldr r0, [r2]
|
|
cmp r0, #0
|
|
beq _0238D720
|
|
cmp r0, #1
|
|
beq _0238D740
|
|
b _0238D758
|
|
_0238D720:
|
|
mov r0, #1
|
|
strb r0, [r2, #8]
|
|
bl GreenKecleonShopInitItemNameData
|
|
ldr r0, _0238D7A4 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, _0238D7AC ; =0x0000017F
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x50]
|
|
b _0238D758
|
|
_0238D740:
|
|
strb r1, [r2, #8]
|
|
bl PurpleKecleonShopInitItemNameData
|
|
ldr r0, _0238D7A4 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #0x180
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x50]
|
|
_0238D758:
|
|
ldr r0, _0238D7A4 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x1e0
|
|
bl InitPortraitParamsWithMonsterId
|
|
ldr r0, _0238D7A4 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x1e0
|
|
bl SetPortraitLayout
|
|
ldr r0, _0238D7A4 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x1e0
|
|
bl SetPortraitEmotion
|
|
mov r0, #0
|
|
bl KecleonShopSubcaseManager1
|
|
mov r0, #1
|
|
ldmia sp!, {r4, pc}
|
|
.align 2, 0
|
|
_0238D7A0: .word ov11_0238A130
|
|
_0238D7A4: .word KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
_0238D7A8: .word BAG_ITEMS_PTR_MIRROR
|
|
_0238D7AC: .word 0x0000017F
|
|
arm_func_end KecleonShopEntryPoint
|
|
|
|
arm_func_start KecleonShopDestructor
|
|
KecleonShopDestructor: ; 0x0238D7B0
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0238D7FC ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
cmp r0, #0
|
|
ldmeqia sp!, {r3, pc}
|
|
ldrb r0, [r0, #8]
|
|
cmp r0, #0
|
|
beq _0238D7D8
|
|
bl GreenKecleonShopFreeItemNameData
|
|
b _0238D7DC
|
|
_0238D7D8:
|
|
bl PurpleKecleonShopFreeItemNameData
|
|
_0238D7DC:
|
|
bl FreeUnkBagStruct
|
|
ldr r0, _0238D7FC ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
bl MemFree
|
|
ldr r0, _0238D7FC ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #0
|
|
str r1, [r0]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0238D7FC: .word KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
arm_func_end KecleonShopDestructor
|
|
|
|
arm_func_start KecleonShopFrameUpdate
|
|
KecleonShopFrameUpdate: ; 0x0238D800
|
|
stmdb sp!, {r3, r4, r5, r6, r7, lr}
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r2, [r0]
|
|
ldr r1, [r2, #4]
|
|
cmp r1, #3
|
|
addls pc, pc, r1, lsl #2
|
|
b _0238E7DC
|
|
_0238D81C: ; jump table
|
|
b _0238D82C ; case 0
|
|
b _0238D838 ; case 1
|
|
b _0238E750 ; case 2
|
|
b _0238E7A8 ; case 3
|
|
_0238D82C:
|
|
mov r0, #1
|
|
str r0, [r2, #4]
|
|
b _0238E7DC
|
|
_0238D838:
|
|
ldr r1, [r2, #0x10]
|
|
cmp r1, #0x30
|
|
addls pc, pc, r1, lsl #2
|
|
b _0238E704
|
|
_0238D848: ; jump table
|
|
b _0238D90C ; case 0
|
|
b _0238D90C ; case 1
|
|
b _0238E704 ; case 2
|
|
b _0238E704 ; case 3
|
|
b _0238E5DC ; case 4
|
|
b _0238E704 ; case 5
|
|
b _0238E704 ; case 6
|
|
b _0238E704 ; case 7
|
|
b _0238E704 ; case 8
|
|
b _0238E704 ; case 9
|
|
b _0238E704 ; case 10
|
|
b _0238E704 ; case 11
|
|
b _0238E704 ; case 12
|
|
b _0238E704 ; case 13
|
|
b _0238E704 ; case 14
|
|
b _0238E704 ; case 15
|
|
b _0238E704 ; case 16
|
|
b _0238E704 ; case 17
|
|
b _0238E704 ; case 18
|
|
b _0238DAB8 ; case 19
|
|
b _0238DAB8 ; case 20
|
|
b _0238DFA0 ; case 21
|
|
b _0238E564 ; case 22
|
|
b _0238E164 ; case 23
|
|
b _0238E164 ; case 24
|
|
b _0238E704 ; case 25
|
|
b _0238E39C ; case 26
|
|
b _0238E704 ; case 27
|
|
b _0238E704 ; case 28
|
|
b _0238E704 ; case 29
|
|
b _0238E704 ; case 30
|
|
b _0238DDF8 ; case 31
|
|
b _0238DDF8 ; case 32
|
|
b _0238E07C ; case 33
|
|
b _0238E5A0 ; case 34
|
|
b _0238E1F0 ; case 35
|
|
b _0238E1F0 ; case 36
|
|
b _0238E704 ; case 37
|
|
b _0238E418 ; case 38
|
|
b _0238E704 ; case 39
|
|
b _0238E704 ; case 40
|
|
b _0238E280 ; case 41
|
|
b _0238E704 ; case 42
|
|
b _0238E6F8 ; case 43
|
|
b _0238D938 ; case 44
|
|
b _0238E704 ; case 45
|
|
b _0238E5E8 ; case 46
|
|
b _0238E704 ; case 47
|
|
b _0238E638 ; case 48
|
|
_0238D90C:
|
|
ldrsb r0, [r2, #0x48]
|
|
bl IsDialogueBoxActive
|
|
cmp r0, #0
|
|
bne _0238E734
|
|
mov r0, #0x2c
|
|
bl KecleonShopSubcaseManager1
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x48]
|
|
bl ShowDialogueBox
|
|
b _0238E734
|
|
_0238D938:
|
|
ldrsb r0, [r2, #0x4c]
|
|
bl GetSimpleMenuResult__0202B870
|
|
cmp r0, #1
|
|
ldrne r1, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldrne r1, [r1]
|
|
strne r0, [r1, #0x38]
|
|
cmp r0, #7
|
|
addls pc, pc, r0, lsl #2
|
|
b _0238E734
|
|
_0238D95C: ; jump table
|
|
b _0238E734 ; case 0
|
|
b _0238DA9C ; case 1
|
|
b _0238D97C ; case 2
|
|
b _0238D9B0 ; case 3
|
|
b _0238DA20 ; case 4
|
|
b _0238E734 ; case 5
|
|
b _0238E734 ; case 6
|
|
b _0238DA90 ; case 7
|
|
_0238D97C:
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #1
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #9]
|
|
bl RemoveInvalidKecleonShopItems
|
|
cmp r0, #0
|
|
bne _0238D9A4
|
|
mov r0, #5
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238D9A4:
|
|
mov r0, #0x10
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238D9B0:
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #9]
|
|
bl GetNbItemsInBag
|
|
cmp r0, #0
|
|
bne _0238D9D8
|
|
mov r0, #0xa
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238D9D8:
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x24]
|
|
cmp r0, #0
|
|
bne _0238D9F8
|
|
mov r0, #9
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238D9F8:
|
|
bl GetMoneyCarried
|
|
ldr r1, _0238E798 ; =0x0001869F
|
|
cmp r0, r1
|
|
blt _0238DA14
|
|
mov r0, #7
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238DA14:
|
|
mov r0, #0x1c
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238DA20:
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #9]
|
|
bl GetNbItemsInBag
|
|
cmp r0, #0
|
|
bne _0238DA48
|
|
mov r0, #0xa
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238DA48:
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x24]
|
|
cmp r0, #0
|
|
bne _0238DA68
|
|
mov r0, #9
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238DA68:
|
|
bl GetMoneyCarried
|
|
ldr r1, _0238E798 ; =0x0001869F
|
|
cmp r0, r1
|
|
ble _0238DA84
|
|
mov r0, #7
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238DA84:
|
|
mov r0, #0x28
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238DA90:
|
|
mov r0, #2
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238DA9C:
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x4c]
|
|
bl sub_0202836C
|
|
mov r0, #3
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238DAB8:
|
|
ldrb r0, [r2, #8]
|
|
cmp r0, #0
|
|
beq _0238DACC
|
|
bl GreenKecleonShopGetCollectionMenuStatus
|
|
b _0238DAD0
|
|
_0238DACC:
|
|
bl PurpleKecleonShopGetCollectionMenuStatus
|
|
_0238DAD0:
|
|
cmp r0, #4
|
|
addls pc, pc, r0, lsl #2
|
|
b _0238DD34
|
|
_0238DADC: ; jump table
|
|
b _0238DD34 ; case 0
|
|
b _0238E734 ; case 1
|
|
b _0238DCF4 ; case 2
|
|
b _0238DAF0 ; case 3
|
|
b _0238DC54 ; case 4
|
|
_0238DAF0:
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #8]
|
|
cmp r0, #0
|
|
beq _0238DBAC
|
|
bl GreenKecleonShopCountSelectedItems
|
|
cmp r0, #1
|
|
ble _0238DB2C
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x19
|
|
ldr r1, [r0]
|
|
mov r0, #0x30
|
|
str r2, [r1, #0x14]
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238DB2C:
|
|
bne _0238DB3C
|
|
bl GreenKecleonShopGetFirstSelectedItemIndex
|
|
ldr r1, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
b _0238DB44
|
|
_0238DB3C:
|
|
bl GreenKecleonShopGetShopItemSlot
|
|
ldr r1, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
_0238DB44:
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x32]
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x32]
|
|
bl GetCurrentKecleonShop1ItemByIndex
|
|
ldr r1, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
ldrsh r1, [r4]
|
|
add r0, r0, #0x2c
|
|
mov r2, #0
|
|
bl InitStandardItem
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldrh r2, [r4, #2]
|
|
ldr r1, [r0]
|
|
strh r2, [r1, #0x2e]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x2c
|
|
bl GetActualBuyPrice
|
|
ldr r1, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x1c]
|
|
mov r0, #0x15
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238DBAC:
|
|
bl PurpleKecleonShopCountSelectedItems
|
|
cmp r0, #1
|
|
ble _0238DBD4
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x19
|
|
ldr r1, [r0]
|
|
mov r0, #0x30
|
|
str r2, [r1, #0x14]
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238DBD4:
|
|
bne _0238DBE4
|
|
bl PurpleKecleonShopGetFirstSelectedItemIndex
|
|
ldr r1, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
b _0238DBEC
|
|
_0238DBE4:
|
|
bl PurpleKecleonShopGetShopItemSlot
|
|
ldr r1, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
_0238DBEC:
|
|
ldr r1, [r1]
|
|
strb r0, [r1, #0x33]
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #0x33]
|
|
bl GetCurrentKecleonShop2ItemByIndex
|
|
ldr r1, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r4, r0
|
|
ldr r0, [r1]
|
|
ldrsh r1, [r4]
|
|
add r0, r0, #0x2c
|
|
mov r2, #0
|
|
bl InitStandardItem
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldrh r2, [r4, #2]
|
|
ldr r1, [r0]
|
|
strh r2, [r1, #0x2e]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x2c
|
|
bl GetActualBuyPrice
|
|
ldr r1, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x1c]
|
|
mov r0, #0x15
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238DC54:
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #8]
|
|
cmp r0, #0
|
|
beq _0238DC88
|
|
bl GreenKecleonShopGetShopItemSlot
|
|
ldr r1, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r2, [r1]
|
|
strb r0, [r2, #0x32]
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, #0x32]
|
|
bl GetCurrentKecleonShop1ItemByIndex
|
|
b _0238DCA4
|
|
_0238DC88:
|
|
bl PurpleKecleonShopGetShopItemSlot
|
|
ldr r1, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r2, [r1]
|
|
strb r0, [r2, #0x33]
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, #0x33]
|
|
bl GetCurrentKecleonShop2ItemByIndex
|
|
_0238DCA4:
|
|
mov r4, r0
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldrsh r1, [r4]
|
|
ldr r0, [r0]
|
|
mov r2, #0
|
|
add r0, r0, #0x2c
|
|
bl InitStandardItem
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldrh r2, [r4, #2]
|
|
ldr r1, [r0]
|
|
strh r2, [r1, #0x2e]
|
|
ldr r0, [r0]
|
|
add r0, r0, #0x2c
|
|
bl GetActualBuyPrice
|
|
ldr r1, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x1c]
|
|
mov r0, #0x16
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238DCF4:
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #8]
|
|
cmp r0, #0
|
|
beq _0238DD10
|
|
bl GreenKecleonShopDoNothing
|
|
b _0238DD14
|
|
_0238DD10:
|
|
bl PurpleKecleonShopDoNothing
|
|
_0238DD14:
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #1
|
|
ldr r1, [r0]
|
|
mov r0, #0x30
|
|
str r2, [r1, #0x14]
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238DD34:
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x4a]
|
|
bl IsCollectionMenuState3
|
|
cmp r0, #0
|
|
beq _0238E734
|
|
add r1, sp, #0
|
|
mov r0, #0
|
|
bl GetPressedButtons
|
|
ldrh r0, [sp]
|
|
tst r0, #8
|
|
beq _0238E734
|
|
ldr r0, _0238E79C ; =0x00003F02
|
|
mov r1, #0x100
|
|
bl sub_02017C74
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, #8]
|
|
cmp r0, #0
|
|
ldrsb r0, [r1, #0x4a]
|
|
beq _0238DDA8
|
|
bl GetWindowIdSelectedMenuItemIdx
|
|
ldr r1, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r2, [r1]
|
|
strb r0, [r2, #0x32]
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, #0x32]
|
|
bl GetCurrentKecleonShop1ItemByIndex
|
|
b _0238DDC4
|
|
_0238DDA8:
|
|
bl GetWindowIdSelectedMenuItemIdx
|
|
ldr r1, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r2, [r1]
|
|
strb r0, [r2, #0x33]
|
|
ldr r0, [r1]
|
|
ldrb r0, [r0, #0x33]
|
|
bl GetCurrentKecleonShop2ItemByIndex
|
|
_0238DDC4:
|
|
ldr r2, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldrsh r1, [r0]
|
|
ldr r0, [r2]
|
|
mov r2, #0
|
|
add r0, r0, #0x2c
|
|
bl InitStandardItem
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x16
|
|
ldr r1, [r0]
|
|
mov r0, #0x30
|
|
str r2, [r1, #0x14]
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238DDF8:
|
|
bl sub_020426B4
|
|
cmp r0, #3
|
|
addls pc, pc, r0, lsl #2
|
|
b _0238DF04
|
|
_0238DE08: ; jump table
|
|
b _0238DF04 ; case 0
|
|
b _0238E734 ; case 1
|
|
b _0238DED0 ; case 2
|
|
b _0238DE18 ; case 3
|
|
_0238DE18:
|
|
bl sub_02042B20
|
|
cmp r0, #1
|
|
ble _0238DE58
|
|
bl KecleonShopCloseSimpleMenu
|
|
bl FreeUnkStorageStruct0xA0
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mvn r2, #1
|
|
ldr r1, [r0]
|
|
mov r0, #0x30
|
|
strb r2, [r1, #0x4b]
|
|
bl KecleonShopSubcaseManager1
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #0x25
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x14]
|
|
b _0238E734
|
|
_0238DE58:
|
|
bne _0238DE68
|
|
bl sub_02042B50
|
|
ldr r1, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
b _0238DE70
|
|
_0238DE68:
|
|
bl sub_02042ADC
|
|
ldr r1, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
_0238DE70:
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x34]
|
|
ldr r1, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r0, #6
|
|
ldr r4, [r1]
|
|
ldr r1, [r4, #0x34]
|
|
ldr r3, [r4, #0x44]
|
|
mul r2, r1, r0
|
|
ldr r3, [r3, #0x384]
|
|
add r0, r4, #0x2c
|
|
ldrh r1, [r3, r2]
|
|
add r2, r3, r2
|
|
strh r1, [r4, #0x2c]
|
|
ldrh r1, [r2, #2]
|
|
strh r1, [r4, #0x2e]
|
|
ldrh r1, [r2, #4]
|
|
strh r1, [r4, #0x30]
|
|
bl GetActualSellPrice
|
|
ldr r1, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r1]
|
|
str r0, [r1, #0x1c]
|
|
mov r0, #0x21
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238DED0:
|
|
bl KecleonShopCloseSimpleMenu
|
|
bl FreeUnkStorageStruct0xA0
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mvn r2, #1
|
|
ldr r1, [r0]
|
|
mov r0, #0x30
|
|
strb r2, [r1, #0x4b]
|
|
bl KecleonShopSubcaseManager1
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #1
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x14]
|
|
b _0238E734
|
|
_0238DF04:
|
|
bl sub_02042AAC
|
|
cmp r0, #0
|
|
beq _0238E734
|
|
add r1, sp, #2
|
|
mov r0, #0
|
|
bl GetPressedButtons
|
|
ldrh r0, [sp, #2]
|
|
tst r0, #8
|
|
beq _0238E734
|
|
mov r0, #0
|
|
bl PlaySeVolumeWrapper
|
|
bl sub_02042ADC
|
|
ldr r2, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #6
|
|
ldr r3, [r2]
|
|
str r0, [r3, #0x34]
|
|
ldr r3, [r2]
|
|
ldr r0, [r3, #0x34]
|
|
ldr r2, [r3, #0x44]
|
|
mul r1, r0, r1
|
|
ldr r2, [r2, #0x384]
|
|
ldrh r0, [r2, r1]
|
|
add r1, r2, r1
|
|
strh r0, [r3, #0x2c]
|
|
ldrh r0, [r1, #2]
|
|
strh r0, [r3, #0x2e]
|
|
ldrh r0, [r1, #4]
|
|
strh r0, [r3, #0x30]
|
|
bl FreeUnkStorageStruct0xA0
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mvn r3, #1
|
|
ldr r1, [r0]
|
|
mov r2, #0x22
|
|
strb r3, [r1, #0x4b]
|
|
ldr r1, [r0]
|
|
mov r0, #0x30
|
|
str r2, [r1, #0x14]
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238DFA0:
|
|
ldrsb r0, [r2, #0x4c]
|
|
bl GetSimpleMenuResult__0202B870
|
|
cmp r0, #1
|
|
beq _0238E058
|
|
cmp r0, #2
|
|
beq _0238DFC4
|
|
cmp r0, #7
|
|
beq _0238E038
|
|
b _0238E734
|
|
_0238DFC4:
|
|
bl KecleonShopCloseSimpleMenu
|
|
bl GetMoneyCarried
|
|
cmp r0, #0
|
|
ldreq r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
moveq r1, #6
|
|
ldreq r0, [r0]
|
|
streq r1, [r0, #0x14]
|
|
beq _0238E02C
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r4, [r0]
|
|
bl GetMoneyCarried
|
|
ldr r1, [r4, #0x1c]
|
|
cmp r1, r0
|
|
movgt r0, #0xd
|
|
strgt r0, [r4, #0x14]
|
|
bgt _0238E02C
|
|
bl IsBagFull
|
|
cmp r0, #0
|
|
ldrne r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
movne r1, #0xb
|
|
ldrne r0, [r0]
|
|
strne r1, [r0, #0x14]
|
|
ldreq r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
moveq r1, #0x17
|
|
ldreq r0, [r0]
|
|
streq r1, [r0, #0x14]
|
|
_0238E02C:
|
|
mov r0, #0x30
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238E038:
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x16
|
|
ldr r1, [r0]
|
|
mov r0, #0x30
|
|
str r2, [r1, #0x14]
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238E058:
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x14
|
|
ldr r1, [r0]
|
|
str r2, [r1, #0x10]
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x4a]
|
|
bl sub_0202C620
|
|
b _0238E734
|
|
_0238E07C:
|
|
ldrsb r0, [r2, #0x4c]
|
|
bl GetSimpleMenuResult__0202B870
|
|
cmp r0, #1
|
|
beq _0238E148
|
|
cmp r0, #3
|
|
beq _0238E0A0
|
|
cmp r0, #7
|
|
beq _0238E118
|
|
b _0238E734
|
|
_0238E0A0:
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsh r0, [r0, #0x30]
|
|
bl IsShoppableItem
|
|
cmp r0, #0
|
|
ldreq r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
moveq r1, #0xe
|
|
ldreq r0, [r0]
|
|
streq r1, [r0, #0x14]
|
|
beq _0238E0F4
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r4, [r0]
|
|
bl GetMoneyCarried
|
|
ldr r2, [r4, #0x1c]
|
|
ldr r1, _0238E798 ; =0x0001869F
|
|
add r0, r2, r0
|
|
cmp r0, r1
|
|
movgt r0, #0xf
|
|
strgt r0, [r4, #0x14]
|
|
movle r0, #0x23
|
|
strle r0, [r4, #0x14]
|
|
_0238E0F4:
|
|
bl KecleonShopCloseSimpleMenu
|
|
bl FreeUnkStorageStruct0xA0
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mvn r2, #1
|
|
ldr r1, [r0]
|
|
mov r0, #0x30
|
|
strb r2, [r1, #0x4b]
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238E118:
|
|
bl KecleonShopCloseSimpleMenu
|
|
bl FreeUnkStorageStruct0xA0
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mvn r3, #1
|
|
ldr r1, [r0]
|
|
mov r2, #0x22
|
|
strb r3, [r1, #0x4b]
|
|
ldr r1, [r0]
|
|
mov r0, #0x30
|
|
str r2, [r1, #0x14]
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238E148:
|
|
bl KecleonShopCloseSimpleMenu
|
|
bl sub_02042744
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #0x20
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0x10]
|
|
b _0238E734
|
|
_0238E164:
|
|
ldrsb r0, [r2, #0x48]
|
|
bl IsDialogueBoxActive
|
|
cmp r0, #0
|
|
bne _0238E734
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x4c]
|
|
bl GetSimpleMenuResult__0202B870
|
|
cmp r0, #1
|
|
beq _0238E1E0
|
|
cmp r0, #5
|
|
beq _0238E1A0
|
|
cmp r0, #6
|
|
beq _0238E1E0
|
|
b _0238E734
|
|
_0238E1A0:
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, #8]
|
|
cmp r0, #0
|
|
beq _0238E1C0
|
|
ldrb r0, [r1, #0x32]
|
|
bl GreenKecleonShopPurchaseSingleItem
|
|
b _0238E1C8
|
|
_0238E1C0:
|
|
ldrb r0, [r1, #0x33]
|
|
bl PurpleKecleonShopPurchaseSingleItem
|
|
_0238E1C8:
|
|
ldr r0, _0238E7A0 ; =0x00001308
|
|
bl PlaySeByIdVolumeWrapper
|
|
bl KecleonShopCloseSimpleMenu
|
|
mov r0, #0x12
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238E1E0:
|
|
bl KecleonShopCloseSimpleMenu
|
|
mov r0, #0x11
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238E1F0:
|
|
ldrsb r0, [r2, #0x48]
|
|
bl IsDialogueBoxActive
|
|
cmp r0, #0
|
|
bne _0238E734
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x4c]
|
|
bl GetSimpleMenuResult__0202B870
|
|
cmp r0, #1
|
|
beq _0238E270
|
|
cmp r0, #5
|
|
beq _0238E22C
|
|
cmp r0, #6
|
|
beq _0238E270
|
|
b _0238E734
|
|
_0238E22C:
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x1c]
|
|
bl AddMoneyCarried
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x34]
|
|
mov r0, r0, lsl #0x10
|
|
mov r0, r0, asr #0x10
|
|
bl RemoveItemNoHoleCheck
|
|
bl ClearBagSelectedItemTable
|
|
ldr r0, _0238E7A0 ; =0x00001308
|
|
bl PlaySeByIdVolumeWrapper
|
|
bl KecleonShopCloseSimpleMenu
|
|
mov r0, #0x1e
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238E270:
|
|
bl KecleonShopCloseSimpleMenu
|
|
mov r0, #0x1d
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238E280:
|
|
ldrsb r0, [r2, #0x4c]
|
|
bl GetSimpleMenuResult__0202B870
|
|
cmp r0, #1
|
|
beq _0238E38C
|
|
cmp r0, #5
|
|
beq _0238E2A4
|
|
cmp r0, #6
|
|
beq _0238E38C
|
|
b _0238E734
|
|
_0238E2A4:
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r4, [r0]
|
|
bl GetMoneyCarried
|
|
ldr r2, [r4, #0x28]
|
|
ldr r1, _0238E798 ; =0x0001869F
|
|
add r0, r2, r0
|
|
cmp r0, r1
|
|
ble _0238E2D8
|
|
mov r1, #8
|
|
mov r0, #0x30
|
|
str r1, [r4, #0x14]
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238E2D8:
|
|
ldr r0, _0238E7A0 ; =0x00001308
|
|
bl PlaySeByIdVolumeWrapper
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x28]
|
|
bl AddMoneyCarried
|
|
mov r4, #0
|
|
mov r5, r4
|
|
mov r6, #1
|
|
_0238E2FC:
|
|
mov r0, r4, lsl #0x10
|
|
mov r0, r0, asr #0x10
|
|
bl GetItemAtIdx
|
|
mov r7, r0
|
|
ldrb r0, [r7]
|
|
tst r0, #1
|
|
movne r0, r6
|
|
moveq r0, r5
|
|
tst r0, #0xff
|
|
beq _0238E368
|
|
ldrsh r0, [r7, #4]
|
|
bl IsShoppableItem
|
|
cmp r0, #0
|
|
beq _0238E368
|
|
ldrb r0, [r7, #1]
|
|
cmp r0, #0
|
|
beq _0238E35C
|
|
bl sub_020582E0
|
|
cmp r0, #0
|
|
beq _0238E368
|
|
mov r0, r4, lsl #0x10
|
|
mov r0, r0, asr #0x10
|
|
bl RemoveItem
|
|
b _0238E368
|
|
_0238E35C:
|
|
mov r0, r4, lsl #0x10
|
|
mov r0, r0, asr #0x10
|
|
bl RemoveItem
|
|
_0238E368:
|
|
add r4, r4, #1
|
|
cmp r4, #0x32
|
|
blt _0238E2FC
|
|
bl RemoveEmptyItemsInBag
|
|
bl ClearBagSelectedItemTable
|
|
bl KecleonShopCloseSimpleMenu
|
|
mov r0, #0x2a
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238E38C:
|
|
bl KecleonShopCloseSimpleMenu
|
|
mov r0, #1
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238E39C:
|
|
ldrsb r0, [r2, #0x4c]
|
|
bl GetSimpleMenuResult__0202B870
|
|
cmp r0, #1
|
|
beq _0238E3F8
|
|
cmp r0, #5
|
|
beq _0238E3C0
|
|
cmp r0, #6
|
|
beq _0238E3F8
|
|
b _0238E734
|
|
_0238E3C0:
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, #8]
|
|
cmp r0, #0
|
|
beq _0238E3DC
|
|
bl GreenKecleonShopPurchaseSelectedItems
|
|
b _0238E3E0
|
|
_0238E3DC:
|
|
bl PurpleKecleonShopPurchaseSelectedItems
|
|
_0238E3E0:
|
|
ldr r0, _0238E7A0 ; =0x00001308
|
|
bl PlaySeByIdVolumeWrapper
|
|
bl KecleonShopCloseSimpleMenu
|
|
mov r0, #0x1b
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238E3F8:
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x48]
|
|
bl ShowDialogueBox
|
|
bl KecleonShopCloseSimpleMenu
|
|
mov r0, #0x11
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238E418:
|
|
ldrsb r0, [r2, #0x4c]
|
|
bl GetSimpleMenuResult__0202B870
|
|
cmp r0, #1
|
|
beq _0238E544
|
|
cmp r0, #5
|
|
beq _0238E43C
|
|
cmp r0, #6
|
|
beq _0238E544
|
|
b _0238E734
|
|
_0238E43C:
|
|
bl GetMoneyCarried
|
|
ldr r2, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r1, _0238E798 ; =0x0001869F
|
|
ldr r2, [r2]
|
|
ldr r2, [r2, #0x28]
|
|
add r0, r2, r0
|
|
cmp r0, r1
|
|
ble _0238E480
|
|
bl ClearBagSelectedItemTable
|
|
bl KecleonShopCloseSimpleMenu
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #8
|
|
ldr r1, [r0]
|
|
mov r0, #0x30
|
|
str r2, [r1, #0x14]
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238E480:
|
|
ldr r0, _0238E7A0 ; =0x00001308
|
|
bl PlaySeByIdVolumeWrapper
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x28]
|
|
bl AddMoneyCarried
|
|
mov r4, #0
|
|
mov r5, r4
|
|
mov r6, #1
|
|
_0238E4A4:
|
|
mov r0, r4, lsl #0x10
|
|
mov r0, r0, asr #0x10
|
|
bl GetItemAtIdx
|
|
mov r7, r0
|
|
ldrb r0, [r7]
|
|
tst r0, #1
|
|
movne r0, r6
|
|
moveq r0, r5
|
|
tst r0, #0xff
|
|
beq _0238E520
|
|
ldrsh r0, [r7, #4]
|
|
bl IsShoppableItem
|
|
cmp r0, #0
|
|
beq _0238E520
|
|
mov r0, r4
|
|
bl IsBagItemIndexSelected
|
|
cmp r0, #0
|
|
beq _0238E520
|
|
ldrb r0, [r7, #1]
|
|
cmp r0, #0
|
|
beq _0238E514
|
|
bl sub_020582E0
|
|
cmp r0, #0
|
|
beq _0238E520
|
|
mov r0, r4, lsl #0x10
|
|
mov r0, r0, asr #0x10
|
|
bl RemoveItem
|
|
b _0238E520
|
|
_0238E514:
|
|
mov r0, r4, lsl #0x10
|
|
mov r0, r0, asr #0x10
|
|
bl RemoveItem
|
|
_0238E520:
|
|
add r4, r4, #1
|
|
cmp r4, #0x32
|
|
blt _0238E4A4
|
|
bl RemoveEmptyItemsInBag
|
|
bl ClearBagSelectedItemTable
|
|
bl KecleonShopCloseSimpleMenu
|
|
mov r0, #0x27
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238E544:
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x48]
|
|
bl ShowDialogueBox
|
|
bl KecleonShopCloseSimpleMenu
|
|
mov r0, #0x1d
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238E564:
|
|
ldrsb r0, [r2, #0x4d]
|
|
bl IsScrollBoxActive
|
|
cmp r0, #0
|
|
bne _0238E734
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x4d]
|
|
bl CloseScrollBox
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mvn r2, #1
|
|
ldr r1, [r0]
|
|
mov r0, #0x14
|
|
strb r2, [r1, #0x4d]
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238E5A0:
|
|
ldrsb r0, [r2, #0x4d]
|
|
bl IsScrollBoxActive
|
|
cmp r0, #0
|
|
bne _0238E734
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x4d]
|
|
bl CloseScrollBox
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mvn r2, #1
|
|
ldr r1, [r0]
|
|
mov r0, #0x20
|
|
strb r2, [r1, #0x4d]
|
|
bl KecleonShopSubcaseManager1
|
|
b _0238E734
|
|
_0238E5DC:
|
|
bl ov11_022DC504
|
|
mov r0, #3
|
|
b _0238E738
|
|
_0238E5E8:
|
|
ldrsb r0, [r2, #0x48]
|
|
bl IsDialogueBoxActive
|
|
cmp r0, #0
|
|
bne _0238E734
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x48]
|
|
bl ShowDialogueBox
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r2, #0x10
|
|
ldr r1, [r0]
|
|
str r2, [r1, #0x10]
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x48]
|
|
bl sub_0202F2C4
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x49]
|
|
bl HidePortraitBox
|
|
b _0238E734
|
|
_0238E638:
|
|
ldr r1, [r2, #0xc]
|
|
add r1, r1, #1
|
|
str r1, [r2, #0xc]
|
|
ldr r1, [r0]
|
|
ldr r0, [r1, #0xc]
|
|
cmp r0, #1
|
|
beq _0238E660
|
|
cmp r0, #3
|
|
beq _0238E6CC
|
|
b _0238E734
|
|
_0238E660:
|
|
ldrb r0, [r1, #8]
|
|
cmp r0, #0
|
|
ldrsb r0, [r1, #0x4a]
|
|
mvn r1, #1
|
|
beq _0238E6A0
|
|
cmp r0, r1
|
|
beq _0238E690
|
|
bl CloseCollectionMenu
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mvn r1, #1
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x4a]
|
|
_0238E690:
|
|
bl sub_02044474
|
|
bl sub_020442CC
|
|
bl sub_020445C8
|
|
b _0238E734
|
|
_0238E6A0:
|
|
cmp r0, r1
|
|
beq _0238E6BC
|
|
bl CloseCollectionMenu
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mvn r1, #1
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x4a]
|
|
_0238E6BC:
|
|
bl sub_02044474
|
|
bl sub_020442CC
|
|
bl sub_020445C8
|
|
b _0238E734
|
|
_0238E6CC:
|
|
ldr r0, _0238E7A4 ; =KEC_SHOP_CHANGEJOB_STR
|
|
bl Debug_Print0
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x14]
|
|
bl KecleonShopSubcaseManager1
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #0
|
|
ldr r0, [r0]
|
|
str r1, [r0, #0xc]
|
|
b _0238E734
|
|
_0238E6F8:
|
|
mov r0, #0x20
|
|
str r0, [r2, #0x10]
|
|
b _0238E734
|
|
_0238E704:
|
|
ldrsb r0, [r2, #0x48]
|
|
bl IsDialogueBoxActive
|
|
cmp r0, #0
|
|
bne _0238E734
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x48]
|
|
bl ShowDialogueBox
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x14]
|
|
bl KecleonShopSubcaseManager1
|
|
_0238E734:
|
|
mov r0, #0
|
|
_0238E738:
|
|
cmp r0, #3
|
|
ldreq r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
moveq r1, #2
|
|
ldreq r0, [r0]
|
|
streq r1, [r0, #4]
|
|
b _0238E7DC
|
|
_0238E750:
|
|
ldrsb r0, [r2, #0x48]
|
|
bl IsDialogueBoxActive
|
|
cmp r0, #0
|
|
bne _0238E7DC
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x49]
|
|
bl HidePortraitBox
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x48]
|
|
bl sub_0202F2C4
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mov r1, #3
|
|
ldr r0, [r0]
|
|
str r1, [r0, #4]
|
|
b _0238E7DC
|
|
.align 2, 0
|
|
_0238E794: .word KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
_0238E798: .word 0x0001869F
|
|
_0238E79C: .word 0x00003F02
|
|
_0238E7A0: .word 0x00001308
|
|
_0238E7A4: .word KEC_SHOP_CHANGEJOB_STR
|
|
_0238E7A8:
|
|
ldrsb r0, [r2, #0x48]
|
|
bl sub_0202836C
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x49]
|
|
bl ClosePortraitBox
|
|
ldr r0, _0238E794 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x48]
|
|
bl CloseDialogueBox
|
|
bl ReturnScriptMenuResultZero
|
|
mov r0, #4
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
_0238E7DC:
|
|
mov r0, #1
|
|
ldmia sp!, {r3, r4, r5, r6, r7, pc}
|
|
arm_func_end KecleonShopFrameUpdate
|
|
|
|
arm_func_start KecleonShopCloseSimpleMenu
|
|
KecleonShopCloseSimpleMenu: ; 0x0238E7E4
|
|
stmdb sp!, {r3, lr}
|
|
ldr r0, _0238E818 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mvn r1, #1
|
|
ldr r0, [r0]
|
|
ldrsb r0, [r0, #0x4c]
|
|
cmp r0, r1
|
|
ldmeqia sp!, {r3, pc}
|
|
bl CloseSimpleMenu
|
|
ldr r0, _0238E818 ; =KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
mvn r1, #1
|
|
ldr r0, [r0]
|
|
strb r1, [r0, #0x4c]
|
|
ldmia sp!, {r3, pc}
|
|
.align 2, 0
|
|
_0238E818: .word KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
arm_func_end KecleonShopCloseSimpleMenu
|
|
; 0x0238E81C
|
|
|
|
.rodata
|
|
.global SHOP_WINDOW_PARAMS_1
|
|
SHOP_WINDOW_PARAMS_1:
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x12, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.global GREEN_KEC_SHOP_RED_COLOR_TEXT_TAG
|
|
GREEN_KEC_SHOP_RED_COLOR_TEXT_TAG:
|
|
.byte 0x5B, 0x43, 0x53, 0x3A, 0x57, 0x5D, 0x00, 0x00
|
|
.global GREEN_KEC_SHOP_UNCOLOR_TEXT_TAG
|
|
GREEN_KEC_SHOP_UNCOLOR_TEXT_TAG:
|
|
.byte 0x5B, 0x43, 0x52, 0x5D, 0x00, 0x00, 0x00, 0x00
|
|
.global SHOP_WINDOW_PARAMS_2
|
|
SHOP_WINDOW_PARAMS_2:
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x12, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.global PURPLE_KEC_SHOP_RED_COLOR_TEXT_TAG
|
|
PURPLE_KEC_SHOP_RED_COLOR_TEXT_TAG:
|
|
.byte 0x5B, 0x43, 0x53, 0x3A, 0x57, 0x5D, 0x00, 0x00
|
|
.global PURPLE_KEC_SHOP_UNCOLOR_TEXT_TAG
|
|
PURPLE_KEC_SHOP_UNCOLOR_TEXT_TAG:
|
|
.byte 0x5B, 0x43, 0x52, 0x5D, 0x00, 0x00, 0x00, 0x00
|
|
.global KECLEON_SHOP_ITEM_CATEGORY_BOOLS
|
|
KECLEON_SHOP_ITEM_CATEGORY_BOOLS:
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.global SHOP_MENU_ITEMS_CONFIRM
|
|
SHOP_MENU_ITEMS_CONFIRM:
|
|
#ifdef JAPAN
|
|
#define OV22_DATA_OFFSET 0x2EC5
|
|
#else
|
|
#define OV22_DATA_OFFSET 0
|
|
#endif
|
|
.word 0x336 + OV22_DATA_OFFSET
|
|
.byte 0x05, 0x00, 0x00, 0x00
|
|
.word 0x337 + OV22_DATA_OFFSET
|
|
.byte 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00
|
|
.global SHOP_MAIN_MENU_ITEMS_1
|
|
SHOP_MAIN_MENU_ITEMS_1:
|
|
.word 0x338 + OV22_DATA_OFFSET
|
|
.byte 0x03, 0x00, 0x00, 0x00
|
|
.word 0x33B + OV22_DATA_OFFSET
|
|
.byte 0x07, 0x00, 0x00, 0x00
|
|
.word 0x33D + OV22_DATA_OFFSET
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00
|
|
.global SHOP_MAIN_MENU_ITEMS_2
|
|
SHOP_MAIN_MENU_ITEMS_2:
|
|
.word 0x339 + OV22_DATA_OFFSET
|
|
.byte 0x02, 0x00, 0x00, 0x00
|
|
.word 0x33B + OV22_DATA_OFFSET
|
|
.byte 0x07, 0x00, 0x00, 0x00
|
|
.word 0x33D + OV22_DATA_OFFSET
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00
|
|
.global SHOP_MAIN_MENU_ITEMS_3
|
|
SHOP_MAIN_MENU_ITEMS_3:
|
|
.word 0x339 + OV22_DATA_OFFSET
|
|
.byte 0x02, 0x00, 0x00, 0x00
|
|
.word 0x338 + OV22_DATA_OFFSET
|
|
.byte 0x03, 0x00, 0x00, 0x00
|
|
.word 0x33A + OV22_DATA_OFFSET
|
|
.byte 0x04, 0x00, 0x00, 0x00
|
|
.word 0x33B + OV22_DATA_OFFSET
|
|
.byte 0x07, 0x00, 0x00, 0x00
|
|
.word 0x33C + OV22_DATA_OFFSET
|
|
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x01, 0x00, 0x00, 0x00
|
|
.global KECLEON_SHOP_TEXT_STRINGS
|
|
KECLEON_SHOP_TEXT_STRINGS:
|
|
.hword 0x33F + OV22_DATA_OFFSET
|
|
.global ov22_0238E8F2
|
|
ov22_0238E8F2:
|
|
.hword 0x340 + OV22_DATA_OFFSET
|
|
.global ov22_0238E8F4
|
|
ov22_0238E8F4:
|
|
.hword 0x341 + OV22_DATA_OFFSET
|
|
.global ov22_0238E8F6
|
|
ov22_0238E8F6:
|
|
.hword 0x342 + OV22_DATA_OFFSET
|
|
.global ov22_0238E8F8
|
|
ov22_0238E8F8:
|
|
.hword 0x343 + OV22_DATA_OFFSET
|
|
.global ov22_0238E8FA
|
|
ov22_0238E8FA:
|
|
.hword 0x344 + OV22_DATA_OFFSET
|
|
.global ov22_0238E8FC
|
|
ov22_0238E8FC:
|
|
.hword 0x345 + OV22_DATA_OFFSET
|
|
.global ov22_0238E8FE
|
|
ov22_0238E8FE:
|
|
.hword 0x346 + OV22_DATA_OFFSET
|
|
.global ov22_0238E900
|
|
ov22_0238E900:
|
|
.hword 0x347 + OV22_DATA_OFFSET
|
|
.global ov22_0238E902
|
|
ov22_0238E902:
|
|
.hword 0x348 + OV22_DATA_OFFSET
|
|
.global ov22_0238E904
|
|
ov22_0238E904:
|
|
.hword 0x349 + OV22_DATA_OFFSET
|
|
.global ov22_0238E906
|
|
ov22_0238E906:
|
|
.hword 0x34A + OV22_DATA_OFFSET
|
|
.global ov22_0238E908
|
|
ov22_0238E908:
|
|
.hword 0x34B + OV22_DATA_OFFSET
|
|
.global ov22_0238E90A
|
|
ov22_0238E90A:
|
|
.hword 0x34C + OV22_DATA_OFFSET
|
|
.global ov22_0238E90C
|
|
ov22_0238E90C:
|
|
.hword 0x34D + OV22_DATA_OFFSET
|
|
.global ov22_0238E90E
|
|
ov22_0238E90E:
|
|
.hword 0x34E + OV22_DATA_OFFSET
|
|
.global ov22_0238E910
|
|
ov22_0238E910:
|
|
.hword 0x34F + OV22_DATA_OFFSET
|
|
.global ov22_0238E912
|
|
ov22_0238E912:
|
|
.hword 0x350 + OV22_DATA_OFFSET
|
|
.global ov22_0238E914
|
|
ov22_0238E914:
|
|
.hword 0x351 + OV22_DATA_OFFSET
|
|
.global ov22_0238E916
|
|
ov22_0238E916:
|
|
.hword 0x352 + OV22_DATA_OFFSET
|
|
.global ov22_0238E918
|
|
ov22_0238E918:
|
|
.hword 0x353 + OV22_DATA_OFFSET
|
|
.global ov22_0238E91A
|
|
ov22_0238E91A:
|
|
.hword 0x354 + OV22_DATA_OFFSET
|
|
.global ov22_0238E91C
|
|
ov22_0238E91C:
|
|
.hword 0x355 + OV22_DATA_OFFSET
|
|
.global ov22_0238E91E
|
|
ov22_0238E91E:
|
|
.hword 0x356 + OV22_DATA_OFFSET, 0x357 + OV22_DATA_OFFSET, 0x358 + OV22_DATA_OFFSET, 0x359 + OV22_DATA_OFFSET, 0x35A + OV22_DATA_OFFSET, 0x35B + OV22_DATA_OFFSET, 0x35C + OV22_DATA_OFFSET
|
|
.hword 0x35D + OV22_DATA_OFFSET, 0x35E + OV22_DATA_OFFSET, 0x35F + OV22_DATA_OFFSET, 0x360 + OV22_DATA_OFFSET, 0x361 + OV22_DATA_OFFSET, 0x362 + OV22_DATA_OFFSET, 0x363 + OV22_DATA_OFFSET, 0x364 + OV22_DATA_OFFSET
|
|
.hword 0x365 + OV22_DATA_OFFSET, 0x366 + OV22_DATA_OFFSET, 0x367 + OV22_DATA_OFFSET, 0x368 + OV22_DATA_OFFSET, 0x369 + OV22_DATA_OFFSET, 0x36A + OV22_DATA_OFFSET, 0x36B + OV22_DATA_OFFSET, 0x36C + OV22_DATA_OFFSET
|
|
.hword 0x36D + OV22_DATA_OFFSET, 0x36E + OV22_DATA_OFFSET
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x12, 0x10, 0x00, 0xFE, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x14, 0x12, 0x02, 0x00, 0xFE, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x0F, 0x08, 0x03, 0x00, 0xFE, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.global SHOP_WINDOW_PARAMS_6
|
|
SHOP_WINDOW_PARAMS_6:
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x1E, 0x0F, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.global SHOP_WINDOW_PARAMS_7
|
|
SHOP_WINDOW_PARAMS_7:
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x16, 0x02, 0x08, 0x00, 0x00, 0xFE, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.global SHOP_WINDOW_PARAMS_8
|
|
SHOP_WINDOW_PARAMS_8:
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x1E, 0x0F, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.global SHOP_WINDOW_PARAMS_9
|
|
SHOP_WINDOW_PARAMS_9:
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x18, 0x13, 0x00, 0xFF, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.global SHOP_WINDOW_PARAMS_10
|
|
SHOP_WINDOW_PARAMS_10:
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x16, 0x02, 0x08, 0x00, 0x00, 0xFE, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.global KEC_SHOP_START_STR
|
|
KEC_SHOP_START_STR:
|
|
.byte 0x5F, 0x53, 0x54, 0x41, 0x52, 0x54, 0x0A, 0x00
|
|
.global KEC_SHOP_RESTART_STR
|
|
KEC_SHOP_RESTART_STR:
|
|
.byte 0x5F, 0x52, 0x45, 0x53
|
|
.byte 0x54, 0x41, 0x52, 0x54, 0x0A, 0x00, 0x00, 0x00
|
|
.global KEC_SHOP_SELECTMENU_STR
|
|
KEC_SHOP_SELECTMENU_STR:
|
|
.byte 0x5F, 0x53, 0x45, 0x4C, 0x45, 0x43, 0x54, 0x4D
|
|
.byte 0x45, 0x4E, 0x55, 0x0A, 0x00, 0x00, 0x00, 0x00
|
|
.global KEC_SHOP_EXPLANATION_STR
|
|
KEC_SHOP_EXPLANATION_STR:
|
|
.byte 0x5F, 0x45, 0x58, 0x50, 0x4C, 0x41, 0x4E, 0x41
|
|
.byte 0x54, 0x49, 0x4F, 0x4E, 0x0A, 0x00, 0x00, 0x00
|
|
.global KEC_SHOP_THANKS_STR
|
|
KEC_SHOP_THANKS_STR:
|
|
.byte 0x5F, 0x54, 0x48, 0x41, 0x4E, 0x4B, 0x53, 0x0A
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.global KEC_SHOP_SHOP_NON_STR
|
|
KEC_SHOP_SHOP_NON_STR:
|
|
.byte 0x5F, 0x53, 0x48, 0x4F, 0x50, 0x5F, 0x4E, 0x4F, 0x4E, 0x0A, 0x00, 0x00
|
|
.global KEC_SHOP_GOLD_NON_STR
|
|
KEC_SHOP_GOLD_NON_STR:
|
|
.byte 0x5F, 0x47, 0x4F, 0x4C, 0x44, 0x5F, 0x4E, 0x4F, 0x4E, 0x0A, 0x00, 0x00
|
|
.global KEC_SHOP_GOLD_MAX_STR
|
|
KEC_SHOP_GOLD_MAX_STR:
|
|
.byte 0x5F, 0x47, 0x4F, 0x4C
|
|
.byte 0x44, 0x5F, 0x4D, 0x41, 0x58, 0x0A, 0x00, 0x00
|
|
.global KEC_SHOP_GOLD_FULL_STR
|
|
KEC_SHOP_GOLD_FULL_STR:
|
|
.byte 0x5F, 0x47, 0x4F, 0x4C, 0x44, 0x5F, 0x46, 0x55
|
|
.byte 0x4C, 0x4C, 0x0A, 0x00
|
|
.global KEC_SHOP_SELL_NON_STR
|
|
KEC_SHOP_SELL_NON_STR:
|
|
.byte 0x5F, 0x53, 0x45, 0x4C, 0x4C, 0x5F, 0x4E, 0x4F, 0x4E, 0x0A, 0x00, 0x00
|
|
.global KEC_SHOP_ITEM_NON_STR
|
|
KEC_SHOP_ITEM_NON_STR:
|
|
.byte 0x5F, 0x49, 0x54, 0x45, 0x4D, 0x5F, 0x4E, 0x4F, 0x4E, 0x0A, 0x00, 0x00
|
|
.global KEC_SHOP_ITEM_MAX_STR
|
|
KEC_SHOP_ITEM_MAX_STR:
|
|
.byte 0x5F, 0x49, 0x54, 0x45
|
|
.byte 0x4D, 0x5F, 0x4D, 0x41, 0x58, 0x0A, 0x00, 0x00
|
|
.global KEC_SHOP_SOLD_OUT_STR
|
|
KEC_SHOP_SOLD_OUT_STR:
|
|
.byte 0x5F, 0x53, 0x4F, 0x4C, 0x44, 0x5F, 0x4F, 0x55
|
|
.byte 0x54, 0x0A, 0x00, 0x00
|
|
.global KEC_SHOP_BUY_POOR_STR
|
|
KEC_SHOP_BUY_POOR_STR:
|
|
.byte 0x5F, 0x42, 0x55, 0x59, 0x5F, 0x50, 0x4F, 0x4F, 0x52, 0x0A, 0x00, 0x00
|
|
.global KEC_SHOP_SELL_BAD_STR
|
|
KEC_SHOP_SELL_BAD_STR:
|
|
.byte 0x5F, 0x53, 0x45, 0x4C, 0x4C, 0x5F, 0x42, 0x41, 0x44, 0x0A, 0x00, 0x00
|
|
.global KEC_SHOP_SELL_FULL_STR
|
|
KEC_SHOP_SELL_FULL_STR:
|
|
.byte 0x5F, 0x53, 0x45, 0x4C
|
|
.byte 0x4C, 0x5F, 0x46, 0x55, 0x4C, 0x4C, 0x0A, 0x00
|
|
.global KEC_SHOP_MODE_BUY_START_STR
|
|
KEC_SHOP_MODE_BUY_START_STR:
|
|
.byte 0x5F, 0x4D, 0x4F, 0x44, 0x45, 0x5F, 0x42, 0x55
|
|
.byte 0x59, 0x5F, 0x53, 0x54, 0x41, 0x52, 0x54, 0x0A, 0x00, 0x00, 0x00, 0x00
|
|
.global KEC_SHOP_BUY_RESTART_STR
|
|
KEC_SHOP_BUY_RESTART_STR:
|
|
.byte 0x5F, 0x42, 0x55, 0x59
|
|
.byte 0x5F, 0x52, 0x45, 0x53, 0x54, 0x41, 0x52, 0x54, 0x0A, 0x00, 0x00, 0x00
|
|
.global KEC_SHOP_BUY_SELECT_STR
|
|
KEC_SHOP_BUY_SELECT_STR:
|
|
.byte 0x5F, 0x42, 0x55, 0x59
|
|
.byte 0x5F, 0x53, 0x45, 0x4C, 0x45, 0x43, 0x54, 0x0A, 0x00, 0x00, 0x00, 0x00
|
|
.global KEC_SHOP_BUY_RESELECT_STR
|
|
KEC_SHOP_BUY_RESELECT_STR:
|
|
.byte 0x5F, 0x42, 0x55, 0x59
|
|
.byte 0x5F, 0x52, 0x45, 0x53, 0x45, 0x4C, 0x45, 0x43, 0x54, 0x0A, 0x00, 0x00
|
|
.global KEC_SHOP_SUB_MENU_BUY_STR
|
|
KEC_SHOP_SUB_MENU_BUY_STR:
|
|
.byte 0x5F, 0x53, 0x55, 0x42
|
|
.byte 0x5F, 0x4D, 0x45, 0x4E, 0x55, 0x5F, 0x42, 0x55, 0x59, 0x0A, 0x00, 0x00
|
|
.global KEC_SHOP_BUY_CONFIRM_STR
|
|
KEC_SHOP_BUY_CONFIRM_STR:
|
|
.byte 0x5F, 0x42, 0x55, 0x59
|
|
.byte 0x5F, 0x43, 0x4F, 0x4E, 0x46, 0x49, 0x52, 0x4D, 0x0A, 0x00, 0x00, 0x00
|
|
.global KEC_SHOP_BUY_EXPLA_ITEM_STR
|
|
KEC_SHOP_BUY_EXPLA_ITEM_STR:
|
|
.byte 0x5F, 0x42, 0x55, 0x59
|
|
.byte 0x5F, 0x45, 0x58, 0x50, 0x4C, 0x41, 0x20, 0x49, 0x74, 0x65, 0x6D, 0x25, 0x64, 0x20, 0x43, 0x6F
|
|
.byte 0x75, 0x6E, 0x74, 0x25, 0x64, 0x0A, 0x00, 0x00
|
|
.global KEC_SHOP_ITEM_TEXT_TAG
|
|
KEC_SHOP_ITEM_TEXT_TAG:
|
|
.byte 0x5B, 0x69, 0x74, 0x65, 0x6D, 0x3A, 0x30, 0x5D
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.global KEC_SHOP_BUY_THANKS_STR
|
|
KEC_SHOP_BUY_THANKS_STR:
|
|
.byte 0x5F, 0x42, 0x55, 0x59, 0x5F, 0x54, 0x48, 0x41, 0x4E, 0x4B, 0x53, 0x0A
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.global KEC_SHOP_SELL_START_STR
|
|
KEC_SHOP_SELL_START_STR:
|
|
.byte 0x5F, 0x53, 0x45, 0x4C, 0x4C, 0x5F, 0x53, 0x54, 0x41, 0x52, 0x54, 0x0A
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.global KEC_SHOP_SELL_RESTART_STR
|
|
KEC_SHOP_SELL_RESTART_STR:
|
|
.byte 0x5F, 0x53, 0x45, 0x4C, 0x4C, 0x5F, 0x52, 0x45, 0x53, 0x54, 0x41, 0x52
|
|
.byte 0x54, 0x0A, 0x00, 0x00
|
|
.global KEC_SHOP_SELL_SELECT_STR
|
|
KEC_SHOP_SELL_SELECT_STR:
|
|
.byte 0x5F, 0x53, 0x45, 0x4C, 0x4C, 0x5F, 0x53, 0x45, 0x4C, 0x45, 0x43, 0x54
|
|
.byte 0x0A, 0x00, 0x00, 0x00
|
|
.global KEC_SHOP_SELL_RESELECT_STR
|
|
KEC_SHOP_SELL_RESELECT_STR:
|
|
.byte 0x5F, 0x53, 0x45, 0x4C, 0x4C, 0x5F, 0x52, 0x45, 0x53, 0x45, 0x4C, 0x45
|
|
.byte 0x43, 0x54, 0x0A, 0x00
|
|
.global KEC_SHOP_SELL_SUB_MENU_STR
|
|
KEC_SHOP_SELL_SUB_MENU_STR:
|
|
.byte 0x5F, 0x53, 0x45, 0x4C, 0x4C, 0x5F, 0x53, 0x55, 0x42, 0x5F, 0x4D, 0x45
|
|
.byte 0x4E, 0x55, 0x0A, 0x00
|
|
.global KEC_SHOP_SELL_CONFIRM_STR
|
|
KEC_SHOP_SELL_CONFIRM_STR:
|
|
.byte 0x5F, 0x53, 0x45, 0x4C, 0x4C, 0x5F, 0x43, 0x4F, 0x4E, 0x46, 0x49, 0x52
|
|
.byte 0x4D, 0x0A, 0x00, 0x00
|
|
.global KEC_SHOP_SELL_CONFIRM_NEW_STR
|
|
KEC_SHOP_SELL_CONFIRM_NEW_STR:
|
|
.byte 0x5F, 0x53, 0x45, 0x4C, 0x4C, 0x5F, 0x43, 0x4F, 0x4E, 0x46, 0x49, 0x52
|
|
.byte 0x4D, 0x20, 0x4E, 0x45, 0x57, 0x0A, 0x00, 0x00
|
|
.global KEC_SHOP_BUY_CONFIRM_NEW_STR
|
|
KEC_SHOP_BUY_CONFIRM_NEW_STR:
|
|
.byte 0x5F, 0x42, 0x55, 0x59, 0x5F, 0x43, 0x4F, 0x4E
|
|
.byte 0x46, 0x49, 0x52, 0x4D, 0x20, 0x4E, 0x45, 0x57, 0x0A, 0x00, 0x00, 0x00
|
|
.global KEC_SHOP_SELL_EXPLA_STR
|
|
KEC_SHOP_SELL_EXPLA_STR:
|
|
.byte 0x5F, 0x53, 0x45, 0x4C
|
|
.byte 0x4C, 0x5F, 0x45, 0x58, 0x50, 0x4C, 0x41, 0x0A, 0x00, 0x00, 0x00, 0x00
|
|
.global KEC_SHOP_SELL_THANKS_STR
|
|
KEC_SHOP_SELL_THANKS_STR:
|
|
.byte 0x5F, 0x53, 0x45, 0x4C
|
|
.byte 0x4C, 0x5F, 0x54, 0x48, 0x41, 0x4E, 0x4B, 0x53, 0x0A, 0x00, 0x00, 0x00
|
|
.global KEC_SHOP_SELL_ALL_STR
|
|
KEC_SHOP_SELL_ALL_STR:
|
|
.byte 0x5F, 0x53, 0x45, 0x4C
|
|
.byte 0x4C, 0x5F, 0x41, 0x4C, 0x4C, 0x0A, 0x00, 0x00
|
|
.global KEC_SHOP_BUT_MULTI_STR
|
|
KEC_SHOP_BUT_MULTI_STR:
|
|
.byte 0x5F, 0x42, 0x55, 0x54, 0x5F, 0x4D, 0x55, 0x4C
|
|
.byte 0x54, 0x49, 0x0A, 0x00
|
|
.global KEC_SHOP_SELL_MULTI_STR
|
|
KEC_SHOP_SELL_MULTI_STR:
|
|
.byte 0x5F, 0x53, 0x45, 0x4C, 0x4C, 0x5F, 0x4D, 0x55, 0x4C, 0x54, 0x49, 0x0A
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.global KEC_SHOP_ALL_CONFIRM_STR
|
|
KEC_SHOP_ALL_CONFIRM_STR:
|
|
.byte 0x5F, 0x41, 0x4C, 0x4C, 0x5F, 0x43, 0x4F, 0x4E, 0x46, 0x49, 0x52, 0x4D
|
|
.byte 0x0A, 0x00, 0x00, 0x00
|
|
.global KEC_SHOP_SELL_ALL_THANKS_STR
|
|
KEC_SHOP_SELL_ALL_THANKS_STR:
|
|
.byte 0x53, 0x45, 0x4C, 0x4C, 0x5F, 0x41, 0x4C, 0x4C, 0x5F, 0x54, 0x48, 0x41
|
|
.byte 0x4E, 0x4B, 0x53, 0x0A, 0x00, 0x00, 0x00, 0x00
|
|
.global KEC_SHOP_BUY_MULTI_THANKS_STR
|
|
KEC_SHOP_BUY_MULTI_THANKS_STR:
|
|
.byte 0x42, 0x55, 0x59, 0x5F, 0x4D, 0x55, 0x4C, 0x54
|
|
.byte 0x49, 0x5F, 0x54, 0x48, 0x41, 0x4E, 0x4B, 0x53, 0x0A, 0x00, 0x00, 0x00
|
|
.global KEC_SHOP_SELL_MULTI_THANKS_STR
|
|
KEC_SHOP_SELL_MULTI_THANKS_STR:
|
|
.byte 0x53, 0x45, 0x4C, 0x4C
|
|
.byte 0x5F, 0x4D, 0x55, 0x4C, 0x54, 0x49, 0x5F, 0x54, 0x48, 0x41, 0x4E, 0x4B, 0x53, 0x0A, 0x00, 0x00
|
|
.global KEC_SHOP_CHANGEJOB_STR
|
|
KEC_SHOP_CHANGEJOB_STR:
|
|
.byte 0x43, 0x68, 0x61, 0x6E, 0x67, 0x65, 0x4A, 0x6F, 0x62, 0x0A, 0x00, 0x00
|
|
|
|
.data
|
|
.global GREEN_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
GREEN_KEC_SHOP_ITEM_DATA_WRAPPER:
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.global PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER
|
|
PURPLE_KEC_SHOP_ITEM_DATA_WRAPPER:
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.global KECLEON_SHOP_SHARED_STRUCT_PTR
|
|
KECLEON_SHOP_SHARED_STRUCT_PTR:
|
|
.byte 0x00, 0x00, 0x00, 0x00
|