diff options
97 files changed, 3741 insertions, 8367 deletions
diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s index 673c8bfc3..83f9a5700 100644 --- a/asm/field_control_avatar.s +++ b/asm/field_control_avatar.s @@ -1100,11 +1100,11 @@ sub_806D0E4: @ 806D0E4 ldr r0, [r5, 0x8] cmp r0, 0 bne _0806D120 - ldr r0, _0806D11C @ =EventScript_1C555B + ldr r0, _0806D11C @ =Test_EventScript_Sign b _0806D1E6 .align 2, 0 _0806D118: .4byte gMapHeader -_0806D11C: .4byte EventScript_1C555B +_0806D11C: .4byte Test_EventScript_Sign _0806D120: adds r0, r7, 0 adds r1, r6, 0 @@ -1834,11 +1834,11 @@ _0806D704: beq _0806D720 movs r0, 0xD bl IncrementGameStat - ldr r0, _0806D71C @ =EventScript_81BF546 + ldr r0, _0806D71C @ =EventScript_EggHatch bl ScriptContext1_SetupScript b _0806D730 .align 2, 0 -_0806D71C: .4byte EventScript_81BF546 +_0806D71C: .4byte EventScript_EggHatch _0806D720: bl SafariZoneTakeStep lsls r0, 24 @@ -2150,13 +2150,13 @@ _0806D950: ldr r0, [r0, 0x8] cmp r0, 0 bne _0806D958 - ldr r0, _0806D960 @ =EventScript_1C555B + ldr r0, _0806D960 @ =Test_EventScript_Sign _0806D958: pop {r4} pop {r1} bx r1 .align 2, 0 -_0806D960: .4byte EventScript_1C555B +_0806D960: .4byte Test_EventScript_Sign thumb_func_end sub_806D928 thumb_func_start mapheader_run_first_tag2_script_list_match_conditionally diff --git a/asm/item_menu.s b/asm/item_menu.s deleted file mode 100644 index 704d8d5d8..000000000 --- a/asm/item_menu.s +++ /dev/null @@ -1,7021 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start GoToBagMenu -GoToBagMenu: @ 8107DB4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r2, 0 - lsls r0, 24 - lsrs r6, r0, 24 - adds r7, r6, 0 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - bl sub_81081AC - ldr r5, _08107DE4 @ =gUnknown_203AD10 - movs r0, 0x14 - bl Alloc - str r0, [r5] - cmp r0, 0 - bne _08107DE8 - adds r0, r4, 0 - bl SetMainCallback2 - b _08107E9A - .align 2, 0 -_08107DE4: .4byte gUnknown_203AD10 -_08107DE8: - cmp r6, 0xB - beq _08107DF0 - ldr r0, _08107E38 @ =gUnknown_203ACFC - strb r6, [r0, 0x4] -_08107DF0: - cmp r4, 0 - beq _08107DF8 - ldr r0, _08107E38 @ =gUnknown_203ACFC - str r4, [r0] -_08107DF8: - ldr r1, [r5] - movs r0, 0 - str r0, [r1] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r2, [r5] - ldrb r1, [r2, 0x5] - movs r0, 0x31 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x5] - ldr r2, [r5] - ldrb r1, [r2, 0x5] - movs r0, 0x3F - ands r0, r1 - strb r0, [r2, 0x5] - ldr r1, [r5] - movs r0, 0x1 - negs r0, r0 - strb r0, [r1, 0x8] - ldr r1, [r5] - strb r0, [r1, 0x9] - cmp r6, 0x3 - bne _08107E3C - ldr r2, [r5] - ldrb r1, [r2, 0x5] - subs r0, 0xF - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - b _08107E5A - .align 2, 0 -_08107E38: .4byte gUnknown_203ACFC -_08107E3C: - cmp r7, 0x6 - bne _08107E50 - ldr r2, [r5] - ldrb r1, [r2, 0x5] - movs r0, 0x10 - negs r0, r0 - ands r0, r1 - movs r1, 0x2 - orrs r0, r1 - b _08107E5A -_08107E50: - ldr r2, [r5] - ldrb r1, [r2, 0x5] - movs r0, 0x10 - negs r0, r0 - ands r0, r1 -_08107E5A: - strb r0, [r2, 0x5] - movs r1, 0 - ldr r4, _08107EA4 @ =gTextFlags - ldr r5, _08107EA8 @ =gSpecialVar_ItemId - ldr r6, _08107EAC @ =sub_8107F10 - ldr r3, _08107EB0 @ =gUnknown_203AD10 - movs r2, 0 -_08107E68: - ldr r0, [r3] - adds r0, 0x10 - adds r0, r1 - strb r2, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bls _08107E68 - mov r0, r8 - cmp r0, 0x2 - bhi _08107E86 - ldr r0, _08107EB4 @ =gUnknown_203ACFC - mov r1, r8 - strh r1, [r0, 0x6] -_08107E86: - ldrb r0, [r4] - movs r1, 0x5 - negs r1, r1 - ands r1, r0 - strb r1, [r4] - movs r0, 0 - strh r0, [r5] - adds r0, r6, 0 - bl SetMainCallback2 -_08107E9A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08107EA4: .4byte gTextFlags -_08107EA8: .4byte gSpecialVar_ItemId -_08107EAC: .4byte sub_8107F10 -_08107EB0: .4byte gUnknown_203AD10 -_08107EB4: .4byte gUnknown_203ACFC - thumb_func_end GoToBagMenu - - thumb_func_start CB2_BagMenuFromStartMenu -CB2_BagMenuFromStartMenu: @ 8107EB8 - push {lr} - ldr r2, _08107EC8 @ =CB2_ReturnToFieldWithOpenMenu - movs r0, 0 - movs r1, 0x3 - bl GoToBagMenu - pop {r0} - bx r0 - .align 2, 0 -_08107EC8: .4byte CB2_ReturnToFieldWithOpenMenu - thumb_func_end CB2_BagMenuFromStartMenu - - thumb_func_start sub_8107ECC -sub_8107ECC: @ 8107ECC - push {lr} - ldr r2, _08107EDC @ =SetCB2ToReshowScreenAfterMenu2 - movs r0, 0x5 - movs r1, 0x3 - bl GoToBagMenu - pop {r0} - bx r0 - .align 2, 0 -_08107EDC: .4byte SetCB2ToReshowScreenAfterMenu2 - thumb_func_end sub_8107ECC - - thumb_func_start sub_8107EE0 -sub_8107EE0: @ 8107EE0 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl DoScheduledBgTilemapCopiesToVram - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_8107EE0 - - thumb_func_start sub_8107EFC -sub_8107EFC: @ 8107EFC - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_8107EFC - - thumb_func_start sub_8107F10 -sub_8107F10: @ 8107F10 - push {lr} -_08107F12: - bl sub_80BF72C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08107F36 - bl sub_8107F3C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08107F36 - bl MenuHelpers_LinkSomething - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08107F12 -_08107F36: - pop {r0} - bx r0 - thumb_func_end sub_8107F10 - - thumb_func_start sub_8107F3C -sub_8107F3C: @ 8107F3C - push {r4,r5,lr} - ldr r0, _08107F58 @ =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x13 - bls _08107F4E - b _0810811C -_08107F4E: - lsls r0, 2 - ldr r1, _08107F5C @ =_08107F60 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08107F58: .4byte gMain -_08107F5C: .4byte _08107F60 - .align 2, 0 -_08107F60: - .4byte _08107FB0 - .4byte _08107FBA - .4byte _08107FC0 - .4byte _08107FC6 - .4byte _08107FD8 - .4byte _08107FDE - .4byte _08107FE4 - .4byte _08107FF6 - .4byte _08108010 - .4byte _08108020 - .4byte _08108026 - .4byte _08108034 - .4byte _08108046 - .4byte _08108054 - .4byte _0810806E - .4byte _081080B8 - .4byte _081080C8 - .4byte _081080D2 - .4byte _081080D8 - .4byte _081080DE -_08107FB0: - bl SetVBlankHBlankCallbacksToNull - bl ClearScheduledBgCopiesToVram - b _08108104 -_08107FBA: - bl ScanlineEffect_Stop - b _08108104 -_08107FC0: - bl FreeAllSpritePalettes - b _08108104 -_08107FC6: - bl ResetPaletteFade - ldr r2, _08107FD4 @ =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - b _08108102 - .align 2, 0 -_08107FD4: .4byte gPaletteFade -_08107FD8: - bl ResetSpriteData - b _08108104 -_08107FDE: - bl ResetItemMenuIconState - b _08108104 -_08107FE4: - bl MenuHelpers_LinkSomething - lsls r0, 24 - cmp r0, 0 - beq _08107FF0 - b _08108104 -_08107FF0: - bl ResetTasks - b _08108104 -_08107FF6: - bl sub_81081D0 - lsls r0, 24 - cmp r0, 0 - beq _0810803E - ldr r0, _0810800C @ =gUnknown_203AD10 - ldr r1, [r0] - movs r0, 0 - strb r0, [r1, 0x10] - b _08108104 - .align 2, 0 -_0810800C: .4byte gUnknown_203AD10 -_08108010: - bl sub_8108240 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0810801E - b _08108134 -_0810801E: - b _08108104 -_08108020: - bl sub_810B858 - b _08108104 -_08108026: - bl sub_8108E54 - bl sub_8108A68 - bl sub_8108A84 - b _08108104 -_08108034: - bl sub_81083F4 - lsls r0, 24 - cmp r0, 0 - bne _08108104 -_0810803E: - bl sub_810813C - movs r0, 0x1 - b _08108136 -_08108046: - ldr r0, _08108050 @ =gUnknown_203ACFC - ldrb r0, [r0, 0x6] - bl sub_810842C - b _08108104 - .align 2, 0 -_08108050: .4byte gUnknown_203ACFC -_08108054: - ldr r0, _08108064 @ =gUnknown_203ACFC - ldrb r0, [r0, 0x4] - cmp r0, 0x3 - beq _08108068 - bl sub_81087EC - b _08108104 - .align 2, 0 -_08108064: .4byte gUnknown_203ACFC -_08108068: - bl sub_810B994 - b _08108104 -_0810806E: - ldr r4, _081080AC @ =gUnknown_203ACFC - ldrb r0, [r4, 0x4] - bl sub_8108388 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _081080B0 @ =gMultiuseListMenuTemplate - ldrh r2, [r4, 0x6] - lsls r2, 1 - adds r1, r4, 0 - adds r1, 0xE - adds r1, r2, r1 - ldrh r1, [r1] - adds r4, 0x8 - adds r2, r4 - ldrh r2, [r2] - bl ListMenuInit - ldr r2, _081080B4 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r2 - lsls r0, 24 - lsrs r0, 24 - movs r2, 0 - strh r0, [r1, 0x8] - strh r2, [r1, 0xE] - strh r2, [r1, 0x18] - b _08108104 - .align 2, 0 -_081080AC: .4byte gUnknown_203ACFC -_081080B0: .4byte gMultiuseListMenuTemplate -_081080B4: .4byte gTasks -_081080B8: - ldr r0, _081080C4 @ =gUnknown_203ACFC - ldrb r0, [r0, 0x6] - bl sub_80984FC - b _08108104 - .align 2, 0 -_081080C4: .4byte gUnknown_203ACFC -_081080C8: - bl sub_8108888 - bl sub_81088D8 - b _08108104 -_081080D2: - bl sub_80985E4 - b _08108104 -_081080D8: - bl sub_8108C10 - b _08108104 -_081080DE: - ldr r0, _081080F0 @ =gUnknown_203ACFC - ldrb r0, [r0, 0x4] - cmp r0, 0x3 - bne _081080F4 - movs r0, 0x1D - bl HelpSystem_SetSomeVariable2 - b _081080FA - .align 2, 0 -_081080F0: .4byte gUnknown_203ACFC -_081080F4: - movs r0, 0x9 - bl HelpSystem_SetSomeVariable2 -_081080FA: - ldr r2, _08108114 @ =gPaletteFade - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 -_08108102: - strb r0, [r2, 0x8] -_08108104: - ldr r1, _08108118 @ =gMain - movs r0, 0x87 - lsls r0, 3 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08108134 - .align 2, 0 -_08108114: .4byte gPaletteFade -_08108118: .4byte gMain -_0810811C: - ldr r0, _0810812C @ =sub_8107EFC - bl SetVBlankCallback - ldr r0, _08108130 @ =sub_8107EE0 - bl SetMainCallback2 - movs r0, 0x1 - b _08108136 - .align 2, 0 -_0810812C: .4byte sub_8107EFC -_08108130: .4byte sub_8107EE0 -_08108134: - movs r0, 0 -_08108136: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8107F3C - - thumb_func_start sub_810813C -sub_810813C: @ 810813C - push {lr} - sub sp, 0x4 - movs r0, 0x1 - negs r0, r0 - movs r1, 0x2 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, _0810816C @ =sub_8108178 - movs r1, 0 - bl CreateTask - ldr r0, _08108170 @ =sub_8107EFC - bl SetVBlankCallback - ldr r0, _08108174 @ =sub_8107EE0 - bl SetMainCallback2 - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0810816C: .4byte sub_8108178 -_08108170: .4byte sub_8107EFC -_08108174: .4byte sub_8107EE0 - thumb_func_end sub_810813C - - thumb_func_start sub_8108178 -sub_8108178: @ 8108178 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _081081A4 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0810819C - ldr r0, _081081A8 @ =gUnknown_203ACFC - ldr r0, [r0] - bl SetMainCallback2 - bl sub_8108B04 - adds r0, r4, 0 - bl DestroyTask -_0810819C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081081A4: .4byte gPaletteFade -_081081A8: .4byte gUnknown_203ACFC - thumb_func_end sub_8108178 - - thumb_func_start sub_81081AC -sub_81081AC: @ 81081AC - ldr r0, _081081C0 @ =gUnknown_203AD10 - movs r1, 0 - str r1, [r0] - ldr r0, _081081C4 @ =gUnknown_203AD14 - str r1, [r0] - ldr r0, _081081C8 @ =gUnknown_203AD18 - str r1, [r0] - ldr r0, _081081CC @ =gUnknown_203AD1C - str r1, [r0] - bx lr - .align 2, 0 -_081081C0: .4byte gUnknown_203AD10 -_081081C4: .4byte gUnknown_203AD14 -_081081C8: .4byte gUnknown_203AD18 -_081081CC: .4byte gUnknown_203AD1C - thumb_func_end sub_81081AC - - thumb_func_start sub_81081D0 -sub_81081D0: @ 81081D0 - push {r4,r5,lr} - bl ResetAllBgsCoordinatesAndBgCntRegs - ldr r5, _08108230 @ =gUnknown_203AD14 - movs r4, 0x80 - lsls r4, 4 - adds r0, r4, 0 - bl Alloc - str r0, [r5] - cmp r0, 0 - beq _08108238 - movs r1, 0 - adds r2, r4, 0 - bl memset - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _08108234 @ =gUnknown_8452CF4 - movs r0, 0 - movs r2, 0x2 - bl InitBgsFromTemplates - ldr r1, [r5] - movs r0, 0x1 - bl SetBgTilemapBuffer - movs r0, 0x1 - bl ScheduleBgCopyTilemapToVram - movs r1, 0xC1 - lsls r1, 6 - movs r0, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1 - b _0810823A - .align 2, 0 -_08108230: .4byte gUnknown_203AD14 -_08108234: .4byte gUnknown_8452CF4 -_08108238: - movs r0, 0 -_0810823A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81081D0 - - thumb_func_start sub_8108240 -sub_8108240: @ 8108240 - push {r4,lr} - sub sp, 0x4 - ldr r4, _0810825C @ =gUnknown_203AD10 - ldr r0, [r4] - ldrb r0, [r0, 0x10] - cmp r0, 0x5 - bls _08108250 - b _08108368 -_08108250: - lsls r0, 2 - ldr r1, _08108260 @ =_08108264 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0810825C: .4byte gUnknown_203AD10 -_08108260: .4byte _08108264 - .align 2, 0 -_08108264: - .4byte _0810827C - .4byte _08108298 - .4byte _081082D8 - .4byte _08108310 - .4byte _08108340 - .4byte _0810834C -_0810827C: - bl ResetTempTileDataBuffers - ldr r1, _08108294 @ =gUnknown_8E830CC - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl DecompressAndCopyTileDataToVram - b _08108352 - .align 2, 0 -_08108294: .4byte gUnknown_8E830CC -_08108298: - bl FreeTempTileDataBuffersIfPossible - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0810837C - ldr r0, _081082B8 @ =gUnknown_203ACFC - ldrb r0, [r0, 0x4] - cmp r0, 0x3 - beq _081082C4 - ldr r0, _081082BC @ =gUnknown_8E832C0 - ldr r1, _081082C0 @ =gUnknown_203AD14 - ldr r1, [r1] - bl LZDecompressWram - b _08108352 - .align 2, 0 -_081082B8: .4byte gUnknown_203ACFC -_081082BC: .4byte gUnknown_8E832C0 -_081082C0: .4byte gUnknown_203AD14 -_081082C4: - ldr r0, _081082D0 @ =gUnknown_8E83444 - ldr r1, _081082D4 @ =gUnknown_203AD14 - ldr r1, [r1] - bl LZDecompressWram - b _08108352 - .align 2, 0 -_081082D0: .4byte gUnknown_8E83444 -_081082D4: .4byte gUnknown_203AD14 -_081082D8: - ldr r0, _08108304 @ =gUnknown_8E835B4 - movs r1, 0 - movs r2, 0x60 - bl LoadCompressedPalette - bl sub_810ADAC - lsls r0, 24 - cmp r0, 0 - bne _08108352 - ldr r0, _08108308 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - beq _08108352 - ldr r0, _0810830C @ =gUnknown_8E83604 - movs r1, 0 - movs r2, 0x20 - bl LoadCompressedPalette - b _08108352 - .align 2, 0 -_08108304: .4byte gUnknown_8E835B4 -_08108308: .4byte gSaveBlock2Ptr -_0810830C: .4byte gUnknown_8E83604 -_08108310: - bl sub_810ADAC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08108326 - ldr r0, _0810832C @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _08108334 -_08108326: - ldr r0, _08108330 @ =gUnknown_83D41E4 - b _0810834E - .align 2, 0 -_0810832C: .4byte gSaveBlock2Ptr -_08108330: .4byte gUnknown_83D41E4 -_08108334: - ldr r0, _0810833C @ =gUnknown_83D41EC - bl LoadCompressedSpriteSheet - b _08108352 - .align 2, 0 -_0810833C: .4byte gUnknown_83D41EC -_08108340: - ldr r0, _08108348 @ =gUnknown_83D41F4 - bl LoadCompressedSpritePalette - b _08108352 - .align 2, 0 -_08108348: .4byte gUnknown_83D41F4 -_0810834C: - ldr r0, _08108360 @ =gBagSwapSpriteSheet -_0810834E: - bl LoadCompressedSpriteSheet -_08108352: - ldr r0, _08108364 @ =gUnknown_203AD10 - ldr r1, [r0] - ldrb r0, [r1, 0x10] - adds r0, 0x1 - strb r0, [r1, 0x10] - b _0810837C - .align 2, 0 -_08108360: .4byte gBagSwapSpriteSheet -_08108364: .4byte gUnknown_203AD10 -_08108368: - ldr r0, _08108378 @ =gBagSwapSpritePalette - bl LoadCompressedSpritePalette - ldr r1, [r4] - movs r0, 0 - strb r0, [r1, 0x10] - movs r0, 0x1 - b _0810837E - .align 2, 0 -_08108378: .4byte gBagSwapSpritePalette -_0810837C: - movs r0, 0 -_0810837E: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8108240 - - thumb_func_start sub_8108388 -sub_8108388: @ 8108388 - push {lr} - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x6 - cmp r0, 0x4 - bhi _081083E0 - lsls r0, 2 - ldr r1, _081083A0 @ =_081083A4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_081083A0: .4byte _081083A4 - .align 2, 0 -_081083A4: - .4byte _081083B8 - .4byte _081083D0 - .4byte _081083D8 - .4byte _081083C0 - .4byte _081083C8 -_081083B8: - ldr r0, _081083BC @ =sub_810AF9C - b _081083E2 - .align 2, 0 -_081083BC: .4byte sub_810AF9C -_081083C0: - ldr r0, _081083C4 @ =sub_810B1D4 - b _081083E2 - .align 2, 0 -_081083C4: .4byte sub_810B1D4 -_081083C8: - ldr r0, _081083CC @ =sub_810B5D4 - b _081083E2 - .align 2, 0 -_081083CC: .4byte sub_810B5D4 -_081083D0: - ldr r0, _081083D4 @ =sub_810B4BC - b _081083E2 - .align 2, 0 -_081083D4: .4byte sub_810B4BC -_081083D8: - ldr r0, _081083DC @ =sub_810B378 - b _081083E2 - .align 2, 0 -_081083DC: .4byte sub_810B378 -_081083E0: - ldr r0, _081083F0 @ =sub_8108F0C -_081083E2: - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_081083F0: .4byte sub_8108F0C - thumb_func_end sub_8108388 - - thumb_func_start sub_81083F4 -sub_81083F4: @ 81083F4 - push {r4,lr} - ldr r4, _08108418 @ =gUnknown_203AD18 - movs r0, 0xAC - lsls r0, 1 - bl Alloc - str r0, [r4] - cmp r0, 0 - beq _08108424 - ldr r4, _0810841C @ =gUnknown_203AD1C - ldr r0, _08108420 @ =0x00000331 - bl Alloc - str r0, [r4] - cmp r0, 0 - beq _08108424 - movs r0, 0x1 - b _08108426 - .align 2, 0 -_08108418: .4byte gUnknown_203AD18 -_0810841C: .4byte gUnknown_203AD1C -_08108420: .4byte 0x00000331 -_08108424: - movs r0, 0 -_08108426: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_81083F4 - - thumb_func_start sub_810842C -sub_810842C: @ 810842C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, r7, 3 - ldr r0, _0810853C @ =gBagPockets - adds r1, r0 - mov r8, r1 - movs r6, 0 - ldr r0, _08108540 @ =gUnknown_203AD10 - ldr r0, [r0] - adds r0, 0xA - adds r0, r7 - ldrb r0, [r0] - cmp r6, r0 - bcs _0810848C - ldr r5, _08108544 @ =gUnknown_203AD1C -_08108450: - lsls r2, r6, 2 - adds r4, r2, r6 - lsls r4, 2 - subs r4, r6 - ldr r0, [r5] - adds r0, r4 - mov r3, r8 - ldr r1, [r3] - adds r2, r1 - ldrh r1, [r2] - bl sub_8108560 - ldr r0, _08108548 @ =gUnknown_203AD18 - ldr r0, [r0] - lsls r1, r6, 3 - adds r1, r0 - ldr r0, [r5] - adds r0, r4 - str r0, [r1] - str r6, [r1, 0x4] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, _08108540 @ =gUnknown_203AD10 - ldr r0, [r0] - adds r0, 0xA - adds r0, r7 - ldrb r0, [r0] - cmp r6, r0 - bcc _08108450 -_0810848C: - ldr r5, _08108544 @ =gUnknown_203AD1C - lsls r4, r6, 2 - adds r4, r6 - lsls r4, 2 - subs r4, r6 - ldr r0, [r5] - adds r0, r4 - ldr r1, _0810854C @ =gUnknown_8452F60 - bl StringCopy - ldr r0, [r5] - adds r0, r4 - ldr r1, _08108550 @ =gFameCheckerText_Cancel - bl StringAppend - ldr r0, _08108548 @ =gUnknown_203AD18 - ldr r2, [r0] - lsls r1, r6, 3 - adds r1, r2 - ldr r0, [r5] - adds r0, r4 - str r0, [r1] - str r6, [r1, 0x4] - ldr r3, _08108554 @ =gMultiuseListMenuTemplate - str r2, [r3] - ldr r0, _08108540 @ =gUnknown_203AD10 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0xA - adds r0, r7 - ldrb r0, [r0] - adds r0, 0x1 - movs r1, 0 - strh r0, [r3, 0xC] - strb r1, [r3, 0x10] - strb r1, [r3, 0x11] - movs r0, 0x9 - strb r0, [r3, 0x12] - movs r0, 0x1 - strb r0, [r3, 0x13] - ldrb r0, [r3, 0x16] - movs r4, 0x8 - negs r4, r4 - ands r4, r0 - movs r0, 0x39 - negs r0, r0 - ands r4, r0 - movs r0, 0x10 - orrs r4, r0 - strb r4, [r3, 0x16] - ldrb r0, [r3, 0x14] - movs r1, 0x10 - negs r1, r1 - ands r1, r0 - movs r5, 0x2 - orrs r1, r5 - strb r1, [r3, 0x14] - adds r2, 0xD - adds r2, r7 - ldrb r0, [r2] - strh r0, [r3, 0xE] - ldrb r0, [r3, 0x17] - movs r2, 0x40 - negs r2, r2 - ands r2, r0 - orrs r2, r5 - movs r0, 0xF - ands r1, r0 - movs r0, 0x20 - orrs r1, r0 - strb r1, [r3, 0x14] - movs r0, 0x30 - strb r0, [r3, 0x15] - ldr r0, _08108558 @ =sub_81085A4 - str r0, [r3, 0x4] - ldr r0, _0810855C @ =sub_8108654 - str r0, [r3, 0x8] - movs r0, 0x3F - ands r2, r0 - strb r2, [r3, 0x17] - ands r4, r0 - strb r4, [r3, 0x16] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810853C: .4byte gBagPockets -_08108540: .4byte gUnknown_203AD10 -_08108544: .4byte gUnknown_203AD1C -_08108548: .4byte gUnknown_203AD18 -_0810854C: .4byte gUnknown_8452F60 -_08108550: .4byte gFameCheckerText_Cancel -_08108554: .4byte gMultiuseListMenuTemplate -_08108558: .4byte sub_81085A4 -_0810855C: .4byte sub_8108654 - thumb_func_end sub_810842C - - thumb_func_start sub_8108560 -sub_8108560: @ 8108560 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r1, 16 - lsrs r5, r1, 16 - ldr r0, _0810857C @ =0xfe940000 - adds r1, r0 - lsrs r1, 16 - cmp r1, 0x1 - bhi _08108584 - ldr r1, _08108580 @ =gUnknown_8452F66 - adds r0, r4, 0 - bl StringCopy - b _0810858C - .align 2, 0 -_0810857C: .4byte 0xfe940000 -_08108580: .4byte gUnknown_8452F66 -_08108584: - ldr r1, _081085A0 @ =gUnknown_8452F60 - adds r0, r4, 0 - bl StringCopy -_0810858C: - adds r0, r5, 0 - bl ItemId_GetName - adds r1, r0, 0 - adds r0, r4, 0 - bl StringAppend - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081085A0: .4byte gUnknown_8452F60 - thumb_func_end sub_8108560 - - thumb_func_start sub_81085A4 -sub_81085A4: @ 81085A4 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x1 - beq _081085BA - movs r0, 0xF5 - bl PlaySE - bl sub_8098580 -_081085BA: - ldr r4, _08108604 @ =gUnknown_203AD10 - ldr r1, [r4] - ldrb r0, [r1, 0x4] - cmp r0, 0xFF - bne _08108644 - ldrb r1, [r1, 0x5] - lsls r1, 26 - lsrs r1, 30 - movs r0, 0x1 - eors r0, r1 - bl DestroyItemMenuIcon - ldr r2, [r4] - ldr r0, _08108608 @ =gUnknown_203ACFC - ldrh r1, [r0, 0x6] - adds r0, r2, 0 - adds r0, 0xA - adds r0, r1 - ldrb r0, [r0] - cmp r0, r5 - beq _0810860C - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r5, 16 - lsrs r1, 16 - bl BagGetItemIdByPocketPosition - lsls r0, 16 - lsrs r0, 16 - ldr r1, [r4] - ldrb r1, [r1, 0x5] - lsls r1, 26 - lsrs r1, 30 - bl CreateItemMenuIcon - b _08108618 - .align 2, 0 -_08108604: .4byte gUnknown_203AD10 -_08108608: .4byte gUnknown_203ACFC -_0810860C: - ldr r0, _0810864C @ =0x00000177 - ldrb r1, [r2, 0x5] - lsls r1, 26 - lsrs r1, 30 - bl CreateItemMenuIcon -_08108618: - ldr r4, _08108650 @ =gUnknown_203AD10 - ldr r3, [r4] - ldrb r2, [r3, 0x5] - lsls r0, r2, 26 - lsrs r0, 30 - movs r1, 0x1 - eors r1, r0 - lsls r1, 4 - movs r0, 0x31 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x5] - ldr r0, [r4] - ldrb r1, [r0, 0x5] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0 - bne _08108644 - adds r0, r5, 0 - bl sub_8108818 -_08108644: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810864C: .4byte 0x00000177 -_08108650: .4byte gUnknown_203AD10 - thumb_func_end sub_81085A4 - - thumb_func_start sub_8108654 -sub_8108654: @ 8108654 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r2, 24 - lsrs r6, r2, 24 - ldr r0, _08108684 @ =gUnknown_203AD10 - ldr r0, [r0] - ldrb r1, [r0, 0x4] - cmp r1, 0xFF - beq _08108690 - lsls r0, r4, 24 - lsrs r0, 24 - cmp r1, r0 - bne _08108688 - adds r0, r6, 0 - movs r1, 0x2 - bl bag_menu_print_cursor - b _08108690 - .align 2, 0 -_08108684: .4byte gUnknown_203AD10 -_08108688: - adds r0, r6, 0 - movs r1, 0xFF - bl bag_menu_print_cursor -_08108690: - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _08108752 - ldr r0, _08108718 @ =gUnknown_203AD10 - ldr r0, [r0] - ldr r5, _0810871C @ =gUnknown_203ACFC - ldrh r1, [r5, 0x6] - adds r0, 0xA - adds r0, r1 - ldrb r0, [r0] - cmp r0, r4 - beq _08108752 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 16 - lsrs r4, 16 - adds r1, r4, 0 - bl BagGetItemIdByPocketPosition - lsls r0, 16 - lsrs r7, r0, 16 - ldrb r0, [r5, 0x6] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - bl BagGetQuantityByPocketPosition - lsls r0, 16 - lsrs r4, r0, 16 - ldrh r0, [r5, 0x6] - cmp r0, 0x1 - beq _0810872C - adds r0, r7, 0 - bl itemid_is_unique - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _0810872C - ldr r0, _08108720 @ =gStringVar1 - adds r1, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r4, _08108724 @ =gStringVar4 - ldr r1, _08108728 @ =gText_TimesStrVar1 - adds r0, r4, 0 - bl StringExpandPlaceholders - str r6, [sp] - str r5, [sp, 0x4] - str r5, [sp, 0x8] - movs r0, 0xFF - str r0, [sp, 0xC] - movs r0, 0x1 - str r0, [sp, 0x10] - mov r0, r8 - movs r1, 0 - adds r2, r4, 0 - movs r3, 0x6E - bl sub_810B8F0 - b _08108752 - .align 2, 0 -_08108718: .4byte gUnknown_203AD10 -_0810871C: .4byte gUnknown_203ACFC -_08108720: .4byte gStringVar1 -_08108724: .4byte gStringVar4 -_08108728: .4byte gText_TimesStrVar1 -_0810872C: - ldr r0, _08108760 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _08108764 @ =0x00000296 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _08108752 - cmp r0, r7 - bne _08108752 - ldr r1, _08108768 @ =gUnknown_8452F7C - movs r0, 0x18 - str r0, [sp] - movs r0, 0x10 - str r0, [sp, 0x4] - mov r0, r8 - movs r2, 0x70 - adds r3, r6, 0 - bl BlitBitmapToWindow -_08108752: - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08108760: .4byte gSaveBlock1Ptr -_08108764: .4byte 0x00000296 -_08108768: .4byte gUnknown_8452F7C - thumb_func_end sub_8108654 - - thumb_func_start bag_menu_print_cursor_ -bag_menu_print_cursor_: @ 810876C - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsrs r4, 24 - bl ListMenuGetYCoordForPrintingArrowCursor - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - bl bag_menu_print_cursor - pop {r4} - pop {r0} - bx r0 - thumb_func_end bag_menu_print_cursor_ - - thumb_func_start bag_menu_print_cursor -bag_menu_print_cursor: @ 810878C - push {r4,r5,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0xFF - bne _081087C8 - 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 GetMenuCursorDimensionByFont - lsls r0, 24 - lsrs r0, 24 - str r4, [sp] - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0x1 - adds r3, r5, 0 - bl FillWindowPixelRect - b _081087DE -_081087C8: - ldr r2, _081087E8 @ =gFameCheckerText_ListMenuCursor - str r5, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r1, [sp, 0x10] - movs r1, 0x2 - movs r3, 0x1 - bl sub_810B8F0 -_081087DE: - add sp, 0x14 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081087E8: .4byte gFameCheckerText_ListMenuCursor - thumb_func_end bag_menu_print_cursor - - thumb_func_start sub_81087EC -sub_81087EC: @ 81087EC - push {lr} - movs r0, 0x2 - movs r1, 0 - bl FillWindowPixelBuffer - ldr r2, _08108810 @ =gUnknown_8452CFC - ldr r0, _08108814 @ =gUnknown_203ACFC - ldrh r1, [r0, 0x6] - lsls r0, r1, 2 - adds r0, r2 - ldr r0, [r0] - lsls r1, 24 - lsrs r1, 24 - bl sub_810B958 - pop {r0} - bx r0 - .align 2, 0 -_08108810: .4byte gUnknown_8452CFC -_08108814: .4byte gUnknown_203ACFC - thumb_func_end sub_81087EC - - thumb_func_start sub_8108818 -sub_8108818: @ 8108818 - push {r4,lr} - sub sp, 0x14 - adds r2, r0, 0 - ldr r0, _0810884C @ =gUnknown_203AD10 - ldr r0, [r0] - ldr r1, _08108850 @ =gUnknown_203ACFC - ldrh r1, [r1, 0x6] - adds r0, 0xA - adds r0, r1 - ldrb r0, [r0] - cmp r2, r0 - beq _08108854 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r2, 16 - lsrs r1, 16 - bl BagGetItemIdByPocketPosition - lsls r0, 16 - lsrs r0, 16 - bl ItemId_GetDescription - adds r4, r0, 0 - b _08108856 - .align 2, 0 -_0810884C: .4byte gUnknown_203AD10 -_08108850: .4byte gUnknown_203ACFC -_08108854: - ldr r4, _08108884 @ =gUnknown_84162F5 -_08108856: - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x3 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - str r0, [sp, 0xC] - str r0, [sp, 0x10] - movs r0, 0x1 - movs r1, 0x2 - adds r2, r4, 0 - movs r3, 0 - bl sub_810B8F0 - add sp, 0x14 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08108884: .4byte gUnknown_84162F5 - thumb_func_end sub_8108818 - - thumb_func_start sub_8108888 -sub_8108888: @ 8108888 - push {r4,lr} - sub sp, 0x10 - ldr r4, _081088D0 @ =gUnknown_203AD10 - ldr r1, [r4] - ldr r2, _081088D4 @ =gUnknown_203ACFC - ldrh r3, [r2, 0x6] - adds r0, r1, 0 - adds r0, 0xA - adds r0, r3 - ldrb r0, [r0] - adds r1, 0xD - adds r1, r3 - ldrb r1, [r1] - subs r0, r1 - adds r0, 0x1 - str r0, [sp] - movs r0, 0x6E - str r0, [sp, 0x4] - str r0, [sp, 0x8] - ldrh r0, [r2, 0x6] - lsls r0, 1 - adds r2, 0xE - adds r0, r2 - str r0, [sp, 0xC] - movs r0, 0x2 - movs r1, 0xA0 - movs r2, 0x8 - movs r3, 0x68 - bl AddScrollIndicatorArrowPairParameterized - ldr r1, [r4] - strb r0, [r1, 0x8] - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081088D0: .4byte gUnknown_203AD10 -_081088D4: .4byte gUnknown_203ACFC - thumb_func_end sub_8108888 - - thumb_func_start sub_81088D8 -sub_81088D8: @ 81088D8 - push {r4,lr} - ldr r4, _081088FC @ =gUnknown_203AD10 - ldr r0, [r4] - ldrb r1, [r0, 0x5] - movs r0, 0xF - ands r0, r1 - cmp r0, 0x1 - beq _081088F4 - ldr r0, _08108900 @ =gUnknown_8452F6C - ldr r1, _08108904 @ =gUnknown_203AD02 - bl AddScrollIndicatorArrowPair - ldr r1, [r4] - strb r0, [r1, 0x9] -_081088F4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081088FC: .4byte gUnknown_203AD10 -_08108900: .4byte gUnknown_8452F6C -_08108904: .4byte gUnknown_203AD02 - thumb_func_end sub_81088D8 - - thumb_func_start sub_8108908 -sub_8108908: @ 8108908 - push {r4,lr} - sub sp, 0x10 - ldr r4, _0810893C @ =gUnknown_203AD10 - ldr r1, [r4] - movs r0, 0x1 - strh r0, [r1, 0x6] - movs r0, 0x2 - str r0, [sp] - movs r0, 0x6E - str r0, [sp, 0x4] - str r0, [sp, 0x8] - adds r1, 0x6 - str r1, [sp, 0xC] - movs r0, 0x2 - movs r1, 0x98 - movs r2, 0x48 - movs r3, 0x68 - bl AddScrollIndicatorArrowPairParameterized - ldr r1, [r4] - strb r0, [r1, 0x8] - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810893C: .4byte gUnknown_203AD10 - thumb_func_end sub_8108908 - - thumb_func_start sub_8108940 -sub_8108940: @ 8108940 - push {r4,lr} - sub sp, 0x10 - ldr r4, _08108974 @ =gUnknown_203AD10 - ldr r1, [r4] - movs r0, 0x1 - strh r0, [r1, 0x6] - movs r0, 0x2 - str r0, [sp] - movs r0, 0x6E - str r0, [sp, 0x4] - str r0, [sp, 0x8] - adds r1, 0x6 - str r1, [sp, 0xC] - movs r0, 0x2 - movs r1, 0xD4 - movs r2, 0x78 - movs r3, 0x98 - bl AddScrollIndicatorArrowPairParameterized - ldr r1, [r4] - strb r0, [r1, 0x8] - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08108974: .4byte gUnknown_203AD10 - thumb_func_end sub_8108940 - - thumb_func_start sub_8108978 -sub_8108978: @ 8108978 - push {r4,lr} - ldr r4, _08108998 @ =gUnknown_203AD10 - ldr r1, [r4] - ldrb r0, [r1, 0x8] - cmp r0, 0xFF - beq _0810898E - bl RemoveScrollIndicatorArrowPair - ldr r1, [r4] - movs r0, 0xFF - strb r0, [r1, 0x8] -_0810898E: - bl sub_810899C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08108998: .4byte gUnknown_203AD10 - thumb_func_end sub_8108978 - - thumb_func_start sub_810899C -sub_810899C: @ 810899C - push {r4,lr} - ldr r4, _081089B8 @ =gUnknown_203AD10 - ldr r1, [r4] - ldrb r0, [r1, 0x9] - cmp r0, 0xFF - beq _081089B2 - bl RemoveScrollIndicatorArrowPair - ldr r1, [r4] - movs r0, 0xFF - strb r0, [r1, 0x9] -_081089B2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_081089B8: .4byte gUnknown_203AD10 - thumb_func_end sub_810899C - - thumb_func_start sub_81089BC -sub_81089BC: @ 81089BC - push {r4,r5,lr} - ldr r0, _081089F0 @ =gUnknown_203ACFC - movs r2, 0 - movs r1, 0 - strh r1, [r0, 0x6] - strb r2, [r0, 0x5] - movs r2, 0 - adds r5, r0, 0 - adds r5, 0x8 - movs r3, 0 - adds r4, r0, 0 - adds r4, 0xE -_081089D4: - lsls r1, r2, 1 - adds r0, r1, r5 - strh r3, [r0] - adds r1, r4 - strh r3, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bls _081089D4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_081089F0: .4byte gUnknown_203ACFC - thumb_func_end sub_81089BC - - thumb_func_start sub_81089F4 -sub_81089F4: @ 81089F4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r2, _08108A60 @ =gUnknown_203ACFC - lsls r1, r4, 1 - adds r0, r2, 0 - adds r0, 0xE - adds r3, r1, r0 - ldrh r0, [r3] - adds r7, r2, 0 - ldr r6, _08108A64 @ =gUnknown_203AD10 - cmp r0, 0 - beq _08108A2E - adds r2, r0, 0 - ldr r1, [r6] - adds r0, r1, 0 - adds r0, 0xD - adds r0, r4 - ldrb r5, [r0] - adds r2, r5 - adds r1, 0xA - adds r1, r4 - ldrb r1, [r1] - adds r0, r1, 0x1 - cmp r2, r0 - ble _08108A2E - subs r0, r5, 0x1 - subs r0, r1, r0 - strh r0, [r3] -_08108A2E: - lsls r2, r4, 1 - adds r0, r7, 0 - adds r0, 0xE - adds r0, r2, r0 - ldrh r1, [r0] - adds r0, r7, 0 - adds r0, 0x8 - adds r2, r0 - ldrh r0, [r2] - adds r1, r0 - ldr r0, [r6] - adds r0, 0xA - adds r0, r4 - ldrb r0, [r0] - adds r3, r0, 0x1 - cmp r1, r3 - blt _08108A58 - cmp r3, 0x1 - bgt _08108A56 - movs r0, 0 -_08108A56: - strh r0, [r2] -_08108A58: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08108A60: .4byte gUnknown_203ACFC -_08108A64: .4byte gUnknown_203AD10 - thumb_func_end sub_81089F4 - - thumb_func_start sub_8108A68 -sub_8108A68: @ 8108A68 - push {r4,lr} - movs r4, 0 -_08108A6C: - adds r0, r4, 0 - bl sub_81089F4 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _08108A6C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8108A68 - - thumb_func_start sub_8108A84 -sub_8108A84: @ 8108A84 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r6, 0 - ldr r0, _08108AF8 @ =gUnknown_203AD04 - mov r8, r0 -_08108A90: - lsls r2, r6, 1 - mov r3, r8 - adds r1, r2, r3 - ldrh r0, [r1] - adds r7, r6, 0x1 - cmp r0, 0x3 - bls _08108AE6 - movs r5, 0 - subs r0, 0x3 - cmp r5, r0 - bgt _08108AE6 - ldr r0, _08108AFC @ =gUnknown_203AD0A - ldr r3, _08108B00 @ =gUnknown_203AD10 - mov r12, r3 - adds r4, r2, r0 - adds r3, r1, 0 -_08108AB0: - ldrh r2, [r4] - mov r0, r12 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0xD - adds r0, r6 - ldrb r0, [r0] - adds r2, r0 - adds r1, 0xA - adds r1, r6 - ldrb r0, [r1] - adds r0, 0x1 - cmp r2, r0 - beq _08108AE6 - ldrh r0, [r3] - subs r0, 0x1 - strh r0, [r3] - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldrh r0, [r3] - subs r0, 0x3 - cmp r5, r0 - ble _08108AB0 -_08108AE6: - lsls r0, r7, 24 - lsrs r6, r0, 24 - cmp r6, 0x2 - bls _08108A90 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08108AF8: .4byte gUnknown_203AD04 -_08108AFC: .4byte gUnknown_203AD0A -_08108B00: .4byte gUnknown_203AD10 - thumb_func_end sub_8108A84 - - thumb_func_start sub_8108B04 -sub_8108B04: @ 8108B04 - push {lr} - ldr r0, _08108B40 @ =gUnknown_203AD10 - ldr r0, [r0] - cmp r0, 0 - beq _08108B12 - bl Free -_08108B12: - ldr r0, _08108B44 @ =gUnknown_203AD14 - ldr r0, [r0] - cmp r0, 0 - beq _08108B1E - bl Free -_08108B1E: - ldr r0, _08108B48 @ =gUnknown_203AD18 - ldr r0, [r0] - cmp r0, 0 - beq _08108B2A - bl Free -_08108B2A: - ldr r0, _08108B4C @ =gUnknown_203AD1C - ldr r0, [r0] - cmp r0, 0 - beq _08108B36 - bl Free -_08108B36: - bl FreeAllWindowBuffers - pop {r0} - bx r0 - .align 2, 0 -_08108B40: .4byte gUnknown_203AD10 -_08108B44: .4byte gUnknown_203AD14 -_08108B48: .4byte gUnknown_203AD18 -_08108B4C: .4byte gUnknown_203AD1C - thumb_func_end sub_8108B04 - - thumb_func_start ItemMenu_StartFadeToExitCallback -ItemMenu_StartFadeToExitCallback: @ 8108B50 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0x2 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _08108B84 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08108B88 @ =sub_8108B8C - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08108B84: .4byte gTasks -_08108B88: .4byte sub_8108B8C - thumb_func_end ItemMenu_StartFadeToExitCallback - - thumb_func_start sub_8108B8C -sub_8108B8C: @ 8108B8C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _08108BE0 @ =gTasks+0x8 - adds r4, r0, r1 - ldr r0, _08108BE4 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08108C08 - ldr r0, _08108BE8 @ =sub_8108CFC - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08108C08 - ldrb r0, [r4] - ldr r4, _08108BEC @ =gUnknown_203ACFC - ldrh r2, [r4, 0x6] - lsls r2, 1 - adds r1, r4, 0 - adds r1, 0xE - adds r1, r2, r1 - adds r3, r4, 0 - adds r3, 0x8 - adds r2, r3 - bl DestroyListMenuTask - ldr r0, _08108BF0 @ =gUnknown_203AD10 - ldr r0, [r0] - ldr r0, [r0] - cmp r0, 0 - beq _08108BF4 - bl SetMainCallback2 - b _08108BFA - .align 2, 0 -_08108BE0: .4byte gTasks+0x8 -_08108BE4: .4byte gPaletteFade -_08108BE8: .4byte sub_8108CFC -_08108BEC: .4byte gUnknown_203ACFC -_08108BF0: .4byte gUnknown_203AD10 -_08108BF4: - ldr r0, [r4] - bl SetMainCallback2 -_08108BFA: - bl sub_8108978 - bl sub_8108B04 - adds r0, r5, 0 - bl DestroyTask -_08108C08: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8108B8C - - thumb_func_start sub_8108C10 -sub_8108C10: @ 8108C10 - push {r4,r5,lr} - sub sp, 0x8 - movs r5, 0 - add r0, sp, 0x4 - strh r5, [r0] - movs r1, 0 - movs r2, 0x2 - bl LoadPalette - movs r0, 0x48 - movs r1, 0 - bl SetGpuReg - movs r0, 0x4A - movs r1, 0x3F - bl SetGpuReg - movs r4, 0x1 - negs r4, r4 - adds r0, r4, 0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - str r5, [sp] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r4, _08108C68 @ =gUnknown_203ACFC - ldrb r0, [r4, 0x5] - cmp r0, 0x1 - bne _08108C6C - movs r0, 0x40 - movs r1, 0xF0 - bl SetGpuReg - movs r0, 0x44 - movs r1, 0 - bl SetGpuReg - b _08108C9E - .align 2, 0 -_08108C68: .4byte gUnknown_203ACFC -_08108C6C: - movs r0, 0x40 - movs r1, 0xF0 - bl SetGpuReg - movs r0, 0x44 - movs r1, 0xA0 - bl SetGpuReg - ldr r0, _08108CA8 @ =sub_8108CFC - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08108CAC @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0xC0 - strh r0, [r1, 0x8] - ldr r0, _08108CB0 @ =0x0000fff0 - strh r0, [r1, 0xA] - movs r0, 0x1 - strb r0, [r4, 0x5] -_08108C9E: - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08108CA8: .4byte sub_8108CFC -_08108CAC: .4byte gTasks -_08108CB0: .4byte 0x0000fff0 - thumb_func_end sub_8108C10 - - thumb_func_start sub_8108CB4 -sub_8108CB4: @ 8108CB4 - push {lr} - ldr r0, _08108CE0 @ =sub_8108CFC - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08108CE4 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - ldr r0, _08108CE8 @ =0x0000fff0 - strh r0, [r1, 0x8] - movs r0, 0x10 - strh r0, [r1, 0xA] - ldr r0, _08108CEC @ =gUnknown_203ACFC - strb r2, [r0, 0x5] - pop {r0} - bx r0 - .align 2, 0 -_08108CE0: .4byte sub_8108CFC -_08108CE4: .4byte gTasks -_08108CE8: .4byte 0x0000fff0 -_08108CEC: .4byte gUnknown_203ACFC - thumb_func_end sub_8108CB4 - - thumb_func_start CB2_SetUpReshowBattleScreenAfterMenu -CB2_SetUpReshowBattleScreenAfterMenu: @ 8108CF0 - ldr r1, _08108CF8 @ =gUnknown_203ACFC - movs r0, 0 - strb r0, [r1, 0x5] - bx lr - .align 2, 0 -_08108CF8: .4byte gUnknown_203ACFC - thumb_func_end CB2_SetUpReshowBattleScreenAfterMenu - - thumb_func_start sub_8108CFC -sub_8108CFC: @ 8108CFC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _08108D28 @ =gTasks+0x8 - adds r4, r0, r1 - ldrh r0, [r4, 0x2] - ldrh r1, [r4] - adds r0, r1 - strh r0, [r4] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA0 - ble _08108D2C - movs r0, 0x44 - movs r1, 0xA0 - bl SetGpuReg - b _08108D34 - .align 2, 0 -_08108D28: .4byte gTasks+0x8 -_08108D2C: - ldrh r1, [r4] - movs r0, 0x44 - bl SetGpuReg -_08108D34: - movs r2, 0x2 - ldrsh r1, [r4, r2] - cmp r1, 0x10 - bne _08108D44 - movs r2, 0 - ldrsh r0, [r4, r2] - cmp r0, 0xA0 - beq _08108D54 -_08108D44: - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bne _08108D5A - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08108D5A -_08108D54: - adds r0, r5, 0 - bl DestroyTask -_08108D5A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8108CFC - - thumb_func_start ItemMenu_MoveItemSlotToNewPositionInArray -ItemMenu_MoveItemSlotToNewPositionInArray: @ 8108D60 - push {r4-r6,lr} - adds r4, r0, 0 - adds r3, r2, 0 - cmp r1, r3 - beq _08108DC0 - lsls r0, r1, 2 - adds r0, r4 - ldr r6, [r0] - cmp r3, r1 - bls _08108D98 - subs r3, 0x1 - lsls r1, 16 - lsls r0, r3, 16 - asrs r2, r0, 16 - cmp r1, r0 - bge _08108DBA - adds r5, r2, 0 -_08108D82: - asrs r2, r1, 16 - lsls r0, r2, 2 - adds r0, r4 - ldr r1, [r0, 0x4] - str r1, [r0] - adds r2, 0x1 - lsls r1, r2, 16 - asrs r0, r1, 16 - cmp r0, r5 - blt _08108D82 - b _08108DBA -_08108D98: - lsls r1, 16 - lsls r0, r3, 16 - asrs r2, r0, 16 - cmp r1, r0 - ble _08108DBA - adds r5, r2, 0 -_08108DA4: - asrs r2, r1, 16 - lsls r1, r2, 2 - adds r1, r4 - subs r0, r1, 0x4 - ldr r0, [r0] - str r0, [r1] - subs r2, 0x1 - lsls r1, r2, 16 - asrs r0, r1, 16 - cmp r0, r5 - bgt _08108DA4 -_08108DBA: - lsls r0, r3, 2 - adds r0, r4 - str r6, [r0] -_08108DC0: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end ItemMenu_MoveItemSlotToNewPositionInArray - - thumb_func_start sub_8108DC8 -sub_8108DC8: @ 8108DC8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, r5, 3 - ldr r0, _08108E3C @ =gBagPockets - adds r4, r1, r0 - ldr r0, [r4] - ldrb r1, [r4, 0x4] - bl BagPocketCompaction - ldr r3, _08108E40 @ =gUnknown_203AD10 - ldr r0, [r3] - adds r0, 0xA - adds r0, r5 - movs r1, 0 - strb r1, [r0] - movs r2, 0 - ldrb r0, [r4, 0x4] - cmp r2, r0 - bcs _08108E1C - ldr r0, [r4] - ldrh r0, [r0] - cmp r0, 0 - beq _08108E1C -_08108DF8: - ldr r0, [r3] - adds r0, 0xA - adds r0, r5 - ldrb r1, [r0] - adds r1, 0x1 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldrb r0, [r4, 0x4] - cmp r2, r0 - bcs _08108E1C - ldr r0, [r4] - lsls r1, r2, 2 - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - bne _08108DF8 -_08108E1C: - ldr r0, _08108E40 @ =gUnknown_203AD10 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0xA - adds r0, r5 - ldrb r0, [r0] - adds r2, r0, 0x1 - cmp r2, 0x6 - ble _08108E44 - adds r0, r1, 0 - adds r0, 0xD - adds r0, r5 - movs r1, 0x6 - strb r1, [r0] - b _08108E4C - .align 2, 0 -_08108E3C: .4byte gBagPockets -_08108E40: .4byte gUnknown_203AD10 -_08108E44: - adds r0, r1, 0 - adds r0, 0xD - adds r0, r5 - strb r2, [r0] -_08108E4C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8108DC8 - - thumb_func_start sub_8108E54 -sub_8108E54: @ 8108E54 - push {r4,lr} - movs r4, 0 -_08108E58: - adds r0, r4, 0 - bl sub_8108DC8 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _08108E58 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8108E54 - - thumb_func_start DisplayItemMessageInBag -DisplayItemMessageInBag: @ 8108E70 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x10 - adds r5, r0, 0 - adds r6, r1, 0 - mov r8, r2 - mov r9, r3 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, _08108EDC @ =gTasks+0x8 - adds r4, r0 - movs r0, 0x5 - bl sub_810BA70 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x14] - movs r1, 0x11 - bl FillWindowPixelBuffer - bl GetTextSpeedSetting - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r4, 0x14] - str r6, [sp] - str r0, [sp, 0x4] - mov r0, r8 - str r0, [sp, 0x8] - mov r0, r9 - str r0, [sp, 0xC] - adds r0, r5, 0 - movs r2, 0x6D - movs r3, 0xD - bl DisplayMessageAndContinueTask - movs r0, 0 - bl ScheduleBgCopyTilemapToVram - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08108EDC: .4byte gTasks+0x8 - thumb_func_end DisplayItemMessageInBag - - thumb_func_start ItemMenu_SetExitCallback -ItemMenu_SetExitCallback: @ 8108EE0 - ldr r1, _08108EE8 @ =gUnknown_203AD10 - ldr r1, [r1] - str r0, [r1] - bx lr - .align 2, 0 -_08108EE8: .4byte gUnknown_203AD10 - thumb_func_end ItemMenu_SetExitCallback - - thumb_func_start sub_8108EEC -sub_8108EEC: @ 8108EEC - lsls r0, 24 - ldr r1, _08108F08 @ =gUnknown_203ACFC - lsrs r0, 23 - adds r2, r1, 0 - adds r2, 0xE - adds r2, r0, r2 - adds r1, 0x8 - adds r0, r1 - ldrb r0, [r0] - ldrb r2, [r2] - adds r0, r2 - lsls r0, 24 - lsrs r0, 24 - bx lr - .align 2, 0 -_08108F08: .4byte gUnknown_203ACFC - thumb_func_end sub_8108EEC - - thumb_func_start sub_8108F0C -sub_8108F0C: @ 8108F0C - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _08108F78 @ =gTasks+0x8 - adds r7, r0, r1 - ldr r0, _08108F7C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08108F2C - b _081090C6 -_08108F2C: - ldr r0, _08108F80 @ =sub_8108CFC - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08108F3C - b _081090C6 -_08108F3C: - bl sub_80BF72C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08108F4A - b _081090C6 -_08108F4A: - ldr r4, _08108F84 @ =gUnknown_203ACFC - ldrb r1, [r4, 0x6] - adds r0, r6, 0 - bl sub_8109168 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08108F8C - cmp r0, 0x2 - beq _08108F94 - ldr r0, _08108F88 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08108FE4 - adds r5, r4, 0 - ldrb r0, [r5, 0x4] - cmp r0, 0 - bne _08108FE4 - b _08108FA0 - .align 2, 0 -_08108F78: .4byte gTasks+0x8 -_08108F7C: .4byte gPaletteFade -_08108F80: .4byte sub_8108CFC -_08108F84: .4byte gUnknown_203ACFC -_08108F88: .4byte gMain -_08108F8C: - movs r1, 0x1 - negs r1, r1 - adds r0, r6, 0 - b _08108F98 -_08108F94: - adds r0, r6, 0 - movs r1, 0x1 -_08108F98: - movs r2, 0 - bl sub_81091D0 - b _081090C6 -_08108FA0: - ldrb r0, [r7] - mov r4, sp - adds r4, 0x2 - mov r1, sp - adds r2, r4, 0 - bl ListMenuGetScrollAndRow - mov r0, sp - ldrh r1, [r0] - ldrh r0, [r4] - adds r1, r0 - ldr r0, _08108FE0 @ =gUnknown_203AD10 - ldr r0, [r0] - adds r0, 0xA - ldrh r5, [r5, 0x6] - adds r0, r5 - ldrb r0, [r0] - cmp r1, r0 - beq _08108FE4 - movs r0, 0x5 - bl PlaySE - mov r0, sp - ldrh r1, [r4] - ldrh r0, [r0] - adds r1, r0 - lsls r1, 16 - asrs r1, 16 - adds r0, r6, 0 - bl sub_81093B8 - b _081090C6 - .align 2, 0 -_08108FE0: .4byte gUnknown_203AD10 -_08108FE4: - ldrb r0, [r7] - bl ListMenu_ProcessInput - adds r4, r0, 0 - ldrb r0, [r7] - ldr r5, _08109014 @ =gUnknown_203ACFC - ldrh r2, [r5, 0x6] - lsls r2, 1 - adds r1, r5, 0 - adds r1, 0xE - adds r1, r2, r1 - adds r3, r5, 0 - adds r3, 0x8 - adds r2, r3 - bl ListMenuGetScrollAndRow - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _08109018 - adds r0, 0x1 - cmp r4, r0 - bne _08109044 - b _081090C6 - .align 2, 0 -_08109014: .4byte gUnknown_203ACFC -_08109018: - movs r0, 0x5 - bl PlaySE - ldr r1, _08109038 @ =gSpecialVar_ItemId - movs r0, 0 - strh r0, [r1] - bl sub_8108CB4 - ldr r1, _0810903C @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _08109040 @ =ItemMenu_StartFadeToExitCallback - b _081090C4 - .align 2, 0 -_08109038: .4byte gSpecialVar_ItemId -_0810903C: .4byte gTasks -_08109040: .4byte ItemMenu_StartFadeToExitCallback -_08109044: - movs r0, 0x5 - bl PlaySE - ldr r0, _08109074 @ =gUnknown_203AD10 - ldr r0, [r0] - adds r0, 0xA - ldrh r1, [r5, 0x6] - adds r0, r1 - ldrb r0, [r0] - cmp r4, r0 - bne _08109084 - ldr r1, _08109078 @ =gSpecialVar_ItemId - movs r0, 0 - strh r0, [r1] - bl sub_8108CB4 - ldr r1, _0810907C @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _08109080 @ =ItemMenu_StartFadeToExitCallback - b _081090C4 - .align 2, 0 -_08109074: .4byte gUnknown_203AD10 -_08109078: .4byte gSpecialVar_ItemId -_0810907C: .4byte gTasks -_08109080: .4byte ItemMenu_StartFadeToExitCallback -_08109084: - bl sub_8108978 - ldrb r0, [r7] - movs r1, 0x2 - bl bag_menu_print_cursor_ - strh r4, [r7, 0x2] - ldrb r0, [r5, 0x6] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 16 - lsrs r4, 16 - adds r1, r4, 0 - bl BagGetQuantityByPocketPosition - strh r0, [r7, 0x4] - ldrb r0, [r5, 0x6] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - bl BagGetItemIdByPocketPosition - ldr r1, _081090D0 @ =gSpecialVar_ItemId - strh r0, [r1] - ldr r1, _081090D4 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldr r1, _081090D8 @ =sub_81090DC -_081090C4: - str r1, [r0] -_081090C6: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081090D0: .4byte gSpecialVar_ItemId -_081090D4: .4byte gTasks -_081090D8: .4byte sub_81090DC - thumb_func_end sub_8108F0C - - thumb_func_start sub_81090DC -sub_81090DC: @ 81090DC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - bl sub_8109140 - ldr r1, _08109104 @ =gUnknown_8452F34 - ldr r0, _08109108 @ =gUnknown_203ACFC - ldrb r0, [r0, 0x4] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08109104: .4byte gUnknown_8452F34 -_08109108: .4byte gUnknown_203ACFC - thumb_func_end sub_81090DC - - thumb_func_start sub_810910C -sub_810910C: @ 810910C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - bl sub_8109140 - bl sub_8108888 - bl sub_81088D8 - ldr r1, _08109138 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0810913C @ =sub_8108F0C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08109138: .4byte gTasks -_0810913C: .4byte sub_8108F0C - thumb_func_end sub_810910C - - thumb_func_start sub_8109140 -sub_8109140: @ 8109140 - push {lr} - sub sp, 0x8 - movs r1, 0x6 - str r1, [sp] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0xE - movs r3, 0x1E - bl SetBgTilemapPalette - movs r0, 0x1 - bl ScheduleBgCopyTilemapToVram - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_8109140 - - thumb_func_start sub_8109168 -sub_8109168: @ 8109168 - push {r4,lr} - lsls r1, 24 - lsrs r4, r1, 24 - ldr r0, _081091A4 @ =gUnknown_203AD10 - ldr r0, [r0] - ldrb r1, [r0, 0x5] - movs r0, 0xF - ands r0, r1 - cmp r0, 0 - bne _081091C6 - bl GetLRKeysState - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _081091A8 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _08109194 - cmp r2, 0x1 - bne _081091AC -_08109194: - cmp r4, 0 - beq _081091C6 - movs r0, 0xF6 - bl PlaySE - movs r0, 0x1 - b _081091C8 - .align 2, 0 -_081091A4: .4byte gUnknown_203AD10 -_081091A8: .4byte gMain -_081091AC: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _081091B8 - cmp r2, 0x2 - bne _081091C6 -_081091B8: - cmp r4, 0x1 - bhi _081091C6 - movs r0, 0xF6 - bl PlaySE - movs r0, 0x2 - b _081091C8 -_081091C6: - movs r0, 0 -_081091C8: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8109168 - - thumb_func_start sub_81091D0 -sub_81091D0: @ 81091D0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r6, r1, 0 - lsls r2, 16 - lsls r0, r5, 2 - adds r0, r5 - lsls r7, r0, 3 - ldr r0, _08109288 @ =gTasks+0x8 - mov r8, r0 - adds r4, r7, r0 - movs r0, 0 - strh r0, [r4, 0x1A] - strh r0, [r4, 0x18] - strh r6, [r4, 0x16] - cmp r2, 0 - bne _08109242 - movs r0, 0 - bl ClearWindowTilemap - movs r0, 0x1 - bl ClearWindowTilemap - movs r0, 0x2 - bl ClearWindowTilemap - ldrb r0, [r4] - ldr r3, _0810928C @ =gUnknown_203ACFC - ldrh r2, [r3, 0x6] - lsls r2, 1 - adds r1, r3, 0 - adds r1, 0xE - adds r1, r2, r1 - adds r3, 0x8 - adds r2, r3 - bl DestroyListMenuTask - movs r0, 0 - bl ScheduleBgCopyTilemapToVram - ldr r0, _08109290 @ =gUnknown_203AD10 - ldr r0, [r0] - ldrb r1, [r0, 0x5] - lsls r1, 26 - lsrs r1, 30 - movs r0, 0x1 - eors r0, r1 - bl DestroyItemMenuIcon - bl sub_8108978 -_08109242: - movs r0, 0x12 - str r0, [sp] - movs r0, 0xC - str r0, [sp, 0x4] - movs r0, 0x1 - movs r1, 0x2D - movs r2, 0xB - movs r3, 0x1 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0x1 - bl ScheduleBgCopyTilemapToVram - ldr r0, _0810928C @ =gUnknown_203ACFC - ldrb r0, [r0, 0x6] - adds r0, r6 - lsls r0, 24 - lsrs r0, 24 - bl sub_8098528 - ldr r1, _08109294 @ =sub_8109298 - mov r0, r8 - subs r0, 0x8 - adds r0, r7, r0 - ldr r2, [r0] - adds r0, r5, 0 - bl SetTaskFuncWithFollowupFunc - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08109288: .4byte gTasks+0x8 -_0810928C: .4byte gUnknown_203ACFC -_08109290: .4byte gUnknown_203AD10 -_08109294: .4byte sub_8109298 - thumb_func_end sub_81091D0 - - thumb_func_start sub_8109298 -sub_8109298: @ 8109298 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _081092DC @ =gTasks+0x8 - adds r5, r0, r1 - bl MenuHelpers_LinkSomething - lsls r0, 24 - cmp r0, 0 - bne _08109314 - bl sub_810ADAC - lsls r0, 24 - cmp r0, 0 - bne _08109314 - ldr r4, _081092E0 @ =gUnknown_203ACFC - ldrb r1, [r5, 0x16] - ldrb r0, [r4, 0x6] - adds r1, r0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl sub_8109168 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _081092E4 - cmp r0, 0x2 - beq _081092FA - b _08109314 - .align 2, 0 -_081092DC: .4byte gTasks+0x8 -_081092E0: .4byte gUnknown_203ACFC -_081092E4: - ldrh r0, [r5, 0x16] - ldrh r1, [r4, 0x6] - adds r0, r1 - strh r0, [r4, 0x6] - adds r0, r6, 0 - bl SwitchTaskToFollowupFunc - movs r1, 0x1 - negs r1, r1 - adds r0, r6, 0 - b _0810930C -_081092FA: - ldrh r0, [r5, 0x16] - ldrh r2, [r4, 0x6] - adds r0, r2 - strh r0, [r4, 0x6] - adds r0, r6, 0 - bl SwitchTaskToFollowupFunc - adds r0, r6, 0 - movs r1, 0x1 -_0810930C: - movs r2, 0x1 - bl sub_81091D0 - b _081093AA -_08109314: - movs r1, 0x1A - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _08109322 - cmp r0, 0x1 - beq _08109358 - b _081093AA -_08109322: - ldrh r1, [r5, 0x18] - movs r2, 0x18 - ldrsh r0, [r5, r2] - ldr r4, _08109354 @ =0x00007fff - cmp r0, r4 - beq _0810934C - adds r0, r1, 0x1 - strh r0, [r5, 0x18] - lsls r0, 24 - lsrs r0, 24 - bl sub_8109854 - movs r1, 0x18 - ldrsh r0, [r5, r1] - cmp r0, 0xC - bne _08109344 - strh r4, [r5, 0x18] -_08109344: - movs r2, 0x18 - ldrsh r0, [r5, r2] - cmp r0, r4 - bne _081093AA -_0810934C: - ldrh r0, [r5, 0x1A] - adds r0, 0x1 - strh r0, [r5, 0x1A] - b _081093AA - .align 2, 0 -_08109354: .4byte 0x00007fff -_08109358: - ldr r4, _081093B0 @ =gUnknown_203ACFC - ldrh r0, [r5, 0x16] - ldrh r1, [r4, 0x6] - adds r0, r1 - strh r0, [r4, 0x6] - bl sub_81087EC - ldrb r0, [r4, 0x6] - bl sub_810842C - ldr r0, _081093B4 @ =gMultiuseListMenuTemplate - ldrh r2, [r4, 0x6] - lsls r2, 1 - adds r1, r4, 0 - adds r1, 0xE - adds r1, r2, r1 - ldrh r1, [r1] - adds r4, 0x8 - adds r2, r4 - ldrh r2, [r2] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x2 - bl PutWindowTilemap - movs r0, 0 - bl ScheduleBgCopyTilemapToVram - bl sub_8108888 - bl sub_81088D8 - adds r0, r6, 0 - bl SwitchTaskToFollowupFunc -_081093AA: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081093B0: .4byte gUnknown_203ACFC -_081093B4: .4byte gMultiuseListMenuTemplate - thumb_func_end sub_8109298 - - thumb_func_start sub_81093B8 -sub_81093B8: @ 81093B8 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x18 - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r5, r0, 2 - adds r5, r0 - lsls r5, 3 - ldr r0, _08109494 @ =gTasks+0x8 - mov r9, r0 - adds r1, r5, 0 - add r1, r9 - mov r8, r1 - ldrb r0, [r1] - mov r2, sp - adds r2, 0x16 - add r1, sp, 0x14 - bl ListMenuGetScrollAndRow - mov r2, r8 - ldrb r0, [r2] - movs r1, 0x10 - movs r2, 0x1 - bl ListMenuSetUnkIndicatorsStructField - mov r0, r8 - strh r4, [r0, 0x2] - ldr r0, _08109498 @ =gUnknown_203AD10 - ldr r0, [r0] - movs r6, 0 - strb r4, [r0, 0x4] - ldr r4, _0810949C @ =gStringVar1 - ldr r0, _081094A0 @ =gUnknown_203ACFC - ldrb r0, [r0, 0x6] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r2, r8 - ldrh r1, [r2, 0x2] - bl BagGetItemIdByPocketPosition - lsls r0, 16 - lsrs r0, 16 - bl ItemId_GetName - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldr r4, _081094A4 @ =gStringVar4 - ldr r1, _081094A8 @ =gOtherText_WhereShouldTheStrVar1BePlaced - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x1 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0x3 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - str r6, [sp, 0x8] - str r6, [sp, 0xC] - str r6, [sp, 0x10] - movs r0, 0x1 - movs r1, 0x2 - adds r2, r4, 0 - movs r3, 0 - bl sub_810B8F0 - mov r1, r8 - ldrb r0, [r1] - bl ListMenuGetYCoordForPrintingArrowCursor - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0 - bl sub_80986A8 - movs r0, 0 - bl sub_8098660 - bl sub_810899C - mov r2, r8 - ldrb r0, [r2] - movs r1, 0x2 - bl bag_menu_print_cursor_ - movs r0, 0x8 - negs r0, r0 - add r9, r0 - add r5, r9 - ldr r0, _081094AC @ =sub_81094B0 - str r0, [r5] - add sp, 0x18 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08109494: .4byte gTasks+0x8 -_08109498: .4byte gUnknown_203AD10 -_0810949C: .4byte gStringVar1 -_081094A0: .4byte gUnknown_203ACFC -_081094A4: .4byte gStringVar4 -_081094A8: .4byte gOtherText_WhereShouldTheStrVar1BePlaced -_081094AC: .4byte sub_81094B0 - thumb_func_end sub_81093B8 - - thumb_func_start sub_81094B0 -sub_81094B0: @ 81094B0 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, _08109538 @ =gTasks+0x8 - adds r4, r0, r1 - bl sub_80BF72C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0810959E - ldrb r0, [r4] - bl ListMenu_ProcessInput - adds r5, r0, 0 - ldrb r0, [r4] - ldr r3, _0810953C @ =gUnknown_203ACFC - ldrh r2, [r3, 0x6] - lsls r2, 1 - adds r1, r3, 0 - adds r1, 0xE - adds r1, r2, r1 - adds r3, 0x8 - adds r2, r3 - bl ListMenuGetScrollAndRow - ldrb r0, [r4] - bl ListMenuGetYCoordForPrintingArrowCursor - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0 - bl sub_80986A8 - ldr r0, _08109540 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08109548 - movs r0, 0x5 - bl PlaySE - ldr r0, _08109544 @ =gUnknown_203AD10 - ldr r1, [r0] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldrb r0, [r4] - mov r4, sp - adds r4, 0x2 - mov r1, sp - adds r2, r4, 0 - bl ListMenuGetScrollAndRow - mov r0, sp - ldrh r1, [r0] - ldrh r0, [r4] - adds r1, r0 - adds r0, r6, 0 - bl sub_81095AC - b _0810959E - .align 2, 0 -_08109538: .4byte gTasks+0x8 -_0810953C: .4byte gUnknown_203ACFC -_08109540: .4byte gMain -_08109544: .4byte gUnknown_203AD10 -_08109548: - movs r0, 0x2 - negs r0, r0 - cmp r5, r0 - beq _08109558 - adds r0, 0x1 - cmp r5, r0 - bne _08109588 - b _0810959E -_08109558: - movs r0, 0x5 - bl PlaySE - ldr r0, _08109584 @ =gUnknown_203AD10 - ldr r1, [r0] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldrb r0, [r4] - mov r4, sp - adds r4, 0x2 - mov r1, sp - adds r2, r4, 0 - bl ListMenuGetScrollAndRow - mov r0, sp - ldrh r1, [r0] - ldrh r0, [r4] - adds r1, r0 - adds r0, r6, 0 - bl sub_810967C - b _0810959E - .align 2, 0 -_08109584: .4byte gUnknown_203AD10 -_08109588: - movs r0, 0x5 - bl PlaySE - ldr r0, _081095A8 @ =gUnknown_203AD10 - ldr r1, [r0] - movs r0, 0xFF - strb r0, [r1, 0x4] - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_81095AC -_0810959E: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081095A8: .4byte gUnknown_203AD10 - thumb_func_end sub_81094B0 - - thumb_func_start sub_81095AC -sub_81095AC: @ 81095AC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r5, r1, 0 - lsls r0, 24 - lsrs r1, r0, 24 - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - mov r9, r0 - ldr r0, _081095E4 @ =gTasks+0x8 - mov r10, r0 - mov r6, r9 - add r6, r10 - movs r3, 0x2 - ldrsh r2, [r6, r3] - cmp r2, r5 - beq _081095DA - subs r0, r5, 0x1 - cmp r2, r0 - bne _081095E8 -_081095DA: - adds r0, r1, 0 - adds r1, r5, 0 - bl sub_810967C - b _0810965C - .align 2, 0 -_081095E4: .4byte gTasks+0x8 -_081095E8: - ldr r1, _0810966C @ =gBagPockets - ldr r4, _08109670 @ =gUnknown_203ACFC - ldrh r0, [r4, 0x6] - lsls r0, 3 - adds r0, r1 - ldr r0, [r0] - adds r1, r2, 0 - adds r2, r5, 0 - bl ItemMenu_MoveItemSlotToNewPositionInArray - ldrb r0, [r6] - ldrh r2, [r4, 0x6] - lsls r2, 1 - movs r1, 0xE - adds r1, r4 - mov r8, r1 - adds r1, r2, r1 - adds r7, r4, 0 - adds r7, 0x8 - adds r2, r7 - bl DestroyListMenuTask - movs r3, 0x2 - ldrsh r0, [r6, r3] - cmp r0, r5 - bcs _08109628 - ldrh r1, [r4, 0x6] - lsls r1, 1 - adds r1, r7 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] -_08109628: - ldrb r0, [r4, 0x6] - bl sub_810842C - ldr r0, _08109674 @ =gMultiuseListMenuTemplate - ldrh r2, [r4, 0x6] - lsls r2, 1 - mov r3, r8 - adds r1, r2, r3 - ldrh r1, [r1] - adds r2, r7 - ldrh r2, [r2] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6] - movs r0, 0x1 - bl sub_8098660 - bl sub_81088D8 - mov r0, r10 - subs r0, 0x8 - add r0, r9 - ldr r1, _08109678 @ =sub_8108F0C - str r1, [r0] -_0810965C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810966C: .4byte gBagPockets -_08109670: .4byte gUnknown_203ACFC -_08109674: .4byte gMultiuseListMenuTemplate -_08109678: .4byte sub_8108F0C - thumb_func_end sub_81095AC - - thumb_func_start sub_810967C -sub_810967C: @ 810967C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - mov r8, r1 - ldr r0, _0810970C @ =gTasks+0x8 - mov r10, r0 - mov r6, r8 - add r6, r10 - ldrb r0, [r6] - ldr r5, _08109710 @ =gUnknown_203ACFC - ldrh r2, [r5, 0x6] - lsls r2, 1 - movs r1, 0xE - adds r1, r5 - mov r9, r1 - adds r1, r2, r1 - adds r7, r5, 0 - adds r7, 0x8 - adds r2, r7 - bl DestroyListMenuTask - movs r3, 0x2 - ldrsh r0, [r6, r3] - cmp r0, r4 - bcs _081096CA - ldrh r1, [r5, 0x6] - lsls r1, 1 - adds r1, r7 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] -_081096CA: - ldrb r0, [r5, 0x6] - bl sub_810842C - ldr r0, _08109714 @ =gMultiuseListMenuTemplate - ldrh r2, [r5, 0x6] - lsls r2, 1 - mov r3, r9 - adds r1, r2, r3 - ldrh r1, [r1] - adds r2, r7 - ldrh r2, [r2] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6] - movs r0, 0x1 - bl sub_8098660 - bl sub_81088D8 - mov r0, r10 - subs r0, 0x8 - add r0, r8 - ldr r1, _08109718 @ =sub_8108F0C - str r1, [r0] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810970C: .4byte gTasks+0x8 -_08109710: .4byte gUnknown_203ACFC -_08109714: .4byte gMultiuseListMenuTemplate -_08109718: .4byte sub_8108F0C - thumb_func_end sub_810967C - - thumb_func_start sub_810971C -sub_810971C: @ 810971C - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x14 - adds r4, r0, 0 - adds r6, r1, 0 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0x6 - movs r1, 0x2 - bl sub_810B9DC - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _081097D4 @ =gUnknown_203ACFC - ldrb r0, [r0, 0x6] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - bl BagGetItemIdByPocketPosition - lsls r0, 16 - lsrs r0, 16 - ldr r1, _081097D8 @ =gStringVar1 - mov r10, r1 - bl CopyItemName - ldr r0, _081097DC @ =gStringVar4 - mov r9, r0 - adds r1, r6, 0 - bl StringExpandPlaceholders - movs r0, 0x2 - str r0, [sp] - movs r1, 0x1 - mov r8, r1 - str r1, [sp, 0x4] - movs r6, 0 - str r6, [sp, 0x8] - str r6, [sp, 0xC] - str r1, [sp, 0x10] - adds r0, r5, 0 - movs r1, 0x2 - mov r2, r9 - movs r3, 0 - bl sub_810B8F0 - movs r0, 0 - movs r1, 0 - bl sub_810B9DC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r0, r10 - movs r1, 0x1 - movs r2, 0x2 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r1, _081097E0 @ =gText_TimesStrVar1 - mov r0, r9 - bl StringExpandPlaceholders - movs r0, 0xA - str r0, [sp] - mov r0, r8 - str r0, [sp, 0x4] - str r6, [sp, 0x8] - str r6, [sp, 0xC] - str r0, [sp, 0x10] - adds r0, r4, 0 - movs r1, 0 - mov r2, r9 - movs r3, 0x4 - bl sub_810B8F0 - bl sub_8108940 - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_081097D4: .4byte gUnknown_203ACFC -_081097D8: .4byte gStringVar1 -_081097DC: .4byte gStringVar4 -_081097E0: .4byte gText_TimesStrVar1 - thumb_func_end sub_810971C - - thumb_func_start sub_81097E4 -sub_81097E4: @ 81097E4 - push {r4-r6,lr} - sub sp, 0x14 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0 - bl sub_810BAD8 - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - adds r0, r6, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r0, _08109848 @ =gStringVar1 - lsls r4, 16 - asrs r4, 16 - adds r1, r4, 0 - movs r2, 0x2 - adds r3, r5, 0 - bl ConvertIntToDecimalStringN - ldr r4, _0810984C @ =gStringVar4 - ldr r1, _08109850 @ =gText_TimesStrVar1 - adds r0, r4, 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] - adds r0, r6, 0 - movs r1, 0 - adds r2, r4, 0 - movs r3, 0x4 - bl sub_810B8F0 - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08109848: .4byte gStringVar1 -_0810984C: .4byte gStringVar4 -_08109850: .4byte gText_TimesStrVar1 - thumb_func_end sub_81097E4 - - thumb_func_start sub_8109854 -sub_8109854: @ 8109854 - push {lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - movs r2, 0xC - subs r2, r0 - lsls r1, r2, 3 - adds r1, r2 - lsls r1, 2 - ldr r2, _0810988C @ =gUnknown_8452D08 - adds r1, r2 - movs r3, 0xD - subs r3, r0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x12 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r2, 0xB - bl CopyToBgTilemapBufferRect - movs r0, 0x1 - bl ScheduleBgCopyTilemapToVram - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_0810988C: .4byte gUnknown_8452D08 - thumb_func_end sub_8109854 - - thumb_func_start sub_8109890 -sub_8109890: @ 8109890 - push {r4-r7,lr} - sub sp, 0x14 - ldr r0, _081098A8 @ =gUnknown_203ACFC - ldrb r0, [r0, 0x4] - cmp r0, 0x6 - beq _08109924 - cmp r0, 0x6 - bgt _081098AC - cmp r0, 0x5 - beq _081098B6 - b _0810993C - .align 2, 0 -_081098A8: .4byte gUnknown_203ACFC -_081098AC: - cmp r0, 0x7 - beq _081098B6 - cmp r0, 0x8 - beq _08109924 - b _0810993C -_081098B6: - ldr r2, _081098D4 @ =gSpecialVar_ItemId - ldrh r1, [r2] - ldr r0, _081098D8 @ =0x0000016d - cmp r1, r0 - bne _081098E8 - ldr r1, _081098DC @ =gUnknown_203AD20 - movs r0, 0x8 - strb r0, [r1] - movs r0, 0x4 - strb r0, [r1, 0x1] - ldr r0, _081098E0 @ =gUnknown_203AD24 - str r1, [r0] - ldr r1, _081098E4 @ =gUnknown_203AD28 - movs r0, 0x2 - b _08109AD0 - .align 2, 0 -_081098D4: .4byte gSpecialVar_ItemId -_081098D8: .4byte 0x0000016d -_081098DC: .4byte gUnknown_203AD20 -_081098E0: .4byte gUnknown_203AD24 -_081098E4: .4byte gUnknown_203AD28 -_081098E8: - ldrh r0, [r2] - bl ItemId_GetBattleUsage - lsls r0, 24 - cmp r0, 0 - beq _0810990C - ldr r1, _08109900 @ =gUnknown_203AD24 - ldr r0, _08109904 @ =gUnknown_8452F30 - str r0, [r1] - ldr r1, _08109908 @ =gUnknown_203AD28 - movs r0, 0x2 - b _08109AD0 - .align 2, 0 -_08109900: .4byte gUnknown_203AD24 -_08109904: .4byte gUnknown_8452F30 -_08109908: .4byte gUnknown_203AD28 -_0810990C: - ldr r1, _08109918 @ =gUnknown_203AD24 - ldr r0, _0810991C @ =gUnknown_8452F32 - str r0, [r1] - ldr r1, _08109920 @ =gUnknown_203AD28 - movs r0, 0x1 - b _08109AD0 - .align 2, 0 -_08109918: .4byte gUnknown_203AD24 -_0810991C: .4byte gUnknown_8452F32 -_08109920: .4byte gUnknown_203AD28 -_08109924: - ldr r1, _08109930 @ =gUnknown_203AD24 - ldr r0, _08109934 @ =gUnknown_8452F30 - str r0, [r1] - ldr r1, _08109938 @ =gUnknown_203AD28 - movs r0, 0x2 - b _08109AD0 - .align 2, 0 -_08109930: .4byte gUnknown_203AD24 -_08109934: .4byte gUnknown_8452F30 -_08109938: .4byte gUnknown_203AD28 -_0810993C: - bl MenuHelpers_LinkSomething - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _08109950 - bl InUnionRoom - cmp r0, 0x1 - bne _081099C4 -_08109950: - ldr r1, _08109970 @ =gSpecialVar_ItemId - ldr r2, _08109974 @ =0xfffffe94 - adds r0, r2, 0 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _08109984 - ldr r1, _08109978 @ =gUnknown_203AD24 - ldr r0, _0810997C @ =gUnknown_8452F2E - str r0, [r1] - ldr r1, _08109980 @ =gUnknown_203AD28 - movs r0, 0x2 - b _08109AD0 - .align 2, 0 -_08109970: .4byte gSpecialVar_ItemId -_08109974: .4byte 0xfffffe94 -_08109978: .4byte gUnknown_203AD24 -_0810997C: .4byte gUnknown_8452F2E -_08109980: .4byte gUnknown_203AD28 -_08109984: - ldr r0, _08109998 @ =gUnknown_203ACFC - ldrh r2, [r0, 0x6] - adds r3, r0, 0 - cmp r2, 0x1 - bne _081099A0 - ldr r0, _0810999C @ =gUnknown_203AD28 - strb r2, [r0] - adds r7, r0, 0 - b _081099A8 - .align 2, 0 -_08109998: .4byte gUnknown_203ACFC -_0810999C: .4byte gUnknown_203AD28 -_081099A0: - ldr r1, _081099B8 @ =gUnknown_203AD28 - movs r0, 0x2 - strb r0, [r1] - adds r7, r1, 0 -_081099A8: - ldr r0, _081099BC @ =gUnknown_203AD24 - ldrh r1, [r3, 0x6] - lsls r1, 1 - ldr r2, _081099C0 @ =gUnknown_8452F28 - adds r1, r2 - str r1, [r0] - b _08109AD4 - .align 2, 0 -_081099B8: .4byte gUnknown_203AD28 -_081099BC: .4byte gUnknown_203AD24 -_081099C0: .4byte gUnknown_8452F28 -_081099C4: - ldr r5, _081099D8 @ =gUnknown_203ACFC - ldrh r0, [r5, 0x6] - cmp r0, 0x1 - beq _08109A34 - cmp r0, 0x1 - bgt _081099E0 - cmp r0, 0 - beq _081099EC - ldr r7, _081099DC @ =gUnknown_203AD28 - b _08109AD4 - .align 2, 0 -_081099D8: .4byte gUnknown_203ACFC -_081099DC: .4byte gUnknown_203AD28 -_081099E0: - cmp r0, 0x2 - beq _08109AC4 - ldr r7, _081099E8 @ =gUnknown_203AD28 - b _08109AD4 - .align 2, 0 -_081099E8: .4byte gUnknown_203AD28 -_081099EC: - ldr r4, _08109A0C @ =gUnknown_203AD28 - movs r0, 0x4 - strb r0, [r4] - ldr r0, _08109A10 @ =gSpecialVar_ItemId - ldrh r0, [r0] - bl ItemIsMail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08109A1C - ldr r1, _08109A14 @ =gUnknown_203AD24 - ldr r0, _08109A18 @ =gUnknown_8452F24 - str r0, [r1] - adds r7, r4, 0 - b _08109AD4 - .align 2, 0 -_08109A0C: .4byte gUnknown_203AD28 -_08109A10: .4byte gSpecialVar_ItemId -_08109A14: .4byte gUnknown_203AD24 -_08109A18: .4byte gUnknown_8452F24 -_08109A1C: - ldr r0, _08109A2C @ =gUnknown_203AD24 - ldrh r1, [r5, 0x6] - lsls r1, 2 - ldr r2, _08109A30 @ =gUnknown_8452F18 - adds r1, r2 - str r1, [r0] - adds r7, r4, 0 - b _08109AD4 - .align 2, 0 -_08109A2C: .4byte gUnknown_203AD24 -_08109A30: .4byte gUnknown_8452F18 -_08109A34: - ldr r0, _08109A5C @ =gUnknown_203AD24 - ldr r2, _08109A60 @ =gUnknown_203AD20 - str r2, [r0] - ldr r3, _08109A64 @ =gUnknown_203AD28 - movs r0, 0x3 - strb r0, [r3] - movs r0, 0x4 - strb r0, [r2, 0x2] - ldr r0, _08109A68 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _08109A6C @ =0x00000296 - adds r0, r1 - ldr r1, _08109A70 @ =gSpecialVar_ItemId - ldrh r0, [r0] - adds r7, r3, 0 - ldrh r3, [r1] - cmp r0, r3 - bne _08109A74 - movs r0, 0xA - b _08109A76 - .align 2, 0 -_08109A5C: .4byte gUnknown_203AD24 -_08109A60: .4byte gUnknown_203AD20 -_08109A64: .4byte gUnknown_203AD28 -_08109A68: .4byte gSaveBlock1Ptr -_08109A6C: .4byte 0x00000296 -_08109A70: .4byte gSpecialVar_ItemId -_08109A74: - movs r0, 0x2 -_08109A76: - strb r0, [r2, 0x1] - ldrh r1, [r1] - ldr r3, _08109A8C @ =0xfffffe94 - adds r0, r1, r3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _08109A90 - movs r0, 0x7 - strb r0, [r2] - b _08109AD4 - .align 2, 0 -_08109A8C: .4byte 0xfffffe94 -_08109A90: - lsls r1, 16 - movs r0, 0xB4 - lsls r0, 17 - cmp r1, r0 - bne _08109AB0 - movs r0, 0x6 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - beq _08109AB0 - ldr r1, _08109AAC @ =gUnknown_203AD20 - movs r0, 0x9 - b _08109AB4 - .align 2, 0 -_08109AAC: .4byte gUnknown_203AD20 -_08109AB0: - ldr r1, _08109ABC @ =gUnknown_203AD20 - movs r0, 0 -_08109AB4: - strb r0, [r1] - ldr r7, _08109AC0 @ =gUnknown_203AD28 - b _08109AD4 - .align 2, 0 -_08109ABC: .4byte gUnknown_203AD20 -_08109AC0: .4byte gUnknown_203AD28 -_08109AC4: - ldr r1, _08109B98 @ =gUnknown_203AD24 - ldr r0, _08109B9C @ =gUnknown_8452F18 - adds r0, 0x8 - str r0, [r1] - ldr r1, _08109BA0 @ =gUnknown_203AD28 - movs r0, 0x3 -_08109AD0: - strb r0, [r1] - adds r7, r1, 0 -_08109AD4: - ldrb r1, [r7] - subs r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0xA - bl sub_810B9DC - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - movs r0, 0x2 - movs r1, 0 - bl GetMenuCursorDimensionByFont - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0x2 - movs r1, 0x2 - bl GetFontAttribute - 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 - str r4, [sp] - str r0, [sp, 0x4] - ldrb r0, [r7] - str r0, [sp, 0x8] - ldr r0, _08109BA4 @ =gUnknown_8452EB8 - str r0, [sp, 0xC] - ldr r0, _08109B98 @ =gUnknown_203AD24 - ldr r0, [r0] - str r0, [sp, 0x10] - adds r0, r6, 0 - movs r1, 0x2 - adds r2, r5, 0 - movs r3, 0x2 - bl AddItemMenuActionTextPrinters - movs r0, 0x2 - movs r1, 0x1 - bl GetFontAttribute - adds r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - ldrb r0, [r7] - str r0, [sp, 0x4] - movs r5, 0 - str r5, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl Menu_InitCursor - movs r0, 0x6 - movs r1, 0 - bl sub_810B9DC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08109BA8 @ =gSpecialVar_ItemId - ldrh r0, [r0] - ldr r1, _08109BAC @ =gStringVar1 - bl CopyItemName - ldr r6, _08109BB0 @ =gStringVar4 - ldr r1, _08109BB4 @ =gOtherText_StrVar1 - adds r0, r6, 0 - bl StringExpandPlaceholders - 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] - adds r0, r4, 0 - movs r1, 0x2 - adds r2, r6, 0 - movs r3, 0 - bl sub_810B8F0 - add sp, 0x14 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08109B98: .4byte gUnknown_203AD24 -_08109B9C: .4byte gUnknown_8452F18 -_08109BA0: .4byte gUnknown_203AD28 -_08109BA4: .4byte gUnknown_8452EB8 -_08109BA8: .4byte gSpecialVar_ItemId -_08109BAC: .4byte gStringVar1 -_08109BB0: .4byte gStringVar4 -_08109BB4: .4byte gOtherText_StrVar1 - thumb_func_end sub_8109890 - - thumb_func_start sub_8109BB8 -sub_8109BB8: @ 8109BB8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_8109890 - ldr r1, _08109BDC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _08109BE0 @ =sub_8109BE4 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08109BDC: .4byte gTasks -_08109BE0: .4byte sub_8109BE4 - thumb_func_end sub_8109BB8 - - thumb_func_start sub_8109BE4 -sub_8109BE4: @ 8109BE4 - 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 _08109C42 - bl Menu_ProcessInputNoWrapAround - lsls r0, 24 - asrs r4, r0, 24 - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _08109C42 - adds r0, 0x1 - cmp r4, r0 - bne _08109C24 - movs r0, 0x5 - bl PlaySE - ldr r0, _08109C20 @ =gUnknown_8452EB8 - ldr r1, [r0, 0x24] - adds r0, r5, 0 - bl _call_via_r1 - b _08109C42 - .align 2, 0 -_08109C20: .4byte gUnknown_8452EB8 -_08109C24: - movs r0, 0x5 - bl PlaySE - ldr r1, _08109C48 @ =gUnknown_8452EB8 - ldr r0, _08109C4C @ =gUnknown_203AD24 - ldr r0, [r0] - 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 -_08109C42: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08109C48: .4byte gUnknown_8452EB8 -_08109C4C: .4byte gUnknown_203AD24 - thumb_func_end sub_8109BE4 - - thumb_func_start sub_8109C50 -sub_8109C50: @ 8109C50 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r5, _08109CA0 @ =gSpecialVar_ItemId - ldrh r0, [r5] - bl ItemId_GetFieldFunc - cmp r0, 0 - beq _08109CB4 - movs r0, 0xA - bl sub_810BA3C - movs r0, 0x6 - bl sub_810BA3C - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0 - bl ScheduleBgCopyTilemapToVram - bl CalculatePlayerPartyCount - lsls r0, 24 - cmp r0, 0 - bne _08109CA4 - ldrh r0, [r5] - bl ItemId_GetType - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08109CA4 - adds r0, r4, 0 - bl sub_810A170 - b _08109CB4 - .align 2, 0 -_08109CA0: .4byte gSpecialVar_ItemId -_08109CA4: - ldr r0, _08109CBC @ =gSpecialVar_ItemId - ldrh r0, [r0] - bl ItemId_GetFieldFunc - adds r1, r0, 0 - adds r0, r4, 0 - bl _call_via_r1 -_08109CB4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08109CBC: .4byte gSpecialVar_ItemId - thumb_func_end sub_8109C50 - - thumb_func_start sub_8109CC0 -sub_8109CC0: @ 8109CC0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r6, r0, 3 - ldr r7, _08109D14 @ =gTasks+0x8 - adds r4, r6, r7 - movs r0, 0xA - bl sub_810BAD8 - lsls r0, 24 - lsrs r0, 24 - bl ClearWindowTilemap - movs r0, 0x6 - bl sub_810BAD8 - lsls r0, 24 - lsrs r0, 24 - bl ClearWindowTilemap - movs r0, 0xA - bl sub_810BA3C - movs r0, 0x6 - bl sub_810BA3C - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - strh r0, [r4, 0x10] - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _08109D18 - adds r0, r5, 0 - bl sub_8109D38 - b _08109D2A - .align 2, 0 -_08109D14: .4byte gTasks+0x8 -_08109D18: - ldrh r0, [r4, 0x2] - ldr r1, _08109D30 @ =gText_TossOutHowManyStrVar1s - bl sub_810971C - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _08109D34 @ =sub_8109DEC - str r1, [r0] -_08109D2A: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08109D30: .4byte gText_TossOutHowManyStrVar1s -_08109D34: .4byte sub_8109DEC - thumb_func_end sub_8109CC0 - - thumb_func_start sub_8109D38 -sub_8109D38: @ 8109D38 - push {r4,r5,lr} - sub sp, 0x14 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - ldr r0, _08109D9C @ =gTasks+0x8 - adds r1, r0 - ldr r0, _08109DA0 @ =gStringVar2 - movs r2, 0x10 - ldrsh r1, [r1, r2] - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r5, _08109DA4 @ =gStringVar4 - ldr r1, _08109DA8 @ =gText_ThrowAwayStrVar2OfThisItemQM - adds r0, r5, 0 - bl StringExpandPlaceholders - movs r0, 0x6 - movs r1, 0x1 - bl sub_810B9DC - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - str r1, [sp] - movs r2, 0x1 - str r2, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - str r1, [sp, 0xC] - str r2, [sp, 0x10] - movs r1, 0x2 - adds r2, r5, 0 - movs r3, 0 - bl sub_810B8F0 - ldr r1, _08109DAC @ =gUnknown_8452F50 - adds r0, r4, 0 - bl sub_810BAE8 - add sp, 0x14 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08109D9C: .4byte gTasks+0x8 -_08109DA0: .4byte gStringVar2 -_08109DA4: .4byte gStringVar4 -_08109DA8: .4byte gText_ThrowAwayStrVar2OfThisItemQM -_08109DAC: .4byte gUnknown_8452F50 - thumb_func_end sub_8109D38 - - thumb_func_start sub_8109DB0 -sub_8109DB0: @ 8109DB0 - 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, _08109DE8 @ =gTasks+0x8 - adds r4, r0 - movs r0, 0x6 - bl sub_810BA3C - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0 - bl ScheduleBgCopyTilemapToVram - ldrb r0, [r4] - movs r1, 0x1 - bl bag_menu_print_cursor_ - adds r0, r5, 0 - bl sub_810910C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08109DE8: .4byte gTasks+0x8 - thumb_func_end sub_8109DB0 - - thumb_func_start sub_8109DEC -sub_8109DEC: @ 8109DEC - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _08109E1C @ =gTasks+0x8 - adds r4, r0, r1 - adds r0, r4, 0 - adds r0, 0x10 - ldrh r1, [r4, 0x4] - bl AdjustQuantityAccordingToDPadInput - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08109E20 - movs r1, 0x10 - ldrsh r0, [r4, r1] - movs r1, 0x3 - bl sub_81097E4 - b _08109EA2 - .align 2, 0 -_08109E1C: .4byte gTasks+0x8 -_08109E20: - ldr r0, _08109E60 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08109E64 - movs r0, 0x5 - bl PlaySE - movs r0, 0x6 - bl sub_810BAD8 - lsls r0, 24 - lsrs r0, 24 - bl ClearWindowTilemap - movs r0, 0x6 - bl sub_810BA3C - movs r0, 0 - bl sub_810BA3C - movs r0, 0 - bl ScheduleBgCopyTilemapToVram - bl sub_8108978 - adds r0, r5, 0 - bl sub_8109D38 - b _08109EA2 - .align 2, 0 -_08109E60: .4byte gMain -_08109E64: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08109EA2 - movs r0, 0x5 - bl PlaySE - movs r0, 0x6 - bl sub_810BA3C - movs r0, 0 - bl sub_810BA3C - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0 - bl ScheduleBgCopyTilemapToVram - ldrb r0, [r4] - movs r1, 0x1 - bl bag_menu_print_cursor_ - bl sub_8108978 - adds r0, r6, 0 - bl sub_810910C -_08109EA2: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8109DEC - - thumb_func_start sub_8109EA8 -sub_8109EA8: @ 8109EA8 - push {r4-r6,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r5, _08109F28 @ =gTasks+0x8 - adds r6, r4, r5 - movs r0, 0x6 - bl sub_810BA3C - ldr r0, _08109F2C @ =gUnknown_203ACFC - ldrb r0, [r0, 0x6] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x2] - bl BagGetItemIdByPocketPosition - lsls r0, 16 - lsrs r0, 16 - ldr r1, _08109F30 @ =gStringVar1 - bl CopyItemName - ldr r0, _08109F34 @ =gStringVar2 - movs r2, 0x10 - ldrsh r1, [r6, r2] - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r6, _08109F38 @ =gStringVar4 - ldr r1, _08109F3C @ =gText_ThrewAwayStrVar2StrVar1s - adds r0, r6, 0 - bl StringExpandPlaceholders - movs r0, 0x6 - movs r1, 0x3 - bl sub_810B9DC - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - str r1, [sp] - movs r2, 0x1 - str r2, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - str r1, [sp, 0xC] - str r2, [sp, 0x10] - movs r1, 0x2 - adds r2, r6, 0 - movs r3, 0 - bl sub_810B8F0 - subs r5, 0x8 - adds r4, r5 - ldr r0, _08109F40 @ =sub_8109F44 - str r0, [r4] - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08109F28: .4byte gTasks+0x8 -_08109F2C: .4byte gUnknown_203ACFC -_08109F30: .4byte gStringVar1 -_08109F34: .4byte gStringVar2 -_08109F38: .4byte gStringVar4 -_08109F3C: .4byte gText_ThrewAwayStrVar2StrVar1s -_08109F40: .4byte sub_8109F44 - thumb_func_end sub_8109EA8 - - thumb_func_start sub_8109F44 -sub_8109F44: @ 8109F44 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r0, 2 - add r0, r8 - lsls r0, 3 - ldr r1, _08109FEC @ =gTasks+0x8 - adds r7, r0, r1 - ldr r0, _08109FF0 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08109F6E - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08109FE0 -_08109F6E: - movs r0, 0x5 - bl PlaySE - ldr r0, _08109FF4 @ =gSpecialVar_ItemId - ldrh r0, [r0] - ldrh r1, [r7, 0x10] - bl RemoveBagItem - movs r0, 0x6 - bl sub_810BA3C - ldrb r0, [r7] - ldr r4, _08109FF8 @ =gUnknown_203ACFC - ldrh r2, [r4, 0x6] - lsls r2, 1 - adds r5, r4, 0 - adds r5, 0xE - adds r1, r2, r5 - adds r6, r4, 0 - adds r6, 0x8 - adds r2, r6 - bl DestroyListMenuTask - ldrb r0, [r4, 0x6] - bl sub_8108DC8 - ldrb r0, [r4, 0x6] - bl sub_81089F4 - ldrb r0, [r4, 0x6] - bl sub_810842C - ldr r0, _08109FFC @ =gMultiuseListMenuTemplate - ldrh r2, [r4, 0x6] - lsls r2, 1 - adds r5, r2, r5 - ldrh r1, [r5] - adds r2, r6 - ldrh r2, [r2] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7] - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0 - bl ScheduleBgCopyTilemapToVram - ldrb r0, [r7] - movs r1, 0x1 - bl bag_menu_print_cursor_ - mov r0, r8 - bl sub_810910C -_08109FE0: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08109FEC: .4byte gTasks+0x8 -_08109FF0: .4byte gMain -_08109FF4: .4byte gSpecialVar_ItemId -_08109FF8: .4byte gUnknown_203ACFC -_08109FFC: .4byte gMultiuseListMenuTemplate - thumb_func_end sub_8109F44 - - thumb_func_start sub_810A000 -sub_810A000: @ 810A000 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r0, 2 - add r0, r8 - lsls r0, 3 - ldr r1, _0810A040 @ =gTasks+0x8 - adds r7, r0, r1 - ldr r0, _0810A044 @ =gUnknown_203ACFC - ldrb r0, [r0, 0x6] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r7, 0x2] - bl BagGetItemIdByPocketPosition - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, _0810A048 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r3, _0810A04C @ =0x00000296 - adds r1, r0, r3 - ldrh r0, [r1] - cmp r0, r2 - bne _0810A050 - movs r0, 0 - strh r0, [r1] - b _0810A052 - .align 2, 0 -_0810A040: .4byte gTasks+0x8 -_0810A044: .4byte gUnknown_203ACFC -_0810A048: .4byte gSaveBlock1Ptr -_0810A04C: .4byte 0x00000296 -_0810A050: - strh r2, [r1] -_0810A052: - ldrb r0, [r7] - ldr r4, _0810A0A0 @ =gUnknown_203ACFC - ldrh r2, [r4, 0x6] - lsls r2, 1 - adds r5, r4, 0 - adds r5, 0xE - adds r1, r2, r5 - adds r6, r4, 0 - adds r6, 0x8 - adds r2, r6 - bl DestroyListMenuTask - ldrb r0, [r4, 0x6] - bl sub_810842C - ldr r0, _0810A0A4 @ =gMultiuseListMenuTemplate - ldrh r2, [r4, 0x6] - lsls r2, 1 - adds r5, r2, r5 - ldrh r1, [r5] - adds r2, r6 - ldrh r2, [r2] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7] - movs r0, 0 - movs r1, 0x1 - bl CopyWindowToVram - mov r0, r8 - bl sub_810A2DC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810A0A0: .4byte gUnknown_203ACFC -_0810A0A4: .4byte gMultiuseListMenuTemplate - thumb_func_end sub_810A000 - - thumb_func_start sub_810A0A8 -sub_810A0A8: @ 810A0A8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r4, r0, 24 - adds r7, r4, 0 - lsls r0, r4, 2 - adds r0, r4 - lsls r6, r0, 3 - ldr r0, _0810A110 @ =gTasks+0x8 - mov r8, r0 - adds r1, r6, r0 - ldr r0, _0810A114 @ =gUnknown_203ACFC - ldrb r0, [r0, 0x6] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r1, 0x2] - bl BagGetItemIdByPocketPosition - lsls r0, 16 - lsrs r5, r0, 16 - movs r0, 0xA - bl sub_810BA3C - movs r0, 0x6 - bl sub_810BA3C - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0 - movs r1, 0x1 - bl CopyWindowToVram - adds r0, r5, 0 - bl itemid_80BF6D8_mail_related - lsls r0, 24 - cmp r0, 0 - bne _0810A120 - ldr r2, _0810A118 @ =gUnknown_841630F - ldr r3, _0810A11C @ =sub_810A1D0 - adds r0, r4, 0 - movs r1, 0x2 - bl DisplayItemMessageInBag - b _0810A166 - .align 2, 0 -_0810A110: .4byte gTasks+0x8 -_0810A114: .4byte gUnknown_203ACFC -_0810A118: .4byte gUnknown_841630F -_0810A11C: .4byte sub_810A1D0 -_0810A120: - adds r0, r5, 0 - bl itemid_is_unique - lsls r0, 24 - cmp r0, 0 - bne _0810A160 - bl CalculatePlayerPartyCount - lsls r0, 24 - cmp r0, 0 - bne _0810A13E - adds r0, r4, 0 - bl sub_810A170 - b _0810A166 -_0810A13E: - ldr r0, _0810A154 @ =gUnknown_203AD10 - ldr r1, [r0] - ldr r0, _0810A158 @ =CB2_ChooseMonToGiveItem - str r0, [r1] - mov r0, r8 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _0810A15C @ =ItemMenu_StartFadeToExitCallback - str r1, [r0] - b _0810A166 - .align 2, 0 -_0810A154: .4byte gUnknown_203AD10 -_0810A158: .4byte CB2_ChooseMonToGiveItem -_0810A15C: .4byte ItemMenu_StartFadeToExitCallback -_0810A160: - adds r0, r7, 0 - bl sub_810A18C -_0810A166: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_810A0A8 - - thumb_func_start sub_810A170 -sub_810A170: @ 810A170 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810A184 @ =gText_ThereIsNoPokemon - ldr r3, _0810A188 @ =sub_810A1D0 - movs r1, 0x2 - bl DisplayItemMessageInBag - pop {r0} - bx r0 - .align 2, 0 -_0810A184: .4byte gText_ThereIsNoPokemon -_0810A188: .4byte sub_810A1D0 - thumb_func_end sub_810A170 - - thumb_func_start sub_810A18C -sub_810A18C: @ 810A18C - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0810A1BC @ =gSpecialVar_ItemId - ldrh r0, [r0] - ldr r1, _0810A1C0 @ =gStringVar1 - bl CopyItemName - ldr r5, _0810A1C4 @ =gStringVar4 - ldr r1, _0810A1C8 @ =gText_ItemCantBeHeld - adds r0, r5, 0 - bl StringExpandPlaceholders - ldr r3, _0810A1CC @ =sub_810A1D0 - adds r0, r4, 0 - movs r1, 0x2 - adds r2, r5, 0 - bl DisplayItemMessageInBag - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810A1BC: .4byte gSpecialVar_ItemId -_0810A1C0: .4byte gStringVar1 -_0810A1C4: .4byte gStringVar4 -_0810A1C8: .4byte gText_ItemCantBeHeld -_0810A1CC: .4byte sub_810A1D0 - thumb_func_end sub_810A18C - - thumb_func_start sub_810A1D0 -sub_810A1D0: @ 810A1D0 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0810A1F4 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0810A1EE - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_810A1F8 -_0810A1EE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810A1F4: .4byte gMain - thumb_func_end sub_810A1D0 - - thumb_func_start sub_810A1F8 -sub_810A1F8: @ 810A1F8 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - mov r8, r0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r5, r0, 2 - add r5, r8 - lsls r5, 3 - ldr r0, _0810A27C @ =gTasks+0x8 - adds r5, r0 - movs r0, 0x5 - bl sub_810BA9C - ldrb r0, [r5] - ldr r4, _0810A280 @ =gUnknown_203ACFC - ldrh r2, [r4, 0x6] - lsls r2, 1 - adds r6, r4, 0 - adds r6, 0xE - adds r1, r2, r6 - movs r3, 0x8 - adds r3, r4 - mov r9, r3 - add r2, r9 - bl DestroyListMenuTask - ldrb r0, [r4, 0x6] - bl sub_8108DC8 - ldrb r0, [r4, 0x6] - bl sub_81089F4 - ldrb r0, [r4, 0x6] - bl sub_810842C - ldr r0, _0810A284 @ =gMultiuseListMenuTemplate - ldrh r2, [r4, 0x6] - lsls r2, 1 - adds r6, r2, r6 - ldrh r1, [r6] - add r2, r9 - ldrh r2, [r2] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - movs r0, 0 - bl ScheduleBgCopyTilemapToVram - ldrb r0, [r5] - movs r1, 0x1 - bl bag_menu_print_cursor_ - mov r0, r8 - bl sub_810910C - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810A27C: .4byte gTasks+0x8 -_0810A280: .4byte gUnknown_203ACFC -_0810A284: .4byte gMultiuseListMenuTemplate - thumb_func_end sub_810A1F8 - - thumb_func_start sub_810A288 -sub_810A288: @ 810A288 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, _0810A2D8 @ =gTasks+0x8 - adds r4, r0 - ldrb r0, [r4] - mov r6, sp - adds r6, 0x2 - mov r1, sp - adds r2, r6, 0 - bl ListMenuGetScrollAndRow - mov r0, sp - ldrh r0, [r0] - ldrh r1, [r6] - adds r0, r1 - bl sub_8108818 - movs r0, 0 - bl PutWindowTilemap - movs r0, 0 - bl ScheduleBgCopyTilemapToVram - ldrb r0, [r4] - movs r1, 0x1 - bl bag_menu_print_cursor_ - adds r0, r5, 0 - bl sub_810910C - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810A2D8: .4byte gTasks+0x8 - thumb_func_end sub_810A288 - - thumb_func_start sub_810A2DC -sub_810A2DC: @ 810A2DC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0xA - bl sub_810BA3C - movs r0, 0x6 - bl sub_810BA3C - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0 - bl ScheduleBgCopyTilemapToVram - ldr r1, _0810A320 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x8] - movs r1, 0x1 - bl bag_menu_print_cursor_ - adds r0, r4, 0 - bl sub_810910C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810A320: .4byte gTasks - thumb_func_end sub_810A2DC - - thumb_func_start sub_810A324 -sub_810A324: @ 810A324 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r5, _0810A36C @ =gSpecialVar_ItemId - ldrh r0, [r5] - bl ItemId_GetBattleFunc - cmp r0, 0 - beq _0810A364 - movs r0, 0xA - bl sub_810BA3C - movs r0, 0x6 - bl sub_810BA3C - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0 - movs r1, 0x1 - bl CopyWindowToVram - ldrh r0, [r5] - bl ItemId_GetBattleFunc - adds r1, r0, 0 - adds r0, r4, 0 - bl _call_via_r1 -_0810A364: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810A36C: .4byte gSpecialVar_ItemId - thumb_func_end sub_810A324 - - thumb_func_start sub_810A370 -sub_810A370: @ 810A370 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r7, r0, 3 - ldr r0, _0810A3BC @ =gTasks+0x8 - mov r9, r0 - adds r1, r7, r0 - ldr r2, _0810A3C0 @ =gUnknown_203ACFC - mov r8, r2 - ldrb r0, [r2, 0x6] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r1, 0x2] - bl BagGetItemIdByPocketPosition - lsls r0, 16 - lsrs r4, r0, 16 - adds r6, r4, 0 - adds r0, r4, 0 - bl itemid_80BF6D8_mail_related - lsls r0, 24 - cmp r0, 0 - bne _0810A3CC - ldr r2, _0810A3C4 @ =gUnknown_841630F - ldr r3, _0810A3C8 @ =sub_810A1D0 - adds r0, r5, 0 - movs r1, 0x2 - bl DisplayItemMessageInBag - b _0810A426 - .align 2, 0 -_0810A3BC: .4byte gTasks+0x8 -_0810A3C0: .4byte gUnknown_203ACFC -_0810A3C4: .4byte gUnknown_841630F -_0810A3C8: .4byte sub_810A1D0 -_0810A3CC: - movs r0, 0xB6 - lsls r0, 1 @ ITEM_TM_CASE - cmp r4, r0 - bne _0810A3DC - ldr r0, _0810A3D8 @ =sub_810A434 - b _0810A3E4 - .align 2, 0 -_0810A3D8: .4byte sub_810A434 -_0810A3DC: - ldr r0, _0810A3F0 @ =ITEM_BERRY_POUCH - cmp r4, r0 - bne _0810A3F8 - ldr r0, _0810A3F4 @ =sub_810A448 -_0810A3E4: - bl ItemMenu_SetExitCallback - adds r0, r5, 0 - bl ItemMenu_StartFadeToExitCallback - b _0810A426 - .align 2, 0 -_0810A3F0: .4byte 0x0000016d @ ITEM_BERRY_POUCH -_0810A3F4: .4byte sub_810A448 -_0810A3F8: - mov r1, r8 - ldrh r0, [r1, 0x6] - cmp r0, 0x1 - beq _0810A420 - adds r0, r6, 0 - bl itemid_is_unique - lsls r0, 24 - cmp r0, 0 - bne _0810A420 - bl sub_8108CB4 - mov r0, r9 - subs r0, 0x8 - adds r0, r7, r0 - ldr r1, _0810A41C @ =ItemMenu_StartFadeToExitCallback - str r1, [r0] - b _0810A426 - .align 2, 0 -_0810A41C: .4byte ItemMenu_StartFadeToExitCallback -_0810A420: - adds r0, r5, 0 - bl sub_810A18C -_0810A426: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_810A370 - - thumb_func_start sub_810A434 -sub_810A434: @ 810A434 - push {lr} - ldr r1, _0810A444 @ =sub_810A45C - movs r0, 0x1 - movs r2, 0 - bl InitTMCase - pop {r0} - bx r0 - .align 2, 0 -_0810A444: .4byte sub_810A45C - thumb_func_end sub_810A434 - - thumb_func_start sub_810A448 -sub_810A448: @ 810A448 - push {lr} - ldr r1, _0810A458 @ =sub_810A45C - movs r0, 0x1 - movs r2, 0 - bl InitBerryPouch - pop {r0} - bx r0 - .align 2, 0 -_0810A458: .4byte sub_810A45C - thumb_func_end sub_810A448 - - thumb_func_start sub_810A45C -sub_810A45C: @ 810A45C - push {lr} - bl CB2_SelectBagItemToGive - pop {r0} - bx r0 - thumb_func_end sub_810A45C - - thumb_func_start sub_810A468 -sub_810A468: @ 810A468 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r7, r0, 3 - ldr r0, _0810A4B4 @ =gTasks+0x8 - mov r9, r0 - adds r1, r7, r0 - ldr r2, _0810A4B8 @ =gUnknown_203ACFC - mov r8, r2 - ldrb r0, [r2, 0x6] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r1, 0x2] - bl BagGetItemIdByPocketPosition - lsls r0, 16 - lsrs r4, r0, 16 - adds r6, r4, 0 - adds r0, r4, 0 - bl ItemIsMail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0810A4C4 - ldr r2, _0810A4BC @ =gUnknown_841630F - ldr r3, _0810A4C0 @ =sub_810A1D0 - adds r0, r5, 0 - movs r1, 0x2 - bl DisplayItemMessageInBag - b _0810A51E - .align 2, 0 -_0810A4B4: .4byte gTasks+0x8 -_0810A4B8: .4byte gUnknown_203ACFC -_0810A4BC: .4byte gUnknown_841630F -_0810A4C0: .4byte sub_810A1D0 -_0810A4C4: - movs r0, 0xB6 - lsls r0, 1 @ ITEM_TM_CASE - cmp r4, r0 - bne _0810A4D4 - ldr r0, _0810A4D0 @ =sub_810A52C - b _0810A4DC - .align 2, 0 -_0810A4D0: .4byte sub_810A52C -_0810A4D4: - ldr r0, _0810A4E8 @ =0x0000016d @ ITEM_BERRY_POUCH - cmp r4, r0 - bne _0810A4F0 - ldr r0, _0810A4EC @ =sub_810A540 -_0810A4DC: - bl ItemMenu_SetExitCallback - adds r0, r5, 0 - bl ItemMenu_StartFadeToExitCallback - b _0810A51E - .align 2, 0 -_0810A4E8: .4byte 0x0000016d -_0810A4EC: .4byte sub_810A540 -_0810A4F0: - mov r1, r8 - ldrh r0, [r1, 0x6] - cmp r0, 0x1 - beq _0810A518 - adds r0, r6, 0 - bl itemid_is_unique - lsls r0, 24 - cmp r0, 0 - bne _0810A518 - bl sub_8108CB4 - mov r0, r9 - subs r0, 0x8 - adds r0, r7, r0 - ldr r1, _0810A514 @ =ItemMenu_StartFadeToExitCallback - str r1, [r0] - b _0810A51E - .align 2, 0 -_0810A514: .4byte ItemMenu_StartFadeToExitCallback -_0810A518: - adds r0, r5, 0 - bl sub_810A18C -_0810A51E: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_810A468 - - thumb_func_start sub_810A52C -sub_810A52C: @ 810A52C - push {lr} - ldr r1, _0810A53C @ =sub_810A554 - movs r0, 0x3 - movs r2, 0 - bl InitTMCase - pop {r0} - bx r0 - .align 2, 0 -_0810A53C: .4byte sub_810A554 - thumb_func_end sub_810A52C - - thumb_func_start sub_810A540 -sub_810A540: @ 810A540 - push {lr} - ldr r1, _0810A550 @ =sub_810A554 - movs r0, 0x3 - movs r2, 0 - bl InitBerryPouch - pop {r0} - bx r0 - .align 2, 0 -_0810A550: .4byte sub_810A554 - thumb_func_end sub_810A540 - - thumb_func_start sub_810A554 -sub_810A554: @ 810A554 - push {lr} - ldr r2, _0810A564 @ =sub_808CE60 - movs r0, 0x4 - movs r1, 0x3 - bl GoToBagMenu - pop {r0} - bx r0 - .align 2, 0 -_0810A564: .4byte sub_808CE60 - thumb_func_end sub_810A554 - - thumb_func_start sub_810A568 -sub_810A568: @ 810A568 - 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, _0810A58C @ =gTasks+0x8 - adds r4, r0, r1 - ldr r6, _0810A590 @ =gSpecialVar_ItemId - ldrh r1, [r6] - movs r0, 0xB6 - lsls r0, 1 - cmp r1, r0 - bne _0810A598 - ldr r0, _0810A594 @ =sub_810A654 - b _0810A5A0 - .align 2, 0 -_0810A58C: .4byte gTasks+0x8 -_0810A590: .4byte gSpecialVar_ItemId -_0810A594: .4byte sub_810A654 -_0810A598: - ldr r0, _0810A5AC @ =0x0000016d - cmp r1, r0 - bne _0810A5B4 - ldr r0, _0810A5B0 @ =sub_810A668 -_0810A5A0: - bl ItemMenu_SetExitCallback - adds r0, r5, 0 - bl ItemMenu_StartFadeToExitCallback - b _0810A63E - .align 2, 0 -_0810A5AC: .4byte 0x0000016d -_0810A5B0: .4byte sub_810A668 -_0810A5B4: - ldrh r0, [r6] - bl itemid_get_market_price - lsls r0, 16 - cmp r0, 0 - bne _0810A5F8 - ldrh r0, [r6] - ldr r1, _0810A5E8 @ =gStringVar1 - bl CopyItemName - ldr r4, _0810A5EC @ =gStringVar4 - ldr r1, _0810A5F0 @ =gText_OhNoICantBuyThat - adds r0, r4, 0 - bl StringExpandPlaceholders - bl sub_80BF8E4 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _0810A5F4 @ =sub_810A1F8 - adds r0, r5, 0 - adds r2, r4, 0 - bl DisplayItemMessageInBag - b _0810A63E - .align 2, 0 -_0810A5E8: .4byte gStringVar1 -_0810A5EC: .4byte gStringVar4 -_0810A5F0: .4byte gText_OhNoICantBuyThat -_0810A5F4: .4byte sub_810A1F8 -_0810A5F8: - movs r0, 0x1 - strh r0, [r4, 0x10] - movs r1, 0x4 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _0810A610 - bl sub_810BB40 - adds r0, r5, 0 - bl sub_810A690 - b _0810A63E -_0810A610: - cmp r0, 0x63 - ble _0810A618 - movs r0, 0x63 - strh r0, [r4, 0x4] -_0810A618: - ldrh r0, [r6] - ldr r1, _0810A644 @ =gStringVar1 - bl CopyItemName - ldr r4, _0810A648 @ =gStringVar4 - ldr r1, _0810A64C @ =gText_HowManyWouldYouLikeToSell - adds r0, r4, 0 - bl StringExpandPlaceholders - bl sub_80BF8E4 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _0810A650 @ =sub_810A770 - adds r0, r7, 0 - adds r2, r4, 0 - bl DisplayItemMessageInBag -_0810A63E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810A644: .4byte gStringVar1 -_0810A648: .4byte gStringVar4 -_0810A64C: .4byte gText_HowManyWouldYouLikeToSell -_0810A650: .4byte sub_810A770 - thumb_func_end sub_810A568 - - thumb_func_start sub_810A654 -sub_810A654: @ 810A654 - push {lr} - ldr r1, _0810A664 @ =sub_810A67C - movs r0, 0x2 - movs r2, 0 - bl InitTMCase - pop {r0} - bx r0 - .align 2, 0 -_0810A664: .4byte sub_810A67C - thumb_func_end sub_810A654 - - thumb_func_start sub_810A668 -sub_810A668: @ 810A668 - push {lr} - ldr r1, _0810A678 @ =sub_810A67C - movs r0, 0x2 - movs r2, 0 - bl InitBerryPouch - pop {r0} - bx r0 - .align 2, 0 -_0810A678: .4byte sub_810A67C - thumb_func_end sub_810A668 - - thumb_func_start sub_810A67C -sub_810A67C: @ 810A67C - push {lr} - ldr r2, _0810A68C @ =CB2_ReturnToField - movs r0, 0x2 - movs r1, 0x3 - bl GoToBagMenu - pop {r0} - bx r0 - .align 2, 0 -_0810A68C: .4byte CB2_ReturnToField - thumb_func_end sub_810A67C - - thumb_func_start sub_810A690 -sub_810A690: @ 810A690 - 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, _0810A6F4 @ =gTasks+0x8 - adds r4, r0 - ldr r6, _0810A6F8 @ =gStringVar3 - ldr r0, _0810A6FC @ =gUnknown_203ACFC - ldrb r0, [r0, 0x6] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - 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, _0810A700 @ =gStringVar4 - ldr r1, _0810A704 @ =gText_ICanPayThisMuch_WouldThatBeOkay - adds r0, r4, 0 - bl StringExpandPlaceholders - bl sub_80BF8E4 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _0810A708 @ =sub_810A70C - adds r0, r5, 0 - adds r2, r4, 0 - bl DisplayItemMessageInBag - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810A6F4: .4byte gTasks+0x8 -_0810A6F8: .4byte gStringVar3 -_0810A6FC: .4byte gUnknown_203ACFC -_0810A700: .4byte gStringVar4 -_0810A704: .4byte gText_ICanPayThisMuch_WouldThatBeOkay -_0810A708: .4byte sub_810A70C - thumb_func_end sub_810A690 - - thumb_func_start sub_810A70C -sub_810A70C: @ 810A70C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0810A71C @ =gUnknown_8452F58 - bl sub_810BB14 - pop {r0} - bx r0 - .align 2, 0 -_0810A71C: .4byte gUnknown_8452F58 - thumb_func_end sub_810A70C - - thumb_func_start sub_810A720 -sub_810A720: @ 810A720 - 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, _0810A76C @ =gTasks+0x8 - adds r4, r0 - movs r0, 0x2 - bl sub_810BA3C - movs r0, 0x5 - bl sub_810BA9C - 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 bag_menu_print_cursor_ - adds r0, r5, 0 - bl sub_810910C - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810A76C: .4byte gTasks+0x8 - thumb_func_end sub_810A720 - - thumb_func_start sub_810A770 -sub_810A770: @ 810A770 - 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 r0, _0810A81C @ =gTasks+0x8 - mov r8, r0 - adds r2, r5, 0 - add r2, r8 - mov r9, r2 - movs r0, 0 - movs r1, 0x1 - bl sub_810B9DC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _0810A820 @ =gStringVar1 - movs r1, 0x1 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r6, _0810A824 @ =gStringVar4 - ldr r1, _0810A828 @ =gText_TimesStrVar1 - adds r0, r6, 0 - 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 - adds r2, r6, 0 - movs r3, 0x4 - bl sub_810B8F0 - ldr r0, _0810A82C @ =gUnknown_203ACFC - ldrb r0, [r0, 0x6] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r3, r9 - ldrh r1, [r3, 0x2] - 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_810A834 - bl sub_810BB40 - bl sub_8108908 - movs r0, 0x8 - negs r0, r0 - add r8, r0 - add r5, r8 - ldr r0, _0810A830 @ =sub_810A85C - 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 -_0810A81C: .4byte gTasks+0x8 -_0810A820: .4byte gStringVar1 -_0810A824: .4byte gStringVar4 -_0810A828: .4byte gText_TimesStrVar1 -_0810A82C: .4byte gUnknown_203ACFC -_0810A830: .4byte sub_810A85C - thumb_func_end sub_810A770 - - thumb_func_start sub_810A834 -sub_810A834: @ 810A834 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r0, 0 - bl sub_810BAD8 - 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_810A834 - - thumb_func_start sub_810A85C -sub_810A85C: @ 810A85C - 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, _0810A8B4 @ =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 _0810A8BC - movs r1, 0x10 - ldrsh r0, [r5, r1] - movs r1, 0x2 - bl sub_81097E4 - ldr r0, _0810A8B8 @ =gUnknown_203ACFC - ldrb r0, [r0, 0x6] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x2] - 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_810A834 - b _0810A93A - .align 2, 0 -_0810A8B4: .4byte gTasks+0x8 -_0810A8B8: .4byte gUnknown_203ACFC -_0810A8BC: - ldr r0, _0810A8EC @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0810A8F0 - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl sub_810BA3C - movs r0, 0 - bl PutWindowTilemap - movs r0, 0 - bl ScheduleBgCopyTilemapToVram - bl sub_8108978 - adds r0, r4, 0 - bl sub_810A690 - b _0810A93A - .align 2, 0 -_0810A8EC: .4byte gMain -_0810A8F0: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0810A93A - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl sub_810BA3C - movs r0, 0x2 - bl sub_810BA3C - movs r0, 0x5 - bl sub_810BA9C - movs r0, 0x2 - bl PutWindowTilemap - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0 - bl ScheduleBgCopyTilemapToVram - bl sub_8108978 - ldrb r0, [r5] - movs r1, 0x1 - bl bag_menu_print_cursor_ - adds r0, r6, 0 - bl sub_810910C -_0810A93A: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_810A85C - - thumb_func_start sub_810A940 -sub_810A940: @ 810A940 - 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, _0810A9B4 @ =gTasks+0x8 - adds r4, r0 - movs r0, 0 - bl PutWindowTilemap - movs r0, 0 - bl ScheduleBgCopyTilemapToVram - ldr r0, _0810A9B8 @ =gSpecialVar_ItemId - ldrh r0, [r0] - ldr r1, _0810A9BC @ =gStringVar1 - bl CopyItemName - ldr r6, _0810A9C0 @ =gStringVar3 - ldr r0, _0810A9C4 @ =gUnknown_203ACFC - ldrb r0, [r0, 0x6] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x2] - 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, _0810A9C8 @ =gStringVar4 - ldr r1, _0810A9CC @ =gText_TurnedOverItemsWorthYen - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r3, _0810A9D0 @ =sub_810A9D4 - adds r0, r5, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl DisplayItemMessageInBag - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0810A9B4: .4byte gTasks+0x8 -_0810A9B8: .4byte gSpecialVar_ItemId -_0810A9BC: .4byte gStringVar1 -_0810A9C0: .4byte gStringVar3 -_0810A9C4: .4byte gUnknown_203ACFC -_0810A9C8: .4byte gStringVar4 -_0810A9CC: .4byte gText_TurnedOverItemsWorthYen -_0810A9D0: .4byte sub_810A9D4 - thumb_func_end sub_810A940 - - thumb_func_start sub_810A9D4 -sub_810A9D4: @ 810A9D4 - 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, _0810AAD8 @ =gTasks+0x8 - mov r10, r0 - adds r1, r6, 0 - add r1, r10 - mov r8, r1 - movs r0, 0xF8 - bl PlaySE - ldr r5, _0810AADC @ =gSpecialVar_ItemId - ldrh r0, [r5] - mov r2, r8 - ldrh r1, [r2, 0x10] - bl RemoveBagItem - ldr r3, _0810AAE0 @ =gSaveBlock1Ptr - ldr r4, [r3] - movs r7, 0xA4 - lsls r7, 2 - adds r4, r7 - 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 RecordItemPurchase - mov r3, r8 - ldrb r0, [r3] - ldr r4, _0810AAE4 @ =gUnknown_203ACFC - ldrh r2, [r4, 0x6] - lsls r2, 1 - adds r5, r4, 0 - adds r5, 0xE - adds r1, r2, r5 - movs r3, 0x8 - adds r3, r4 - mov r9, r3 - add r2, r9 - bl DestroyListMenuTask - ldrb r0, [r4, 0x6] - bl sub_8108DC8 - ldrb r0, [r4, 0x6] - bl sub_81089F4 - ldr r0, _0810AAE8 @ =gUnknown_203AD10 - ldr r2, [r0] - ldrb r1, [r2, 0x5] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2, 0x5] - ldrb r0, [r4, 0x6] - bl sub_810842C - ldr r0, _0810AAEC @ =gMultiuseListMenuTemplate - ldrh r2, [r4, 0x6] - lsls r2, 1 - adds r5, r2, r5 - ldrh r1, [r5] - add r2, r9 - ldrh r2, [r2] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - mov r1, r8 - strh r0, [r1] - movs r1, 0x2 - bl bag_menu_print_cursor_ - movs r0, 0x2 - bl sub_810BAD8 - lsls r0, 24 - lsrs r0, 24 - bl sub_810BB74 - movs r0, 0x2 - bl sub_810BAD8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r2, _0810AAE0 @ =gSaveBlock1Ptr - ldr r0, [r2] - adds r0, r7 - bl GetMoney - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0 - bl PrintMoneyAmountInMoneyBox - movs r3, 0x8 - negs r3, r3 - add r10, r3 - add r6, r10 - ldr r0, _0810AAF0 @ =sub_810AAF4 - 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 -_0810AAD8: .4byte gTasks+0x8 -_0810AADC: .4byte gSpecialVar_ItemId -_0810AAE0: .4byte gSaveBlock1Ptr -_0810AAE4: .4byte gUnknown_203ACFC -_0810AAE8: .4byte gUnknown_203AD10 -_0810AAEC: .4byte gMultiuseListMenuTemplate -_0810AAF0: .4byte sub_810AAF4 - thumb_func_end sub_810A9D4 - - thumb_func_start sub_810AAF4 -sub_810AAF4: @ 810AAF4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0810AB38 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0810AB0E - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0810AB32 -_0810AB0E: - movs r0, 0x5 - bl PlaySE - movs r0, 0x2 - bl sub_810BA3C - movs r0, 0x2 - bl PutWindowTilemap - ldr r0, _0810AB3C @ =gUnknown_203AD10 - ldr r2, [r0] - ldrb r1, [r2, 0x5] - movs r0, 0x3F - ands r0, r1 - strb r0, [r2, 0x5] - adds r0, r4, 0 - bl sub_810A1F8 -_0810AB32: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810AB38: .4byte gMain -_0810AB3C: .4byte gUnknown_203AD10 - thumb_func_end sub_810AAF4 - - thumb_func_start sub_810AB40 -sub_810AB40: @ 810AB40 - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r4, r0, 3 - ldr r5, _0810AB64 @ =gTasks+0x8 - adds r1, r4, r5 - movs r0, 0x1 - strh r0, [r1, 0x10] - movs r3, 0x4 - ldrsh r0, [r1, r3] - cmp r0, 0x1 - bne _0810AB68 - adds r0, r2, 0 - bl sub_810AC40 - b _0810AB7A - .align 2, 0 -_0810AB64: .4byte gTasks+0x8 -_0810AB68: - ldrh r0, [r1, 0x2] - ldr r1, _0810AB80 @ =gUnknown_841638F - bl sub_810971C - adds r0, r5, 0 - subs r0, 0x8 - adds r0, r4, r0 - ldr r1, _0810AB84 @ =sub_810AB88 - str r1, [r0] -_0810AB7A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810AB80: .4byte gUnknown_841638F -_0810AB84: .4byte sub_810AB88 - thumb_func_end sub_810AB40 - - thumb_func_start sub_810AB88 -sub_810AB88: @ 810AB88 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _0810ABB8 @ =gTasks+0x8 - adds r4, r0, r1 - adds r0, r4, 0 - adds r0, 0x10 - ldrh r1, [r4, 0x4] - bl AdjustQuantityAccordingToDPadInput - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0810ABBC - movs r1, 0x10 - ldrsh r0, [r4, r1] - movs r1, 0x3 - bl sub_81097E4 - b _0810AC38 - .align 2, 0 -_0810ABB8: .4byte gTasks+0x8 -_0810ABBC: - ldr r0, _0810ABFC @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0810AC00 - movs r0, 0x5 - bl PlaySE - movs r0, 0x6 - bl sub_810BAD8 - lsls r0, 24 - lsrs r0, 24 - bl ClearWindowTilemap - movs r0, 0x6 - bl sub_810BA3C - movs r0, 0 - bl sub_810BA3C - movs r0, 0 - bl ScheduleBgCopyTilemapToVram - bl sub_8108978 - adds r0, r5, 0 - bl sub_810AC40 - b _0810AC38 - .align 2, 0 -_0810ABFC: .4byte gMain -_0810AC00: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0810AC38 - movs r0, 0x5 - bl PlaySE - movs r0, 0x6 - bl sub_810BA3C - movs r0, 0 - bl sub_810BA3C - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0 - bl ScheduleBgCopyTilemapToVram - ldrb r0, [r4] - movs r1, 0x1 - bl bag_menu_print_cursor_ - bl sub_8108978 - adds r0, r6, 0 - bl sub_810910C -_0810AC38: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_810AB88 - - thumb_func_start sub_810AC40 -sub_810AC40: @ 810AC40 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - mov r8, r0 - ldr r0, _0810ACCC @ =gTasks+0x8 - mov r9, r0 - mov r7, r8 - add r7, r9 - ldr r5, _0810ACD0 @ =gSpecialVar_ItemId - ldrh r0, [r5] - ldrh r1, [r7, 0x10] - bl AddPCItem - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x1 - bne _0810ACEC - ldrh r2, [r5] - ldr r3, _0810ACD4 @ =0x0000ffff - movs r0, 0x1C - movs r1, 0 - bl ItemUse_SetQuestLogEvent - ldrh r0, [r5] - ldr r1, _0810ACD8 @ =gStringVar1 - bl CopyItemName - ldr r0, _0810ACDC @ =gStringVar2 - movs r2, 0x10 - ldrsh r1, [r7, r2] - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r4, _0810ACE0 @ =gStringVar4 - ldr r1, _0810ACE4 @ =gUnknown_84163A7 - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x6 - movs r1, 0x3 - bl sub_810B9DC - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - str r1, [sp] - str r6, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - str r1, [sp, 0xC] - str r6, [sp, 0x10] - movs r1, 0x2 - adds r2, r4, 0 - movs r3, 0 - bl sub_810B8F0 - mov r0, r9 - subs r0, 0x8 - add r0, r8 - ldr r1, _0810ACE8 @ =sub_8109F44 - str r1, [r0] - b _0810ACF8 - .align 2, 0 -_0810ACCC: .4byte gTasks+0x8 -_0810ACD0: .4byte gSpecialVar_ItemId -_0810ACD4: .4byte 0x0000ffff -_0810ACD8: .4byte gStringVar1 -_0810ACDC: .4byte gStringVar2 -_0810ACE0: .4byte gStringVar4 -_0810ACE4: .4byte gUnknown_84163A7 -_0810ACE8: .4byte sub_8109F44 -_0810ACEC: - ldr r2, _0810AD08 @ =gUnknown_84163BB - ldr r3, _0810AD0C @ =sub_810A1D0 - adds r0, r4, 0 - movs r1, 0x2 - bl DisplayItemMessageInBag -_0810ACF8: - add sp, 0x14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810AD08: .4byte gUnknown_84163BB -_0810AD0C: .4byte sub_810A1D0 - thumb_func_end sub_810AC40 - - thumb_func_start UseRegisteredKeyItemOnField -UseRegisteredKeyItemOnField: @ 810AD10 - push {r4-r6,lr} - bl InUnionRoom - cmp r0, 0x1 - bne _0810AD1E - movs r0, 0 - b _0810ADA0 -_0810AD1E: - bl DismissMapNamePopup - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - ldr r4, _0810AD80 @ =gSaveBlock1Ptr - ldr r0, [r4] - ldr r5, _0810AD84 @ =0x00000296 - adds r1, r0, r5 - ldrh r0, [r1] - cmp r0, 0 - beq _0810AD98 - movs r1, 0x1 - bl CheckBagHasItem - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x1 - bne _0810AD90 - bl ScriptContext2_Enable - bl FreezeObjectEvents - bl sub_805C270 - bl sub_805C780 - ldr r2, _0810AD88 @ =gSpecialVar_ItemId - ldr r0, [r4] - adds r0, r5 - ldrh r1, [r0] - strh r1, [r2] - ldrh r0, [r0] - bl ItemId_GetFieldFunc - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0810AD8C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r6, [r1, 0xE] - b _0810AD9E - .align 2, 0 -_0810AD80: .4byte gSaveBlock1Ptr -_0810AD84: .4byte 0x00000296 -_0810AD88: .4byte gSpecialVar_ItemId -_0810AD8C: .4byte gTasks -_0810AD90: - ldr r0, [r4] - adds r0, r5 - movs r1, 0 - strh r1, [r0] -_0810AD98: - ldr r0, _0810ADA8 @ =gUnknown_81A77A0 - bl ScriptContext1_SetupScript -_0810AD9E: - movs r0, 0x1 -_0810ADA0: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0810ADA8: .4byte gUnknown_81A77A0 - thumb_func_end UseRegisteredKeyItemOnField - - thumb_func_start sub_810ADAC -sub_810ADAC: @ 810ADAC - push {lr} - ldr r0, _0810ADCC @ =gUnknown_203ACFC - ldrb r0, [r0, 0x4] - cmp r0, 0x6 - beq _0810ADC6 - cmp r0, 0x8 - beq _0810ADC6 - cmp r0, 0x7 - beq _0810ADC6 - cmp r0, 0x9 - beq _0810ADC6 - cmp r0, 0xA - bne _0810ADD0 -_0810ADC6: - movs r0, 0x1 - b _0810ADD2 - .align 2, 0 -_0810ADCC: .4byte gUnknown_203ACFC -_0810ADD0: - movs r0, 0 -_0810ADD2: - pop {r1} - bx r1 - thumb_func_end sub_810ADAC - - thumb_func_start sub_810ADD8 -sub_810ADD8: @ 810ADD8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r5, _0810AEBC @ =gUnknown_203AD2C - movs r0, 0xB2 - lsls r0, 1 - bl AllocZeroed - str r0, [r5] - ldr r4, _0810AEC0 @ =gSaveBlock1Ptr - ldr r1, [r4] - movs r2, 0xC4 - lsls r2, 2 - adds r1, r2 - movs r2, 0xA8 - bl memcpy - ldr r0, [r5] - adds r0, 0xA8 - ldr r1, [r4] - movs r3, 0xEE - lsls r3, 2 - adds r1, r3 - movs r2, 0x78 - bl memcpy - ldr r0, [r5] - movs r1, 0x90 - lsls r1, 1 - adds r0, r1 - ldr r1, [r4] - movs r2, 0x86 - lsls r2, 3 - adds r1, r2 - movs r2, 0x34 - bl memcpy - ldr r2, [r5] - ldr r0, [r4] - ldr r3, _0810AEC4 @ =0x00000296 - adds r0, r3 - ldrh r1, [r0] - movs r3, 0xB0 - lsls r3, 1 - adds r0, r2, r3 - strh r1, [r0] - ldr r1, _0810AEC8 @ =gUnknown_203ACFC - ldrh r0, [r1, 0x6] - adds r3, 0x2 - adds r2, r3 - strh r0, [r2] - movs r4, 0 - mov r8, r5 - movs r7, 0xAA - lsls r7, 1 - movs r0, 0xE - adds r0, r1 - mov r12, r0 - movs r6, 0xAD - lsls r6, 1 - adds r5, r1, 0 - adds r5, 0x8 -_0810AE54: - mov r1, r8 - ldr r2, [r1] - lsls r3, r4, 1 - adds r0, r2, r7 - adds r0, r3 - ldrh r1, [r5] - strh r1, [r0] - adds r2, r6 - adds r2, r3 - mov r3, r12 - ldrh r0, [r3] - strh r0, [r2] - movs r0, 0x2 - add r12, r0 - adds r5, 0x2 - adds r4, 0x1 - cmp r4, 0x2 - bls _0810AE54 - ldr r4, _0810AEC0 @ =gSaveBlock1Ptr - ldr r0, [r4] - movs r1, 0xC4 - lsls r1, 2 - adds r0, r1 - movs r1, 0x2A - bl ClearItemSlots - ldr r0, [r4] - movs r2, 0xEE - lsls r2, 2 - adds r0, r2 - movs r1, 0x1E - bl ClearItemSlots - ldr r0, [r4] - movs r3, 0x86 - lsls r3, 3 - adds r0, r3 - movs r1, 0xD - bl ClearItemSlots - ldr r0, [r4] - ldr r1, _0810AEC4 @ =0x00000296 - adds r0, r1 - movs r1, 0 - strh r1, [r0] - bl sub_81089BC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810AEBC: .4byte gUnknown_203AD2C -_0810AEC0: .4byte gSaveBlock1Ptr -_0810AEC4: .4byte 0x00000296 -_0810AEC8: .4byte gUnknown_203ACFC - thumb_func_end sub_810ADD8 - - thumb_func_start sub_810AECC -sub_810AECC: @ 810AECC - push {r4-r7,lr} - ldr r4, _0810AF64 @ =gSaveBlock1Ptr - ldr r0, [r4] - movs r1, 0xC4 - lsls r1, 2 - adds r0, r1 - ldr r5, _0810AF68 @ =gUnknown_203AD2C - ldr r1, [r5] - movs r2, 0xA8 - bl memcpy - ldr r0, [r4] - movs r2, 0xEE - lsls r2, 2 - adds r0, r2 - ldr r1, [r5] - adds r1, 0xA8 - movs r2, 0x78 - bl memcpy - ldr r0, [r4] - movs r3, 0x86 - lsls r3, 3 - adds r0, r3 - ldr r1, [r5] - movs r2, 0x90 - lsls r2, 1 - adds r1, r2 - movs r2, 0x34 - bl memcpy - ldr r1, [r4] - ldr r2, [r5] - movs r3, 0xB0 - lsls r3, 1 - adds r0, r2, r3 - ldrh r0, [r0] - ldr r3, _0810AF6C @ =0x00000296 - adds r1, r3 - strh r0, [r1] - ldr r1, _0810AF70 @ =gUnknown_203ACFC - movs r3, 0xB1 - lsls r3, 1 - adds r0, r2, r3 - ldrh r0, [r0] - strh r0, [r1, 0x6] - movs r4, 0 - mov r12, r5 - adds r3, r1, 0 - adds r3, 0x8 - mov r7, r12 - movs r6, 0xAA - lsls r6, 1 - movs r5, 0xAD - lsls r5, 1 -_0810AF3A: - lsls r2, r4, 1 - ldr r1, [r7] - adds r0, r1, r6 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r3] - adds r1, r5 - adds r1, r2 - ldrh r0, [r1] - strh r0, [r3, 0x6] - adds r3, 0x2 - adds r4, 0x1 - cmp r4, 0x2 - bls _0810AF3A - mov r1, r12 - ldr r0, [r1] - bl Free - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0810AF64: .4byte gSaveBlock1Ptr -_0810AF68: .4byte gUnknown_203AD2C -_0810AF6C: .4byte 0x00000296 -_0810AF70: .4byte gUnknown_203ACFC - thumb_func_end sub_810AECC - - thumb_func_start sub_810AF74 -sub_810AF74: @ 810AF74 - push {lr} - bl sub_810ADD8 - movs r0, 0xD - movs r1, 0x1 - bl AddBagItem - movs r0, 0x4 - movs r1, 0x1 - bl AddBagItem - ldr r2, _0810AF98 @ =SetCB2ToReshowScreenAfterMenu2 - movs r0, 0x6 - movs r1, 0 - bl GoToBagMenu - pop {r0} - bx r0 - .align 2, 0 -_0810AF98: .4byte SetCB2ToReshowScreenAfterMenu2 - thumb_func_end sub_810AF74 - - thumb_func_start sub_810AF9C -sub_810AF9C: @ 810AF9C - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r6, r0, 3 - ldr r7, _0810AFCC @ =gTasks+0x8 - adds r5, r6, r7 - ldr r0, _0810AFD0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0810B06A - movs r0, 0x10 - ldrsh r1, [r5, r0] - cmp r1, 0xCC - beq _0810AFE4 - cmp r1, 0xCC - bgt _0810AFD4 - cmp r1, 0x66 - beq _0810AFE4 - b _0810B064 - .align 2, 0 -_0810AFCC: .4byte gTasks+0x8 -_0810AFD0: .4byte gPaletteFade -_0810AFD4: - movs r0, 0x99 - lsls r0, 1 - cmp r1, r0 - beq _0810AFF6 - adds r0, 0x66 - cmp r1, r0 - beq _0810B01C - b _0810B064 -_0810AFE4: - movs r0, 0xF6 - bl PlaySE - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0 - bl sub_81091D0 - b _0810B064 -_0810AFF6: - movs r0, 0x5 - bl PlaySE - ldrb r0, [r5] - movs r1, 0x2 - bl bag_menu_print_cursor_ - movs r0, 0x1 - bl sub_8109140 - ldr r1, _0810B018 @ =gSpecialVar_ItemId - movs r0, 0x4 - strh r0, [r1] - adds r0, r4, 0 - bl sub_8109890 - b _0810B064 - .align 2, 0 -_0810B018: .4byte gSpecialVar_ItemId -_0810B01C: - movs r0, 0x5 - bl PlaySE - movs r0, 0xA - bl sub_810BA3C - movs r0, 0x6 - bl sub_810BA3C - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0 - movs r1, 0x1 - bl CopyWindowToVram - ldrb r0, [r5] - movs r1, 0 - movs r2, 0 - bl DestroyListMenuTask - bl sub_810AECC - bl sub_8108CB4 - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _0810B060 @ =sub_810B070 - str r1, [r0] - b _0810B06A - .align 2, 0 -_0810B060: .4byte sub_810B070 -_0810B064: - ldrh r0, [r5, 0x10] - adds r0, 0x1 - strh r0, [r5, 0x10] -_0810B06A: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_810AF9C - - thumb_func_start sub_810B070 -sub_810B070: @ 810B070 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0x2 - negs r1, r1 - movs r2, 0 - str r2, [sp] - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0810B0A4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0810B0A8 @ =sub_810B0AC - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810B0A4: .4byte gTasks -_0810B0A8: .4byte sub_810B0AC - thumb_func_end sub_810B070 - - thumb_func_start sub_810B0AC -sub_810B0AC: @ 810B0AC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0810B0DC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0810B0FE - ldr r0, _0810B0E0 @ =sub_8108CFC - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0810B0FE - ldr r0, _0810B0E4 @ =gUnknown_203AD10 - ldr r0, [r0] - ldr r0, [r0] - cmp r0, 0 - beq _0810B0E8 - bl SetMainCallback2 - b _0810B0F0 - .align 2, 0 -_0810B0DC: .4byte gPaletteFade -_0810B0E0: .4byte sub_8108CFC -_0810B0E4: .4byte gUnknown_203AD10 -_0810B0E8: - ldr r0, _0810B104 @ =gUnknown_203ACFC - ldr r0, [r0] - bl SetMainCallback2 -_0810B0F0: - bl sub_8108978 - bl sub_8108B04 - adds r0, r4, 0 - bl DestroyTask -_0810B0FE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810B104: .4byte gUnknown_203ACFC - thumb_func_end sub_810B0AC - - thumb_func_start sub_810B108 -sub_810B108: @ 810B108 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_810ADD8 - movs r0, 0xD - movs r1, 0x1 - bl AddBagItem - movs r0, 0xE - movs r1, 0x1 - bl AddBagItem - movs r0, 0xB7 - lsls r0, 1 - movs r1, 0x1 - bl AddBagItem - movs r0, 0xB6 - lsls r0, 1 - movs r1, 0x1 - bl AddBagItem - movs r0, 0x4 - movs r1, 0x5 - bl AddBagItem - movs r0, 0x3 - movs r1, 0x1 - bl AddBagItem - movs r0, 0x8 - movs r1, 0x1 - bl AddBagItem - cmp r4, 0x7 - beq _0810B160 - cmp r4, 0x8 - beq _0810B16C - ldr r2, _0810B15C @ =CB2_ReturnToTeachyTV - adds r0, r4, 0 - b _0810B170 - .align 2, 0 -_0810B15C: .4byte CB2_ReturnToTeachyTV -_0810B160: - ldr r2, _0810B168 @ =SetCB2ToReshowScreenAfterMenu2 - movs r0, 0x7 - b _0810B170 - .align 2, 0 -_0810B168: .4byte SetCB2ToReshowScreenAfterMenu2 -_0810B16C: - ldr r2, _0810B17C @ =SetCB2ToReshowScreenAfterMenu2 - movs r0, 0x8 -_0810B170: - movs r1, 0 - bl GoToBagMenu - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810B17C: .4byte SetCB2ToReshowScreenAfterMenu2 - thumb_func_end sub_810B108 - - thumb_func_start sub_810B180 -sub_810B180: @ 810B180 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0810B198 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _0810B19C - movs r0, 0 - b _0810B1BC - .align 2, 0 -_0810B198: .4byte gMain -_0810B19C: - bl sub_810AECC - bl SetTeachyTvControllerModeToResume - ldr r0, _0810B1C4 @ =gUnknown_203AD10 - ldr r1, [r0] - ldr r0, _0810B1C8 @ =CB2_ReturnToTeachyTV - str r0, [r1] - ldr r1, _0810B1CC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _0810B1D0 @ =sub_810B070 - str r1, [r0] - movs r0, 0x1 -_0810B1BC: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0810B1C4: .4byte gUnknown_203AD10 -_0810B1C8: .4byte CB2_ReturnToTeachyTV -_0810B1CC: .4byte gTasks -_0810B1D0: .4byte sub_810B070 - thumb_func_end sub_810B180 - - thumb_func_start sub_810B1D4 -sub_810B1D4: @ 810B1D4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r5, r0, 3 - ldr r6, _0810B220 @ =gTasks+0x8 - adds r7, r5, r6 - ldr r0, _0810B224 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0810B1F2 - b _0810B372 -_0810B1F2: - adds r0, r4, 0 - bl sub_810B180 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0810B202 - b _0810B372 -_0810B202: - movs r0, 0x10 - ldrsh r1, [r7, r0] - movs r0, 0xCC - lsls r0, 1 - cmp r1, r0 - beq _0810B29E - cmp r1, r0 - bgt _0810B232 - cmp r1, 0xCC - beq _0810B266 - cmp r1, 0xCC - bgt _0810B228 - cmp r1, 0x66 - beq _0810B254 - b _0810B36C - .align 2, 0 -_0810B220: .4byte gTasks+0x8 -_0810B224: .4byte gPaletteFade -_0810B228: - movs r0, 0x99 - lsls r0, 1 - cmp r1, r0 - beq _0810B290 - b _0810B36C -_0810B232: - movs r0, 0x99 - lsls r0, 2 - cmp r1, r0 - beq _0810B32C - cmp r1, r0 - bgt _0810B246 - subs r0, 0x66 - cmp r1, r0 - beq _0810B32C - b _0810B36C -_0810B246: - ldr r0, _0810B250 @ =0x000002ca - cmp r1, r0 - bne _0810B24E - b _0810B344 -_0810B24E: - b _0810B36C - .align 2, 0 -_0810B250: .4byte 0x000002ca -_0810B254: - movs r0, 0xF6 - bl PlaySE - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0 - bl sub_81091D0 - b _0810B36C -_0810B266: - movs r0, 0x5 - bl PlaySE - ldrb r0, [r7] - movs r1, 0x2 - bl bag_menu_print_cursor_ - movs r0, 0x1 - bl sub_8109140 - ldr r1, _0810B28C @ =gSpecialVar_ItemId - movs r2, 0xB7 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - adds r0, r4, 0 - bl sub_8109890 - b _0810B36C - .align 2, 0 -_0810B28C: .4byte gSpecialVar_ItemId -_0810B290: - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl Menu_MoveCursorNoWrapAround - b _0810B36C -_0810B29E: - movs r0, 0x5 - bl PlaySE - ldr r0, _0810B318 @ =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, _0810B31C @ =gSpecialVar_ItemId - ldrh r1, [r1] - ldr r2, _0810B320 @ =0x00000296 - adds r0, r2 - strh r1, [r0] - movs r0, 0xA - bl sub_810BA3C - movs r0, 0x6 - bl sub_810BA3C - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - ldrb r0, [r7] - ldr r4, _0810B324 @ =gUnknown_203ACFC - ldrh r2, [r4, 0x6] - lsls r2, 1 - adds r5, r4, 0 - adds r5, 0xE - adds r1, r2, r5 - adds r6, r4, 0 - adds r6, 0x8 - adds r2, r6 - bl DestroyListMenuTask - ldrb r0, [r4, 0x6] - bl sub_810842C - ldr r0, _0810B328 @ =gMultiuseListMenuTemplate - ldrh r2, [r4, 0x6] - lsls r2, 1 - adds r5, r2, r5 - ldrh r1, [r5] - adds r2, r6 - ldrh r2, [r2] - bl ListMenuInit - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7] - movs r0, 0 - bl sub_8109140 - ldrb r0, [r7] - movs r1, 0x1 - bl bag_menu_print_cursor_ - movs r0, 0 - movs r1, 0x1 - bl CopyWindowToVram - b _0810B36C - .align 2, 0 -_0810B318: .4byte gSaveBlock1Ptr -_0810B31C: .4byte gSpecialVar_ItemId -_0810B320: .4byte 0x00000296 -_0810B324: .4byte gUnknown_203ACFC -_0810B328: .4byte gMultiuseListMenuTemplate -_0810B32C: - ldr r1, _0810B340 @ =gMain - movs r0, 0 - strh r0, [r1, 0x2E] - movs r0, 0x80 - strh r0, [r1, 0x30] - ldrb r0, [r7] - bl ListMenu_ProcessInput - b _0810B36C - .align 2, 0 -_0810B340: .4byte gMain -_0810B344: - movs r0, 0x5 - bl PlaySE - ldrb r0, [r7] - movs r1, 0 - movs r2, 0 - bl DestroyListMenuTask - bl sub_810AECC - bl sub_8108CB4 - adds r0, r6, 0 - subs r0, 0x8 - adds r0, r5, r0 - ldr r1, _0810B368 @ =sub_810B070 - str r1, [r0] - b _0810B372 - .align 2, 0 -_0810B368: .4byte sub_810B070 -_0810B36C: - ldrh r0, [r7, 0x10] - adds r0, 0x1 - strh r0, [r7, 0x10] -_0810B372: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_810B1D4 - - thumb_func_start sub_810B378 -sub_810B378: @ 810B378 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r6, r0, 3 - ldr r7, _0810B3B0 @ =gTasks+0x8 - adds r4, r6, r7 - ldr r0, _0810B3B4 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0810B396 - b _0810B4B6 -_0810B396: - adds r0, r5, 0 - bl sub_810B180 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0810B3B8 - bl FreeRestoreBattleData - bl LoadPlayerParty - b _0810B4B6 - .align 2, 0 -_0810B3B0: .4byte gTasks+0x8 -_0810B3B4: .4byte gPaletteFade -_0810B3B8: - movs r0, 0x10 - ldrsh r1, [r4, r0] - movs r0, 0xCC - lsls r0, 1 - cmp r1, r0 - beq _0810B41A - cmp r1, r0 - bgt _0810B3E0 - cmp r1, 0xCC - beq _0810B408 - cmp r1, 0xCC - bgt _0810B3D6 - cmp r1, 0x66 - beq _0810B408 - b _0810B4B0 -_0810B3D6: - movs r0, 0x99 - lsls r0, 1 - cmp r1, r0 - beq _0810B41A - b _0810B4B0 -_0810B3E0: - movs r0, 0x99 - lsls r0, 2 - cmp r1, r0 - beq _0810B428 - cmp r1, r0 - bgt _0810B3F4 - subs r0, 0x66 - cmp r1, r0 - beq _0810B428 - b _0810B4B0 -_0810B3F4: - ldr r0, _0810B404 @ =0x000002ca - cmp r1, r0 - beq _0810B440 - adds r0, 0x66 - cmp r1, r0 - beq _0810B468 - b _0810B4B0 - .align 2, 0 -_0810B404: .4byte 0x000002ca -_0810B408: - movs r0, 0xF6 - bl PlaySE - adds r0, r5, 0 - movs r1, 0x1 - movs r2, 0 - bl sub_81091D0 - b _0810B4B0 -_0810B41A: - ldr r1, _0810B424 @ =gMain - movs r0, 0 - strh r0, [r1, 0x2E] - movs r0, 0x80 - b _0810B430 - .align 2, 0 -_0810B424: .4byte gMain -_0810B428: - ldr r1, _0810B43C @ =gMain - movs r0, 0 - strh r0, [r1, 0x2E] - movs r0, 0x40 -_0810B430: - strh r0, [r1, 0x30] - ldrb r0, [r4] - bl ListMenu_ProcessInput - b _0810B4B0 - .align 2, 0 -_0810B43C: .4byte gMain -_0810B440: - movs r0, 0x5 - bl PlaySE - ldrb r0, [r4] - movs r1, 0x2 - bl bag_menu_print_cursor_ - movs r0, 0x1 - bl sub_8109140 - ldr r1, _0810B464 @ =gSpecialVar_ItemId - movs r0, 0x4 - strh r0, [r1] - adds r0, r5, 0 - bl sub_8109890 - b _0810B4B0 - .align 2, 0 -_0810B464: .4byte gSpecialVar_ItemId -_0810B468: - movs r0, 0x5 - bl PlaySE - movs r0, 0xA - bl sub_810BA3C - movs r0, 0x6 - bl sub_810BA3C - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0 - movs r1, 0x1 - bl CopyWindowToVram - ldrb r0, [r4] - movs r1, 0 - movs r2, 0 - bl DestroyListMenuTask - bl sub_810AECC - bl sub_8108CB4 - adds r0, r7, 0 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _0810B4AC @ =sub_810B070 - str r1, [r0] - b _0810B4B6 - .align 2, 0 -_0810B4AC: .4byte sub_810B070 -_0810B4B0: - ldrh r0, [r4, 0x10] - adds r0, 0x1 - strh r0, [r4, 0x10] -_0810B4B6: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_810B378 - - thumb_func_start sub_810B4BC -sub_810B4BC: @ 810B4BC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - mov r8, r0 - ldr r0, _0810B504 @ =gTasks+0x8 - mov r9, r0 - mov r5, r8 - add r5, r9 - ldr r0, _0810B508 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r7, 0x80 - adds r0, r7, 0 - ands r0, r1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - bne _0810B5C6 - adds r0, r4, 0 - bl sub_810B180 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0810B50C - bl FreeRestoreBattleData - bl LoadPlayerParty - b _0810B5C6 - .align 2, 0 -_0810B504: .4byte gTasks+0x8 -_0810B508: .4byte gPaletteFade -_0810B50C: - movs r0, 0x10 - ldrsh r1, [r5, r0] - cmp r1, 0xCC - beq _0810B53C - cmp r1, 0xCC - bgt _0810B51E - cmp r1, 0x66 - beq _0810B528 - b _0810B5C0 -_0810B51E: - movs r0, 0x99 - lsls r0, 1 - cmp r1, r0 - beq _0810B564 - b _0810B5C0 -_0810B528: - ldr r0, _0810B538 @ =gMain - strh r6, [r0, 0x2E] - strh r7, [r0, 0x30] - ldrb r0, [r5] - bl ListMenu_ProcessInput - b _0810B5C0 - .align 2, 0 -_0810B538: .4byte gMain -_0810B53C: - movs r0, 0x5 - bl PlaySE - ldrb r0, [r5] - movs r1, 0x2 - bl bag_menu_print_cursor_ - movs r0, 0x1 - bl sub_8109140 - ldr r1, _0810B560 @ =gSpecialVar_ItemId - movs r0, 0xE - strh r0, [r1] - adds r0, r4, 0 - bl sub_8109890 - b _0810B5C0 - .align 2, 0 -_0810B560: .4byte gSpecialVar_ItemId -_0810B564: - movs r0, 0x5 - bl PlaySE - movs r0, 0xA - bl sub_810BA3C - movs r0, 0x6 - bl sub_810BA3C - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0 - movs r1, 0x1 - bl CopyWindowToVram - ldrb r0, [r5] - movs r1, 0 - movs r2, 0 - bl DestroyListMenuTask - bl sub_810AECC - ldr r1, _0810B5B0 @ =gItemUseCB - ldr r0, _0810B5B4 @ =ItemUseCB_MedicineStep - str r0, [r1] - ldr r0, _0810B5B8 @ =ChooseMonForInBattleItem - bl ItemMenu_SetExitCallback - mov r0, r9 - subs r0, 0x8 - add r0, r8 - ldr r1, _0810B5BC @ =sub_810B070 - str r1, [r0] - b _0810B5C6 - .align 2, 0 -_0810B5B0: .4byte gItemUseCB -_0810B5B4: .4byte ItemUseCB_MedicineStep -_0810B5B8: .4byte ChooseMonForInBattleItem -_0810B5BC: .4byte sub_810B070 -_0810B5C0: - ldrh r0, [r5, 0x10] - adds r0, 0x1 - strh r0, [r5, 0x10] -_0810B5C6: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_810B4BC - - thumb_func_start sub_810B5D4 -sub_810B5D4: @ 810B5D4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - mov r8, r0 - ldr r0, _0810B624 @ =gTasks+0x8 - mov r9, r0 - mov r6, r8 - add r6, r9 - ldr r0, _0810B628 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r7, 0x80 - adds r0, r7, 0 - ands r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _0810B6E6 - adds r0, r4, 0 - bl sub_810B180 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0810B6E6 - movs r2, 0x10 - ldrsh r1, [r6, r2] - cmp r1, 0xCC - beq _0810B64E - cmp r1, 0xCC - bgt _0810B62C - cmp r1, 0x66 - beq _0810B63C - b _0810B6E0 - .align 2, 0 -_0810B624: .4byte gTasks+0x8 -_0810B628: .4byte gPaletteFade -_0810B62C: - movs r0, 0x99 - lsls r0, 1 - cmp r1, r0 - beq _0810B660 - adds r0, 0x66 - cmp r1, r0 - beq _0810B68C - b _0810B6E0 -_0810B63C: - movs r0, 0xF6 - bl PlaySE - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0 - bl sub_81091D0 - b _0810B6E0 -_0810B64E: - ldr r0, _0810B65C @ =gMain - strh r5, [r0, 0x2E] - strh r7, [r0, 0x30] - ldrb r0, [r6] - bl ListMenu_ProcessInput - b _0810B6E0 - .align 2, 0 -_0810B65C: .4byte gMain -_0810B660: - movs r0, 0x5 - bl PlaySE - ldrb r0, [r6] - movs r1, 0x2 - bl bag_menu_print_cursor_ - movs r0, 0x1 - bl sub_8109140 - ldr r1, _0810B688 @ =gSpecialVar_ItemId - movs r2, 0xB6 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - adds r0, r4, 0 - bl sub_8109890 - b _0810B6E0 - .align 2, 0 -_0810B688: .4byte gSpecialVar_ItemId -_0810B68C: - movs r0, 0x5 - bl PlaySE - movs r0, 0xA - bl sub_810BA3C - movs r0, 0x6 - bl sub_810BA3C - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0 - movs r1, 0x1 - bl CopyWindowToVram - ldrb r0, [r6] - movs r1, 0 - movs r2, 0 - bl DestroyListMenuTask - bl sub_810AECC - ldr r0, _0810B6D4 @ =gUnknown_203AD10 - ldr r1, [r0] - ldr r0, _0810B6D8 @ =PokeDude_InitTMCase - str r0, [r1] - mov r0, r9 - subs r0, 0x8 - add r0, r8 - ldr r1, _0810B6DC @ =sub_810B070 - str r1, [r0] - b _0810B6E6 - .align 2, 0 -_0810B6D4: .4byte gUnknown_203AD10 -_0810B6D8: .4byte PokeDude_InitTMCase -_0810B6DC: .4byte sub_810B070 -_0810B6E0: - ldrh r0, [r6, 0x10] - adds r0, 0x1 - strh r0, [r6, 0x10] -_0810B6E6: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_810B5D4 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 358ea8b32..fc7fc398d 100644 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -22001,7 +22001,7 @@ GetItemIconPic: @ 8096674 lsls r0, 16 lsrs r0, 16 movs r1, 0 - bl sub_8098974 + bl GetItemIconGfxPtr pop {r1} bx r1 thumb_func_end GetItemIconPic @@ -22012,7 +22012,7 @@ GetItemIconPalette: @ 8096684 lsls r0, 16 lsrs r0, 16 movs r1, 0x1 - bl sub_8098974 + bl GetItemIconGfxPtr pop {r1} bx r1 thumb_func_end GetItemIconPalette diff --git a/data/event_scripts.s b/data/event_scripts.s index 1816b53e3..8f3f4bae7 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -28,6 +28,7 @@ #include "constants/union_room.h" #include "constants/trade.h" #include "constants/quest_log.h" +#include "constants/daycare.h" .include "asm/macros.inc" .include "asm/macros/event.inc" .set FALSE, 0 @@ -739,6 +740,7 @@ gStdScriptsEnd:: .include "data/maps/Route2_EastBuilding/text.inc" .include "data/maps/Route2_ViridianForest_NorthEntrance/text.inc" .include "data/maps/Route4_PokemonCenter_1F/text.inc" + .include "data/maps/Route5_PokemonDayCare/text.inc" .include "data/maps/Route5_SouthEntrance/text.inc" .include "data/maps/Route6_NorthEntrance/text.inc" .include "data/maps/Route7_EastEntrance/text.inc" @@ -1426,7 +1428,7 @@ EventScript_1A778C:: @ 81A778C releaseall end -gUnknown_81A77A0:: @ 81A77A0 +EventScript_BagItemCanBeRegistered:: @ 81A77A0 msgbox Text_BagItemCanBeRegistered, MSGBOX_SIGN end @@ -1736,23 +1738,23 @@ EventScript_1A8E6F:: @ 81A8E6F end EventScript_1A8EAC:: @ 81A8EAC - getstdstring 2, 24 + getstdstring 2, STDSTRING_ITEMS_POCKET return EventScript_1A8EB1:: @ 81A8EB1 - getstdstring 2, 25 + getstdstring 2, STDSTRING_KEY_ITEMS_POCKET return EventScript_1A8EB6:: @ 81A8EB6 - getstdstring 2, 26 + getstdstring 2, STDSTRING_POKEBALLS_POCKET return EventScript_1A8EBB:: @ 81A8EBB - getstdstring 2, 27 + getstdstring 2, STDSTRING_TM_CASE return EventScript_1A8EC0:: @ 81A8EC0 - getstdstring 2, 28 + getstdstring 2, STDSTRING_BERRY_POUCH return .include "data/scripts/seagallop.inc" @@ -2209,6 +2211,7 @@ EventScript_1B2DF6:: @ 81B2DF6 .include "data/scripts/item_ball_scripts.inc" .include "data/scripts/mystery_event_club.inc" .include "data/scripts/day_care.inc" + .include "data/text/day_care.inc" .include "data/scripts/flash.inc" .include "data/scripts/repel.inc" .include "data/scripts/safari_zone.inc" diff --git a/data/graphics.s b/data/graphics.s index cea2a0ab3..809385e49 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -13476,7 +13476,7 @@ gTrainerBackPic_Leaf:: @ 8E6C6BC .incbin "graphics/trainers/back_pics/leaf_back_pic.4bpp" .align 2 -gTrainerBackPic_PokeDude:: @ 8E6EEBC +gTrainerBackPic_Pokedude:: @ 8E6EEBC .incbin "graphics/trainers/back_pics/pokedude_back_pic.4bpp" .align 2 @@ -13500,7 +13500,7 @@ gTrainerPalette_LeafBackPic:: @ 8E76EE4 .incbin "graphics/trainers/palettes/red_back_pic.gbapal.lz" .align 2 -gTrainerPalette_PokeDudeBackPic:: @ 8E76F0C +gTrainerPalette_PokedudeBackPic:: @ 8E76F0C .incbin "graphics/trainers/palettes/pokedude_back_pic.gbapal.lz" .align 2 @@ -14004,11 +14004,11 @@ gUnknown_8E83444:: @ 8E83444 .incbin "graphics/item_menu/bag_tilemap2.bin.lz" @ PC deposit items .align 2 -gUnknown_8E835B4:: @ 8E835B4 +gBagBgPalette:: @ 8E835B4 .incbin "graphics/item_menu/bag_pal1.gbapal.lz" @ palette 1 (Boy + misc Pal) .align 2 -gUnknown_8E83604:: @ 8E83604 +gBagBgPalette_FemaleOverride:: @ 8E83604 .incbin "graphics/item_menu/bag_pal2.gbapal.lz" @ palette 2 (Girl) gUnknown_8E8362C:: @ 8E8362C diff --git a/data/item_menu.s b/data/item_menu.s deleted file mode 100644 index b5cc492e3..000000000 --- a/data/item_menu.s +++ /dev/null @@ -1,116 +0,0 @@ -#include "constants/region_map.h" -#include "constants/flags.h" -#include "constants/moves.h" - .include "asm/macros.inc" - .include "constants/constants.inc" - .section .rodata - .align 2 - -gUnknown_8452CF4:: @ 8452CF4 - .4byte 0x000001f0 - @ { - @ .bg = 0, - @ .charBaseIndex = 0, - @ .mapBaseIndex = 31, - @ .screenSize = 0, - @ .paletteMode = 0, - @ .priority = 0, - @ .baseTile = 0x0000 - @ } - .4byte 0x000011ed - @ { - @ .bg = 1, - @ .charBaseIndex = 3, - @ .mapBaseIndex = 30, - @ .screenSize = 0, - @ .paletteMode = 0, - @ .priority = 1, - @ .baseTile = 0x0000 - @ } - -gUnknown_8452CFC:: @ 8452CFC - .4byte gUnknown_84162CD - .4byte gUnknown_84162DE - .4byte gUnknown_84162D3 - -gUnknown_8452D08:: @ 8452D08 - .incbin "graphics/item_menu/bagmap_0.bin" - .incbin "graphics/item_menu/bagmap_1.bin" - .incbin "graphics/item_menu/bagmap_2.bin" - .incbin "graphics/item_menu/bagmap_3.bin" - .incbin "graphics/item_menu/bagmap_4.bin" - .incbin "graphics/item_menu/bagmap_5.bin" - .incbin "graphics/item_menu/bagmap_6.bin" - .incbin "graphics/item_menu/bagmap_7.bin" - .incbin "graphics/item_menu/bagmap_8.bin" - .incbin "graphics/item_menu/bagmap_9.bin" - .incbin "graphics/item_menu/bagmap_A.bin" - .incbin "graphics/item_menu/bagmap_B.bin" - -gUnknown_8452EB8:: @ 8452EB8 - .4byte gOtherText_Use, sub_8109C50 - .4byte gOtherText_Toss, sub_8109CC0 - .4byte gUnknown_84161A9, sub_810A000 - .4byte gOtherText_Give, sub_810A0A8 - .4byte gFameCheckerText_Cancel, sub_810A2DC - .4byte gOtherText_Use, sub_810A324 - .4byte gUnknown_84161E9, sub_8109C50 - .4byte gUnknown_84161F4, sub_8109C50 - .4byte gUnknown_84161F4, sub_810A324 - .4byte gUnknown_84161BC, sub_8109C50 - .4byte gUnknown_84161F9, sub_810A000 - .4byte gString_Dummy, NULL - -gUnknown_8452F18:: @ 8452F18 - .byte 0x00, 0x03, 0x01, 0x04 - .byte 0x00, 0x02, 0x04, 0x0b - .byte 0x03, 0x01, 0x04, 0x0b - -gUnknown_8452F24:: @ 8452F24 - .byte 0x06, 0x03, 0x01, 0x04 - -gUnknown_8452F28:: @ 8452F28 - .byte 0x03, 0x04 - .byte 0x04, 0x0b - .byte 0x03, 0x04 - -gUnknown_8452F2E:: @ 8452F2E - .byte 0x07, 0x04 - -gUnknown_8452F30:: @ 8452F30 - .byte 0x05, 0x04 - -gUnknown_8452F32:: @ 8452F32 - .byte 0x04, 0x0b - -gUnknown_8452F34:: @ 8452F34 - .4byte sub_8109BB8 - .4byte sub_810A370 - .4byte sub_810A568 - .4byte sub_810AB40 - .4byte sub_810A468 - .4byte sub_8109BB8 - .4byte NULL - -gUnknown_8452F50:: @ 8452F50 - .4byte sub_8109EA8 - .4byte sub_8109DB0 - -gUnknown_8452F58:: @ 8452F58 - .4byte sub_810A940 - .4byte sub_810A720 - -gUnknown_8452F60:: @ 8452F60 - .string "{COLOR_HIGHLIGHT_SHADOW RED TRANSPARENT GREEN}$" - -gUnknown_8452F66:: @ 8452F66 - .string "{COLOR_HIGHLIGHT_SHADOW LIGHT_GRAY TRANSPARENT BLACK}$" - -gUnknown_8452F6C:: @ 8452F6C - .byte 0, 8, 72, 1, 72, 72 - .2byte 0, 2, 111, 111 - .byte 0 - .align 2 - -gUnknown_8452F7C:: @ 8452F7C - .incbin "graphics/interface/select_button.4bpp" diff --git a/data/maps/DiglettsCave_NorthEntrance/map.json b/data/maps/DiglettsCave_NorthEntrance/map.json index b3571f8da..fa87e6f8a 100644 --- a/data/maps/DiglettsCave_NorthEntrance/map.json +++ b/data/maps/DiglettsCave_NorthEntrance/map.json @@ -23,7 +23,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "DiglettsCave_NorthEntrance_EventScript_160EE8", + "script": "DiglettsCave_NorthEntrance_EventScript_Hiker", "flag": "0" } ], diff --git a/data/maps/DiglettsCave_NorthEntrance/scripts.inc b/data/maps/DiglettsCave_NorthEntrance/scripts.inc index a11fa4c3a..3bd05f5fd 100644 --- a/data/maps/DiglettsCave_NorthEntrance/scripts.inc +++ b/data/maps/DiglettsCave_NorthEntrance/scripts.inc @@ -1,6 +1,6 @@ DiglettsCave_NorthEntrance_MapScripts:: @ 8160EE7 .byte 0 -DiglettsCave_NorthEntrance_EventScript_160EE8:: @ 8160EE8 - msgbox gUnknown_817462C, MSGBOX_NPC +DiglettsCave_NorthEntrance_EventScript_Hiker:: @ 8160EE8 + msgbox DiglettsCave_NorthEntrance_RockTunnelPitchBlack, MSGBOX_NPC end diff --git a/data/maps/DiglettsCave_NorthEntrance/text.inc b/data/maps/DiglettsCave_NorthEntrance/text.inc index 89dcb5a38..ac9c80755 100644 --- a/data/maps/DiglettsCave_NorthEntrance/text.inc +++ b/data/maps/DiglettsCave_NorthEntrance/text.inc @@ -1,4 +1,4 @@ -gUnknown_817462C:: @ 817462C +DiglettsCave_NorthEntrance_RockTunnelPitchBlack:: @ 817462C .string "I went inside ROCK TUNNEL, but it's\n" .string "pitch-black and scary in there.\p" .string "If I could get a POKéMON to use\n" diff --git a/data/maps/DiglettsCave_SouthEntrance/map.json b/data/maps/DiglettsCave_SouthEntrance/map.json index d713ceb6c..64f78c4bc 100644 --- a/data/maps/DiglettsCave_SouthEntrance/map.json +++ b/data/maps/DiglettsCave_SouthEntrance/map.json @@ -23,7 +23,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "DiglettsCave_SouthEntrance_EventScript_160EFC", + "script": "DiglettsCave_SouthEntrance_EventScript_OldMan", "flag": "0" } ], diff --git a/data/maps/DiglettsCave_SouthEntrance/scripts.inc b/data/maps/DiglettsCave_SouthEntrance/scripts.inc index 2ee397c02..5851336cc 100644 --- a/data/maps/DiglettsCave_SouthEntrance/scripts.inc +++ b/data/maps/DiglettsCave_SouthEntrance/scripts.inc @@ -1,6 +1,6 @@ DiglettsCave_SouthEntrance_MapScripts:: @ 8160EFB .byte 0 -DiglettsCave_SouthEntrance_EventScript_160EFC:: @ 8160EFC - msgbox gUnknown_81746A7, MSGBOX_NPC +DiglettsCave_SouthEntrance_EventScript_OldMan:: @ 8160EFC + msgbox DiglettsCave_SouthEntrance_Text_DiglettDugThisTunnel, MSGBOX_NPC end diff --git a/data/maps/DiglettsCave_SouthEntrance/text.inc b/data/maps/DiglettsCave_SouthEntrance/text.inc index 4c97cdc0b..c0e8a86c0 100644 --- a/data/maps/DiglettsCave_SouthEntrance/text.inc +++ b/data/maps/DiglettsCave_SouthEntrance/text.inc @@ -1,4 +1,4 @@ -gUnknown_81746A7:: @ 81746A7 +DiglettsCave_SouthEntrance_Text_DiglettDugThisTunnel:: @ 81746A7 .string "Well, isn't this a surprise!\n" .string "DIGLETT dug this long tunnel!\p" .string "It goes right to VIRIDIAN CITY,\n" diff --git a/data/maps/FourIsland/map.json b/data/maps/FourIsland/map.json index f88bce64e..0a8842419 100644 --- a/data/maps/FourIsland/map.json +++ b/data/maps/FourIsland/map.json @@ -23,7 +23,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "FourIsland_EventScript_167D55", + "script": "FourIsland_EventScript_DaycareMan", "flag": "0" }, { diff --git a/data/maps/FourIsland/scripts.inc b/data/maps/FourIsland/scripts.inc index 576e16390..85e1db283 100644 --- a/data/maps/FourIsland/scripts.inc +++ b/data/maps/FourIsland/scripts.inc @@ -69,66 +69,66 @@ Movement_167D52:: @ 8167D52 walk_in_place_fastest_right step_end -FourIsland_EventScript_167D55:: @ 8167D55 +FourIsland_EventScript_DaycareMan:: @ 8167D55 goto_if_questlog EventScript_ReleaseEnd special sub_8112364 lock faceplayer special GetDaycareMonNicknames specialvar VAR_RESULT, GetDaycareState - compare VAR_RESULT, 1 - goto_if_eq EventScript_167D9B - compare VAR_RESULT, 2 - goto_if_eq EventScript_167E0C - compare VAR_RESULT, 3 - goto_if_eq EventScript_167E19 - msgbox gUnknown_81BF555 + compare VAR_RESULT, DAYCARE_EGG_WAITING + goto_if_eq FourIsland_EventScript_DaycareEggWaiting + compare VAR_RESULT, DAYCARE_ONE_MON + goto_if_eq FourIsland_EventScript_CheckOnOneMon + compare VAR_RESULT, DAYCARE_TWO_MONS + goto_if_eq FourIsland_EventScript_CheckOnTwoMons + msgbox DayCare_Text_ImDaycareManSpeakToMyWife release end -EventScript_167D9B:: @ 8167D9B - msgbox gUnknown_81BF5E3, MSGBOX_YESNO +FourIsland_EventScript_DaycareEggWaiting:: @ 8167D9B + msgbox DayCare_Text_DoYouWantEgg, MSGBOX_YESNO compare VAR_RESULT, YES - goto_if_eq EventScript_167DD1 - msgbox gUnknown_81BF7B6, MSGBOX_YESNO + goto_if_eq FourIsland_EventScript_DaycareAcceptEgg + msgbox DayCare_Text_IWillKeepDoYouWantIt, MSGBOX_YESNO compare VAR_RESULT, YES - goto_if_eq EventScript_167DD1 - msgbox gUnknown_81BF6CF + goto_if_eq FourIsland_EventScript_DaycareAcceptEgg + msgbox DayCare_Text_IllKeepIt clearflag FLAG_PENDING_DAYCARE_EGG special RejectEggFromDayCare release end -EventScript_167DD1:: @ 8167DD1 +FourIsland_EventScript_DaycareAcceptEgg:: @ 8167DD1 specialvar VAR_RESULT, CalculatePlayerPartyCount - compare VAR_RESULT, 6 - goto_if_ne EventScript_167DEB - msgbox gUnknown_81BF6F0 + compare VAR_RESULT, PARTY_SIZE + goto_if_ne FourIsland_EventScript_DaycareReceivedEgg + msgbox DayCare_Text_YouHaveNoRoomForIt release end -EventScript_167DEB:: @ 8167DEB +FourIsland_EventScript_DaycareReceivedEgg:: @ 8167DEB textcolor 3 - message Text_1BF72A + message DayCare_Text_ReceivedEgg call EventScript_1A6675 playfanfare MUS_FANFA1 waitfanfare waitbuttonpress - msgbox gUnknown_81BF755 + msgbox DayCare_Text_TakeGoodCareOfIt special GiveEggFromDaycare clearflag FLAG_PENDING_DAYCARE_EGG release end -EventScript_167E0C:: @ 8167E0C +FourIsland_EventScript_CheckOnOneMon:: @ 8167E0C special GetDaycareMonNicknames - msgbox gUnknown_81BF69A + msgbox DayCare_Text_YourMonIsDoingFine release end -EventScript_167E19:: @ 8167E19 +FourIsland_EventScript_CheckOnTwoMons:: @ 8167E19 special GetDaycareMonNicknames - msgbox gUnknown_81BF789 + msgbox DayCare_Text_YourMonsAreDoingFine special SetDaycareCompatibilityString special Special_ShowStringVar4AsFieldMessage waitmessage diff --git a/data/maps/FourIsland_PokemonDayCare/map.json b/data/maps/FourIsland_PokemonDayCare/map.json index d6fd3c4f3..38520cc63 100644 --- a/data/maps/FourIsland_PokemonDayCare/map.json +++ b/data/maps/FourIsland_PokemonDayCare/map.json @@ -23,7 +23,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "FourIsland_PokemonDayCare_EventScript_171940", + "script": "FourIsland_PokemonDayCare_EventScript_DaycareWoman", "flag": "0" } ], diff --git a/data/maps/FourIsland_PokemonDayCare/scripts.inc b/data/maps/FourIsland_PokemonDayCare/scripts.inc index d158be282..c6cf95b20 100644 --- a/data/maps/FourIsland_PokemonDayCare/scripts.inc +++ b/data/maps/FourIsland_PokemonDayCare/scripts.inc @@ -1,164 +1,164 @@ FourIsland_PokemonDayCare_MapScripts:: @ 817193F .byte 0 -FourIsland_PokemonDayCare_EventScript_171940:: @ 8171940 +FourIsland_PokemonDayCare_EventScript_DaycareWoman:: @ 8171940 goto_if_questlog EventScript_ReleaseEnd lock faceplayer specialvar VAR_RESULT, GetDaycareState - compare VAR_RESULT, 1 - goto_if_eq EventScript_171A2E - compare VAR_RESULT, 2 - goto_if_eq EventScript_171A52 - compare VAR_RESULT, 3 - goto_if_eq EventScript_171B86 - msgbox gUnknown_81BF7E4, MSGBOX_YESNO + compare VAR_RESULT, DAYCARE_EGG_WAITING + goto_if_eq FourIsland_PokemonDayCare_EggWaiting + compare VAR_RESULT, DAYCARE_ONE_MON + goto_if_eq FourIsland_PokemonDayCare_OneMonInDaycare + compare VAR_RESULT, DAYCARE_TWO_MONS + goto_if_eq FourIsland_PokemonDayCare_TwoMonsInDaycare + msgbox DayCare_Text_WouldYouLikeUsToRaiseMon, MSGBOX_YESNO compare VAR_RESULT, YES - goto_if_eq EventScript_171993 - msgbox gUnknown_81BF916 + goto_if_eq FourIsland_PokemonDayCare_GiveMonToRaise + msgbox DayCare_Text_FineThenComeAgain release end -EventScript_171993:: @ 8171993 +FourIsland_PokemonDayCare_GiveMonToRaise:: @ 8171993 specialvar VAR_RESULT, CountPartyNonEggMons compare VAR_RESULT, 1 - goto_if_eq EventScript_171A1A - msgbox gUnknown_81BF839 + goto_if_eq FourIsland_PokemonDayCare_OnlyOneMonInParty + msgbox DayCare_Text_WhichMonShouldWeRaise fadescreen FADE_TO_BLACK special ChooseSendDaycareMon waitstate - compare VAR_0x8004, 6 - goto_if_ge EventScript_1719F7 + compare VAR_0x8004, PARTY_SIZE + goto_if_ge FourIsland_PokemonDayCare_ComeAgain specialvar VAR_RESULT, CountPartyAliveNonEggMons_IgnoreVar0x8004Slot compare VAR_RESULT, 0 - goto_if_eq EventScript_171A24 - specialvar VAR_0x8005, GetSelectedMonNickAndSpecies + goto_if_eq FourIsland_PokemonDayCare_OnlyOneAliveMonInParty + specialvar VAR_0x8005, GetSelectedMonNicknameAndSpecies waitse playmoncry VAR_0x8005, 0 - msgbox gUnknown_81BF860 + msgbox DayCare_Text_WellRaiseYourMon waitmoncry special StoreSelectedPokemonInDaycare incrementgamestat GAME_STAT_USED_DAYCARE specialvar VAR_RESULT, GetDaycareState - compare VAR_RESULT, 2 - goto_if_eq EventScript_171A01 + compare VAR_RESULT, DAYCARE_ONE_MON + goto_if_eq FourIsland_PokemonDayCare_CanRaiseOneMore release end -EventScript_1719F7:: @ 81719F7 - msgbox gUnknown_81BF976 +FourIsland_PokemonDayCare_ComeAgain:: @ 81719F7 + msgbox DayCare_Text_ComeAgain release end -EventScript_171A01:: @ 8171A01 - msgbox gUnknown_81BF89F, MSGBOX_YESNO +FourIsland_PokemonDayCare_CanRaiseOneMore:: @ 8171A01 + msgbox DayCare_Text_WeCanRaiseOneMore, MSGBOX_YESNO compare VAR_RESULT, YES - goto_if_eq EventScript_171993 - goto EventScript_1719F7 + goto_if_eq FourIsland_PokemonDayCare_GiveMonToRaise + goto FourIsland_PokemonDayCare_ComeAgain end -EventScript_171A1A:: @ 8171A1A - msgbox gUnknown_81BFAAD +FourIsland_PokemonDayCare_OnlyOneMonInParty:: @ 8171A1A + msgbox DayCare_Text_YouHaveJustOneMon release end -EventScript_171A24:: @ 8171A24 - msgbox gUnknown_81BFB09 +FourIsland_PokemonDayCare_OnlyOneAliveMonInParty:: @ 8171A24 + msgbox DayCare_Text_WhatWillYouBattleWith release end -EventScript_171A2E:: @ 8171A2E - msgbox gUnknown_81BF8F6 +FourIsland_PokemonDayCare_EggWaiting:: @ 8171A2E + msgbox DayCare_Text_HusbandWasLookingForYou release end -EventScript_171A38:: @ 8171A38 - msgbox gUnknown_81BF9CC +FourIsland_PokemonDayCare_MonHasGrownXLevels:: @ 8171A38 + msgbox DayCare_Text_YourMonHasGrownXLevels return -EventScript_171A41:: @ 8171A41 +FourIsland_PokemonDayCare_DisplayLevelsGained:: @ 8171A41 specialvar VAR_RESULT, GetNumLevelsGainedFromDaycare compare VAR_RESULT, 0 - call_if_ne EventScript_171A38 + call_if_ne FourIsland_PokemonDayCare_MonHasGrownXLevels return -EventScript_171A52:: @ 8171A52 - msgbox gUnknown_81BF988 +FourIsland_PokemonDayCare_OneMonInDaycare:: @ 8171A52 + msgbox DayCare_Text_GoodToSeeYou setvar VAR_0x8004, 0 - call EventScript_171A41 - msgbox gUnknown_81BF89F, MSGBOX_YESNO + call FourIsland_PokemonDayCare_DisplayLevelsGained + msgbox DayCare_Text_WeCanRaiseOneMore, MSGBOX_YESNO compare VAR_RESULT, YES - goto_if_eq EventScript_171993 - msgbox gUnknown_81BFAE8, MSGBOX_YESNO + goto_if_eq FourIsland_PokemonDayCare_GiveMonToRaise + msgbox DayCare_Text_TakeYourMonBack, MSGBOX_YESNO compare VAR_RESULT, YES - goto_if_eq EventScript_171A90 - goto EventScript_1719F7 + goto_if_eq FourIsland_PokemonDayCare_TryRetrieveMon + goto FourIsland_PokemonDayCare_ComeAgain end -EventScript_171A90:: @ 8171A90 +FourIsland_PokemonDayCare_TryRetrieveMon:: @ 8171A90 specialvar VAR_RESULT, CalculatePlayerPartyCount - compare VAR_RESULT, 6 - goto_if_eq EventScript_171B67 + compare VAR_RESULT, PARTY_SIZE + goto_if_eq FourIsland_PokemonDayCare_NoRoomInParty specialvar VAR_RESULT, GetDaycareState setvar VAR_0x8004, 0 - compare VAR_RESULT, 2 - goto_if_eq EventScript_171ACF + compare VAR_RESULT, DAYCARE_ONE_MON + goto_if_eq FourIsland_PokemonDayCare_CostPrompt special ShowDaycareLevelMenu waitstate copyvar VAR_0x8004, VAR_RESULT - compare VAR_RESULT, 2 - goto_if_eq EventScript_1719F7 - goto EventScript_171ACF + compare VAR_RESULT, DAYCARE_EXITED_LEVEL_MENU + goto_if_eq FourIsland_PokemonDayCare_ComeAgain + goto FourIsland_PokemonDayCare_CostPrompt end -EventScript_171ACF:: @ 8171ACF +FourIsland_PokemonDayCare_CostPrompt:: @ 8171ACF special GetDaycareCost - msgbox gUnknown_81BFA3B, MSGBOX_YESNO + msgbox DayCare_Text_ItWillCostX, MSGBOX_YESNO compare VAR_RESULT, YES - goto_if_eq EventScript_171AEB - goto EventScript_1719F7 + goto_if_eq FourIsland_PokemonDayCare_CheckEnoughMoney + goto FourIsland_PokemonDayCare_ComeAgain end -EventScript_171AEB:: @ 8171AEB +FourIsland_PokemonDayCare_CheckEnoughMoney:: @ 8171AEB specialvar VAR_RESULT, IsEnoughForCostInVar0x8005 - compare VAR_RESULT, 1 - goto_if_eq EventScript_171B05 - msgbox gUnknown_81BF932 + compare VAR_RESULT, TRUE + goto_if_eq FourIsland_PokemonDayCare_RetrieveMon + msgbox DayCare_Text_NotEnoughMoney release end -EventScript_171B05:: @ 8171B05 - applymovement 1, Movement_171B71 +FourIsland_PokemonDayCare_RetrieveMon:: @ 8171B05 + applymovement 1, FourIsland_PokemonDayCare_Movement_RetrieveMon waitmovement 0 specialvar VAR_RESULT, TakePokemonFromDaycare special SubtractMoneyFromVar0x8005 playse SE_REGI - msgbox gUnknown_81BFA67 + msgbox DayCare_Text_HeresYourMon waitse playmoncry VAR_RESULT, 0 textcolor 3 - msgbox gUnknown_81BFA85 + msgbox DayCare_Text_TookBackMon call EventScript_1A6675 waitmoncry specialvar VAR_RESULT, GetDaycareState - compare VAR_RESULT, 2 - goto_if_eq EventScript_171B4E - goto EventScript_1719F7 + compare VAR_RESULT, DAYCARE_ONE_MON + goto_if_eq FourIsland_PokemonDayCare_AskRetrieveOtherMon + goto FourIsland_PokemonDayCare_ComeAgain end -EventScript_171B4E:: @ 8171B4E - msgbox gUnknown_81BF94F, MSGBOX_YESNO +FourIsland_PokemonDayCare_AskRetrieveOtherMon:: @ 8171B4E + msgbox DayCare_Text_TakeOtherOneBackToo, MSGBOX_YESNO compare VAR_RESULT, YES - goto_if_eq EventScript_171A90 - goto EventScript_1719F7 + goto_if_eq FourIsland_PokemonDayCare_TryRetrieveMon + goto FourIsland_PokemonDayCare_ComeAgain end -EventScript_171B67:: @ 8171B67 - msgbox gUnknown_81BF9EF +FourIsland_PokemonDayCare_NoRoomInParty:: @ 8171B67 + msgbox DayCare_Text_YourPartyIsFull release end -Movement_171B71:: @ 8171B71 +FourIsland_PokemonDayCare_Movement_RetrieveMon:: @ 8171B71 delay_16 delay_16 face_right @@ -180,30 +180,32 @@ Movement_171B71:: @ 8171B71 walk_slowest_down step_end -EventScript_171B85:: @ 8171B85 +@ Unused. Possibly a commented script, or a typo end added to the above Movement script +FourIsland_PokemonDayCare_EventScript_UnusedEnd:: @ 8171B85 end -EventScript_171B86:: @ 8171B86 - msgbox gUnknown_81BF988 +FourIsland_PokemonDayCare_TwoMonsInDaycare:: @ 8171B86 + msgbox DayCare_Text_GoodToSeeYou setvar VAR_0x8004, 0 - call EventScript_171A41 + call FourIsland_PokemonDayCare_DisplayLevelsGained setvar VAR_0x8004, 1 - call EventScript_171A41 - msgbox gUnknown_81BFAE8, MSGBOX_YESNO + call FourIsland_PokemonDayCare_DisplayLevelsGained + msgbox DayCare_Text_TakeYourMonBack, MSGBOX_YESNO compare VAR_RESULT, YES - goto_if_eq EventScript_171A90 - msgbox gUnknown_81BF976 + goto_if_eq FourIsland_PokemonDayCare_TryRetrieveMon + msgbox DayCare_Text_ComeAgain release end -EventScript_171BBF:: @ 8171BBF +@ Unused +FourIsland_PokemonDayCare_EventScript_UnusedRetrieveMon:: @ 8171BBF special ShowDaycareLevelMenu waitstate compare VAR_RESULT, 2 - goto_if_eq EventScript_1719F7 + goto_if_eq FourIsland_PokemonDayCare_ComeAgain copyvar VAR_0x8004, VAR_RESULT specialvar VAR_RESULT, TakePokemonFromDaycare - msgbox gUnknown_81BFA67 - msgbox gUnknown_81BF976 + msgbox DayCare_Text_HeresYourMon + msgbox DayCare_Text_ComeAgain release end diff --git a/data/maps/Route22_NorthEntrance/map.json b/data/maps/Route22_NorthEntrance/map.json index 665477288..f8f624106 100644 --- a/data/maps/Route22_NorthEntrance/map.json +++ b/data/maps/Route22_NorthEntrance/map.json @@ -23,7 +23,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "Route22_NorthEntrance_EventScript_1704FC", + "script": "Route22_NorthEntrance_EventScript_BoulderBadgeGuard", "flag": "0" } ], @@ -65,7 +65,7 @@ "elevation": 3, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 0, - "script": "Route22_NorthEntrance_EventScript_17050D" + "script": "Route22_NorthEntrance_EventScript_BoulderBadgeGuardTrigger" } ], "bg_events": [] diff --git a/data/maps/Route22_NorthEntrance/scripts.inc b/data/maps/Route22_NorthEntrance/scripts.inc index afbfbb165..edd436b48 100644 --- a/data/maps/Route22_NorthEntrance/scripts.inc +++ b/data/maps/Route22_NorthEntrance/scripts.inc @@ -1,18 +1,18 @@ Route22_NorthEntrance_MapScripts:: @ 81704FB .byte 0 -Route22_NorthEntrance_EventScript_1704FC:: @ 81704FC +Route22_NorthEntrance_EventScript_BoulderBadgeGuard:: @ 81704FC lock faceplayer setvar VAR_TEMP_1, 1 - getstdstring 0, 15 - goto EventScript_1A7803 + getstdstring 0, STDSTRING_BOULDER_BADGE + goto Route22_NorthEntrance_EventScript_BadgeGuard end -Route22_NorthEntrance_EventScript_17050D:: @ 817050D +Route22_NorthEntrance_EventScript_BoulderBadgeGuardTrigger:: @ 817050D lockall setvar VAR_TEMP_1, 1 setvar VAR_0x8009, 1 - getstdstring 0, 15 - goto EventScript_1A796E + getstdstring 0, STDSTRING_BOULDER_BADGE + goto Route23_EventScript_BadgeGuardTrigger end diff --git a/data/maps/Route23/map.json b/data/maps/Route23/map.json index 073a4a17c..36bee2780 100644 --- a/data/maps/Route23/map.json +++ b/data/maps/Route23/map.json @@ -34,7 +34,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "Route23_EventScript_16850C", + "script": "Route23_EventScript_CascadeBadgeGuard", "flag": "0" }, { @@ -47,7 +47,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "Route23_EventScript_16851D", + "script": "Route23_EventScript_ThunderBadgeGuard", "flag": "0" }, { @@ -60,7 +60,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "Route23_EventScript_16852E", + "script": "Route23_EventScript_RainbowBadgeGuard", "flag": "0" }, { @@ -73,7 +73,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "Route23_EventScript_16853F", + "script": "Route23_EventScript_SoulBadgeGuard", "flag": "0" }, { @@ -86,7 +86,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "Route23_EventScript_168550", + "script": "Route23_EventScript_MarshBadgeGuard", "flag": "0" }, { @@ -99,7 +99,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "Route23_EventScript_168561", + "script": "Route23_EventScript_VolcanoBadgeGuard", "flag": "0" }, { @@ -112,7 +112,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "Route23_EventScript_168572", + "script": "Route23_EventScript_EarthBadgeGuard", "flag": "0" } ], @@ -154,7 +154,7 @@ "elevation": 3, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 1, - "script": "Route23_EventScript_168583" + "script": "Route23_EventScript_CascadeBadgeGuardTrigger" }, { "type": "trigger", @@ -163,7 +163,7 @@ "elevation": 3, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 2, - "script": "Route23_EventScript_168598" + "script": "Route23_EventScript_ThunderBadgeGuardTrigger" }, { "type": "trigger", @@ -172,7 +172,7 @@ "elevation": 3, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 3, - "script": "Route23_EventScript_1685AD" + "script": "Route23_EventScript_RainbowBadgeGuardTrigger" }, { "type": "trigger", @@ -181,7 +181,7 @@ "elevation": 0, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 4, - "script": "Route23_EventScript_1685C2" + "script": "Route23_EventScript_SoulBadgeGuardTrigger" }, { "type": "trigger", @@ -190,7 +190,7 @@ "elevation": 1, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 5, - "script": "Route23_EventScript_1685D7" + "script": "Route23_EventScript_MarshBadgeGuardTrigger" }, { "type": "trigger", @@ -199,7 +199,7 @@ "elevation": 3, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 6, - "script": "Route23_EventScript_1685EC" + "script": "Route23_EventScript_VolcanoBadgeGuardTrigger" }, { "type": "trigger", @@ -208,7 +208,7 @@ "elevation": 0, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 7, - "script": "Route23_EventScript_168601" + "script": "Route23_EventScript_EarthBadgeGuardTrigger" }, { "type": "trigger", @@ -217,7 +217,7 @@ "elevation": 0, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 7, - "script": "Route23_EventScript_168601" + "script": "Route23_EventScript_EarthBadgeGuardTrigger" }, { "type": "trigger", @@ -226,7 +226,7 @@ "elevation": 3, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 7, - "script": "Route23_EventScript_168601" + "script": "Route23_EventScript_EarthBadgeGuardTrigger" }, { "type": "trigger", @@ -235,7 +235,7 @@ "elevation": 0, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 7, - "script": "Route23_EventScript_168601" + "script": "Route23_EventScript_EarthBadgeGuardTrigger" }, { "type": "trigger", @@ -244,7 +244,7 @@ "elevation": 0, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 7, - "script": "Route23_EventScript_168601" + "script": "Route23_EventScript_EarthBadgeGuardTrigger" }, { "type": "trigger", @@ -253,7 +253,7 @@ "elevation": 0, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 7, - "script": "Route23_EventScript_168601" + "script": "Route23_EventScript_EarthBadgeGuardTrigger" }, { "type": "trigger", @@ -262,7 +262,7 @@ "elevation": 3, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 7, - "script": "Route23_EventScript_168601" + "script": "Route23_EventScript_EarthBadgeGuardTrigger" }, { "type": "trigger", @@ -271,7 +271,7 @@ "elevation": 3, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 7, - "script": "Route23_EventScript_168601" + "script": "Route23_EventScript_EarthBadgeGuardTrigger" }, { "type": "trigger", @@ -280,7 +280,7 @@ "elevation": 0, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 6, - "script": "Route23_EventScript_1685EC" + "script": "Route23_EventScript_VolcanoBadgeGuardTrigger" }, { "type": "trigger", @@ -289,7 +289,7 @@ "elevation": 3, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 6, - "script": "Route23_EventScript_1685EC" + "script": "Route23_EventScript_VolcanoBadgeGuardTrigger" }, { "type": "trigger", @@ -298,7 +298,7 @@ "elevation": 0, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 6, - "script": "Route23_EventScript_1685EC" + "script": "Route23_EventScript_VolcanoBadgeGuardTrigger" }, { "type": "trigger", @@ -307,7 +307,7 @@ "elevation": 1, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 5, - "script": "Route23_EventScript_1685D7" + "script": "Route23_EventScript_MarshBadgeGuardTrigger" }, { "type": "trigger", @@ -316,7 +316,7 @@ "elevation": 1, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 5, - "script": "Route23_EventScript_1685D7" + "script": "Route23_EventScript_MarshBadgeGuardTrigger" }, { "type": "trigger", @@ -325,7 +325,7 @@ "elevation": 1, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 5, - "script": "Route23_EventScript_1685D7" + "script": "Route23_EventScript_MarshBadgeGuardTrigger" }, { "type": "trigger", @@ -334,7 +334,7 @@ "elevation": 1, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 5, - "script": "Route23_EventScript_1685D7" + "script": "Route23_EventScript_MarshBadgeGuardTrigger" }, { "type": "trigger", @@ -343,7 +343,7 @@ "elevation": 1, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 5, - "script": "Route23_EventScript_1685D7" + "script": "Route23_EventScript_MarshBadgeGuardTrigger" }, { "type": "trigger", @@ -352,7 +352,7 @@ "elevation": 1, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 5, - "script": "Route23_EventScript_1685D7" + "script": "Route23_EventScript_MarshBadgeGuardTrigger" }, { "type": "trigger", @@ -361,7 +361,7 @@ "elevation": 0, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 2, - "script": "Route23_EventScript_168598" + "script": "Route23_EventScript_ThunderBadgeGuardTrigger" }, { "type": "trigger", @@ -370,7 +370,7 @@ "elevation": 0, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 2, - "script": "Route23_EventScript_168598" + "script": "Route23_EventScript_ThunderBadgeGuardTrigger" }, { "type": "trigger", @@ -379,7 +379,7 @@ "elevation": 3, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 2, - "script": "Route23_EventScript_168598" + "script": "Route23_EventScript_ThunderBadgeGuardTrigger" }, { "type": "trigger", @@ -388,7 +388,7 @@ "elevation": 0, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 3, - "script": "Route23_EventScript_1685AD" + "script": "Route23_EventScript_RainbowBadgeGuardTrigger" }, { "type": "trigger", @@ -397,7 +397,7 @@ "elevation": 0, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 3, - "script": "Route23_EventScript_1685AD" + "script": "Route23_EventScript_RainbowBadgeGuardTrigger" }, { "type": "trigger", @@ -406,7 +406,7 @@ "elevation": 3, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 3, - "script": "Route23_EventScript_1685AD" + "script": "Route23_EventScript_RainbowBadgeGuardTrigger" }, { "type": "trigger", @@ -415,7 +415,7 @@ "elevation": 1, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 4, - "script": "Route23_EventScript_1685C2" + "script": "Route23_EventScript_SoulBadgeGuardTrigger" }, { "type": "trigger", @@ -424,7 +424,7 @@ "elevation": 1, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 4, - "script": "Route23_EventScript_1685C2" + "script": "Route23_EventScript_SoulBadgeGuardTrigger" }, { "type": "trigger", @@ -433,7 +433,7 @@ "elevation": 1, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 4, - "script": "Route23_EventScript_1685C2" + "script": "Route23_EventScript_SoulBadgeGuardTrigger" }, { "type": "trigger", @@ -442,7 +442,7 @@ "elevation": 1, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 4, - "script": "Route23_EventScript_1685C2" + "script": "Route23_EventScript_SoulBadgeGuardTrigger" }, { "type": "trigger", @@ -451,7 +451,7 @@ "elevation": 1, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 4, - "script": "Route23_EventScript_1685C2" + "script": "Route23_EventScript_SoulBadgeGuardTrigger" }, { "type": "trigger", @@ -460,7 +460,7 @@ "elevation": 0, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 4, - "script": "Route23_EventScript_1685C2" + "script": "Route23_EventScript_SoulBadgeGuardTrigger" }, { "type": "trigger", @@ -469,7 +469,7 @@ "elevation": 1, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 4, - "script": "Route23_EventScript_1685C2" + "script": "Route23_EventScript_SoulBadgeGuardTrigger" }, { "type": "trigger", @@ -478,7 +478,7 @@ "elevation": 1, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 4, - "script": "Route23_EventScript_1685C2" + "script": "Route23_EventScript_SoulBadgeGuardTrigger" }, { "type": "trigger", @@ -487,7 +487,7 @@ "elevation": 1, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 4, - "script": "Route23_EventScript_1685C2" + "script": "Route23_EventScript_SoulBadgeGuardTrigger" }, { "type": "trigger", @@ -496,7 +496,7 @@ "elevation": 0, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 1, - "script": "Route23_EventScript_168583" + "script": "Route23_EventScript_CascadeBadgeGuardTrigger" }, { "type": "trigger", @@ -505,7 +505,7 @@ "elevation": 0, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 1, - "script": "Route23_EventScript_168583" + "script": "Route23_EventScript_CascadeBadgeGuardTrigger" }, { "type": "trigger", @@ -514,7 +514,7 @@ "elevation": 3, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 1, - "script": "Route23_EventScript_168583" + "script": "Route23_EventScript_CascadeBadgeGuardTrigger" }, { "type": "trigger", @@ -523,7 +523,7 @@ "elevation": 0, "var": "VAR_MAP_SCENE_ROUTE23", "var_value": 1, - "script": "Route23_EventScript_168583" + "script": "Route23_EventScript_CascadeBadgeGuardTrigger" } ], "bg_events": [ @@ -612,7 +612,7 @@ "x": 3, "y": 31, "elevation": 0, - "script": "Route23_EventScript_168616" + "script": "Route23_EventScript_VictoryRoadGateSign" } ] } diff --git a/data/maps/Route23/scripts.inc b/data/maps/Route23/scripts.inc index b5c8da4f3..fd6c792f0 100644 --- a/data/maps/Route23/scripts.inc +++ b/data/maps/Route23/scripts.inc @@ -11,118 +11,118 @@ Route23_OnTransition:: @ 81684F1 setvar VAR_MAP_SCENE_VICTORY_ROAD_3F, 0 end -Route23_EventScript_16850C:: @ 816850C +Route23_EventScript_CascadeBadgeGuard:: @ 816850C lock faceplayer setvar VAR_TEMP_1, 2 - getstdstring 0, 16 - goto EventScript_1A786C + getstdstring 0, STDSTRING_CASCADE_BADGE + goto Route23_EventScript_BadgeGuard end -Route23_EventScript_16851D:: @ 816851D +Route23_EventScript_ThunderBadgeGuard:: @ 816851D lock faceplayer setvar VAR_TEMP_1, 3 - getstdstring 0, 17 - goto EventScript_1A786C + getstdstring 0, STDSTRING_THUNDER_BADGE + goto Route23_EventScript_BadgeGuard end -Route23_EventScript_16852E:: @ 816852E +Route23_EventScript_RainbowBadgeGuard:: @ 816852E lock faceplayer setvar VAR_TEMP_1, 4 - getstdstring 0, 18 - goto EventScript_1A786C + getstdstring 0, STDSTRING_RAINBOW_BADGE + goto Route23_EventScript_BadgeGuard end -Route23_EventScript_16853F:: @ 816853F +Route23_EventScript_SoulBadgeGuard:: @ 816853F lock faceplayer setvar VAR_TEMP_1, 5 - getstdstring 0, 19 - goto EventScript_1A786C + getstdstring 0, STDSTRING_SOUL_BADGE + goto Route23_EventScript_BadgeGuard end -Route23_EventScript_168550:: @ 8168550 +Route23_EventScript_MarshBadgeGuard:: @ 8168550 lock faceplayer setvar VAR_TEMP_1, 6 - getstdstring 0, 20 - goto EventScript_1A786C + getstdstring 0, STDSTRING_MARSH_BADGE + goto Route23_EventScript_BadgeGuard end -Route23_EventScript_168561:: @ 8168561 +Route23_EventScript_VolcanoBadgeGuard:: @ 8168561 lock faceplayer setvar VAR_TEMP_1, 7 - getstdstring 0, 21 - goto EventScript_1A786C + getstdstring 0, STDSTRING_VOLCANO_BADGE + goto Route23_EventScript_BadgeGuard end -Route23_EventScript_168572:: @ 8168572 +Route23_EventScript_EarthBadgeGuard:: @ 8168572 lock faceplayer setvar VAR_TEMP_1, 8 - getstdstring 0, 22 - goto EventScript_1A786C + getstdstring 0, STDSTRING_EARTH_BADGE + goto Route23_EventScript_BadgeGuard end -Route23_EventScript_168583:: @ 8168583 +Route23_EventScript_CascadeBadgeGuardTrigger:: @ 8168583 lockall setvar VAR_TEMP_1, 2 setvar VAR_0x8009, 1 - getstdstring 0, 16 - goto EventScript_1A796E + getstdstring 0, STDSTRING_CASCADE_BADGE + goto Route23_EventScript_BadgeGuardTrigger end -Route23_EventScript_168598:: @ 8168598 +Route23_EventScript_ThunderBadgeGuardTrigger:: @ 8168598 lockall setvar VAR_TEMP_1, 3 setvar VAR_0x8009, 2 - getstdstring 0, 17 - goto EventScript_1A796E + getstdstring 0, STDSTRING_THUNDER_BADGE + goto Route23_EventScript_BadgeGuardTrigger end -Route23_EventScript_1685AD:: @ 81685AD +Route23_EventScript_RainbowBadgeGuardTrigger:: @ 81685AD lockall setvar VAR_TEMP_1, 4 setvar VAR_0x8009, 3 - getstdstring 0, 18 - goto EventScript_1A796E + getstdstring 0, STDSTRING_RAINBOW_BADGE + goto Route23_EventScript_BadgeGuardTrigger end -Route23_EventScript_1685C2:: @ 81685C2 +Route23_EventScript_SoulBadgeGuardTrigger:: @ 81685C2 lockall setvar VAR_TEMP_1, 5 setvar VAR_0x8009, 4 - getstdstring 0, 19 - goto EventScript_1A796E + getstdstring 0, STDSTRING_SOUL_BADGE + goto Route23_EventScript_BadgeGuardTrigger end -Route23_EventScript_1685D7:: @ 81685D7 +Route23_EventScript_MarshBadgeGuardTrigger:: @ 81685D7 lockall setvar VAR_TEMP_1, 6 setvar VAR_0x8009, 5 - getstdstring 0, 20 - goto EventScript_1A796E + getstdstring 0, STDSTRING_MARSH_BADGE + goto Route23_EventScript_BadgeGuardTrigger end -Route23_EventScript_1685EC:: @ 81685EC +Route23_EventScript_VolcanoBadgeGuardTrigger:: @ 81685EC lockall setvar VAR_TEMP_1, 7 setvar VAR_0x8009, 6 - getstdstring 0, 21 - goto EventScript_1A796E + getstdstring 0, STDSTRING_VOLCANO_BADGE + goto Route23_EventScript_BadgeGuardTrigger end -Route23_EventScript_168601:: @ 8168601 +Route23_EventScript_EarthBadgeGuardTrigger:: @ 8168601 lockall setvar VAR_TEMP_1, 8 setvar VAR_0x8009, 7 - getstdstring 0, 22 - goto EventScript_1A796E + getstdstring 0, STDSTRING_EARTH_BADGE + goto Route23_EventScript_BadgeGuardTrigger end -Route23_EventScript_168616:: @ 8168616 - msgbox gUnknown_8188C19, MSGBOX_SIGN +Route23_EventScript_VictoryRoadGateSign:: @ 8168616 + msgbox Route23_Text_VictoryRoadGateSign, MSGBOX_SIGN end diff --git a/data/maps/Route23/text.inc b/data/maps/Route23/text.inc index 6bdcaf47d..7429303cd 100644 --- a/data/maps/Route23/text.inc +++ b/data/maps/Route23/text.inc @@ -1,4 +1,4 @@ -gUnknown_8188C19:: @ 8188C19 +Route23_Text_VictoryRoadGateSign:: @ 8188C19 .string "VICTORY ROAD GATE -\n" .string "POKéMON LEAGUE$" diff --git a/data/maps/Route5_PokemonDayCare/map.json b/data/maps/Route5_PokemonDayCare/map.json index 11c53b635..52cbb04ea 100644 --- a/data/maps/Route5_PokemonDayCare/map.json +++ b/data/maps/Route5_PokemonDayCare/map.json @@ -23,7 +23,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "Route5_PokemonDayCare_EventScript_1BF398", + "script": "Route5_PokemonDayCare_EventScript_DaycareMan", "flag": "0" } ], diff --git a/data/maps/Route5_PokemonDayCare/scripts.inc b/data/maps/Route5_PokemonDayCare/scripts.inc index ebe6a8386..0f2ceb484 100644 --- a/data/maps/Route5_PokemonDayCare/scripts.inc +++ b/data/maps/Route5_PokemonDayCare/scripts.inc @@ -1,2 +1,4 @@ +@ Handled by data/scripts/day_care.inc + Route5_PokemonDayCare_MapScripts:: @ 816F8FF .byte 0 diff --git a/data/maps/Route5_PokemonDayCare/text.inc b/data/maps/Route5_PokemonDayCare/text.inc new file mode 100644 index 000000000..cada12ea5 --- /dev/null +++ b/data/maps/Route5_PokemonDayCare/text.inc @@ -0,0 +1,60 @@ +Route5_PokemonDayCare_Text_WantMeToRaiseMon:: @ 819DD66 + .string "I run the DAY-CARE service.\p" + .string "Would you like me to raise one of\n" + .string "your POKéMON?$" + +Route5_PokemonDayCare_Text_ComeAgain:: @ 819DDB2 + .string "Come again.$" + +Route5_PokemonDayCare_Text_WhichMonShouldIRaise:: @ 819DDBE + .string "Which POKéMON should I raise?$" + +Route5_PokemonDayCare_Text_ComeAnytimeYouLike:: @ 819DDDC + .string "Fine.\n" + .string "Come anytime you like.$" + +Route5_PokemonDayCare_Text_LookAfterMonForAWhile:: @ 819DDF9 + .string "Fine, I'll look after your\n" + .string "{STR_VAR_1} for a while.$" + +Route5_PokemonDayCare_Text_ComeSeeMeInAWhile:: @ 819DE24 + .string "Come see me in a while.$" + +Route5_PokemonDayCare_Text_MonNeedsToSpendMoreTime:: @ 819DE3C + .string "You're back already?\p" + .string "Your {STR_VAR_1} needs to spend\n" + .string "some more time with me.$" + +Route5_PokemonDayCare_Text_OweMeXForMonsReturn:: @ 819DE80 + .string "You owe me ¥{STR_VAR_2} for the return\n" + .string "of this POKéMON.$" + +Route5_PokemonDayCare_Text_ThankYouHeresMon:: @ 819DEAF + .string "Thank you!\n" + .string "Here's your POKéMON.$" + +Route5_PokemonDayCare_Text_PlayerGotMonBack:: @ 819DECF + .string "{PLAYER} got {STR_VAR_1} back\n" + .string "from the DAY-CARE MAN.$" + +Route5_PokemonDayCare_Text_OnlyHaveOneMonWithYou:: @ 819DEF5 + .string "Oh? You only have one POKéMON\n" + .string "with you.$" + +Route5_PokemonDayCare_Text_WhatWillYouBattleWith:: @ 819DF1D + .string "If you leave me that POKéMON,\n" + .string "what will you battle with?$" + +Route5_PokemonDayCare_Text_MonHasGrownByXLevels:: @ 819DF56 + .string "Your {STR_VAR_1} has grown a lot.\n" + .string "Yes, quite a lot, I'd say.\p" + .string "Let me see…\n" + .string "By level, it's grown by {STR_VAR_2}.\p" + .string "Aren't I great?$" + +Route5_PokemonDayCare_Text_YouveGotNoRoomForIt:: @ 819DFC2 + .string "You can't take this POKéMON back\n" + .string "if you've got no room for it.$" + +Route5_PokemonDayCare_Text_DontHaveEnoughMoney:: @ 819E001 + .string "You don't have enough money.$" diff --git a/data/maps/Route5_SouthEntrance/text.inc b/data/maps/Route5_SouthEntrance/text.inc index 079423f34..749bcabe5 100644 --- a/data/maps/Route5_SouthEntrance/text.inc +++ b/data/maps/Route5_SouthEntrance/text.inc @@ -1,64 +1,3 @@ -Text_19DD66:: @ 819DD66 - .string "I run the DAY-CARE service.\p" - .string "Would you like me to raise one of\n" - .string "your POKéMON?$" - -Text_19DDB2:: @ 819DDB2 - .string "Come again.$" - -Text_19DDBE:: @ 819DDBE - .string "Which POKéMON should I raise?$" - -Text_19DDDC:: @ 819DDDC - .string "Fine.\n" - .string "Come anytime you like.$" - -Text_19DDF9:: @ 819DDF9 - .string "Fine, I'll look after your\n" - .string "{STR_VAR_1} for a while.$" - -Text_19DE24:: @ 819DE24 - .string "Come see me in a while.$" - -Text_19DE3C:: @ 819DE3C - .string "You're back already?\p" - .string "Your {STR_VAR_1} needs to spend\n" - .string "some more time with me.$" - -Text_19DE80:: @ 819DE80 - .string "You owe me ¥{STR_VAR_2} for the return\n" - .string "of this POKéMON.$" - -Text_19DEAF:: @ 819DEAF - .string "Thank you!\n" - .string "Here's your POKéMON.$" - -Text_19DECF:: @ 819DECF - .string "{PLAYER} got {STR_VAR_1} back\n" - .string "from the DAY-CARE MAN.$" - -Text_19DEF5:: @ 819DEF5 - .string "Oh? You only have one POKéMON\n" - .string "with you.$" - -Text_19DF1D:: @ 819DF1D - .string "If you leave me that POKéMON,\n" - .string "what will you battle with?$" - -Text_19DF56:: @ 819DF56 - .string "Your {STR_VAR_1} has grown a lot.\n" - .string "Yes, quite a lot, I'd say.\p" - .string "Let me see…\n" - .string "By level, it's grown by {STR_VAR_2}.\p" - .string "Aren't I great?$" - -Text_19DFC2:: @ 819DFC2 - .string "You can't take this POKéMON back\n" - .string "if you've got no room for it.$" - -Text_19E001:: @ 819E001 - .string "You don't have enough money.$" - Text_19E01E:: @ 819E01E .string "きみの\n" .string "みてみるかね?$" diff --git a/data/maps/UndergroundPath_EastEntrance/map.json b/data/maps/UndergroundPath_EastEntrance/map.json index 3e600d6ad..8a82619c0 100644 --- a/data/maps/UndergroundPath_EastEntrance/map.json +++ b/data/maps/UndergroundPath_EastEntrance/map.json @@ -23,7 +23,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "UndergroundPath_EastEntrance_EventScript_160EDE", + "script": "UndergroundPath_EastEntrance_EventScript_Woman", "flag": "0" } ], diff --git a/data/maps/UndergroundPath_EastEntrance/scripts.inc b/data/maps/UndergroundPath_EastEntrance/scripts.inc index 28a211c6f..88bc29730 100644 --- a/data/maps/UndergroundPath_EastEntrance/scripts.inc +++ b/data/maps/UndergroundPath_EastEntrance/scripts.inc @@ -1,6 +1,6 @@ UndergroundPath_EastEntrance_MapScripts:: @ 8160EDD .byte 0 -UndergroundPath_EastEntrance_EventScript_160EDE:: @ 8160EDE - msgbox gUnknown_81745D9, MSGBOX_NPC +UndergroundPath_EastEntrance_EventScript_Woman:: @ 8160EDE + msgbox UndergroundPath_EastEntrance_Text_DoYouGoToCeladonDeptStore, MSGBOX_NPC end diff --git a/data/maps/UndergroundPath_EastEntrance/text.inc b/data/maps/UndergroundPath_EastEntrance/text.inc index f44fb5a21..7333a73cc 100644 --- a/data/maps/UndergroundPath_EastEntrance/text.inc +++ b/data/maps/UndergroundPath_EastEntrance/text.inc @@ -1,4 +1,4 @@ -gUnknown_81745D9:: @ 81745D9 +UndergroundPath_EastEntrance_Text_DoYouGoToCeladonDeptStore:: @ 81745D9 .string "The DEPARTMENT STORE in CELADON\n" .string "has a great selection.\p" .string "Do you go there very often?$" diff --git a/data/maps/UndergroundPath_NorthEntrance/map.json b/data/maps/UndergroundPath_NorthEntrance/map.json index 18939c721..d5fbc5df9 100644 --- a/data/maps/UndergroundPath_NorthEntrance/map.json +++ b/data/maps/UndergroundPath_NorthEntrance/map.json @@ -23,7 +23,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "UndergroundPath_NorthEntrance_EventScript_160E39", + "script": "UndergroundPath_NorthEntrance_EventScript_Saige", "flag": "0" } ], diff --git a/data/maps/UndergroundPath_NorthEntrance/scripts.inc b/data/maps/UndergroundPath_NorthEntrance/scripts.inc index a06a23659..70a690828 100644 --- a/data/maps/UndergroundPath_NorthEntrance/scripts.inc +++ b/data/maps/UndergroundPath_NorthEntrance/scripts.inc @@ -1,39 +1,39 @@ UndergroundPath_NorthEntrance_MapScripts:: @ 8160E38 .byte 0 -UndergroundPath_NorthEntrance_EventScript_160E39:: @ 8160E39 +UndergroundPath_NorthEntrance_EventScript_Saige:: @ 8160E39 lock faceplayer setvar VAR_0x8008, INGAME_TRADE_NIDORAN call EventScript_GetInGameTradeSpeciesInfo - goto_if_set FLAG_DID_MS_NIDO_TRADE, EventScript_160EAB + goto_if_set FLAG_DID_MS_NIDO_TRADE, UndergroundPath_NorthEntrance_EventScript_AlreadyTraded msgbox gUnknown_81A5AD6, MSGBOX_YESNO compare VAR_RESULT, NO - goto_if_eq EventScript_160E93 + goto_if_eq UndergroundPath_NorthEntrance_EventScript_DeclineTrade call EventScript_ChooseMonForInGameTrade compare VAR_0x8004, PARTY_SIZE - goto_if_ge EventScript_160E93 + goto_if_ge UndergroundPath_NorthEntrance_EventScript_DeclineTrade call EventScript_GetInGameTradeSpecies compare VAR_RESULT, VAR_0x8009 - goto_if_ne EventScript_160E9D + goto_if_ne UndergroundPath_NorthEntrance_EventScript_NotRequestedMon call EventScript_DoInGameTrade msgbox gUnknown_81A5B4A setflag FLAG_DID_MS_NIDO_TRADE release end -EventScript_160E93:: @ 8160E93 +UndergroundPath_NorthEntrance_EventScript_DeclineTrade:: @ 8160E93 msgbox gUnknown_81A5B08 release end -EventScript_160E9D:: @ 8160E9D +UndergroundPath_NorthEntrance_EventScript_NotRequestedMon:: @ 8160E9D getspeciesname 0, VAR_0x8009 msgbox gUnknown_81A5B18 release end -EventScript_160EAB:: @ 8160EAB +UndergroundPath_NorthEntrance_EventScript_AlreadyTraded:: @ 8160EAB msgbox gUnknown_81A5B60 release end diff --git a/data/maps/UndergroundPath_SouthEntrance/map.json b/data/maps/UndergroundPath_SouthEntrance/map.json index e58624d4e..604e544cd 100644 --- a/data/maps/UndergroundPath_SouthEntrance/map.json +++ b/data/maps/UndergroundPath_SouthEntrance/map.json @@ -23,7 +23,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "UndergroundPath_SouthEntrance_EventScript_160EC0", + "script": "UndergroundPath_SouthEntrance_EventScript_Woman", "flag": "0" } ], diff --git a/data/maps/UndergroundPath_SouthEntrance/scripts.inc b/data/maps/UndergroundPath_SouthEntrance/scripts.inc index 1623d16d7..1bc0b2a31 100644 --- a/data/maps/UndergroundPath_SouthEntrance/scripts.inc +++ b/data/maps/UndergroundPath_SouthEntrance/scripts.inc @@ -1,6 +1,6 @@ UndergroundPath_SouthEntrance_MapScripts:: @ 8160EBF .byte 0 -UndergroundPath_SouthEntrance_EventScript_160EC0:: @ 8160EC0 - msgbox gUnknown_8174559, MSGBOX_NPC +UndergroundPath_SouthEntrance_EventScript_Woman:: @ 8160EC0 + msgbox UndergroundPath_SouthEntrance_Text_PeopleLoseThingsInTheDarkness, MSGBOX_NPC end diff --git a/data/maps/UndergroundPath_SouthEntrance/text.inc b/data/maps/UndergroundPath_SouthEntrance/text.inc index 07e9c0368..5e35c333d 100644 --- a/data/maps/UndergroundPath_SouthEntrance/text.inc +++ b/data/maps/UndergroundPath_SouthEntrance/text.inc @@ -1,4 +1,4 @@ -gUnknown_8174559:: @ 8174559 +UndergroundPath_SouthEntrance_Text_PeopleLoseThingsInTheDarkness:: @ 8174559 .string "People often lose things in the\n" .string "darkness of the UNDERGROUND PATH.$" diff --git a/data/maps/UndergroundPath_WestEntrance/map.json b/data/maps/UndergroundPath_WestEntrance/map.json index ab685cca5..8e8d2f662 100644 --- a/data/maps/UndergroundPath_WestEntrance/map.json +++ b/data/maps/UndergroundPath_WestEntrance/map.json @@ -23,7 +23,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "UndergroundPath_WestEntrance_EventScript_160ECA", + "script": "UndergroundPath_WestEntrance_EventScript_BaldingMan", "flag": "0" } ], diff --git a/data/maps/UndergroundPath_WestEntrance/scripts.inc b/data/maps/UndergroundPath_WestEntrance/scripts.inc index 6b1c60710..35fab8e7a 100644 --- a/data/maps/UndergroundPath_WestEntrance/scripts.inc +++ b/data/maps/UndergroundPath_WestEntrance/scripts.inc @@ -1,6 +1,6 @@ UndergroundPath_WestEntrance_MapScripts:: @ 8160EC9 .byte 0 -UndergroundPath_WestEntrance_EventScript_160ECA:: @ 8160ECA - msgbox gUnknown_817459B, MSGBOX_NPC +UndergroundPath_WestEntrance_EventScript_BaldingMan:: @ 8160ECA + msgbox UndergroundPath_WestEntrance_Text_SleepyMonNearCeladon, MSGBOX_NPC end diff --git a/data/maps/UndergroundPath_WestEntrance/text.inc b/data/maps/UndergroundPath_WestEntrance/text.inc index 5447a5206..6130a5244 100644 --- a/data/maps/UndergroundPath_WestEntrance/text.inc +++ b/data/maps/UndergroundPath_WestEntrance/text.inc @@ -1,4 +1,4 @@ -gUnknown_817459B:: @ 817459B +UndergroundPath_WestEntrance_Text_SleepyMonNearCeladon:: @ 817459B .string "I heard a sleepy POKéMON appeared\n" .string "out near CELADON CITY, too.$" diff --git a/data/maps/UnionRoom/map.json b/data/maps/UnionRoom/map.json index 91cf2cb49..7427f28c3 100644 --- a/data/maps/UnionRoom/map.json +++ b/data/maps/UnionRoom/map.json @@ -23,7 +23,7 @@ "movement_range_y": 0, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "UnionRoom_EventScript_16050C", + "script": "UnionRoom_EventScript_Attendant", "flag": "0" }, { @@ -36,8 +36,8 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "UnionRoom_EventScript_1604DA", - "flag": "FLAG_HIDE_UNION_ROOM_4" + "script": "UnionRoom_EventScript_Player4", + "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_4" }, { "graphics_id": "OBJECT_EVENT_GFX_VAR_7", @@ -49,8 +49,8 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "UnionRoom_EventScript_160502", - "flag": "FLAG_HIDE_UNION_ROOM_8" + "script": "UnionRoom_EventScript_Player8", + "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_8" }, { "graphics_id": "OBJECT_EVENT_GFX_VAR_6", @@ -62,8 +62,8 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "UnionRoom_EventScript_1604F8", - "flag": "FLAG_HIDE_UNION_ROOM_7" + "script": "UnionRoom_EventScript_Player7", + "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_7" }, { "graphics_id": "OBJECT_EVENT_GFX_VAR_5", @@ -75,8 +75,8 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "UnionRoom_EventScript_1604EE", - "flag": "FLAG_HIDE_UNION_ROOM_6" + "script": "UnionRoom_EventScript_Player6", + "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_6" }, { "graphics_id": "OBJECT_EVENT_GFX_VAR_4", @@ -88,8 +88,8 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "UnionRoom_EventScript_1604E4", - "flag": "FLAG_HIDE_UNION_ROOM_5" + "script": "UnionRoom_EventScript_Player5", + "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_5" }, { "graphics_id": "OBJECT_EVENT_GFX_VAR_2", @@ -101,8 +101,8 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "UnionRoom_EventScript_1604D0", - "flag": "FLAG_HIDE_UNION_ROOM_3" + "script": "UnionRoom_EventScript_Player3", + "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_3" }, { "graphics_id": "OBJECT_EVENT_GFX_VAR_1", @@ -114,8 +114,8 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "UnionRoom_EventScript_1604C6", - "flag": "FLAG_HIDE_UNION_ROOM_2" + "script": "UnionRoom_EventScript_Player2", + "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_2" }, { "graphics_id": "OBJECT_EVENT_GFX_VAR_0", @@ -127,8 +127,8 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "UnionRoom_EventScript_1604BC", - "flag": "FLAG_HIDE_UNION_ROOM_1" + "script": "UnionRoom_EventScript_Player1", + "flag": "FLAG_HIDE_UNION_ROOM_PLAYER_1" } ], "warp_events": [ diff --git a/data/maps/UnionRoom/scripts.inc b/data/maps/UnionRoom/scripts.inc index c948682ce..35222ba8b 100644 --- a/data/maps/UnionRoom/scripts.inc +++ b/data/maps/UnionRoom/scripts.inc @@ -4,14 +4,14 @@ UnionRoom_MapScripts:: @ 816047C .byte 0 UnionRoom_OnResume:: @ 8160487 - setflag FLAG_HIDE_UNION_ROOM_1 - setflag FLAG_HIDE_UNION_ROOM_2 - setflag FLAG_HIDE_UNION_ROOM_3 - setflag FLAG_HIDE_UNION_ROOM_4 - setflag FLAG_HIDE_UNION_ROOM_5 - setflag FLAG_HIDE_UNION_ROOM_6 - setflag FLAG_HIDE_UNION_ROOM_7 - setflag FLAG_HIDE_UNION_ROOM_8 + setflag FLAG_HIDE_UNION_ROOM_PLAYER_1 + setflag FLAG_HIDE_UNION_ROOM_PLAYER_2 + setflag FLAG_HIDE_UNION_ROOM_PLAYER_3 + setflag FLAG_HIDE_UNION_ROOM_PLAYER_4 + setflag FLAG_HIDE_UNION_ROOM_PLAYER_5 + setflag FLAG_HIDE_UNION_ROOM_PLAYER_6 + setflag FLAG_HIDE_UNION_ROOM_PLAYER_7 + setflag FLAG_HIDE_UNION_ROOM_PLAYER_8 removeobject 9 removeobject 8 removeobject 7 @@ -26,7 +26,7 @@ UnionRoom_OnResume:: @ 8160487 UnionRoom_OnTransition:: @ 81604BB end -UnionRoom_EventScript_1604BC:: @ 81604BC +UnionRoom_EventScript_Player1:: @ 81604BC lock faceplayer setvar VAR_RESULT, 1 @@ -34,7 +34,7 @@ UnionRoom_EventScript_1604BC:: @ 81604BC release end -UnionRoom_EventScript_1604C6:: @ 81604C6 +UnionRoom_EventScript_Player2:: @ 81604C6 lock faceplayer setvar VAR_RESULT, 2 @@ -42,7 +42,7 @@ UnionRoom_EventScript_1604C6:: @ 81604C6 release end -UnionRoom_EventScript_1604D0:: @ 81604D0 +UnionRoom_EventScript_Player3:: @ 81604D0 lock faceplayer setvar VAR_RESULT, 3 @@ -50,7 +50,7 @@ UnionRoom_EventScript_1604D0:: @ 81604D0 release end -UnionRoom_EventScript_1604DA:: @ 81604DA +UnionRoom_EventScript_Player4:: @ 81604DA lock faceplayer setvar VAR_RESULT, 4 @@ -58,7 +58,7 @@ UnionRoom_EventScript_1604DA:: @ 81604DA release end -UnionRoom_EventScript_1604E4:: @ 81604E4 +UnionRoom_EventScript_Player5:: @ 81604E4 lock faceplayer setvar VAR_RESULT, 5 @@ -66,7 +66,7 @@ UnionRoom_EventScript_1604E4:: @ 81604E4 release end -UnionRoom_EventScript_1604EE:: @ 81604EE +UnionRoom_EventScript_Player6:: @ 81604EE lock faceplayer setvar VAR_RESULT, 6 @@ -74,7 +74,7 @@ UnionRoom_EventScript_1604EE:: @ 81604EE release end -UnionRoom_EventScript_1604F8:: @ 81604F8 +UnionRoom_EventScript_Player7:: @ 81604F8 lock faceplayer setvar VAR_RESULT, 7 @@ -82,7 +82,7 @@ UnionRoom_EventScript_1604F8:: @ 81604F8 release end -UnionRoom_EventScript_160502:: @ 8160502 +UnionRoom_EventScript_Player8:: @ 8160502 lock faceplayer setvar VAR_RESULT, 8 @@ -90,7 +90,7 @@ UnionRoom_EventScript_160502:: @ 8160502 release end -UnionRoom_EventScript_16050C:: @ 816050C +UnionRoom_EventScript_Attendant:: @ 816050C lock faceplayer setvar VAR_RESULT, 9 @@ -98,7 +98,7 @@ UnionRoom_EventScript_16050C:: @ 816050C release end -UnionRoom_EventScript_160516:: @ 8160516 +UnionRoom_EventScript_Unused:: @ 8160516 lockall setvar VAR_RESULT, 10 waitstate diff --git a/data/scripts/day_care.inc b/data/scripts/day_care.inc index 9937bf704..8e3318c35 100644 --- a/data/scripts/day_care.inc +++ b/data/scripts/day_care.inc @@ -1,93 +1,93 @@ -Route5_PokemonDayCare_EventScript_1BF398:: @ 81BF398 +Route5_PokemonDayCare_EventScript_DaycareMan:: @ 81BF398 goto_if_questlog EventScript_ReleaseEnd lock faceplayer showmoneybox 0, 0, 0 specialvar VAR_RESULT, IsThereMonInRoute5Daycare - compare VAR_RESULT, 1 - goto_if_eq EventScript_1BF46E - msgbox Text_19DD66, MSGBOX_YESNO + compare VAR_RESULT, TRUE + goto_if_eq Route5_PokemonDayCare_EventScript_CheckOnMon + msgbox Route5_PokemonDayCare_Text_WantMeToRaiseMon, MSGBOX_YESNO compare VAR_RESULT, YES - goto_if_eq EventScript_1BF3DD - msgbox Text_19DDB2 - goto EventScript_1BF541 + goto_if_eq Route5_PokemonDayCare_EventScript_TryGiveMon + msgbox Route5_PokemonDayCare_Text_ComeAgain + goto Route5_PokemonDayCare_EventScript_CloseMoneyBox end -EventScript_1BF3DD:: @ 81BF3DD +Route5_PokemonDayCare_EventScript_TryGiveMon:: @ 81BF3DD specialvar VAR_RESULT, CountPartyNonEggMons compare VAR_RESULT, 1 - goto_if_eq EventScript_1BF452 - msgbox Text_19DDBE + goto_if_eq Route5_PokemonDayCare_EventScript_OnlyOneMonInParty + msgbox Route5_PokemonDayCare_Text_WhichMonShouldIRaise fadescreen FADE_TO_BLACK hidemoneybox 0, 0 special ChooseSendDaycareMon waitstate showmoneybox 0, 0, 0 - compare VAR_0x8004, 6 - goto_if_ge EventScript_1BF444 + compare VAR_0x8004, PARTY_SIZE + goto_if_ge Route5_PokemonDayCare_EventScript_ComeAgain specialvar VAR_RESULT, CountPartyAliveNonEggMons_IgnoreVar0x8004Slot compare VAR_RESULT, 0 - goto_if_eq EventScript_1BF460 - specialvar VAR_0x8005, GetSelectedMonNickAndSpecies - msgbox Text_19DDF9 + goto_if_eq Route5_PokemonDayCare_EventScript_OnlyOneAliveMonInParty + specialvar VAR_0x8005, GetSelectedMonNicknameAndSpecies + msgbox Route5_PokemonDayCare_Text_LookAfterMonForAWhile waitse playmoncry VAR_0x8005, 0 - msgbox Text_19DE24 + msgbox Route5_PokemonDayCare_Text_ComeSeeMeInAWhile waitmoncry special PutMonInRoute5Daycare incrementgamestat GAME_STAT_USED_DAYCARE - goto EventScript_1BF541 + goto Route5_PokemonDayCare_EventScript_CloseMoneyBox end -EventScript_1BF444:: @ 81BF444 - msgbox Text_19DDDC - goto EventScript_1BF541 +Route5_PokemonDayCare_EventScript_ComeAgain:: @ 81BF444 + msgbox Route5_PokemonDayCare_Text_ComeAnytimeYouLike + goto Route5_PokemonDayCare_EventScript_CloseMoneyBox end -EventScript_1BF452:: @ 81BF452 - msgbox Text_19DEF5 - goto EventScript_1BF541 +Route5_PokemonDayCare_EventScript_OnlyOneMonInParty:: @ 81BF452 + msgbox Route5_PokemonDayCare_Text_OnlyHaveOneMonWithYou + goto Route5_PokemonDayCare_EventScript_CloseMoneyBox end -EventScript_1BF460:: @ 81BF460 - msgbox Text_19DF1D - goto EventScript_1BF541 +Route5_PokemonDayCare_EventScript_OnlyOneAliveMonInParty:: @ 81BF460 + msgbox Route5_PokemonDayCare_Text_WhatWillYouBattleWith + goto Route5_PokemonDayCare_EventScript_CloseMoneyBox end -EventScript_1BF46E:: @ 81BF46E +Route5_PokemonDayCare_EventScript_CheckOnMon:: @ 81BF46E setvar VAR_0x8004, 0 specialvar VAR_RESULT, GetNumLevelsGainedForRoute5DaycareMon compare VAR_RESULT, 0 - call_if_ne EventScript_1BF4AA + call_if_ne Route5_PokemonDayCare_EventScript_MonHasGrownByXLevels compare VAR_RESULT, 0 - call_if_eq EventScript_1BF4B3 + call_if_eq Route5_PokemonDayCare_EventScript_NotEnoughTime special GetCostToWithdrawRoute5DaycareMon - msgbox Text_19DE80, MSGBOX_YESNO + msgbox Route5_PokemonDayCare_Text_OweMeXForMonsReturn, MSGBOX_YESNO compare VAR_RESULT, YES - goto_if_eq EventScript_1BF4BC - goto EventScript_1BF444 + goto_if_eq Route5_PokemonDayCare_EventScript_TryRetrieveMon + goto Route5_PokemonDayCare_EventScript_ComeAgain end -EventScript_1BF4AA:: @ 81BF4AA - msgbox Text_19DF56 +Route5_PokemonDayCare_EventScript_MonHasGrownByXLevels:: @ 81BF4AA + msgbox Route5_PokemonDayCare_Text_MonHasGrownByXLevels return -EventScript_1BF4B3:: @ 81BF4B3 - msgbox Text_19DE3C +Route5_PokemonDayCare_EventScript_NotEnoughTime:: @ 81BF4B3 + msgbox Route5_PokemonDayCare_Text_MonNeedsToSpendMoreTime return -EventScript_1BF4BC:: @ 81BF4BC +Route5_PokemonDayCare_EventScript_TryRetrieveMon:: @ 81BF4BC specialvar VAR_RESULT, CalculatePlayerPartyCount compare VAR_RESULT, PARTY_SIZE - goto_if_eq EventScript_1BF533 + goto_if_eq Route5_PokemonDayCare_EventScript_NoRoomInParty specialvar VAR_RESULT, IsEnoughForCostInVar0x8005 - compare VAR_RESULT, 1 - goto_if_eq EventScript_1BF4EA - msgbox Text_19E001 - goto EventScript_1BF541 + compare VAR_RESULT, TRUE + goto_if_eq Route5_PokemonDayCare_EventScript_RetrieveMon + msgbox Route5_PokemonDayCare_Text_DontHaveEnoughMoney + goto Route5_PokemonDayCare_EventScript_CloseMoneyBox end -EventScript_1BF4EA:: @ 81BF4EA +Route5_PokemonDayCare_EventScript_RetrieveMon:: @ 81BF4EA setvar VAR_0x8004, 0 specialvar VAR_RESULT, TakePokemonFromRoute5Daycare special SubtractMoneyFromVar0x8005 @@ -97,159 +97,30 @@ EventScript_1BF4EA:: @ 81BF4EA subvar VAR_RESULT, 1 getpartymonname 0, VAR_RESULT copyvar VAR_RESULT, VAR_0x8008 - msgbox Text_19DEAF + msgbox Route5_PokemonDayCare_Text_ThankYouHeresMon textcolor 3 waitse playmoncry VAR_RESULT, 0 - msgbox Text_19DECF + msgbox Route5_PokemonDayCare_Text_PlayerGotMonBack call EventScript_1A6675 waitmoncry - goto EventScript_1BF541 + goto Route5_PokemonDayCare_EventScript_CloseMoneyBox end -EventScript_1BF533:: @ 81BF533 - msgbox Text_19DFC2 - goto EventScript_1BF541 +Route5_PokemonDayCare_EventScript_NoRoomInParty:: @ 81BF533 + msgbox Route5_PokemonDayCare_Text_YouveGotNoRoomForIt + goto Route5_PokemonDayCare_EventScript_CloseMoneyBox end -EventScript_1BF541:: @ 81BF541 +Route5_PokemonDayCare_EventScript_CloseMoneyBox:: @ 81BF541 hidemoneybox 0, 0 release end -EventScript_81BF546:: @ 81BF546 +EventScript_EggHatch:: @ 81BF546 lockall - msgbox Text_1BFB5A + msgbox DayCare_Text_Huh special EggHatch waitstate releaseall end - -gUnknown_81BF555:: @ 81BF555 - .string "I'm the DAY-CARE MAN.\p" - .string "I help take care of the precious\n" - .string "POKéMON of TRAINERS.\p" - .string "If you'd like me to raise your\n" - .string "POKéMON, have a word with my wife.$" - -gUnknown_81BF5E3:: @ 81BF5E3 - .string "Ah, it's you!\p" - .string "We were raising your POKéMON, and\n" - .string "my goodness, were we surprised!\p" - .string "Your POKéMON had an EGG!\p" - .string "We don't know how it got there,\n" - .string "but your POKéMON had it.\p" - .string "You do want it, yes?$" - -gUnknown_81BF69A:: @ 81BF69A - .string "Ah, it's you! Good to see you.\n" - .string "Your {STR_VAR_1}'s doing fine.$" - -gUnknown_81BF6CF:: @ 81BF6CF - .string "Well then, I'll keep it.\n" - .string "Thanks!$" - -gUnknown_81BF6F0:: @ 81BF6F0 - .string "You have no room for it…\n" - .string "Come back when you've made room.$" - -Text_1BF72A:: @ 81BF72A - .string "{PLAYER} received the EGG from\n" - .string "the DAY-CARE MAN.$" - -gUnknown_81BF755:: @ 81BF755 - .string "Take good care of it.$" - -Text_1BF76B:: @ 81BF76B - .string "ポケモンを ひきとりたい ときは\n" - .string "ばさんに いって おくれ$" - -gUnknown_81BF789:: @ 81BF789 - .string "Ah, it's you! Your {STR_VAR_1} and\n" - .string "{STR_VAR_2} are doing fine.$" - -gUnknown_81BF7B6:: @ 81BF7B6 - .string "I really will keep it.\n" - .string "You do want this, yes?$" - -gUnknown_81BF7E4:: @ 81BF7E4 - .string "I'm the DAY-CARE LADY.\p" - .string "We can raise POKéMON for you.\p" - .string "Would you like us to raise one?$" - -gUnknown_81BF839:: @ 81BF839 - .string "Which POKéMON should we raise for\n" - .string "you?$" - -gUnknown_81BF860:: @ 81BF860 - .string "Fine, we'll raise your {STR_VAR_1}\n" - .string "for a while.\p" - .string "Come back for it later.$" - -gUnknown_81BF89F:: @ 81BF89F - .string "We can raise two of your POKéMON.\p" - .string "Would you like us to raise one\n" - .string "more POKéMON for you?$" - -gUnknown_81BF8F6:: @ 81BF8F6 - .string "My husband was looking for you.$" - -gUnknown_81BF916:: @ 81BF916 - .string "Oh, fine, then.\n" - .string "Come again.$" - -gUnknown_81BF932:: @ 81BF932 - .string "You don't have enough money…$" - -gUnknown_81BF94F:: @ 81BF94F - .string "Will you take back the other one,\n" - .string "too?$" - -gUnknown_81BF976:: @ 81BF976 - .string "Fine.\n" - .string "Come again.$" - -gUnknown_81BF988:: @ 81BF988 - .string "Ah, it's you!\n" - .string "Good to see you.\p" - .string "Your POKéMON can only be doing\n" - .string "good!$" - -gUnknown_81BF9CC:: @ 81BF9CC - .string "By level, your {STR_VAR_1} has\n" - .string "grown by {STR_VAR_2}.$" - -gUnknown_81BF9EF:: @ 81BF9EF - .string "Your POKéMON party is full.\n" - .string "Make room, then come see me.$" - -Text_1BFA28:: @ 81BFA28 - .string "どっちの ポケモンを ひきとるかい?$" - -gUnknown_81BFA3B:: @ 81BFA3B - .string "If you want your {STR_VAR_1} back,\n" - .string "it will cost ¥{STR_VAR_2}.$" - -gUnknown_81BFA67:: @ 81BFA67 - .string "Perfect!\n" - .string "Here's your POKéMON.$" - -gUnknown_81BFA85:: @ 81BFA85 - .string "{PLAYER} took back {STR_VAR_1} from\n" - .string "the DAY-CARE LADY.$" - -gUnknown_81BFAAD:: @ 81BFAAD - .string "Oh? But you have just one\n" - .string "POKéMON.\p" - .string "Come back another time.$" - -gUnknown_81BFAE8:: @ 81BFAE8 - .string "Will you take your POKéMON back?$" - -gUnknown_81BFB09:: @ 81BFB09 - .string "If you leave me that POKéMON,\n" - .string "what will you battle with?\p" - .string "Come back another time.$" - -Text_1BFB5A:: @ 81BFB5A - .string "Huh?$" diff --git a/data/scripts/obtain_item.inc b/data/scripts/obtain_item.inc index 2452c5c5c..3ada6109c 100644 --- a/data/scripts/obtain_item.inc +++ b/data/scripts/obtain_item.inc @@ -35,31 +35,31 @@ EventScript_BufferPocketNameTryFanfare:: @ 81A66BC end EventScript_BufferItemsPocket:: @ 81A66F9 - getstdstring 2, 24 + getstdstring 2, STDSTRING_ITEMS_POCKET compare VAR_0x8007, TRUE call_if_eq EventScript_PlayFanfareObtainedItem return EventScript_BufferKeyItemsPocket:: @ 81A6709 - getstdstring 2, 25 + getstdstring 2, STDSTRING_KEY_ITEMS_POCKET compare VAR_0x8007, TRUE call_if_eq EventScript_PlayFanfareObtainedItem return EventScript_BufferPokeBallsPocket:: @ 81A6719 - getstdstring 2, 26 + getstdstring 2, STDSTRING_POKEBALLS_POCKET compare VAR_0x8007, TRUE call_if_eq EventScript_PlayFanfareObtainedItem return EventScript_BufferTMCase:: @ 81A6729 - getstdstring 2, 27 + getstdstring 2, STDSTRING_TM_CASE compare VAR_0x8007, TRUE call_if_eq EventScript_PlayFanfareObtainedTMHM return EventScript_BufferBerryPouch:: @ 81A6739 - getstdstring 2, 28 + getstdstring 2, STDSTRING_BERRY_POUCH compare VAR_0x8007, TRUE call_if_eq EventScript_PlayFanfareObtainedItem return @@ -218,7 +218,7 @@ EventScript_TryPickUpHiddenCoins:: compare VAR_RESULT, FALSE goto_if_eq EventScript_HiddenCoinsButCaseIsFull addcoins VAR_0x8006 - getstdstring 1, 0x17 + getstdstring 1, STDSTRING_COINS call EventScript_PlayFanfareObtainedItem call EventScript_FoundCoins waitfanfare @@ -230,7 +230,7 @@ EventScript_TryPickUpHiddenCoins:: EventScript_HiddenCoinsButCaseIsFull:: getnumberstring 0, VAR_0x8006 - getstdstring 1, 0x17 + getstdstring 1, STDSTRING_COINS msgbox Text_FoundXCoins msgbox Text_CoinCaseIsFull setvar VAR_RESULT, 0 @@ -239,7 +239,7 @@ EventScript_HiddenCoinsButCaseIsFull:: EventScript_NoCaseForHiddenCoins:: getnumberstring 0, VAR_0x8006 - getstdstring 1, 0x17 + getstdstring 1, STDSTRING_COINS msgbox Text_FoundXCoins msgbox Text_NothingToPutThemIn setvar VAR_RESULT, 0 diff --git a/data/scripts/route23.inc b/data/scripts/route23.inc index 682fa7b1d..cfdfe53a7 100644 --- a/data/scripts/route23.inc +++ b/data/scripts/route23.inc @@ -1,11 +1,11 @@ -EventScript_1A77C9:: @ 81A77C9 +Route23_EventScript_MissingBoulderBadge:: @ 81A77C9 msgbox Text_OnlySkilledTrainersAllowedThrough playse SE_BOO msgbox Text_CantLetYouPass release end -EventScript_1A77DE:: @ 81A77DE +Route23_EventScript_MissingBadge:: @ 81A77DE message Text_OnlyPassWithBadgeDontHaveYet waitmessage playse SE_BOO @@ -15,7 +15,7 @@ EventScript_1A77DE:: @ 81A77DE release end -EventScript_1A77EC:: @ 81A77EC +Route23_EventScript_AlreadyRecognizedBoulderBadge:: @ 81A77EC message Text_OhThatsBadgeGoRightAhead waitmessage playfanfare MUS_FANFA1 @@ -24,80 +24,81 @@ EventScript_1A77EC:: @ 81A77EC release end -EventScript_1A77F9:: @ 81A77F9 +Route23_EventScript_AlreadyRecognizedBadge:: @ 81A77F9 msgbox Text_OnlyPassWithBadgeOhGoAhead release end -EventScript_1A7803:: @ 81A7803 +@ Duplicate of the below, only used for Boulder Badge +Route22_NorthEntrance_EventScript_BadgeGuard:: @ 81A7803 compare VAR_MAP_SCENE_ROUTE23, VAR_TEMP_1 - goto_if_ge EventScript_1A77EC + goto_if_ge Route23_EventScript_AlreadyRecognizedBoulderBadge switch VAR_TEMP_1 - case 1, EventScript_1A78D5 - case 2, EventScript_1A78E4 - case 3, EventScript_1A78F3 - case 4, EventScript_1A7902 - case 5, EventScript_1A7911 - case 6, EventScript_1A7920 - case 7, EventScript_1A792F - case 8, EventScript_1A793E + case 1, Route23_EventScript_CheckBoulderBadge + case 2, Route23_EventScript_CheckCascadeBadge + case 3, Route23_EventScript_CheckThunderBadge + case 4, Route23_EventScript_CheckRainbowBadge + case 5, Route23_EventScript_CheckSoulBadge + case 6, Route23_EventScript_CheckMarshBadge + case 7, Route23_EventScript_CheckVolcanoBadge + case 8, Route23_EventScript_CheckEarthBadge end -EventScript_1A786C:: @ 81A786C +Route23_EventScript_BadgeGuard:: @ 81A786C compare VAR_MAP_SCENE_ROUTE23, VAR_TEMP_1 - goto_if_ge EventScript_1A77F9 + goto_if_ge Route23_EventScript_AlreadyRecognizedBadge switch VAR_TEMP_1 - case 1, EventScript_1A78D5 - case 2, EventScript_1A78E4 - case 3, EventScript_1A78F3 - case 4, EventScript_1A7902 - case 5, EventScript_1A7911 - case 6, EventScript_1A7920 - case 7, EventScript_1A792F - case 8, EventScript_1A793E + case 1, Route23_EventScript_CheckBoulderBadge + case 2, Route23_EventScript_CheckCascadeBadge + case 3, Route23_EventScript_CheckThunderBadge + case 4, Route23_EventScript_CheckRainbowBadge + case 5, Route23_EventScript_CheckSoulBadge + case 6, Route23_EventScript_CheckMarshBadge + case 7, Route23_EventScript_CheckVolcanoBadge + case 8, Route23_EventScript_CheckEarthBadge end -EventScript_1A78D5:: @ 81A78D5 - goto_if_set FLAG_BADGE01_GET, EventScript_1A794D - goto EventScript_1A77C9 +Route23_EventScript_CheckBoulderBadge:: @ 81A78D5 + goto_if_set FLAG_BADGE01_GET, Route23_EventScript_RecognizeBoulderBadge + goto Route23_EventScript_MissingBoulderBadge end -EventScript_1A78E4:: @ 81A78E4 - goto_if_set FLAG_BADGE02_GET, EventScript_1A795F - goto EventScript_1A77DE +Route23_EventScript_CheckCascadeBadge:: @ 81A78E4 + goto_if_set FLAG_BADGE02_GET, Route23_EventScript_RecognizeBadge + goto Route23_EventScript_MissingBadge end -EventScript_1A78F3:: @ 81A78F3 - goto_if_set FLAG_BADGE03_GET, EventScript_1A795F - goto EventScript_1A77DE +Route23_EventScript_CheckThunderBadge:: @ 81A78F3 + goto_if_set FLAG_BADGE03_GET, Route23_EventScript_RecognizeBadge + goto Route23_EventScript_MissingBadge end -EventScript_1A7902:: @ 81A7902 - goto_if_set FLAG_BADGE04_GET, EventScript_1A795F - goto EventScript_1A77DE +Route23_EventScript_CheckRainbowBadge:: @ 81A7902 + goto_if_set FLAG_BADGE04_GET, Route23_EventScript_RecognizeBadge + goto Route23_EventScript_MissingBadge end -EventScript_1A7911:: @ 81A7911 - goto_if_set FLAG_BADGE05_GET, EventScript_1A795F - goto EventScript_1A77DE +Route23_EventScript_CheckSoulBadge:: @ 81A7911 + goto_if_set FLAG_BADGE05_GET, Route23_EventScript_RecognizeBadge + goto Route23_EventScript_MissingBadge end -EventScript_1A7920:: @ 81A7920 - goto_if_set FLAG_BADGE06_GET, EventScript_1A795F - goto EventScript_1A77DE +Route23_EventScript_CheckMarshBadge:: @ 81A7920 + goto_if_set FLAG_BADGE06_GET, Route23_EventScript_RecognizeBadge + goto Route23_EventScript_MissingBadge end -EventScript_1A792F:: @ 81A792F - goto_if_set FLAG_BADGE07_GET, EventScript_1A795F - goto EventScript_1A77DE +Route23_EventScript_CheckVolcanoBadge:: @ 81A792F + goto_if_set FLAG_BADGE07_GET, Route23_EventScript_RecognizeBadge + goto Route23_EventScript_MissingBadge end -EventScript_1A793E:: @ 81A793E - goto_if_set FLAG_BADGE08_GET, EventScript_1A795F - goto EventScript_1A77DE +Route23_EventScript_CheckEarthBadge:: @ 81A793E + goto_if_set FLAG_BADGE08_GET, Route23_EventScript_RecognizeBadge + goto Route23_EventScript_MissingBadge end -EventScript_1A794D:: @ 81A794D +Route23_EventScript_RecognizeBoulderBadge:: @ 81A794D message Text_OhThatsBadgeGoRightAhead waitmessage playfanfare MUS_FANFA1 @@ -107,92 +108,92 @@ EventScript_1A794D:: @ 81A794D release end -EventScript_1A795F:: @ 81A795F +Route23_EventScript_RecognizeBadge:: @ 81A795F msgbox Text_OnlyPassWithBadgeOhGoAhead copyvar VAR_MAP_SCENE_ROUTE23, VAR_TEMP_1 release end -EventScript_1A796E:: @ 81A796E +Route23_EventScript_BadgeGuardTrigger:: @ 81A796E textcolor 0 applymovement VAR_0x8009, Movement_WalkInPlaceFastestLeft waitmovement 0 switch VAR_TEMP_1 - case 1, EventScript_1A79D8 - case 2, EventScript_1A79E7 - case 3, EventScript_1A79F6 - case 4, EventScript_1A7A05 - case 5, EventScript_1A7A14 - case 6, EventScript_1A7A23 - case 7, EventScript_1A7A32 - case 8, EventScript_1A7A41 + case 1, Route23_EventScript_CheckBoulderBadgeTrigger + case 2, Route23_EventScript_CheckCascadeBadgeTrigger + case 3, Route23_EventScript_CheckThunderBadgeTrigger + case 4, Route23_EventScript_CheckRainbowBadgeTrigger + case 5, Route23_EventScript_CheckSoulBadgeTrigger + case 6, Route23_EventScript_CheckMarshBadgeTrigger + case 7, Route23_EventScript_CheckVolcanoBadgeTrigger + case 8, Route23_EventScript_CheckEarthBadgeTrigger end -EventScript_1A79D8:: @ 81A79D8 - goto_if_set FLAG_BADGE01_GET, EventScript_1A7A96 - goto EventScript_1A7A50 +Route23_EventScript_CheckBoulderBadgeTrigger:: @ 81A79D8 + goto_if_set FLAG_BADGE01_GET, Route23_EventScript_RecognizeBoulderBadgeTrigger + goto Route23_EventScript_MissingBoulderBadgeTrigger end -EventScript_1A79E7:: @ 81A79E7 - goto_if_set FLAG_BADGE02_GET, EventScript_1A7AA8 - goto EventScript_1A7A77 +Route23_EventScript_CheckCascadeBadgeTrigger:: @ 81A79E7 + goto_if_set FLAG_BADGE02_GET, Route23_EventScript_RecognizeBadgeTrigger + goto Route23_EventScript_MissingBadgeTrigger end -EventScript_1A79F6:: @ 81A79F6 - goto_if_set FLAG_BADGE03_GET, EventScript_1A7AA8 - goto EventScript_1A7A77 +Route23_EventScript_CheckThunderBadgeTrigger:: @ 81A79F6 + goto_if_set FLAG_BADGE03_GET, Route23_EventScript_RecognizeBadgeTrigger + goto Route23_EventScript_MissingBadgeTrigger end -EventScript_1A7A05:: @ 81A7A05 - goto_if_set FLAG_BADGE04_GET, EventScript_1A7AA8 - goto EventScript_1A7A77 +Route23_EventScript_CheckRainbowBadgeTrigger:: @ 81A7A05 + goto_if_set FLAG_BADGE04_GET, Route23_EventScript_RecognizeBadgeTrigger + goto Route23_EventScript_MissingBadgeTrigger end -EventScript_1A7A14:: @ 81A7A14 - goto_if_set FLAG_BADGE05_GET, EventScript_1A7AA8 - goto EventScript_1A7A77 +Route23_EventScript_CheckSoulBadgeTrigger:: @ 81A7A14 + goto_if_set FLAG_BADGE05_GET, Route23_EventScript_RecognizeBadgeTrigger + goto Route23_EventScript_MissingBadgeTrigger end -EventScript_1A7A23:: @ 81A7A23 - goto_if_set FLAG_BADGE06_GET, EventScript_1A7AA8 - goto EventScript_1A7A77 +Route23_EventScript_CheckMarshBadgeTrigger:: @ 81A7A23 + goto_if_set FLAG_BADGE06_GET, Route23_EventScript_RecognizeBadgeTrigger + goto Route23_EventScript_MissingBadgeTrigger end -EventScript_1A7A32:: @ 81A7A32 - goto_if_set FLAG_BADGE07_GET, EventScript_1A7AA8 - goto EventScript_1A7A77 +Route23_EventScript_CheckVolcanoBadgeTrigger:: @ 81A7A32 + goto_if_set FLAG_BADGE07_GET, Route23_EventScript_RecognizeBadgeTrigger + goto Route23_EventScript_MissingBadgeTrigger end -EventScript_1A7A41:: @ 81A7A41 - goto_if_set FLAG_BADGE08_GET, EventScript_1A7AA8 - goto EventScript_1A7A77 +Route23_EventScript_CheckEarthBadgeTrigger:: @ 81A7A41 + goto_if_set FLAG_BADGE08_GET, Route23_EventScript_RecognizeBadgeTrigger + goto Route23_EventScript_MissingBadgeTrigger end -EventScript_1A7A50:: @ 81A7A50 +Route23_EventScript_MissingBoulderBadgeTrigger:: @ 81A7A50 msgbox Text_OnlySkilledTrainersAllowedThrough playse SE_BOO msgbox Text_CantLetYouPass closemessage - applymovement OBJ_EVENT_ID_PLAYER, Movement_1A7AB7 + applymovement OBJ_EVENT_ID_PLAYER, Route23_Movement_WalkDown applymovement VAR_0x8009, Movement_WalkInPlaceFastestDown waitmovement 0 releaseall end -EventScript_1A7A77:: @ 81A7A77 +Route23_EventScript_MissingBadgeTrigger:: @ 81A7A77 message Text_OnlyPassWithBadgeDontHaveYet waitmessage playse SE_BOO waitbuttonpress closemessage waitse - applymovement OBJ_EVENT_ID_PLAYER, Movement_1A7AB7 + applymovement OBJ_EVENT_ID_PLAYER, Route23_Movement_WalkDown applymovement VAR_0x8009, Movement_WalkInPlaceFastestDown waitmovement 0 releaseall end -EventScript_1A7A96:: @ 81A7A96 +Route23_EventScript_RecognizeBoulderBadgeTrigger:: @ 81A7A96 message Text_OhThatsBadgeGoRightAhead waitmessage playfanfare MUS_FANFA1 @@ -202,12 +203,12 @@ EventScript_1A7A96:: @ 81A7A96 releaseall end -EventScript_1A7AA8:: @ 81A7AA8 +Route23_EventScript_RecognizeBadgeTrigger:: @ 81A7AA8 msgbox Text_OnlyPassWithBadgeOhGoAhead copyvar VAR_MAP_SCENE_ROUTE23, VAR_TEMP_1 releaseall end -Movement_1A7AB7:: @ 81A7AB7 +Route23_Movement_WalkDown:: @ 81A7AB7 walk_down step_end diff --git a/data/scripts/test.inc b/data/scripts/test.inc index 55578f159..bd0497209 100644 --- a/data/scripts/test.inc +++ b/data/scripts/test.inc @@ -1,27 +1,27 @@ -EventScript_1C5550:: @ 81C5552 - msgbox Text_1C556D, MSGBOX_NPC +Test_EventScript_NPC:: @ 81C5552 + msgbox Test_Text_WelcomeToWorldOfPokemon, MSGBOX_NPC end -EventScript_1C555B:: @ 81C555B - msgbox Text_1C558D, MSGBOX_SIGN +Test_EventScript_Sign:: @ 81C555B + msgbox Test_Text_ThisIsASignpost, MSGBOX_SIGN end -EventScript_1C5564:: @ 81C5564 - msgbox Text_1C55A4, MSGBOX_SIGN +Test_EventScript_CoordEvent:: @ 81C5564 + msgbox Test_Text_ThisIsACoordEvent, MSGBOX_SIGN end -Text_1C556D:: @ 81C556D +Test_Text_WelcomeToWorldOfPokemon:: @ 81C556D .string "テストよう メッセージです!\n" .string "ポケモンの せかいへ ようこそ!$" -Text_1C558D:: @ 81C558D +Test_Text_ThisIsASignpost:: @ 81C558D .string "テストよう メッセージです!\n" .string "かんばん です$" -Text_1C55A4:: @ 81C55A4 +Test_Text_ThisIsACoordEvent:: @ 81C55A4 .string "テストよう メッセージです!\n" .string "ざひょう チェックの イベントです$" .align 2 -Text_1C55C8:: @ 81C55C8 +Test_Text_Empty:: @ 81C55C8 .string "$" diff --git a/data/scripts/trainer_tower.inc b/data/scripts/trainer_tower.inc index dd85dc53a..2a5a84f72 100644 --- a/data/scripts/trainer_tower.inc +++ b/data/scripts/trainer_tower.inc @@ -320,7 +320,7 @@ EventScript_1C5410: message Text_ObtainedTheX waitfanfare waitmessage - getstdstring 2, 24 + getstdstring 2, STDSTRING_ITEMS_POCKET msgbox Text_PutItemAway call EventScript_1A6675 goto EventScript_1C544F diff --git a/data/specials.inc b/data/specials.inc index e76326401..92256dfab 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -194,7 +194,7 @@ gSpecials:: @ 815FD60 def_special RejectEggFromDayCare def_special GiveEggFromDaycare def_special SetDaycareCompatibilityString - def_special GetSelectedMonNickAndSpecies + def_special GetSelectedMonNicknameAndSpecies def_special StoreSelectedPokemonInDaycare def_special ChooseSendDaycareMon def_special ShowDaycareLevelMenu diff --git a/data/strings.s b/data/strings.s index 55c54f6c3..d25e28e94 100644 --- a/data/strings.s +++ b/data/strings.s @@ -411,7 +411,7 @@ gOtherText_Use:: gOtherText_Toss:: .string "TOSS$" -gUnknown_84161A9:: +gOtherText_Register:: .string "REGISTER$" gOtherText_Give:: @@ -420,7 +420,7 @@ gOtherText_Give:: gUnknown_84161B7:: .string "けってい$" -gUnknown_84161BC:: +gOtherText_Walk:: .string "WALK$" gFameCheckerText_Cancel:: @ 84161C1 @@ -447,16 +447,16 @@ gText_Take:: gText_Store:: .string "STORE$" -gUnknown_84161E9:: +gOtherText_Check:: .string "CHECK$" gUnknown_84161EF:: @ 84161EF .string "NONE$" -gUnknown_84161F4:: +gOtherText_Open:: .string "OPEN$" -gUnknown_84161F9:: +gOtherText_Deselect:: .string "DESELECT$" gUnknown_8416202:: @ 8416202 @@ -555,19 +555,19 @@ gUnknown_84162BD:: @ 84162BD gText_Coins:: @ 84162C4 .string "{STR_VAR_1} COINS$" -gUnknown_84162CD:: @ 0x84162CD +gText_Items2:: @ 0x84162CD .string "ITEMS$" -gUnknown_84162D3:: @ 0x84162D3 +gText_PokeBalls2:: @ 0x84162D3 .string "POKé BALLS$" -gUnknown_84162DE:: @ 0x84162DE +gText_KeyItems2:: @ 0x84162DE .string "KEY ITEMS$" gText_DepositItem:: @ 84162E8 .string "DEPOSIT ITEM$" -gUnknown_84162F5:: @ 84162F5 +gText_CloseBag:: @ 84162F5 .string "CLOSE BAG$" gOtherText_StrVar1:: @ 84162FF @@ -577,7 +577,7 @@ gText_IsSelected:: @ 8416301 .string " is\n" .string "selected.$" -gUnknown_841630F:: @ 841630F +gText_CantWriteMailHere:: @ 841630F .string "You can't write\n" .string "MAIL here.$" @@ -596,15 +596,15 @@ gText_TheStrVar1CantBeHeldHere:: @ 8416374 .string "The {STR_VAR_1} can't be held\n" .string "here.$" -gUnknown_841638F:: @ 841638F +gText_DepositHowManyStrVars1:: @ 841638F .string "Deposit how many\n" .string "{STR_VAR_1}(s)?$" -gUnknown_84163A7:: @ 84163A7 +gText_DepositedStrVar2StrVar1s:: @ 84163A7 .string "Deposited {STR_VAR_2}\n" .string "{STR_VAR_1}(s).$" -gUnknown_84163BB:: @ 84163BB +gText_NoRoomToStoreItems:: @ 84163BB .string "There's no room to\n" .string "store items.$" diff --git a/data/text/day_care.inc b/data/text/day_care.inc new file mode 100644 index 000000000..1e1d391be --- /dev/null +++ b/data/text/day_care.inc @@ -0,0 +1,130 @@ +@ Same as Hoenn's day-care text, used by the Four Island Day-Care. Unused text translated in Emerald + +DayCare_Text_ImDaycareManSpeakToMyWife:: @ 81BF555 + .string "I'm the DAY-CARE MAN.\p" + .string "I help take care of the precious\n" + .string "POKéMON of TRAINERS.\p" + .string "If you'd like me to raise your\n" + .string "POKéMON, have a word with my wife.$" + +DayCare_Text_DoYouWantEgg:: @ 81BF5E3 + .string "Ah, it's you!\p" + .string "We were raising your POKéMON, and\n" + .string "my goodness, were we surprised!\p" + .string "Your POKéMON had an EGG!\p" + .string "We don't know how it got there,\n" + .string "but your POKéMON had it.\p" + .string "You do want it, yes?$" + +DayCare_Text_YourMonIsDoingFine:: @ 81BF69A + .string "Ah, it's you! Good to see you.\n" + .string "Your {STR_VAR_1}'s doing fine.$" + +DayCare_Text_IllKeepIt:: @ 81BF6CF + .string "Well then, I'll keep it.\n" + .string "Thanks!$" + +DayCare_Text_YouHaveNoRoomForIt:: @ 81BF6F0 + .string "You have no room for it…\n" + .string "Come back when you've made room.$" + +DayCare_Text_ReceivedEgg:: @ 81BF72A + .string "{PLAYER} received the EGG from\n" + .string "the DAY-CARE MAN.$" + +DayCare_Text_TakeGoodCareOfIt:: @ 81BF755 + .string "Take good care of it.$" + +DayCare_Text_SeeWifeIfYouWantToPickUpMon:: @ 81BF76B + .string "ポケモンを ひきとりたい ときは\n" + .string "ばさんに いって おくれ$" + +DayCare_Text_YourMonsAreDoingFine:: @ 81BF789 + .string "Ah, it's you! Your {STR_VAR_1} and\n" + .string "{STR_VAR_2} are doing fine.$" + +DayCare_Text_IWillKeepDoYouWantIt:: @ 81BF7B6 + .string "I really will keep it.\n" + .string "You do want this, yes?$" + +DayCare_Text_WouldYouLikeUsToRaiseMon:: @ 81BF7E4 + .string "I'm the DAY-CARE LADY.\p" + .string "We can raise POKéMON for you.\p" + .string "Would you like us to raise one?$" + +DayCare_Text_WhichMonShouldWeRaise:: @ 81BF839 + .string "Which POKéMON should we raise for\n" + .string "you?$" + +DayCare_Text_WellRaiseYourMon:: @ 81BF860 + .string "Fine, we'll raise your {STR_VAR_1}\n" + .string "for a while.\p" + .string "Come back for it later.$" + +DayCare_Text_WeCanRaiseOneMore:: @ 81BF89F + .string "We can raise two of your POKéMON.\p" + .string "Would you like us to raise one\n" + .string "more POKéMON for you?$" + +DayCare_Text_HusbandWasLookingForYou:: @ 81BF8F6 + .string "My husband was looking for you.$" + +DayCare_Text_FineThenComeAgain:: @ 81BF916 + .string "Oh, fine, then.\n" + .string "Come again.$" + +DayCare_Text_NotEnoughMoney:: @ 81BF932 + .string "You don't have enough money…$" + +DayCare_Text_TakeOtherOneBackToo:: @ 81BF94F + .string "Will you take back the other one,\n" + .string "too?$" + +DayCare_Text_ComeAgain:: @ 81BF976 + .string "Fine.\n" + .string "Come again.$" + +DayCare_Text_GoodToSeeYou:: @ 81BF988 + .string "Ah, it's you!\n" + .string "Good to see you.\p" + .string "Your POKéMON can only be doing\n" + .string "good!$" + +DayCare_Text_YourMonHasGrownXLevels:: @ 81BF9CC + .string "By level, your {STR_VAR_1} has\n" + .string "grown by {STR_VAR_2}.$" + +DayCare_Text_YourPartyIsFull:: @ 81BF9EF + .string "Your POKéMON party is full.\n" + .string "Make room, then come see me.$" + +DayCare_Text_TakeBackWhichMon:: @ 81BFA28 + .string "どっちの ポケモンを ひきとるかい?$" + +DayCare_Text_ItWillCostX:: @ 81BFA3B + .string "If you want your {STR_VAR_1} back,\n" + .string "it will cost ¥{STR_VAR_2}.$" + +DayCare_Text_HeresYourMon:: @ 81BFA67 + .string "Perfect!\n" + .string "Here's your POKéMON.$" + +DayCare_Text_TookBackMon:: @ 81BFA85 + .string "{PLAYER} took back {STR_VAR_1} from\n" + .string "the DAY-CARE LADY.$" + +DayCare_Text_YouHaveJustOneMon:: @ 81BFAAD + .string "Oh? But you have just one\n" + .string "POKéMON.\p" + .string "Come back another time.$" + +DayCare_Text_TakeYourMonBack:: @ 81BFAE8 + .string "Will you take your POKéMON back?$" + +DayCare_Text_WhatWillYouBattleWith:: @ 81BFB09 + .string "If you leave me that POKéMON,\n" + .string "what will you battle with?\p" + .string "Come back another time.$" + +DayCare_Text_Huh:: @ 81BFB5A + .string "Huh?$" diff --git a/data/text/teachy_tv.inc b/data/text/teachy_tv.inc index 3989aa5d1..ae0731142 100644 --- a/data/text/teachy_tv.inc +++ b/data/text/teachy_tv.inc @@ -19,7 +19,7 @@ gTeachyTvString_RegisterItem:: @ 841B81B gTeachyTvString_Cancel:: @ 841B836 .string "CANCEL$" -gTeachyTvText_PokeDudeSaysHello:: @ 841B83D +gTeachyTvText_PokedudeSaysHello:: @ 841B83D .string "Hey, all you TRAINERS out there!\n" .string "HELLO, TRAINERS!\p" .string "……… ……… ………\p" @@ -164,7 +164,7 @@ gTeachyTvText_TMsScript1:: @ 841C459 .string "You can check them out in detail,\n" .string "too.$" -gPokeDudeText_TMTypes:: @ 841C587 +gPokedudeText_TMTypes:: @ 841C587 .string "POKé DUDE: NORMAL, WATER, GRASS…\n" .string "TMs also come in types.\p" .string "Check the type and teach it to\n" @@ -175,7 +175,7 @@ gPokeDudeText_TMTypes:: @ 841C587 .string "GRASS-type POKéMON can learn.\p" .string "There's one other thing!$" -gPokeDudeText_ReadTMDescription:: @ 841C693 +gPokedudeText_ReadTMDescription:: @ 841C693 .string "Don't just look at the type, read\n" .string "the description, too.\p" .string "It will contain hints about what\n" diff --git a/include/bag.h b/include/bag.h index f82531778..fec9f67bf 100644 --- a/include/bag.h +++ b/include/bag.h @@ -1,18 +1,20 @@ #ifndef GUARD_BAG_H #define GUARD_BAG_H -void sub_810B858(void); -void sub_810B8F0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, s8 speed, u8 colorIdx); -void sub_810B958(const u8 * str); -void sub_810B994(void); -u8 sub_810B9DC(u8 a0, u8 a1); -void sub_810BA3C(u8 a0); -u8 sub_810BA70(u8 a0); -void sub_810BA9C(u8 a0); -u8 sub_810BAD8(u8 a0); -void sub_810BAE8(u8 taskId, const struct YesNoFuncTable * ptrs); -void sub_810BB14(u8 taskId, const struct YesNoFuncTable * ptrs); -void sub_810BB40(void); -void sub_810BB74(u8 windowId); +#include "menu_helpers.h" + +void InitBagWindows(void); +void BagPrintTextOnWindow(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx); +void BagPrintTextOnWin1CenteredColor0(const u8 * str, u8 unused); +void BagDrawDepositItemTextBox(void); +u8 ShowBagWindow(u8 whichWindow, u8 nItems); +void HideBagWindow(u8 whichWindow); +u8 OpenBagWindow(u8 whichWindow); +void CloseBagWindow(u8 whichWindow); +u8 GetBagWindow(u8 whichWindow); +void BagCreateYesNoMenuBottomRight(u8 taskId, const struct YesNoFuncTable * ptrs); +void BagCreateYesNoMenuTopRight(u8 taskId, const struct YesNoFuncTable * ptrs); +void BagPrintMoneyAmount(void); +void BagDrawTextBoxOnWindow(u8 windowId); #endif //GUARD_BAG_H diff --git a/include/battle_controllers.h b/include/battle_controllers.h index 06a0e2957..412856353 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -2,6 +2,7 @@ #define GUARD_BATTLE_CONTROLLERS_H #include "global.h" +#include "battle.h" enum { diff --git a/include/constants/daycare.h b/include/constants/daycare.h new file mode 100644 index 000000000..103f920f2 --- /dev/null +++ b/include/constants/daycare.h @@ -0,0 +1,27 @@ +#ifndef GUARD_DAYCARE_CONSTANTS_H +#define GUARD_DAYCARE_CONSTANTS_H + +// Parent compatability scores +#define PARENTS_INCOMPATIBLE 0 +#define PARENTS_LOW_COMPATIBILITY 20 +#define PARENTS_MED_COMPATABILITY 50 +#define PARENTS_MAX_COMPATABILITY 70 + +// Daycare state +#define DAYCARE_NO_MONS 0 +#define DAYCARE_EGG_WAITING 1 +#define DAYCARE_ONE_MON 2 +#define DAYCARE_TWO_MONS 3 + +#define INHERITED_IV_COUNT 3 +#define EGG_HATCH_LEVEL 5 +#define EGG_GENDER_MALE 0x8000 // used to create a male egg from a female-only parent species (e.g. Nidoran) + +#define DAYCARE_LEVEL_MENU_EXIT 5 +#define DAYCARE_EXITED_LEVEL_MENU 2 // would be redundant with above if GF had used the same value + +// Array buffers +#define EGG_MOVES_ARRAY_COUNT 10 +#define EGG_LVL_UP_MOVES_ARRAY_COUNT 50 + +#endif //GUARD_DAYCARE_CONSTANTS_H diff --git a/include/constants/flags.h b/include/constants/flags.h index 2f03573ab..26ffa8a7c 100644 --- a/include/constants/flags.h +++ b/include/constants/flags.h @@ -104,14 +104,14 @@ #define FLAG_HIDE_DOJO_HITMONLEE_BALL 0x060 #define FLAG_HIDE_DOJO_HITMONCHAN_BALL 0x061 #define FLAG_HIDE_CINNABAR_BILL 0x062 -#define FLAG_HIDE_UNION_ROOM_1 0x063 -#define FLAG_HIDE_UNION_ROOM_2 0x064 -#define FLAG_HIDE_UNION_ROOM_3 0x065 -#define FLAG_HIDE_UNION_ROOM_4 0x066 -#define FLAG_HIDE_UNION_ROOM_5 0x067 -#define FLAG_HIDE_UNION_ROOM_6 0x068 -#define FLAG_HIDE_UNION_ROOM_7 0x069 -#define FLAG_HIDE_UNION_ROOM_8 0x06A +#define FLAG_HIDE_UNION_ROOM_PLAYER_1 0x063 +#define FLAG_HIDE_UNION_ROOM_PLAYER_2 0x064 +#define FLAG_HIDE_UNION_ROOM_PLAYER_3 0x065 +#define FLAG_HIDE_UNION_ROOM_PLAYER_4 0x066 +#define FLAG_HIDE_UNION_ROOM_PLAYER_5 0x067 +#define FLAG_HIDE_UNION_ROOM_PLAYER_6 0x068 +#define FLAG_HIDE_UNION_ROOM_PLAYER_7 0x069 +#define FLAG_HIDE_UNION_ROOM_PLAYER_8 0x06A #define FLAG_HIDE_CINNABAR_SEAGALLOP 0x06B #define FLAG_HIDE_SAFFRON_FAN_CLUB_BLACKBELT 0x06C #define FLAG_HIDE_SAFFRON_FAN_CLUB_ROCKER 0x06D diff --git a/include/constants/global.h b/include/constants/global.h index 9aee27d8e..77ef6f203 100644 --- a/include/constants/global.h +++ b/include/constants/global.h @@ -36,6 +36,7 @@ #define MALE 0 #define FEMALE 1 +#define GENDER_COUNT 2 #define OPTIONS_BUTTON_MODE_HELP 0 #define OPTIONS_BUTTON_MODE_LR 1 diff --git a/include/constants/item_menu.h b/include/constants/item_menu.h new file mode 100644 index 000000000..d173b9212 --- /dev/null +++ b/include/constants/item_menu.h @@ -0,0 +1,35 @@ +#ifndef GUARD_CONSTANTS_ITEM_MENU_H +#define GUARD_CONSTANTS_ITEM_MENU_H + +#define OPEN_BAG_ITEMS 0 +#define OPEN_BAG_KEYITEMS 1 +#define OPEN_BAG_POKEBALLS 2 +#define OPEN_BAG_LAST 3 + +#define ITEMMENULOCATION_FIELD 0 +#define ITEMMENULOCATION_PARTY 1 +#define ITEMMENULOCATION_SHOP 2 +#define ITEMMENULOCATION_ITEMPC 3 +#define ITEMMENULOCATION_PCBOX 4 +#define ITEMMENULOCATION_BATTLE 5 +#define ITEMMENULOCATION_OLD_MAN 6 +#define ITEMMENULOCATION_TTVSCR_STATUS 7 +#define ITEMMENULOCATION_TTVSCR_CATCHING 8 +#define ITEMMENULOCATION_TTVSCR_REGISTER 9 +#define ITEMMENULOCATION_TTVSCR_TMS 10 +#define ITEMMENULOCATION_LAST 11 + +#define ITEMMENUACTION_USE 0 +#define ITEMMENUACTION_TOSS 1 +#define ITEMMENUACTION_REGISTER 2 +#define ITEMMENUACTION_GIVE 3 +#define ITEMMENUACTION_CANCEL 4 +#define ITEMMENUACTION_BATTLE_USE 5 +#define ITEMMENUACTION_CHECK 6 +#define ITEMMENUACTION_OPEN 7 +#define ITEMMENUACTION_OPEN_BERRIES 8 +#define ITEMMENUACTION_WALK 9 +#define ITEMMENUACTION_DESELECT 10 +#define ITEMMENUACTION_DUMMY 11 + +#endif //GUARD_CONSTANTS_ITEM_MENU_H diff --git a/include/constants/menu.h b/include/constants/menu.h index 6d72787dc..aed98dec4 100644 --- a/include/constants/menu.h +++ b/include/constants/menu.h @@ -78,4 +78,35 @@ #define LISTMENU_BERRY_POWDER 5 #define LISTMENU_TRAINER_TOWER_FLOORS 6 +// Std String Ids +#define STDSTRING_COOL 0 +#define STDSTRING_BEAUTY 1 +#define STDSTRING_CUTE 2 +#define STDSTRING_SMART 3 +#define STDSTRING_TOUGH 4 +#define STDSTRING_COOL2 5 +#define STDSTRING_BEAUTY2 6 +#define STDSTRING_CUTE2 7 +#define STDSTRING_SMART2 8 +#define STDSTRING_TOUGH2 9 +#define STDSTRING_ITEMS 10 +#define STDSTRING_KEY_ITEMS 11 +#define STDSTRING_POKEBALLS 12 +#define STDSTRING_TMHMS 13 +#define STDSTRING_BERRIES 14 +#define STDSTRING_BOULDER_BADGE 15 +#define STDSTRING_CASCADE_BADGE 16 +#define STDSTRING_THUNDER_BADGE 17 +#define STDSTRING_RAINBOW_BADGE 18 +#define STDSTRING_SOUL_BADGE 19 +#define STDSTRING_MARSH_BADGE 20 +#define STDSTRING_VOLCANO_BADGE 21 +#define STDSTRING_EARTH_BADGE 22 +#define STDSTRING_COINS 23 +#define STDSTRING_ITEMS_POCKET 24 +#define STDSTRING_KEY_ITEMS_POCKET 25 +#define STDSTRING_POKEBALLS_POCKET 26 +#define STDSTRING_TM_CASE 27 +#define STDSTRING_BERRY_POUCH 28 + #endif //GUARD_CONSTANTS_MENU_H diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index c6fc55003..dfbba41d9 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -40,6 +40,8 @@ #define EGG_GROUP_DRAGON 14 #define EGG_GROUP_UNDISCOVERED 15 +#define EGG_GROUPS_PER_MON 2 + // Pokemon natures #define NATURE_HARDY 0 #define NATURE_LONELY 1 diff --git a/include/constants/region_map.h b/include/constants/region_map.h index bd087bd60..78dab242c 100644 --- a/include/constants/region_map.h +++ b/include/constants/region_map.h @@ -206,6 +206,8 @@ #define MAPSEC_SPECIAL_AREA 0xC4 #define MAPSEC_NONE 0xC5 -#define MAPSEC_IN_GAME_TRADE 0xFE +#define METLOC_SPECIAL_EGG 0xFD +#define METLOC_IN_GAME_TRADE 0xFE +#define METLOC_FATEFUL_ENCOUNTER 0xFF #endif //GUARD_CONSTANTS_REGION_MAP_H diff --git a/include/data.h b/include/data.h index 72e6b66fc..f308b044c 100644 --- a/include/data.h +++ b/include/data.h @@ -57,7 +57,7 @@ extern const struct SpriteFrameImage gUnknown_82346D8[]; extern const struct SpriteFrameImage gUnknown_82346F8[]; extern const struct SpriteFrameImage gTrainerBackPicTable_Red[]; extern const struct SpriteFrameImage gTrainerBackPicTable_Leaf[]; -extern const struct SpriteFrameImage gTrainerBackPicTable_PokeDude[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_Pokedude[]; extern const struct SpriteFrameImage gTrainerBackPicTable_OldMan[]; extern const struct SpriteFrameImage gTrainerBackPicTable_RSBrendan[]; extern const struct SpriteFrameImage gTrainerBackPicTable_RSMay[]; diff --git a/include/daycare.h b/include/daycare.h index 08ca11187..71eada93e 100644 --- a/include/daycare.h +++ b/include/daycare.h @@ -3,8 +3,6 @@ #include "global.h" -#define EGG_HATCH_LEVEL 5 - u8 *GetMonNick(struct Pokemon *mon, u8 *dest); u8 *GetBoxMonNick(struct BoxPokemon *mon, u8 *dest); u8 CountPokemonInDaycare(struct DayCare *daycare); diff --git a/include/event_scripts.h b/include/event_scripts.h index 468b965d0..54eb2b2a9 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -1162,7 +1162,7 @@ extern const u8 EventScript_TryDoNormalTrainerBattle[]; extern const u8 EventScript_TryDoDoubleRematchBattle[]; extern const u8 EventScript_TryDoRematchBattle[]; extern const u8 gUnknown_81A4EB4[]; -extern const u8 EventScript_1C555B[]; +extern const u8 Test_EventScript_Sign[]; // new_game extern const u8 EventScript_ResetAllMapFlags[]; @@ -1195,4 +1195,6 @@ extern const u8 Text_1A5D31[]; extern const u8 Text_1A5D6E[]; extern const u8 Text_1A5DB1[]; +extern const u8 EventScript_BagItemCanBeRegistered[]; + #endif //GUARD_EVENT_SCRIPTS_H diff --git a/include/gflib.h b/include/gflib.h new file mode 100644 index 000000000..a6dfc62df --- /dev/null +++ b/include/gflib.h @@ -0,0 +1,18 @@ +#ifndef GUARD_GFLIB_H +#define GUARD_GFLIB_H + +#include "global.h" + +#include "bg.h" +#include "palette.h" +#include "gpu_regs.h" +#include "dma3.h" +#include "malloc.h" +#include "sound.h" +#include "text.h" +#include "sprite.h" +#include "window.h" +#include "blit.h" +#include "string_util.h" + +#endif //GUARD_GFLIB_H diff --git a/include/graphics.h b/include/graphics.h index a668364bd..e87acb556 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -1,7 +1,3 @@ -// -// Created by scott on 10/21/2017. -// - #ifndef GUARD_GRAPHICS_H #define GUARD_GRAPHICS_H @@ -2656,7 +2652,7 @@ extern const u32 gTrainerPalette_RSBrendan1[]; extern const u32 gTrainerPalette_RSMay1[]; extern const u32 gTrainerPalette_LeafBackPic[]; extern const u32 gTrainerPalette_RedBackPic[]; -extern const u32 gTrainerPalette_PokeDudeBackPic[]; +extern const u32 gTrainerPalette_PokedudeBackPic[]; extern const u32 gTrainerPalette_OldManBackPic[]; extern const u32 gTrainerPalette_PokemonBreederM[]; extern const u32 gTrainerPalette_RSPokemonBreederF[]; @@ -4358,7 +4354,7 @@ extern const u8 gBerryPouchBg1Tilemap[]; extern const u8 gTrainerBackPic_Red[]; extern const u8 gTrainerBackPic_Leaf[]; -extern const u8 gTrainerBackPic_PokeDude[]; +extern const u8 gTrainerBackPic_Pokedude[]; extern const u8 gTrainerBackPic_OldMan[]; extern const u8 gTrainerBackPic_RSBrendan[]; extern const u8 gTrainerBackPic_RSMay[]; @@ -4861,4 +4857,11 @@ extern const u16 gBattleInterface_BallStatusBarPal[]; extern const u16 gBattleInterface_BallDisplayPal[]; extern const u16 gUnknown_8D12404[]; +// item_menu +extern const u32 gUnknown_8E830CC[]; +extern const u32 gUnknown_8E832C0[]; +extern const u32 gUnknown_8E83444[]; +extern const u32 gBagBgPalette[]; +extern const u32 gBagBgPalette_FemaleOverride[]; + #endif //GUARD_GRAPHICS_H diff --git a/include/item_menu.h b/include/item_menu.h index 187674e83..27bd73e72 100644 --- a/include/item_menu.h +++ b/include/item_menu.h @@ -3,6 +3,7 @@ #include "global.h" #include "task.h" +#include "constants/item_menu.h" // Exported type declarations @@ -10,15 +11,15 @@ struct BagStruct { - void (*bagCallback)(void); + MainCallback bagCallback; u8 location; - u8 pocket; - u16 unk6; - u8 cursorPosition[6]; - u8 scrollPosition[6]; + bool8 bagOpen; + u16 pocket; + u16 itemsAbove[3]; + u16 cursorPos[3]; }; -extern struct BagStruct gUnknown_203ACFC; +extern struct BagStruct gBagMenuState; extern u16 gSpecialVar_ItemId; @@ -26,19 +27,19 @@ extern u16 gSpecialVar_ItemId; void sub_81AAC50(void); void sub_81AAC70(void); void CB2_SetUpReshowBattleScreenAfterMenu(void); -void sub_81089BC(void); -void sub_810B108(u8); +void ResetBagCursorPositions(void); +void InitPokedudeBag(u8); void CB2_BagMenuFromStartMenu(void); -void ItemMenu_MoveItemSlotToNewPositionInArray(struct ItemSlot * slots, int pos1, int pos2); +void MoveItemSlotInList(struct ItemSlot * itemSlots_, u32 from, u32 to_); void ItemMenu_StartFadeToExitCallback(u8 taskId); -void sub_8108CB4(void); +void Bag_BeginCloseWin0Animation(void); void ItemMenu_SetExitCallback(void (*)(void)); -void DisplayItemMessageInBag(u8 taskId, u8 bgId, const u8 * string, TaskFunc followUpFunc); -void sub_810A1F8(u8 taskId); -void sub_8107ECC(void); -void sub_810AF74(void); -void sub_8108DC8(u8 pocketId); -void sub_81089F4(u8 pocketId); +void DisplayItemMessageInBag(u8 taskId, u8 fontId, const u8 * string, TaskFunc followUpFunc); +void Task_ReturnToBagFromContextMenu(u8 taskId); +void CB2_BagMenuFromBattle(void); +void InitOldManBag(void); +void Pocket_CalculateNItemsAndMaxShowed(u8 pocketId); +void PocketCalculateInitialCursorPosAndItemsAbove(u8 pocketId); void GoToBagMenu(u8 menuType, u8 pocket, MainCallback callback); #endif //GUARD_ITEM_MENU_H diff --git a/include/item_menu_icons.h b/include/item_menu_icons.h index b5b5c6b0b..fd66a9375 100644 --- a/include/item_menu_icons.h +++ b/include/item_menu_icons.h @@ -3,28 +3,26 @@ #include "global.h" -extern void * gUnknown_2039884; - -extern const struct CompressedSpriteSheet gUnknown_83D41E4; -extern const struct CompressedSpriteSheet gUnknown_83D41EC; -extern const struct CompressedSpritePalette gUnknown_83D41F4; +extern const struct CompressedSpriteSheet gSpriteSheet_Backpack; +extern const struct CompressedSpriteSheet gSpriteSheet_Satchel; +extern const struct CompressedSpritePalette gSpritePalette_BagOrSatchel; extern const struct CompressedSpriteSheet gBagSwapSpriteSheet; extern const struct CompressedSpritePalette gBagSwapSpritePalette; void ResetItemMenuIconState(void); -void sub_80985E4(void); +void ItemMenuIcons_CreateInsertIndicatorBarHidden(void); void DestroyItemMenuIcon(bool8 a0); void CreateItemMenuIcon(u16 itemId, bool8 a0); void CopyItemIconPicTo4x4Buffer(const void *src, void *dest); u8 AddItemIconObject(u16 tilesTag, u16 paletteTag, u16 itemId); u8 AddItemIconObjectWithCustomObjectTemplate(const struct SpriteTemplate * origTemplate, u16 tilesTag, u16 paletteTag, u16 itemId); void sub_80989A0(u16 itemId, u8 idx); -void sub_80986A8(s16 x, u16 y); -void sub_8098660(u8); +void ItemMenuIcons_MoveInsertIndicatorBar(s16 x, u16 y); +void ItemMenuIcons_ToggleInsertIndicatorBarVisibility(bool8 invisible); void sub_8098528(u8); void sub_8098580(void); -const void * sub_8098974(u16 itemId, u8 ptrId); -void sub_80984FC(u8 animNum); +const void * GetItemIconGfxPtr(u16 itemId, u8 ptrId); +void CreateBagOrSatchelSprite(u8 animNum); #endif // GUARD_ITEM_MENU_ICONS diff --git a/include/map_name_popup.h b/include/map_name_popup.h index c8ce02c30..a7c1234c6 100644 --- a/include/map_name_popup.h +++ b/include/map_name_popup.h @@ -4,5 +4,6 @@ #include "global.h" void CreateMapNamePopupIfNotAlreadyRunning(bool32 palIntoFadedBuffer); +void DismissMapNamePopup(void); #endif //GUARD_MAP_NAME_POPUP_H diff --git a/include/menu_helpers.h b/include/menu_helpers.h index 1e75b336c..d26f50483 100644 --- a/include/menu_helpers.h +++ b/include/menu_helpers.h @@ -20,14 +20,14 @@ bool8 sub_80BF748(void); bool8 MenuHelpers_LinkSomething(void); void SetVBlankHBlankCallbacksToNull(void); void ResetAllBgsCoordinatesAndBgCntRegs(void); -u8 sub_80BF8E4(void); +u8 GetDialogBoxFontId(void); bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1); void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 tileNum, u8 paletteNum, u8 fontId, u8 textSpeed, const u8 *string, void *taskFunc); void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *template, u8 fontId, u8 left, u8 top, u16 tileStart, u8 palette, const struct YesNoFuncTable *yesNo); u8 GetLRKeysState(void); u8 GetLRKeysPressedAndHeld(void); bool8 itemid_link_can_give_berry(u16 itemId); -bool8 itemid_80BF6D8_mail_related(u16 itemId); +bool8 CanWriteMailHere(u16 itemId); void ResetVramOamAndBgCntRegs(void); #endif //GUARD_MENU_HELPERS_H diff --git a/include/strings.h b/include/strings.h index eace8d67e..7e8a4fbb4 100644 --- a/include/strings.h +++ b/include/strings.h @@ -112,8 +112,8 @@ extern const u8 gText_OhNoICantBuyThat[]; extern const u8 gText_HowManyWouldYouLikeToSell[]; extern const u8 gText_ICanPayThisMuch_WouldThatBeOkay[]; extern const u8 gText_TurnedOverItemsWorthYen[]; -extern const u8 gPokeDudeText_TMTypes[]; -extern const u8 gPokeDudeText_ReadTMDescription[]; +extern const u8 gPokedudeText_TMTypes[]; +extern const u8 gPokedudeText_ReadTMDescription[]; extern const u8 gFameCheckerText_Cancel[]; extern const u8 gFameCheckerText_ListMenuCursor[]; extern const u8 gFameCheckerText_FameCheckerWillBeClosed[]; @@ -134,7 +134,7 @@ extern const u8 gTeachyTvString_CatchPkmn[]; extern const u8 gTeachyTvString_AboutTMs[]; extern const u8 gTeachyTvString_RegisterItem[]; extern const u8 gTeachyTvString_Cancel[]; -extern const u8 gTeachyTvText_PokeDudeSaysHello[]; +extern const u8 gTeachyTvText_PokedudeSaysHello[]; extern const u8 gTeachyTvText_BattleScript1[]; extern const u8 gTeachyTvText_StatusScript1[]; extern const u8 gTeachyTvText_MatchupsScript1[]; @@ -1038,4 +1038,22 @@ extern const u8 gText_SaveFailedScreen_CheckingBackupMemory[]; extern const u8 gText_SaveFailedScreen_BackupMemoryDamaged[]; extern const u8 gText_SaveFailedScreen_SaveCompleted[]; +// bag +extern const u8 gText_DepositItem[]; + +// item_menu +extern const u8 gOtherText_Register[]; +extern const u8 gOtherText_Walk[]; +extern const u8 gOtherText_Check[]; +extern const u8 gOtherText_Open[]; +extern const u8 gOtherText_Deselect[]; +extern const u8 gText_Items2[]; +extern const u8 gText_PokeBalls2[]; +extern const u8 gText_KeyItems2[]; +extern const u8 gText_CloseBag[]; +extern const u8 gText_CantWriteMailHere[]; +extern const u8 gText_DepositHowManyStrVars1[]; +extern const u8 gText_DepositedStrVar2StrVar1s[]; +extern const u8 gText_NoRoomToStoreItems[]; + #endif //GUARD_STRINGS_H diff --git a/include/teachy_tv.h b/include/teachy_tv.h index 36bac6a67..3484f88c1 100644 --- a/include/teachy_tv.h +++ b/include/teachy_tv.h @@ -1,6 +1,16 @@ #ifndef GUARD_TEACHY_TV_H #define GUARD_TEACHY_TV_H +enum TeachyTvScript +{ + TTVSCR_BATTLE, + TTVSCR_STATUS, + TTVSCR_MATCHUPS, + TTVSCR_CATCHING, + TTVSCR_TMS, + TTVSCR_REGISTER +}; + void InitTeachyTvController(u8 mode, void (*cb)()); void CB2_ReturnToTeachyTV(void); void SetTeachyTvControllerModeToResume(void); diff --git a/include/tm_case.h b/include/tm_case.h index f77eae457..22fb021e0 100644 --- a/include/tm_case.h +++ b/include/tm_case.h @@ -1,8 +1,18 @@ #ifndef GUARD_TM_CASE_H #define GUARD_TM_CASE_H +enum TmCaseType +{ + TMCASE_FROMFIELD, + TMCASE_FROMPARTYGIVE, + TMCASE_FROMMARTSELL, + TMCASE_FROMPOKEMONSTORAGEPC, + TMCASE_FROMBATTLE, + TMCASE_NA +}; + void InitTMCase(u8 a0, void (* a1)(void), u8 a2); void ResetTMCaseCursorPos(void); -void PokeDude_InitTMCase(void); +void Pokedude_InitTMCase(void); #endif //GUARD_TM_CASE_H diff --git a/ld_script.txt b/ld_script.txt index f07e480a2..016793dc9 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -232,7 +232,7 @@ SECTIONS { src/pokedex_screen.o(.text); asm/pokedex_screen.o(.text); src/list_menu.o(.text); - asm/item_menu.o(.text); + src/item_menu.o(.text); src/save_location.o(.text); src/bag.o(.text); src/trainer_pokemon_sprites.o(.text); @@ -517,7 +517,7 @@ SECTIONS { src/pokedex_screen.o(.rodata); data/pokedex_screen.o(.rodata); src/list_menu.o(.rodata); - data/item_menu.o(.rodata); + src/item_menu.o(.rodata); src/save_location.o(.rodata); src/bag.o(.rodata); src/trainer_pokemon_sprites.o(.rodata); @@ -10,17 +10,18 @@ #include "menu.h" #include "money.h" #include "bag.h" +#include "strings.h" -extern const u8 gText_DepositItem[]; +static const u16 sBagWindowPalF[] = INCBIN_U16("data/bag/bag_window_pal.gbapal"); -const u16 gUnknown_8453098[] = INCBIN_U16("data/bag/bag_window_pal.gbapal"); -const u8 gUnknown_84530B8[][3] = { +static const u8 sTextColors[][3] = { {0, 1, 2}, {0, 2, 3}, {0, 3, 2}, {0, 8, 9} }; -const struct WindowTemplate gUnknown_84530C4[] = { + +static const struct WindowTemplate sDefaultBagWindowsStd[] = { { .bg = 0, .tilemapLeft = 0x0b, @@ -47,7 +48,8 @@ const struct WindowTemplate gUnknown_84530C4[] = { .baseBlock = 0x01f8 }, DUMMY_WIN_TEMPLATE }; -const struct WindowTemplate gUnknown_84530E4[] = { + +static const struct WindowTemplate sDefaultBagWindowsDeposit[] = { { .bg = 0, .tilemapLeft = 0x0b, @@ -74,7 +76,8 @@ const struct WindowTemplate gUnknown_84530E4[] = { .baseBlock = 0x01f8 }, DUMMY_WIN_TEMPLATE }; -const struct WindowTemplate gUnknown_8453104[] = { + +static const struct WindowTemplate sWindowTemplates[] = { { .bg = 0, .tilemapLeft = 24, @@ -99,122 +102,114 @@ const struct WindowTemplate gUnknown_8453104[] = { .height = 3, .paletteNum = 0xC, .baseBlock = 0x272 - } -}; - -const struct WindowTemplate gUnknown_845311C = { - .bg = 0, - .tilemapLeft = 23, - .tilemapTop = 15, - .width = 6, - .height = 4, - .paletteNum = 0xF, - .baseBlock = 0x28a -}; - -const struct WindowTemplate gUnknown_8453124 = { - .bg = 0, - .tilemapLeft = 21, - .tilemapTop = 9, - .width = 6, - .height = 4, - .paletteNum = 0xF, - .baseBlock = 0x28a -}; - -const struct WindowTemplate gUnknown_845312C[] = { - { - .bg = 0x00, - .tilemapLeft = 0x02, - .tilemapTop = 0x0f, - .width = 0x1a, - .height = 0x04, - .paletteNum = 0x0f, - .baseBlock = 0x02a2 }, { - .bg = 0x00, - .tilemapLeft = 0x06, - .tilemapTop = 0x0f, - .width = 0x0e, - .height = 0x04, - .paletteNum = 0x0c, - .baseBlock = 0x02a2 + .bg = 0, + .tilemapLeft = 23, + .tilemapTop = 15, + .width = 6, + .height = 4, + .paletteNum = 0xF, + .baseBlock = 0x28a }, { - .bg = 0x00, - .tilemapLeft = 0x06, - .tilemapTop = 0x0f, - .width = 0x0f, - .height = 0x04, - .paletteNum = 0x0c, - .baseBlock = 0x02da + .bg = 0, + .tilemapLeft = 21, + .tilemapTop = 9, + .width = 6, + .height = 4, + .paletteNum = 0xF, + .baseBlock = 0x28a }, { - .bg = 0x00, - .tilemapLeft = 0x06, - .tilemapTop = 0x0f, - .width = 0x10, - .height = 0x04, - .paletteNum = 0x0c, - .baseBlock = 0x0316 + .bg = 0, + .tilemapLeft = 2, + .tilemapTop = 15, + .width = 26, + .height = 4, + .paletteNum = 0xF, + .baseBlock = 0x2a2 }, { - .bg = 0x00, - .tilemapLeft = 0x06, - .tilemapTop = 0x0f, - .width = 0x17, - .height = 0x04, - .paletteNum = 0x0c, - .baseBlock = 0x0356 + .bg = 0, + .tilemapLeft = 6, + .tilemapTop = 15, + .width = 14, + .height = 4, + .paletteNum = 0xC, + .baseBlock = 0x2a2 }, { - .bg = 0x00, - .tilemapLeft = 0x16, - .tilemapTop = 0x11, - .width = 0x07, - .height = 0x02, - .paletteNum = 0x0f, - .baseBlock = 0x020a + .bg = 0, + .tilemapLeft = 6, + .tilemapTop = 15, + .width = 15, + .height = 4, + .paletteNum = 0xC, + .baseBlock = 0x2da }, { - .bg = 0x00, - .tilemapLeft = 0x16, - .tilemapTop = 0x0f, - .width = 0x07, - .height = 0x04, - .paletteNum = 0x0f, - .baseBlock = 0x020a + .bg = 0, + .tilemapLeft = 6, + .tilemapTop = 15, + .width = 16, + .height = 4, + .paletteNum = 0xC, + .baseBlock = 0x316 }, { - .bg = 0x00, - .tilemapLeft = 0x16, - .tilemapTop = 0x0d, - .width = 0x07, - .height = 0x06, - .paletteNum = 0x0f, - .baseBlock = 0x020a + .bg = 0, + .tilemapLeft = 6, + .tilemapTop = 15, + .width = 23, + .height = 4, + .paletteNum = 0xC, + .baseBlock = 0x356 }, { - .bg = 0x00, - .tilemapLeft = 0x16, - .tilemapTop = 0x0b, - .width = 0x07, - .height = 0x08, - .paletteNum = 0x0f, - .baseBlock = 0x020a + .bg = 0, + .tilemapLeft = 22, + .tilemapTop = 17, + .width = 7, + .height = 2, + .paletteNum = 0xF, + .baseBlock = 0x20a + }, { + .bg = 0, + .tilemapLeft = 22, + .tilemapTop = 15, + .width = 7, + .height = 4, + .paletteNum = 0xF, + .baseBlock = 0x20a + }, { + .bg = 0, + .tilemapLeft = 22, + .tilemapTop = 13, + .width = 7, + .height = 6, + .paletteNum = 0xF, + .baseBlock = 0x20a + }, { + .bg = 0, + .tilemapLeft = 22, + .tilemapTop = 11, + .width = 7, + .height = 8, + .paletteNum = 0xF, + .baseBlock = 0x20a } }; -const u8 gUnknown_8453174[] = {16, 8, 4}; +static const u8 sUnused_8453174[] = {16, 8, 4}; -EWRAM_DATA u8 gUnknown_203AD34[11] = {}; +static EWRAM_DATA u8 sOpenWindows[11] = {}; -void sub_810B858(void) +void InitBagWindows(void) { u8 i; - if (gUnknown_203ACFC.location != 3) - InitWindows(gUnknown_84530C4); + if (gBagMenuState.location != 3) + InitWindows(sDefaultBagWindowsStd); else - InitWindows(gUnknown_84530E4); + InitWindows(sDefaultBagWindowsDeposit); DeactivateAllTextPrinters(); TextWindow_SetUserSelectedFrame(0, 0x64, 0xE0); TextWindow_LoadResourcesStdFrame0(0, 0x6D, 0xD0); TextWindow_SetStdFrame0_WithPal(0, 0x81, 0xC0); - LoadPalette(gUnknown_8453098, 0xF0, 0x20); + LoadPalette(sBagWindowPalF, 0xF0, 0x20); for (i = 0; i < 3; i++) { FillWindowPixelBuffer(i, 0x00); @@ -223,22 +218,22 @@ void sub_810B858(void) ScheduleBgCopyTilemapToVram(0); for (i = 0; i < 11; i++) { - gUnknown_203AD34[i] = 0xFF; + sOpenWindows[i] = 0xFF; } } -void sub_810B8F0(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, s8 speed, u8 colorIdx) +void BagPrintTextOnWindow(u8 windowId, u8 fontId, const u8 * str, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorIdx) { - AddTextPrinterParameterized4(windowId, fontId, x, y, letterSpacing, lineSpacing, gUnknown_84530B8[colorIdx], speed, str); + AddTextPrinterParameterized4(windowId, fontId, x, y, letterSpacing, lineSpacing, sTextColors[colorIdx], speed, str); } -void sub_810B958(const u8 * str) +void BagPrintTextOnWin1CenteredColor0(const u8 * str, u8 unused) { u32 x = 0x48 - GetStringWidth(1, str, 0); - AddTextPrinterParameterized3(2, 1, x / 2, 1, gUnknown_84530B8[0], 0, str); + AddTextPrinterParameterized3(2, 1, x / 2, 1, sTextColors[0], 0, str); } -void sub_810B994(void) +void BagDrawDepositItemTextBox(void) { u32 x; DrawStdFrameWithCustomTileAndPalette(2, FALSE, 0x081, 0x0C); @@ -246,77 +241,76 @@ void sub_810B994(void) AddTextPrinterParameterized(2, 0, gText_DepositItem, x / 2, 1, 0, NULL); } -u8 sub_810B9DC(u8 a0, u8 a1) +u8 ShowBagWindow(u8 whichWindow, u8 nItems) { - if (gUnknown_203AD34[a0] == 0xFF) + if (sOpenWindows[whichWindow] == 0xFF) { - gUnknown_203AD34[a0] = AddWindow(&gUnknown_8453104[a0 + a1]); - if (a0 != 6) + sOpenWindows[whichWindow] = AddWindow(&sWindowTemplates[whichWindow + nItems]); + if (whichWindow != 6) { - DrawStdFrameWithCustomTileAndPalette(gUnknown_203AD34[a0], FALSE, 0x064, 0x0E); + DrawStdFrameWithCustomTileAndPalette(sOpenWindows[whichWindow], FALSE, 0x064, 0xE); } else { - DrawStdFrameWithCustomTileAndPalette(gUnknown_203AD34[a0], FALSE, 0x081, 0x0C); + DrawStdFrameWithCustomTileAndPalette(sOpenWindows[whichWindow], FALSE, 0x081, 0xC); } ScheduleBgCopyTilemapToVram(0); } - return gUnknown_203AD34[a0]; + return sOpenWindows[whichWindow]; } -void sub_810BA3C(u8 a0) +void HideBagWindow(u8 whichWindow) { - ClearStdWindowAndFrameToTransparent(gUnknown_203AD34[a0], FALSE); - ClearWindowTilemap(gUnknown_203AD34[a0]); - RemoveWindow(gUnknown_203AD34[a0]); + ClearStdWindowAndFrameToTransparent(sOpenWindows[whichWindow], FALSE); + ClearWindowTilemap(sOpenWindows[whichWindow]); + RemoveWindow(sOpenWindows[whichWindow]); ScheduleBgCopyTilemapToVram(0); - gUnknown_203AD34[a0] = 0xFF; + sOpenWindows[whichWindow] = 0xFF; } -u8 sub_810BA70(u8 a0) +u8 OpenBagWindow(u8 whichWindow) { - if (gUnknown_203AD34[a0] == 0xFF) + if (sOpenWindows[whichWindow] == 0xFF) { - gUnknown_203AD34[a0] = AddWindow(&gUnknown_8453104[a0]); + sOpenWindows[whichWindow] = AddWindow(&sWindowTemplates[whichWindow]); } - return gUnknown_203AD34[a0]; + return sOpenWindows[whichWindow]; } -void sub_810BA9C(u8 a0) +void CloseBagWindow(u8 whichWindow) { - if (gUnknown_203AD34[a0] != 0xFF) + if (sOpenWindows[whichWindow] != 0xFF) { - ClearDialogWindowAndFrameToTransparent(gUnknown_203AD34[a0], FALSE); - ClearWindowTilemap(gUnknown_203AD34[a0]); - RemoveWindow(gUnknown_203AD34[a0]); + ClearDialogWindowAndFrameToTransparent(sOpenWindows[whichWindow], FALSE); + ClearWindowTilemap(sOpenWindows[whichWindow]); + RemoveWindow(sOpenWindows[whichWindow]); PutWindowTilemap(1); ScheduleBgCopyTilemapToVram(0); - gUnknown_203AD34[a0] = 0xFF; - + sOpenWindows[whichWindow] = 0xFF; } } -u8 sub_810BAD8(u8 a0) +u8 GetBagWindow(u8 whichWindow) { - return gUnknown_203AD34[a0]; + return sOpenWindows[whichWindow]; } -void sub_810BAE8(u8 taskId, const struct YesNoFuncTable * ptrs) +void BagCreateYesNoMenuBottomRight(u8 taskId, const struct YesNoFuncTable * ptrs) { - CreateYesNoMenuWithCallbacks(taskId, &gUnknown_845311C, 2, 0, 2, 0x64, 0x0E, ptrs); + CreateYesNoMenuWithCallbacks(taskId, &sWindowTemplates[3], 2, 0, 2, 0x064, 0x0E, ptrs); } -void sub_810BB14(u8 taskId, const struct YesNoFuncTable * ptrs) +void BagCreateYesNoMenuTopRight(u8 taskId, const struct YesNoFuncTable * ptrs) { - CreateYesNoMenuWithCallbacks(taskId, &gUnknown_8453124, 2, 0, 2, 0x064, 0x0E, ptrs); + CreateYesNoMenuWithCallbacks(taskId, &sWindowTemplates[4], 2, 0, 2, 0x064, 0x0E, ptrs); } -void sub_810BB40(void) +void BagPrintMoneyAmount(void) { - PrintMoneyAmountInMoneyBoxWithBorder(sub_810B9DC(2, 0), 0x081, 0x0C, GetMoney(&gSaveBlock1Ptr->money)); + PrintMoneyAmountInMoneyBoxWithBorder(ShowBagWindow(2, 0), 0x081, 0x0C, GetMoney(&gSaveBlock1Ptr->money)); } -void sub_810BB74(u8 windowId) +void BagDrawTextBoxOnWindow(u8 windowId) { DrawTextBorderOuter(windowId, 0x064, 0x0E); } diff --git a/src/battle_controller_oak_old_man.c b/src/battle_controller_oak_old_man.c index 6ae50d058..0807018a2 100644 --- a/src/battle_controller_oak_old_man.c +++ b/src/battle_controller_oak_old_man.c @@ -379,9 +379,9 @@ static void OpenBagAndChooseItem(void) nullsub_44(); FreeAllWindowBuffers(); if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE) - sub_8107ECC(); + CB2_BagMenuFromBattle(); else - sub_810AF74(); + InitOldManBag(); } } diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 7f1f738a3..cb9e04a50 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -1330,7 +1330,7 @@ static void OpenBagAndChooseItem(void) gBattlerControllerFuncs[gActiveBattler] = CompleteWhenChoseItem; nullsub_44(); FreeAllWindowBuffers(); - sub_8107ECC(); + CB2_BagMenuFromBattle(); } } diff --git a/src/battle_controller_pokedude.c b/src/battle_controller_pokedude.c index 86da27ee3..d8ebe5ba4 100644 --- a/src/battle_controller_pokedude.c +++ b/src/battle_controller_pokedude.c @@ -23,6 +23,7 @@ #include "battle_interface.h" #include "battle_message.h" #include "reshow_battle_screen.h" +#include "teachy_tv.h" #include "constants/songs.h" #include "constants/items.h" #include "constants/moves.h" @@ -733,15 +734,15 @@ static void OpenBagAndChooseItem(void) FreeAllWindowBuffers(); switch (gSpecialVar_0x8004) { - case 1: + case TTVSCR_STATUS: default: - callbackId = 7; + callbackId = ITEMMENULOCATION_TTVSCR_STATUS; break; - case 3: - callbackId = 8; + case TTVSCR_CATCHING: + callbackId = ITEMMENULOCATION_TTVSCR_CATCHING; break; } - sub_810B108(callbackId); + InitPokedudeBag(callbackId); } } diff --git a/src/battle_main.c b/src/battle_main.c index 9f3477659..15c264369 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -86,7 +86,7 @@ static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum); static void CB2_HandleStartBattle(void); static void TryCorrectShedinjaLanguage(struct Pokemon *mon); static void BattleMainCB1(void); -static void CB2_QuitPokeDudeBattle(void); +static void CB2_QuitPokedudeBattle(void); static void sub_80111FC(struct Sprite *sprite); static void sub_8011B94(void); static void sub_8011BB0(void); @@ -1438,7 +1438,7 @@ void BattleMainCB2(void) gSpecialVar_Result = gBattleOutcome = B_OUTCOME_DREW; ResetPaletteFadeControl(); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, RGB_BLACK); - SetMainCallback2(CB2_QuitPokeDudeBattle); + SetMainCallback2(CB2_QuitPokedudeBattle); } } @@ -1454,7 +1454,7 @@ void FreeRestoreBattleData(void) FreeBattleResources(); } -static void CB2_QuitPokeDudeBattle(void) +static void CB2_QuitPokedudeBattle(void) { UpdatePaletteFade(); if (!gPaletteFade.active) diff --git a/src/battle_message.c b/src/battle_message.c index 568682031..5bc0f113f 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -463,7 +463,7 @@ const u8 *const gPokeblockWasTooXStringTable[] = { static const u8 sText_PlayerUsedItem[] = _("{B_PLAYER_NAME} used\n{B_LAST_ITEM}!"); static const u8 sText_OldManUsedItem[] = _("The old man used\n{B_LAST_ITEM}!"); -static const u8 sText_PokeDudeUsedItem[] = _("The POKé DUDE used\n{B_LAST_ITEM}!"); +static const u8 sText_PokedudeUsedItem[] = _("The POKé DUDE used\n{B_LAST_ITEM}!"); static const u8 sText_Trainer1UsedItem[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME}\nused {B_LAST_ITEM}!"); static const u8 sText_TrainerBlockedBall[] = _("The TRAINER blocked the BALL!"); static const u8 sText_DontBeAThief[] = _("Don't be a thief!"); @@ -876,7 +876,7 @@ const u8 *const gBattleStringsTable[] = { Text_1A5D31, Text_1A5D6E, Text_1A5DB1, - sText_PokeDudeUsedItem, + sText_PokedudeUsedItem, gUnknown_83FDA4D, gUnknown_83FDA7A, gUnknown_83FDA8C, diff --git a/src/battle_setup.c b/src/battle_setup.c index a46191509..06f65dae2 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -978,7 +978,7 @@ const u8 *BattleSetup_GetScriptAddrAfterBattle(void) if (sTrainerBattleEndScript != NULL) return sTrainerBattleEndScript; else - return EventScript_1C555B; + return Test_EventScript_Sign; } const u8 *BattleSetup_GetTrainerPostBattleScript(void) @@ -986,7 +986,7 @@ const u8 *BattleSetup_GetTrainerPostBattleScript(void) if (sTrainerABattleScriptRetAddr != NULL) return sTrainerABattleScriptRetAddr; else - return EventScript_1C555B; + return Test_EventScript_Sign; } void ScrSpecial_ShowTrainerNonBattlingSpeech(void) diff --git a/src/berry_pouch.c b/src/berry_pouch.c index 711a17768..63677574b 100644 --- a/src/berry_pouch.c +++ b/src/berry_pouch.c @@ -1269,7 +1269,7 @@ static void Task_ContextMenu_Sell(u8 taskId) { CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_OhNoICantBuyThat); - DisplayItemMessageInBerryPouch(taskId, sub_80BF8E4(), gStringVar4, Task_BerryPouch_DestroyDialogueWindowAndRefreshListMenu); + DisplayItemMessageInBerryPouch(taskId, GetDialogBoxFontId(), gStringVar4, Task_BerryPouch_DestroyDialogueWindowAndRefreshListMenu); } else { @@ -1285,7 +1285,7 @@ static void Task_ContextMenu_Sell(u8 taskId) data[2] = 99; CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_HowManyWouldYouLikeToSell); - DisplayItemMessageInBerryPouch(taskId, sub_80BF8E4(), gStringVar4, Task_Sell_PrintSelectMultipleUI); + DisplayItemMessageInBerryPouch(taskId, GetDialogBoxFontId(), gStringVar4, Task_Sell_PrintSelectMultipleUI); } } } @@ -1295,7 +1295,7 @@ static void Task_AskSellMultiple(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, Task_SellMultiple_CreateYesNoMenu); + DisplayItemMessageInBerryPouch(taskId, GetDialogBoxFontId(), gStringVar4, Task_SellMultiple_CreateYesNoMenu); } static void Task_SellMultiple_CreateYesNoMenu(u8 taskId) diff --git a/src/data.c b/src/data.c index dddeeac51..891c9f94f 100644 --- a/src/data.c +++ b/src/data.c @@ -60,12 +60,12 @@ const struct SpriteFrameImage gTrainerBackPicTable_Leaf[] = gTrainerBackPic_Leaf + 0x2000, 0x0800, }; -const struct SpriteFrameImage gTrainerBackPicTable_PokeDude[] = +const struct SpriteFrameImage gTrainerBackPicTable_Pokedude[] = { - gTrainerBackPic_PokeDude, 0x0800, - gTrainerBackPic_PokeDude + 0x0800, 0x0800, - gTrainerBackPic_PokeDude + 0x1000, 0x0800, - gTrainerBackPic_PokeDude + 0x1800, 0x0800, + gTrainerBackPic_Pokedude, 0x0800, + gTrainerBackPic_Pokedude + 0x0800, 0x0800, + gTrainerBackPic_Pokedude + 0x1000, 0x0800, + gTrainerBackPic_Pokedude + 0x1800, 0x0800, }; const struct SpriteFrameImage gTrainerBackPicTable_OldMan[] = diff --git a/src/data/trainer_graphics/back_pic_anims.h b/src/data/trainer_graphics/back_pic_anims.h index 2e107c21e..833a0cb28 100644 --- a/src/data/trainer_graphics/back_pic_anims.h +++ b/src/data/trainer_graphics/back_pic_anims.h @@ -16,7 +16,7 @@ static const union AnimCmd sAnimCmd_Leaf_1[] = { ANIMCMD_END }; -static const union AnimCmd sAnimCmd_PokeDude_1[] = { +static const union AnimCmd sAnimCmd_Pokedude_1[] = { ANIMCMD_FRAME(1, 24), ANIMCMD_FRAME(2, 9), ANIMCMD_FRAME(3, 24), @@ -60,9 +60,9 @@ const union AnimCmd *const sBackAnims_Leaf[] = { sAnimCmd_Leaf_1 }; -const union AnimCmd *const sBackAnims_PokeDude[] = { +const union AnimCmd *const sBackAnims_Pokedude[] = { sAnim_GeneralFrame0, - sAnimCmd_PokeDude_1 + sAnimCmd_Pokedude_1 }; const union AnimCmd *const sBackAnims_OldMan[] = { @@ -85,6 +85,6 @@ const union AnimCmd *const *const gTrainerBackAnimsPtrTable[] = { sBackAnims_Leaf, sBackAnims_RSBrendan, sBackAnims_RSMay, - sBackAnims_PokeDude, + sBackAnims_Pokedude, sBackAnims_OldMan }; diff --git a/src/data/trainer_graphics/back_pic_tables.h b/src/data/trainer_graphics/back_pic_tables.h index 86e7824c1..4d0c129a8 100644 --- a/src/data/trainer_graphics/back_pic_tables.h +++ b/src/data/trainer_graphics/back_pic_tables.h @@ -12,7 +12,7 @@ const struct CompressedSpriteSheet gTrainerBackPicTable[] = { { (const u32 *)gTrainerBackPic_Leaf, 0x2800, 1 }, { (const u32 *)gTrainerBackPic_RSBrendan, 0x2000, 2 }, { (const u32 *)gTrainerBackPic_RSMay, 0x2000, 3 }, - { (const u32 *)gTrainerBackPic_PokeDude, 0x2000, 4 }, + { (const u32 *)gTrainerBackPic_Pokedude, 0x2000, 4 }, { (const u32 *)gTrainerBackPic_OldMan, 0x2000, 5 } }; @@ -21,6 +21,6 @@ const struct CompressedSpritePalette gTrainerBackPicPaletteTable[] = { { gTrainerPalette_LeafBackPic, 1 }, { gTrainerPalette_RSBrendan1, 2 }, { gTrainerPalette_RSMay1, 3 }, - { gTrainerPalette_PokeDudeBackPic, 4 }, + { gTrainerPalette_PokedudeBackPic, 4 }, { gTrainerPalette_OldManBackPic, 5 } }; diff --git a/src/daycare.c b/src/daycare.c index b3e76faba..a377e97f5 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -37,9 +37,11 @@ #include "naming_screen.h" #include "help_system.h" #include "field_fadetransition.h" +#include "constants/daycare.h" +#include "constants/pokemon.h" +#include "constants/region_map.h" -#define EGG_MOVES_ARRAY_COUNT 10 -#define EGG_LVL_UP_MOVES_ARRAY_COUNT 50 +// Combination of RSE's Day-Care (re-used on Four Island), FRLG's Day-Care, and egg_hatch.c struct EggHatchData { @@ -119,7 +121,7 @@ static const struct ListMenuItem sLevelMenuItems[] = { {gExpandedPlaceholder_Empty, 0}, {gExpandedPlaceholder_Empty, 1}, - {gOtherText_Exit, 5} + {gOtherText_Exit, DAYCARE_LEVEL_MENU_EXIT} }; static const struct ListMenuTemplate sDaycareListMenuLevelTemplate = @@ -372,7 +374,7 @@ static const s16 sEggShardVelocities[][2] = // code -u8 *GetMonNick(struct Pokemon *mon, u8 *dest) +static u8 *DayCare_GetMonNickname(struct Pokemon *mon, u8 *dest) { u8 nickname[POKEMON_NAME_LENGTH * 2]; @@ -380,7 +382,7 @@ u8 *GetMonNick(struct Pokemon *mon, u8 *dest) return StringCopy10(dest, nickname); } -u8 *GetBoxMonNick(struct BoxPokemon *mon, u8 *dest) +static u8 *DayCare_GetBoxMonNickname(struct BoxPokemon *mon, u8 *dest) { u8 nickname[POKEMON_NAME_LENGTH * 2]; @@ -450,7 +452,7 @@ static void StorePokemonInDaycare(struct Pokemon *mon, struct DaycareMon *daycar u8 mailId; StringCopy(daycareMon->mail.OT_name, gSaveBlock2Ptr->playerName); - GetMonNick(mon, daycareMon->mail.monName); + DayCare_GetMonNickname(mon, daycareMon->mail.monName); // StripExtCtrlCodes(daycareMon->mail.monName); // daycareMon->mail.gameLanguage = LANGUAGE_ENGLISH; // daycareMon->mail.monLanguage = GetMonData(mon, MON_DATA_LANGUAGE); @@ -483,8 +485,8 @@ void StoreSelectedPokemonInDaycare(void) static void ShiftDaycareSlots(struct DayCare *daycare) { // This condition is only satisfied when the player takes out the first pokemon from the daycare. - if (GetBoxMonData(&daycare->mons[1].mon, MON_DATA_SPECIES) != 0 - && GetBoxMonData(&daycare->mons[0].mon, MON_DATA_SPECIES) == 0) + if (GetBoxMonData(&daycare->mons[1].mon, MON_DATA_SPECIES) != SPECIES_NONE + && GetBoxMonData(&daycare->mons[0].mon, MON_DATA_SPECIES) == SPECIES_NONE) { daycare->mons[0].mon = daycare->mons[1].mon; ZeroBoxMonData(&daycare->mons[1].mon); @@ -512,11 +514,8 @@ static void ApplyDaycareExperience(struct Pokemon *mon) while ((learnedMove = MonTryLearningNewMove(mon, firstMove)) != 0) { firstMove = FALSE; - if (learnedMove == 0xFFFF) - { - // Mon already knows 4 moves. + if (learnedMove == MON_HAS_MAX_MOVES) DeleteFirstMoveAndGiveMoveToMon(mon, gMoveToLearn); - } } } else @@ -535,7 +534,7 @@ static u16 TakeSelectedPokemonFromDaycare(struct DaycareMon *daycareMon) u32 experience; struct Pokemon pokemon; - GetBoxMonNick(&daycareMon->mon, gStringVar1); + DayCare_GetBoxMonNickname(&daycareMon->mon, gStringVar1); species = GetBoxMonData(&daycareMon->mon, MON_DATA_SPECIES); BoxMonToMon(&daycareMon->mon, &pokemon); @@ -595,7 +594,7 @@ static u8 GetNumLevelsGainedForDaycareMon(struct DaycareMon *daycareMon) { u8 numLevelsGained = GetNumLevelsGainedFromSteps(daycareMon); ConvertIntToDecimalStringN(gStringVar2, numLevelsGained, STR_CONV_MODE_LEFT_ALIGN, 2); - GetBoxMonNick(&daycareMon->mon, gStringVar1); + DayCare_GetBoxMonNickname(&daycareMon->mon, gStringVar1); return numLevelsGained; } @@ -604,7 +603,7 @@ static u32 GetDaycareCostForSelectedMon(struct DaycareMon *daycareMon) u32 cost; u8 numLevelsGained = GetNumLevelsGainedFromSteps(daycareMon); - GetBoxMonNick(&daycareMon->mon, gStringVar1); + DayCare_GetBoxMonNickname(&daycareMon->mon, gStringVar1); cost = 100 + 100 * numLevelsGained; ConvertIntToDecimalStringN(gStringVar2, cost, STR_CONV_MODE_LEFT_ALIGN, 5); return cost; @@ -639,7 +638,7 @@ static void ClearDaycareMonMail(struct DayCareMail *mail) { s32 i; - for (i = 0; i < PLAYER_NAME_LENGTH; i++) + for (i = 0; i < PLAYER_NAME_LENGTH/* + 1*/; i++) mail->OT_name[i] = 0; for (i = 0; i < POKEMON_NAME_LENGTH + 1; i++) mail->monName[i] = 0; @@ -777,7 +776,7 @@ static void _TriggerPendingDaycareEgg(struct DayCare *daycare) static void _TriggerPendingDaycareMaleEgg(struct DayCare *daycare) { - daycare->offspringPersonality = (Random()) | (0x8000); + daycare->offspringPersonality = (Random()) | (EGG_GENDER_MALE); FlagSet(FLAG_PENDING_DAYCARE_EGG); } @@ -815,7 +814,7 @@ static void RemoveIVIndexFromList(u8 *ivs, u8 selectedIv) static void InheritIVs(struct Pokemon *egg, struct DayCare *daycare) { u8 i; - u8 selectedIvs[3]; + u8 selectedIvs[INHERITED_IV_COUNT]; u8 availableIVs[NUM_STATS]; u8 whichParent[ARRAY_COUNT(selectedIvs)]; u8 iv; @@ -829,17 +828,15 @@ static void InheritIVs(struct Pokemon *egg, struct DayCare *daycare) // Select the 3 IVs that will be inherited. for (i = 0; i < ARRAY_COUNT(selectedIvs); i++) { - // Randomly pick an IV from the available list. + // Randomly pick an IV from the available list and stop from being chosen again. selectedIvs[i] = availableIVs[Random() % (NUM_STATS - i)]; - - // Remove the selected IV index from the available IV indices. RemoveIVIndexFromList(availableIVs, selectedIvs[i]); } // Determine which parent each of the selected IVs should inherit from. for (i = 0; i < ARRAY_COUNT(selectedIvs); i++) { - whichParent[i] = Random() % 2; + whichParent[i] = Random() % DAYCARE_MON_COUNT; } // Set each of inherited IVs on the egg mon. @@ -921,14 +918,14 @@ static void BuildEggMoveset(struct Pokemon *egg, struct BoxPokemon *father, stru numSharedParentMoves = 0; for (i = 0; i < MAX_MON_MOVES; i++) { - sHatchedEggMotherMoves[i] = 0; - sHatchedEggFatherMoves[i] = 0; - sHatchedEggFinalMoves[i] = 0; + sHatchedEggMotherMoves[i] = MOVE_NONE; + sHatchedEggFatherMoves[i] = MOVE_NONE; + sHatchedEggFinalMoves[i] = MOVE_NONE; } for (i = 0; i < EGG_MOVES_ARRAY_COUNT; i++) - sHatchedEggEggMoves[i] = 0; + sHatchedEggEggMoves[i] = MOVE_NONE; for (i = 0; i < EGG_LVL_UP_MOVES_ARRAY_COUNT; i++) - sHatchedEggLevelUpMoves[i] = 0; + sHatchedEggLevelUpMoves[i] = MOVE_NONE; numLevelUpMoves = GetLevelUpMovesBySpecies(GetMonData(egg, MON_DATA_SPECIES), sHatchedEggLevelUpMoves); for (i = 0; i < MAX_MON_MOVES; i++) @@ -947,7 +944,7 @@ static void BuildEggMoveset(struct Pokemon *egg, struct BoxPokemon *father, stru { if (sHatchedEggFatherMoves[i] == sHatchedEggEggMoves[j]) { - if (GiveMoveToMon(egg, sHatchedEggFatherMoves[i]) == 0xFFFF) + if (GiveMoveToMon(egg, sHatchedEggFatherMoves[i]) == MON_HAS_MAX_MOVES) DeleteFirstMoveAndGiveMoveToMon(egg, sHatchedEggFatherMoves[i]); break; } @@ -966,7 +963,7 @@ static void BuildEggMoveset(struct Pokemon *egg, struct BoxPokemon *father, stru { if (sHatchedEggFatherMoves[i] == ItemIdToBattleMoveId(ITEM_TM01/*_FOCUS_PUNCH*/ + j) && CanMonLearnTMHM(egg, j)) { - if (GiveMoveToMon(egg, sHatchedEggFatherMoves[i]) == 0xFFFF) + if (GiveMoveToMon(egg, sHatchedEggFatherMoves[i]) == MON_HAS_MAX_MOVES) DeleteFirstMoveAndGiveMoveToMon(egg, sHatchedEggFatherMoves[i]); } } @@ -991,7 +988,7 @@ static void BuildEggMoveset(struct Pokemon *egg, struct BoxPokemon *father, stru { if (sHatchedEggLevelUpMoves[j] != MOVE_NONE && sHatchedEggFinalMoves[i] == sHatchedEggLevelUpMoves[j]) { - if (GiveMoveToMon(egg, sHatchedEggFinalMoves[i]) == 0xFFFF) + if (GiveMoveToMon(egg, sHatchedEggFinalMoves[i]) == MON_HAS_MAX_MOVES) DeleteFirstMoveAndGiveMoveToMon(egg, sHatchedEggFinalMoves[i]); break; } @@ -1036,7 +1033,7 @@ static void AlterEggSpeciesWithIncenseItem(u16 *species, struct DayCare *daycare if (motherItem == ITEM_LIGHT_BALL || fatherItem == ITEM_LIGHT_BALL) { - if (GiveMoveToMon(mon, MOVE_VOLT_TACKLE) == 0xFFFF) + if (GiveMoveToMon(mon, MOVE_VOLT_TACKLE) == MON_HAS_MAX_MOVES) DeleteFirstMoveAndGiveMoveToMon(mon, MOVE_VOLT_TACKLE); } }*/ @@ -1044,13 +1041,13 @@ static void AlterEggSpeciesWithIncenseItem(u16 *species, struct DayCare *daycare static u16 DetermineEggSpeciesAndParentSlots(struct DayCare *daycare, u8 *parentSlots) { u16 i; - u16 species[2]; + u16 species[DAYCARE_MON_COUNT]; u16 eggSpecies; // Determine which of the daycare mons is the mother and father of the egg. // The 0th index of the parentSlots array is considered the mother slot, and the // 1st index is the father slot. - for (i = 0; i < 2; i++) + for (i = 0; i < DAYCARE_MON_COUNT; i++) { species[i] = GetBoxMonData(&daycare->mons[i].mon, MON_DATA_SPECIES); if (species[i] == SPECIES_DITTO) @@ -1066,11 +1063,11 @@ static u16 DetermineEggSpeciesAndParentSlots(struct DayCare *daycare, u8 *parent } eggSpecies = GetEggSpecies(species[parentSlots[0]]); - if (eggSpecies == SPECIES_NIDORAN_F && daycare->offspringPersonality & 0x8000) + if (eggSpecies == SPECIES_NIDORAN_F && daycare->offspringPersonality & EGG_GENDER_MALE) { eggSpecies = SPECIES_NIDORAN_M; } - if (eggSpecies == SPECIES_ILLUMISE && daycare->offspringPersonality & 0x8000) + if (eggSpecies == SPECIES_ILLUMISE && daycare->offspringPersonality & EGG_GENDER_MALE) { eggSpecies = SPECIES_VOLBEAT; } @@ -1078,19 +1075,19 @@ static u16 DetermineEggSpeciesAndParentSlots(struct DayCare *daycare, u8 *parent // Make Ditto the "mother" slot if the other daycare mon is male. if (species[parentSlots[1]] == SPECIES_DITTO && GetBoxMonGender(&daycare->mons[parentSlots[0]].mon) != MON_FEMALE) { - u8 temp = parentSlots[1]; + u8 ditto = parentSlots[1]; parentSlots[1] = parentSlots[0]; - parentSlots[0] = temp; + parentSlots[0] = ditto; } return eggSpecies; } -static void _GiveEggFromDaycare(struct DayCare *daycare) // give_egg +static void _GiveEggFromDaycare(struct DayCare *daycare) { struct Pokemon egg; u16 species; - u8 parentSlots[2]; // 0th index is "mother" daycare slot, 1st is "father" + u8 parentSlots[DAYCARE_MON_COUNT]; bool8 isEgg; species = DetermineEggSpeciesAndParentSlots(daycare, parentSlots); @@ -1118,7 +1115,7 @@ void CreateEgg(struct Pokemon *mon, u16 species, bool8 setHotSpringsLocation) u8 metLocation; u8 isEgg; - CreateMon(mon, species, EGG_HATCH_LEVEL, 0x20, FALSE, 0, FALSE, 0); + CreateMon(mon, species, EGG_HATCH_LEVEL, 32, FALSE, 0, OT_ID_PLAYER_ID, 0); metLevel = 0; ball = ITEM_POKE_BALL; language = LANGUAGE_JAPANESE; @@ -1129,7 +1126,7 @@ void CreateEgg(struct Pokemon *mon, u16 species, bool8 setHotSpringsLocation) SetMonData(mon, MON_DATA_LANGUAGE, &language); if (setHotSpringsLocation) { - metLocation = 253; // hot springs; see PokemonSummaryScreen_PrintEggTrainerMemo + metLocation = METLOC_SPECIAL_EGG; SetMonData(mon, MON_DATA_MET_LOCATION, &metLocation); } @@ -1145,7 +1142,7 @@ static void SetInitialEggData(struct Pokemon *mon, u16 species, struct DayCare * u8 language; personality = daycare->offspringPersonality | (Random() << 16); - CreateMon(mon, species, EGG_HATCH_LEVEL, 0x20, TRUE, personality, FALSE, 0); + CreateMon(mon, species, EGG_HATCH_LEVEL, 32, TRUE, personality, OT_ID_PLAYER_ID, 0); metLevel = 0; ball = ITEM_POKE_BALL; language = LANGUAGE_JAPANESE; @@ -1161,7 +1158,7 @@ void GiveEggFromDaycare(void) _GiveEggFromDaycare(&gSaveBlock1Ptr->daycare); } -static bool8 _DoEggActions_CheckHatch(struct DayCare *daycare) +static bool8 TryProduceOrHatchEgg(struct DayCare *daycare) { u32 i, validEggs = 0; @@ -1171,15 +1168,16 @@ static bool8 _DoEggActions_CheckHatch(struct DayCare *daycare) daycare->mons[i].steps++, validEggs++; } - // try to trigger poke sex - if (daycare->offspringPersonality == 0 && validEggs == 2 && (daycare->mons[1].steps & 0xFF) == 0xFF) + // Check if an egg should be produced + if (daycare->offspringPersonality == 0 && validEggs == DAYCARE_MON_COUNT && (daycare->mons[1].steps & 0xFF) == 0xFF) { - u8 loveScore = GetDaycareCompatibilityScore(daycare); - if (loveScore > (Random() * 100u) / USHRT_MAX) + u8 compatability = GetDaycareCompatibilityScore(daycare); + if (compatability > (Random() * 100u) / USHRT_MAX) TriggerPendingDaycareEgg(); } - if (++daycare->stepCounter == 255) // hatch an egg + // Hatch Egg + if (++daycare->stepCounter == 255) { u32 steps; @@ -1191,10 +1189,9 @@ static bool8 _DoEggActions_CheckHatch(struct DayCare *daycare) continue; steps = GetMonData(&gPlayerParty[i], MON_DATA_FRIENDSHIP); - if (steps != 0) // subtract needed steps + if (steps != 0) { steps -= 1; - SetMonData(&gPlayerParty[i], MON_DATA_FRIENDSHIP, &steps); } else // hatch the egg @@ -1212,7 +1209,7 @@ bool8 ShouldEggHatch(void) { if (GetBoxMonData(&gSaveBlock1Ptr->route5DayCareMon.mon, MON_DATA_SANITY_HAS_SPECIES)) gSaveBlock1Ptr->route5DayCareMon.steps++; - return _DoEggActions_CheckHatch(&gSaveBlock1Ptr->daycare); + return TryProduceOrHatchEgg(&gSaveBlock1Ptr->daycare); } static bool8 IsEggPending(struct DayCare *daycare) @@ -1226,22 +1223,22 @@ static bool8 IsEggPending(struct DayCare *daycare) static void _GetDaycareMonNicknames(struct DayCare *daycare) { u8 text[12]; - if (GetBoxMonData(&daycare->mons[0].mon, MON_DATA_SPECIES) != 0) + if (GetBoxMonData(&daycare->mons[0].mon, MON_DATA_SPECIES) != SPECIES_NONE) { - GetBoxMonNick(&daycare->mons[0].mon, gStringVar1); + DayCare_GetBoxMonNickname(&daycare->mons[0].mon, gStringVar1); GetBoxMonData(&daycare->mons[0].mon, MON_DATA_OT_NAME, text); StringCopy(gStringVar3, text); } - if (GetBoxMonData(&daycare->mons[1].mon, MON_DATA_SPECIES) != 0) + if (GetBoxMonData(&daycare->mons[1].mon, MON_DATA_SPECIES) != SPECIES_NONE) { - GetBoxMonNick(&daycare->mons[1].mon, gStringVar2); + DayCare_GetBoxMonNickname(&daycare->mons[1].mon, gStringVar2); } } -u16 GetSelectedMonNickAndSpecies(void) +u16 GetSelectedMonNicknameAndSpecies(void) { - GetBoxMonNick(&gPlayerParty[GetCursorSelectionMonId()].box, gStringVar1); + DayCare_GetBoxMonNickname(&gPlayerParty[GetCursorSelectionMonId()].box, gStringVar1); return GetBoxMonData(&gPlayerParty[GetCursorSelectionMonId()].box, MON_DATA_SPECIES); } @@ -1252,26 +1249,19 @@ void GetDaycareMonNicknames(void) u8 GetDaycareState(void) { - // The daycare can be in 4 possible states: - // 0: default state--no deposited mons, no egg - // 1: there is an egg waiting for the player to pick it up - // 2: there is a single pokemon in the daycare - // 3: there are two pokemon in the daycare, no egg - u8 numMons; if (IsEggPending(&gSaveBlock1Ptr->daycare)) { - // There is an Egg waiting for the player. - return 1; + return DAYCARE_EGG_WAITING; } numMons = CountPokemonInDaycare(&gSaveBlock1Ptr->daycare); if (numMons != 0) { - return numMons + 1; + return numMons + 1; // DAYCARE_ONE_MON or DAYCARE_TWO_MONS } - return 0; + return DAYCARE_NO_MONS; } u8 GetDaycarePokemonCount(void) @@ -1283,15 +1273,15 @@ u8 GetDaycarePokemonCount(void) return 0; } +// Determine if the two given egg group lists contain any of the +// same egg groups. static bool8 EggGroupsOverlap(u16 *eggGroups1, u16 *eggGroups2) { - // Determine if the two given egg group lists contain any of the - // same egg groups. s32 i, j; - for (i = 0; i < 2; i++) + for (i = 0; i < EGG_GROUPS_PER_MON; i++) { - for (j = 0; j < 2; j++) + for (j = 0; j < EGG_GROUPS_PER_MON; j++) { if (eggGroups1[i] == eggGroups2[j]) return TRUE; @@ -1304,12 +1294,12 @@ static bool8 EggGroupsOverlap(u16 *eggGroups1, u16 *eggGroups2) static u8 GetDaycareCompatibilityScore(struct DayCare *daycare) { u32 i; - u16 eggGroups[2][2]; - u16 species[2]; - u32 trainerIds[2]; - u32 genders[2]; + u16 eggGroups[DAYCARE_MON_COUNT][EGG_GROUPS_PER_MON]; + u16 species[DAYCARE_MON_COUNT]; + u32 trainerIds[DAYCARE_MON_COUNT]; + u32 genders[DAYCARE_MON_COUNT]; - for (i = 0; i < 2; i++) + for (i = 0; i < DAYCARE_MON_COUNT; i++) { u32 personality; @@ -1323,41 +1313,42 @@ static u8 GetDaycareCompatibilityScore(struct DayCare *daycare) // check unbreedable egg group if (eggGroups[0][0] == EGG_GROUP_UNDISCOVERED || eggGroups[1][0] == EGG_GROUP_UNDISCOVERED) - return 0; + return PARENTS_INCOMPATIBLE; // two Ditto can't breed if (eggGroups[0][0] == EGG_GROUP_DITTO && eggGroups[1][0] == EGG_GROUP_DITTO) - return 0; + return PARENTS_INCOMPATIBLE; - // now that we checked, one ditto can breed with any other mon + // one parent is Ditto if (eggGroups[0][0] == EGG_GROUP_DITTO || eggGroups[1][0] == EGG_GROUP_DITTO) { - if (trainerIds[0] == trainerIds[1]) // same trainer - return 20; + if (trainerIds[0] == trainerIds[1]) + return PARENTS_LOW_COMPATIBILITY; - return 50; // different trainers, more chance of poke sex + return PARENTS_MED_COMPATABILITY; } + // neither parent is Ditto else { - if (genders[0] == genders[1]) // no homo - return 0; + if (genders[0] == genders[1]) + return PARENTS_INCOMPATIBLE; if (genders[0] == MON_GENDERLESS || genders[1] == MON_GENDERLESS) - return 0; - if (!EggGroupsOverlap(eggGroups[0], eggGroups[1])) // not compatible with each other - return 0; + return PARENTS_INCOMPATIBLE; + if (!EggGroupsOverlap(eggGroups[0], eggGroups[1])) + return PARENTS_INCOMPATIBLE; - if (species[0] == species[1]) // same species + if (species[0] == species[1]) { - if (trainerIds[0] == trainerIds[1]) // same species and trainer - return 50; + if (trainerIds[0] == trainerIds[1]) + return PARENTS_MED_COMPATABILITY; // same species, same trainer - return 70; // different trainers, same species + return PARENTS_MAX_COMPATABILITY; // same species, different trainers } else { - if (trainerIds[0] != trainerIds[1]) // different trainers, different species - return 50; + if (trainerIds[0] != trainerIds[1]) + return PARENTS_MED_COMPATABILITY; // different species, different trainers - return 20; // different species, same trainer + return PARENTS_LOW_COMPATIBILITY; // different species, same trainer } } } @@ -1374,13 +1365,13 @@ void SetDaycareCompatibilityString(void) relationshipScore = GetDaycareCompatibilityScoreFromSave(); whichString = 0; - if (relationshipScore == 0) + if (relationshipScore == PARENTS_INCOMPATIBLE) whichString = 3; - if (relationshipScore == 20) + if (relationshipScore == PARENTS_LOW_COMPATIBILITY) whichString = 2; - if (relationshipScore == 50) + if (relationshipScore == PARENTS_MED_COMPATABILITY) whichString = 1; - if (relationshipScore == 70) + if (relationshipScore == PARENTS_MAX_COMPATABILITY) whichString = 0; StringCopy(gStringVar4, sCompatibilityMessages[whichString]); @@ -1389,20 +1380,20 @@ void SetDaycareCompatibilityString(void) bool8 NameHasGenderSymbol(const u8 *name, u8 genderRatio) { u8 i; - u8 symbolsCount[2]; // male, female - symbolsCount[0] = symbolsCount[1] = 0; + u8 symbolsCount[GENDER_COUNT]; + symbolsCount[MALE] = symbolsCount[FEMALE] = 0; for (i = 0; name[i] != EOS; i++) { if (name[i] == CHAR_MALE) - symbolsCount[0]++; + symbolsCount[MALE]++; if (name[i] == CHAR_FEMALE) - symbolsCount[1]++; + symbolsCount[FEMALE]++; } - if (genderRatio == MON_MALE && symbolsCount[0] != 0 && symbolsCount[1] == 0) + if (genderRatio == MON_MALE && symbolsCount[MALE] != 0 && symbolsCount[FEMALE] == 0) return TRUE; - if (genderRatio == MON_FEMALE && symbolsCount[1] != 0 && symbolsCount[0] == 0) + if (genderRatio == MON_FEMALE && symbolsCount[FEMALE] != 0 && symbolsCount[MALE] == 0) return TRUE; return FALSE; @@ -1431,13 +1422,13 @@ static u8 *AppendMonGenderSymbol(u8 *name, struct BoxPokemon *boxMon) static void GetDaycareLevelMenuText(struct DayCare *daycare, u8 *dest) { - u8 monNames[2][20]; + u8 monNames[DAYCARE_MON_COUNT][20]; u8 i; *dest = EOS; - for (i = 0; i < 2; i++) + for (i = 0; i < DAYCARE_MON_COUNT; i++) { - GetBoxMonNick(&daycare->mons[i].mon, monNames[i]); + DayCare_GetBoxMonNickname(&daycare->mons[i].mon, monNames[i]); AppendMonGenderSymbol(monNames[i], &daycare->mons[i].mon); } @@ -1455,7 +1446,7 @@ static void GetDaycareLevelMenuLevelText(struct DayCare *daycare, u8 *dest) u8 text[20]; *dest = EOS; - for (i = 0; i < 2; i++) + for (i = 0; i < DAYCARE_MON_COUNT; i++) { StringAppend(dest, gText_Lv); level = GetLevelAfterDaycareSteps(&daycare->mons[i].mon, daycare->mons[i].steps); @@ -1487,13 +1478,13 @@ static void DaycareAddTextPrinter(u8 windowId, const u8 *text, u32 x, u32 y) AddTextPrinter(&printer, 0xFF, NULL); } -static void DaycarePrintMonNick(struct DayCare *daycare, u8 windowId, u32 daycareSlotId, u32 y) +static void DaycarePrintMonNickname(struct DayCare *daycare, u8 windowId, u32 daycareSlotId, u32 y) { - u8 nick[POKEMON_NAME_LENGTH * 2]; + u8 nickname[POKEMON_NAME_LENGTH * 2]; - GetBoxMonNick(&daycare->mons[daycareSlotId].mon, nick); - AppendMonGenderSymbol(nick, &daycare->mons[daycareSlotId].mon); - DaycareAddTextPrinter(windowId, nick, 8, y); + DayCare_GetBoxMonNickname(&daycare->mons[daycareSlotId].mon, nickname); + AppendMonGenderSymbol(nickname, &daycare->mons[daycareSlotId].mon); + DaycareAddTextPrinter(windowId, nickname, 8, y); } static void DaycarePrintMonLvl(struct DayCare *daycare, u8 windowId, u32 daycareSlotId, u32 y) @@ -1519,7 +1510,7 @@ static void DaycarePrintMonInfo(u8 windowId, s32 daycareSlotId, u8 y) { if (daycareSlotId < (unsigned) DAYCARE_MON_COUNT) { - DaycarePrintMonNick(&gSaveBlock1Ptr->daycare, windowId, daycareSlotId, y); + DaycarePrintMonNickname(&gSaveBlock1Ptr->daycare, windowId, daycareSlotId, y); DaycarePrintMonLvl(&gSaveBlock1Ptr->daycare, windowId, daycareSlotId, y); } } @@ -1539,8 +1530,8 @@ static void Task_HandleDaycareLevelMenuInput(u8 taskId) case 1: gSpecialVar_Result = input; break; - case 5: - gSpecialVar_Result = 2; + case DAYCARE_LEVEL_MENU_EXIT: + gSpecialVar_Result = DAYCARE_EXITED_LEVEL_MENU; break; } DestroyListMenuTask(gTasks[taskId].tMenuListTaskId, NULL, NULL); @@ -1551,7 +1542,7 @@ static void Task_HandleDaycareLevelMenuInput(u8 taskId) } else if (gMain.newKeys & B_BUTTON) { - gSpecialVar_Result = 2; + gSpecialVar_Result = DAYCARE_EXITED_LEVEL_MENU; DestroyListMenuTask(gTasks[taskId].tMenuListTaskId, NULL, NULL); ClearStdWindowAndFrame(gTasks[taskId].tWindowId, TRUE); RemoveWindow(gTasks[taskId].tWindowId); @@ -1697,7 +1688,7 @@ static void AddHatchedMonToParty(u8 id) GetSetPokedexFlag(pokeNum, FLAG_SET_SEEN); GetSetPokedexFlag(pokeNum, FLAG_SET_CAUGHT); - GetMonNick(mon, gStringVar1); + DayCare_GetMonNickname(mon, gStringVar1); ball = ITEM_POKE_BALL; SetMonData(mon, MON_DATA_POKEBALL, &ball); @@ -1722,7 +1713,7 @@ static bool8 sub_8046E34(struct DayCare *daycare, u8 daycareId) u8 nick[0x20]; struct DaycareMon *daycareMon = &daycare->mons[daycareId]; - GetBoxMonNick(&daycareMon->mon, nick); + DayCare_GetBoxMonNickname(&daycareMon->mon, nick); if (daycareMon->mail.message.itemId != 0 && (StringCompare(nick, daycareMon->mail.monName) != 0 || StringCompare(gSaveBlock2Ptr->playerName, daycareMon->mail.OT_name) != 0)) @@ -1963,7 +1954,7 @@ static void CB2_EggHatch_1(void) } break; case 5: - GetMonNick(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar1); + DayCare_GetMonNickname(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar1); StringExpandPlaceholders(gStringVar4, gText_HatchedFromEgg); EggHatchPrintMessage(sEggHatchData->windowId, gStringVar4, 0, 3, 0xFF); PlayFanfare(MUS_FANFA5); @@ -1980,7 +1971,7 @@ static void CB2_EggHatch_1(void) sEggHatchData->CB2_state++; break; case 8: - GetMonNick(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar1); + DayCare_GetMonNickname(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar1); StringExpandPlaceholders(gStringVar4, gText_NickHatchPrompt); EggHatchPrintMessage(sEggHatchData->windowId, gStringVar4, 0, 2, 1); sEggHatchData->CB2_state++; @@ -1997,7 +1988,7 @@ static void CB2_EggHatch_1(void) switch (Menu_ProcessInputNoWrapClearOnChoose()) { case 0: - GetMonNick(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar3); + DayCare_GetMonNickname(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar3); species = GetMonData(&gPlayerParty[sEggHatchData->eggPartyID], MON_DATA_SPECIES); gender = GetMonGender(&gPlayerParty[sEggHatchData->eggPartyID]); personality = GetMonData(&gPlayerParty[sEggHatchData->eggPartyID], MON_DATA_PERSONALITY, 0); diff --git a/src/graphics.c b/src/graphics.c new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/src/graphics.c diff --git a/src/item_menu.c b/src/item_menu.c new file mode 100644 index 000000000..ffba2eae9 --- /dev/null +++ b/src/item_menu.c @@ -0,0 +1,2400 @@ +#include "global.h" +#include "gflib.h" +#include "bag.h" +#include "battle_controllers.h" +#include "berry_pouch.h" +#include "decompress.h" +#include "event_scripts.h" +#include "event_object_80688E4.h" +#include "field_player_avatar.h" +#include "graphics.h" +#include "help_system.h" +#include "item.h" +#include "item_menu.h" +#include "item_menu_icons.h" +#include "item_use.h" +#include "link.h" +#include "list_menu.h" +#include "load_save.h" +#include "mail_data.h" +#include "map_name_popup.h" +#include "menu.h" +#include "menu_indicators.h" +#include "money.h" +#include "new_menu_helpers.h" +#include "overworld.h" +#include "party_menu.h" +#include "pokemon_storage_system.h" +#include "scanline_effect.h" +#include "script.h" +#include "shop.h" +#include "strings.h" +#include "teachy_tv.h" +#include "tm_case.h" +#include "constants/items.h" +#include "constants/songs.h" + +#define FREE_IF_SET(ptr) ({ if (ptr) Free(ptr); }) + +struct BagMenuAlloc +{ + MainCallback exitCB; + u8 itemOriginalLocation; + u8 pocketSwitchMode:4; + u8 itemMenuIcon:2; + u8 inhibitItemDescriptionPrint:2; + u16 contextMenuSelectedItem; + u8 pocketScrollArrowsTask; + u8 pocketSwitchArrowsTask; + u8 nItems[3]; + u8 maxShowed[3]; + u8 data[4]; +}; + +struct BagSlots +{ + struct ItemSlot bagPocket_Items[BAG_ITEMS_COUNT]; + struct ItemSlot bagPocket_KeyItems[BAG_KEYITEMS_COUNT]; + struct ItemSlot bagPocket_PokeBalls[BAG_POKEBALLS_COUNT]; + u16 itemsAbove[3]; + u16 cursorPos[3]; + u16 registeredItem; + u16 pocket; +}; + +EWRAM_DATA struct BagStruct gBagMenuState = {}; +static EWRAM_DATA struct BagMenuAlloc * sBagMenuDisplay = NULL; +static EWRAM_DATA void * sBagBgTilemapBuffer = NULL; +static EWRAM_DATA struct ListMenuItem * sListMenuItems = NULL; +static EWRAM_DATA u8 (*sListMenuItemStrings)[19] = NULL; +static EWRAM_DATA u8 sContextMenuItemsBuffer[4] = {}; +static EWRAM_DATA const u8 *sContextMenuItemsPtr = NULL; +static EWRAM_DATA u8 sContextMenuNumItems = 0; +static EWRAM_DATA struct BagSlots * sBackupPlayerBag = NULL; +EWRAM_DATA u16 gSpecialVar_ItemId = ITEM_NONE; + +static void CB2_OpenBagMenu(void); +static bool8 LoadBagMenuGraphics(void); +static void FadeOutOfBagMenu(void); +static void Task_WaitFadeOutOfBagMenu(u8 taskId); +static void NullBagMenuBufferPtrs(void); +static bool8 BagMenuInitBgsAndAllocTilemapBuffer(void); +static bool8 DoLoadBagGraphics(void); +static u8 CreateBagInputHandlerTask(u8 location); +static bool8 TryAllocListMenuBuffers(void); +static void Bag_BuildListMenuTemplate(u8 pocket); +static void BagListMenuGetItemNameColored(u8 *dest, u16 itemId); +static void BagListMenuMoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list); +static void BagListMenuItemPrintFunc(u8 windowId, s32 itemId, u8 y); +static void bag_menu_print_cursor(u8 y, u8 colorIdx); +static void PrintBagPocketName(void); +static void PrintItemDescriptionOnMessageWindow(s32 itemIndex); +static void CreatePocketScrollArrowPair(void); +static void CreatePocketSwitchArrowPair(void); +static void BagDestroyPocketSwitchArrowPair(void); +static void CalculateInitialCursorPosAndItemsAbove(void); +static void UpdatePocketScrollPositions(void); +static void DestroyBagMenuResources(void); +static void Task_ItemMenu_WaitFadeAndSwitchToExitCallback(u8 taskId); +static void Task_AnimateWin0v(u8 taskId); +static void ShowBagOrBeginWin0OpenTask(void); +static void All_CalculateNItemsAndMaxShowed(void); +static void Task_BagMenu_HandleInput(u8 taskId); +static void Task_ItemContextMenuByLocation(u8 taskId); +static void Bag_FillMessageBoxWithPalette(u32 a0); +static u8 ProcessPocketSwitchInput(u8 taskId, u8 pocketId); +static void SwitchPockets(u8 taskId, s16 direction, bool16 a2); +static void Task_AnimateSwitchPockets(u8 taskId); +static void BeginMovingItemInPocket(u8 taskId, s16 itemIndex); +static void Task_MoveItemInPocket_HandleInput(u8 taskId); +static void ExecuteMoveItemInPocket(u8 taskId, u32 itemIndex); +static void AbortMovingItemInPocket(u8 taskId, u32 itemIndex); +static void CopyBagListBgTileRowToTilemapBuffer(u8 a0); +static void Task_ItemContext_FieldOrBattle(u8 taskId); +static void Task_FieldItemContextMenuHandleInput(u8 taskId); +static void Task_ItemMenuAction_Use(u8 taskId); +static void Task_ItemMenuAction_Toss(u8 taskId); +static void Task_ConfirmTossItems(u8 taskId); +static void Task_TossItem_No(u8 taskId); +static void Task_SelectQuantityToToss(u8 taskId); +static void Task_TossItem_Yes(u8 taskId); +static void Task_WaitAB_RedrawAndReturnToBag(u8 taskId); +static void Task_ItemMenuAction_ToggleSelect(u8 taskId); +static void Task_ItemMenuAction_Give(u8 taskId); +static void Task_PrintThereIsNoPokemon(u8 taskId); +static void Task_ItemMenuAction_Cancel(u8 taskId); +static void Task_PrintItemCantBeHeld(u8 taskId); +static void Task_WaitAButtonAndCloseContextMenu(u8 taskId); +static void Task_ItemMenuAction_BattleUse(u8 taskId); +static void Task_ItemContext_FieldGive(u8 taskId); +static void GoToTMCase_Give(void); +static void GoToBerryPouch_Give(void); +static void ReturnToBagMenuFromSubmenu_Give(void); +static void Task_ItemContext_PcBoxGive(u8 taskId); +static void GoToTMCase_PCBox(void); +static void GoToBerryPouch_PCBox(void); +static void ReturnToBagMenuFromSubmenu_PCBox(void); +static void Task_ItemContext_Sell(u8 taskId); +static void GoToTMCase_Sell(void); +static void GoToBerryPouch_Sell(void); +static void ReturnToBagMenuFromSubmenu_Sell(void); +static void Task_PrintSaleConfirmationText(u8 taskId); +static void Task_ShowSellYesNoMenu(u8 taskId); +static void Task_SellItem_No(u8 taskId); +static void Task_InitSaleQuantitySelectInterface(u8 taskId); +static void UpdateSalePriceDisplay(s32 price); +static void Task_SelectQuantityToSell(u8 taskId); +static void Task_SellItem_Yes(u8 taskId); +static void Task_FinalizeSaleToShop(u8 taskId); +static void Task_WaitPressAB_AfterSell(u8 taskId); +static void Task_ItemContext_Deposit(u8 taskId); +static void Task_SelectQuantityToDeposit(u8 taskId); +static void Task_TryDoItemDeposit(u8 taskId); +static bool8 BagIsTutorial(void); +static void Task_Bag_OldManTutorial(u8 taskId); +static void Task_Pokedude_FadeFromBag(u8 taskId); +static void Task_Pokedude_WaitFadeAndExitBag(u8 taskId); +static void Task_Bag_TeachyTvRegister(u8 taskId); +static void Task_Bag_TeachyTvCatching(u8 taskId); +static void Task_Bag_TeachyTvStatus(u8 taskId); +static void Task_Bag_TeachyTvTMs(u8 taskId); + +static const struct BgTemplate sBgTemplates[2] = { + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0x000 + }, { + .bg = 1, + .charBaseIndex = 3, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0x000 + } +}; + +static const u8 *const sPocketNames[] = { + gText_Items2, + gText_KeyItems2, + gText_PokeBalls2 +}; + +static const u16 sBagListBgTiles[][18] = { + INCBIN_U16("graphics/item_menu/bagmap_0.bin"), + INCBIN_U16("graphics/item_menu/bagmap_1.bin"), + INCBIN_U16("graphics/item_menu/bagmap_2.bin"), + INCBIN_U16("graphics/item_menu/bagmap_3.bin"), + INCBIN_U16("graphics/item_menu/bagmap_4.bin"), + INCBIN_U16("graphics/item_menu/bagmap_5.bin"), + INCBIN_U16("graphics/item_menu/bagmap_6.bin"), + INCBIN_U16("graphics/item_menu/bagmap_7.bin"), + INCBIN_U16("graphics/item_menu/bagmap_8.bin"), + INCBIN_U16("graphics/item_menu/bagmap_9.bin"), + INCBIN_U16("graphics/item_menu/bagmap_A.bin"), + INCBIN_U16("graphics/item_menu/bagmap_B.bin") +}; + +static const struct MenuAction sItemMenuContextActions[] = { + [ITEMMENUACTION_USE] = {gOtherText_Use, {.void_u8 = Task_ItemMenuAction_Use}}, + [ITEMMENUACTION_TOSS] = {gOtherText_Toss, {.void_u8 = Task_ItemMenuAction_Toss}}, + [ITEMMENUACTION_REGISTER] = {gOtherText_Register, {.void_u8 = Task_ItemMenuAction_ToggleSelect}}, + [ITEMMENUACTION_GIVE] = {gOtherText_Give, {.void_u8 = Task_ItemMenuAction_Give}}, + [ITEMMENUACTION_CANCEL] = {gFameCheckerText_Cancel, {.void_u8 = Task_ItemMenuAction_Cancel}}, + [ITEMMENUACTION_BATTLE_USE] = {gOtherText_Use, {.void_u8 = Task_ItemMenuAction_BattleUse}}, + [ITEMMENUACTION_CHECK] = {gOtherText_Check, {.void_u8 = Task_ItemMenuAction_Use}}, + [ITEMMENUACTION_OPEN] = {gOtherText_Open, {.void_u8 = Task_ItemMenuAction_Use}}, + [ITEMMENUACTION_OPEN_BERRIES] = {gOtherText_Open, {.void_u8 = Task_ItemMenuAction_BattleUse}}, + [ITEMMENUACTION_WALK] = {gOtherText_Walk, {.void_u8 = Task_ItemMenuAction_Use}}, + [ITEMMENUACTION_DESELECT] = {gOtherText_Deselect, {.void_u8 = Task_ItemMenuAction_ToggleSelect}}, + [ITEMMENUACTION_DUMMY] = {gString_Dummy, {.void_u8 = NULL}} +}; + +static const u8 sContextMenuItems_Field[][4] = { + { + ITEMMENUACTION_USE, + ITEMMENUACTION_GIVE, + ITEMMENUACTION_TOSS, + ITEMMENUACTION_CANCEL + }, { + ITEMMENUACTION_USE, + ITEMMENUACTION_REGISTER, + ITEMMENUACTION_CANCEL, + ITEMMENUACTION_DUMMY + }, { + ITEMMENUACTION_GIVE, + ITEMMENUACTION_TOSS, + ITEMMENUACTION_CANCEL, + ITEMMENUACTION_DUMMY + } +}; + +static const u8 sContextMenuItems_CheckGiveTossCancel[] = { + ITEMMENUACTION_CHECK, + ITEMMENUACTION_GIVE, + ITEMMENUACTION_TOSS, + ITEMMENUACTION_CANCEL +}; + +static const u8 sContextMenuItems_GiveIfNotKeyItemPocket[][2] = { + { + ITEMMENUACTION_GIVE, + ITEMMENUACTION_CANCEL + }, { + ITEMMENUACTION_CANCEL, + ITEMMENUACTION_DUMMY + }, { + ITEMMENUACTION_GIVE, + ITEMMENUACTION_CANCEL + } +}; + +static const u8 sContextMenuItems_Open[] = { + ITEMMENUACTION_OPEN, + ITEMMENUACTION_CANCEL +}; + +static const u8 sContextMenuItems_BattleUse[] = { + ITEMMENUACTION_BATTLE_USE, + ITEMMENUACTION_CANCEL +}; + +static const u8 sContextMenuItems_Cancel[] = { + ITEMMENUACTION_CANCEL, + ITEMMENUACTION_DUMMY +}; + +static const TaskFunc sItemContextTaskFuncs[] = { + [ITEMMENULOCATION_FIELD] = Task_ItemContext_FieldOrBattle, + [ITEMMENULOCATION_PARTY] = Task_ItemContext_FieldGive, + [ITEMMENULOCATION_SHOP] = Task_ItemContext_Sell, + [ITEMMENULOCATION_ITEMPC] = Task_ItemContext_Deposit, + [ITEMMENULOCATION_PCBOX] = Task_ItemContext_PcBoxGive, + [ITEMMENULOCATION_BATTLE] = Task_ItemContext_FieldOrBattle, + [ITEMMENULOCATION_OLD_MAN] = NULL +}; + +static const struct YesNoFuncTable sYesNoMenu_Toss = { + Task_TossItem_Yes, + Task_TossItem_No +}; + +static const struct YesNoFuncTable sYesNoMenu_Sell = { + Task_SellItem_Yes, + Task_SellItem_No +}; + +static const u8 sListItemTextColor_RegularItem[] = _("{COLOR_HIGHLIGHT_SHADOW RED TRANSPARENT GREEN}"); + +static const u8 sListItemTextColor_TmCase_BerryPouch[] = _("{COLOR_HIGHLIGHT_SHADOW LIGHT_GRAY TRANSPARENT BLACK}"); + +static const struct ScrollArrowsTemplate sPocketSwitchArrowPairTemplate = { + .firstArrowType = SCROLL_ARROW_LEFT, + .firstX = 8, + .firstY = 72, + .secondArrowType = SCROLL_ARROW_RIGHT, + .secondX = 72, + .secondY = 72, + .fullyUpThreshold = 0, + .fullyDownThreshold = 2, + .tileTag = 111, + .palTag = 111, + .palNum = 0, +}; + +static const u8 sBlit_SelectButton[] = INCBIN_U8("graphics/interface/select_button.4bpp"); + +void GoToBagMenu(u8 location, u8 pocket, MainCallback bagCallback) +{ + u8 i; + + NullBagMenuBufferPtrs(); + sBagMenuDisplay = Alloc(sizeof(struct BagMenuAlloc)); + if (sBagMenuDisplay == NULL) + SetMainCallback2(bagCallback); + else + { + if (location != ITEMMENULOCATION_LAST) + gBagMenuState.location = location; + if (bagCallback != NULL) + gBagMenuState.bagCallback = bagCallback; + sBagMenuDisplay->exitCB = NULL; + sBagMenuDisplay->itemOriginalLocation = 0xFF; + sBagMenuDisplay->itemMenuIcon = 0; + sBagMenuDisplay->inhibitItemDescriptionPrint = FALSE; + sBagMenuDisplay->pocketScrollArrowsTask = 0xFF; + sBagMenuDisplay->pocketSwitchArrowsTask = 0xFF; + if (location == ITEMMENULOCATION_ITEMPC) + sBagMenuDisplay->pocketSwitchMode = 1; + else if (location == ITEMMENULOCATION_OLD_MAN) + sBagMenuDisplay->pocketSwitchMode = 2; + else + sBagMenuDisplay->pocketSwitchMode = 0; + for (i = 0; i < 4; i++) + { + sBagMenuDisplay->data[i] = 0; + } + if (pocket == OPEN_BAG_ITEMS || pocket == OPEN_BAG_KEYITEMS || pocket == OPEN_BAG_POKEBALLS) + gBagMenuState.pocket = pocket; + gTextFlags.autoScroll = FALSE; + gSpecialVar_ItemId = ITEM_NONE; + SetMainCallback2(CB2_OpenBagMenu); + } +} + +void CB2_BagMenuFromStartMenu(void) +{ + GoToBagMenu(ITEMMENULOCATION_FIELD, OPEN_BAG_LAST, CB2_ReturnToFieldWithOpenMenu); +} + +void CB2_BagMenuFromBattle(void) +{ + GoToBagMenu(ITEMMENULOCATION_BATTLE, OPEN_BAG_LAST, SetCB2ToReshowScreenAfterMenu2); +} + +static void CB2_BagMenuRun(void) +{ + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + DoScheduledBgTilemapCopiesToVram(); + UpdatePaletteFade(); +} + +static void VBlankCB_BagMenuRun(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +static void CB2_OpenBagMenu(void) +{ + while (1) + { + if ((u8)sub_80BF72C() == TRUE) + break; + if (LoadBagMenuGraphics() == TRUE) + break; + if (MenuHelpers_LinkSomething() == TRUE) + break; + } +} + +static bool8 LoadBagMenuGraphics(void) +{ + u8 taskId; + + switch (gMain.state) + { + case 0: + SetVBlankHBlankCallbacksToNull(); + ClearScheduledBgCopiesToVram(); + gMain.state++; + break; + case 1: + ScanlineEffect_Stop(); + gMain.state++; + break; + case 2: + FreeAllSpritePalettes(); + gMain.state++; + break; + case 3: + ResetPaletteFade(); + gPaletteFade.bufferTransferDisabled = TRUE; + gMain.state++; + break; + case 4: + ResetSpriteData(); + gMain.state++; + break; + case 5: + ResetItemMenuIconState(); + gMain.state++; + break; + case 6: + if (!MenuHelpers_LinkSomething()) + { + ResetTasks(); + } + gMain.state++; + break; + case 7: + if (BagMenuInitBgsAndAllocTilemapBuffer()) + { + sBagMenuDisplay->data[0] = 0; + gMain.state++; + } + else + { + FadeOutOfBagMenu(); + return TRUE; + } + break; + case 8: + if (DoLoadBagGraphics() == TRUE) + gMain.state++; + break; + case 9: + InitBagWindows(); + gMain.state++; + break; + case 10: + All_CalculateNItemsAndMaxShowed(); + CalculateInitialCursorPosAndItemsAbove(); + UpdatePocketScrollPositions(); + gMain.state++; + break; + case 11: + if (!TryAllocListMenuBuffers()) + { + FadeOutOfBagMenu(); + return TRUE; + } + gMain.state++; + break; + case 12: + Bag_BuildListMenuTemplate(gBagMenuState.pocket); + gMain.state++; + break; + case 13: + if (gBagMenuState.location != ITEMMENULOCATION_ITEMPC) + PrintBagPocketName(); + else + BagDrawDepositItemTextBox(); + gMain.state++; + break; + case 14: + taskId = CreateBagInputHandlerTask(gBagMenuState.location); + gTasks[taskId].data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]); + gTasks[taskId].data[3] = 0; + gTasks[taskId].data[8] = 0; + gMain.state++; + break; + case 15: + CreateBagOrSatchelSprite(gBagMenuState.pocket); + gMain.state++; + break; + case 16: + CreatePocketScrollArrowPair(); + CreatePocketSwitchArrowPair(); + gMain.state++; + break; + case 17: + ItemMenuIcons_CreateInsertIndicatorBarHidden(); + gMain.state++; + break; + case 18: + ShowBagOrBeginWin0OpenTask(); + gMain.state++; + break; + case 19: + if (gBagMenuState.location == ITEMMENULOCATION_ITEMPC) + HelpSystem_SetSomeVariable2(29); + else + HelpSystem_SetSomeVariable2(9); + gPaletteFade.bufferTransferDisabled = FALSE; + gMain.state++; + break; + default: + SetVBlankCallback(VBlankCB_BagMenuRun); + SetMainCallback2(CB2_BagMenuRun); + return TRUE; + } + return FALSE; +} + +static void FadeOutOfBagMenu(void) +{ + BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_BLACK); + CreateTask(Task_WaitFadeOutOfBagMenu, 0); + SetVBlankCallback(VBlankCB_BagMenuRun); + SetMainCallback2(CB2_BagMenuRun); +} + +static void Task_WaitFadeOutOfBagMenu(u8 taskId) +{ + if (!gPaletteFade.active) + { + SetMainCallback2(gBagMenuState.bagCallback); + DestroyBagMenuResources(); + DestroyTask(taskId); + } +} + +static void NullBagMenuBufferPtrs(void) +{ + sBagMenuDisplay = NULL; + sBagBgTilemapBuffer = NULL; + sListMenuItems = NULL; + sListMenuItemStrings = NULL; +} + +static bool8 BagMenuInitBgsAndAllocTilemapBuffer(void) +{ + void **buff; + ResetAllBgsCoordinatesAndBgCntRegs(); + buff = &sBagBgTilemapBuffer; + *buff = Alloc(0x800); + if (*buff == NULL) + return FALSE; + memset(*buff, 0, 0x800); + ResetBgsAndClearDma3BusyFlags(FALSE); + InitBgsFromTemplates(0, sBgTemplates, NELEMS(sBgTemplates)); + SetBgTilemapBuffer(1, *buff); + ScheduleBgCopyTilemapToVram(1); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON | DISPCNT_WIN0_ON); + ShowBg(0); + ShowBg(1); + SetGpuReg(REG_OFFSET_BLDCNT, 0); + return TRUE; +} + +static bool8 DoLoadBagGraphics(void) +{ + switch (sBagMenuDisplay->data[0]) + { + case 0: + ResetTempTileDataBuffers(); + DecompressAndCopyTileDataToVram(1, gUnknown_8E830CC, 0, 0, 0); + sBagMenuDisplay->data[0]++; + break; + case 1: + if (FreeTempTileDataBuffersIfPossible() != TRUE) + { + if (gBagMenuState.location != ITEMMENULOCATION_ITEMPC) + LZDecompressWram(gUnknown_8E832C0, sBagBgTilemapBuffer); + else + LZDecompressWram(gUnknown_8E83444, sBagBgTilemapBuffer); + sBagMenuDisplay->data[0]++; + } + break; + case 2: + LoadCompressedPalette(gBagBgPalette, 0x00, 0x60); + if (!BagIsTutorial() && gSaveBlock2Ptr->playerGender != MALE) + LoadCompressedPalette(gBagBgPalette_FemaleOverride, 0x00, 0x20); + sBagMenuDisplay->data[0]++; + break; + case 3: + if (BagIsTutorial() == TRUE || gSaveBlock2Ptr->playerGender == MALE) + LoadCompressedSpriteSheet(&gSpriteSheet_Backpack); + else + LoadCompressedSpriteSheet(&gSpriteSheet_Satchel); + sBagMenuDisplay->data[0]++; + break; + case 4: + LoadCompressedSpritePalette(&gSpritePalette_BagOrSatchel); + sBagMenuDisplay->data[0]++; + break; + case 5: + LoadCompressedSpriteSheet(&gBagSwapSpriteSheet); + sBagMenuDisplay->data[0]++; + break; + default: + LoadCompressedSpritePalette(&gBagSwapSpritePalette); + sBagMenuDisplay->data[0] = 0; + return TRUE; + } + + return FALSE; +} + +static u8 CreateBagInputHandlerTask(u8 location) +{ + switch (location) + { + case ITEMMENULOCATION_OLD_MAN: + return CreateTask(Task_Bag_OldManTutorial, 0); + case ITEMMENULOCATION_TTVSCR_REGISTER: + return CreateTask(Task_Bag_TeachyTvRegister, 0); + case ITEMMENULOCATION_TTVSCR_TMS: + return CreateTask(Task_Bag_TeachyTvTMs, 0); + case ITEMMENULOCATION_TTVSCR_STATUS: + return CreateTask(Task_Bag_TeachyTvStatus, 0); + case ITEMMENULOCATION_TTVSCR_CATCHING: + return CreateTask(Task_Bag_TeachyTvCatching, 0); + default: + return CreateTask(Task_BagMenu_HandleInput, 0); + } +} + +static bool8 TryAllocListMenuBuffers(void) +{ + // The items pocket has the highest capacity, + 1 for CANCEL + sListMenuItems = Alloc((BAG_ITEMS_COUNT + 1) * sizeof(struct ListMenuItem)); + if (sListMenuItems == NULL) + return FALSE; + sListMenuItemStrings = Alloc((BAG_ITEMS_COUNT + 1) * sizeof(*sListMenuItemStrings)); + if (sListMenuItemStrings == NULL) + return FALSE; + return TRUE; +} + +static void Bag_BuildListMenuTemplate(u8 pocket) +{ + u16 i; + struct BagPocket * bagPocket = &gBagPockets[pocket]; + for (i = 0; i < sBagMenuDisplay->nItems[pocket]; i++) + { + BagListMenuGetItemNameColored(sListMenuItemStrings[i], bagPocket->itemSlots[i].itemId); + sListMenuItems[i].label = sListMenuItemStrings[i]; + sListMenuItems[i].index = i; + } + StringCopy(sListMenuItemStrings[i], sListItemTextColor_RegularItem); + StringAppend(sListMenuItemStrings[i], gFameCheckerText_Cancel); + sListMenuItems[i].label = sListMenuItemStrings[i]; + sListMenuItems[i].index = i; + gMultiuseListMenuTemplate.items = sListMenuItems; + gMultiuseListMenuTemplate.totalItems = sBagMenuDisplay->nItems[pocket] + 1; + gMultiuseListMenuTemplate.windowId = 0; + gMultiuseListMenuTemplate.header_X = 0; + gMultiuseListMenuTemplate.item_X = 9; + gMultiuseListMenuTemplate.cursor_X = 1; + gMultiuseListMenuTemplate.lettersSpacing = 0; + gMultiuseListMenuTemplate.itemVerticalPadding = 2; + gMultiuseListMenuTemplate.upText_Y = 2; + gMultiuseListMenuTemplate.maxShowed = sBagMenuDisplay->maxShowed[pocket]; + gMultiuseListMenuTemplate.fontId = 2; + gMultiuseListMenuTemplate.cursorPal = 2; + gMultiuseListMenuTemplate.fillValue = 0; + gMultiuseListMenuTemplate.cursorShadowPal = 3; + gMultiuseListMenuTemplate.moveCursorFunc = BagListMenuMoveCursorFunc; + gMultiuseListMenuTemplate.itemPrintFunc = BagListMenuItemPrintFunc; + gMultiuseListMenuTemplate.cursorKind = 0; + gMultiuseListMenuTemplate.scrollMultiple = 0; +} + +static void BagListMenuGetItemNameColored(u8 *dest, u16 itemId) +{ + if (itemId == ITEM_TM_CASE || itemId == ITEM_BERRY_POUCH) + StringCopy(dest, sListItemTextColor_TmCase_BerryPouch); + else + StringCopy(dest, sListItemTextColor_RegularItem); + StringAppend(dest, ItemId_GetName(itemId)); +} + +static void BagListMenuMoveCursorFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list) +{ + if (onInit != TRUE) + { + PlaySE(SE_BAG1); + sub_8098580(); + } + if (sBagMenuDisplay->itemOriginalLocation == 0xFF) + { + DestroyItemMenuIcon(sBagMenuDisplay->itemMenuIcon ^ 1); + if (sBagMenuDisplay->nItems[gBagMenuState.pocket] != itemIndex) + CreateItemMenuIcon(BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, itemIndex), sBagMenuDisplay->itemMenuIcon); + else + CreateItemMenuIcon(ITEM_N_A, sBagMenuDisplay->itemMenuIcon); + sBagMenuDisplay->itemMenuIcon ^= 1; + if (!sBagMenuDisplay->inhibitItemDescriptionPrint) + PrintItemDescriptionOnMessageWindow(itemIndex); + } +} + +static void BagListMenuItemPrintFunc(u8 windowId, s32 itemId, u8 y) +{ + u16 bagItemId; + u16 bagItemQuantity; + if (sBagMenuDisplay->itemOriginalLocation != 0xFF) + { + if (sBagMenuDisplay->itemOriginalLocation == (u8)itemId) + bag_menu_print_cursor(y, 2); + else + bag_menu_print_cursor(y, 0xFF); + } + if (itemId != -2 && sBagMenuDisplay->nItems[gBagMenuState.pocket] != itemId) + { + bagItemId = BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, itemId); + bagItemQuantity = BagGetQuantityByPocketPosition(gBagMenuState.pocket + 1, itemId); + if (gBagMenuState.pocket != POCKET_KEY_ITEMS - 1 && !itemid_is_unique(bagItemId)) + { + ConvertIntToDecimalStringN(gStringVar1, bagItemQuantity, STR_CONV_MODE_RIGHT_ALIGN, 3); + StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1); + BagPrintTextOnWindow(windowId, 0, gStringVar4, 0x6e, y, 0, 0, 0xFF, 1); + } + else if (gSaveBlock1Ptr->registeredItem != ITEM_NONE && gSaveBlock1Ptr->registeredItem == bagItemId) + { + BlitBitmapToWindow(windowId, sBlit_SelectButton, 0x70, y, 0x18, 0x10); + } + } +} + +static void bag_menu_print_cursor_(u8 taskId, u8 colorIdx) +{ + bag_menu_print_cursor(ListMenuGetYCoordForPrintingArrowCursor(taskId), colorIdx); +} + +static void bag_menu_print_cursor(u8 y, u8 colorIdx) +{ + if (colorIdx == 0xFF) + { + FillWindowPixelRect(0, PIXEL_FILL(0), 1, y, GetMenuCursorDimensionByFont(2, 0), GetMenuCursorDimensionByFont(2, 1)); + } + else + { + BagPrintTextOnWindow(0, 2, gFameCheckerText_ListMenuCursor, 1, y, 0, 0, 0, colorIdx); + } +} + +static void PrintBagPocketName(void) +{ + FillWindowPixelBuffer(2, PIXEL_FILL(0)); + BagPrintTextOnWin1CenteredColor0(sPocketNames[gBagMenuState.pocket], gBagMenuState.pocket); +} + +static void PrintItemDescriptionOnMessageWindow(s32 itemIndex) +{ + const u8 *description; + if (itemIndex != sBagMenuDisplay->nItems[gBagMenuState.pocket]) + description = ItemId_GetDescription(BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, itemIndex)); + else + description = gText_CloseBag; + FillWindowPixelBuffer(1, PIXEL_FILL(0)); + BagPrintTextOnWindow(1, 2, description, 0, 3, 2, 0, 0, 0); +} + +static void CreatePocketScrollArrowPair(void) +{ + sBagMenuDisplay->pocketScrollArrowsTask = AddScrollIndicatorArrowPairParameterized( + SCROLL_ARROW_UP, + 160, + 8, + 104, + sBagMenuDisplay->nItems[gBagMenuState.pocket] - sBagMenuDisplay->maxShowed[gBagMenuState.pocket] + 1, + 110, + 110, + &gBagMenuState.cursorPos[gBagMenuState.pocket] + ); +} + +static void CreatePocketSwitchArrowPair(void) +{ + if (sBagMenuDisplay->pocketSwitchMode != 1) + { + sBagMenuDisplay->pocketSwitchArrowsTask = AddScrollIndicatorArrowPair(&sPocketSwitchArrowPairTemplate, &gBagMenuState.pocket); + } +} + +static void CreatePocketScrollArrowPair_SellQuantity(void) +{ + sBagMenuDisplay->contextMenuSelectedItem = 1; + sBagMenuDisplay->pocketScrollArrowsTask = AddScrollIndicatorArrowPairParameterized( + SCROLL_ARROW_UP, + 152, + 72, + 104, + 2, + 110, + 110, + &sBagMenuDisplay->contextMenuSelectedItem + ); +} + +static void CreateArrowPair_QuantitySelect(void) +{ + sBagMenuDisplay->contextMenuSelectedItem = 1; + sBagMenuDisplay->pocketScrollArrowsTask = AddScrollIndicatorArrowPairParameterized( + SCROLL_ARROW_UP, + 212, + 120, + 152, + 2, + 110, + 110, + &sBagMenuDisplay->contextMenuSelectedItem + ); +} + +static void BagDestroyPocketScrollArrowPair(void) +{ + if (sBagMenuDisplay->pocketScrollArrowsTask != 0xFF) + { + RemoveScrollIndicatorArrowPair(sBagMenuDisplay->pocketScrollArrowsTask); + sBagMenuDisplay->pocketScrollArrowsTask = 0xFF; + } + BagDestroyPocketSwitchArrowPair(); +} + +static void BagDestroyPocketSwitchArrowPair(void) +{ + if (sBagMenuDisplay->pocketSwitchArrowsTask != 0xFF) + { + RemoveScrollIndicatorArrowPair(sBagMenuDisplay->pocketSwitchArrowsTask); + sBagMenuDisplay->pocketSwitchArrowsTask = 0xFF; + } +} + +void ResetBagCursorPositions(void) +{ + u8 i; + gBagMenuState.pocket = POCKET_ITEMS - 1; + gBagMenuState.bagOpen = FALSE; + for (i = 0; i < 3; i++) + { + gBagMenuState.itemsAbove[i] = 0; + gBagMenuState.cursorPos[i] = 0; + } +} + +void PocketCalculateInitialCursorPosAndItemsAbove(u8 pocketId) +{ + if (gBagMenuState.cursorPos[pocketId] != 0 && gBagMenuState.cursorPos[pocketId] + sBagMenuDisplay->maxShowed[pocketId] > sBagMenuDisplay->nItems[pocketId] + 1) + { + gBagMenuState.cursorPos[pocketId] = (sBagMenuDisplay->nItems[pocketId] + 1) - sBagMenuDisplay->maxShowed[pocketId]; + } + if (gBagMenuState.cursorPos[pocketId] + gBagMenuState.itemsAbove[pocketId] >= sBagMenuDisplay->nItems[pocketId] + 1) + { + if (sBagMenuDisplay->nItems[pocketId] + 1 < 2) + gBagMenuState.itemsAbove[pocketId] = 0; + else + gBagMenuState.itemsAbove[pocketId] = sBagMenuDisplay->nItems[pocketId]; + } +} + +static void CalculateInitialCursorPosAndItemsAbove(void) +{ + u8 i; + for (i = 0; i < 3; i++) + { + PocketCalculateInitialCursorPosAndItemsAbove(i); + } +} + +static void UpdatePocketScrollPositions(void) +{ + u8 i; + u8 j; + + for (i = 0; i < 3; i++) + { + if (gBagMenuState.itemsAbove[i] > 3) + { + for (j = 0; j <= gBagMenuState.itemsAbove[i] - 3; gBagMenuState.itemsAbove[i]--, gBagMenuState.cursorPos[i]++, j++) + { + if (gBagMenuState.cursorPos[i] + sBagMenuDisplay->maxShowed[i] == sBagMenuDisplay->nItems[i] + 1) + break; + } + } + } +} + +static void DestroyBagMenuResources(void) +{ + FREE_IF_SET(sBagMenuDisplay); + FREE_IF_SET(sBagBgTilemapBuffer); + FREE_IF_SET(sListMenuItems); + FREE_IF_SET(sListMenuItemStrings); + FreeAllWindowBuffers(); +} + +void ItemMenu_StartFadeToExitCallback(u8 taskId) +{ + BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_BLACK); + gTasks[taskId].func = Task_ItemMenu_WaitFadeAndSwitchToExitCallback; +} + +static void Task_ItemMenu_WaitFadeAndSwitchToExitCallback(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (!gPaletteFade.active && FuncIsActiveTask(Task_AnimateWin0v) != TRUE) + { + DestroyListMenuTask(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]); + if (sBagMenuDisplay->exitCB != NULL) + SetMainCallback2(sBagMenuDisplay->exitCB); + else + SetMainCallback2(gBagMenuState.bagCallback); + BagDestroyPocketScrollArrowPair(); + DestroyBagMenuResources(); + DestroyTask(taskId); + } +} + +static void ShowBagOrBeginWin0OpenTask(void) +{ + u16 paldata = RGB_BLACK; + u8 taskId; + + LoadPalette(&paldata, 0x00, 0x02); + SetGpuReg(REG_OFFSET_WININ, 0); + SetGpuReg(REG_OFFSET_WINOUT, WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR); + BlendPalettes(0xFFFFFFFF, 16, RGB_BLACK); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); + if (gBagMenuState.bagOpen == TRUE) + { + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 240)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0, 0)); + } + else + { + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE(0, 240)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0, 160)); + taskId = CreateTask(Task_AnimateWin0v, 0); + gTasks[taskId].data[0] = 192; + gTasks[taskId].data[1] = -16; + gBagMenuState.bagOpen = TRUE; + } +} + +void Bag_BeginCloseWin0Animation(void) +{ + + u8 taskId = CreateTask(Task_AnimateWin0v, 0); + gTasks[taskId].data[0] = -16; + gTasks[taskId].data[1] = 16; + gBagMenuState.bagOpen = FALSE; +} + +void CB2_SetUpReshowBattleScreenAfterMenu(void) +{ + gBagMenuState.bagOpen = FALSE; +} + +static void Task_AnimateWin0v(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + data[0] += data[1]; + if (data[0] > 160) + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE(0, 160)); + else + SetGpuReg(REG_OFFSET_WIN0V, data[0]); + if ((data[1] == 16 && data[0] == 160) || (data[1] == -16 && data[0] == 0)) + DestroyTask(taskId); +} + +void MoveItemSlotInList(struct ItemSlot * itemSlots_, u32 from, u32 to_) +{ + // dumb assignments needed to match + struct ItemSlot *itemSlots = itemSlots_; + u32 to = to_; + + if (from != to) + { + s16 i, count; + struct ItemSlot firstSlot = itemSlots[from]; + + if (to > from) + { + to--; + for (i = from, count = to; i < count; i++) + itemSlots[i] = itemSlots[i + 1]; + } + else + { + for (i = from, count = to; i > count; i--) + itemSlots[i] = itemSlots[i - 1]; + } + itemSlots[to] = firstSlot; + } +} + +void Pocket_CalculateNItemsAndMaxShowed(u8 pocketId) +{ + u16 i; + struct BagPocket * pocket = &gBagPockets[pocketId]; + BagPocketCompaction(pocket->itemSlots, pocket->capacity); + sBagMenuDisplay->nItems[pocketId] = 0; + for (i = 0; i < pocket->capacity; i++) + { + if (pocket->itemSlots[i].itemId == ITEM_NONE) + break; + sBagMenuDisplay->nItems[pocketId]++; + } + if (sBagMenuDisplay->nItems[pocketId] + 1 > 6) + sBagMenuDisplay->maxShowed[pocketId] = 6; + else + sBagMenuDisplay->maxShowed[pocketId] = sBagMenuDisplay->nItems[pocketId] + 1; +} + +static void All_CalculateNItemsAndMaxShowed(void) +{ + u8 i; + for (i = 0; i < 3; i++) + Pocket_CalculateNItemsAndMaxShowed(i); +} + +void DisplayItemMessageInBag(u8 taskId, u8 fontId, const u8 * string, TaskFunc followUpFunc) +{ + s16 *data = gTasks[taskId].data; + data[10] = OpenBagWindow(5); + FillWindowPixelBuffer(data[10], PIXEL_FILL(1)); + DisplayMessageAndContinueTask(taskId, data[10], 0x06D, 0x0D, fontId, GetTextSpeedSetting(), string, followUpFunc); + ScheduleBgCopyTilemapToVram(0); +} + +void ItemMenu_SetExitCallback(MainCallback cb) +{ + sBagMenuDisplay->exitCB = cb; +} + +static u8 GetSelectedItemIndex(u8 pocket) +{ + return gBagMenuState.cursorPos[pocket] + gBagMenuState.itemsAbove[pocket]; +} + +static void Task_BagMenu_HandleInput(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + u16 cursorPos; + u16 itemsAbove; + s32 input; + + if (gPaletteFade.active) + return; + if (FuncIsActiveTask(Task_AnimateWin0v) == TRUE) + return; + if ((u8)sub_80BF72C() == TRUE) + return; + switch (ProcessPocketSwitchInput(taskId, gBagMenuState.pocket)) + { + case 1: + SwitchPockets(taskId, -1, FALSE); + return; + case 2: + SwitchPockets(taskId, 1, FALSE); + return; + default: + if (JOY_NEW(SELECT_BUTTON) && gBagMenuState.location == ITEMMENULOCATION_FIELD) + { + ListMenuGetScrollAndRow(data[0], &cursorPos, &itemsAbove); + if (cursorPos + itemsAbove != sBagMenuDisplay->nItems[gBagMenuState.pocket]) + { + PlaySE(SE_SELECT); + BeginMovingItemInPocket(taskId, cursorPos + itemsAbove); + return; + } + } + break; + } + input = ListMenu_ProcessInput(data[0]); + ListMenuGetScrollAndRow(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]); + switch (input) + { + case LIST_NOTHING_CHOSEN: + return; + case LIST_CANCEL: + PlaySE(SE_SELECT); + gSpecialVar_ItemId = ITEM_NONE; + Bag_BeginCloseWin0Animation(); + gTasks[taskId].func = ItemMenu_StartFadeToExitCallback; + break; + default: + PlaySE(SE_SELECT); + if (input == sBagMenuDisplay->nItems[gBagMenuState.pocket]) + { + gSpecialVar_ItemId = ITEM_NONE; + Bag_BeginCloseWin0Animation(); + gTasks[taskId].func = ItemMenu_StartFadeToExitCallback; + } + else + { + BagDestroyPocketScrollArrowPair(); + bag_menu_print_cursor_(data[0], 2); + data[1] = input; + data[2] = BagGetQuantityByPocketPosition(gBagMenuState.pocket + 1, input); + gSpecialVar_ItemId = BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, input); + gTasks[taskId].func = Task_ItemContextMenuByLocation; + } + break; + } +} + +static void Task_ItemContextMenuByLocation(u8 taskId) +{ + Bag_FillMessageBoxWithPalette(1); + sItemContextTaskFuncs[gBagMenuState.location](taskId); +} + +static void Task_RedrawArrowsAndReturnToBagMenuSelect(u8 taskId) +{ + Bag_FillMessageBoxWithPalette(0); + CreatePocketScrollArrowPair(); + CreatePocketSwitchArrowPair(); + gTasks[taskId].func = Task_BagMenu_HandleInput; +} + +static void Bag_FillMessageBoxWithPalette(u32 a0) +{ + SetBgTilemapPalette(1, 0, 14, 30, 6, a0 + 1); + ScheduleBgCopyTilemapToVram(1); +} + +static u8 ProcessPocketSwitchInput(u8 taskId, u8 pocketId) +{ + u8 lrState; + if (sBagMenuDisplay->pocketSwitchMode != 0) + return 0; + lrState = GetLRKeysState(); + if (JOY_NEW(DPAD_LEFT) || lrState == 1) + { + if (pocketId == POCKET_ITEMS - 1) + return 0; + PlaySE(SE_BAG2); + return 1; + } + if (JOY_NEW(DPAD_RIGHT) || lrState == 2) + { + if (pocketId >= POCKET_POKE_BALLS - 1) + return 0; + PlaySE(SE_BAG2); + return 2; + } + return 0; +} + +static void SwitchPockets(u8 taskId, s16 direction, bool16 a2) +{ + s16 *data = gTasks[taskId].data; + data[13] = 0; + data[12] = 0; + data[11] = direction; + if (!a2) + { + ClearWindowTilemap(0); + ClearWindowTilemap(1); + ClearWindowTilemap(2); + DestroyListMenuTask(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]); + ScheduleBgCopyTilemapToVram(0); + DestroyItemMenuIcon(sBagMenuDisplay->itemMenuIcon ^ 1); + BagDestroyPocketScrollArrowPair(); + } + FillBgTilemapBufferRect_Palette0(1, 0x02D, 11, 1, 18, 12); + ScheduleBgCopyTilemapToVram(1); + sub_8098528(gBagMenuState.pocket + direction); + SetTaskFuncWithFollowupFunc(taskId, Task_AnimateSwitchPockets, gTasks[taskId].func); +} + +static void Task_AnimateSwitchPockets(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (!MenuHelpers_LinkSomething() && !BagIsTutorial()) + { + switch (ProcessPocketSwitchInput(taskId, gBagMenuState.pocket + data[11])) + { + case 1: + gBagMenuState.pocket += data[11]; + SwitchTaskToFollowupFunc(taskId); + SwitchPockets(taskId, -1, TRUE); + return; + case 2: + gBagMenuState.pocket += data[11]; + SwitchTaskToFollowupFunc(taskId); + SwitchPockets(taskId, 1, TRUE); + return; + } + } + switch (data[13]) + { + case 0: + if (data[12] != 0x7FFF) + { + data[12]++; + CopyBagListBgTileRowToTilemapBuffer(data[12]); + if (data[12] == 12) + data[12] = 0x7FFF; + } + if (data[12] == 0x7FFF) + data[13]++; + break; + case 1: + gBagMenuState.pocket += data[11]; + PrintBagPocketName(); + Bag_BuildListMenuTemplate(gBagMenuState.pocket); + data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]); + PutWindowTilemap(1); + PutWindowTilemap(2); + ScheduleBgCopyTilemapToVram(0); + CreatePocketScrollArrowPair(); + CreatePocketSwitchArrowPair(); + SwitchTaskToFollowupFunc(taskId); + break; + } +} + +static void BeginMovingItemInPocket(u8 taskId, s16 itemIndex) +{ + u16 itemsAbove; + u16 cursorPos; + s16 *data = gTasks[taskId].data; + ListMenuGetScrollAndRow(data[0], &cursorPos, &itemsAbove); + ListMenuSetUnkIndicatorsStructField(data[0], 0x10, 1); + data[1] = itemIndex; + sBagMenuDisplay->itemOriginalLocation = itemIndex; + StringCopy(gStringVar1, ItemId_GetName(BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, data[1]))); + StringExpandPlaceholders(gStringVar4, gOtherText_WhereShouldTheStrVar1BePlaced); + FillWindowPixelBuffer(1, PIXEL_FILL(0)); + BagPrintTextOnWindow(1, 2, gStringVar4, 0, 3, 2, 0, 0, 0); + ItemMenuIcons_MoveInsertIndicatorBar(0, ListMenuGetYCoordForPrintingArrowCursor(data[0])); + ItemMenuIcons_ToggleInsertIndicatorBarVisibility(FALSE); + BagDestroyPocketSwitchArrowPair(); + bag_menu_print_cursor_(data[0], 2); + gTasks[taskId].func = Task_MoveItemInPocket_HandleInput; +} + +static void Task_MoveItemInPocket_HandleInput(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + s32 input; + u16 itemsAbove; + u16 cursorPos; + if ((u8)sub_80BF72C() == TRUE) + return; + input = ListMenu_ProcessInput(data[0]); + ListMenuGetScrollAndRow(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]); + ItemMenuIcons_MoveInsertIndicatorBar(0, ListMenuGetYCoordForPrintingArrowCursor(data[0])); + if (JOY_NEW(SELECT_BUTTON)) + { + PlaySE(SE_SELECT); + sBagMenuDisplay->itemOriginalLocation = 0xFF; + ListMenuGetScrollAndRow(data[0], &cursorPos, &itemsAbove); + ExecuteMoveItemInPocket(taskId, cursorPos + itemsAbove); + return; + } + switch (input) + { + case LIST_NOTHING_CHOSEN: + return; + case LIST_CANCEL: + PlaySE(SE_SELECT); + sBagMenuDisplay->itemOriginalLocation = 0xFF; + ListMenuGetScrollAndRow(data[0], &cursorPos, &itemsAbove); + AbortMovingItemInPocket(taskId, cursorPos + itemsAbove); + break; + default: + PlaySE(SE_SELECT); + sBagMenuDisplay->itemOriginalLocation = 0xFF; + ExecuteMoveItemInPocket(taskId, input); + break; + } +} + +static void ExecuteMoveItemInPocket(u8 taskId, u32 itemIndex) +{ + s16 *data = gTasks[taskId].data; + if (data[1] == itemIndex || data[1] == itemIndex - 1) + { + AbortMovingItemInPocket(taskId, itemIndex); + } + else + { + MoveItemSlotInList(gBagPockets[gBagMenuState.pocket].itemSlots, data[1], itemIndex); + DestroyListMenuTask(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]); + if (data[1] < itemIndex) + gBagMenuState.itemsAbove[gBagMenuState.pocket]--; + Bag_BuildListMenuTemplate(gBagMenuState.pocket); + data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]); + ItemMenuIcons_ToggleInsertIndicatorBarVisibility(TRUE); + CreatePocketSwitchArrowPair(); + gTasks[taskId].func = Task_BagMenu_HandleInput; + } +} + +static void AbortMovingItemInPocket(u8 taskId, u32 itemIndex) +{ + s16 *data = gTasks[taskId].data; + DestroyListMenuTask(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]); + if (data[1] < itemIndex) + gBagMenuState.itemsAbove[gBagMenuState.pocket]--; + Bag_BuildListMenuTemplate(gBagMenuState.pocket); + data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]); + ItemMenuIcons_ToggleInsertIndicatorBarVisibility(TRUE); + CreatePocketSwitchArrowPair(); + gTasks[taskId].func = Task_BagMenu_HandleInput; +} + +static void InitQuantityToTossOrDeposit(u16 cursorPos, const u8 *str) +{ + u8 r4; + u8 r5 = ShowBagWindow(6, 2); + CopyItemName(BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, cursorPos), gStringVar1); + StringExpandPlaceholders(gStringVar4, str); + BagPrintTextOnWindow(r5, 2, gStringVar4, 0, 2, 1, 0, 0, 1); + r4 = ShowBagWindow(0, 0); + ConvertIntToDecimalStringN(gStringVar1, 1, STR_CONV_MODE_LEADING_ZEROS, 3); + StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1); + BagPrintTextOnWindow(r4, 0, gStringVar4, 4, 10, 1, 0, 0, 1); + CreateArrowPair_QuantitySelect(); +} + +static void UpdateQuantityToTossOrDeposit(s16 value, u8 ndigits) +{ + u8 r6 = GetBagWindow(0); + FillWindowPixelBuffer(r6, PIXEL_FILL(1)); + ConvertIntToDecimalStringN(gStringVar1, value, STR_CONV_MODE_LEADING_ZEROS, ndigits); + StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1); + BagPrintTextOnWindow(r6, 0, gStringVar4, 4, 10, 1, 0, 0, 1); +} + +static void CopyBagListBgTileRowToTilemapBuffer(u8 frame) +{ + CopyToBgTilemapBufferRect(1, sBagListBgTiles[12 - frame], 11, 13 - frame, 18, 1); + ScheduleBgCopyTilemapToVram(1); +} + +static void OpenContextMenu(u8 taskId) +{ + u8 r6; + u8 r4; + switch (gBagMenuState.location) + { + case ITEMMENULOCATION_BATTLE: + case ITEMMENULOCATION_TTVSCR_STATUS: + if (gSpecialVar_ItemId == ITEM_BERRY_POUCH) + { + sContextMenuItemsBuffer[0] = ITEMMENUACTION_OPEN_BERRIES; + sContextMenuItemsBuffer[1] = ITEMMENUACTION_CANCEL; + sContextMenuItemsPtr = sContextMenuItemsBuffer; + sContextMenuNumItems = 2; + } + else if (ItemId_GetBattleUsage(gSpecialVar_ItemId)) + { + sContextMenuItemsPtr = sContextMenuItems_BattleUse; + sContextMenuNumItems = 2; + } + else + { + sContextMenuItemsPtr = sContextMenuItems_Cancel; + sContextMenuNumItems = 1; + } + break; + case ITEMMENULOCATION_OLD_MAN: + case ITEMMENULOCATION_TTVSCR_CATCHING: + sContextMenuItemsPtr = sContextMenuItems_BattleUse; + sContextMenuNumItems = 2; + break; + default: + if (MenuHelpers_LinkSomething() == TRUE || InUnionRoom() == TRUE) + { + if (gSpecialVar_ItemId == ITEM_TM_CASE || gSpecialVar_ItemId == ITEM_BERRY_POUCH) + { + sContextMenuItemsPtr = sContextMenuItems_Open; + sContextMenuNumItems = 2; + } + else + { + if (gBagMenuState.pocket == POCKET_KEY_ITEMS - 1) + sContextMenuNumItems = 1; + else + sContextMenuNumItems = 2; + sContextMenuItemsPtr = sContextMenuItems_GiveIfNotKeyItemPocket[gBagMenuState.pocket]; + } + } + else + { + switch (gBagMenuState.pocket) + { + case OPEN_BAG_ITEMS: + sContextMenuNumItems = 4; + if (ItemIsMail(gSpecialVar_ItemId) == TRUE) + sContextMenuItemsPtr = sContextMenuItems_CheckGiveTossCancel; + else + sContextMenuItemsPtr = sContextMenuItems_Field[gBagMenuState.pocket]; + break; + case OPEN_BAG_KEYITEMS: + sContextMenuItemsPtr = sContextMenuItemsBuffer; + sContextMenuNumItems = 3; + sContextMenuItemsBuffer[2] = ITEMMENUACTION_CANCEL; + if (gSaveBlock1Ptr->registeredItem == gSpecialVar_ItemId) + sContextMenuItemsBuffer[1] = ITEMMENUACTION_DESELECT; + else + sContextMenuItemsBuffer[1] = ITEMMENUACTION_REGISTER; + if (gSpecialVar_ItemId == ITEM_TM_CASE || gSpecialVar_ItemId == ITEM_BERRY_POUCH) + sContextMenuItemsBuffer[0] = ITEMMENUACTION_OPEN; + else if (gSpecialVar_ItemId == ITEM_BICYCLE && TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_ACRO_BIKE | PLAYER_AVATAR_FLAG_MACH_BIKE)) + sContextMenuItemsBuffer[0] = ITEMMENUACTION_WALK; + else + sContextMenuItemsBuffer[0] = ITEMMENUACTION_USE; + break; + case OPEN_BAG_POKEBALLS: + sContextMenuItemsPtr = sContextMenuItems_Field[gBagMenuState.pocket]; + sContextMenuNumItems = 3; + break; + } + } + } + r6 = ShowBagWindow(10, sContextMenuNumItems - 1); + AddItemMenuActionTextPrinters( + r6, + 2, + GetMenuCursorDimensionByFont(2, 0), + 2, + GetFontAttribute(2, FONTATTR_LETTER_SPACING), + GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT) + 2, + sContextMenuNumItems, + sItemMenuContextActions, + sContextMenuItemsPtr + ); + Menu_InitCursor(r6, 2, 0, 2, GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT) + 2, sContextMenuNumItems, 0); + r4 = ShowBagWindow(6, 0); + CopyItemName(gSpecialVar_ItemId, gStringVar1); + StringExpandPlaceholders(gStringVar4, gOtherText_StrVar1); + BagPrintTextOnWindow(r4, 2, gStringVar4, 0, 2, 1, 0, 0, 1); +} + +static void Task_ItemContext_FieldOrBattle(u8 taskId) +{ + OpenContextMenu(taskId); + gTasks[taskId].func = Task_FieldItemContextMenuHandleInput; +} + +static void Task_FieldItemContextMenuHandleInput(u8 taskId) +{ + s8 input; + if ((u8)sub_80BF72C() != TRUE) + { + input = Menu_ProcessInputNoWrapAround(); + switch (input) + { + case -1: + PlaySE(SE_SELECT); + sItemMenuContextActions[ITEMMENUACTION_CANCEL].func.void_u8(taskId); + break; + case -2: + break; + default: + PlaySE(SE_SELECT); + sItemMenuContextActions[sContextMenuItemsPtr[input]].func.void_u8(taskId); + break; + } + } +} + +static void Task_ItemMenuAction_Use(u8 taskId) +{ + if (ItemId_GetFieldFunc(gSpecialVar_ItemId) != NULL) + { + HideBagWindow(10); + HideBagWindow(6); + PutWindowTilemap(0); + PutWindowTilemap(1); + ScheduleBgCopyTilemapToVram(0); + if (CalculatePlayerPartyCount() == 0 && ItemId_GetType(gSpecialVar_ItemId) == 1) + Task_PrintThereIsNoPokemon(taskId); + else + ItemId_GetFieldFunc(gSpecialVar_ItemId)(taskId); + } +} + +static void Task_ItemMenuAction_Toss(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + ClearWindowTilemap(GetBagWindow(10)); + ClearWindowTilemap(GetBagWindow(6)); + HideBagWindow(10); + HideBagWindow(6); + PutWindowTilemap(0); + data[8] = 1; + if (data[2] == 1) + { + Task_ConfirmTossItems(taskId); + } + else + { + InitQuantityToTossOrDeposit(data[1], gText_TossOutHowManyStrVar1s); + gTasks[taskId].func = Task_SelectQuantityToToss; + } +} + +static void Task_ConfirmTossItems(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + ConvertIntToDecimalStringN(gStringVar2, data[8], STR_CONV_MODE_LEFT_ALIGN, 3); + StringExpandPlaceholders(gStringVar4, gText_ThrowAwayStrVar2OfThisItemQM); + BagPrintTextOnWindow(ShowBagWindow(6, 1), 2, gStringVar4, 0, 2, 1, 0, 0, 1); + BagCreateYesNoMenuBottomRight(taskId, &sYesNoMenu_Toss); +} + +static void Task_TossItem_No(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + HideBagWindow(6); + PutWindowTilemap(1); + ScheduleBgCopyTilemapToVram(0); + bag_menu_print_cursor_(data[0], 1); + Task_RedrawArrowsAndReturnToBagMenuSelect(taskId); +} + +static void Task_SelectQuantityToToss(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (AdjustQuantityAccordingToDPadInput(&data[8], data[2]) == TRUE) + { + UpdateQuantityToTossOrDeposit(data[8], 3); + } + else if (JOY_NEW(A_BUTTON)) + { + PlaySE(SE_SELECT); + ClearWindowTilemap(GetBagWindow(6)); + HideBagWindow(6); + HideBagWindow(0); + ScheduleBgCopyTilemapToVram(0); + BagDestroyPocketScrollArrowPair(); + Task_ConfirmTossItems(taskId); + } + else if (JOY_NEW(B_BUTTON)) + { + PlaySE(SE_SELECT); + HideBagWindow(6); + HideBagWindow(0); + PutWindowTilemap(0); + PutWindowTilemap(1); + ScheduleBgCopyTilemapToVram(0); + bag_menu_print_cursor_(data[0], 1); + BagDestroyPocketScrollArrowPair(); + Task_RedrawArrowsAndReturnToBagMenuSelect(taskId); + } +} + +static void Task_TossItem_Yes(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + HideBagWindow(6); + CopyItemName(BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, data[1]), gStringVar1); + ConvertIntToDecimalStringN(gStringVar2, data[8], STR_CONV_MODE_LEFT_ALIGN, 3); + StringExpandPlaceholders(gStringVar4, gText_ThrewAwayStrVar2StrVar1s); + BagPrintTextOnWindow(ShowBagWindow(6, 3), 2, gStringVar4, 0, 2, 1, 0, 0, 1); + gTasks[taskId].func = Task_WaitAB_RedrawAndReturnToBag; +} + +static void Task_WaitAB_RedrawAndReturnToBag(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON)) + { + PlaySE(SE_SELECT); + RemoveBagItem(gSpecialVar_ItemId, data[8]); + HideBagWindow(6); + DestroyListMenuTask(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]); + Pocket_CalculateNItemsAndMaxShowed(gBagMenuState.pocket); + PocketCalculateInitialCursorPosAndItemsAbove(gBagMenuState.pocket); + Bag_BuildListMenuTemplate(gBagMenuState.pocket); + data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]); + PutWindowTilemap(1); + ScheduleBgCopyTilemapToVram(0); + bag_menu_print_cursor_(data[0], 1); + Task_RedrawArrowsAndReturnToBagMenuSelect(taskId); + } +} + +static void Task_ItemMenuAction_ToggleSelect(u8 taskId) +{ + u16 itemId; + s16 *data = gTasks[taskId].data; + itemId = BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, data[1]); + if (gSaveBlock1Ptr->registeredItem == itemId) + gSaveBlock1Ptr->registeredItem = ITEM_NONE; + else + gSaveBlock1Ptr->registeredItem = itemId; + + DestroyListMenuTask(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]); + Bag_BuildListMenuTemplate(gBagMenuState.pocket); + data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]); + CopyWindowToVram(0, 1); + Task_ItemMenuAction_Cancel(taskId); +} + +static void Task_ItemMenuAction_Give(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + u16 itemId = BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, data[1]); + HideBagWindow(10); + HideBagWindow(6); + PutWindowTilemap(0); + PutWindowTilemap(1); + CopyWindowToVram(0, 1); + if (!CanWriteMailHere(itemId)) + DisplayItemMessageInBag(taskId, 2, gText_CantWriteMailHere, Task_WaitAButtonAndCloseContextMenu); + else if (!itemid_is_unique(itemId)) + { + if (CalculatePlayerPartyCount() == 0) + { + Task_PrintThereIsNoPokemon(taskId); + } + else + { + sBagMenuDisplay->exitCB = CB2_ChooseMonToGiveItem; + gTasks[taskId].func = ItemMenu_StartFadeToExitCallback; + } + } + else + Task_PrintItemCantBeHeld(taskId); +} + +static void Task_PrintThereIsNoPokemon(u8 taskId) +{ + DisplayItemMessageInBag(taskId, 2, gText_ThereIsNoPokemon, Task_WaitAButtonAndCloseContextMenu); +} + +static void Task_PrintItemCantBeHeld(u8 taskId) +{ + CopyItemName(gSpecialVar_ItemId, gStringVar1); + StringExpandPlaceholders(gStringVar4, gText_ItemCantBeHeld); + DisplayItemMessageInBag(taskId, 2, gStringVar4, Task_WaitAButtonAndCloseContextMenu); +} + +static void Task_WaitAButtonAndCloseContextMenu(u8 taskId) +{ + if (JOY_NEW(A_BUTTON)) + { + PlaySE(SE_SELECT); + Task_ReturnToBagFromContextMenu(taskId); + } +} + +void Task_ReturnToBagFromContextMenu(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + CloseBagWindow(5); + DestroyListMenuTask(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]); + Pocket_CalculateNItemsAndMaxShowed(gBagMenuState.pocket); + PocketCalculateInitialCursorPosAndItemsAbove(gBagMenuState.pocket); + Bag_BuildListMenuTemplate(gBagMenuState.pocket); + data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]); + ScheduleBgCopyTilemapToVram(0); + bag_menu_print_cursor_(data[0], 1); + Task_RedrawArrowsAndReturnToBagMenuSelect(taskId); +} + +static void unref_sub_810A288(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + u16 itemsAbove; + u16 cursorPos; + ListMenuGetScrollAndRow(data[0], &cursorPos, &itemsAbove); + PrintItemDescriptionOnMessageWindow(cursorPos + itemsAbove); + PutWindowTilemap(0); + ScheduleBgCopyTilemapToVram(0); + bag_menu_print_cursor_(data[0], 1); + Task_RedrawArrowsAndReturnToBagMenuSelect(taskId); +} + +static void Task_ItemMenuAction_Cancel(u8 taskId) +{ + HideBagWindow(10); + HideBagWindow(6); + PutWindowTilemap(0); + PutWindowTilemap(1); + ScheduleBgCopyTilemapToVram(0); + bag_menu_print_cursor_(gTasks[taskId].data[0], 1); + Task_RedrawArrowsAndReturnToBagMenuSelect(taskId); +} + +static void Task_ItemMenuAction_BattleUse(u8 taskId) +{ + if (ItemId_GetBattleFunc(gSpecialVar_ItemId) != NULL) + { + HideBagWindow(10); + HideBagWindow(6); + PutWindowTilemap(0); + PutWindowTilemap(1); + CopyWindowToVram(0, 1); + ItemId_GetBattleFunc(gSpecialVar_ItemId)(taskId); + } +} + +static void Task_ItemContext_FieldGive(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + u16 itemId = BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, data[1]); + if (!CanWriteMailHere(itemId)) + { + DisplayItemMessageInBag(taskId, 2, gText_CantWriteMailHere, Task_WaitAButtonAndCloseContextMenu); + } + else if (itemId == ITEM_TM_CASE) + { + ItemMenu_SetExitCallback(GoToTMCase_Give); + ItemMenu_StartFadeToExitCallback(taskId); + } + else if (itemId == ITEM_BERRY_POUCH) + { + ItemMenu_SetExitCallback(GoToBerryPouch_Give); + ItemMenu_StartFadeToExitCallback(taskId); + } + else if (gBagMenuState.pocket != POCKET_KEY_ITEMS - 1 && !itemid_is_unique(itemId)) + { + Bag_BeginCloseWin0Animation(); + gTasks[taskId].func = ItemMenu_StartFadeToExitCallback; + } + else + { + Task_PrintItemCantBeHeld(taskId); + } +} + +static void GoToTMCase_Give(void) +{ + InitTMCase(TMCASE_FROMPARTYGIVE, ReturnToBagMenuFromSubmenu_Give, FALSE); +} + +static void GoToBerryPouch_Give(void) +{ + InitBerryPouch(BERRYPOUCH_FROMPARTYGIVE, ReturnToBagMenuFromSubmenu_Give, FALSE); +} + +static void ReturnToBagMenuFromSubmenu_Give(void) +{ + CB2_SelectBagItemToGive(); +} + +static void Task_ItemContext_PcBoxGive(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + u16 itemId = BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, data[1]); + if (ItemIsMail(itemId) == TRUE) + { + DisplayItemMessageInBag(taskId, 2, gText_CantWriteMailHere, Task_WaitAButtonAndCloseContextMenu); + } + else if (itemId == ITEM_TM_CASE) + { + ItemMenu_SetExitCallback(GoToTMCase_PCBox); + ItemMenu_StartFadeToExitCallback(taskId); + } + else if (itemId == ITEM_BERRY_POUCH) + { + ItemMenu_SetExitCallback(GoToBerryPouch_PCBox); + ItemMenu_StartFadeToExitCallback(taskId); + } + else if (gBagMenuState.pocket != POCKET_KEY_ITEMS - 1 && !itemid_is_unique(itemId)) + { + Bag_BeginCloseWin0Animation(); + gTasks[taskId].func = ItemMenu_StartFadeToExitCallback; + } + else + { + Task_PrintItemCantBeHeld(taskId); + } +} + +static void GoToTMCase_PCBox(void) +{ + InitTMCase(TMCASE_FROMPOKEMONSTORAGEPC, ReturnToBagMenuFromSubmenu_PCBox, FALSE); +} + +static void GoToBerryPouch_PCBox(void) +{ + InitBerryPouch(BERRYPOUCH_FROMPOKEMONSTORAGEPC, ReturnToBagMenuFromSubmenu_PCBox, FALSE); +} + +static void ReturnToBagMenuFromSubmenu_PCBox(void) +{ + GoToBagMenu(ITEMMENULOCATION_PCBOX, OPEN_BAG_LAST, sub_808CE60); +} + +static void Task_ItemContext_Sell(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (gSpecialVar_ItemId == ITEM_TM_CASE) + { + ItemMenu_SetExitCallback(GoToTMCase_Sell); + ItemMenu_StartFadeToExitCallback(taskId); + } + else if (gSpecialVar_ItemId == ITEM_BERRY_POUCH) + { + ItemMenu_SetExitCallback(GoToBerryPouch_Sell); + ItemMenu_StartFadeToExitCallback(taskId); + } + else if (itemid_get_market_price(gSpecialVar_ItemId) == 0) + { + CopyItemName(gSpecialVar_ItemId, gStringVar1); + StringExpandPlaceholders(gStringVar4, gText_OhNoICantBuyThat); + DisplayItemMessageInBag(taskId, GetDialogBoxFontId(), gStringVar4, Task_ReturnToBagFromContextMenu); + } + else + { + data[8] = 1; + if (data[2] == 1) + { + BagPrintMoneyAmount(); + Task_PrintSaleConfirmationText(taskId); + } + else + { + if (data[2] > 99) + data[2] = 99; + CopyItemName(gSpecialVar_ItemId, gStringVar1); + StringExpandPlaceholders(gStringVar4, gText_HowManyWouldYouLikeToSell); + DisplayItemMessageInBag(taskId, GetDialogBoxFontId(), gStringVar4, Task_InitSaleQuantitySelectInterface); + } + } +} + +static void GoToTMCase_Sell(void) +{ + InitTMCase(TMCASE_FROMMARTSELL, ReturnToBagMenuFromSubmenu_Sell, FALSE); +} + +static void GoToBerryPouch_Sell(void) +{ + InitBerryPouch(BERRYPOUCH_FROMMARTSELL, ReturnToBagMenuFromSubmenu_Sell, FALSE); +} + +static void ReturnToBagMenuFromSubmenu_Sell(void) +{ + GoToBagMenu(ITEMMENULOCATION_SHOP, OPEN_BAG_LAST, CB2_ReturnToField); +} + +static void Task_PrintSaleConfirmationText(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6); + StringExpandPlaceholders(gStringVar4, gText_ICanPayThisMuch_WouldThatBeOkay); + DisplayItemMessageInBag(taskId, GetDialogBoxFontId(), gStringVar4, Task_ShowSellYesNoMenu); +} + +static void Task_ShowSellYesNoMenu(u8 taskId) +{ + BagCreateYesNoMenuTopRight(taskId, &sYesNoMenu_Sell); +} + +static void Task_SellItem_No(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + HideBagWindow(2); + CloseBagWindow(5); + PutWindowTilemap(2); + PutWindowTilemap(0); + PutWindowTilemap(1); + ScheduleBgCopyTilemapToVram(0); + bag_menu_print_cursor_(data[0], 1); + Task_RedrawArrowsAndReturnToBagMenuSelect(taskId); +} + +static void Task_InitSaleQuantitySelectInterface(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + u8 r4 = ShowBagWindow(0, 1); + ConvertIntToDecimalStringN(gStringVar1, 1, STR_CONV_MODE_LEADING_ZEROS, 2); + StringExpandPlaceholders(gStringVar4, gText_TimesStrVar1); + BagPrintTextOnWindow(r4, 0, gStringVar4, 4, 10, 1, 0, 0xFF, 1); + UpdateSalePriceDisplay(itemid_get_market_price(BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, data[1])) / 2 * data[8]); + BagPrintMoneyAmount(); + CreatePocketScrollArrowPair_SellQuantity(); + gTasks[taskId].func = Task_SelectQuantityToSell; +} + +static void UpdateSalePriceDisplay(s32 amount) +{ + PrintMoneyAmount(GetBagWindow(0), 56, 10, amount, 0); +} + +static void Task_SelectQuantityToSell(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (AdjustQuantityAccordingToDPadInput(&data[8], data[2]) == TRUE) + { + UpdateQuantityToTossOrDeposit(data[8], 2); + UpdateSalePriceDisplay(itemid_get_market_price(BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, data[1])) / 2 * data[8]); + } + else if (JOY_NEW(A_BUTTON)) + { + PlaySE(SE_SELECT); + HideBagWindow(0); + PutWindowTilemap(0); + ScheduleBgCopyTilemapToVram(0); + BagDestroyPocketScrollArrowPair(); + Task_PrintSaleConfirmationText(taskId); + } + else if (JOY_NEW(B_BUTTON)) + { + PlaySE(SE_SELECT); + HideBagWindow(0); + HideBagWindow(2); + CloseBagWindow(5); + PutWindowTilemap(2); + PutWindowTilemap(0); + PutWindowTilemap(1); + ScheduleBgCopyTilemapToVram(0); + BagDestroyPocketScrollArrowPair(); + bag_menu_print_cursor_(data[0], 1); + Task_RedrawArrowsAndReturnToBagMenuSelect(taskId); + } +} + +static void Task_SellItem_Yes(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + PutWindowTilemap(0); + ScheduleBgCopyTilemapToVram(0); + CopyItemName(gSpecialVar_ItemId, gStringVar1); + ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(BagGetItemIdByPocketPosition(gBagMenuState.pocket + 1, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6); + StringExpandPlaceholders(gStringVar4, gText_TurnedOverItemsWorthYen); + DisplayItemMessageInBag(taskId, 2, gStringVar4, Task_FinalizeSaleToShop); +} + +static void Task_FinalizeSaleToShop(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + PlaySE(SE_SHOP); + RemoveBagItem(gSpecialVar_ItemId, data[8]); + AddMoney(&gSaveBlock1Ptr->money, itemid_get_market_price(gSpecialVar_ItemId) / 2 * data[8]); + RecordItemPurchase(gSpecialVar_ItemId, data[8], 2); + DestroyListMenuTask(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]); + Pocket_CalculateNItemsAndMaxShowed(gBagMenuState.pocket); + PocketCalculateInitialCursorPosAndItemsAbove(gBagMenuState.pocket); + sBagMenuDisplay->inhibitItemDescriptionPrint = TRUE; + Bag_BuildListMenuTemplate(gBagMenuState.pocket); + data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]); + bag_menu_print_cursor_(data[0], 2); + BagDrawTextBoxOnWindow(GetBagWindow(2)); + PrintMoneyAmountInMoneyBox(GetBagWindow(2), GetMoney(&gSaveBlock1Ptr->money), 0); + gTasks[taskId].func = Task_WaitPressAB_AfterSell; +} + +static void Task_WaitPressAB_AfterSell(u8 taskId) +{ + if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON)) + { + PlaySE(SE_SELECT); + HideBagWindow(2); + PutWindowTilemap(2); + sBagMenuDisplay->inhibitItemDescriptionPrint = FALSE; + Task_ReturnToBagFromContextMenu(taskId); + } +} + +static void Task_ItemContext_Deposit(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + data[8] = 1; + if (data[2] == 1) + { + Task_TryDoItemDeposit(taskId); + } + else + { + InitQuantityToTossOrDeposit(data[1], gText_DepositHowManyStrVars1); + gTasks[taskId].func = Task_SelectQuantityToDeposit; + } +} + +static void Task_SelectQuantityToDeposit(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (AdjustQuantityAccordingToDPadInput(&data[8], data[2]) == TRUE) + { + UpdateQuantityToTossOrDeposit(data[8], 3); + } + else if (JOY_NEW(A_BUTTON)) + { + PlaySE(SE_SELECT); + ClearWindowTilemap(GetBagWindow(6)); + HideBagWindow(6); + HideBagWindow(0); + ScheduleBgCopyTilemapToVram(0); + BagDestroyPocketScrollArrowPair(); + Task_TryDoItemDeposit(taskId); + } + else if (JOY_NEW(B_BUTTON)) + { + PlaySE(SE_SELECT); + HideBagWindow(6); + HideBagWindow(0); + PutWindowTilemap(1); + ScheduleBgCopyTilemapToVram(0); + bag_menu_print_cursor_(data[0], 1); + BagDestroyPocketScrollArrowPair(); + Task_RedrawArrowsAndReturnToBagMenuSelect(taskId); + } +} + +static void Task_TryDoItemDeposit(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (AddPCItem(gSpecialVar_ItemId, data[8]) == TRUE) + { + ItemUse_SetQuestLogEvent(28, 0, gSpecialVar_ItemId, 0xFFFF); + CopyItemName(gSpecialVar_ItemId, gStringVar1); + ConvertIntToDecimalStringN(gStringVar2, data[8], STR_CONV_MODE_LEFT_ALIGN, 3); + StringExpandPlaceholders(gStringVar4, gText_DepositedStrVar2StrVar1s); + BagPrintTextOnWindow(ShowBagWindow(6, 3), 2, gStringVar4, 0, 2, 1, 0, 0, 1); + gTasks[taskId].func = Task_WaitAB_RedrawAndReturnToBag; + } + else + { + DisplayItemMessageInBag(taskId, 2, gText_NoRoomToStoreItems, Task_WaitAButtonAndCloseContextMenu); + } +} + +bool8 UseRegisteredKeyItemOnField(void) +{ + u8 taskId; + if (InUnionRoom() == TRUE) + return FALSE; + DismissMapNamePopup(); + ChangeBgY(0, 0, 0); + if (gSaveBlock1Ptr->registeredItem != ITEM_NONE) + { + if (CheckBagHasItem(gSaveBlock1Ptr->registeredItem, 1) == TRUE) + { + ScriptContext2_Enable(); + FreezeObjectEvents(); + sub_805C270(); + sub_805C780(); + gSpecialVar_ItemId = gSaveBlock1Ptr->registeredItem; + taskId = CreateTask(ItemId_GetFieldFunc(gSaveBlock1Ptr->registeredItem), 8); + gTasks[taskId].data[3] = 1; + return TRUE; + } + gSaveBlock1Ptr->registeredItem = ITEM_NONE; + } + ScriptContext1_SetupScript(EventScript_BagItemCanBeRegistered); + return TRUE; +} + +static bool8 BagIsTutorial(void) +{ + if ( + gBagMenuState.location == ITEMMENULOCATION_OLD_MAN + || gBagMenuState.location == ITEMMENULOCATION_TTVSCR_CATCHING + || gBagMenuState.location == ITEMMENULOCATION_TTVSCR_STATUS + || gBagMenuState.location == ITEMMENULOCATION_TTVSCR_REGISTER + || gBagMenuState.location == ITEMMENULOCATION_TTVSCR_TMS + ) + return TRUE; + return FALSE; +} + +static void BackUpPlayerBag(void) +{ + u32 i; + sBackupPlayerBag = AllocZeroed(sizeof(struct BagSlots)); + memcpy(sBackupPlayerBag->bagPocket_Items, gSaveBlock1Ptr->bagPocket_Items, BAG_ITEMS_COUNT * sizeof(struct ItemSlot)); + memcpy(sBackupPlayerBag->bagPocket_KeyItems, gSaveBlock1Ptr->bagPocket_KeyItems, BAG_KEYITEMS_COUNT * sizeof(struct ItemSlot)); + memcpy(sBackupPlayerBag->bagPocket_PokeBalls, gSaveBlock1Ptr->bagPocket_PokeBalls, BAG_POKEBALLS_COUNT * sizeof(struct ItemSlot)); + sBackupPlayerBag->registeredItem = gSaveBlock1Ptr->registeredItem; + sBackupPlayerBag->pocket = gBagMenuState.pocket; + for (i = 0; i < 3; i++) + { + sBackupPlayerBag->itemsAbove[i] = gBagMenuState.itemsAbove[i]; + sBackupPlayerBag->cursorPos[i] = gBagMenuState.cursorPos[i]; + } + ClearItemSlots(gSaveBlock1Ptr->bagPocket_Items, BAG_ITEMS_COUNT); + ClearItemSlots(gSaveBlock1Ptr->bagPocket_KeyItems, BAG_KEYITEMS_COUNT); + ClearItemSlots(gSaveBlock1Ptr->bagPocket_PokeBalls, BAG_POKEBALLS_COUNT); + gSaveBlock1Ptr->registeredItem = ITEM_NONE; + ResetBagCursorPositions(); +} + +static void RestorePlayerBag(void) +{ + u32 i; + memcpy(gSaveBlock1Ptr->bagPocket_Items, sBackupPlayerBag->bagPocket_Items, BAG_ITEMS_COUNT * sizeof(struct ItemSlot)); + memcpy(gSaveBlock1Ptr->bagPocket_KeyItems, sBackupPlayerBag->bagPocket_KeyItems, BAG_KEYITEMS_COUNT * sizeof(struct ItemSlot)); + memcpy(gSaveBlock1Ptr->bagPocket_PokeBalls, sBackupPlayerBag->bagPocket_PokeBalls, BAG_POKEBALLS_COUNT * sizeof(struct ItemSlot)); + gSaveBlock1Ptr->registeredItem = sBackupPlayerBag->registeredItem; + gBagMenuState.pocket = sBackupPlayerBag->pocket; + for (i = 0; i < 3; i++) + { + gBagMenuState.itemsAbove[i] = sBackupPlayerBag->itemsAbove[i]; + gBagMenuState.cursorPos[i] = sBackupPlayerBag->cursorPos[i]; + } + Free(sBackupPlayerBag); +} + +void InitOldManBag(void) +{ + BackUpPlayerBag(); + AddBagItem(ITEM_POTION, 1); + AddBagItem(ITEM_POKE_BALL, 1); + GoToBagMenu(ITEMMENULOCATION_OLD_MAN, OPEN_BAG_ITEMS, SetCB2ToReshowScreenAfterMenu2); +} + +static void Task_Bag_OldManTutorial(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (!gPaletteFade.active) + { + switch (data[8]) + { + case 102: + case 204: + PlaySE(SE_BAG2); + SwitchPockets(taskId, 1, FALSE); + break; + case 306: + PlaySE(SE_SELECT); + bag_menu_print_cursor_(data[0], 2); + Bag_FillMessageBoxWithPalette(1); + gSpecialVar_ItemId = ITEM_POKE_BALL; + OpenContextMenu(taskId); + break; + case 408: + PlaySE(SE_SELECT); + HideBagWindow(10); + HideBagWindow(6); + PutWindowTilemap(0); + PutWindowTilemap(1); + CopyWindowToVram(0, 1); + DestroyListMenuTask(data[0], NULL, NULL); + RestorePlayerBag(); + Bag_BeginCloseWin0Animation(); + gTasks[taskId].func = Task_Pokedude_FadeFromBag; + return; + } + data[8]++; + } +} + +static void Task_Pokedude_FadeFromBag(u8 taskId) +{ + BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, RGB_BLACK); + gTasks[taskId].func = Task_Pokedude_WaitFadeAndExitBag; +} + +static void Task_Pokedude_WaitFadeAndExitBag(u8 taskId) +{ + if (!gPaletteFade.active && FuncIsActiveTask(Task_AnimateWin0v) != TRUE) + { + if (sBagMenuDisplay->exitCB != NULL) + SetMainCallback2(sBagMenuDisplay->exitCB); + else + SetMainCallback2(gBagMenuState.bagCallback); + BagDestroyPocketScrollArrowPair(); + DestroyBagMenuResources(); + DestroyTask(taskId); + } +} + +void InitPokedudeBag(u8 a0) +{ + MainCallback cb2; + u8 location; + BackUpPlayerBag(); + AddBagItem(ITEM_POTION, 1); + AddBagItem(ITEM_ANTIDOTE, 1); + AddBagItem(ITEM_TEACHY_TV, 1); + AddBagItem(ITEM_TM_CASE, 1); + AddBagItem(ITEM_POKE_BALL, 5); + AddBagItem(ITEM_GREAT_BALL, 1); + AddBagItem(ITEM_NEST_BALL, 1); + switch (a0) + { + default: + cb2 = CB2_ReturnToTeachyTV; + location = a0; + break; + case 7: + cb2 = SetCB2ToReshowScreenAfterMenu2; + location = ITEMMENULOCATION_TTVSCR_STATUS; + break; + case 8: + cb2 = SetCB2ToReshowScreenAfterMenu2; + location = ITEMMENULOCATION_TTVSCR_CATCHING; + break; + } + GoToBagMenu(location, OPEN_BAG_ITEMS, cb2); +} + +static bool8 Task_BButtonInterruptTeachyTv(u8 taskId) +{ + if (JOY_NEW(B_BUTTON)) + { + RestorePlayerBag(); + SetTeachyTvControllerModeToResume(); + sBagMenuDisplay->exitCB = CB2_ReturnToTeachyTV; + gTasks[taskId].func = Task_Pokedude_FadeFromBag; + return TRUE; + } + else + { + return FALSE; + } +} + +static void Task_Bag_TeachyTvRegister(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (!gPaletteFade.active && Task_BButtonInterruptTeachyTv(taskId) != TRUE) + { + switch (data[8]) + { + case 102: + PlaySE(SE_BAG2); + SwitchPockets(taskId, 1, FALSE); + break; + case 204: + PlaySE(SE_SELECT); + bag_menu_print_cursor_(data[0], 2); + Bag_FillMessageBoxWithPalette(1); + gSpecialVar_ItemId = ITEM_TEACHY_TV; + OpenContextMenu(taskId); + break; + case 306: + PlaySE(SE_SELECT); + Menu_MoveCursorNoWrapAround(1); + break; + case 408: + PlaySE(SE_SELECT); + gSaveBlock1Ptr->registeredItem = gSpecialVar_ItemId; + HideBagWindow(10); + HideBagWindow(6); + PutWindowTilemap(0); + PutWindowTilemap(1); + DestroyListMenuTask(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]); + Bag_BuildListMenuTemplate(gBagMenuState.pocket); + data[0] = ListMenuInit(&gMultiuseListMenuTemplate, gBagMenuState.cursorPos[gBagMenuState.pocket], gBagMenuState.itemsAbove[gBagMenuState.pocket]); + Bag_FillMessageBoxWithPalette(0); + bag_menu_print_cursor_(data[0], 1); + CopyWindowToVram(0, 1); + break; + case 510: + case 612: + gMain.newKeys = 0; + gMain.newAndRepeatedKeys = DPAD_DOWN; + ListMenu_ProcessInput(data[0]); + break; + case 714: + PlaySE(SE_SELECT); + DestroyListMenuTask(data[0], NULL, NULL); + RestorePlayerBag(); + Bag_BeginCloseWin0Animation(); + gTasks[taskId].func = Task_Pokedude_FadeFromBag; + return; + } + data[8]++; + } +} + +static void Task_Bag_TeachyTvCatching(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (!gPaletteFade.active) + { + if (Task_BButtonInterruptTeachyTv(taskId) == TRUE) + { + FreeRestoreBattleData(); + LoadPlayerParty(); + return; + } + switch (data[8]) + { + case 102: + case 204: + PlaySE(SE_BAG2); + SwitchPockets(taskId, 1, FALSE); + break; + case 306: + case 408: + gMain.newKeys = 0; + gMain.newAndRepeatedKeys = DPAD_DOWN; + ListMenu_ProcessInput(data[0]); + break; + case 510: + case 612: + gMain.newKeys = 0; + gMain.newAndRepeatedKeys = DPAD_UP; + ListMenu_ProcessInput(data[0]); + break; + case 714: + PlaySE(SE_SELECT); + bag_menu_print_cursor_(data[0], 2); + Bag_FillMessageBoxWithPalette(1); + gSpecialVar_ItemId = ITEM_POKE_BALL; + OpenContextMenu(taskId); + break; + case 816: + PlaySE(SE_SELECT); + HideBagWindow(10); + HideBagWindow(6); + PutWindowTilemap(0); + PutWindowTilemap(1); + CopyWindowToVram(0, 1); + DestroyListMenuTask(data[0], NULL, NULL); + RestorePlayerBag(); + Bag_BeginCloseWin0Animation(); + gTasks[taskId].func = Task_Pokedude_FadeFromBag; + return; + } + data[8]++; + } +} + +static void Task_Bag_TeachyTvStatus(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (!gPaletteFade.active) + { + if (Task_BButtonInterruptTeachyTv(taskId) == TRUE) + { + FreeRestoreBattleData(); + LoadPlayerParty(); + return; + } + switch (data[8]) + { + case 102: + gMain.newKeys = 0; + gMain.newAndRepeatedKeys = DPAD_DOWN; + ListMenu_ProcessInput(data[0]); + break; + case 204: + PlaySE(SE_SELECT); + bag_menu_print_cursor_(data[0], 2); + Bag_FillMessageBoxWithPalette(1); + gSpecialVar_ItemId = ITEM_ANTIDOTE; + OpenContextMenu(taskId); + break; + case 306: + PlaySE(SE_SELECT); + HideBagWindow(10); + HideBagWindow(6); + PutWindowTilemap(0); + PutWindowTilemap(1); + CopyWindowToVram(0, 1); + DestroyListMenuTask(data[0], NULL, NULL); + RestorePlayerBag(); + gItemUseCB = ItemUseCB_MedicineStep; + ItemMenu_SetExitCallback(ChooseMonForInBattleItem); + gTasks[taskId].func = Task_Pokedude_FadeFromBag; + return; + } + data[8]++; + } +} + +static void Task_Bag_TeachyTvTMs(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + if (!gPaletteFade.active && Task_BButtonInterruptTeachyTv(taskId) != TRUE) + { + switch (data[8]) + { + case 102: + PlaySE(SE_BAG2); + SwitchPockets(taskId, 1, 0); + break; + case 204: + gMain.newKeys = 0; + gMain.newAndRepeatedKeys = DPAD_DOWN; + ListMenu_ProcessInput(data[0]); + break; + case 306: + PlaySE(SE_SELECT); + bag_menu_print_cursor_(data[0], 2); + Bag_FillMessageBoxWithPalette(1); + gSpecialVar_ItemId = ITEM_TM_CASE; + OpenContextMenu(taskId); + break; + case 408: + PlaySE(SE_SELECT); + HideBagWindow(10); + HideBagWindow(6); + PutWindowTilemap(0); + PutWindowTilemap(1); + CopyWindowToVram(0, 1); + DestroyListMenuTask(data[0], NULL, NULL); + RestorePlayerBag(); + sBagMenuDisplay->exitCB = Pokedude_InitTMCase; + gTasks[taskId].func = Task_Pokedude_FadeFromBag; + return; + } + data[8]++; + } +} diff --git a/src/item_menu_icons.c b/src/item_menu_icons.c index 0c2c60437..d389c7781 100644 --- a/src/item_menu_icons.c +++ b/src/item_menu_icons.c @@ -5,14 +5,14 @@ #include "malloc.h" #include "constants/items.h" -static EWRAM_DATA u8 gUnknown_2039878[12] = {0}; -EWRAM_DATA void * gUnknown_2039884 = NULL; -static EWRAM_DATA void * gUnknown_2039888 = NULL; +static EWRAM_DATA u8 sItemMenuIconSpriteIds[12] = {0}; +static EWRAM_DATA void * sItemIconTilesBuffer = NULL; +static EWRAM_DATA void * sItemIconTilesBufferPadded = NULL; static void sub_8098560(struct Sprite * sprite); static void sub_80985BC(struct Sprite * sprite); -static const struct OamData gUnknown_83D416C = { +static const struct OamData sOamData_BagOrSatchel = { .affineMode = ST_OAM_AFFINE_NORMAL, .shape = ST_OAM_SQUARE, .size = 3, @@ -20,36 +20,36 @@ static const struct OamData gUnknown_83D416C = { .paletteNum = 0 }; -static const union AnimCmd gUnknown_83D4174[] = { +static const union AnimCmd sAnim_BagOrSatchel_OpenItemPocket[] = { ANIMCMD_FRAME( 0, 5), ANIMCMD_FRAME(0x40, 0), ANIMCMD_END }; -static const union AnimCmd gUnknown_83D4180[] = { +static const union AnimCmd sAnim_BagOrSatchel_OpenKeyItemPocket[] = { ANIMCMD_FRAME( 0, 5), ANIMCMD_FRAME(0x80, 0), ANIMCMD_END }; -static const union AnimCmd gUnknown_83D418C[] = { +static const union AnimCmd sAnim_BagOrSatchel_OpenPokeBallsPocket[] = { ANIMCMD_FRAME( 0, 5), ANIMCMD_FRAME(0xc0, 0), ANIMCMD_END }; -static const union AnimCmd *const gUnknown_83D4198[] = { - gUnknown_83D4180, - gUnknown_83D418C, - gUnknown_83D4174 +static const union AnimCmd *const sAnimTable_BagOrSatchel[] = { + sAnim_BagOrSatchel_OpenKeyItemPocket, + sAnim_BagOrSatchel_OpenPokeBallsPocket, + sAnim_BagOrSatchel_OpenItemPocket }; -static const union AffineAnimCmd gUnknown_83D41A4[] = { +static const union AffineAnimCmd sAffineAnim_Idle[] = { AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), AFFINEANIMCMD_END }; -static const union AffineAnimCmd gUnknown_83D41B4[] = { +static const union AffineAnimCmd sAffineAnim_Wobble[] = { AFFINEANIMCMD_FRAME(0, 0, -2, 2), AFFINEANIMCMD_FRAME(0, 0, 2, 4), AFFINEANIMCMD_FRAME(0, 0, -2, 4), @@ -57,35 +57,35 @@ static const union AffineAnimCmd gUnknown_83D41B4[] = { AFFINEANIMCMD_END }; -static const union AffineAnimCmd *const gUnknown_83D41DC[] = { - gUnknown_83D41A4, - gUnknown_83D41B4 +static const union AffineAnimCmd *const sAffineAnimTable_BagOrSatchel[] = { + sAffineAnim_Idle, + sAffineAnim_Wobble }; -const struct CompressedSpriteSheet gUnknown_83D41E4 = { +const struct CompressedSpriteSheet gSpriteSheet_Backpack = { gUnknown_8E8362C, 0x2000, 100 }; -const struct CompressedSpriteSheet gUnknown_83D41EC = { +const struct CompressedSpriteSheet gSpriteSheet_Satchel = { gUnknown_8E83DBC, 0x2000, 100 }; -const struct CompressedSpritePalette gUnknown_83D41F4 = { +const struct CompressedSpritePalette gSpritePalette_BagOrSatchel = { gUnknown_8E84560, 100 }; -static const struct SpriteTemplate gUnknown_83D41FC = { +static const struct SpriteTemplate sSpriteTemplate_BagOrSatchel = { 100, 100, - &gUnknown_83D416C, - gUnknown_83D4198, + &sOamData_BagOrSatchel, + sAnimTable_BagOrSatchel, NULL, - gUnknown_83D41DC, + sAffineAnimTable_BagOrSatchel, SpriteCallbackDummy }; @@ -139,7 +139,7 @@ static const struct SpriteTemplate gUnknown_83D4250 = { SpriteCallbackDummy }; -static const struct OamData gUnknown_83D4268 = { +static const struct OamData sOamData_ItemIcon = { .affineMode = ST_OAM_AFFINE_OFF, .shape = ST_OAM_SQUARE, .size = 2, @@ -147,26 +147,26 @@ static const struct OamData gUnknown_83D4268 = { .paletteNum = 2 }; -static const union AnimCmd gUnknown_83D4270[] = { +static const union AnimCmd sAnim_ItemIcon_0[] = { ANIMCMD_FRAME(0, 0), ANIMCMD_END }; -static const union AnimCmd *const gUnknown_83D4278[] = { - gUnknown_83D4270 +static const union AnimCmd *const sAnimTable_ItemIcon[] = { + sAnim_ItemIcon_0 }; -static const struct SpriteTemplate gUnknown_83D427C = { +static const struct SpriteTemplate sSpriteTemplate_ItemIcon = { 102, 102, - &gUnknown_83D4268, - gUnknown_83D4278, + &sOamData_ItemIcon, + sAnimTable_ItemIcon, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }; -static const void *const gUnknown_83D4294[][2] = { +static const void *const sItemIconGfxPtrs[][2] = { {gFile_graphics_items_icons_question_mark_sheet, gFile_graphics_items_icon_palettes_question_mark_palette}, {gFile_graphics_items_icons_master_ball_sheet, gFile_graphics_items_icon_palettes_master_ball_palette}, {gFile_graphics_items_icons_ultra_ball_sheet, gFile_graphics_items_icon_palettes_ultra_ball_palette}, @@ -549,19 +549,19 @@ void ResetItemMenuIconState(void) { u16 i; - for (i = 0; i < NELEMS(gUnknown_2039878); i++) - gUnknown_2039878[i] = 0xFF; + for (i = 0; i < NELEMS(sItemMenuIconSpriteIds); i++) + sItemMenuIconSpriteIds[i] = 0xFF; } -void sub_80984FC(u8 animNum) +void CreateBagOrSatchelSprite(u8 animNum) { - gUnknown_2039878[0] = CreateSprite(&gUnknown_83D41FC, 40, 68, 0); + sItemMenuIconSpriteIds[0] = CreateSprite(&sSpriteTemplate_BagOrSatchel, 40, 68, 0); sub_8098528(animNum); } void sub_8098528(u8 animNum) { - struct Sprite * sprite = &gSprites[gUnknown_2039878[0]]; + struct Sprite * sprite = &gSprites[sItemMenuIconSpriteIds[0]]; sprite->pos2.y = -5; sprite->callback = sub_8098560; StartSpriteAnim(sprite, animNum); @@ -577,7 +577,7 @@ static void sub_8098560(struct Sprite * sprite) void sub_8098580(void) { - struct Sprite * sprite = &gSprites[gUnknown_2039878[0]]; + struct Sprite * sprite = &gSprites[sItemMenuIconSpriteIds[0]]; if (sprite->affineAnimEnded) { StartSpriteAffineAnim(sprite, 1); @@ -594,40 +594,44 @@ static void sub_80985BC(struct Sprite * sprite) } } -void sub_80985E4(void) +void ItemMenuIcons_CreateInsertIndicatorBarHidden(void) { u8 i; - u8 * ptr = &gUnknown_2039878[1]; + u8 * ptr = &sItemMenuIconSpriteIds[1]; for (i = 0; i < 9; i++) { ptr[i] = CreateSprite(&gUnknown_83D4250, i * 16 + 0x60, 7, 0); - if (i != 0) + switch (i) { - if (i == 8) - StartSpriteAnim(&gSprites[ptr[i]], 2); - else - StartSpriteAnim(&gSprites[ptr[i]], 1); + case 0: + break; + case 8: + StartSpriteAnim(&gSprites[ptr[i]], 2); + break; + default: + StartSpriteAnim(&gSprites[ptr[i]], 1); + break; } gSprites[ptr[i]].invisible = TRUE; } } -void sub_8098660(u8 flag) +void ItemMenuIcons_ToggleInsertIndicatorBarVisibility(bool8 invisible) { u8 i; - u8 * ptr = &gUnknown_2039878[1]; + u8 * ptr = &sItemMenuIconSpriteIds[1]; for (i = 0; i < 9; i++) { - gSprites[ptr[i]].invisible = flag; + gSprites[ptr[i]].invisible = invisible; } } -void sub_80986A8(s16 x, u16 y) +void ItemMenuIcons_MoveInsertIndicatorBar(s16 x, u16 y) { u8 i; - u8 * ptr = &gUnknown_2039878[1]; + u8 * ptr = &sItemMenuIconSpriteIds[1]; for (i = 0; i < 9; i++) { @@ -636,15 +640,15 @@ void sub_80986A8(s16 x, u16 y) } } -static bool8 sub_80986EC(void) +static bool8 TryAllocItemIconTilesBuffers(void) { void ** ptr1, ** ptr2; - ptr1 = &gUnknown_2039884; + ptr1 = &sItemIconTilesBuffer; *ptr1 = Alloc(0x120); if (*ptr1 == NULL) return FALSE; - ptr2 = &gUnknown_2039888; + ptr2 = &sItemIconTilesBufferPadded; *ptr2 = AllocZeroed(0x200); if (*ptr2 == NULL) { @@ -671,27 +675,27 @@ u8 AddItemIconObject(u16 tilesTag, u16 paletteTag, u16 itemId) struct CompressedSpritePalette spritePalette; u8 spriteId; - if (!sub_80986EC()) + if (!TryAllocItemIconTilesBuffers()) return MAX_SPRITES; - LZDecompressWram(sub_8098974(itemId, 0), gUnknown_2039884); - CopyItemIconPicTo4x4Buffer(gUnknown_2039884, gUnknown_2039888); - spriteSheet.data = gUnknown_2039888; + LZDecompressWram(GetItemIconGfxPtr(itemId, 0), sItemIconTilesBuffer); + CopyItemIconPicTo4x4Buffer(sItemIconTilesBuffer, sItemIconTilesBufferPadded); + spriteSheet.data = sItemIconTilesBufferPadded; spriteSheet.size = 0x200; spriteSheet.tag = tilesTag; LoadSpriteSheet(&spriteSheet); - spritePalette.data = sub_8098974(itemId, 1); + spritePalette.data = GetItemIconGfxPtr(itemId, 1); spritePalette.tag = paletteTag; LoadCompressedSpritePalette(&spritePalette); - CpuCopy16(&gUnknown_83D427C, &template, sizeof(struct SpriteTemplate)); + CpuCopy16(&sSpriteTemplate_ItemIcon, &template, sizeof(struct SpriteTemplate)); template.tileTag = tilesTag; template.paletteTag = paletteTag; spriteId = CreateSprite(&template, 0, 0, 0); - Free(gUnknown_2039884); - Free(gUnknown_2039888); + Free(sItemIconTilesBuffer); + Free(sItemIconTilesBufferPadded); return spriteId; } @@ -702,17 +706,17 @@ u8 AddItemIconObjectWithCustomObjectTemplate(const struct SpriteTemplate * origT struct CompressedSpritePalette spritePalette; u8 spriteId; - if (!sub_80986EC()) + if (!TryAllocItemIconTilesBuffers()) return MAX_SPRITES; - LZDecompressWram(sub_8098974(itemId, 0), gUnknown_2039884); - CopyItemIconPicTo4x4Buffer(gUnknown_2039884, gUnknown_2039888); - spriteSheet.data = gUnknown_2039888; + LZDecompressWram(GetItemIconGfxPtr(itemId, 0), sItemIconTilesBuffer); + CopyItemIconPicTo4x4Buffer(sItemIconTilesBuffer, sItemIconTilesBufferPadded); + spriteSheet.data = sItemIconTilesBufferPadded; spriteSheet.size = 0x200; spriteSheet.tag = tilesTag; LoadSpriteSheet(&spriteSheet); - spritePalette.data = sub_8098974(itemId, 1); + spritePalette.data = GetItemIconGfxPtr(itemId, 1); spritePalette.tag = paletteTag; LoadCompressedSpritePalette(&spritePalette); @@ -721,14 +725,14 @@ u8 AddItemIconObjectWithCustomObjectTemplate(const struct SpriteTemplate * origT template.paletteTag = paletteTag; spriteId = CreateSprite(&template, 0, 0, 0); - Free(gUnknown_2039884); - Free(gUnknown_2039888); + Free(sItemIconTilesBuffer); + Free(sItemIconTilesBufferPadded); return spriteId; } void CreateItemMenuIcon(u16 itemId, u8 idx) { - u8 * ptr = &gUnknown_2039878[10]; + u8 * ptr = &sItemMenuIconSpriteIds[10]; u8 spriteId; if (ptr[idx] == 0xFF) @@ -747,7 +751,7 @@ void CreateItemMenuIcon(u16 itemId, u8 idx) void DestroyItemMenuIcon(u8 idx) { - u8 * ptr = &gUnknown_2039878[10]; + u8 * ptr = &sItemMenuIconSpriteIds[10]; if (ptr[idx] != 0xFF) { @@ -756,16 +760,16 @@ void DestroyItemMenuIcon(u8 idx) } } -const void * sub_8098974(u16 itemId, u8 attrId) +const void * GetItemIconGfxPtr(u16 itemId, u8 attrId) { if (itemId > ITEM_N_A) itemId = ITEM_NONE; - return gUnknown_83D4294[itemId][attrId]; + return sItemIconGfxPtrs[itemId][attrId]; } void sub_80989A0(u16 itemId, u8 idx) { - u8 * ptr = &gUnknown_2039878[10]; + u8 * ptr = &sItemMenuIconSpriteIds[10]; u8 spriteId; if (ptr[idx] == 0xFF) diff --git a/src/item_pc.c b/src/item_pc.c index 217acc829..7c7abdce3 100644 --- a/src/item_pc.c +++ b/src/item_pc.c @@ -348,7 +348,7 @@ static bool8 ItemPc_DoGfxSetup(void) gMain.state++; break; case 14: - sub_80985E4(); + ItemMenuIcons_CreateInsertIndicatorBarHidden(); gMain.state++; break; case 15: @@ -780,8 +780,8 @@ static void ItemPc_MoveItemModeInit(u8 taskId, s16 pos) StringExpandPlaceholders(gStringVar4, gOtherText_WhereShouldTheStrVar1BePlaced); FillWindowPixelBuffer(1, 0x00); ItemPc_AddTextPrinterParameterized(1, 2, gStringVar4, 0, 3, 2, 3, 0, 0); - sub_80986A8(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0])); - sub_8098660(0); + ItemMenuIcons_MoveInsertIndicatorBar(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0])); + ItemMenuIcons_ToggleInsertIndicatorBarVisibility(FALSE); ItemPc_PrintOrRemoveCursor(data[0], 2); gTasks[taskId].func = Task_ItemPcMoveItemModeRun; } @@ -792,7 +792,7 @@ static void Task_ItemPcMoveItemModeRun(u8 taskId) ListMenu_ProcessInput(data[0]); ListMenuGetScrollAndRow(data[0], &sListMenuState.scroll, &sListMenuState.row); - sub_80986A8(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0])); + ItemMenuIcons_MoveInsertIndicatorBar(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0])); if (JOY_NEW(A_BUTTON | SELECT_BUTTON)) { PlaySE(SE_SELECT); @@ -814,13 +814,13 @@ static void ItemPc_InsertItemIntoNewSlot(u8 taskId, u32 pos) ItemPc_MoveItemModeCancel(taskId, pos); else { - ItemMenu_MoveItemSlotToNewPositionInArray(gSaveBlock1Ptr->pcItems, data[1], pos); + MoveItemSlotInList(gSaveBlock1Ptr->pcItems, data[1], pos); DestroyListMenuTask(data[0], &sListMenuState.scroll, &sListMenuState.row); if (data[1] < pos) sListMenuState.row--; ItemPc_BuildListMenuTemplate(); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sListMenuState.scroll, sListMenuState.row); - sub_8098660(1); + ItemMenuIcons_ToggleInsertIndicatorBarVisibility(TRUE); gTasks[taskId].func = Task_ItemPcMain; } } @@ -834,7 +834,7 @@ static void ItemPc_MoveItemModeCancel(u8 taskId, u32 pos) sListMenuState.row--; ItemPc_BuildListMenuTemplate(); data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sListMenuState.scroll, sListMenuState.row); - sub_8098660(1); + ItemMenuIcons_ToggleInsertIndicatorBarVisibility(TRUE); gTasks[taskId].func = Task_ItemPcMain; } diff --git a/src/item_use.c b/src/item_use.c index d5db22ca1..fc5703a75 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -154,7 +154,7 @@ static void sub_80A0FBC(u8 taskId) { ItemMenu_SetExitCallback(gUnknown_83E2954[itemType]); if (itemType == 1) - sub_8108CB4(); + Bag_BeginCloseWin0Animation(); ItemMenu_StartFadeToExitCallback(taskId); } } @@ -188,7 +188,7 @@ static void sub_80A10C4(u8 taskId, bool8 a1, u8 a2, const u8 * str) { StringExpandPlaceholders(gStringVar4, str); if (a1 == FALSE) - DisplayItemMessageInBag(taskId, a2, gStringVar4, sub_810A1F8); + DisplayItemMessageInBag(taskId, a2, gStringVar4, Task_ReturnToBagFromContextMenu); else DisplayItemMessageOnField(taskId, a2, gStringVar4, sub_80A112C); } @@ -345,7 +345,7 @@ void FieldUseFunc_CoinCase(u8 taskId) StringExpandPlaceholders(gStringVar4, gUnknown_8416537); ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF); if (gTasks[taskId].data[3] == 0) - DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_810A1F8); + DisplayItemMessageInBag(taskId, 2, gStringVar4, Task_ReturnToBagFromContextMenu); else DisplayItemMessageOnField(taskId, 2, gStringVar4, sub_80A112C); } @@ -356,7 +356,7 @@ void FieldUseFunc_PowderJar(u8 taskId) StringExpandPlaceholders(gStringVar4, gUnknown_8416644); ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF); if (gTasks[taskId].data[3] == 0) - DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_810A1F8); + DisplayItemMessageInBag(taskId, 2, gStringVar4, Task_ReturnToBagFromContextMenu); else DisplayItemMessageOnField(taskId, 2, gStringVar4, sub_80A112C); } @@ -384,7 +384,7 @@ void FieldUseFunc_PokeFlute(u8 taskId) { // Now that's a catchy tune! if (gTasks[taskId].data[3] == 0) - DisplayItemMessageInBag(taskId, 2, gUnknown_841665C, sub_810A1F8); + DisplayItemMessageInBag(taskId, 2, gUnknown_841665C, Task_ReturnToBagFromContextMenu); else DisplayItemMessageOnField(taskId, 2, gUnknown_841665C, sub_80A112C); } @@ -401,7 +401,7 @@ static void sub_80A1674(u8 taskId) if (WaitFanfare(FALSE)) { if (gTasks[taskId].data[3] == 0) - DisplayItemMessageInBag(taskId, 2, gUnknown_84166A7, sub_810A1F8); + DisplayItemMessageInBag(taskId, 2, gUnknown_84166A7, Task_ReturnToBagFromContextMenu); else DisplayItemMessageOnField(taskId, 2, gUnknown_84166A7, sub_80A112C); } @@ -518,7 +518,7 @@ void BattleUseFunc_BerryPouch(u8 taskId) static void InitBerryPouchFromBattle(void) { - InitBerryPouch(BERRYPOUCH_FROMBATTLE, sub_8107ECC, 0); + InitBerryPouch(BERRYPOUCH_FROMBATTLE, CB2_BagMenuFromBattle, 0); } void FieldUseFunc_TeachyTv(u8 taskId) @@ -562,7 +562,7 @@ void FieldUseFunc_SuperRepel(u8 taskId) } else // An earlier repel is still in effect - DisplayItemMessageInBag(taskId, 2, gUnknown_841659E, sub_810A1F8); + DisplayItemMessageInBag(taskId, 2, gUnknown_841659E, Task_ReturnToBagFromContextMenu); } static void sub_80A19E8(u8 taskId) @@ -572,15 +572,15 @@ static void sub_80A19E8(u8 taskId) ItemUse_SetQuestLogEvent(QL_EVENT_USED_ITEM, NULL, gSpecialVar_ItemId, 0xFFFF); VarSet(VAR_REPEL_STEP_COUNT, ItemId_GetHoldEffectParam(gSpecialVar_ItemId)); sub_80A1A44(); - DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_810A1F8); + DisplayItemMessageInBag(taskId, 2, gStringVar4, Task_ReturnToBagFromContextMenu); } } static void sub_80A1A44(void) { RemoveBagItem(gSpecialVar_ItemId, 1); - sub_8108DC8(ItemId_GetPocket(gSpecialVar_ItemId)); - sub_81089F4(ItemId_GetPocket(gSpecialVar_ItemId)); + Pocket_CalculateNItemsAndMaxShowed(ItemId_GetPocket(gSpecialVar_ItemId)); + PocketCalculateInitialCursorPosAndItemsAbove(ItemId_GetPocket(gSpecialVar_ItemId)); CopyItemName(gSpecialVar_ItemId, gStringVar2); StringExpandPlaceholders(gStringVar4, gUnknown_841658C); } @@ -613,7 +613,7 @@ static void sub_80A1B48(u8 taskId) if (++gTasks[taskId].data[8] > 7) { PlaySE(SE_BIDORO); - DisplayItemMessageInBag(taskId, 2, gStringVar4, sub_810A1F8); + DisplayItemMessageInBag(taskId, 2, gStringVar4, Task_ReturnToBagFromContextMenu); } } @@ -745,18 +745,18 @@ void BattleUseFunc_PokeBallEtc(u8 taskId) if (!IsPlayerPartyAndPokemonStorageFull()) { RemoveBagItem(gSpecialVar_ItemId, 1); - sub_8108CB4(); + Bag_BeginCloseWin0Animation(); ItemMenu_StartFadeToExitCallback(taskId); } else { - DisplayItemMessageInBag(taskId, 2, gUnknown_8416631, sub_810A1F8); + DisplayItemMessageInBag(taskId, 2, gUnknown_8416631, Task_ReturnToBagFromContextMenu); } } void BattleUseFunc_PokeFlute(u8 taskId) { - sub_8108CB4(); + Bag_BeginCloseWin0Animation(); ItemMenu_StartFadeToExitCallback(taskId); } @@ -764,7 +764,7 @@ void BattleUseFunc_GuardSpec(u8 taskId) { if (ExecuteTableBasedItemEffect(&gPlayerParty[gBattlerPartyIndexes[gBattlerInMenuId]], gSpecialVar_ItemId, gBattlerPartyIndexes[gBattlerInMenuId], 0)) { - DisplayItemMessageInBag(taskId, 2, gText_WontHaveEffect, sub_810A1F8); + DisplayItemMessageInBag(taskId, 2, gText_WontHaveEffect, Task_ReturnToBagFromContextMenu); } else { @@ -790,7 +790,7 @@ static void Task_BattleUse_StatBooster_WaitButton_ReturnToBattle(u8 taskId) { if (JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON)) { - sub_8108CB4(); + Bag_BeginCloseWin0Animation(); ItemMenu_StartFadeToExitCallback(taskId); } } diff --git a/src/menu_helpers.c b/src/menu_helpers.c index 905e3c1ea..dedd7aa9e 100644 --- a/src/menu_helpers.c +++ b/src/menu_helpers.c @@ -107,7 +107,7 @@ bool8 itemid_link_can_give_berry(u16 itemId) return FALSE; } -bool8 itemid_80BF6D8_mail_related(u16 itemId) +bool8 CanWriteMailHere(u16 itemId) { if (IsUpdateLinkStateCBActive() != TRUE && InUnionRoom() != TRUE) return TRUE; @@ -242,7 +242,7 @@ bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1) return FALSE; } -u8 sub_80BF8E4(void) +u8 GetDialogBoxFontId(void) { if (!ContextNpcGetTextColor()) return 4; diff --git a/src/new_game.c b/src/new_game.c index 471c49e67..381ba28c8 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -98,7 +98,7 @@ void ResetMenuAndMonGlobals(void) gDifferentSaveFile = FALSE; ZeroPlayerPartyMons(); ZeroEnemyPartyMons(); - sub_81089BC(); + ResetBagCursorPositions(); ResetTMCaseCursorPos(); BerryPouch_CursorResetToTop(); ResetQuestLog(); diff --git a/src/party_menu.c b/src/party_menu.c index d12a17e6c..b6ec995ff 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -3451,7 +3451,7 @@ static void CursorCB_Give(u8 taskId) void CB2_SelectBagItemToGive(void) { - GoToBagMenu(1, 3, CB2_GiveHoldItem); + GoToBagMenu(ITEMMENULOCATION_PARTY, OPEN_BAG_LAST, CB2_GiveHoldItem); } void CB2_GiveHoldItem(void) @@ -4283,12 +4283,12 @@ void CB2_ShowPartyMenuForItemUse(void) static void CB2_ReturnToBagMenu(void) { - GoToBagMenu(11, 3, NULL); + GoToBagMenu(ITEMMENULOCATION_LAST, OPEN_BAG_LAST, NULL); } static void CB2_ReturnToTMCaseMenu(void) { - InitTMCase(5, NULL, 0xFF); + InitTMCase(TMCASE_NA, NULL, 0xFF); } static void CB2_ReturnToBerryPouchMenu(void) @@ -5904,7 +5904,7 @@ void OpenPartyMenuInBattle(void) void ChooseMonForInBattleItem(void) { - InitPartyMenu(PARTY_MENU_TYPE_IN_BATTLE, GetPartyLayoutFromBattleType(), PARTY_ACTION_REUSABLE_ITEM, FALSE, PARTY_MSG_USE_ON_WHICH_MON, sub_8120FCC, sub_8107ECC); + InitPartyMenu(PARTY_MENU_TYPE_IN_BATTLE, GetPartyLayoutFromBattleType(), PARTY_ACTION_REUSABLE_ITEM, FALSE, PARTY_MSG_USE_ON_WHICH_MON, sub_8120FCC, CB2_BagMenuFromBattle); nullsub_44(); UpdatePartyToBattleOrder(); } @@ -5919,7 +5919,7 @@ void sub_81279E0(void) FALSE, PARTY_MSG_NONE, sub_8120C3C, - sub_8107ECC); + CB2_BagMenuFromBattle); sub_80EB2F4(8); } else @@ -5929,7 +5929,7 @@ void sub_81279E0(void) if (GetPocketByItemId(gSpecialVar_ItemId) == POCKET_BERRY_POUCH) callback = CB2_ReturnToBerryPouchMenu; else - callback = sub_8107ECC; + callback = CB2_BagMenuFromBattle; InitPartyMenu(PARTY_MENU_TYPE_IN_BATTLE, GetPartyLayoutFromBattleType(), PARTY_ACTION_USE_ITEM, diff --git a/src/player_pc.c b/src/player_pc.c index 00d41abe6..63870c86a 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -322,7 +322,7 @@ static void Task_DepositItem_WaitFadeAndGoToBag(u8 taskId) if (!gPaletteFade.active) { CleanupOverworldWindowsAndTilemaps(); - GoToBagMenu(3, POCKET_ITEMS - 1, CB2_ReturnToField); + GoToBagMenu(ITEMMENULOCATION_ITEMPC, OPEN_BAG_ITEMS, CB2_ReturnToField); gFieldCallback = CB2_ReturnFromDepositMenu; DestroyTask(taskId); } diff --git a/src/pokemon.c b/src/pokemon.c index 1270a25ed..5b715133b 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -1547,7 +1547,7 @@ const struct SpriteTemplate gUnknown_825DF50[] = .paletteTag = 0, .oam = &gOamData_824F018, .anims = NULL, - .images = gTrainerBackPicTable_PokeDude, + .images = gTrainerBackPicTable_Pokedude, .affineAnims = gSpriteAffineAnimTable_82348C8, .callback = sub_80120C4, }, diff --git a/src/script_menu.c b/src/script_menu.c index 42be3b539..72ff1dc9e 100644 --- a/src/script_menu.c +++ b/src/script_menu.c @@ -565,36 +565,37 @@ const struct MultichoiceListStruct gScriptMultiChoiceMenus[] = { { sScriptMultiChoiceMenu_TrainerTowerMode, NELEMS(sScriptMultiChoiceMenu_TrainerTowerMode) } }; +// From Cool to Berries goes unused const u8 *const gStdStringPtrs[] = { - gText_Cool, - gText_Beauty, - gText_Cute, - gText_Smart, - gText_Tough, - gText_Cool_2, - gText_Beauty_2, - gText_Cute_2, - gText_Smart_2, - gText_Tough_2, - gText_Items, - gText_KeyItems, - gText_PokeBalls, - gText_TMsAndHMs, - gText_Berries, - gText_Boulderbadge, - gText_Cascadebadge, - gText_Thunderbadge, - gText_Rainbowbadge, - gText_Soulbadge, - gText_Marshbadge, - gText_Volcanobadge, - gText_Earthbadge, - gText_Coins_2, - gText_ItemsPocket, - gText_KeyItemsPocket, - gText_PokeBallsPocket, - gText_TmCase, - gText_BerryPouch_2 + [STDSTRING_COOL] = gText_Cool, + [STDSTRING_BEAUTY] = gText_Beauty, + [STDSTRING_CUTE] = gText_Cute, + [STDSTRING_SMART] = gText_Smart, + [STDSTRING_TOUGH] = gText_Tough, + [STDSTRING_COOL2] = gText_Cool_2, + [STDSTRING_BEAUTY2] = gText_Beauty_2, + [STDSTRING_CUTE2] = gText_Cute_2, + [STDSTRING_SMART2] = gText_Smart_2, + [STDSTRING_TOUGH2] = gText_Tough_2, + [STDSTRING_ITEMS] = gText_Items, + [STDSTRING_KEY_ITEMS] = gText_KeyItems, + [STDSTRING_POKEBALLS] = gText_PokeBalls, + [STDSTRING_TMHMS] = gText_TMsAndHMs, + [STDSTRING_BERRIES] = gText_Berries, + [STDSTRING_BOULDER_BADGE] = gText_Boulderbadge, + [STDSTRING_CASCADE_BADGE] = gText_Cascadebadge, + [STDSTRING_THUNDER_BADGE] = gText_Thunderbadge, + [STDSTRING_RAINBOW_BADGE] = gText_Rainbowbadge, + [STDSTRING_SOUL_BADGE] = gText_Soulbadge, + [STDSTRING_MARSH_BADGE] = gText_Marshbadge, + [STDSTRING_VOLCANO_BADGE] = gText_Volcanobadge, + [STDSTRING_EARTH_BADGE] = gText_Earthbadge, + [STDSTRING_COINS] = gText_Coins_2, + [STDSTRING_ITEMS_POCKET] = gText_ItemsPocket, + [STDSTRING_KEY_ITEMS_POCKET] = gText_KeyItemsPocket, + [STDSTRING_POKEBALLS_POCKET] = gText_PokeBallsPocket, + [STDSTRING_TM_CASE] = gText_TmCase, + [STDSTRING_BERRY_POUCH] = gText_BerryPouch_2 }; static const u8 *const sDescriptionPtrs_CableClub_TradeBattleCancel[] = { diff --git a/src/shop.c b/src/shop.c index b410b32b9..865688928 100644 --- a/src/shop.c +++ b/src/shop.c @@ -307,7 +307,7 @@ static void Task_HandleShopMenuSell(u8 taskId) static void CB2_GoToSellMenu(void) { - GoToBagMenu(2, POCKET_POKE_BALLS, CB2_ReturnToField); + GoToBagMenu(ITEMMENULOCATION_SHOP, OPEN_BAG_LAST, CB2_ReturnToField); gFieldCallback = MapPostLoadHook_ReturnToShopMenu; } diff --git a/src/teachy_tv.c b/src/teachy_tv.c index 11d4a80b1..1467131b0 100644 --- a/src/teachy_tv.c +++ b/src/teachy_tv.c @@ -34,16 +34,6 @@ #include "fieldmap.h" #include "strings.h" -enum TeachyTvScript -{ - TTVSCR_BATTLE, - TTVSCR_STATUS, - TTVSCR_MATCHUPS, - TTVSCR_CATCHING, - TTVSCR_TMS, - TTVSCR_REGISTER -}; - struct TeachyTvCtrlBlk { MainCallback callback; @@ -805,7 +795,7 @@ static void TTVcmd_NpcMoveAndSetupTextPrinter(u8 taskId) if (spriteAddr->pos2.x == 0x78) { StartSpriteAnim(&gSprites[data[1]], 0); - TeachyTvInitTextPrinter(gTeachyTvText_PokeDudeSaysHello); + TeachyTvInitTextPrinter(gTeachyTvText_PokedudeSaysHello); data[2] = 0; ++data[3]; } @@ -1103,9 +1093,9 @@ static void TTVcmd_TaskBattleOrFadeByOptionChosen(u8 taskId) static void TeachyTvSetupBagItemsByOptionChosen(void) { if (sStaticResources.whichScript == TTVSCR_TMS) - sub_810B108(10); + InitPokedudeBag(ITEMMENULOCATION_TTVSCR_TMS); else - sub_810B108(9); + InitPokedudeBag(ITEMMENULOCATION_TTVSCR_REGISTER); } static void TeachyTvPostBattleFadeControl(u8 taskId) diff --git a/src/tm_case.c b/src/tm_case.c index 40509ed1b..d45061bde 100644 --- a/src/tm_case.c +++ b/src/tm_case.c @@ -67,7 +67,7 @@ struct UnkStruct_203B11C static EWRAM_DATA struct UnkStruct_203B10C sTMCaseStaticResources = {}; static EWRAM_DATA struct UnkStruct_203B118 * sTMCaseDynamicResources = NULL; -static EWRAM_DATA struct UnkStruct_203B11C * sPokeDudePackBackup = NULL; +static EWRAM_DATA struct UnkStruct_203B11C * sPokedudePackBackup = NULL; static EWRAM_DATA void * sTilemapBuffer = NULL; // tilemap buffer static EWRAM_DATA struct ListMenuItem * sListMenuItemsBuffer = NULL; static EWRAM_DATA u8 (* sListMenuStringsBuffer)[29] = NULL; @@ -977,7 +977,7 @@ static void Task_SelectTMAction_FromSellMenu(u8 taskId) { CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_OhNoICantBuyThat); - TMCase_PrintMessageWithFollowupTask(taskId, sub_80BF8E4(), gStringVar4, Subtask_CloseContextMenuAndReturnToMain); + TMCase_PrintMessageWithFollowupTask(taskId, GetDialogBoxFontId(), gStringVar4, Subtask_CloseContextMenuAndReturnToMain); } else { @@ -993,7 +993,7 @@ static void Task_SelectTMAction_FromSellMenu(u8 taskId) data[2] = 99; CopyItemName(gSpecialVar_ItemId, gStringVar1); StringExpandPlaceholders(gStringVar4, gText_HowManyWouldYouLikeToSell); - TMCase_PrintMessageWithFollowupTask(taskId, sub_80BF8E4(), gStringVar4, Task_InitQuantitySelectUI); + TMCase_PrintMessageWithFollowupTask(taskId, GetDialogBoxFontId(), gStringVar4, Task_InitQuantitySelectUI); } } } @@ -1004,7 +1004,7 @@ static void Task_AskConfirmSaleWithAmount(u8 taskId) ConvertIntToDecimalStringN(gStringVar3, itemid_get_market_price(BagGetItemIdByPocketPosition(POCKET_TM_CASE, data[1])) / 2 * data[8], STR_CONV_MODE_LEFT_ALIGN, 6); StringExpandPlaceholders(gStringVar4, gText_ICanPayThisMuch_WouldThatBeOkay); - TMCase_PrintMessageWithFollowupTask(taskId, sub_80BF8E4(), gStringVar4, Task_PlaceYesNoBox); + TMCase_PrintMessageWithFollowupTask(taskId, GetDialogBoxFontId(), gStringVar4, Task_PlaceYesNoBox); } static void Task_PlaceYesNoBox(u8 taskId) @@ -1133,13 +1133,13 @@ static void Task_AfterSale_ReturnToList(u8 taskId) } } -void PokeDude_InitTMCase(void) +void Pokedude_InitTMCase(void) { - sPokeDudePackBackup = AllocZeroed(sizeof(*sPokeDudePackBackup)); - memcpy(sPokeDudePackBackup->bagPocket_TMHM, gSaveBlock1Ptr->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM)); - memcpy(sPokeDudePackBackup->bagPocket_KeyItems, gSaveBlock1Ptr->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems)); - sPokeDudePackBackup->unk_160 = sTMCaseStaticResources.selectedRow; - sPokeDudePackBackup->unk_162 = sTMCaseStaticResources.scrollOffset; + sPokedudePackBackup = AllocZeroed(sizeof(*sPokedudePackBackup)); + memcpy(sPokedudePackBackup->bagPocket_TMHM, gSaveBlock1Ptr->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM)); + memcpy(sPokedudePackBackup->bagPocket_KeyItems, gSaveBlock1Ptr->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems)); + sPokedudePackBackup->unk_160 = sTMCaseStaticResources.selectedRow; + sPokedudePackBackup->unk_162 = sTMCaseStaticResources.scrollOffset; ClearItemSlots(gSaveBlock1Ptr->bagPocket_TMHM, NELEMS(gSaveBlock1Ptr->bagPocket_TMHM)); ClearItemSlots(gSaveBlock1Ptr->bagPocket_KeyItems, NELEMS(gSaveBlock1Ptr->bagPocket_KeyItems)); ResetTMCaseCursorPos(); @@ -1234,7 +1234,7 @@ static void Task_TMCaseDude_Playback(u8 taskId) break; case 8: FillBG2RowWithPalette_2timesNplus1(1); - TMCase_PrintMessageWithFollowupTask(taskId, 4, gPokeDudeText_TMTypes, 0); + TMCase_PrintMessageWithFollowupTask(taskId, 4, gPokedudeText_TMTypes, 0); gTasks[taskId].func = Task_TMCaseDude_Playback; data[8]++; break; @@ -1256,7 +1256,7 @@ static void Task_TMCaseDude_Playback(u8 taskId) break; case 18: FillBG2RowWithPalette_2timesNplus1(1); - TMCase_PrintMessageWithFollowupTask(taskId, 4, gPokeDudeText_ReadTMDescription, NULL); + TMCase_PrintMessageWithFollowupTask(taskId, 4, gPokedudeText_ReadTMDescription, NULL); gTasks[taskId].func = Task_TMCaseDude_Playback; // this function data[8]++; break; @@ -1267,12 +1267,12 @@ static void Task_TMCaseDude_Playback(u8 taskId) case 21: if (!gPaletteFade.active) { - memcpy(gSaveBlock1Ptr->bagPocket_TMHM, sPokeDudePackBackup->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM)); - memcpy(gSaveBlock1Ptr->bagPocket_KeyItems, sPokeDudePackBackup->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems)); + memcpy(gSaveBlock1Ptr->bagPocket_TMHM, sPokedudePackBackup->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM)); + memcpy(gSaveBlock1Ptr->bagPocket_KeyItems, sPokedudePackBackup->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems)); DestroyListMenuTask(data[0], NULL, NULL); - sTMCaseStaticResources.selectedRow = sPokeDudePackBackup->unk_160; - sTMCaseStaticResources.scrollOffset = sPokeDudePackBackup->unk_162; - Free(sPokeDudePackBackup); + sTMCaseStaticResources.selectedRow = sPokedudePackBackup->unk_160; + sTMCaseStaticResources.scrollOffset = sPokedudePackBackup->unk_162; + Free(sPokedudePackBackup); CpuFastCopy(gPlttBufferFaded, gPlttBufferUnfaded, 0x400); CB2_SetUpReshowBattleScreenAfterMenu(); BeginNormalPaletteFade(0xFFFFFFFF, -2, 0, 16, 0); diff --git a/src/trade_scene.c b/src/trade_scene.c index 9e3c1d0ce..b420cb196 100644 --- a/src/trade_scene.c +++ b/src/trade_scene.c @@ -2443,7 +2443,7 @@ static void CreateInGameTradePokemonInternal(u8 playerSlot, u8 inGameTradeIdx) const struct InGameTrade * inGameTrade = &sInGameTrades[inGameTradeIdx]; u8 level = GetMonData(&gPlayerParty[playerSlot], MON_DATA_LEVEL); struct MailStruct mail; - u8 metLocation = MAPSEC_IN_GAME_TRADE; + u8 metLocation = METLOC_IN_GAME_TRADE; struct Pokemon * tradeMon = &gEnemyParty[0]; u8 mailNum; CreateMon(tradeMon, inGameTrade->species, level, 32, TRUE, inGameTrade->personality, TRUE, inGameTrade->otId); diff --git a/sym_ewram.txt b/sym_ewram.txt index 188ccd3aa..9ceae4842 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -335,45 +335,7 @@ gUnknown_203ACF0: @ 203ACF0 .align 2 .include "src/list_menu.o" .align 2 -gUnknown_203ACFC: @ 203ACFC - .space 0x6 - -gUnknown_203AD02: @ 203AD02 - .space 0x2 - -gUnknown_203AD04: @ 203AD04 - .space 0x6 - -gUnknown_203AD0A: @ 203AD0A - .space 0x6 - -gUnknown_203AD10: @ 203AD10 - .space 0x4 - -gUnknown_203AD14: @ 203AD14 - .space 0x4 - -gUnknown_203AD18: @ 203AD18 - .space 0x4 - -gUnknown_203AD1C: @ 203AD1C - .space 0x4 - -gUnknown_203AD20: @ 203AD20 - .space 0x4 - -gUnknown_203AD24: @ 203AD24 - .space 0x4 - -gUnknown_203AD28: @ 203AD28 - .space 0x4 - -gUnknown_203AD2C: @ 203AD2C - .space 0x4 - -gSpecialVar_ItemId: @ 203AD30 - .space 0x4 - + .include "src/item_menu.o" .align 2 .include "src/bag.o" .align 2 |