diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-04-14 18:42:50 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2019-04-14 18:42:50 -0400 |
commit | 584bdbe5b57b28fbb06c1e49235f12f7de8c79ed (patch) | |
tree | e949cf66180a0d9cb0216c85683b4bf59667ebb4 | |
parent | ae4e94dd73deef0165801917b63fa8fb3e74b242 (diff) |
tm_case through sub_8132F20
-rw-r--r-- | asm/tm_case.s | 1442 | ||||
-rw-r--r-- | include/menu.h | 2 | ||||
-rw-r--r-- | include/menu_helpers.h | 2 | ||||
-rw-r--r-- | include/money.h | 3 | ||||
-rw-r--r-- | include/party_menu.h | 6 | ||||
-rw-r--r-- | include/pokemon_storage_system.h | 1 | ||||
-rw-r--r-- | include/shop.h | 1 | ||||
-rw-r--r-- | include/teachy_tv.h | 6 | ||||
-rw-r--r-- | src/tm_case.c | 500 |
9 files changed, 509 insertions, 1454 deletions
diff --git a/asm/tm_case.s b/asm/tm_case.s index b675019ab..94ae0db6c 100644 --- a/asm/tm_case.s +++ b/asm/tm_case.s @@ -5,1448 +5,6 @@ .text - thumb_func_start sub_81322D4 -sub_81322D4: @ 81322D4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, _08132340 @ =gTasks+0x8 - adds r6, r0, r1 - ldr r0, _08132344 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - cmp r0, 0 - bne _081323C8 - bl sub_80BF72C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081323C8 - ldrb r0, [r6] - bl ListMenuHandleInput - adds r5, r0, 0 - ldrb r0, [r6] - ldr r4, _08132348 @ =gUnknown_203B10C + 10 - subs r2, r4, 0x2 - adds r1, r4, 0 - bl get_coro_args_x18_x1A - ldr r0, _0813234C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08132354 - adds r0, r4, 0 - subs r0, 0xA - ldrb r0, [r0, 0x5] - cmp r0, 0x1 - bne _08132354 - movs r0, 0x5 - bl PlaySE - ldr r0, _08132350 @ =gSpecialVar_ItemId - mov r1, r8 - strh r1, [r0] - b _08132370 - .align 2, 0 -_08132340: .4byte gTasks+0x8 -_08132344: .4byte gPaletteFade -_08132348: .4byte gUnknown_203B10C + 10 -_0813234C: .4byte gMain -_08132350: .4byte gSpecialVar_ItemId -_08132354: - movs r0, 0x2 - negs r0, r0 - cmp r5, r0 - beq _08132364 - adds r0, 0x1 - cmp r5, r0 - bne _0813237C - b _081323C8 -_08132364: - movs r0, 0x5 - bl PlaySE - ldr r1, _08132378 @ =gSpecialVar_ItemId - movs r0, 0 - strh r0, [r1] -_08132370: - adds r0, r7, 0 - bl sub_8132230 - b _081323C8 - .align 2, 0 -_08132378: .4byte gSpecialVar_ItemId -_0813237C: - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl sub_8131F64 - bl sub_813208C - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8131F90 - strh r5, [r6, 0x2] - lsls r4, r5, 16 - lsrs r4, 16 - movs r0, 0x4 - adds r1, r4, 0 - bl sub_809A7B4 - strh r0, [r6, 0x4] - movs r0, 0x4 - adds r1, r4, 0 - bl sub_809A798 - ldr r1, _081323D4 @ =gSpecialVar_ItemId - strh r0, [r1] - ldr r0, _081323D8 @ =gTasks - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r0 - ldr r2, _081323DC @ =gUnknown_8463140 - ldr r0, _081323E0 @ =gUnknown_203B10C - ldrb r0, [r0, 0x4] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - str r0, [r1] -_081323C8: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081323D4: .4byte gSpecialVar_ItemId -_081323D8: .4byte gTasks -_081323DC: .4byte gUnknown_8463140 -_081323E0: .4byte gUnknown_203B10C - thumb_func_end sub_81322D4 - - thumb_func_start sub_81323E4 -sub_81323E4: @ 81323E4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - bl sub_8131F64 - bl sub_8132018 - ldr r1, _0813240C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08132410 @ =sub_81322D4 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813240C: .4byte gTasks -_08132410: .4byte sub_81322D4 - thumb_func_end sub_81323E4 - - thumb_func_start sub_8132414 -sub_8132414: @ 8132414 - push {r4-r7,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r7, r0, 24 - movs r0, 0x2 - bl sub_8133368 - bl sub_80BF708 - lsls r0, 24 - cmp r0, 0 - bne _08132454 - bl InUnionRoom - cmp r0, 0x1 - beq _08132454 - ldr r4, _0813244C @ =gUnknown_203B118 - ldr r0, [r4] - adds r0, 0x7 - movs r1, 0 - bl sub_8133630 - ldr r1, [r4] - ldr r0, _08132450 @ =gUnknown_8463168 - str r0, [r1, 0xC] - movs r0, 0x3 - b _08132468 - .align 2, 0 -_0813244C: .4byte gUnknown_203B118 -_08132450: .4byte gUnknown_8463168 -_08132454: - ldr r4, _0813254C @ =gUnknown_203B118 - ldr r0, [r4] - adds r0, 0x7 - movs r1, 0x1 - bl sub_8133630 - ldr r1, [r4] - ldr r0, _08132550 @ =gUnknown_846316B - str r0, [r1, 0xC] - movs r0, 0x2 -_08132468: - strb r0, [r1, 0x10] - movs r0, 0x2 - movs r1, 0 - bl GetMenuCursorDimensionByFont - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x2 - movs r1, 0x1 - bl GetFontAttribute - adds r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - ldr r6, _0813254C @ =gUnknown_203B118 - ldr r1, [r6] - ldrb r2, [r1, 0x7] - movs r5, 0 - str r5, [sp] - str r0, [sp, 0x4] - ldrb r0, [r1, 0x10] - str r0, [sp, 0x8] - ldr r0, _08132554 @ =gUnknown_8463150 - str r0, [sp, 0xC] - ldr r0, [r1, 0xC] - str r0, [sp, 0x10] - adds r0, r2, 0 - movs r1, 0x2 - adds r2, r4, 0 - movs r3, 0x2 - bl AddItemMenuActionTextPrinters - movs r0, 0x2 - movs r1, 0x1 - bl GetFontAttribute - adds r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - ldr r1, [r6] - ldrb r2, [r1, 0x7] - str r0, [sp] - ldrb r0, [r1, 0x10] - str r0, [sp, 0x4] - str r5, [sp, 0x8] - adds r0, r2, 0 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl ProgramAndPlaceMenuCursorOnWindow - movs r0, 0x80 - lsls r0, 1 - bl Alloc - adds r4, r0, 0 - ldr r6, _08132558 @ =gSpecialVar_ItemId - ldrh r1, [r6] - bl sub_8131D48 - ldr r1, _0813255C @ =gUnknown_8416301 - adds r0, r4, 0 - bl StringAppend - movs r0, 0x2 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - str r5, [sp, 0x8] - str r5, [sp, 0xC] - str r0, [sp, 0x10] - movs r0, 0x2 - movs r1, 0x2 - adds r2, r4, 0 - movs r3, 0 - bl sub_81332EC - adds r0, r4, 0 - bl Free - ldrh r0, [r6] - bl itemid_is_unique - lsls r0, 24 - cmp r0, 0 - beq _08132528 - movs r0, 0x2 - movs r1, 0 - movs r2, 0x2 - bl sub_81335B0 - movs r0, 0x2 - movs r1, 0x2 - bl CopyWindowToVram -_08132528: - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, _08132560 @ =gTasks - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r0 - ldr r0, _08132564 @ =sub_8132568 - str r0, [r1] - add sp, 0x14 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0813254C: .4byte gUnknown_203B118 -_08132550: .4byte gUnknown_846316B -_08132554: .4byte gUnknown_8463150 -_08132558: .4byte gSpecialVar_ItemId -_0813255C: .4byte gUnknown_8416301 -_08132560: .4byte gTasks -_08132564: .4byte sub_8132568 - thumb_func_end sub_8132414 - - thumb_func_start sub_8132568 -sub_8132568: @ 8132568 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - bl sub_80BF72C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081325E0 - bl ProcessMenuInputNoWrapAround - lsls r0, 24 - asrs r4, r0, 24 - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _081325E0 - adds r0, 0x1 - cmp r4, r0 - bne _081325C0 - movs r0, 0x5 - bl PlaySE - ldr r2, _081325B8 @ =gUnknown_8463150 - ldr r0, _081325BC @ =gUnknown_203B118 - ldr r1, [r0] - ldrb r0, [r1, 0x10] - ldr r1, [r1, 0xC] - adds r0, r1 - subs r0, 0x1 - ldrb r0, [r0] - lsls r0, 3 - adds r2, 0x4 - adds r0, r2 - ldr r1, [r0] - adds r0, r5, 0 - bl _call_via_r1 - b _081325E0 - .align 2, 0 -_081325B8: .4byte gUnknown_8463150 -_081325BC: .4byte gUnknown_203B118 -_081325C0: - movs r0, 0x5 - bl PlaySE - ldr r1, _081325E8 @ =gUnknown_8463150 - ldr r0, _081325EC @ =gUnknown_203B118 - ldr r0, [r0] - ldr r0, [r0, 0xC] - adds r0, r4 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - adds r0, r6, 0 - bl _call_via_r1 -_081325E0: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081325E8: .4byte gUnknown_8463150 -_081325EC: .4byte gUnknown_203B118 - thumb_func_end sub_8132568 - - thumb_func_start sub_81325F0 -sub_81325F0: @ 81325F0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r5, _08132634 @ =gUnknown_203B118 - ldr r0, [r5] - adds r0, 0x7 - bl sub_8133664 - movs r0, 0x2 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0x2 - bl ClearWindowTilemap - movs r0, 0 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - bl CalculatePlayerPartyCount - lsls r0, 24 - cmp r0, 0 - bne _08132638 - adds r0, r4, 0 - bl sub_81326F8 - b _0813264A - .align 2, 0 -_08132634: .4byte gUnknown_203B118 -_08132638: - ldr r1, _08132650 @ =gUnknown_3005E98 - ldr r0, _08132654 @ =sub_8125B40 - str r0, [r1] - ldr r1, [r5] - ldr r0, _08132658 @ =sub_8124C8C - str r0, [r1] - adds r0, r4, 0 - bl sub_8132230 -_0813264A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08132650: .4byte gUnknown_3005E98 -_08132654: .4byte sub_8125B40 -_08132658: .4byte sub_8124C8C - thumb_func_end sub_81325F0 - - thumb_func_start sub_813265C -sub_813265C: @ 813265C - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _081326D0 @ =gTasks+0x8 - adds r0, r1 - ldrh r1, [r0, 0x2] - movs r0, 0x4 - bl sub_809A798 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r6, _081326D4 @ =gUnknown_203B118 - ldr r0, [r6] - adds r0, 0x7 - bl sub_8133664 - movs r0, 0x2 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0x2 - bl ClearWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x4 - bl PutWindowTilemap - movs r0, 0x5 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r4, 0 - bl itemid_is_unique - lsls r0, 24 - cmp r0, 0 - bne _081326EC - bl CalculatePlayerPartyCount - lsls r0, 24 - cmp r0, 0 - bne _081326D8 - adds r0, r5, 0 - bl sub_81326F8 - b _081326F2 - .align 2, 0 -_081326D0: .4byte gTasks+0x8 -_081326D4: .4byte gUnknown_203B118 -_081326D8: - ldr r1, [r6] - ldr r0, _081326E8 @ =sub_8126EDC - str r0, [r1] - adds r0, r5, 0 - bl sub_8132230 - b _081326F2 - .align 2, 0 -_081326E8: .4byte sub_8126EDC -_081326EC: - adds r0, r5, 0 - bl sub_8132714 -_081326F2: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_813265C - - thumb_func_start sub_81326F8 -sub_81326F8: @ 81326F8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0813270C @ =gUnknown_841632A - ldr r3, _08132710 @ =sub_8132758 - movs r1, 0x2 - bl sub_813337C - pop {r0} - bx r0 - .align 2, 0 -_0813270C: .4byte gUnknown_841632A -_08132710: .4byte sub_8132758 - thumb_func_end sub_81326F8 - - thumb_func_start sub_8132714 -sub_8132714: @ 8132714 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08132744 @ =gSpecialVar_ItemId - ldrh r0, [r0] - ldr r1, _08132748 @ =gStringVar1 - bl CopyItemName - ldr r5, _0813274C @ =gStringVar4 - ldr r1, _08132750 @ =gUnknown_841635E - adds r0, r5, 0 - bl StringExpandPlaceholders - ldr r3, _08132754 @ =sub_8132758 - adds r0, r4, 0 - movs r1, 0x2 - adds r2, r5, 0 - bl sub_813337C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08132744: .4byte gSpecialVar_ItemId -_08132748: .4byte gStringVar1 -_0813274C: .4byte gStringVar4 -_08132750: .4byte gUnknown_841635E -_08132754: .4byte sub_8132758 - thumb_func_end sub_8132714 - - thumb_func_start sub_8132758 -sub_8132758: @ 8132758 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0813277C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08132776 - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_8132780 -_08132776: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0813277C: .4byte gMain - thumb_func_end sub_8132758 - - thumb_func_start sub_8132780 -sub_8132780: @ 8132780 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r5, r6, 2 - adds r5, r6 - lsls r5, 3 - ldr r0, _081327F0 @ =gTasks+0x8 - adds r5, r0 - ldrb r0, [r5] - ldr r4, _081327F4 @ =gUnknown_203B10C + 10 - subs r2, r4, 0x2 - adds r1, r4, 0 - bl sub_810713C - ldr r0, _081327F8 @ =gUnknown_3005E70 - subs r4, 0xA - ldrh r1, [r4, 0xA] - ldrh r2, [r4, 0x8] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - movs r1, 0x1 - bl sub_8131F90 - movs r0, 0x6 - movs r1, 0 - bl sub_810F260 - movs r0, 0x6 - bl ClearWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x4 - bl PutWindowTilemap - movs r0, 0x5 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r6, 0 - bl sub_81323E4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081327F0: .4byte gTasks+0x8 -_081327F4: .4byte gUnknown_203B10C + 10 -_081327F8: .4byte gUnknown_3005E70 - thumb_func_end sub_8132780 - - thumb_func_start sub_81327FC -sub_81327FC: @ 81327FC - 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, _08132860 @ =gTasks+0x8 - adds r4, r0 - ldr r0, _08132864 @ =gUnknown_203B118 - ldr r0, [r0] - adds r0, 0x7 - bl sub_8133664 - movs r0, 0x2 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0x2 - bl ClearWindowTilemap - movs r0, 0 - bl PutWindowTilemap - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8131F90 - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x4 - bl PutWindowTilemap - movs r0, 0x5 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - adds r0, r5, 0 - bl sub_81323E4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08132860: .4byte gTasks+0x8 -_08132864: .4byte gUnknown_203B118 - thumb_func_end sub_81327FC - - thumb_func_start sub_8132868 -sub_8132868: @ 8132868 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _081328A0 @ =gTasks+0x8 - adds r0, r1 - ldrh r1, [r0, 0x2] - movs r0, 0x4 - bl sub_809A798 - lsls r0, 16 - lsrs r0, 16 - bl itemid_is_unique - lsls r0, 24 - cmp r0, 0 - bne _081328AC - ldr r0, _081328A4 @ =gUnknown_203B118 - ldr r1, [r0] - ldr r0, _081328A8 @ =c2_8123744 - str r0, [r1] - adds r0, r4, 0 - bl sub_8132230 - b _081328B2 - .align 2, 0 -_081328A0: .4byte gTasks+0x8 -_081328A4: .4byte gUnknown_203B118 -_081328A8: .4byte c2_8123744 -_081328AC: - adds r0, r4, 0 - bl sub_8132714 -_081328B2: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8132868 - - thumb_func_start sub_81328B8 -sub_81328B8: @ 81328B8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _081328F0 @ =gTasks+0x8 - adds r0, r1 - ldrh r1, [r0, 0x2] - movs r0, 0x4 - bl sub_809A798 - lsls r0, 16 - lsrs r0, 16 - bl itemid_is_unique - lsls r0, 24 - cmp r0, 0 - bne _081328FC - ldr r0, _081328F4 @ =gUnknown_203B118 - ldr r1, [r0] - ldr r0, _081328F8 @ =sub_808CE60 - str r0, [r1] - adds r0, r4, 0 - bl sub_8132230 - b _08132902 - .align 2, 0 -_081328F0: .4byte gTasks+0x8 -_081328F4: .4byte gUnknown_203B118 -_081328F8: .4byte sub_808CE60 -_081328FC: - adds r0, r4, 0 - bl sub_8132714 -_08132902: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81328B8 - - thumb_func_start sub_8132908 -sub_8132908: @ 8132908 - 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, _08132950 @ =gTasks+0x8 - adds r4, r0, r1 - ldr r6, _08132954 @ =gSpecialVar_ItemId - ldrh r0, [r6] - bl itemid_get_market_price - lsls r0, 16 - cmp r0, 0 - bne _08132968 - ldrh r0, [r6] - ldr r1, _08132958 @ =gStringVar1 - bl CopyItemName - ldr r4, _0813295C @ =gStringVar4 - ldr r1, _08132960 @ =gUnknown_84168F1 - adds r0, r4, 0 - bl StringExpandPlaceholders - bl sub_80BF8E4 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08132964 @ =sub_8132780 - adds r0, r5, 0 - adds r2, r4, 0 - bl sub_813337C - b _081329AE - .align 2, 0 -_08132950: .4byte gTasks+0x8 -_08132954: .4byte gSpecialVar_ItemId -_08132958: .4byte gStringVar1 -_0813295C: .4byte gStringVar4 -_08132960: .4byte gUnknown_84168F1 -_08132964: .4byte sub_8132780 -_08132968: - movs r0, 0x1 - strh r0, [r4, 0x10] - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _08132980 - bl sub_81335E0 - adds r0, r5, 0 - bl sub_81329C4 - b _081329AE -_08132980: - cmp r0, 0x63 - ble _08132988 - movs r0, 0x63 - strh r0, [r4, 0x4] -_08132988: - ldrh r0, [r6] - ldr r1, _081329B4 @ =gStringVar1 - bl CopyItemName - ldr r4, _081329B8 @ =gStringVar4 - ldr r1, _081329BC @ =gUnknown_8416911 - adds r0, r4, 0 - bl StringExpandPlaceholders - bl sub_80BF8E4 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _081329C0 @ =sub_8132AAC - adds r0, r7, 0 - adds r2, r4, 0 - bl sub_813337C -_081329AE: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081329B4: .4byte gStringVar1 -_081329B8: .4byte gStringVar4 -_081329BC: .4byte gUnknown_8416911 -_081329C0: .4byte sub_8132AAC - thumb_func_end sub_8132908 - - thumb_func_start sub_81329C4 -sub_81329C4: @ 81329C4 - 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, _08132A20 @ =gTasks+0x8 - adds r4, r0 - ldr r6, _08132A24 @ =gStringVar3 - ldrh r1, [r4, 0x2] - movs r0, 0x4 - bl sub_809A798 - 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, _08132A28 @ =gStringVar4 - ldr r1, _08132A2C @ =gUnknown_8416936 - adds r0, r4, 0 - bl StringExpandPlaceholders - bl sub_80BF8E4 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08132A30 @ =sub_8132A34 - adds r0, r5, 0 - adds r2, r4, 0 - bl sub_813337C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08132A20: .4byte gTasks+0x8 -_08132A24: .4byte gStringVar3 -_08132A28: .4byte gStringVar4 -_08132A2C: .4byte gUnknown_8416936 -_08132A30: .4byte sub_8132A34 - thumb_func_end sub_81329C4 - - thumb_func_start sub_8132A34 -sub_8132A34: @ 8132A34 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08132A44 @ =gUnknown_8463170 - bl sub_8133604 - pop {r0} - bx r0 - .align 2, 0 -_08132A44: .4byte gUnknown_8463170 - thumb_func_end sub_8132A34 - - thumb_func_start sub_8132A48 -sub_8132A48: @ 8132A48 - 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, _08132AA8 @ =gTasks+0x8 - adds r4, r0 - movs r0, 0x8 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0x6 - movs r1, 0 - bl sub_810F260 - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x3 - bl PutWindowTilemap - movs r0, 0x4 - bl PutWindowTilemap - movs r0, 0x5 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - ldrb r0, [r4] - movs r1, 0x1 - bl sub_8131F90 - adds r0, r5, 0 - bl sub_81323E4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08132AA8: .4byte gTasks+0x8 - thumb_func_end sub_8132A48 - - thumb_func_start sub_8132AAC -sub_8132AAC: @ 8132AAC - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r6, _08132B48 @ =gTasks+0x8 - adds r0, r4, r6 - mov r8, r0 - movs r0, 0x7 - bl sub_8133354 - ldr r0, _08132B4C @ =gStringVar1 - movs r1, 0x1 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r5, _08132B50 @ =gStringVar4 - ldr r1, _08132B54 @ =gUnknown_84162B9 - adds r0, r5, 0 - bl StringExpandPlaceholders - movs r0, 0xA - str r0, [sp] - movs r1, 0x1 - str r1, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r1, [sp, 0x10] - movs r0, 0x7 - movs r1, 0 - adds r2, r5, 0 - movs r3, 0x4 - bl sub_81332EC - mov r2, r8 - ldrh r1, [r2, 0x2] - movs r0, 0x4 - bl sub_809A798 - lsls r0, 16 - lsrs r0, 16 - bl itemid_get_market_price - lsls r0, 16 - lsrs r0, 17 - mov r3, r8 - movs r2, 0x10 - ldrsh r1, [r3, r2] - muls r1, r0 - movs r0, 0x1 - bl sub_8132B5C - bl sub_81335E0 - bl sub_8132054 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - subs r6, 0x8 - adds r4, r6 - ldr r0, _08132B58 @ =sub_8132BC8 - str r0, [r4] - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08132B48: .4byte gTasks+0x8 -_08132B4C: .4byte gStringVar1 -_08132B50: .4byte gStringVar4 -_08132B54: .4byte gUnknown_84162B9 -_08132B58: .4byte sub_8132BC8 - thumb_func_end sub_8132AAC - - thumb_func_start sub_8132B5C -sub_8132B5C: @ 8132B5C - push {r4-r6,lr} - sub sp, 0x14 - adds r4, r0, 0 - adds r6, r1, 0 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0x7 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r0, _08132BBC @ =gStringVar1 - lsls r4, 16 - asrs r4, 16 - adds r1, r4, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r5, _08132BC0 @ =gStringVar4 - ldr r1, _08132BC4 @ =gUnknown_84162B9 - adds r0, r5, 0 - bl StringExpandPlaceholders - movs r0, 0xA - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r4, 0 - str r4, [sp, 0x8] - str r4, [sp, 0xC] - str r0, [sp, 0x10] - movs r0, 0x7 - movs r1, 0 - adds r2, r5, 0 - movs r3, 0x4 - bl sub_81332EC - str r4, [sp] - movs r0, 0x7 - movs r1, 0x38 - movs r2, 0xA - adds r3, r6, 0 - bl PrintMoneyAmount - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08132BBC: .4byte gStringVar1 -_08132BC0: .4byte gStringVar4 -_08132BC4: .4byte gUnknown_84162B9 - thumb_func_end sub_8132B5C - - thumb_func_start sub_8132BC8 -sub_8132BC8: @ 8132BC8 - 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, _08132C14 @ =gTasks+0x8 - adds r5, r0, r1 - adds r0, r5, 0 - adds r0, 0x10 - ldrh r1, [r5, 0x4] - bl sub_80BF848 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08132C18 - movs r0, 0x10 - ldrsh r4, [r5, r0] - ldrh r1, [r5, 0x2] - movs r0, 0x4 - bl sub_809A798 - 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 r1, r0 - adds r0, r4, 0 - bl sub_8132B5C - b _08132CA6 - .align 2, 0 -_08132C14: .4byte gTasks+0x8 -_08132C18: - ldr r0, _08132C4C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08132C50 - movs r0, 0x5 - bl PlaySE - movs r0, 0x7 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - bl sub_813208C - adds r0, r4, 0 - bl sub_81329C4 - b _08132CA6 - .align 2, 0 -_08132C4C: .4byte gMain -_08132C50: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08132CA6 - movs r0, 0x5 - bl PlaySE - movs r0, 0x7 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0x8 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0x6 - movs r1, 0 - bl sub_810F260 - movs r0, 0x3 - bl PutWindowTilemap - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - bl sub_813208C - ldrb r0, [r5] - movs r1, 0x1 - bl sub_8131F90 - adds r0, r6, 0 - bl sub_81323E4 -_08132CA6: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8132BC8 - - thumb_func_start sub_8132CAC -sub_8132CAC: @ 8132CAC - 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, _08132D18 @ =gTasks+0x8 - adds r4, r0 - movs r0, 0 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, _08132D1C @ =gSpecialVar_ItemId - ldrh r0, [r0] - ldr r1, _08132D20 @ =gStringVar1 - bl CopyItemName - ldr r6, _08132D24 @ =gStringVar3 - ldrh r1, [r4, 0x2] - movs r0, 0x4 - bl sub_809A798 - 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, _08132D28 @ =gStringVar4 - ldr r1, _08132D2C @ =gUnknown_8416959 - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r3, _08132D30 @ =sub_8132D34 - adds r0, r5, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl sub_813337C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08132D18: .4byte gTasks+0x8 -_08132D1C: .4byte gSpecialVar_ItemId -_08132D20: .4byte gStringVar1 -_08132D24: .4byte gStringVar3 -_08132D28: .4byte gStringVar4 -_08132D2C: .4byte gUnknown_8416959 -_08132D30: .4byte sub_8132D34 - thumb_func_end sub_8132CAC - - thumb_func_start sub_8132D34 -sub_8132D34: @ 8132D34 - 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, _08132DF4 @ =gTasks+0x8 - mov r9, r0 - adds r1, r6, 0 - add r1, r9 - mov r8, r1 - movs r0, 0xF8 - bl PlaySE - ldr r5, _08132DF8 @ =gSpecialVar_ItemId - ldrh r0, [r5] - mov r2, r8 - ldrh r1, [r2, 0x10] - bl RemoveBagItem - ldr r7, _08132DFC @ =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, _08132E00 @ =gUnknown_203B10C + 10 - subs r2, r4, 0x2 - adds r1, r4, 0 - bl sub_810713C - bl sub_81320BC - bl sub_8132120 - bl sub_8131C50 - ldr r0, _08132E04 @ =gUnknown_3005E70 - 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_8131F90 - ldr r0, [r7] - add r0, r10 - bl GetMoney - adds r1, r0, 0 - movs r0, 0x8 - movs r2, 0 - bl PrintMoneyAmountInMoneyBox - movs r2, 0x8 - negs r2, r2 - add r9, r2 - add r6, r9 - ldr r0, _08132E08 @ =sub_8132E0C - 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 -_08132DF4: .4byte gTasks+0x8 -_08132DF8: .4byte gSpecialVar_ItemId -_08132DFC: .4byte gSaveBlock1Ptr -_08132E00: .4byte gUnknown_203B10C + 10 -_08132E04: .4byte gUnknown_3005E70 -_08132E08: .4byte sub_8132E0C - thumb_func_end sub_8132D34 - - thumb_func_start sub_8132E0C -sub_8132E0C: @ 8132E0C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08132E60 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08132E26 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08132E5A -_08132E26: - movs r0, 0x5 - bl PlaySE - movs r0, 0x8 - movs r1, 0 - bl sub_810F4D8 - movs r0, 0x6 - movs r1, 0 - bl sub_810F260 - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x3 - bl PutWindowTilemap - movs r0, 0x4 - bl PutWindowTilemap - movs r0, 0x5 - bl PutWindowTilemap - adds r0, r4, 0 - bl sub_8132780 -_08132E5A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08132E60: .4byte gMain - thumb_func_end sub_8132E0C - - thumb_func_start sub_8132E64 -sub_8132E64: @ 8132E64 - push {r4-r6,lr} - mov r6, r8 - push {r6} - ldr r4, _08132EFC @ =gUnknown_203B11C - movs r0, 0xB2 - lsls r0, 1 - bl AllocZeroed - str r0, [r4] - ldr r5, _08132F00 @ =gSaveBlock1Ptr - ldr r1, [r5] - ldr r2, _08132F04 @ =0x00000464 - mov r8, r2 - add r1, r8 - movs r2, 0xE8 - bl memcpy - ldr r0, [r4] - adds r0, 0xE8 - ldr r1, [r5] - movs r6, 0xEE - lsls r6, 2 - adds r1, r6 - movs r2, 0x78 - bl memcpy - ldr r3, [r4] - ldr r2, _08132F08 @ =gUnknown_203B10C - ldrh r1, [r2, 0x8] - movs r4, 0xB0 - lsls r4, 1 - adds r0, r3, r4 - strh r1, [r0] - ldrh r0, [r2, 0xA] - movs r2, 0xB1 - lsls r2, 1 - adds r1, r3, r2 - strh r0, [r1] - ldr r0, [r5] - add r0, r8 - movs r1, 0x3A - bl ClearItemSlots - ldr r0, [r5] - adds r0, r6 - movs r1, 0x1E - bl ClearItemSlots - bl sub_81320AC - ldr r0, _08132F0C @ =0x00000121 - movs r1, 0x1 - bl AddBagItem - ldr r0, _08132F10 @ =0x00000123 - movs r1, 0x1 - bl AddBagItem - ldr r0, _08132F14 @ =0x00000129 - movs r1, 0x1 - bl AddBagItem - ldr r0, _08132F18 @ =0x00000143 - movs r1, 0x1 - bl AddBagItem - ldr r1, _08132F1C @ =sub_815ABFC - movs r0, 0x4 - movs r2, 0 - bl sub_81317F8 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08132EFC: .4byte gUnknown_203B11C -_08132F00: .4byte gSaveBlock1Ptr -_08132F04: .4byte 0x00000464 -_08132F08: .4byte gUnknown_203B10C -_08132F0C: .4byte 0x00000121 -_08132F10: .4byte 0x00000123 -_08132F14: .4byte 0x00000129 -_08132F18: .4byte 0x00000143 -_08132F1C: .4byte sub_815ABFC - thumb_func_end sub_8132E64 - - thumb_func_start sub_8132F20 -sub_8132F20: @ 8132F20 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r3, r1, 3 - ldr r4, _08132F54 @ =gTasks+0x8 - adds r2, r3, r4 - ldr r0, _08132F58 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _08132F4E - strh r0, [r2, 0x10] - strh r0, [r2, 0x12] - adds r0, r4, 0 - subs r0, 0x8 - adds r0, r3, r0 - ldr r1, _08132F5C @ =sub_8132F60 - str r1, [r0] -_08132F4E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08132F54: .4byte gTasks+0x8 -_08132F58: .4byte gPaletteFade -_08132F5C: .4byte sub_8132F60 - thumb_func_end sub_8132F20 - thumb_func_start sub_8132F60 sub_8132F60: @ 8132F60 push {r4-r7,lr} diff --git a/include/menu.h b/include/menu.h index f26c7efde..4a5bd8a2c 100644 --- a/include/menu.h +++ b/include/menu.h @@ -48,5 +48,7 @@ void sub_810FF60(const struct WindowTemplate *, u8, u8, u8, u16, u8, u8); void StartBlendTask(u8 eva_start, u8 evb_start, u8 eva_end, u8 evb_end, u8 ev_step, u8 priority); bool8 IsBlendTaskActive(void); +void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineHeight, u8 itemCount, const struct MenuAction *strs, const u8 *a8); +void sub_810F260(u8 windowId, u8 a1); #endif // GUARD_MENU_H diff --git a/include/menu_helpers.h b/include/menu_helpers.h index 7bfd605c4..aba8b1c0d 100644 --- a/include/menu_helpers.h +++ b/include/menu_helpers.h @@ -22,5 +22,7 @@ bool8 sub_80BF72C(void); bool8 sub_80BF708(void); void sub_80BF768(void); void sub_80BF7C8(void); +u8 sub_80BF8E4(void); +u8 sub_80BF848(s16 * a0, u16 a1); #endif //GUARD_MENU_HELPERS_H diff --git a/include/money.h b/include/money.h index fa63e321c..25db1b157 100644 --- a/include/money.h +++ b/include/money.h @@ -11,12 +11,13 @@ void RemoveMoney(u32* moneyPtr, u32 toSub); bool8 IsEnoughForCostInVar0x8005(void); void SubtractMoneyFromVar0x8005(void); void PrintMoneyAmountInMoneyBoxInMoneyBox(u8 windowId, int amount, u8 speed); -void PrintMoneyAmountInMoneyBox(u8 windowId, u8 x, u8 y, int amount, u8 speed); +void PrintMoneyAmountInMoneyBox(u8 windowId, int amount, u8 speed); void PrintMoneyAmountInMoneyBoxInMoneyBoxWithBorder(u8 windowId, u16 tileStart, u8 pallete, int amount); void ChangeAmountInMoneyBox(int amount); void DrawMoneyBox(int amount, u8 x, u8 y); void HideMoneyBox(void); void AddMoneyLabelObject(u16 x, u16 y); void RemoveMoneyLabelObject(void); +void PrintMoneyAmount(u8 windowId, u8 x, u8 y, int amount, u8 speed); #endif // GUARD_MONEY_H diff --git a/include/party_menu.h b/include/party_menu.h index 2e83c1496..5f7a3a68e 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -12,10 +12,16 @@ enum { AILMENT_BRN }; +extern void (*gUnknown_3005E98)(u8 taskId, TaskFunc func); + bool8 MonKnowsMove(struct Pokemon *, u16); void sub_81B58A8(void); void DoWallyTutorialBagMenu(void); u8 pokemon_ailments_get_primary(u32 status); u16 ItemIdToBattleMoveId(u16 itemId); +void sub_8125B40(u8 taskId, TaskFunc func); +void sub_8124C8C(void); +void sub_8126EDC(void); +void c2_8123744(void); #endif // GUARD_PARTY_MENU_H diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 897c5a42e..f2fbe85a7 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -13,5 +13,6 @@ void CompactPartySlots(void); u32 GetBoxMonDataFromAnyBox(u8 boxId, u8 monPosition, u32 request); void sub_808BCB4(u8 boxId, u8 monPosition); u8 * GetBoxNamePtr(u8 boxId); +void sub_808CE60(void); #endif // GUARD_POKEMON_STORAGE_SYSTEM_H diff --git a/include/shop.h b/include/shop.h index 1046a590a..05f5160e6 100644 --- a/include/shop.h +++ b/include/shop.h @@ -8,5 +8,6 @@ extern EWRAM_DATA struct ItemSlot gUnknown_02039F80[3]; void CreatePokemartMenu(const u16 *); void CreateDecorationShop1Menu(const u16 *); void CreateDecorationShop2Menu(const u16 *); +void sub_809C09C(u16, u16, u8); #endif // GUARD_SHOP_H diff --git a/include/teachy_tv.h b/include/teachy_tv.h new file mode 100644 index 000000000..3eeaa3a98 --- /dev/null +++ b/include/teachy_tv.h @@ -0,0 +1,6 @@ +#ifndef GUARD_TEACHY_TV_H +#define GUARD_TEACHY_TV_H + +void sub_815ABFC(void); + +#endif //GUARD_TEACHY_TV_H diff --git a/src/tm_case.c b/src/tm_case.c index bc91de20f..b63260aaf 100644 --- a/src/tm_case.c +++ b/src/tm_case.c @@ -11,6 +11,12 @@ #include "new_menu_helpers.h" #include "list_menu.h" #include "item.h" +#include "item_menu.h" +#include "link.h" +#include "money.h" +#include "shop.h" +#include "teachy_tv.h" +#include "pokemon_storage_system.h" #include "string_util.h" #include "party_menu.h" #include "data2.h" @@ -39,7 +45,8 @@ struct UnkStruct_203B118 u8 unk_07; u8 unk_08; u16 unk_0a; - u8 filler_0c[6]; + const u8 * unk_0c; + u8 unk_10; s16 unk_12; u8 filler_14[8]; }; @@ -78,34 +85,70 @@ void sub_8132120(void); void sub_8132170(void); void sub_813226C(u8 taskId); void sub_81322D4(u8 taskId); +void sub_8132568(u8 taskId); +void sub_81326F8(u8 taskId); +void sub_8132714(u8 taskId); +void sub_8132758(u8 taskId); +void sub_8132780(u8 taskId); +void sub_81329C4(u8 taskId); +void sub_8132A34(u8 taskId); +void sub_8132AAC(u8 taskId); +void sub_8132B5C(s16 quantity, s32 value); +void sub_8132BC8(u8 taskId); +void sub_8132D34(u8 taskId); +void sub_8132E0C(u8 taskId); void sub_8132F20(u8 taskId); +void sub_8132F60(u8 taskId); void sub_8133244(void); void sub_81332EC(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx); +void sub_8133354(u8 windowId); +void sub_8133368(u8 windowId); +void sub_813337C(u8 taskId, u8 windowId, const u8 * str, TaskFunc func); void sub_81333C4(void); void sub_8133404(void); void sub_8133444(u16 itemId); void sub_81335B0(u8 windowId, u8 x, u8 y); +void sub_81335E0(void); +void sub_8133604(u8 taskId, const u8 *const *ptrs); +u8 sub_8133630(u8 * a0, u8 a1); +void sub_8133664(u8 * a0); u8 sub_813368C(u16 itemId); void sub_81337E4(u8 a0, u16 itemId); void sub_81338A8(void); -extern const struct BgTemplate gUnknown_8463134[3]; -extern const u32 gUnknown_8E845D8[]; -extern const u32 gUnknown_8E84A24[]; -extern const u32 gUnknown_8E84B70[]; -extern const u32 gUnknown_8E84CB0[]; -extern const u32 gUnknown_8E84D20[]; -extern const struct CompressedSpriteSheet gUnknown_8463218; -extern const u8 gUnknown_8463178[]; -extern const u8 gUnknown_846317C[]; - +// event scripts extern const u8 gUnknown_8416226[]; extern const u8 gFameCheckerText_ListMenuCursor[]; extern const u8 gUnknown_84162B9[]; +extern const u8 gUnknown_8416301[]; +extern const u8 gUnknown_841632A[]; +extern const u8 gUnknown_841635E[]; extern const u8 gUnknown_84166DB[]; extern const u8 gUnknown_84166E1[]; extern const u8 gUnknown_84166FF[]; extern const u8 gUnknown_8416703[]; +extern const u8 gUnknown_84168F1[]; +extern const u8 gUnknown_8416911[]; +extern const u8 gUnknown_8416936[]; +extern const u8 gUnknown_8416959[]; + +// my rodata +extern const struct BgTemplate gUnknown_8463134[3]; +extern void (*const gUnknown_8463140[])(u8 taskId); +extern const struct MenuAction gUnknown_8463150[]; +extern const u8 gUnknown_8463168[]; +extern const u8 gUnknown_846316B[]; +extern const u8 *const gUnknown_8463170[]; +extern const u8 gUnknown_8463178[]; +extern const u8 gUnknown_846317C[]; +extern const struct CompressedSpriteSheet gUnknown_8463218; + +// graphics +extern const u32 gUnknown_8E845D8[]; +extern const u32 gUnknown_8E84A24[]; +extern const u32 gUnknown_8E84B70[]; +extern const u32 gUnknown_8E84CB0[]; +extern const u32 gUnknown_8E84D20[]; void sub_81317F8(u8 a0, void (* a1)(void), u8 a2) { @@ -565,3 +608,438 @@ void sub_813226C(u8 taskId) DestroyTask(taskId); } } + +void sub_81322D4(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + s32 input; + + if (!gPaletteFade.active) + { + if (sub_80BF72C() != TRUE) + { + input = ListMenuHandleInput(data[0]); + get_coro_args_x18_x1A(data[0], &gUnknown_203B10C.unk_0a, &gUnknown_203B10C.unk_08); + if (JOY_NEW(SELECT_BUTTON) && gUnknown_203B10C.unk_05 == 1) + { + PlaySE(SE_SELECT); + gSpecialVar_ItemId = ITEM_NONE; + sub_8132230(taskId); + } + else + { + switch (input) + { + case -1: + break; + case -2: + PlaySE(SE_SELECT); + gSpecialVar_ItemId = 0; + sub_8132230(taskId); + break; + default: + PlaySE(SE_SELECT); + sub_8131F64(1); + sub_813208C(); + sub_8131F90(data[0], 2); + data[1] = input; + data[2] = sub_809A7B4(POCKET_TM_CASE, input); + gSpecialVar_ItemId = sub_809A798(POCKET_TM_CASE, input); + gTasks[taskId].func = gUnknown_8463140[gUnknown_203B10C.unk_04]; + break; + } + } + } + } +} + +void sub_81323E4(u8 taskId) +{ + sub_8131F64(0); + sub_8132018(); + gTasks[taskId].func = sub_81322D4; +} + +void sub_8132414(u8 taskId) +{ + u8 * strbuf; + sub_8133368(2); + if (!sub_80BF708() && InUnionRoom() != TRUE) + { + sub_8133630(&gUnknown_203B118->unk_07, 0); + gUnknown_203B118->unk_0c = gUnknown_8463168; + gUnknown_203B118->unk_10 = 3; + } + else + { + sub_8133630(&gUnknown_203B118->unk_07, 1); + gUnknown_203B118->unk_0c = gUnknown_846316B; + gUnknown_203B118->unk_10 = 2; + } + AddItemMenuActionTextPrinters(gUnknown_203B118->unk_07, 2, GetMenuCursorDimensionByFont(2, 0), 2, 0, GetFontAttribute(2, 1) + 2, gUnknown_203B118->unk_10, gUnknown_8463150, gUnknown_203B118->unk_0c); + ProgramAndPlaceMenuCursorOnWindow(gUnknown_203B118->unk_07, 2, 0, 2, GetFontAttribute(2, 1) + 2, gUnknown_203B118->unk_10, 0); + strbuf = Alloc(256); + sub_8131D48(strbuf, gSpecialVar_ItemId); + StringAppend(strbuf, gUnknown_8416301); + sub_81332EC(2, 2, strbuf, 0, 2, 1, 0, 0, 1); + Free(strbuf); + if (itemid_is_unique(gSpecialVar_ItemId)) + { + sub_81335B0(2, 0, 2); + CopyWindowToVram(2, 2); + } + schedule_bg_copy_tilemap_to_vram(0); + schedule_bg_copy_tilemap_to_vram(1); + gTasks[taskId].func = sub_8132568; +} + +void sub_8132568(u8 taskId) +{ + s8 input; + + if (sub_80BF72C() != TRUE) + { + input = ProcessMenuInputNoWrapAround(); + switch (input) + { + case -1: + PlaySE(SE_SELECT); + gUnknown_8463150[gUnknown_203B118->unk_0c[gUnknown_203B118->unk_10 - 1]].func.void_u8(taskId); + break; + case -2: + break; + default: + PlaySE(SE_SELECT); + gUnknown_8463150[gUnknown_203B118->unk_0c[input]].func.void_u8(taskId); + break; + } + } +} + +void sub_81325F0(u8 taskId) +{ + sub_8133664(&gUnknown_203B118->unk_07); + sub_810F4D8(2, 0); + ClearWindowTilemap(2); + PutWindowTilemap(0); + schedule_bg_copy_tilemap_to_vram(0); + schedule_bg_copy_tilemap_to_vram(1); + if (CalculatePlayerPartyCount() == 0) + { + sub_81326F8(taskId); + } + else + { + gUnknown_3005E98 = sub_8125B40; + gUnknown_203B118->unk_00 = sub_8124C8C; + sub_8132230(taskId); + } +} + +void sub_813265C(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + u16 itemId = sub_809A798(POCKET_TM_CASE, data[1]); + sub_8133664(&gUnknown_203B118->unk_07); + sub_810F4D8(2, 0); + ClearWindowTilemap(2); + PutWindowTilemap(1); + PutWindowTilemap(4); + PutWindowTilemap(5); + schedule_bg_copy_tilemap_to_vram(0); + schedule_bg_copy_tilemap_to_vram(1); + if (!itemid_is_unique(itemId)) + { + if (CalculatePlayerPartyCount() == 0) + { + sub_81326F8(taskId); + } + else + { + gUnknown_203B118->unk_00 = sub_8126EDC; + sub_8132230(taskId); + } + } + else + { + sub_8132714(taskId); + } +} + +void sub_81326F8(u8 taskId) +{ + sub_813337C(taskId, 2, gUnknown_841632A, sub_8132758); +} + +void sub_8132714(u8 taskId) +{ + CopyItemName(gSpecialVar_ItemId, gStringVar1); + StringExpandPlaceholders(gStringVar4, gUnknown_841635E); + sub_813337C(taskId, 2, gStringVar4, sub_8132758); +} + +void sub_8132758(u8 taskId) +{ + if (JOY_NEW(A_BUTTON)) + { + PlaySE(SE_SELECT); + sub_8132780(taskId); + } +} + +void sub_8132780(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + sub_810713C(data[0], &gUnknown_203B10C.unk_0a, &gUnknown_203B10C.unk_08); + data[0] = ListMenuInit(&gUnknown_3005E70, gUnknown_203B10C.unk_0a, gUnknown_203B10C.unk_08); + sub_8131F90(data[0], 1); + sub_810F260(6, 0); + ClearWindowTilemap(6); + PutWindowTilemap(1); + PutWindowTilemap(4); + PutWindowTilemap(5); + schedule_bg_copy_tilemap_to_vram(0); + schedule_bg_copy_tilemap_to_vram(1); + sub_81323E4(taskId); +} + +void sub_81327FC(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + sub_8133664(&gUnknown_203B118->unk_07); + sub_810F4D8(2, 0); + ClearWindowTilemap(2); + PutWindowTilemap(0); + sub_8131F90(data[0], 1); + PutWindowTilemap(1); + PutWindowTilemap(4); + PutWindowTilemap(5); + schedule_bg_copy_tilemap_to_vram(0); + schedule_bg_copy_tilemap_to_vram(1); + sub_81323E4(taskId); +} + +void sub_8132868(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (!itemid_is_unique(sub_809A798(POCKET_TM_CASE, data[1]))) + { + gUnknown_203B118->unk_00 = c2_8123744; + sub_8132230(taskId); + } + else + { + sub_8132714(taskId); + } +} + +void sub_81328B8(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (!itemid_is_unique(sub_809A798(POCKET_TM_CASE, data[1]))) + { + gUnknown_203B118->unk_00 = sub_808CE60; + sub_8132230(taskId); + } + else + { + sub_8132714(taskId); + } +} + +void sub_8132908(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (itemid_get_market_price(gSpecialVar_ItemId) == 0) + { + CopyItemName(gSpecialVar_ItemId, gStringVar1); + StringExpandPlaceholders(gStringVar4, gUnknown_84168F1); + sub_813337C(taskId, sub_80BF8E4(), gStringVar4, sub_8132780); + } + else + { + data[8] = 1; + if (data[2] == 1) + { + sub_81335E0(); + sub_81329C4(taskId); + } + else + { + if (data[2] > 99) + data[2] = 99; + CopyItemName(gSpecialVar_ItemId, gStringVar1); + StringExpandPlaceholders(gStringVar4, gUnknown_8416911); + sub_813337C(taskId, sub_80BF8E4(), gStringVar4, sub_8132AAC); + } + } +} + +void sub_81329C4(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(sub_809A798(POCKET_TM_CASE, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6); + StringExpandPlaceholders(gStringVar4, gUnknown_8416936); + sub_813337C(taskId, sub_80BF8E4(), gStringVar4, sub_8132A34); +} + +void sub_8132A34(u8 taskId) +{ + sub_8133604(taskId, gUnknown_8463170); +} + +void sub_8132A48(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + sub_810F4D8(8, 0); + sub_810F260(6, 0); + PutWindowTilemap(0); + PutWindowTilemap(1); + PutWindowTilemap(3); + PutWindowTilemap(4); + PutWindowTilemap(5); + schedule_bg_copy_tilemap_to_vram(0); + schedule_bg_copy_tilemap_to_vram(1); + sub_8131F90(data[0], 1); + sub_81323E4(taskId); +} + +void sub_8132AAC(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + sub_8133354(7); + ConvertIntToDecimalStringN(gStringVar1, 1, STR_CONV_MODE_LEADING_ZEROS, 2); + StringExpandPlaceholders(gStringVar4, gUnknown_84162B9); + sub_81332EC(7, 0, gStringVar4, 4, 10, 1, 0, 0, 1); + sub_8132B5C(1, itemid_get_market_price(sub_809A798(POCKET_TM_CASE, data[1])) / 2 * data[8]); + sub_81335E0(); + sub_8132054(); + schedule_bg_copy_tilemap_to_vram(0); + schedule_bg_copy_tilemap_to_vram(1); + gTasks[taskId].func = sub_8132BC8; +} + +void sub_8132B5C(s16 quantity, s32 amount) +{ + FillWindowPixelBuffer(7, 0x11); + ConvertIntToDecimalStringN(gStringVar1, quantity, STR_CONV_MODE_LEADING_ZEROS, 2); + StringExpandPlaceholders(gStringVar4, gUnknown_84162B9); + sub_81332EC(7, 0, gStringVar4, 4, 10, 1, 0, 0, 1); + PrintMoneyAmount(7, 0x38, 0x0A, amount, 0); +} + +void sub_8132BC8(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (sub_80BF848(&data[8], data[2]) == 1) + { + sub_8132B5C(data[8], itemid_get_market_price(sub_809A798(POCKET_TM_CASE, data[1])) / 2 * data[8]); + } + else if (JOY_NEW(A_BUTTON)) + { + PlaySE(SE_SELECT); + sub_810F4D8(7, 0); + schedule_bg_copy_tilemap_to_vram(0); + schedule_bg_copy_tilemap_to_vram(1); + sub_813208C(); + sub_81329C4(taskId); + } + else if (JOY_NEW(B_BUTTON)) + { + PlaySE(SE_SELECT); + sub_810F4D8(7, 0); + sub_810F4D8(8, 0); + sub_810F260(6, 0); + PutWindowTilemap(3); + PutWindowTilemap(0); + PutWindowTilemap(1); + schedule_bg_copy_tilemap_to_vram(0); + schedule_bg_copy_tilemap_to_vram(1); + sub_813208C(); + sub_8131F90(data[0], 1); + sub_81323E4(taskId); + } +} + +void sub_8132CAC(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + PutWindowTilemap(0); + schedule_bg_copy_tilemap_to_vram(0); + CopyItemName(gSpecialVar_ItemId, gStringVar1); + ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(sub_809A798(POCKET_TM_CASE, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6); + StringExpandPlaceholders(gStringVar4, gUnknown_8416959); + sub_813337C(taskId, 2, gStringVar4, sub_8132D34); +} + +void sub_8132D34(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + PlaySE(0xF8); + RemoveBagItem(gSpecialVar_ItemId, data[8]); + AddMoney(&gSaveBlock1Ptr->money, itemid_get_market_price(gSpecialVar_ItemId) / 2 * data[8]); + sub_809C09C(gSpecialVar_ItemId, data[8], 2); + sub_810713C(data[0], &gUnknown_203B10C.unk_0a, &gUnknown_203B10C.unk_08); + sub_81320BC(); + sub_8132120(); + sub_8131C50(); + data[0] = ListMenuInit(&gUnknown_3005E70, gUnknown_203B10C.unk_0a, gUnknown_203B10C.unk_08); + sub_8131F90(data[0], 2); + PrintMoneyAmountInMoneyBox(8, GetMoney(&gSaveBlock1Ptr->money), 0); + gTasks[taskId].func = sub_8132E0C; +} + +void sub_8132E0C(u8 taskId) +{ + if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON)) + { + PlaySE(SE_SELECT); + sub_810F4D8(8, 0); + sub_810F260(6, 0); + PutWindowTilemap(1); + PutWindowTilemap(3); + PutWindowTilemap(4); + PutWindowTilemap(5); + sub_8132780(taskId); + } +} + +void sub_8132E64(void) +{ + gUnknown_203B11C = AllocZeroed(sizeof(*gUnknown_203B11C)); + memcpy(gUnknown_203B11C->bagPocket_TMHM, gSaveBlock1Ptr->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM)); + memcpy(gUnknown_203B11C->bagPocket_KeyItems, gSaveBlock1Ptr->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems)); + gUnknown_203B11C->unk_160 = gUnknown_203B10C.unk_08; + gUnknown_203B11C->unk_162 = gUnknown_203B10C.unk_0a; + ClearItemSlots(gSaveBlock1Ptr->bagPocket_TMHM, NELEMS(gSaveBlock1Ptr->bagPocket_TMHM)); + ClearItemSlots(gSaveBlock1Ptr->bagPocket_KeyItems, NELEMS(gSaveBlock1Ptr->bagPocket_KeyItems)); + sub_81320AC(); + AddBagItem(ITEM_TM01, 1); + AddBagItem(ITEM_TM03, 1); + AddBagItem(ITEM_TM09, 1); + AddBagItem(ITEM_TM35, 1); + sub_81317F8(4, sub_815ABFC, 0); +} + +void sub_8132F20(u8 taskId) +{ + s16 * data = gTasks[taskId].data; + + if (!gPaletteFade.active) + { + data[8] = 0; + data[9] = 0; + gTasks[taskId].func = sub_8132F60; + } +} |