pmd-sky/asm/overlay_22.s
2026-07-02 20:51:00 -04:00

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