diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-09-30 18:06:49 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2019-09-30 18:06:49 -0400 |
commit | 89be71dcb846b1d1eded569db6dd6709cc42201f (patch) | |
tree | 69dc044a4adbdd0c9645af95cfe26d8895f3e481 | |
parent | 64362d3040b3defb722bf72203fda64b96da1e06 (diff) |
berry_pouch through sub_813E8D4
-rw-r--r-- | asm/berry_pouch.s | 684 | ||||
-rw-r--r-- | include/item.h | 7 | ||||
-rw-r--r-- | include/strings.h | 1 | ||||
-rw-r--r-- | src/berry_pouch.c | 191 |
4 files changed, 195 insertions, 688 deletions
diff --git a/asm/berry_pouch.s b/asm/berry_pouch.s index f86bff256..82ce14f9d 100644 --- a/asm/berry_pouch.s +++ b/asm/berry_pouch.s @@ -5,690 +5,6 @@ .text - thumb_func_start sub_813E320 -sub_813E320: @ 813E320 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0813E374 @ =gUnknown_203F388 - ldrb r0, [r0] - adds r0, 0x9 - lsls r0, 24 - lsrs r0, 24 - bl sub_813EA98 - movs r0, 0x6 - bl sub_813EA98 - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0 - bl ScheduleBgCopyTilemapToVram - movs r0, 0x2 - bl ScheduleBgCopyTilemapToVram - ldr r1, _0813E378 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x8] - movs r1, 0x1 - bl sub_813D4B0 - adds r0, r4, 0 - bl sub_813DBB4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813E374: .4byte gUnknown_203F388 -_0813E378: .4byte gTasks - thumb_func_end sub_813E320 - - thumb_func_start sub_813E37C -sub_813E37C: @ 813E37C - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r6, r0, 3 - ldr r7, _0813E3C4 @ =gTasks+0x8 - adds r0, r6, r7 - ldrh r1, [r0, 0x2] - movs r0, 0x5 - bl BagGetItemIdByPocketPosition - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl sub_80BF6A8 - lsls r0, 24 - cmp r0, 0 - bne _0813E3D8 - ldr r1, _0813E3C8 @ =gStringVar1 - adds r0, r4, 0 - bl CopyItemName - ldr r4, _0813E3CC @ =gStringVar4 - ldr r1, _0813E3D0 @ =gUnknown_8416374 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r3, _0813E3D4 @ =sub_813E290 - adds r0, r5, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl DisplayItemMessageInBerryPouch - b _0813E3EA - .align 2, 0 -_0813E3C4: .4byte gTasks+0x8 -_0813E3C8: .4byte gStringVar1 -_0813E3CC: .4byte gStringVar4 -_0813E3D0: .4byte gUnknown_8416374 -_0813E3D4: .4byte sub_813E290 -_0813E3D8: - ldr r0, _0813E3F0 @ =gUnknown_203F36C - ldr r1, [r0] - ldr r0, _0813E3F4 @ =c2_8123744 - str r0, [r1] - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _0813E3F8 @ =BerryPouch_StartFadeToExitCallback - str r1, [r0] -_0813E3EA: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813E3F0: .4byte gUnknown_203F36C -_0813E3F4: .4byte c2_8123744 -_0813E3F8: .4byte BerryPouch_StartFadeToExitCallback - thumb_func_end sub_813E37C - - thumb_func_start sub_813E3FC -sub_813E3FC: @ 813E3FC - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0813E418 @ =gUnknown_203F36C - ldr r2, [r1] - ldr r1, _0813E41C @ =sub_808CE60 - str r1, [r2] - ldr r2, _0813E420 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _0813E424 @ =BerryPouch_StartFadeToExitCallback - str r0, [r1] - bx lr - .align 2, 0 -_0813E418: .4byte gUnknown_203F36C -_0813E41C: .4byte sub_808CE60 -_0813E420: .4byte gTasks -_0813E424: .4byte BerryPouch_StartFadeToExitCallback - thumb_func_end sub_813E3FC - - thumb_func_start sub_813E428 -sub_813E428: @ 813E428 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r7, r5, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _0813E470 @ =gTasks+0x8 - adds r4, r0, r1 - ldr r6, _0813E474 @ =gSpecialVar_ItemId - ldrh r0, [r6] - bl itemid_get_market_price - lsls r0, 16 - cmp r0, 0 - bne _0813E488 - ldrh r0, [r6] - ldr r1, _0813E478 @ =gStringVar1 - bl CopyItemName - ldr r4, _0813E47C @ =gStringVar4 - ldr r1, _0813E480 @ =gText_OhNoICantBuyThat - adds r0, r4, 0 - bl StringExpandPlaceholders - bl sub_80BF8E4 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _0813E484 @ =sub_813E2B8 - adds r0, r5, 0 - adds r2, r4, 0 - bl DisplayItemMessageInBerryPouch - b _0813E4CE - .align 2, 0 -_0813E470: .4byte gTasks+0x8 -_0813E474: .4byte gSpecialVar_ItemId -_0813E478: .4byte gStringVar1 -_0813E47C: .4byte gStringVar4 -_0813E480: .4byte gText_OhNoICantBuyThat -_0813E484: .4byte sub_813E2B8 -_0813E488: - movs r0, 0x1 - strh r0, [r4, 0x10] - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _0813E4A0 - bl sub_813EBD4 - adds r0, r5, 0 - bl sub_813E4E4 - b _0813E4CE -_0813E4A0: - cmp r0, 0x63 - ble _0813E4A8 - movs r0, 0x63 - strh r0, [r4, 0x4] -_0813E4A8: - ldrh r0, [r6] - ldr r1, _0813E4D4 @ =gStringVar1 - bl CopyItemName - ldr r4, _0813E4D8 @ =gStringVar4 - ldr r1, _0813E4DC @ =gText_HowManyWouldYouLikeToSell - adds r0, r4, 0 - bl StringExpandPlaceholders - bl sub_80BF8E4 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _0813E4E0 @ =sub_813E5B8 - adds r0, r7, 0 - adds r2, r4, 0 - bl DisplayItemMessageInBerryPouch -_0813E4CE: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813E4D4: .4byte gStringVar1 -_0813E4D8: .4byte gStringVar4 -_0813E4DC: .4byte gText_HowManyWouldYouLikeToSell -_0813E4E0: .4byte sub_813E5B8 - thumb_func_end sub_813E428 - - thumb_func_start sub_813E4E4 -sub_813E4E4: @ 813E4E4 - push {r4-r6,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, _0813E540 @ =gTasks+0x8 - adds r4, r0 - ldr r6, _0813E544 @ =gStringVar3 - ldrh r1, [r4, 0x2] - movs r0, 0x5 - bl BagGetItemIdByPocketPosition - lsls r0, 16 - lsrs r0, 16 - bl itemid_get_market_price - lsls r0, 16 - lsrs r0, 17 - movs r2, 0x10 - ldrsh r1, [r4, r2] - muls r1, r0 - adds r0, r6, 0 - movs r2, 0 - movs r3, 0x6 - bl ConvertIntToDecimalStringN - ldr r4, _0813E548 @ =gStringVar4 - ldr r1, _0813E54C @ =gText_ICanPayThisMuch_WouldThatBeOkay - adds r0, r4, 0 - bl StringExpandPlaceholders - bl sub_80BF8E4 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _0813E550 @ =sub_813E554 - adds r0, r5, 0 - adds r2, r4, 0 - bl DisplayItemMessageInBerryPouch - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813E540: .4byte gTasks+0x8 -_0813E544: .4byte gStringVar3 -_0813E548: .4byte gStringVar4 -_0813E54C: .4byte gText_ICanPayThisMuch_WouldThatBeOkay -_0813E550: .4byte sub_813E554 - thumb_func_end sub_813E4E4 - - thumb_func_start sub_813E554 -sub_813E554: @ 813E554 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0813E564 @ =gUnknown_8464374 - bl sub_813EBA8 - pop {r0} - bx r0 - .align 2, 0 -_0813E564: .4byte gUnknown_8464374 - thumb_func_end sub_813E554 - - thumb_func_start sub_813E568 -sub_813E568: @ 813E568 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, _0813E5B4 @ =gTasks+0x8 - adds r4, r0 - movs r0, 0x2 - bl sub_813EA98 - movs r0, 0x5 - bl sub_813EACC - movs r0, 0x2 - bl PutWindowTilemap - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0 - bl ScheduleBgCopyTilemapToVram - ldrb r0, [r4] - movs r1, 0x1 - bl sub_813D4B0 - adds r0, r5, 0 - bl sub_813DBB4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0813E5B4: .4byte gTasks+0x8 - thumb_func_end sub_813E568 - - thumb_func_start sub_813E5B8 -sub_813E5B8: @ 813E5B8 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - lsls r5, r0, 2 - adds r5, r0 - lsls r5, 3 - ldr r6, _0813E654 @ =gTasks+0x8 - adds r0, r5, r6 - mov r9, r0 - movs r0, 0x1 - bl sub_813EA08 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0813E658 @ =gStringVar1 - movs r1, 0x1 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r2, _0813E65C @ =gStringVar4 - mov r8, r2 - ldr r1, _0813E660 @ =gText_TimesStrVar1 - mov r0, r8 - bl StringExpandPlaceholders - movs r0, 0xA - str r0, [sp] - movs r1, 0x1 - str r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - movs r0, 0xFF - str r0, [sp, 0xC] - str r1, [sp, 0x10] - adds r0, r4, 0 - movs r1, 0 - mov r2, r8 - movs r3, 0x4 - bl sub_813E9A0 - mov r3, r9 - ldrh r1, [r3, 0x2] - movs r0, 0x5 - bl BagGetItemIdByPocketPosition - lsls r0, 16 - lsrs r0, 16 - bl itemid_get_market_price - lsls r0, 16 - lsrs r0, 17 - mov r2, r9 - movs r3, 0x10 - ldrsh r1, [r2, r3] - muls r0, r1 - bl sub_813E668 - bl sub_813EBD4 - bl sub_813D64C - subs r6, 0x8 - adds r5, r6 - ldr r0, _0813E664 @ =sub_813E690 - str r0, [r5] - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813E654: .4byte gTasks+0x8 -_0813E658: .4byte gStringVar1 -_0813E65C: .4byte gStringVar4 -_0813E660: .4byte gText_TimesStrVar1 -_0813E664: .4byte sub_813E690 - thumb_func_end sub_813E5B8 - - thumb_func_start sub_813E668 -sub_813E668: @ 813E668 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r0, 0x1 - bl sub_813EB10 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - str r1, [sp] - movs r1, 0x38 - movs r2, 0xA - adds r3, r4, 0 - bl PrintMoneyAmount - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_813E668 - - thumb_func_start sub_813E690 -sub_813E690: @ 813E690 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _0813E6E0 @ =gTasks+0x8 - adds r5, r0, r1 - adds r0, r5, 0 - adds r0, 0x10 - ldrh r1, [r5, 0x4] - bl AdjustQuantityAccordingToDPadInput - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0813E6E4 - movs r0, 0x10 - ldrsh r1, [r5, r0] - movs r0, 0x1 - movs r2, 0x2 - bl sub_813D9F8 - ldrh r1, [r5, 0x2] - movs r0, 0x5 - bl BagGetItemIdByPocketPosition - lsls r0, 16 - lsrs r0, 16 - bl itemid_get_market_price - lsls r0, 16 - lsrs r0, 17 - movs r2, 0x10 - ldrsh r1, [r5, r2] - muls r0, r1 - bl sub_813E668 - b _0813E762 - .align 2, 0 -_0813E6E0: .4byte gTasks+0x8 -_0813E6E4: - ldr r0, _0813E714 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0813E718 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl sub_813EA98 - movs r0, 0 - bl PutWindowTilemap - movs r0, 0 - bl ScheduleBgCopyTilemapToVram - bl sub_813D684 - adds r0, r4, 0 - bl sub_813E4E4 - b _0813E762 - .align 2, 0 -_0813E714: .4byte gMain -_0813E718: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0813E762 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl sub_813EA98 - movs r0, 0x2 - bl sub_813EA98 - movs r0, 0x5 - bl sub_813EACC - movs r0, 0x2 - bl PutWindowTilemap - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0 - bl ScheduleBgCopyTilemapToVram - bl sub_813D684 - ldrb r0, [r5] - movs r1, 0x1 - bl sub_813D4B0 - adds r0, r6, 0 - bl sub_813DBB4 -_0813E762: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_813E690 - - thumb_func_start sub_813E768 -sub_813E768: @ 813E768 - push {r4-r6,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, _0813E7D4 @ =gTasks+0x8 - adds r4, r0 - movs r0, 0 - bl PutWindowTilemap - movs r0, 0 - bl ScheduleBgCopyTilemapToVram - ldr r0, _0813E7D8 @ =gSpecialVar_ItemId - ldrh r0, [r0] - ldr r1, _0813E7DC @ =gStringVar1 - bl CopyItemName - ldr r6, _0813E7E0 @ =gStringVar3 - ldrh r1, [r4, 0x2] - movs r0, 0x5 - bl BagGetItemIdByPocketPosition - lsls r0, 16 - lsrs r0, 16 - bl itemid_get_market_price - lsls r0, 16 - lsrs r0, 17 - movs r2, 0x10 - ldrsh r1, [r4, r2] - muls r1, r0 - adds r0, r6, 0 - movs r2, 0 - movs r3, 0x6 - bl ConvertIntToDecimalStringN - ldr r4, _0813E7E4 @ =gStringVar4 - ldr r1, _0813E7E8 @ =gText_TurnedOverItemsWorthYen - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r3, _0813E7EC @ =sub_813E7F0 - adds r0, r5, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl DisplayItemMessageInBerryPouch - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0813E7D4: .4byte gTasks+0x8 -_0813E7D8: .4byte gSpecialVar_ItemId -_0813E7DC: .4byte gStringVar1 -_0813E7E0: .4byte gStringVar3 -_0813E7E4: .4byte gStringVar4 -_0813E7E8: .4byte gText_TurnedOverItemsWorthYen -_0813E7EC: .4byte sub_813E7F0 - thumb_func_end sub_813E768 - - thumb_func_start sub_813E7F0 -sub_813E7F0: @ 813E7F0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - lsls r6, r0, 2 - adds r6, r0 - lsls r6, 3 - ldr r0, _0813E8BC @ =gTasks+0x8 - mov r9, r0 - adds r1, r6, 0 - add r1, r9 - mov r8, r1 - movs r0, 0xF8 - bl PlaySE - ldr r5, _0813E8C0 @ =gSpecialVar_ItemId - ldrh r0, [r5] - mov r2, r8 - ldrh r1, [r2, 0x10] - bl RemoveBagItem - ldr r7, _0813E8C4 @ =gSaveBlock1Ptr - ldr r4, [r7] - movs r3, 0xA4 - lsls r3, 2 - mov r10, r3 - add r4, r10 - ldrh r0, [r5] - bl itemid_get_market_price - lsls r0, 16 - lsrs r0, 17 - mov r2, r8 - movs r3, 0x10 - ldrsh r1, [r2, r3] - muls r1, r0 - adds r0, r4, 0 - bl AddMoney - ldrh r0, [r5] - mov r2, r8 - ldrh r1, [r2, 0x10] - movs r2, 0x2 - bl sub_809C09C - mov r3, r8 - ldrb r0, [r3] - ldr r4, _0813E8C8 @ =gUnknown_203F370 + 10 - subs r2, r4, 0x2 - adds r1, r4, 0 - bl DestroyListMenuTask - bl sub_813D8AC - bl sub_813D6F4 - bl sub_813D204 - ldr r0, _0813E8CC @ =gMultiuseListMenuTemplate - subs r4, 0xA - ldrh r1, [r4, 0xA] - ldrh r2, [r4, 0x8] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - strh r0, [r1] - movs r1, 0x2 - bl sub_813D4B0 - movs r0, 0x2 - bl sub_813EB10 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, [r7] - add r0, r10 - bl GetMoney - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0 - bl PrintMoneyAmountInMoneyBox - movs r2, 0x8 - negs r2, r2 - add r9, r2 - add r6, r9 - ldr r0, _0813E8D0 @ =sub_813E8D4 - str r0, [r6] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813E8BC: .4byte gTasks+0x8 -_0813E8C0: .4byte gSpecialVar_ItemId -_0813E8C4: .4byte gSaveBlock1Ptr -_0813E8C8: .4byte gUnknown_203F370 + 10 -_0813E8CC: .4byte gMultiuseListMenuTemplate -_0813E8D0: .4byte sub_813E8D4 - thumb_func_end sub_813E7F0 - - thumb_func_start sub_813E8D4 -sub_813E8D4: @ 813E8D4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0813E90C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0813E8EE - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0813E906 -_0813E8EE: - movs r0, 0x5 - bl PlaySE - movs r0, 0x2 - bl sub_813EA98 - movs r0, 0x2 - bl PutWindowTilemap - adds r0, r4, 0 - bl sub_813E2B8 -_0813E906: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813E90C: .4byte gMain - thumb_func_end sub_813E8D4 - thumb_func_start sub_813E910 sub_813E910: @ 813E910 push {r4,lr} diff --git a/include/item.h b/include/item.h index f0aaa0f6c..583a47cdc 100644 --- a/include/item.h +++ b/include/item.h @@ -64,13 +64,12 @@ u8 ItemId_GetSecondaryId(u16 itemId); u16 itemid_get_market_price(u16 itemId); void ClearItemSlotsInAllBagPockets(void); void ClearPCItemSlots(void); -void CopyItemName(u16, u8 *); void sub_809A824(u16 itemId); bool8 AddBagItem(u16 itemId, u16 amount); -void SortPocketAndPlaceHMsFirst(struct BagPocket *); -u16 BagGetItemIdByPocketPosition(u8 a0, u16 a1); -u16 BagGetQuantityByPocketPosition(u8 a0, u16 a1); +void SortPocketAndPlaceHMsFirst(struct BagPocket * pocket); +u16 BagGetItemIdByPocketPosition(u8 pocketId, u16 itemId); +u16 BagGetQuantityByPocketPosition(u8 pocketId, u16 itemId); bool8 itemid_is_unique(u16 itemId); void BagPocketCompaction(struct ItemSlot * slots, u8 capacity); u16 GetPcItemQuantity(u16 *); diff --git a/include/strings.h b/include/strings.h index e60344731..a56139909 100644 --- a/include/strings.h +++ b/include/strings.h @@ -317,6 +317,7 @@ extern const u8 gCreditsString_Graphic_Designer[]; extern const u8 gCreditsString_Akira_Kinashi[]; // berry_pouch +extern const u8 gUnknown_8416374[]; extern const u8 gUnknown_84163DB[]; extern const u8 gUnknown_84163F4[]; extern const u8 gUnknown_8416409[]; diff --git a/src/berry_pouch.c b/src/berry_pouch.c index ff4652ee2..e6746d4ca 100644 --- a/src/berry_pouch.c +++ b/src/berry_pouch.c @@ -21,8 +21,11 @@ #include "string_util.h" #include "sound.h" #include "link.h" +#include "money.h" +#include "shop.h" #include "menu.h" #include "menu_indicators.h" +#include "pokemon_storage_system.h" #include "constants/items.h" #include "constants/songs.h" @@ -104,8 +107,15 @@ void sub_813E320(u8 taskId); void sub_813E37C(u8 taskId); void sub_813E3FC(u8 taskId); void sub_813E428(u8 taskId); +void sub_813E4E4(u8 taskId); +void sub_813E554(u8 taskId); void sub_813E568(u8 taskId); +void sub_813E5B8(u8 taskId); +void sub_813E668(s32 price); +void sub_813E690(u8 taskId); void sub_813E768(u8 taskId); +void sub_813E7F0(u8 taskId); +void sub_813E8D4(u8 taskId); void sub_813E910(void); void sub_813E9A0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx); u8 sub_813EA08(u8); @@ -113,6 +123,8 @@ void sub_813EA98(u8); void sub_813EACC(u8); u8 sub_813EB10(u8); void sub_813EB7C(u8 taskId, const struct YesNoFuncTable * ptrs); +void sub_813EBA8(u8 taskId, const struct YesNoFuncTable * ptrs); +void sub_813EBD4(void); void sub_813EC08(void); void sub_813EC28(void); @@ -1213,3 +1225,182 @@ void sub_813E2B8(u8 taskId) sub_813D4B0(data[0], 1); sub_813DBB4(taskId); } + +void sub_813E320(u8 taskId) +{ + sub_813EA98(gUnknown_203F388 + 9); + sub_813EA98(6); + PutWindowTilemap(0); + PutWindowTilemap(1); + ScheduleBgCopyTilemapToVram(0); + ScheduleBgCopyTilemapToVram(2); + sub_813D4B0(gTasks[taskId].data[0], 1); + sub_813DBB4(taskId); +} + +void sub_813E37C(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + u16 itemId = BagGetItemIdByPocketPosition(POCKET_BERRY_POUCH, data[1]); + if (!sub_80BF6A8(itemId)) + { + CopyItemName(itemId, gStringVar1); + StringExpandPlaceholders(gStringVar4, gUnknown_8416374); + DisplayItemMessageInBerryPouch(taskId, 2, gStringVar4, sub_813E290); + } + else + { + gUnknown_203F36C->unk_000 = c2_8123744; + gTasks[taskId].func = BerryPouch_StartFadeToExitCallback; + } +} + +void sub_813E3FC(u8 taskId) +{ + gUnknown_203F36C->unk_000 = sub_808CE60; + gTasks[taskId].func = BerryPouch_StartFadeToExitCallback; +} + +void sub_813E428(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + if (itemid_get_market_price(gSpecialVar_ItemId) == 0) + { + CopyItemName(gSpecialVar_ItemId, gStringVar1); + StringExpandPlaceholders(gStringVar4, gText_OhNoICantBuyThat); + DisplayItemMessageInBerryPouch(taskId, sub_80BF8E4(), gStringVar4, sub_813E2B8); + } + else + { + data[8] = 1; + if (data[2] == 1) + { + sub_813EBD4(); + sub_813E4E4(taskId); + } + else + { + if (data[2] > 99) + data[2] = 99; + CopyItemName(gSpecialVar_ItemId, gStringVar1); + StringExpandPlaceholders(gStringVar4, gText_HowManyWouldYouLikeToSell); + DisplayItemMessageInBerryPouch(taskId, sub_80BF8E4(), gStringVar4, sub_813E5B8); + } + } +} + +void sub_813E4E4(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_BERRY_POUCH, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6); + StringExpandPlaceholders(gStringVar4, gText_ICanPayThisMuch_WouldThatBeOkay); + DisplayItemMessageInBerryPouch(taskId, sub_80BF8E4(), gStringVar4, sub_813E554); +} + +void sub_813E554(u8 taskId) +{ + sub_813EBA8(taskId, &gUnknown_8464374); +} + +void sub_813E568(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + sub_813EA98(2); + sub_813EACC(5); + PutWindowTilemap(2); + PutWindowTilemap(0); + PutWindowTilemap(1); + ScheduleBgCopyTilemapToVram(0); + sub_813D4B0(data[0], 1); + sub_813DBB4(taskId); +} + +void sub_813E5B8(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + u8 windowId = sub_813EA08(1); + ConvertIntToDecimalStringN(gStringVar1, 1, STR_CONV_MODE_LEADING_ZEROS, 2); + StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1); + sub_813E9A0(windowId, 0, gStringVar4, 4, 10, 1, 0, 0xFF, 1); + sub_813E668(itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_BERRY_POUCH, data[1])) / 2 * data[8]); + sub_813EBD4(); + sub_813D64C(); + gTasks[taskId].func = sub_813E690; +} + +void sub_813E668(s32 price) +{ + PrintMoneyAmount(sub_813EB10(1), 56, 10, price, 0); +} + +void sub_813E690(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + if (AdjustQuantityAccordingToDPadInput(&data[8], data[2]) == TRUE) + { + sub_813D9F8(1, data[8], 2); + sub_813E668(itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_BERRY_POUCH, data[1])) / 2 * data[8]); + } + else if (JOY_NEW(A_BUTTON)) + { + PlaySE(SE_SELECT); + sub_813EA98(1); + PutWindowTilemap(0); + ScheduleBgCopyTilemapToVram(0); + sub_813D684(); + sub_813E4E4(taskId); + } + else if (JOY_NEW(B_BUTTON)) + { + PlaySE(SE_SELECT); + sub_813EA98(1); + sub_813EA98(2); + sub_813EACC(5); + PutWindowTilemap(2); + PutWindowTilemap(0); + PutWindowTilemap(1); + ScheduleBgCopyTilemapToVram(0); + sub_813D684(); + sub_813D4B0(data[0], 1); + sub_813DBB4(taskId); + } +} + +void sub_813E768(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + PutWindowTilemap(0); + ScheduleBgCopyTilemapToVram(0); + CopyItemName(gSpecialVar_ItemId, gStringVar1); + ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_BERRY_POUCH, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6); + StringExpandPlaceholders(gStringVar4, gText_TurnedOverItemsWorthYen); + DisplayItemMessageInBerryPouch(taskId, 2, gStringVar4, sub_813E7F0); +} + +void sub_813E7F0(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + PlaySE(SE_CASHIER); + RemoveBagItem(gSpecialVar_ItemId, data[8]); + AddMoney(&gSaveBlock1Ptr->money, itemid_get_market_price(gSpecialVar_ItemId) / 2 * data[8]); + sub_809C09C(gSpecialVar_ItemId, data[8], 2); + DestroyListMenuTask(data[0], &gUnknown_203F370.unk_0A, &gUnknown_203F370.unk_08); + sub_813D8AC(); + sub_813D6F4(); + sub_813D204(); + data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gUnknown_203F370.unk_0A, gUnknown_203F370.unk_08); + sub_813D4B0(data[0], 2); + PrintMoneyAmountInMoneyBox(sub_813EB10(2), GetMoney(&gSaveBlock1Ptr->money), 0); + gTasks[taskId].func = sub_813E8D4; +} + +void sub_813E8D4(u8 taskId) +{ + if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON)) + { + PlaySE(SE_SELECT); + sub_813EA98(2); + PutWindowTilemap(2); + sub_813E2B8(taskId); + } +} |