diff options
194 files changed, 5716 insertions, 10694 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/asm/save_failed_screen.s b/asm/save_failed_screen.s deleted file mode 100644 index aa9d375a3..000000000 --- a/asm/save_failed_screen.s +++ /dev/null @@ -1,595 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80F50F4 -sub_80F50F4: @ 80F50F4 - ldr r1, _080F50FC @ =gUnknown_3005430 - movs r0, 0 - str r0, [r1] - bx lr - .align 2, 0 -_080F50FC: .4byte gUnknown_3005430 - thumb_func_end sub_80F50F4 - - thumb_func_start DoSaveFailedScreen -DoSaveFailedScreen: @ 80F5100 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080F5110 @ =gUnknown_203AB4C - strh r0, [r1] - ldr r1, _080F5114 @ =gUnknown_3005430 - movs r0, 0x1 - str r0, [r1] - bx lr - .align 2, 0 -_080F5110: .4byte gUnknown_203AB4C -_080F5114: .4byte gUnknown_3005430 - thumb_func_end DoSaveFailedScreen - - thumb_func_start sub_80F5118 -sub_80F5118: @ 80F5118 - push {lr} - ldr r0, _080F5130 @ =gUnknown_203AB50 - ldrb r1, [r0] - adds r2, r0, 0 - cmp r1, 0x8 - bls _080F5126 - b _080F52D6 -_080F5126: - lsls r0, r1, 2 - ldr r1, _080F5134 @ =_080F5138 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080F5130: .4byte gUnknown_203AB50 -_080F5134: .4byte _080F5138 - .align 2, 0 -_080F5138: - .4byte _080F515C - .4byte _080F5190 - .4byte _080F51B4 - .4byte _080F51E4 - .4byte _080F5204 - .4byte _080F5240 - .4byte _080F5280 - .4byte _080F5298 - .4byte _080F52B4 -_080F515C: - ldr r0, _080F5168 @ =gUnknown_3005430 - ldr r0, [r0] - cmp r0, 0 - bne _080F516C - movs r0, 0 - b _080F52D8 - .align 2, 0 -_080F5168: .4byte gUnknown_3005430 -_080F516C: - ldr r0, _080F5184 @ =gMPlayInfo_BGM - ldr r1, _080F5188 @ =0x0000ffff - movs r2, 0x80 - bl m4aMPlayVolumeControl - bl SaveCallbacks - ldr r1, _080F518C @ =gUnknown_203AB50 - movs r0, 0x1 - strb r0, [r1] - b _080F52D6 - .align 2, 0 -_080F5184: .4byte gMPlayInfo_BGM -_080F5188: .4byte 0x0000ffff -_080F518C: .4byte gUnknown_203AB50 -_080F5190: - bl SaveMapTiles - bl SaveMapGPURegs - bl SaveMapTextColors - bl sub_80F52EC - movs r0, 0 - movs r1, 0 - bl SetGpuReg - ldr r1, _080F51B0 @ =gUnknown_203AB50 - movs r0, 0x2 - strb r0, [r1] - b _080F52D6 - .align 2, 0 -_080F51B0: .4byte gUnknown_203AB50 -_080F51B4: - ldr r1, _080F51D8 @ =0x0600c000 - movs r2, 0x80 - lsls r2, 7 - movs r0, 0 - movs r3, 0 - bl RequestDma3Fill - ldr r0, _080F51DC @ =gUnknown_841EE44 - movs r1, 0xA0 - lsls r1, 19 - movs r2, 0x20 - movs r3, 0 - bl RequestDma3Copy - ldr r1, _080F51E0 @ =gUnknown_203AB50 - movs r0, 0x3 - strb r0, [r1] - b _080F52D6 - .align 2, 0 -_080F51D8: .4byte 0x0600c000 -_080F51DC: .4byte gUnknown_841EE44 -_080F51E0: .4byte gUnknown_203AB50 -_080F51E4: - bl sub_80F53E8 - ldr r0, _080F51FC @ =gUnknown_8418C83 - bl sub_80F5404 - bl sub_80F53CC - ldr r1, _080F5200 @ =gUnknown_203AB50 - movs r0, 0x4 - strb r0, [r1] - b _080F52D6 - .align 2, 0 -_080F51FC: .4byte gUnknown_8418C83 -_080F5200: .4byte gUnknown_203AB50 -_080F5204: - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x10 - movs r1, 0 - bl SetGpuReg - movs r0, 0x12 - movs r1, 0 - bl SetGpuReg - ldr r1, _080F5238 @ =0x00001f0c - movs r0, 0x8 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 1 - movs r0, 0 - bl SetGpuReg - ldr r1, _080F523C @ =gUnknown_203AB50 - movs r0, 0x5 - strb r0, [r1] - b _080F52D6 - .align 2, 0 -_080F5238: .4byte 0x00001f0c -_080F523C: .4byte gUnknown_203AB50 -_080F5240: - bl sub_80F5458 - adds r1, r0, 0 - cmp r1, 0x1 - bne _080F5260 - ldr r0, _080F5258 @ =gSaveSucceeded - strh r1, [r0] - ldr r0, _080F525C @ =gUnknown_8418E09 - bl sub_80F5404 - b _080F526C - .align 2, 0 -_080F5258: .4byte gSaveSucceeded -_080F525C: .4byte gUnknown_8418E09 -_080F5260: - ldr r0, _080F5274 @ =gSaveSucceeded - movs r1, 0xFF - strh r1, [r0] - ldr r0, _080F5278 @ =gUnknown_8418CD9 - bl sub_80F5404 -_080F526C: - ldr r1, _080F527C @ =gUnknown_203AB50 - movs r0, 0x6 - strb r0, [r1] - b _080F52D6 - .align 2, 0 -_080F5274: .4byte gSaveSucceeded -_080F5278: .4byte gUnknown_8418CD9 -_080F527C: .4byte gUnknown_203AB50 -_080F5280: - ldr r0, _080F5294 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080F52D6 - movs r0, 0x7 - strb r0, [r2] - b _080F52D6 - .align 2, 0 -_080F5294: .4byte gMain -_080F5298: - movs r0, 0 - movs r1, 0 - bl SetGpuReg - bl RestoreMapTiles - bl sub_80F52EC - ldr r1, _080F52B0 @ =gUnknown_203AB50 - movs r0, 0x8 - strb r0, [r1] - b _080F52D6 - .align 2, 0 -_080F52B0: .4byte gUnknown_203AB50 -_080F52B4: - ldr r0, _080F52DC @ =gMPlayInfo_BGM - ldr r1, _080F52E0 @ =0x0000ffff - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl - bl RestoreMapTextColors - bl RestoreGPURegs - bl RestoreCallbacks - ldr r0, _080F52E4 @ =gUnknown_3005430 - movs r1, 0 - str r1, [r0] - ldr r0, _080F52E8 @ =gUnknown_203AB50 - strb r1, [r0] -_080F52D6: - movs r0, 0x1 -_080F52D8: - pop {r1} - bx r1 - .align 2, 0 -_080F52DC: .4byte gMPlayInfo_BGM -_080F52E0: .4byte 0x0000ffff -_080F52E4: .4byte gUnknown_3005430 -_080F52E8: .4byte gUnknown_203AB50 - thumb_func_end sub_80F5118 - - thumb_func_start sub_80F52EC -sub_80F52EC: @ 80F52EC - push {r4,r5,lr} - movs r1, 0 - ldr r5, _080F5310 @ =0x000001ff - movs r4, 0xA0 - lsls r4, 19 - movs r2, 0 - ldr r3, _080F5314 @ =0x05000200 -_080F52FA: - adds r0, r1, r4 - strh r2, [r0] - adds r0, r1, r3 - strh r2, [r0] - adds r1, 0x2 - cmp r1, r5 - ble _080F52FA - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F5310: .4byte 0x000001ff -_080F5314: .4byte 0x05000200 - thumb_func_end sub_80F52EC - - thumb_func_start sub_80F5318 -sub_80F5318: @ 80F5318 - push {lr} - ldr r0, _080F532C @ =gDecompressionBuffer + 0x3800 - ldr r1, _080F5330 @ =0x0600f800 - movs r2, 0xA0 - lsls r2, 3 - movs r3, 0 - bl RequestDma3Copy - pop {r0} - bx r0 - .align 2, 0 -_080F532C: .4byte gDecompressionBuffer + 0x3800 -_080F5330: .4byte 0x0600f800 - thumb_func_end sub_80F5318 - - thumb_func_start sub_80F5334 -sub_80F5334: @ 80F5334 - push {lr} - ldr r0, _080F5348 @ =gDecompressionBuffer + 0x020 - ldr r1, _080F534C @ =0x0600c020 - movs r2, 0x8C - lsls r2, 6 - movs r3, 0 - bl RequestDma3Copy - pop {r0} - bx r0 - .align 2, 0 -_080F5348: .4byte gDecompressionBuffer + 0x020 -_080F534C: .4byte 0x0600c020 - thumb_func_end sub_80F5334 - - thumb_func_start sub_80F5350 -sub_80F5350: @ 80F5350 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, [sp, 0x20] - ldr r5, [sp, 0x24] - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r2, 24 - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 16 - lsrs r7, r5, 16 - lsrs r0, r2, 24 - adds r2, r0, r4 - cmp r0, r2 - bge _080F53B6 - mov r12, r2 - ldr r1, _080F53C8 @ =gDecompressionBuffer + 0x3800 - mov r10, r1 -_080F5386: - mov r4, r9 - mov r2, r8 - adds r1, r4, r2 - adds r3, r0, 0x1 - cmp r4, r1 - bge _080F53AE - lsls r2, r0, 6 - mov r5, r10 -_080F5396: - lsls r0, r4, 1 - adds r0, r2, r0 - adds r0, r5 - strh r6, [r0] - adds r0, r6, r7 - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r1 - blt _080F5396 -_080F53AE: - lsls r0, r3, 16 - lsrs r0, 16 - cmp r0, r12 - blt _080F5386 -_080F53B6: - bl sub_80F5318 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F53C8: .4byte gDecompressionBuffer + 0x3800 - thumb_func_end sub_80F5350 - - thumb_func_start sub_80F53CC -sub_80F53CC: @ 80F53CC - push {lr} - sub sp, 0x8 - movs r0, 0xA - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r1, 0x1 - movs r2, 0x5 - movs r3, 0x1C - bl sub_80F5350 - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_80F53CC - - thumb_func_start sub_80F53E8 -sub_80F53E8: @ 80F53E8 - push {lr} - sub sp, 0x8 - movs r0, 0x14 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - movs r1, 0 - movs r2, 0 - movs r3, 0x1E - bl sub_80F5350 - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_80F53E8 - - thumb_func_start sub_80F5404 -sub_80F5404: @ 80F5404 - push {r4,r5,lr} - sub sp, 0x10 - adds r5, r0, 0 - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0x3 - bl GenerateFontHalfRowLookupTable - add r1, sp, 0xC - ldr r2, _080F544C @ =0x00001111 - adds r0, r2, 0 - strh r0, [r1] - ldr r4, _080F5450 @ =gDecompressionBuffer + 0x020 - ldr r2, _080F5454 @ =0x01001180 - adds r0, r1, 0 - adds r1, r4, 0 - bl CpuSet - movs r0, 0x2 - str r0, [sp] - movs r0, 0x1C - str r0, [sp, 0x4] - movs r0, 0xA - str r0, [sp, 0x8] - movs r0, 0x2 - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0x2 - bl HelpSystemRenderText - bl sub_80F5334 - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F544C: .4byte 0x00001111 -_080F5450: .4byte gDecompressionBuffer + 0x020 -_080F5454: .4byte 0x01001180 - thumb_func_end sub_80F5404 - - thumb_func_start sub_80F5458 -sub_80F5458: @ 80F5458 - push {r4,r5,lr} - movs r5, 0 - ldr r0, _080F5490 @ =gDamagedSaveSectors - ldr r1, [r0] - adds r4, r0, 0 - cmp r1, 0 - beq _080F548C -_080F5466: - ldr r0, [r4] - bl sub_80F5540 - cmp r0, 0 - bne _080F5498 - ldr r0, _080F5494 @ =gUnknown_203AB4C - ldrb r0, [r0] - bl HandleSavingData - adds r5, 0x1 - ldr r0, [r4] - cmp r0, 0 - beq _080F548C - ldr r4, _080F5490 @ =gDamagedSaveSectors - cmp r5, 0x2 - ble _080F5466 - ldr r0, [r4] - cmp r0, 0 - bne _080F5498 -_080F548C: - movs r0, 0x1 - b _080F549A - .align 2, 0 -_080F5490: .4byte gDamagedSaveSectors -_080F5494: .4byte gUnknown_203AB4C -_080F5498: - movs r0, 0 -_080F549A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80F5458 - - thumb_func_start VerifySectorWipe -VerifySectorWipe: @ 80F54A0 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r4, _080F54C4 @ =gSaveDataBuffer - movs r3, 0x80 - lsls r3, 5 - movs r1, 0 - adds r2, r4, 0 - bl ReadFlash - movs r1, 0 - ldr r2, _080F54C8 @ =0x000003ff -_080F54B8: - ldr r0, [r4] - cmp r0, 0 - beq _080F54CC - movs r0, 0x1 - b _080F54DA - .align 2, 0 -_080F54C4: .4byte gSaveDataBuffer -_080F54C8: .4byte 0x000003ff -_080F54CC: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - adds r4, 0x4 - cmp r1, r2 - bls _080F54B8 - movs r0, 0 -_080F54DA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end VerifySectorWipe - - thumb_func_start WipeSector -WipeSector: @ 80F54E0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r7, r0, 0 - movs r0, 0 - lsls r6, r7, 16 - ldr r1, _080F5538 @ =ProgramFlashByte - mov r9, r1 - ldr r1, _080F553C @ =0x00000fff - mov r8, r1 -_080F54F6: - movs r4, 0 - adds r5, r0, 0x1 -_080F54FA: - mov r0, r9 - ldr r3, [r0] - lsrs r0, r6, 16 - adds r1, r4, 0 - movs r2, 0 - bl _call_via_r3 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r8 - bls _080F54FA - adds r0, r7, 0 - bl VerifySectorWipe - lsls r0, 16 - lsrs r1, r0, 16 - lsls r0, r5, 16 - lsrs r0, 16 - cmp r1, 0 - beq _080F5528 - cmp r0, 0x81 - bls _080F54F6 -_080F5528: - adds r0, r1, 0 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080F5538: .4byte ProgramFlashByte -_080F553C: .4byte 0x00000fff - thumb_func_end WipeSector - - thumb_func_start sub_80F5540 -sub_80F5540: @ 80F5540 - push {r4-r6,lr} - adds r5, r0, 0 - movs r6, 0 -_080F5546: - movs r4, 0x1 - lsls r4, r6 - adds r0, r5, 0 - ands r0, r4 - cmp r0, 0 - beq _080F555E - adds r0, r6, 0 - bl WipeSector - cmp r0, 0 - bne _080F555E - bics r5, r4 -_080F555E: - adds r6, 0x1 - cmp r6, 0x1F - ble _080F5546 - cmp r5, 0 - beq _080F556C - movs r0, 0x1 - b _080F556E -_080F556C: - movs r0, 0 -_080F556E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80F5540 - - .align 2, 0 @ Don't pad with nop. diff --git a/common_syms/quest_log.txt b/common_syms/quest_log.txt index 4ecbf66a8..cc7fbbfcf 100644 --- a/common_syms/quest_log.txt +++ b/common_syms/quest_log.txt @@ -1 +1,4 @@ gUnknown_3005E88 +sNumQuestLogs +gUnknown_3005E90 +gUnknown_3005E94 diff --git a/common_syms/save_failed_screen.txt b/common_syms/save_failed_screen.txt new file mode 100644 index 000000000..caab09b26 --- /dev/null +++ b/common_syms/save_failed_screen.txt @@ -0,0 +1 @@ +sIsInSaveFailedScreen diff --git a/data/event_scripts.s b/data/event_scripts.s index 2c7fa7437..4cb25db68 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -29,6 +29,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 @@ -150,10 +151,10 @@ gStdScriptsEnd:: .include "data/maps/SafariZone_East/scripts.inc" .include "data/maps/SafariZone_North/scripts.inc" .include "data/maps/SafariZone_West/scripts.inc" - .include "data/maps/SafariZone_Building1/scripts.inc" - .include "data/maps/SafariZone_Building2/scripts.inc" - .include "data/maps/SafariZone_Building3/scripts.inc" - .include "data/maps/SafariZone_Building4/scripts.inc" + .include "data/maps/SafariZone_Center_RestHouse/scripts.inc" + .include "data/maps/SafariZone_East_RestHouse/scripts.inc" + .include "data/maps/SafariZone_North_RestHouse/scripts.inc" + .include "data/maps/SafariZone_West_RestHouse/scripts.inc" .include "data/maps/SafariZone_SecretHouse/scripts.inc" .include "data/maps/CeruleanCave_1F/scripts.inc" .include "data/maps/CeruleanCave_2F/scripts.inc" @@ -396,12 +397,12 @@ gStdScriptsEnd:: .include "data/maps/CeladonCity_Hotel/scripts.inc" .include "data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc" .include "data/maps/FuchsiaCity_Mart/scripts.inc" - .include "data/maps/FuchsiaCity_ZooBuilding/scripts.inc" + .include "data/maps/FuchsiaCity_SafariZone_Office/scripts.inc" .include "data/maps/FuchsiaCity_Gym/scripts.inc" .include "data/maps/FuchsiaCity_House1/scripts.inc" .include "data/maps/FuchsiaCity_PokemonCenter_1F/scripts.inc" .include "data/maps/FuchsiaCity_PokemonCenter_2F/scripts.inc" - .include "data/maps/FuchsiaCity_Building1/scripts.inc" + .include "data/maps/FuchsiaCity_WardensHouse/scripts.inc" .include "data/maps/FuchsiaCity_House2/scripts.inc" .include "data/maps/FuchsiaCity_House3/scripts.inc" .include "data/maps/CinnabarIsland_Gym/scripts.inc" @@ -563,10 +564,10 @@ gStdScriptsEnd:: .include "data/maps/SafariZone_East/text.inc" .include "data/maps/SafariZone_North/text.inc" .include "data/maps/SafariZone_West/text.inc" - .include "data/maps/SafariZone_Building1/text.inc" - .include "data/maps/SafariZone_Building2/text.inc" - .include "data/maps/SafariZone_Building3/text.inc" - .include "data/maps/SafariZone_Building4/text.inc" + .include "data/maps/SafariZone_Center_RestHouse/text.inc" + .include "data/maps/SafariZone_East_RestHouse/text.inc" + .include "data/maps/SafariZone_North_RestHouse/text.inc" + .include "data/maps/SafariZone_West_RestHouse/text.inc" .include "data/maps/SafariZone_SecretHouse/text.inc" .include "data/maps/CeruleanCave_B1F/text.inc" .include "data/maps/PokemonLeague_LoreleisRoom/text.inc" @@ -711,11 +712,11 @@ gStdScriptsEnd:: .include "data/maps/CeladonCity_Hotel/text.inc" .include "data/maps/FuchsiaCity_SafariZone_Entrance/text.inc" .include "data/maps/FuchsiaCity_Mart/text.inc" - .include "data/maps/FuchsiaCity_ZooBuilding/text.inc" + .include "data/maps/FuchsiaCity_SafariZone_Office/text.inc" .include "data/maps/FuchsiaCity_Gym/text.inc" .include "data/maps/FuchsiaCity_House1/text.inc" .include "data/maps/FuchsiaCity_PokemonCenter_1F/text.inc" - .include "data/maps/FuchsiaCity_Building1/text.inc" + .include "data/maps/FuchsiaCity_WardensHouse/text.inc" .include "data/maps/FuchsiaCity_House2/text.inc" .include "data/maps/FuchsiaCity_House3/text.inc" .include "data/maps/CinnabarIsland_Gym/text.inc" @@ -740,6 +741,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" @@ -1377,118 +1379,7 @@ EventScript_1A75D5:: @ 81A75D5 return .include "data/scripts/movement.inc" - -gUnknown_81A7606:: @ 81A7606 - msgbox gUnknown_81C0DB0, MSGBOX_SIGN - end - -gUnknown_81A760F:: @ 81A760F - msgbox gUnknown_81C0DFD, MSGBOX_SIGN - end - -gUnknown_81A7618:: @ 81A7618 - msgbox gUnknown_81C0F99, MSGBOX_SIGN - end - -gUnknown_81A7621:: @ 81A7621 - msgbox gUnknown_81C12A7, MSGBOX_SIGN - end - -gUnknown_81A762A:: @ 81A762A - msgbox gUnknown_81C10C1, MSGBOX_SIGN - end - -gUnknown_81A7633:: @ 81A7633 - msgbox gUnknown_81C1273, MSGBOX_SIGN - end - -gUnknown_81A763C:: @ 81A763C - msgbox gUnknown_81C0FD8, MSGBOX_SIGN - end - -gUnknown_81A7645:: @ 81A7645 - msgbox gUnknown_81C12D6, MSGBOX_SIGN - end - -gUnknown_81A764E:: @ 81A764E - msgbox gUnknown_81C1300, MSGBOX_SIGN - end - -gUnknown_81A7657:: @ 81A7657 - msgbox Text_DishesPlatesNeatlyLinedUp, MSGBOX_SIGN - end - -gUnknown_81A7660:: @ 81A7660 - msgbox gUnknown_81C0E40, MSGBOX_SIGN - end - -gUnknown_81A7669:: @ 81A7669 - msgbox gUnknown_81C0E73, MSGBOX_SIGN - end - -gUnknown_81A7672:: @ 81A7672 - msgbox gUnknown_81C0EAC, MSGBOX_SIGN - end - -gUnknown_81A767B:: @ 81A767B - msgbox gUnknown_81C101B, MSGBOX_SIGN - end - -gUnknown_81A7684:: @ 81A7684 - msgbox gUnknown_81C1060, MSGBOX_SIGN - end - -gUnknown_81A768D:: @ 81A768D - msgbox gUnknown_81C109C, MSGBOX_SIGN - end - -gUnknown_81A7696:: @ 81A7696 - msgbox gUnknown_81C10FC, MSGBOX_SIGN - end - -gUnknown_81A769F:: @ 81A769F - msgbox gUnknown_81C1134, MSGBOX_SIGN - end - -gUnknown_81A76A8:: @ 81A76A8 - msgbox gUnknown_81C116E, MSGBOX_SIGN - end - -gUnknown_81A76B1:: @ 81A76B1 - msgbox gUnknown_81C1194, MSGBOX_SIGN - end - -gUnknown_81A76BA:: @ 81A76BA - msgbox gUnknown_81C11BA, MSGBOX_SIGN - end - -gUnknown_81A76C3:: @ 81A76C3 - msgbox gUnknown_81C11DC, MSGBOX_SIGN - end - -gUnknown_81A76CC:: @ 81A76CC - msgbox gUnknown_81C1217, MSGBOX_SIGN - end - -gUnknown_81A76D5:: @ 81A76D5 - msgbox gUnknown_81C124B, MSGBOX_SIGN - end - -gUnknown_81A76DE:: @ 81A76DE - msgbox gUnknown_81C0ECB, MSGBOX_SIGN - end - -gUnknown_81A76E7:: @ 81A76E7 - msgbox gUnknown_81C0EF7, MSGBOX_SIGN - end - -gUnknown_81A76F0:: @ 81A76F0 - msgbox gUnknown_81C0F19, MSGBOX_SIGN - end - -gUnknown_81A76F9:: @ 81A76F9 - msgbox gUnknown_81C0F59, MSGBOX_SIGN - end + .include "data/scripts/flavor_text.inc" gUnknown_81A7702:: @ 81A7702 lockall @@ -1539,7 +1430,7 @@ EventScript_1A778C:: @ 81A778C releaseall end -gUnknown_81A77A0:: @ 81A77A0 +EventScript_BagItemCanBeRegistered:: @ 81A77A0 msgbox Text_BagItemCanBeRegistered, MSGBOX_SIGN end @@ -1849,23 +1740,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" @@ -2322,643 +2213,15 @@ 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" - -@@ Block below consists of at least safari_zone.inc and flavor_text.inc. JP text making it hard to define boundaries - -EventScript_SafariWarpOut:: @ 81BFB87 - setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 3 - special ExitSafariMode - setwarp MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 255, 4, 1 - end - -EventScript_1BFB98:: @ 81BFB98 - setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 1 - special ExitSafariMode - warp MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 255, 4, 1 - waitstate - end - -EventScript_SafariRetire:: @ 81BFBAA - lockall - msgbox Text_1BFBE9, MSGBOX_YESNO - compare VAR_RESULT, YES - goto_if_eq EventScript_1BFBC0 - releaseall - end - -EventScript_1BFBC0:: @ 81BFBC0 - goto EventScript_1BFB98 - -EventScript_SafariTimesUp:: @ 81BFBC5 - lockall - playse SE_PINPON - msgbox gUnknown_81BFC1B - goto EventScript_1BFB98 - end - -EventScript_SafariOutOfBalls:: @ 81BFBD7 - lockall - playse SE_PINPON - msgbox gUnknown_81BFC53 - goto EventScript_1BFB98 - end - -Text_1BFBE9:: @ 81BFBE9 - .string "Would you like to exit the SAFARI\n" - .string "ZONE right now?$" - -gUnknown_81BFC1B:: @ 81BFC1B - .string "PA: Ding-dong!\p" - .string "Time's up!\p" - .string "PA: Your SAFARI GAME is over!$" - -gUnknown_81BFC53:: @ 81BFC53 - .string "PA: Ding-dong!\p" - .string "You are out of SAFARI BALLS!\p" - .string "PA: Your SAFARI GAME is over!$" - -Text_1BFC9D:: @ 81BFC9D - .string "サファリゾーンへ ようこそ!\p" - .string "ここでは ホウエンでは なかなか\n" - .string "みることの できない ポケモンを\p" - .string "しぜんの すがたの まま\n" - .string "めに することが できます\p" - .string "また ポケモントレーナーの\n" - .string "ようぼうに おこたえ して\p" - .string "ポケモンを\n" - .string "つかまえる ことも できます!\p" - .string "サファリゾーンを たのしんで いってね!$" - -Text_1BFD30:: @ 81BFD30 - .string "サファリゾーンへ ようこそ!\n" - .string "サファリゾーンは はじめて ですか?$" - -Text_1BFD52:: @ 81BFD52 - .string "サファリゾーンを たのしんで いってね!$" - -Text_1BFD67:: @ 81BFD67 - .string "サファリゾーンでは\n" - .string "30この サファリボールを つかって\l" - .string "ポケモンを つかまえる ことが できます\p" - .string "サファリボールを つかいきるか\n" - .string "500ぽ あるくと\p" - .string "ゲームは しゅうりょう です\p" - .string "サファリゾーンを たのしんで いってね!$" - -Text_1BFDD7:: @ 81BFDD7 - .string "サファリゾーンへ ようこそ!\p" - .string "500えんで ポケモン つかまえほうだい!\n" - .string "サファリゲームに さんか しますか?$" - -Text_1BFE0F:: @ 81BFE0F - .string "そうですか\n" - .string "こんど ぜひ さんか してください!$" - -Text_1BFE28:: @ 81BFE28 - .string "おかねが たりませんよ!$" - -Text_1BFE35:: @ 81BFE35 - .string "それでは 500えん いただきます$" - -Text_1BFE47:: @ 81BFE47 - .string "では サファリボールを どうぞ!$" - -Text_1BFE58:: @ 81BFE58 - .string "{PLAYER}は サファリボールを\n" - .string "30こ うけとった!$" - -Text_1BFE70:: @ 81BFE70 - .string "じかんに なりましたら\n" - .string "こちらから おしらせ しますので\p" - .string "ぞんぶんに おたのしみ ください!\n" - .string "では いってらっしゃい!$" - -gUnknown_81BFEAC:: @ 81BFEAC - .string "Excuse me!\n" - .string "Your PC BOX is full.$" - -Text_1BFECC:: @ 81BFECC - .string "あ! おきゃくさん\n" - .string "ポロックケースを おもちで ないですね?\p" - .string "サファリゾーンは ポロックを つかうと\n" - .string "より おたのしみ いただけますので\p" - .string "ぜひ ポロックケースを\n" - .string "おもちに なって おこし ください!$" - -Text_1BFF30:: @ 81BFF30 - .string "まだ じかんが のこっていますが\n" - .string "サファリゾーンを やめますか?$" - -Text_1BFF51:: @ 81BFF51 - .string "では ひきつづき おたのしみ ください!$" - -Text_1BFF66:: @ 81BFF66 - .string "わかりました\p" - .string "それでは のこりの サファリボールを\n" - .string "おあずかり します\p" - .string "おつかれさまでした\n" - .string "また ごりよう ください$" - -Text_1BFFA1:: @ 81BFFA1 - .string "それでは いってらっしゃい!\l" - .string "なにか ありましたら\n" - .string "わたしに こえを かけて くださいね$" - -Text_1BFFCE:: @ 81BFFCE - .string "しってた?\p" - .string "あの しかくい はこに ポロックを おくと\n" - .string "ポケモンが あつまって くるんだよ!$" - -Text_1BFFFD:: @ 81BFFFD - .string "この さきに いきたい けど\n" - .string "じてんしゃ もって くるの わすれた‥‥\p" - .string "おくに めずらしい ポケモンが\n" - .string "いそうな きが するのに!$" - -Text_1C003F:: @ 81C003F - .string "ポケモンに ポロックを なげても\n" - .string "しらんぷり される ときが あるのよ\p" - .string "ポケモンにも すききらいが あるのかしら?$" - -Text_1C0079:: @ 81C0079 - .string "ぜぇ‥‥ ぜぇ‥‥\n" - .string "やっと ここまで きたけど‥‥\p" - .string "つかれちゃって ポケモン つかまえる\n" - .string "げんきも のこって ないよ‥‥$" - -Text_1C00B6:: @ 81C00B6 - .string "ホウエンに いない みずポケモンを\n" - .string "さがしに きたんだけど‥‥\p" - .string "みずうみは どこにあるのか\n" - .string "きみ しってるかい?$" - -Text_1C00EF:: @ 81C00EF - .string "ここで めずらしい ポケモンを\n" - .string "たくさん つかまえて\l" - .string "ともだちと こうかん するんだ!$" - -Text_1C011B:: @ 81C011B - .string "ポロックおきばに おいた ポロックが\n" - .string "いつのまにか なくなっていた‥‥\p" - .string "しらない うちに\n" - .string "ポケモンが たべちゃったのかな?$" - -Text_1C0159:: @ 81C0159 - .string "サファリゾーンの おとくな じょうほう!\p" - .string "であった ポケモンに\n" - .string "ポロックを なげると にげにくく なります!$" - -Text_1C0190:: @ 81C0190 - .string "あるき つかれたら ちょっと ひといき!\n" - .string "‘みんなの きゅうけいじょ'$" - -Text_1C01B4:: @ 81C01B4 - .string "おれ ポロック もってないけど\n" - .string "ポケモン たくさん つかまえたよ\p" - .string "ちかづいて ボールを なげる だけで\n" - .string "けっこう つかまえられる もんだよ!$" - -Text_1C01FB:: @ 81C01FB - .string "ポロックを つかうと いつもより\n" - .string "ちょっぴり にげにくく なるみたい\p" - .string "だから にげにくい ポケモンに つかっても\n" - .string "あんまり いみが ないかもね$" - -Text_1C0243:: @ 81C0243 - .string "ポロックおきばに ポロック おいて\n" - .string "ポケモンを つかまえると\p" - .string "おなじ ような せいかくの ポケモンが\n" - .string "あつまる きが するなあ$" - -Text_1C0283:: @ 81C0283 - .string "わしは おおきな {STR_VAR_1}に\n" - .string "とても きょうみが ある!\p" - .string "ん? きみ {STR_VAR_1} もってるの?\n" - .string "ちょ ちょ ちょっと···\l" - .string "おじさんに みせて おくれ!$" - -Text_1C02CB:: @ 81C02CB - .string "おお! こいつは でかい!\n" - .string "とても すばらしい {STR_VAR_1}だ!\p" - .string "みせて くれて ありがとう\n" - .string "おれいに これを もって いきなさい$" - -Text_1C0309:: @ 81C0309 - .string "{PLAYER}は\n" - .string "{STR_VAR_2}を もらった!$" - -Text_1C0317:: @ 81C0317 - .string "ありゃ?\n" - .string "きみ もちもの いっぱいだね$" - -Text_1C032B:: @ 81C032B - .string "ううむ わしは これより おおきい\n" - .string "{STR_VAR_1}を みたこと あるな···$" - -Text_1C034D:: @ 81C034D - .string "おお こいつは なかなか···って\n" - .string "これ {STR_VAR_1}じゃ ないよ!$" - -Text_1C036C:: @ 81C036C - .string "おおきい {STR_VAR_1} もってないの?\l" - .string "それは ざんねん···\n" - .string "こんど おおきい {STR_VAR_1} みせてね$" - -Text_1C0399:: @ 81C0399 - .string "しじょう さいだいの {STR_VAR_1}!\n" - .string "{STR_VAR_2}の {STR_VAR_3}cmのやつ!$" - -Text_1C03B5:: @ 81C03B5 - .string "パパ“{PLAYER}! よく きたな!\n" - .string "{PLAYER}あての てがみが とどけられたぞ$" - -Text_1C03D7:: @ 81C03D7 - .string "パパ“わたしも みたことのない\n" - .string "ふねの チケット だな‥‥\l" - .string "ミナモに いってみると いいだろう$" - -Text_1C0407:: @ 81C0407 - .string "カイナいき れんらくせん‥‥\p" - .string "あら?\n" - .string "その チケットは‥‥!$" - -Text_1C0426:: @ 81C0426 - .string "ヘンテコな チケットを\n" - .string "もってきたのは おまえさんか?\p" - .string "おまえが いこうと しているのは\n" - .string "みなみの はての ちっぽけな しま‥‥\p" - .string "そこでは なにが おこるのか\n" - .string "だれも わからねえ‥‥\l" - .string "ううむ ふなのりの ちが さわぐぜ!\p" - .string "さあ のりな!$" - -Text_1C049D:: @ 81C049D - .string "なにもねえ ちんけな しま だな‥‥\n" - .string "ミナモへ かえるか?$" - -Text_1C04BB:: @ 81C04BB - .string "ùÏ! ÉÇñÑ ÒñÉ!$" - -Text_1C04C9:: @ 81C04C9 - .string "そうかい\n" - .string "まあ すきにするが いいさ$" - -Text_1C04DC:: @ 81C04DC - .string "すべての ゆめは もうひとつの げんじつ\n" - .string "それを わすれるべからず‥‥$" - -Text_1C0500:: @ 81C0500 - .string "きおく かすみし ものは\n" - .string "こころに きざみつける ことを のぞむ‥‥$" - -Text_1C0523:: @ 81C0523 - .string "パパ“やあ {PLAYER}!\p" - .string "めずらしい きのみを てに いれたから\n" - .string "プレゼント するよ!$" - -Text_1C054C:: @ 81C054C - .string "ふかふかの つちに はえている きのみは\n" - .string "じゆうに とっても よいのじゃが‥\p" - .string "1つだけ きのみを おなじ ばしょに うめる\n" - .string "それが れいぎと いうものじゃ\p" - .string "ほれ これを わけてやろう$" - -Text_1C05A8:: @ 81C05A8 - .string "あんた みたところ トレーナーじゃろ?\p" - .string "トレーナーは よく きのみを ポケモンに\n" - .string "もたせとるわい\p" - .string "ふやすも つかうも あんた しだいじゃ$" - -Text_1C05ED:: @ 81C05ED - .string "いつも みずを あげてたら\n" - .string "たくさん はなが さいたんだ\p" - .string "そしたら きのみも たくさん できた!\p" - .string "はい!\n" - .string "これ あげる$" - -Text_1C0629:: @ 81C0629 - .string "がんばって あかいポロック つくるんだ!\n" - .string "{STR_VAR_1}も がんばってね!$" - -Text_1C064A:: @ 81C064A - .string "きょうは なにいろの きのみを\n" - .string "さがそっかなー$" - -Text_1C0662:: @ 81C0662 - .string "ポケモンコンテストの ゆうしょうを めざして\n" - .string "きのみを あつめているんだ\p" - .string "よかったら きみにも わけて あげるよ!$" - -Text_1C069C:: @ 81C069C - .string "きみも がんばれ!$" - -Text_1C06A6:: @ 81C06A6 - .string "きょうは どの きのみを うめるか‥\n" - .string "そして なにいろの ポロックを つくるか‥\p" - .string "なやむのも また たのしいよ$" - -Text_1C06DE:: @ 81C06DE - .string "ケースを ふると でてくる ポロック‥\p" - .string "そして それを キャッチして\n" - .string "たべてくれる ポケモン‥\p" - .string "これって あい だよね?$" - -Text_1C071B:: @ 81C071B - .string "うん うん!\n" - .string "やっぱ わかるひとには わかるよね\p" - .string "これ あげる$" - -Text_1C073B:: @ 81C073B - .string "そっか‥‥\n" - .string "でも ちがうと かんじることも たいせつだね\p" - .string "これ あげる$" - -Text_1C075F:: @ 81C075F - .string "その きのみは めずらしいもの らしいから\n" - .string "たいせつに そだててね!$" - -Text_1C0782:: @ 81C0782 - .string "また きのみめいじんに もらって こようっと$" - -Text_1C0799:: @ 81C0799 - .string "やっぱり\p" - .string "わたしに スーツが にあうように\n" - .string "うみには しおかぜが にあうな\l" - .string "そして きみには きのみが にあいそうだ‥‥\p" - .string "なんでだろうね?$" - -Text_1C07DF:: @ 81C07DF - .string "やっぱり それは‥‥‥‥\p" - .string "きみが トレーナーだからだ!$" - -Text_1C07FB:: @ 81C07FB - .string "やっぱり\p" - .string "わたしに シンプルさが にあうように\n" - .string "ポケモンには ポロックが にあうな$" - -Text_1C0825:: @ 81C0825 - .string "わしは きのみめいじんと よばれておる\p" - .string "わしは せかいじゅうを うつくしい はなで\n" - .string "うめつくそうと きのみを そだてて\l" - .string "そして くばり まくって おるのじゃ\p" - .string "きみにも きのみを わけて あげよう!$" - -Text_1C0888:: @ 81C0888 - .string "ほれ えんりょ せずに もう ひとつ!$" - -Text_1C089C:: @ 81C089C - .string "カナズミの ちかくにある サン·トウカという\n" - .string "フラワーショップも よろしくの\p" - .string "せかいに はなを さかせましょう!$" - -Text_1C08D5:: @ 81C08D5 - .string "きょうは もう おしまいじゃ\n" - .string "また おいで\p" - .string "せかいに はなを さかせましょう!$" - -Text_1C08FD:: @ 81C08FD - .string "じいさんの きのみの そだてかたは\n" - .string "そりゃあ せかいいちじゃ\p" - .string "わしも はなが たかいわい\p" - .string "ところで あんた\n" - .string "いい ことばを きいたことが ないかい?$" - -Text_1C0948:: @ 81C0948 - .string "おお! とても よい ことばじゃ!\n" - .string "かんどう したわい\p" - .string "ほれ これを もっていきなされ$" - -Text_1C0974:: @ 81C0974 - .string "おお! なかなか よい ことばじゃ\n" - .string "あんたも たいしたもんじゃ\p" - .string "ほれ これを もっていきなされ$" - -Text_1C09A4:: @ 81C09A4 - .string "まごたち 4にんも じいさんを しのぐ\n" - .string "おおものに なるじゃろうて\p" - .string "じんせい たのしいことが つきんのう!$" - -Text_1C09DA:: @ 81C09DA - .string "ほう‥‥$" - -Text_1C09DF:: @ 81C09DF - .string "こんにちは!\p" - .string "はなを せかいに ひろめる\n" - .string "フラワーショップ サン·トウカです!$" - -Text_1C0A07:: @ 81C0A07 - .string "{PLAYER}{KUN} きのみの こと しりたい?$" - -Text_1C0A1A:: @ 81C0A1A - .string "あなたの なまえは‥‥\p" - .string "{PLAYER}{KUN}ね!\n" - .string "とっても いい なまえだね!\l" - .string "{PLAYER}{KUN} きのみのこと しりたい?$" - -Text_1C0A4E:: @ 81C0A4E - .string "きのみはね くろい ふかふかの つちの\n" - .string "ところで たまに とれるの\l" - .string "でね‥‥\p" - .string "とったら その1つを また うめるの!\p" - .string "そうすると その きのみ から\n" - .string "めがでて みきが できて はながさいて\l" - .string "また きのみ が できるの\p" - .string "そうやって はなを ふやして\n" - .string "せかいじゅうを はなに するのが\l" - .string "わたしの ゆめ なんだ!\p" - .string "だから {PLAYER}{KUN}も きのみを うめて\n" - .string "せかいに はなを ふやしてね!$" - -Text_1C0B0B:: @ 81C0B0B - .string "おはなって とっても しあわせな きぶんに\n" - .string "してくれるよね$" - -Text_1C0B29:: @ 81C0B29 - .string "こんにちは!\p" - .string "おはなは せわを すれば するほど\n" - .string "たくさん きれいに さいて くれるの\p" - .string "あなたも せわを したく なった でしょ?\n" - .string "これ あげるわ$" - -Text_1C0B73:: @ 81C0B73 - .string "きのみが そだつ たびに\n" - .string "じょうろで みずを あげてね!\p" - .string "あとね\p" - .string "きのみは ずっと ずっと ほうっておくと\n" - .string "じめんに おちてしまうの\l" - .string "でもね そこから また めがでて くるの!\p" - .string "すごいよね!\n" - .string "いきものの ちからを かんじるよね$" - -Text_1C0BE5:: @ 81C0BE5 - .string "おねーちゃんたちを みならって\n" - .string "がんばって おはなを そだててるの\p" - .string "はい! これあげる!$" - -Text_1C0C12:: @ 81C0C12 - .string "きのみは うめて おおきく したり\n" - .string "ポケモンに もたせたり できるの\p" - .string "でも さいきん きのみを いくつか まぜると\n" - .string "ポケモンの おかしになる きかいが\l" - .string "ある らしいんだ\p" - .string "あたしも おかし ほしー$" - -Text_1C0C74:: @ 81C0C74 - .string "{STR_VAR_1} なまえ なんていうの?\p" - .string "‥‥‥ ‥‥‥ ‥‥‥\n" - .string "へー いいねー\p" - .string "わたしは キリ っていう なまえなの\p" - .string "パパと ママが すくすくと そだって\n" - .string "こころの あたたかい おんなのこに なって\l" - .string "ほしいっていう ねがいを こめたんだって!\p" - .string "{STR_VAR_1}にも これ あげる$" - -Text_1C0CF5:: @ 81C0CF5 - .string "あと {STR_VAR_1}には キリの だいすきな\n" - .string "この きのみも あげちゃう!$" - -Text_1C0D16:: @ 81C0D16 - .string "{STR_VAR_1}の なまえには\n" - .string "どんな ねがいが こめられてるの?$" - -Text_1C0D32:: @ 81C0D32 - .string "はる なつ あき ふゆ\n" - .string "はるに うまれると はるが すきで\l" - .string "なつに うまれると なつが すきなのかな?$" - -Text_1C0D66:: @ 81C0D66 - .string "じゃあ キリは あきに うまれたから\n" - .string "あきが だいすき!\p" - .string "{STR_VAR_1}は いつが すき?$" - -Text_1C0D8F:: @ 81C0D8F - .string "そっか‥\n" - .string "かんけいないのか‥\p" - .string "しりたいことって たくさんあるなー$" - -gUnknown_81C0DB0:: @ 81C0DB0 - .string "It's crammed full of POKéMON\n" - .string "books.$" - -Text_1C0DD4:: @ 81C0DD4 - .string "ほんだなに ならんでいるのは\n" - .string "ポケモンの ほん ばかりだ$" - -Text_ATownMap:: @ 81C0DF1 - .string "A TOWN MAP.$" - -gUnknown_81C0DFD:: @ 81C0DFD - .string "Wow!\n" - .string "Tons of POKéMON stuff!$" - -Text_DishesPlatesNeatlyLinedUp:: @ 81C0E19 - .string "Dishes and plates are neatly\n" - .string "lined up.$" - -gUnknown_81C0E40:: @ 81C0E40 - .string "It smells delicious!\n" - .string "Somebody's been cooking here.$" - -gUnknown_81C0E73:: @ 81C0E73 - .string "It's a nicely made dresser.\n" - .string "It will hold a lot of stuff.$" - -gUnknown_81C0EAC:: @ 81C0EAC - .string "There's a pile of snacks here.$" - -gUnknown_81C0ECB:: @ 81C0ECB - .string "All your item needs fulfilled!\n" - .string "POKéMON MART$" - -gUnknown_81C0EF7:: @ 81C0EF7 - .string "Heal Your POKéMON!\n" - .string "POKéMON CENTER$" - -gUnknown_81C0F19:: @ 81C0F19 - .string "INDIGO PLATEAU\p" - .string "The ultimate goal of TRAINERS!\n" - .string "POKéMON LEAGUE HQ$" - -gUnknown_81C0F59:: @ 81C0F59 - .string "INDIGO PLATEAU\p" - .string "The highest POKéMON authority!\n" - .string "POKéMON LEAGUE HQ$" - -gUnknown_81C0F99:: @ 81C0F99 - .string "It should be packed with all kinds\n" - .string "of delicious things to eat.$" - -gUnknown_81C0FD8:: @ 81C0FD8 - .string "It's a blueprint of some sort.\n" - .string "It's filled with diagrams and text.$" - -gUnknown_81C101B:: @ 81C101B - .string "It's a pretty picture of a POKéMON.\n" - .string "It looks like it's feeling good.$" - -gUnknown_81C1060:: @ 81C1060 - .string "What could this machine be?\n" - .string "Better not mess around with it!$" - -gUnknown_81C109C:: @ 81C109C - .string "It's a telephone.\n" - .string "Better not use it.$" - -gUnknown_81C10C1:: @ 81C10C1 - .string "It's all complicated words and\n" - .string "numbers that make no sense…$" - -gUnknown_81C10FC:: @ 81C10FC - .string "It's an advertising poster about\n" - .string "all kinds of products.$" - -gUnknown_81C1134:: @ 81C1134 - .string "Oh, that smells tasty!\n" - .string "It might get the stomach growling!$" - -gUnknown_81C116E:: @ 81C116E - .string "Inside this…\n" - .string "……\p" - .string "There's nothing here!$" - -gUnknown_81C1194:: @ 81C1194 - .string "It's a cup with a POKéMON mark\n" - .string "on it.$" - -gUnknown_81C11BA:: @ 81C11BA - .string "The window is very well polished.$" - -gUnknown_81C11DC:: @ 81C11DC - .string "Outside the window…\p" - .string "The sky looks fantastically\n" - .string "beautiful.$" - -gUnknown_81C1217:: @ 81C1217 - .string "Lights in different colors are\n" - .string "flashing on and off.$" - -gUnknown_81C124B:: @ 81C124B - .string "All sorts of tools are lined up\n" - .string "neatly.$" - -gUnknown_81C1273:: @ 81C1273 - .string "It's a machine of some sort.\n" - .string "It sure is impressive.$" - -gUnknown_81C12A7:: @ 81C12A7 - .string "It's the latest video game!\n" - .string "It sure looks fun!$" - -gUnknown_81C12D6:: @ 81C12D6 - .string "There are obvious signs of burglary\n" - .string "here…$" - -gUnknown_81C1300:: @ 81C1300 - .string "There's a POKéMON on TV!\n" - .string "It looks like it's having fun.$" - + .include "data/scripts/safari_zone.inc" + .include "data/text/safari_zone.inc" + .include "data/text/competitive_brothers.inc" + .include "data/text/eon_ticket.inc" + .include "data/text/berries.inc" + .include "data/text/flavor_text.inc" .include "data/scripts/hole.inc" .include "data/text/trainers.inc" .include "data/scripts/move_tutors.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/layouts/FuchsiaCity_Building1/border.bin b/data/layouts/FuchsiaCity_SafariZone_Office/border.bin Binary files differindex a886cd764..a886cd764 100644 --- a/data/layouts/FuchsiaCity_Building1/border.bin +++ b/data/layouts/FuchsiaCity_SafariZone_Office/border.bin diff --git a/data/layouts/FuchsiaCity_ZooBuilding/map.bin b/data/layouts/FuchsiaCity_SafariZone_Office/map.bin index d18ddbd61..d18ddbd61 100644 --- a/data/layouts/FuchsiaCity_ZooBuilding/map.bin +++ b/data/layouts/FuchsiaCity_SafariZone_Office/map.bin diff --git a/data/layouts/FuchsiaCity_ZooBuilding/border.bin b/data/layouts/FuchsiaCity_WardensHouse/border.bin Binary files differindex a886cd764..a886cd764 100644 --- a/data/layouts/FuchsiaCity_ZooBuilding/border.bin +++ b/data/layouts/FuchsiaCity_WardensHouse/border.bin diff --git a/data/layouts/FuchsiaCity_Building1/map.bin b/data/layouts/FuchsiaCity_WardensHouse/map.bin index 4efd7d891..4efd7d891 100644 --- a/data/layouts/FuchsiaCity_Building1/map.bin +++ b/data/layouts/FuchsiaCity_WardensHouse/map.bin diff --git a/data/layouts/SafariZone_Building/border.bin b/data/layouts/SafariZone_RestHouse/border.bin Binary files differindex a886cd764..a886cd764 100644 --- a/data/layouts/SafariZone_Building/border.bin +++ b/data/layouts/SafariZone_RestHouse/border.bin diff --git a/data/layouts/SafariZone_Building/map.bin b/data/layouts/SafariZone_RestHouse/map.bin index caec48cdc..caec48cdc 100644 --- a/data/layouts/SafariZone_Building/map.bin +++ b/data/layouts/SafariZone_RestHouse/map.bin diff --git a/data/layouts/layouts.json b/data/layouts/layouts.json index f42871fbe..63fc06562 100644 --- a/data/layouts/layouts.json +++ b/data/layouts/layouts.json @@ -2168,16 +2168,16 @@ "blockdata_filepath": "data/layouts/CeladonCity_DepartmentStore_Roof/map.bin" }, { - "id": "LAYOUT_SAFARI_ZONE_BUILDING", - "name": "SafariZone_Building_Layout", + "id": "LAYOUT_SAFARI_ZONE_REST_HOUSE", + "name": "SafariZone_RestHouse_Layout", "width": 13, "height": 11, "border_width": 2, "border_height": 2, "primary_tileset": "gTileset_82D4BB4", "secondary_tileset": "gTileset_82D4F14", - "border_filepath": "data/layouts/SafariZone_Building/border.bin", - "blockdata_filepath": "data/layouts/SafariZone_Building/map.bin" + "border_filepath": "data/layouts/SafariZone_RestHouse/border.bin", + "blockdata_filepath": "data/layouts/SafariZone_RestHouse/map.bin" }, { "id": "LAYOUT_SAFARI_ZONE_SECRET_HOUSE", @@ -2192,28 +2192,28 @@ "blockdata_filepath": "data/layouts/SafariZone_SecretHouse/map.bin" }, { - "id": "LAYOUT_FUCHSIA_CITY_ZOO_BUILDING", - "name": "FuchsiaCity_ZooBuilding_Layout", + "id": "LAYOUT_FUCHSIA_CITY_SAFARI_ZONE_OFFICE", + "name": "FuchsiaCity_SafariZone_Office_Layout", "width": 20, "height": 11, "border_width": 2, "border_height": 2, "primary_tileset": "gTileset_82D4BB4", "secondary_tileset": "gTileset_82D4F14", - "border_filepath": "data/layouts/FuchsiaCity_ZooBuilding/border.bin", - "blockdata_filepath": "data/layouts/FuchsiaCity_ZooBuilding/map.bin" + "border_filepath": "data/layouts/FuchsiaCity_SafariZone_Office/border.bin", + "blockdata_filepath": "data/layouts/FuchsiaCity_SafariZone_Office/map.bin" }, { - "id": "LAYOUT_FUCHSIA_CITY_BUILDING1", - "name": "FuchsiaCity_Building1_Layout", + "id": "LAYOUT_FUCHSIA_CITY_WARDENS_HOUSE", + "name": "FuchsiaCity_WardensHouse_Layout", "width": 13, "height": 11, "border_width": 2, "border_height": 2, "primary_tileset": "gTileset_82D4BB4", "secondary_tileset": "gTileset_82D4C2C", - "border_filepath": "data/layouts/FuchsiaCity_Building1/border.bin", - "blockdata_filepath": "data/layouts/FuchsiaCity_Building1/map.bin" + "border_filepath": "data/layouts/FuchsiaCity_WardensHouse/border.bin", + "blockdata_filepath": "data/layouts/FuchsiaCity_WardensHouse/map.bin" }, { "id": "LAYOUT_FUCHSIA_CITY_HOUSE2", 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/FuchsiaCity/map.json b/data/maps/FuchsiaCity/map.json index c142ff4c1..710940882 100644 --- a/data/maps/FuchsiaCity/map.json +++ b/data/maps/FuchsiaCity/map.json @@ -39,7 +39,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_EventScript_166DAF", + "script": "FuchsiaCity_EventScript_Erik", "flag": "0" }, { @@ -78,7 +78,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_EventScript_166DB8", + "script": "FuchsiaCity_EventScript_Youngster", "flag": "0" }, { @@ -104,7 +104,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_EventScript_166D9D", + "script": "FuchsiaCity_EventScript_LittleBoy", "flag": "0" }, { @@ -130,7 +130,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_EventScript_166DA6", + "script": "FuchsiaCity_EventScript_OldMan", "flag": "0" }, { @@ -234,7 +234,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_EventScript_166DC1", + "script": "FuchsiaCity_EventScript_Lass", "flag": "FLAG_HIDE_POSTGAME_GOSSIPERS" } ], @@ -250,7 +250,7 @@ "x": 33, "y": 31, "elevation": 0, - "dest_map": "MAP_FUCHSIA_CITY_BUILDING1", + "dest_map": "MAP_FUCHSIA_CITY_WARDENS_HOUSE", "dest_warp_id": 1 }, { @@ -264,7 +264,7 @@ "x": 28, "y": 16, "elevation": 0, - "dest_map": "MAP_FUCHSIA_CITY_ZOO_BUILDING", + "dest_map": "MAP_FUCHSIA_CITY_SAFARI_ZONE_OFFICE", "dest_warp_id": 1 }, { @@ -324,77 +324,77 @@ "x": 31, "y": 18, "elevation": 3, - "script": "FuchsiaCity_EventScript_166DDA" + "script": "FuchsiaCity_EventScript_CitySign" }, { "type": "bg_event_type_0", "x": 26, "y": 18, "elevation": 0, - "script": "FuchsiaCity_EventScript_166DE3" + "script": "FuchsiaCity_EventScript_SafariZoneSign" }, { "type": "bg_event_type_0", "x": 5, "y": 32, "elevation": 0, - "script": "FuchsiaCity_EventScript_166E07" + "script": "FuchsiaCity_EventScript_GymSign" }, { "type": "bg_event_type_0", "x": 31, "y": 31, "elevation": 0, - "script": "FuchsiaCity_EventScript_166DF5" + "script": "FuchsiaCity_EventScript_WardensHomeSign" }, { "type": "bg_event_type_0", "x": 35, "y": 10, "elevation": 0, - "script": "FuchsiaCity_EventScript_166E38" + "script": "FuchsiaCity_EventScript_VoltorbSign" }, { "type": "bg_event_type_0", "x": 38, "y": 16, "elevation": 3, - "script": "FuchsiaCity_EventScript_166E6A" + "script": "FuchsiaCity_EventScript_SlowpokeSign" }, { "type": "bg_event_type_0", "x": 41, "y": 10, "elevation": 0, - "script": "FuchsiaCity_EventScript_166E1F" + "script": "FuchsiaCity_EventScript_ChanseySign" }, { "type": "bg_event_type_0", "x": 17, "y": 10, "elevation": 0, - "script": "FuchsiaCity_EventScript_166E51" + "script": "FuchsiaCity_EventScript_KangaskhanSign" }, { "type": "bg_event_type_0", "x": 11, "y": 10, "elevation": 0, - "script": "FuchsiaCity_EventScript_166E9C" + "script": "FuchsiaCity_EventScript_FossilMonSign" }, { "type": "bg_event_type_0", "x": 17, "y": 18, "elevation": 3, - "script": "FuchsiaCity_EventScript_166E83" + "script": "FuchsiaCity_EventScript_LaprasSign" }, { "type": "bg_event_type_0", "x": 22, "y": 7, "elevation": 0, - "script": "FuchsiaCity_EventScript_166DEC" + "script": "FuchsiaCity_EventScript_SafariGameSign" }, { "type": "hidden_item", diff --git a/data/maps/FuchsiaCity/scripts.inc b/data/maps/FuchsiaCity/scripts.inc index cde08dd9b..5f0875db8 100644 --- a/data/maps/FuchsiaCity/scripts.inc +++ b/data/maps/FuchsiaCity/scripts.inc @@ -4,135 +4,136 @@ FuchsiaCity_MapScripts:: @ 8166D75 FuchsiaCity_OnTransition:: @ 8166D7B setworldmapflag FLAG_WORLD_MAP_FUCHSIA_CITY - call_if_set FLAG_GOT_DOME_FOSSIL, EventScript_166D91 - call_if_unset FLAG_GOT_DOME_FOSSIL, EventScript_166D97 + call_if_set FLAG_GOT_DOME_FOSSIL, FuchsicaCity_EventScript_SetOmanyteGfx + call_if_unset FLAG_GOT_DOME_FOSSIL, FuchsiaCity_EventScript_SetKabutoGfx end -EventScript_166D91:: @ 8166D91 +FuchsicaCity_EventScript_SetOmanyteGfx:: @ 8166D91 setvar VAR_OBJ_GFX_ID_0, OBJECT_EVENT_GFX_OMANYTE return -EventScript_166D97:: @ 8166D97 +FuchsiaCity_EventScript_SetKabutoGfx:: @ 8166D97 setvar VAR_OBJ_GFX_ID_0, OBJECT_EVENT_GFX_KABUTO return -FuchsiaCity_EventScript_166D9D:: @ 8166D9D - msgbox gUnknown_818056E, MSGBOX_NPC +FuchsiaCity_EventScript_LittleBoy:: @ 8166D9D + msgbox FuchsiaCity_Text_DidYouTrySafariGame, MSGBOX_NPC end -FuchsiaCity_EventScript_166DA6:: @ 8166DA6 - msgbox gUnknown_81805C6, MSGBOX_NPC +FuchsiaCity_EventScript_OldMan:: @ 8166DA6 + msgbox FuchsiaCity_Text_SafariZoneZooInFront, MSGBOX_NPC end -FuchsiaCity_EventScript_166DAF:: @ 8166DAF - msgbox gUnknown_818062C, MSGBOX_NPC +FuchsiaCity_EventScript_Erik:: @ 8166DAF + msgbox FuchsiaCity_Text_WheresSara, MSGBOX_NPC end -FuchsiaCity_EventScript_166DB8:: @ 8166DB8 - msgbox gUnknown_818065A, MSGBOX_NPC +FuchsiaCity_EventScript_Youngster:: @ 8166DB8 + msgbox FuchsiaCity_Text_ItemBallInThere, MSGBOX_NPC end -FuchsiaCity_EventScript_166DC1:: @ 8166DC1 +FuchsiaCity_EventScript_Lass:: @ 8166DC1 lock faceplayer famechecker FAMECHECKER_KOGA, 3 - msgbox gUnknown_8180ABD + msgbox FuchsiaCity_Text_MyFatherIsGymLeader release end -FuchsiaCity_EventScript_166DDA:: @ 8166DDA - msgbox gUnknown_81806AB, MSGBOX_SIGN +FuchsiaCity_EventScript_CitySign:: @ 8166DDA + msgbox FuchsiaCity_Text_CitySign, MSGBOX_SIGN end -FuchsiaCity_EventScript_166DE3:: @ 8166DE3 - msgbox gUnknown_81806D3, MSGBOX_SIGN +FuchsiaCity_EventScript_SafariZoneSign:: @ 8166DE3 + msgbox FuchsiaCity_Text_SafariZoneSign, MSGBOX_SIGN end -FuchsiaCity_EventScript_166DEC:: @ 8166DEC - msgbox gUnknown_81806F0, MSGBOX_SIGN +FuchsiaCity_EventScript_SafariGameSign:: @ 8166DEC + msgbox FuchsiaCity_Text_SafariGameSign, MSGBOX_SIGN end -FuchsiaCity_EventScript_166DF5:: @ 8166DF5 - msgbox gUnknown_818070D, MSGBOX_SIGN +FuchsiaCity_EventScript_WardensHomeSign:: @ 8166DF5 + msgbox FuchsiaCity_Text_WardensHomeSign, MSGBOX_SIGN end -EventScript_166DFE:: @ 8166DFE - msgbox gUnknown_8180727, MSGBOX_SIGN +@ Unused +FuchsiaCity_EventScript_SafariZoneOfficeSign:: @ 8166DFE + msgbox FuchsiaCity_Text_SafariZoneOfficeSign, MSGBOX_SIGN end -FuchsiaCity_EventScript_166E07:: @ 8166E07 +FuchsiaCity_EventScript_GymSign:: @ 8166E07 lockall famechecker FAMECHECKER_KOGA, 0 - msgbox gUnknown_8180768 + msgbox FuchsiaCity_Text_GymSign releaseall end -FuchsiaCity_EventScript_166E1F:: @ 8166E1F +FuchsiaCity_EventScript_ChanseySign:: @ 8166E1F lockall setvar VAR_0x8004, SPECIES_CHANSEY special Special_SetSeenMon drawmonpic SPECIES_CHANSEY, 10, 3 - msgbox gUnknown_81807A9 + msgbox FuchsiaCity_Text_ChanseySign erasemonpic releaseall end -FuchsiaCity_EventScript_166E38:: @ 8166E38 +FuchsiaCity_EventScript_VoltorbSign:: @ 8166E38 lockall setvar VAR_0x8004, SPECIES_VOLTORB special Special_SetSeenMon drawmonpic SPECIES_VOLTORB, 10, 3 - msgbox gUnknown_81807D9 + msgbox FuchsiaCity_Text_VoltorbSign erasemonpic releaseall end -FuchsiaCity_EventScript_166E51:: @ 8166E51 +FuchsiaCity_EventScript_KangaskhanSign:: @ 8166E51 lockall setvar VAR_0x8004, SPECIES_KANGASKHAN special Special_SetSeenMon drawmonpic SPECIES_KANGASKHAN, 10, 3 - msgbox gUnknown_8180806 + msgbox FuchsiaCity_Text_KangaskhanSign erasemonpic releaseall end -FuchsiaCity_EventScript_166E6A:: @ 8166E6A +FuchsiaCity_EventScript_SlowpokeSign:: @ 8166E6A lockall setvar VAR_0x8004, SPECIES_SLOWPOKE special Special_SetSeenMon drawmonpic SPECIES_SLOWPOKE, 10, 3 - msgbox gUnknown_8180859 + msgbox FuchsiaCity_Text_SlowpokeSign erasemonpic releaseall end -FuchsiaCity_EventScript_166E83:: @ 8166E83 +FuchsiaCity_EventScript_LaprasSign:: @ 8166E83 lockall setvar VAR_0x8004, SPECIES_LAPRAS special Special_SetSeenMon drawmonpic SPECIES_LAPRAS, 10, 3 - msgbox gUnknown_8180887 + msgbox FuchsiaCity_Text_LaprasSign erasemonpic releaseall end -FuchsiaCity_EventScript_166E9C:: @ 8166E9C +FuchsiaCity_EventScript_FossilMonSign:: @ 8166E9C lockall - goto_if_set FLAG_GOT_DOME_FOSSIL, EventScript_166EBE + goto_if_set FLAG_GOT_DOME_FOSSIL, FuchsiaCity_EventScript_OmanyteSign setvar VAR_0x8004, SPECIES_KABUTO special Special_SetSeenMon drawmonpic SPECIES_KABUTO, 10, 3 - msgbox gUnknown_81808FA + msgbox FuchsiaCity_Text_KabutoSign erasemonpic releaseall end -EventScript_166EBE:: @ 8166EBE +FuchsiaCity_EventScript_OmanyteSign:: @ 8166EBE setvar VAR_0x8004, SPECIES_OMANYTE special Special_SetSeenMon drawmonpic SPECIES_OMANYTE, 10, 3 - msgbox gUnknown_81808AE + msgbox FuchsiaCity_Text_OmanyteSign erasemonpic releaseall end diff --git a/data/maps/FuchsiaCity/text.inc b/data/maps/FuchsiaCity/text.inc index 969846706..84b49f63c 100644 --- a/data/maps/FuchsiaCity/text.inc +++ b/data/maps/FuchsiaCity/text.inc @@ -1,82 +1,83 @@ -gUnknown_818056E:: @ 818056E +FuchsiaCity_Text_DidYouTrySafariGame:: @ 818056E .string "Did you try the SAFARI GAME?\p" .string "There are some rare POKéMON that\n" .string "can only be caught there.$" -gUnknown_81805C6:: @ 81805C6 +FuchsiaCity_Text_SafariZoneZooInFront:: @ 81805C6 .string "The SAFARI ZONE has a zoo in front\n" .string "of the entrance.\p" .string "Out back is the SAFARI GAME for\n" .string "catching POKéMON.$" -gUnknown_818062C:: @ 818062C +FuchsiaCity_Text_WheresSara:: @ 818062C .string "ERIK: Where's SARA?\n" .string "I said I'd meet her here.$" -gUnknown_818065A:: @ 818065A +FuchsiaCity_Text_ItemBallInThere:: @ 818065A .string "That item ball in there…\n" .string "Were you wanting that?\p" .string "Me, too!\n" .string "…Huh? That's a POKéMON?$" -gUnknown_81806AB:: @ 81806AB +FuchsiaCity_Text_CitySign:: @ 81806AB .string "FUCHSIA CITY\n" .string "Behold! It's Passion Pink!$" -gUnknown_81806D3:: @ 81806D3 +FuchsiaCity_Text_SafariZoneSign:: @ 81806D3 .string "POKéMON PARADISE\n" .string "SAFARI ZONE$" -gUnknown_81806F0:: @ 81806F0 +FuchsiaCity_Text_SafariGameSign:: @ 81806F0 .string "SAFARI GAME\n" .string "POKéMON-U-CATCH!$" -gUnknown_818070D:: @ 818070D +FuchsiaCity_Text_WardensHomeSign:: @ 818070D .string "SAFARI ZONE\n" .string "WARDEN'S HOME$" -gUnknown_8180727:: @ 8180727 +FuchsiaCity_Text_SafariZoneOfficeSign:: @ 8180727 .string "POKéMON PARADISE!\n" .string "Welcome to the SAFARI ZONE!\l" .string "SAFARI ZONE OFFICE$" -gUnknown_8180768:: @ 8180768 +FuchsiaCity_Text_GymSign:: @ 8180768 .string "FUCHSIA CITY POKéMON GYM\n" .string "LEADER: KOGA\l" .string "The Poisonous Ninja Master$" -gUnknown_81807A9:: @ 81807A9 +FuchsiaCity_Text_ChanseySign:: @ 81807A9 .string "Name: CHANSEY\n" .string "Catching one is all up to chance.$" -gUnknown_81807D9:: @ 81807D9 +FuchsiaCity_Text_VoltorbSign:: @ 81807D9 .string "Name: VOLTORB\n" .string "The very image of a POKé BALL.$" -gUnknown_8180806:: @ 8180806 +FuchsiaCity_Text_KangaskhanSign:: @ 8180806 .string "Name: KANGASKHAN\p" .string "A maternal POKéMON that raises its\n" .string "young in a pouch on its belly.$" -gUnknown_8180859:: @ 8180859 +FuchsiaCity_Text_SlowpokeSign:: @ 8180859 .string "Name: SLOWPOKE\n" .string "Friendly and very slow moving.$" -gUnknown_8180887:: @ 8180887 +FuchsiaCity_Text_LaprasSign:: @ 8180887 .string "Name: LAPRAS\n" .string "AKA the king of the seas.$" -gUnknown_81808AE:: @ 81808AE +FuchsiaCity_Text_OmanyteSign:: @ 81808AE .string "Name: OMANYTE\n" .string "An extremely rare POKéMON that was\l" .string "regenerated from a fossil.$" -gUnknown_81808FA:: @ 81808FA +FuchsiaCity_Text_KabutoSign:: @ 81808FA .string "Name: KABUTO\n" .string "An extremely rare POKéMON that was\l" .string "regenerated from a fossil.$" -Text_180945:: @ 8180945 +@ Unused. May have been meant to be the placeholder text for the zoo mons, similar to RB's "!" text +FuchsiaCity_Text_Ellipsis:: @ 8180945 .string "……$" Text_SubstituteTeach:: @ 8180948 @@ -103,7 +104,7 @@ Text_SubstituteTaught:: @ 8180A80 .string "Boy, what I'd give to crawl inside\n" .string "a KANGASKHAN belly pouch…$" -gUnknown_8180ABD:: @ 8180ABD +FuchsiaCity_Text_MyFatherIsGymLeader:: @ 8180ABD .string "My father is the GYM LEADER of\n" .string "this town.\p" .string "I'm training to use POISON POKéMON\n" diff --git a/data/maps/FuchsiaCity_Building1/scripts.inc b/data/maps/FuchsiaCity_Building1/scripts.inc deleted file mode 100644 index 0011190dc..000000000 --- a/data/maps/FuchsiaCity_Building1/scripts.inc +++ /dev/null @@ -1,63 +0,0 @@ -FuchsiaCity_Building1_MapScripts:: @ 816D74B - .byte 0 - -FuchsiaCity_Building1_EventScript_16D74C:: @ 816D74C - lock - faceplayer - goto_if_set FLAG_GOT_HM04, EventScript_16D7FA - goto_if_set FLAG_HIDE_SAFARI_ZONE_WEST_GOLD_TEETH, EventScript_16D780 - msgbox gUnknown_8198DF9, MSGBOX_YESNO - compare VAR_RESULT, YES - call_if_eq EventScript_16D7E8 - compare VAR_RESULT, NO - call_if_eq EventScript_16D7F1 - release - end - -EventScript_16D780:: @ 816D780 - textcolor 3 - playfanfare MUS_ME_WAZA - message Text_198E84 - waitmessage - waitfanfare - msgbox gUnknown_8198EAA - call EventScript_1A6675 - checkplayergender - compare VAR_RESULT, MALE - call_if_eq EventScript_16D7D6 - compare VAR_RESULT, FEMALE - call_if_eq EventScript_16D7DF - giveitem_msg gUnknown_8199068, ITEM_HM04 - setflag FLAG_GOT_HM04 - removeitem ITEM_GOLD_TEETH, 1 - release - end - -EventScript_16D7D6:: @ 816D7D6 - msgbox gUnknown_8198ECA - return - -EventScript_16D7DF:: @ 816D7DF - msgbox gUnknown_8198F96 - return - -EventScript_16D7E8:: @ 816D7E8 - msgbox gUnknown_8198E3F - return - -EventScript_16D7F1:: @ 816D7F1 - msgbox gUnknown_8198E63 - return - -EventScript_16D7FA:: @ 816D7FA - msgbox gUnknown_819908A - release - end - -FuchsiaCity_Building1_EventScript_16D804:: @ 816D804 - msgbox gUnknown_819913C, MSGBOX_SIGN - end - -FuchsiaCity_Building1_EventScript_16D80D:: @ 816D80D - msgbox gUnknown_8199167, MSGBOX_SIGN - end diff --git a/data/maps/FuchsiaCity_Gym/map.json b/data/maps/FuchsiaCity_Gym/map.json index 3ca93c166..9054b5df0 100644 --- a/data/maps/FuchsiaCity_Gym/map.json +++ b/data/maps/FuchsiaCity_Gym/map.json @@ -23,7 +23,7 @@ "movement_range_y": 1, "trainer_type": 1, "trainer_sight_or_berry_tree_id": 4, - "script": "FuchsiaCity_Gym_EventScript_16D65A", + "script": "FuchsiaCity_Gym_EventScript_Kayden", "flag": "0" }, { @@ -36,7 +36,7 @@ "movement_range_y": 1, "trainer_type": 1, "trainer_sight_or_berry_tree_id": 1, - "script": "FuchsiaCity_Gym_EventScript_16D643", + "script": "FuchsiaCity_Gym_EventScript_Shawn", "flag": "0" }, { @@ -49,7 +49,7 @@ "movement_range_y": 1, "trainer_type": 1, "trainer_sight_or_berry_tree_id": 3, - "script": "FuchsiaCity_Gym_EventScript_16D61F", + "script": "FuchsiaCity_Gym_EventScript_Kirk", "flag": "0" }, { @@ -62,7 +62,7 @@ "movement_range_y": 1, "trainer_type": 1, "trainer_sight_or_berry_tree_id": 2, - "script": "FuchsiaCity_Gym_EventScript_16D608", + "script": "FuchsiaCity_Gym_EventScript_Edgar", "flag": "0" }, { @@ -75,7 +75,7 @@ "movement_range_y": 1, "trainer_type": 1, "trainer_sight_or_berry_tree_id": 2, - "script": "FuchsiaCity_Gym_EventScript_16D5F1", + "script": "FuchsiaCity_Gym_EventScript_Phil", "flag": "0" }, { @@ -88,7 +88,7 @@ "movement_range_y": 1, "trainer_type": 1, "trainer_sight_or_berry_tree_id": 4, - "script": "FuchsiaCity_Gym_EventScript_16D671", + "script": "FuchsiaCity_Gym_EventScript_Nate", "flag": "0" }, { @@ -101,7 +101,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_Gym_EventScript_16D54E", + "script": "FuchsiaCity_Gym_EventScript_Koga", "flag": "0" }, { @@ -114,7 +114,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_Gym_EventScript_16D688", + "script": "FuchsiaCity_Gym_EventScript_GymGuy", "flag": "0" } ], @@ -148,14 +148,14 @@ "x": 4, "y": 19, "elevation": 0, - "script": "FuchsiaCity_Gym_EventScript_16D6A7" + "script": "FuchsiaCity_Gym_EventScript_GymStatue" }, { "type": "bg_event_type_0", "x": 10, "y": 19, "elevation": 0, - "script": "FuchsiaCity_Gym_EventScript_16D6A7" + "script": "FuchsiaCity_Gym_EventScript_GymStatue" } ] } diff --git a/data/maps/FuchsiaCity_Gym/scripts.inc b/data/maps/FuchsiaCity_Gym/scripts.inc index d20eeb409..6486c36eb 100644 --- a/data/maps/FuchsiaCity_Gym/scripts.inc +++ b/data/maps/FuchsiaCity_Gym/scripts.inc @@ -1,91 +1,91 @@ FuchsiaCity_Gym_MapScripts:: @ 816D54D .byte 0 -FuchsiaCity_Gym_EventScript_16D54E:: @ 816D54E +FuchsiaCity_Gym_EventScript_Koga:: @ 816D54E famechecker FAMECHECKER_KOGA, FCPICKSTATE_COLORED, UpdatePickStateFromSpecialVar8005 - trainerbattle_single TRAINER_LEADER_KOGA, Text_19832E, Text_198444, EventScript_16D580, NO_MUSIC - goto_if_unset FLAG_GOT_TM06_FROM_KOGA, EventScript_16D5A6 - msgbox gUnknown_8198481 + trainerbattle_single TRAINER_LEADER_KOGA, FuchsiaCity_Gym_Text_KogaIntro, FuchsiaCity_Gym_Text_KogaDefeat, FuchsiaCity_Gym_EventScript_DefeatedKoga, NO_MUSIC + goto_if_unset FLAG_GOT_TM06_FROM_KOGA, FuchsiaCity_Gym_EventScript_GiveTM06 + msgbox FuchsiaCity_Gym_Text_KogaPostBattle release end -EventScript_16D580:: @ 816D580 +FuchsiaCity_Gym_EventScript_DefeatedKoga:: @ 816D580 famechecker FAMECHECKER_KOGA, 1 clearflag FLAG_HIDE_FAME_CHECKER_KOGA_JOURNAL setflag FLAG_DEFEATED_KOGA setflag FLAG_BADGE05_GET set_gym_trainers 5 - goto EventScript_16D5A6 + goto FuchsiaCity_Gym_EventScript_GiveTM06 end -EventScript_16D5A6:: @ 816D5A6 - msgbox gUnknown_819850E +FuchsiaCity_Gym_EventScript_GiveTM06:: @ 816D5A6 + msgbox FuchsiaCity_Gym_Text_KogaExplainSoulBadge checkitemspace ITEM_TM06, 1 compare VAR_RESULT, FALSE - goto_if_eq EventScript_16D5E7 - giveitem_msg gUnknown_819858F, ITEM_TM06 + goto_if_eq FuchsiaCity_Gym_EventScript_NoRoomForTM06 + giveitem_msg FuchsiaCity_Gym_Text_ReceivedTM06FromKoga, ITEM_TM06 setflag FLAG_GOT_TM06_FROM_KOGA - msgbox gUnknown_81985AB + msgbox FuchsiaCity_Gym_Text_KogaExplainTM06 release end -EventScript_16D5E7:: @ 816D5E7 - msgbox gUnknown_819860D +FuchsiaCity_Gym_EventScript_NoRoomForTM06:: @ 816D5E7 + msgbox FuchsiaCity_Gym_Text_MakeSpaceForThis release end -FuchsiaCity_Gym_EventScript_16D5F1:: @ 816D5F1 - trainerbattle_single TRAINER_TAMER_PHIL, Text_198866, Text_1988B6 - msgbox gUnknown_81988CB, MSGBOX_AUTOCLOSE +FuchsiaCity_Gym_EventScript_Phil:: @ 816D5F1 + trainerbattle_single TRAINER_TAMER_PHIL, FuchsiaCity_Gym_Text_PhilIntro, FuchsiaCity_Gym_Text_PhilDefeat + msgbox FuchsiaCity_Gym_Text_PhilPostBattle, MSGBOX_AUTOCLOSE end -FuchsiaCity_Gym_EventScript_16D608:: @ 816D608 - trainerbattle_single TRAINER_TAMER_EDGAR, Text_19891F, Text_19897F - msgbox gUnknown_8198985, MSGBOX_AUTOCLOSE +FuchsiaCity_Gym_EventScript_Edgar:: @ 816D608 + trainerbattle_single TRAINER_TAMER_EDGAR, FuchsiaCity_Gym_Text_EdgarIntro, FuchsiaCity_Gym_Text_EdgarDefeat + msgbox FuchsiaCity_Gym_Text_EdgarPostBattle, MSGBOX_AUTOCLOSE end -FuchsiaCity_Gym_EventScript_16D61F:: @ 816D61F - trainerbattle_single TRAINER_JUGGLER_KIRK, Text_19871E, Text_198779 +FuchsiaCity_Gym_EventScript_Kirk:: @ 816D61F + trainerbattle_single TRAINER_JUGGLER_KIRK, FuchsiaCity_Gym_Text_KirkIntro, FuchsiaCity_Gym_Text_KirkDefeat famechecker FAMECHECKER_KOGA, 2 - msgbox gUnknown_8198787, MSGBOX_AUTOCLOSE + msgbox FuchsiaCity_Gym_Text_KirkPostBattle, MSGBOX_AUTOCLOSE end -FuchsiaCity_Gym_EventScript_16D643:: @ 816D643 - trainerbattle_single TRAINER_JUGGLER_SHAWN, Text_1989A1, Text_1989EA - msgbox gUnknown_8198A10, MSGBOX_AUTOCLOSE +FuchsiaCity_Gym_EventScript_Shawn:: @ 816D643 + trainerbattle_single TRAINER_JUGGLER_SHAWN, FuchsiaCity_Gym_Text_ShawnIntro, FuchsiaCity_Gym_Text_ShawnDefeat + msgbox FuchsiaCity_Gym_Text_ShawnPostBattle, MSGBOX_AUTOCLOSE end -FuchsiaCity_Gym_EventScript_16D65A:: @ 816D65A - trainerbattle_single TRAINER_JUGGLER_KAYDEN, Text_198629, Text_1986B4 - msgbox gUnknown_81986C9, MSGBOX_AUTOCLOSE +FuchsiaCity_Gym_EventScript_Kayden:: @ 816D65A + trainerbattle_single TRAINER_JUGGLER_KAYDEN, FuchsiaCity_Gym_Text_KaydenIntro, FuchsiaCity_Gym_Text_KaydenDefeat + msgbox FuchsiaCity_Gym_Text_KaydenPostBattle, MSGBOX_AUTOCLOSE end -FuchsiaCity_Gym_EventScript_16D671:: @ 816D671 - trainerbattle_single TRAINER_JUGGLER_NATE, Text_1987E8, Text_198812 - msgbox gUnknown_8198825, MSGBOX_AUTOCLOSE +FuchsiaCity_Gym_EventScript_Nate:: @ 816D671 + trainerbattle_single TRAINER_JUGGLER_NATE, FuchsiaCity_Gym_Text_NateIntro, FuchsiaCity_Gym_Text_NateDefeat + msgbox FuchsiaCity_Gym_Text_NatePostBattle, MSGBOX_AUTOCLOSE end -FuchsiaCity_Gym_EventScript_16D688:: @ 816D688 +FuchsiaCity_Gym_EventScript_GymGuy:: @ 816D688 lock faceplayer - goto_if_set FLAG_DEFEATED_KOGA, EventScript_16D69D - msgbox gUnknown_8198A5E + goto_if_set FLAG_DEFEATED_KOGA, FuchsiaCity_Gym_EventScript_GymGuyPostVictory + msgbox FuchsiaCity_Gym_Text_GymGuyAdvice release end -EventScript_16D69D:: @ 816D69D - msgbox gUnknown_8198B1D +FuchsiaCity_Gym_EventScript_GymGuyPostVictory:: @ 816D69D + msgbox FuchsiaCity_Gym_Text_GymGuyPostVictory release end -FuchsiaCity_Gym_EventScript_16D6A7:: @ 816D6A7 +FuchsiaCity_Gym_EventScript_GymStatue:: @ 816D6A7 lockall - goto_if_set FLAG_BADGE05_GET, EventScript_16D6BB - msgbox gUnknown_8198B4B + goto_if_set FLAG_BADGE05_GET, FuchsiaCity_Gym_EventScript_GymStatuePostVictory + msgbox FuchsiaCity_Gym_Text_GymStatue releaseall end -EventScript_16D6BB:: @ 816D6BB - msgbox gUnknown_8198B81 +FuchsiaCity_Gym_EventScript_GymStatuePostVictory:: @ 816D6BB + msgbox FuchsiaCity_Gym_Text_GymStatuePlayerWon releaseall end diff --git a/data/maps/FuchsiaCity_Gym/text.inc b/data/maps/FuchsiaCity_Gym/text.inc index cb5ce932e..2bfe9e53f 100644 --- a/data/maps/FuchsiaCity_Gym/text.inc +++ b/data/maps/FuchsiaCity_Gym/text.inc @@ -1,4 +1,4 @@ -Text_19832E:: @ 819832E +FuchsiaCity_Gym_Text_KogaIntro:: @ 819832E .string "KOGA: Fwahahaha!\p" .string "A mere child like you dares to\n" .string "challenge me?\p" @@ -11,20 +11,20 @@ Text_19832E:: @ 819832E .string "Despair to the creeping horror of\n" .string "POISON-type POKéMON!{PLAY_BGM}{MUS_EXEYE}$" -Text_198444:: @ 8198444 +FuchsiaCity_Gym_Text_KogaDefeat:: @ 8198444 .string "Humph!\n" .string "You have proven your worth!\p" .string "Here!\n" .string "Take the SOULBADGE!$" -gUnknown_8198481:: @ 8198481 +FuchsiaCity_Gym_Text_KogaPostBattle:: @ 8198481 .string "When afflicted by TOXIC, a POKéMON\n" .string "suffers more and more.\p" .string "It suffers worsening damage as the\n" .string "battle wears on!\p" .string "It will surely terrorize foes!$" -gUnknown_819850E:: @ 819850E +FuchsiaCity_Gym_Text_KogaExplainSoulBadge:: @ 819850E .string "Now that you have the SOULBADGE,\n" .string "the DEFENSE of your POKéMON rises.\p" .string "It also lets you SURF outside of\n" @@ -32,103 +32,103 @@ gUnknown_819850E:: @ 819850E .string "Ah!\n" .string "Take this, too!$" -gUnknown_819858F:: @ 819858F +FuchsiaCity_Gym_Text_ReceivedTM06FromKoga:: @ 819858F .string "{PLAYER} received TM06\n" .string "from KOGA.$" -gUnknown_81985AB:: @ 81985AB +FuchsiaCity_Gym_Text_KogaExplainTM06:: @ 81985AB .string "Sealed within that TM06 lies\n" .string "TOXIC!\p" .string "It is a secret technique dating\n" .string "back some four hundred years.$" -gUnknown_819860D:: @ 819860D +FuchsiaCity_Gym_Text_MakeSpaceForThis:: @ 819860D .string "Make space for this, child!$" -Text_198629:: @ 8198629 +FuchsiaCity_Gym_Text_KaydenIntro:: @ 8198629 .string "Strength isn't the key for POKéMON.\n" .string "Do you understand this?\p" .string "POKéMON is about strategy!\p" .string "I'll show you how strategy can\n" .string "beat brute strength.$" -Text_1986B4:: @ 81986B4 +FuchsiaCity_Gym_Text_KaydenDefeat:: @ 81986B4 .string "What?\n" .string "Extraordinary!$" -gUnknown_81986C9:: @ 81986C9 +FuchsiaCity_Gym_Text_KaydenPostBattle:: @ 81986C9 .string "So, you mix brawn with brains?\n" .string "Good strategy!\p" .string "That's remarkable for a child\n" .string "TRAINER.$" -Text_19871E:: @ 819871E +FuchsiaCity_Gym_Text_KirkIntro:: @ 819871E .string "I was a magician once upon a time.\p" .string "But I dreamt of becoming a ninja,\n" .string "so I joined this GYM.$" -Text_198779:: @ 8198779 +FuchsiaCity_Gym_Text_KirkDefeat:: @ 8198779 .string "I'm done for!$" -gUnknown_8198787:: @ 8198787 +FuchsiaCity_Gym_Text_KirkPostBattle:: @ 8198787 .string "Even though I've lost, I will keep\n" .string "training according to the teachings\l" .string "of KOGA, my ninja master.$" -Text_1987E8:: @ 81987E8 +FuchsiaCity_Gym_Text_NateIntro:: @ 81987E8 .string "Let's see you beat my special\n" .string "techniques!$" -Text_198812:: @ 8198812 +FuchsiaCity_Gym_Text_NateDefeat:: @ 8198812 .string "You had me fooled!$" -gUnknown_8198825:: @ 8198825 +FuchsiaCity_Gym_Text_NatePostBattle:: @ 8198825 .string "I like poison and sleep techniques,\n" .string "as they linger after battle!$" -Text_198866:: @ 8198866 +FuchsiaCity_Gym_Text_PhilIntro:: @ 8198866 .string "Stop right there!\p" .string "The famed invisible walls of\n" .string "FUCHSIA GYM have you frustrated?$" -Text_1988B6:: @ 81988B6 +FuchsiaCity_Gym_Text_PhilDefeat:: @ 81988B6 .string "Whoa!\n" .string "You've got it!$" -gUnknown_81988CB:: @ 81988CB +FuchsiaCity_Gym_Text_PhilPostBattle:: @ 81988CB .string "You impressed me!\n" .string "Here's a hint!\p" .string "Look very closely for gaps in the\n" .string "invisible walls!$" -Text_19891F:: @ 819891F +FuchsiaCity_Gym_Text_EdgarIntro:: @ 819891F .string "I also study the way of the ninja\n" .string "with Master KOGA!\p" .string "Ninja have a long history of using\n" .string "animals!$" -Text_19897F:: @ 819897F +FuchsiaCity_Gym_Text_EdgarDefeat:: @ 819897F .string "Awoo!$" -gUnknown_8198985:: @ 8198985 +FuchsiaCity_Gym_Text_EdgarPostBattle:: @ 8198985 .string "I still have much to learn.$" -Text_1989A1:: @ 81989A1 +FuchsiaCity_Gym_Text_ShawnIntro:: @ 81989A1 .string "Master KOGA comes from a long line\n" .string "of ninjas.\p" .string "What did you descend from?$" -Text_1989EA:: @ 81989EA +FuchsiaCity_Gym_Text_ShawnDefeat:: @ 81989EA .string "You're more skilled than I'd\n" .string "thought!$" -gUnknown_8198A10:: @ 8198A10 +FuchsiaCity_Gym_Text_ShawnPostBattle:: @ 8198A10 .string "Where there is light, there is\n" .string "shadow!\p" .string "Light and shadow!\n" .string "Which do you choose?$" -gUnknown_8198A5E:: @ 8198A5E +FuchsiaCity_Gym_Text_GymGuyAdvice:: @ 8198A5E .string "Yo!\n" .string "Champ in the making!\p" .string "FUCHSIA GYM is a tricked-up place.\n" @@ -138,17 +138,17 @@ gUnknown_8198A5E:: @ 8198A5E .string "You have to find gaps in the walls\n" .string "to reach him.$" -gUnknown_8198B1D:: @ 8198B1D +FuchsiaCity_Gym_Text_GymGuyPostVictory:: @ 8198B1D .string "It's amazing how ninja can terrify,\n" .string "even now!$" -gUnknown_8198B4B:: @ 8198B4B +FuchsiaCity_Gym_Text_GymStatue:: @ 8198B4B .string "FUCHSIA POKéMON GYM\n" .string "LEADER: KOGA\p" .string "WINNING TRAINERS:\n" .string "{RIVAL}$" -gUnknown_8198B81:: @ 8198B81 +FuchsiaCity_Gym_Text_GymStatuePlayerWon:: @ 8198B81 .string "FUCHSIA POKéMON GYM\n" .string "LEADER: KOGA\p" .string "WINNING TRAINERS:\n" diff --git a/data/maps/FuchsiaCity_House1/map.json b/data/maps/FuchsiaCity_House1/map.json index 60a811b30..dea412ed2 100644 --- a/data/maps/FuchsiaCity_House1/map.json +++ b/data/maps/FuchsiaCity_House1/map.json @@ -23,7 +23,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_House1_EventScript_16D6CF", + "script": "FuchsiaCity_House1_EventScript_OldMan", "flag": "0" }, { @@ -36,7 +36,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_House1_EventScript_16D6C6", + "script": "FuchsiaCity_House1_EventScript_Woman", "flag": "0" }, { @@ -49,7 +49,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_House1_EventScript_16D6E8", + "script": "FuchsiaCity_House1_EventScript_LittleBoy", "flag": "0" } ], diff --git a/data/maps/FuchsiaCity_House1/scripts.inc b/data/maps/FuchsiaCity_House1/scripts.inc index dc32f78c4..2aa53b9fe 100644 --- a/data/maps/FuchsiaCity_House1/scripts.inc +++ b/data/maps/FuchsiaCity_House1/scripts.inc @@ -1,18 +1,18 @@ FuchsiaCity_House1_MapScripts:: @ 816D6C5 .byte 0 -FuchsiaCity_House1_EventScript_16D6C6:: @ 816D6C6 - msgbox gUnknown_8198BBB, MSGBOX_NPC +FuchsiaCity_House1_EventScript_Woman:: @ 816D6C6 + msgbox FuchsiaCity_House1_Text_WardenIsOldHasFalseTeeth, MSGBOX_NPC end -FuchsiaCity_House1_EventScript_16D6CF:: @ 816D6CF +FuchsiaCity_House1_EventScript_OldMan:: @ 816D6CF lock faceplayer famechecker FAMECHECKER_BILL, 2 - msgbox gUnknown_8198C1F + msgbox FuchsiaCity_House1_Text_BillIsMyGrandson release end -FuchsiaCity_House1_EventScript_16D6E8:: @ 816D6E8 - msgbox gUnknown_8198C7B, MSGBOX_NPC +FuchsiaCity_House1_EventScript_LittleBoy:: @ 816D6E8 + msgbox FuchsiaCity_House1_Text_BillFilesHisOwnMonData, MSGBOX_NPC end diff --git a/data/maps/FuchsiaCity_House1/text.inc b/data/maps/FuchsiaCity_House1/text.inc index e34e5d19e..6d1b399aa 100644 --- a/data/maps/FuchsiaCity_House1/text.inc +++ b/data/maps/FuchsiaCity_House1/text.inc @@ -1,16 +1,16 @@ -gUnknown_8198BBB:: @ 8198BBB +FuchsiaCity_House1_Text_WardenIsOldHasFalseTeeth:: @ 8198BBB .string "The SAFARI ZONE's WARDEN is old, \n" .string "but he's still very much active.\p" .string "All his teeth are false, though.$" -gUnknown_8198C1F:: @ 8198C1F +FuchsiaCity_House1_Text_BillIsMyGrandson:: @ 8198C1F .string "Hmm?\n" .string "You've met BILL?\p" .string "He's my grandson!\p" .string "He always liked collecting things,\n" .string "even as a child!$" -gUnknown_8198C7B:: @ 8198C7B +FuchsiaCity_House1_Text_BillFilesHisOwnMonData:: @ 8198C7B .string "BILL files his own POKéMON data on\n" .string "his PC.\p" .string "Did he show you?$" diff --git a/data/maps/FuchsiaCity_House2/map.json b/data/maps/FuchsiaCity_House2/map.json index 06be2ceca..ff4c45b1c 100644 --- a/data/maps/FuchsiaCity_House2/map.json +++ b/data/maps/FuchsiaCity_House2/map.json @@ -23,7 +23,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_House2_EventScript_16D817", + "script": "FuchsiaCity_House2_EventScript_FishingGurusBrother", "flag": "0" } ], diff --git a/data/maps/FuchsiaCity_House2/scripts.inc b/data/maps/FuchsiaCity_House2/scripts.inc index 95e481963..0e624d5d4 100644 --- a/data/maps/FuchsiaCity_House2/scripts.inc +++ b/data/maps/FuchsiaCity_House2/scripts.inc @@ -1,34 +1,34 @@ FuchsiaCity_House2_MapScripts:: @ 816D816 .byte 0 -FuchsiaCity_House2_EventScript_16D817:: @ 816D817 +FuchsiaCity_House2_EventScript_FishingGurusBrother:: @ 816D817 lock faceplayer - goto_if_set FLAG_GOT_GOOD_ROD, EventScript_16D83F - msgbox gUnknown_819918E, MSGBOX_YESNO + goto_if_set FLAG_GOT_GOOD_ROD, FuchsiaCity_House2_EventScript_AlreadyGotGoodRod + msgbox FuchsiaCity_House2_Text_DoYouLikeToFish, MSGBOX_YESNO compare VAR_RESULT, YES - goto_if_eq EventScript_16D849 - msgbox gUnknown_8199337 + goto_if_eq FuchsiaCity_House2_EventScript_GiveGoodRod + msgbox FuchsiaCity_House2_Text_OhThatsDisappointing release end -EventScript_16D83F:: @ 816D83F - msgbox gUnknown_8199354 +FuchsiaCity_House2_EventScript_AlreadyGotGoodRod:: @ 816D83F + msgbox FuchsiaCity_House2_Text_HowAreTheFishBiting release end -EventScript_16D849:: @ 816D849 - msgbox gUnknown_8199207 +FuchsiaCity_House2_EventScript_GiveGoodRod:: @ 816D849 + msgbox FuchsiaCity_House2_Text_LikeYourStyleTakeThis checkitemspace ITEM_GOOD_ROD, 1 compare VAR_RESULT, FALSE - goto_if_eq EventScript_16D88A - giveitem_msg gUnknown_819925E, ITEM_GOOD_ROD - msgbox gUnknown_8199296 + goto_if_eq FuchsiaCity_House2_EventScript_NoRoomForGoodRod + giveitem_msg FuchsiaCity_House2_Text_ReceivedGoodRod, ITEM_GOOD_ROD + msgbox FuchsiaCity_House2_Text_GoodRodCanCatchBetterMons setflag FLAG_GOT_GOOD_ROD release end -EventScript_16D88A:: @ 816D88A - msgbox gUnknown_819937E +FuchsiaCity_House2_EventScript_NoRoomForGoodRod:: @ 816D88A + msgbox FuchsiaCity_House2_Text_YouHaveNoRoomForGift release end diff --git a/data/maps/FuchsiaCity_House2/text.inc b/data/maps/FuchsiaCity_House2/text.inc index bf425f98e..b4cfbd13c 100644 --- a/data/maps/FuchsiaCity_House2/text.inc +++ b/data/maps/FuchsiaCity_House2/text.inc @@ -1,20 +1,20 @@ -gUnknown_819918E:: @ 819918E +FuchsiaCity_House2_Text_DoYouLikeToFish:: @ 819918E .string "I'm the FISHING GURU's older\n" .string "brother.\p" .string "I simply looove fishing!\n" .string "I can't bear to go without.\p" .string "Tell me, do you like to fish?$" -gUnknown_8199207:: @ 8199207 +FuchsiaCity_House2_Text_LikeYourStyleTakeThis:: @ 8199207 .string "Grand! I like your style.\n" .string "I think we can be friends.\p" .string "Take this and fish, young friend!$" -gUnknown_819925E:: @ 819925E +FuchsiaCity_House2_Text_ReceivedGoodRod:: @ 819925E .string "{PLAYER} received a GOOD ROD from\n" .string "the FISHING GURU's brother.$" -gUnknown_8199296:: @ 8199296 +FuchsiaCity_House2_Text_GoodRodCanCatchBetterMons:: @ 8199296 .string "Fishing is a way of life!\n" .string "It is like the finest poetry.\p" .string "A crummy OLD ROD could only catch\n" @@ -22,15 +22,15 @@ gUnknown_8199296:: @ 8199296 .string "But with a GOOD ROD, you can\n" .string "catch much better POKéMON.$" -gUnknown_8199337:: @ 8199337 +FuchsiaCity_House2_Text_OhThatsDisappointing:: @ 8199337 .string "Oh…\n" .string "That's so disappointing…$" -gUnknown_8199354:: @ 8199354 +FuchsiaCity_House2_Text_HowAreTheFishBiting:: @ 8199354 .string "Hello there, {PLAYER}!\p" .string "How are the fish biting?$" -gUnknown_819937E:: @ 819937E +FuchsiaCity_House2_Text_YouHaveNoRoomForGift:: @ 819937E .string "Oh, no!\p" .string "I had a gift for you, but you have\n" .string "no room for it!$" diff --git a/data/maps/FuchsiaCity_House3/map.json b/data/maps/FuchsiaCity_House3/map.json index d5a729342..688224b15 100644 --- a/data/maps/FuchsiaCity_House3/map.json +++ b/data/maps/FuchsiaCity_House3/map.json @@ -23,7 +23,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_House3_EventScript_16D895", + "script": "FuchsiaCity_House3_EventScript_MoveDeleter", "flag": "0" } ], diff --git a/data/maps/FuchsiaCity_House3/scripts.inc b/data/maps/FuchsiaCity_House3/scripts.inc index 5eb556a79..5af270538 100644 --- a/data/maps/FuchsiaCity_House3/scripts.inc +++ b/data/maps/FuchsiaCity_House3/scripts.inc @@ -1,60 +1,60 @@ FuchsiaCity_House3_MapScripts:: @ 816D894 .byte 0 -FuchsiaCity_House3_EventScript_16D895:: @ 816D895 +FuchsiaCity_House3_EventScript_MoveDeleter:: @ 816D895 lock faceplayer - msgbox gUnknown_81993B9, MSGBOX_YESNO + msgbox FuchsiaCity_House3_Text_WouldYouLikeToForgetMove, MSGBOX_YESNO compare VAR_RESULT, YES - goto_if_eq EventScript_16D8B0 - goto EventScript_16D941 + goto_if_eq FuchsiaCity_House3_EventScript_ChooseMonForMoveDeleter + goto FuchsiaCity_House3_EventScript_CancelForgetMove end -EventScript_16D8B0:: @ 816D8B0 - msgbox gUnknown_8199421 +FuchsiaCity_House3_EventScript_ChooseMonForMoveDeleter:: @ 816D8B0 + msgbox FuchsiaCity_House3_Text_WhichMonShouldForgetMove special Special_ChooseMonFromParty waitstate - compare VAR_0x8004, 6 - goto_if_ge EventScript_16D941 + compare VAR_0x8004, PARTY_SIZE + goto_if_ge FuchsiaCity_House3_EventScript_CancelForgetMove special Special_IsSelectedMonEgg - compare VAR_RESULT, 1 - goto_if_eq EventScript_16D937 + compare VAR_RESULT, TRUE + goto_if_eq FuchsiaCity_House3_EventScript_CantForgetMoveEgg special Special_GetNumMovesSelectedMonHas compare VAR_RESULT, 1 - goto_if_eq EventScript_16D92A - msgbox gUnknown_8199445 + goto_if_eq FuchsiaCity_House3_EventScript_CantForgetOnlyMove + msgbox FuchsiaCity_House3_Text_WhichMoveShouldBeForgotten fadescreen FADE_TO_BLACK special Special_SelectMove fadescreen FADE_FROM_BLACK - compare VAR_0x8005, 4 - goto_if_eq EventScript_16D8B0 + compare VAR_0x8005, MAX_MON_MOVES + goto_if_eq FuchsiaCity_House3_EventScript_ChooseMonForMoveDeleter special Special_BufferMoveDeleterNicknameAndMove - msgbox gUnknown_8199485, MSGBOX_YESNO + msgbox FuchsiaCity_House3_Text_MonsMoveShouldBeForgotten, MSGBOX_YESNO compare VAR_RESULT, YES - goto_if_eq EventScript_16D919 - goto EventScript_16D941 + goto_if_eq FuchsiaCity_House3_EventScript_ForgetMove + goto FuchsiaCity_House3_EventScript_CancelForgetMove end -EventScript_16D919:: @ 816D919 +FuchsiaCity_House3_EventScript_ForgetMove:: @ 816D919 special Special_MoveDeleterForgetMove playfanfare MUS_ME_WASURE waitfanfare - msgbox gUnknown_81994B1 + msgbox FuchsiaCity_House3_Text_MonHasForgottenMoveCompletely release end -EventScript_16D92A:: @ 816D92A +FuchsiaCity_House3_EventScript_CantForgetOnlyMove:: @ 816D92A special Special_BufferMoveDeleterNicknameAndMove - msgbox gUnknown_8199465 + msgbox FuchsiaCity_House3_Text_MonOnlyKnowsOneMove release end -EventScript_16D937:: @ 816D937 - msgbox gUnknown_819951F +FuchsiaCity_House3_EventScript_CantForgetMoveEgg:: @ 816D937 + msgbox FuchsiaCity_House3_Text_NoEggShouldKnowMoves release end -EventScript_16D941:: @ 816D941 - msgbox gUnknown_81994EA +FuchsiaCity_House3_EventScript_CancelForgetMove:: @ 816D941 + msgbox FuchsiaCity_House3_Text_ComeAgainToForgetOtherMoves release end diff --git a/data/maps/FuchsiaCity_House3/text.inc b/data/maps/FuchsiaCity_House3/text.inc index e4fbd2f6a..9748c7a3d 100644 --- a/data/maps/FuchsiaCity_House3/text.inc +++ b/data/maps/FuchsiaCity_House3/text.inc @@ -1,35 +1,35 @@ -gUnknown_81993B9:: @ 81993B9 +FuchsiaCity_House3_Text_WouldYouLikeToForgetMove:: @ 81993B9 .string "Uh…\n" .string "Oh, yes, I'm the MOVE DELETER.\p" .string "I can make POKéMON forget their\n" .string "moves.\p" .string "Would you like me to do that?$" -gUnknown_8199421:: @ 8199421 +FuchsiaCity_House3_Text_WhichMonShouldForgetMove:: @ 8199421 .string "Which POKéMON should forget a\n" .string "move?$" -gUnknown_8199445:: @ 8199445 +FuchsiaCity_House3_Text_WhichMoveShouldBeForgotten:: @ 8199445 .string "Which move should be forgotten?$" -gUnknown_8199465:: @ 8199465 +FuchsiaCity_House3_Text_MonOnlyKnowsOneMove:: @ 8199465 .string "{STR_VAR_1} seems to know only one\n" .string "move…$" -gUnknown_8199485:: @ 8199485 +FuchsiaCity_House3_Text_MonsMoveShouldBeForgotten:: @ 8199485 .string "Hm! {STR_VAR_1}'s {STR_VAR_2}?\n" .string "That move should be forgotten?$" -gUnknown_81994B1:: @ 81994B1 +FuchsiaCity_House3_Text_MonHasForgottenMoveCompletely:: @ 81994B1 .string "It worked to perfection!\p" .string "{STR_VAR_1} has forgotten\n" .string "{STR_VAR_2} completely.$" -gUnknown_81994EA:: @ 81994EA +FuchsiaCity_House3_Text_ComeAgainToForgetOtherMoves:: @ 81994EA .string "Come again if there are other\n" .string "moves to be forgotten.$" -gUnknown_819951F:: @ 819951F +FuchsiaCity_House3_Text_NoEggShouldKnowMoves:: @ 819951F .string "What?\n" .string "No EGG should know any moves.$" diff --git a/data/maps/FuchsiaCity_Mart/map.json b/data/maps/FuchsiaCity_Mart/map.json index 00852040b..43a38c753 100644 --- a/data/maps/FuchsiaCity_Mart/map.json +++ b/data/maps/FuchsiaCity_Mart/map.json @@ -23,7 +23,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_Mart_EventScript_16D4F3", + "script": "FuchsiaCity_Mart_EventScript_Clerk", "flag": "0" }, { @@ -36,7 +36,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_Mart_EventScript_16D4EA", + "script": "FuchsiaCity_Mart_EventScript_Gentleman", "flag": "0" }, { @@ -49,7 +49,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_Mart_EventScript_16D4E1", + "script": "FuchsiaCity_Mart_EventScript_CooltrainerF", "flag": "0" } ], diff --git a/data/maps/FuchsiaCity_Mart/scripts.inc b/data/maps/FuchsiaCity_Mart/scripts.inc index 631be4033..4a62ef9db 100644 --- a/data/maps/FuchsiaCity_Mart/scripts.inc +++ b/data/maps/FuchsiaCity_Mart/scripts.inc @@ -1,27 +1,27 @@ FuchsiaCity_Mart_MapScripts:: @ 816D4E0 .byte 0 -FuchsiaCity_Mart_EventScript_16D4E1:: @ 816D4E1 - msgbox gUnknown_8198134, MSGBOX_NPC +FuchsiaCity_Mart_EventScript_CooltrainerF:: @ 816D4E1 + msgbox FuchsiaCity_Mart_Text_DidYouTryXSpeed, MSGBOX_NPC end -FuchsiaCity_Mart_EventScript_16D4EA:: @ 816D4EA - msgbox gUnknown_81980BC, MSGBOX_NPC +FuchsiaCity_Mart_EventScript_Gentleman:: @ 816D4EA + msgbox FuchsiaCity_Mart_Text_DontTheyHaveSafariZonePennants, MSGBOX_NPC end -FuchsiaCity_Mart_EventScript_16D4F3:: @ 816D4F3 +FuchsiaCity_Mart_EventScript_Clerk:: @ 816D4F3 goto_if_questlog EventScript_ReleaseEnd lock faceplayer message Text_MayIHelpYou waitmessage - pokemart Items_16D518 + pokemart FuchsiaCity_Mart_Items msgbox Text_PleaseComeAgain release end .align 2 -Items_16D518:: @ 816D518 +FuchsiaCity_Mart_Items:: @ 816D518 .2byte ITEM_ULTRA_BALL .2byte ITEM_GREAT_BALL .2byte ITEM_SUPER_POTION diff --git a/data/maps/FuchsiaCity_Mart/text.inc b/data/maps/FuchsiaCity_Mart/text.inc index 69f9bc5f8..6bac5b484 100644 --- a/data/maps/FuchsiaCity_Mart/text.inc +++ b/data/maps/FuchsiaCity_Mart/text.inc @@ -1,10 +1,10 @@ -gUnknown_81980BC:: @ 81980BC +FuchsiaCity_Mart_Text_DontTheyHaveSafariZonePennants:: @ 81980BC .string "Don't they have any pennants\n" .string "promoting the SAFARI ZONE?\p" .string "How about some paper lanterns?\n" .string "Aren't there even any calendars?$" -gUnknown_8198134:: @ 8198134 +FuchsiaCity_Mart_Text_DidYouTryXSpeed:: @ 8198134 .string "Did you try X SPEED?\n" .string "It speeds up a POKéMON in battle.$" diff --git a/data/maps/FuchsiaCity_PokemonCenter_1F/map.json b/data/maps/FuchsiaCity_PokemonCenter_1F/map.json index d2e1eee01..9cc66692f 100644 --- a/data/maps/FuchsiaCity_PokemonCenter_1F/map.json +++ b/data/maps/FuchsiaCity_PokemonCenter_1F/map.json @@ -23,7 +23,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_PokemonCenter_1F_EventScript_16D700", + "script": "FuchsiaCity_PokemonCenter_1F_EventScript_Nurse", "flag": "0" }, { @@ -36,7 +36,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_PokemonCenter_1F_EventScript_16D709", + "script": "FuchsiaCity_PokemonCenter_1F_EventScript_Man", "flag": "0" }, { @@ -49,7 +49,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_PokemonCenter_1F_EventScript_16D712", + "script": "FuchsiaCity_PokemonCenter_1F_EventScript_CooltrainerF", "flag": "0" }, { @@ -62,7 +62,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_PokemonCenter_1F_EventScript_16D71B", + "script": "FuchsiaCity_PokemonCenter_1F_EventScript_Youngster", "flag": "0" } ], diff --git a/data/maps/FuchsiaCity_PokemonCenter_1F/scripts.inc b/data/maps/FuchsiaCity_PokemonCenter_1F/scripts.inc index 428305d1c..abcd80e57 100644 --- a/data/maps/FuchsiaCity_PokemonCenter_1F/scripts.inc +++ b/data/maps/FuchsiaCity_PokemonCenter_1F/scripts.inc @@ -7,21 +7,21 @@ FuchsiaCity_PokemonCenter_1F_OnTransition:: @ 816D6FC setrespawn SPAWN_FUCHSIA_CITY end -FuchsiaCity_PokemonCenter_1F_EventScript_16D700:: @ 816D700 +FuchsiaCity_PokemonCenter_1F_EventScript_Nurse:: @ 816D700 lock faceplayer call EventScript_PkmnCenterNurse release end -FuchsiaCity_PokemonCenter_1F_EventScript_16D709:: @ 816D709 - msgbox gUnknown_8198CB7, MSGBOX_NPC +FuchsiaCity_PokemonCenter_1F_EventScript_Man:: @ 816D709 + msgbox FuchsiaCity_PokemonCenter_1F_Text_CantBecomeGoodTrainerWithOneMon, MSGBOX_NPC end -FuchsiaCity_PokemonCenter_1F_EventScript_16D712:: @ 816D712 - msgbox gUnknown_8198D2E, MSGBOX_NPC +FuchsiaCity_PokemonCenter_1F_EventScript_CooltrainerF:: @ 816D712 + msgbox FuchsiaCity_PokemonCenter_1F_Text_PokemonLeagueWestOfViridian, MSGBOX_NPC end -FuchsiaCity_PokemonCenter_1F_EventScript_16D71B:: @ 816D71B - msgbox gUnknown_8198D9B, MSGBOX_NPC +FuchsiaCity_PokemonCenter_1F_EventScript_Youngster:: @ 816D71B + msgbox FuchsiaCity_PokemonCenter_1F_Text_VisitSafariZoneForPokedex, MSGBOX_NPC end diff --git a/data/maps/FuchsiaCity_PokemonCenter_1F/text.inc b/data/maps/FuchsiaCity_PokemonCenter_1F/text.inc index 7d3a627be..4d5deb734 100644 --- a/data/maps/FuchsiaCity_PokemonCenter_1F/text.inc +++ b/data/maps/FuchsiaCity_PokemonCenter_1F/text.inc @@ -1,16 +1,16 @@ -gUnknown_8198CB7:: @ 8198CB7 +FuchsiaCity_PokemonCenter_1F_Text_CantBecomeGoodTrainerWithOneMon:: @ 8198CB7 .string "You can't become a good TRAINER\n" .string "with just one strong POKéMON.\p" .string "But raising many POKéMON evenly\n" .string "is no easy task, either.$" -gUnknown_8198D2E:: @ 8198D2E +FuchsiaCity_PokemonCenter_1F_Text_PokemonLeagueWestOfViridian:: @ 8198D2E .string "There's a narrow trail west of\n" .string "VIRIDIAN CITY.\p" .string "It goes to the POKéMON LEAGUE HQ.\n" .string "The HQ governs all TRAINERS.$" -gUnknown_8198D9B:: @ 8198D9B +FuchsiaCity_PokemonCenter_1F_Text_VisitSafariZoneForPokedex:: @ 8198D9B .string "If you're working on a POKéDEX,\n" .string "visit the SAFARI ZONE.\p" .string "All sorts of rare POKéMON breed\n" diff --git a/data/maps/FuchsiaCity_SafariZone_Entrance/map.json b/data/maps/FuchsiaCity_SafariZone_Entrance/map.json index b4b0e9f82..04d51dae8 100644 --- a/data/maps/FuchsiaCity_SafariZone_Entrance/map.json +++ b/data/maps/FuchsiaCity_SafariZone_Entrance/map.json @@ -36,7 +36,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_SafariZone_Entrance_EventScript_16D4B7", + "script": "FuchsiaCity_SafariZone_Entrance_EventScript_InfoAttendant", "flag": "0" } ], @@ -78,7 +78,7 @@ "elevation": 3, "var": "VAR_TEMP_1", "var_value": 0, - "script": "FuchsiaCity_SafariZone_Entrance_EventScript_16D36D" + "script": "FuchsiaCity_SafariZone_Entrance_EventScript_EntryTriggerMid" }, { "type": "trigger", @@ -87,7 +87,7 @@ "elevation": 3, "var": "VAR_TEMP_1", "var_value": 0, - "script": "FuchsiaCity_SafariZone_Entrance_EventScript_16D379" + "script": "FuchsiaCity_SafariZone_Entrance_EventScript_EntryTriggerRight" }, { "type": "trigger", @@ -96,7 +96,7 @@ "elevation": 3, "var": "VAR_TEMP_1", "var_value": 0, - "script": "FuchsiaCity_SafariZone_Entrance_EventScript_16D385" + "script": "FuchsiaCity_SafariZone_Entrance_EventScript_EntryTriggerLeft" } ], "bg_events": [] diff --git a/data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc b/data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc index e4ec53ca7..863ddbd48 100644 --- a/data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc +++ b/data/maps/FuchsiaCity_SafariZone_Entrance/scripts.inc @@ -3,210 +3,213 @@ FuchsiaCity_SafariZone_Entrance_MapScripts:: @ 816D2A8 .byte 0 FuchsiaCity_SafariZone_Entrance_OnFrame:: @ 816D2AE - map_script_2 VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 1, EventScript_16D2F2 - map_script_2 VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 2, EventScript_16D312 - map_script_2 VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 3, EventScript_16D2C8 + map_script_2 VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 1, FuchsiaCity_SafariZone_Entrance_EventScript_ExitWarpIn + map_script_2 VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 2, FuchsiaCity_SafariZone_Entrance_EventScript_ExitEarly + map_script_2 VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 3, FuchsiaCity_SafariZone_Entrance_EventScript_ExitWalkIn .2byte 0 -EventScript_16D2C8:: @ 816D2C8 +@ When player runs out of balls mid-battle +FuchsiaCity_SafariZone_Entrance_EventScript_ExitWalkIn:: @ 816D2C8 lockall textcolor 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_16D36A + applymovement OBJ_EVENT_ID_PLAYER, FuchsiaCity_SafariZone_Entrance_Movement_ApproachCounter waitmovement 0 - msgbox gUnknown_8197E85 + msgbox FuchsiaCity_SafariZone_Entrance_Text_CatchFairShareComeAgain closemessage - applymovement OBJ_EVENT_ID_PLAYER, Movement_16D367 + applymovement OBJ_EVENT_ID_PLAYER, FuchsiaCity_SafariZone_Entrance_Movement_Exit2 waitmovement 0 special ExitSafariMode setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 0 releaseall end -EventScript_16D2F2:: @ 816D2F2 +@ When player runs of out balls after catching a pokemon, or runs out of steps +FuchsiaCity_SafariZone_Entrance_EventScript_ExitWarpIn:: @ 816D2F2 lockall textcolor 0 - msgbox gUnknown_8197E85 + msgbox FuchsiaCity_SafariZone_Entrance_Text_CatchFairShareComeAgain closemessage - applymovement OBJ_EVENT_ID_PLAYER, Movement_16D362 + applymovement OBJ_EVENT_ID_PLAYER, FuchsiaCity_SafariZone_Entrance_Movement_Exit waitmovement 0 special ExitSafariMode setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 0 releaseall end -EventScript_16D312:: @ 816D312 +@ When player re-enters the entrance building with balls/steps remaining +FuchsiaCity_SafariZone_Entrance_EventScript_ExitEarly:: @ 816D312 lockall textcolor 0 - msgbox gUnknown_8197E1A, MSGBOX_YESNO + msgbox FuchsiaCity_SafariZone_Entrance_Text_GoingToLeaveSafariZoneEarly, MSGBOX_YESNO compare VAR_RESULT, NO - goto_if_eq EventScript_16D345 - msgbox gUnknown_8197E48 + goto_if_eq FuchsiaCity_SafariZone_Entrance_EventScript_ReturnToSafariZone + msgbox FuchsiaCity_SafariZone_Entrance_Text_PleaseReturnSafariBalls closemessage - applymovement OBJ_EVENT_ID_PLAYER, Movement_16D362 + applymovement OBJ_EVENT_ID_PLAYER, FuchsiaCity_SafariZone_Entrance_Movement_Exit waitmovement 0 special ExitSafariMode setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 0 releaseall end -EventScript_16D345:: @ 816D345 - msgbox gUnknown_8197E7A +FuchsiaCity_SafariZone_Entrance_EventScript_ReturnToSafariZone:: @ 816D345 + msgbox FuchsiaCity_SafariZone_Entrance_Text_GoodLuck closemessage - applymovement OBJ_EVENT_ID_PLAYER, Movement_16D365 + applymovement OBJ_EVENT_ID_PLAYER, FuchsiaCity_SafariZone_Entrance_Movement_ReEnter waitmovement 0 warp MAP_SAFARI_ZONE_CENTER, 255, 26, 30 waitstate end -Movement_16D362:: @ 816D362 +FuchsiaCity_SafariZone_Entrance_Movement_Exit:: @ 816D362 walk_down walk_down step_end -Movement_16D365:: @ 816D365 +FuchsiaCity_SafariZone_Entrance_Movement_ReEnter:: @ 816D365 walk_up step_end -Movement_16D367:: @ 816D367 +FuchsiaCity_SafariZone_Entrance_Movement_Exit2:: @ 816D367 walk_down walk_down step_end -Movement_16D36A:: @ 816D36A +FuchsiaCity_SafariZone_Entrance_Movement_ApproachCounter:: @ 816D36A walk_down delay_8 step_end -FuchsiaCity_SafariZone_Entrance_EventScript_16D36D:: @ 816D36D +FuchsiaCity_SafariZone_Entrance_EventScript_EntryTriggerMid:: @ 816D36D lockall setvar VAR_TEMP_2, 0 - goto EventScript_16D391 + goto FuchsiaCity_SafariZone_Entrance_EventScript_AskEnterSafariZone end -FuchsiaCity_SafariZone_Entrance_EventScript_16D379:: @ 816D379 +FuchsiaCity_SafariZone_Entrance_EventScript_EntryTriggerRight:: @ 816D379 lockall setvar VAR_TEMP_2, 1 - goto EventScript_16D391 + goto FuchsiaCity_SafariZone_Entrance_EventScript_AskEnterSafariZone end -FuchsiaCity_SafariZone_Entrance_EventScript_16D385:: @ 816D385 +FuchsiaCity_SafariZone_Entrance_EventScript_EntryTriggerLeft:: @ 816D385 lockall setvar VAR_TEMP_2, 2 - goto EventScript_16D391 + goto FuchsiaCity_SafariZone_Entrance_EventScript_AskEnterSafariZone end -EventScript_16D391:: @ 816D391 +FuchsiaCity_SafariZone_Entrance_EventScript_AskEnterSafariZone:: @ 816D391 textcolor 0 - msgbox gUnknown_8197C6B + msgbox FuchsiaCity_SafariZone_Entrance_Text_WelcomeToSafariZone applymovement OBJ_EVENT_ID_PLAYER, Movement_WalkInPlaceFastestRight waitmovement 0 showmoneybox 0, 0, 0 - msgbox gUnknown_8197C87, MSGBOX_YESNO + msgbox FuchsiaCity_SafariZone_Entrance_Text_PlaySafariGameFor500, MSGBOX_YESNO compare VAR_RESULT, YES - goto_if_eq EventScript_16D3CA - msgbox gUnknown_8197DE9 - goto EventScript_16D49A + goto_if_eq FuchsiaCity_SafariZone_Entrance_EventScript_TryEnterSafariZone + msgbox FuchsiaCity_SafariZone_Entrance_Text_OkayPleaseComeAgain + goto FuchsiaCity_SafariZone_Entrance_EventScript_ForcePlayerBack end -EventScript_16D3CA:: @ 816D3CA - call EventScript_16D462 +FuchsiaCity_SafariZone_Entrance_EventScript_TryEnterSafariZone:: @ 816D3CA + call FuchsiaCity_SafariZone_Entrance_EventScript_CheckSpaceForMons checkmoney 500, 0 compare VAR_RESULT, FALSE - goto_if_eq EventScript_16D48C + goto_if_eq FuchsiaCity_SafariZone_Entrance_EventScript_NotEnoughMoney removemoney 500, 0 updatemoneybox 0, 0, 0 - msgbox gUnknown_8197D07 + msgbox FuchsiaCity_SafariZone_Entrance_Text_ThatllBe500WeOnlyUseSpecialBalls textcolor 3 playfanfare MUS_FANFA1 - message Text_197D50 + message FuchsiaCity_SafariZone_Entrance_Text_PlayerReceived30SafariBalls waitfanfare call EventScript_1A6675 - msgbox gUnknown_8197D80 + msgbox FuchsiaCity_SafariZone_Entrance_Text_CallYouOnPAWhenYouRunOut closemessage hidemoneybox 0, 0 compare VAR_TEMP_2, 0 - call_if_eq EventScript_16D44C + call_if_eq FuchsiaCity_SafariZone_Entrance_EventScript_EnterSafariZoneMid compare VAR_TEMP_2, 1 - call_if_eq EventScript_16D441 + call_if_eq FuchsiaCity_SafariZone_Entrance_EventScript_EnterSafariZoneRight compare VAR_TEMP_2, 2 - call_if_eq EventScript_16D457 + call_if_eq FuchsiaCity_SafariZone_Entrance_EventScript_EnterSafariZoneLeft special EnterSafariMode setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 2 warp MAP_SAFARI_ZONE_CENTER, 255, 26, 30 waitstate end -EventScript_16D441:: @ 816D441 - applymovement OBJ_EVENT_ID_PLAYER, Movement_16D4AF +FuchsiaCity_SafariZone_Entrance_EventScript_EnterSafariZoneRight:: @ 816D441 + applymovement OBJ_EVENT_ID_PLAYER, FuchsiaCity_SafariZone_Entrance_Movement_EnterSafariZoneRight waitmovement 0 return -EventScript_16D44C:: @ 816D44C - applymovement OBJ_EVENT_ID_PLAYER, Movement_16D4AC +FuchsiaCity_SafariZone_Entrance_EventScript_EnterSafariZoneMid:: @ 816D44C + applymovement OBJ_EVENT_ID_PLAYER, FuchsiaCity_SafariZone_Entrance_Movement_EnterSafariZoneMid waitmovement 0 return -EventScript_16D457:: @ 816D457 - applymovement OBJ_EVENT_ID_PLAYER, Movement_16D4B3 +FuchsiaCity_SafariZone_Entrance_EventScript_EnterSafariZoneLeft:: @ 816D457 + applymovement OBJ_EVENT_ID_PLAYER, FuchsiaCity_SafariZone_Entrance_Movement_EnterSafariZoneLeft waitmovement 0 return -EventScript_16D462:: @ 816D462 +FuchsiaCity_SafariZone_Entrance_EventScript_CheckSpaceForMons:: @ 816D462 getpartysize compare VAR_RESULT, PARTY_SIZE goto_if_ne EventScript_Return specialvar VAR_RESULT, Special_IsThereRoomInAnyBoxForMorePokemon - compare VAR_RESULT, 1 + compare VAR_RESULT, TRUE goto_if_eq EventScript_Return - msgbox gUnknown_81BFEAC - goto EventScript_16D49A + msgbox SafariZone_Text_ExcuseMeYourPCBoxIsFull + goto FuchsiaCity_SafariZone_Entrance_EventScript_ForcePlayerBack end -EventScript_16D48C:: @ 816D48C - msgbox gUnknown_8197E02 - goto EventScript_16D49A +FuchsiaCity_SafariZone_Entrance_EventScript_NotEnoughMoney:: @ 816D48C + msgbox FuchsiaCity_SafariZone_Entrance_Text_OopsNotEnoughMoney + goto FuchsiaCity_SafariZone_Entrance_EventScript_ForcePlayerBack end -EventScript_16D49A:: @ 816D49A +FuchsiaCity_SafariZone_Entrance_EventScript_ForcePlayerBack:: @ 816D49A closemessage hidemoneybox 0, 0 - applymovement OBJ_EVENT_ID_PLAYER, Movement_16D4AA + applymovement OBJ_EVENT_ID_PLAYER, FuchsiaCity_SafariZone_Entrance_Movement_ForceBack waitmovement 0 releaseall end -Movement_16D4AA:: @ 816D4AA +FuchsiaCity_SafariZone_Entrance_Movement_ForceBack:: @ 816D4AA walk_down step_end -Movement_16D4AC:: @ 816D4AC +FuchsiaCity_SafariZone_Entrance_Movement_EnterSafariZoneMid:: @ 816D4AC walk_up walk_up step_end -Movement_16D4AF:: @ 816D4AF +FuchsiaCity_SafariZone_Entrance_Movement_EnterSafariZoneRight:: @ 816D4AF walk_up walk_left walk_up step_end -Movement_16D4B3:: @ 816D4B3 +FuchsiaCity_SafariZone_Entrance_Movement_EnterSafariZoneLeft:: @ 816D4B3 walk_up walk_right walk_up step_end -FuchsiaCity_SafariZone_Entrance_EventScript_16D4B7:: @ 816D4B7 +FuchsiaCity_SafariZone_Entrance_EventScript_InfoAttendant:: @ 816D4B7 lock faceplayer - msgbox gUnknown_8197EB0, MSGBOX_YESNO + msgbox FuchsiaCity_SafariZone_Entrance_Text_FirstTimeAtSafariZone, MSGBOX_YESNO compare VAR_RESULT, YES - goto_if_eq EventScript_16D4D6 - msgbox gUnknown_819809E + goto_if_eq FuchsiaCity_SafariZone_Entrance_EventScript_ExplainSafariZone + msgbox FuchsiaCity_SafariZone_Entrance_Text_SorryYoureARegularHere release end -EventScript_16D4D6:: @ 816D4D6 - msgbox gUnknown_8197EE3 +FuchsiaCity_SafariZone_Entrance_EventScript_ExplainSafariZone:: @ 816D4D6 + msgbox FuchsiaCity_SafariZone_Entrance_Text_ExplainSafariZone release end diff --git a/data/maps/FuchsiaCity_SafariZone_Entrance/text.inc b/data/maps/FuchsiaCity_SafariZone_Entrance/text.inc index bda1357a4..58f784422 100644 --- a/data/maps/FuchsiaCity_SafariZone_Entrance/text.inc +++ b/data/maps/FuchsiaCity_SafariZone_Entrance/text.inc @@ -1,56 +1,56 @@ -gUnknown_8197C6B:: @ 8197C6B +FuchsiaCity_SafariZone_Entrance_Text_WelcomeToSafariZone:: @ 8197C6B .string "Welcome to the SAFARI ZONE!$" -gUnknown_8197C87:: @ 8197C87 +FuchsiaCity_SafariZone_Entrance_Text_PlaySafariGameFor500:: @ 8197C87 .string "For just ¥500, you can play the\n" .string "SAFARI GAME.\p" .string "You can roam the wide-open safari\n" .string "and catch what you like.\p" .string "Would you like to play?$" -gUnknown_8197D07:: @ 8197D07 +FuchsiaCity_SafariZone_Entrance_Text_ThatllBe500WeOnlyUseSpecialBalls:: @ 8197D07 .string "That'll be ¥500, please!\p" .string "We only use a special kind of \n" .string "POKé BALLS here.$" -Text_197D50:: @ 8197D50 +FuchsiaCity_SafariZone_Entrance_Text_PlayerReceived30SafariBalls:: @ 8197D50 .string "{PLAYER} received 30 SAFARI BALLS\n" .string "from the attendant.$" -gUnknown_8197D80:: @ 8197D80 +FuchsiaCity_SafariZone_Entrance_Text_CallYouOnPAWhenYouRunOut:: @ 8197D80 .string "We'll call you on the PA when you\n" .string "run out of time or SAFARI BALLS.\p" .string "Well, I'll wish you the best of\n" .string "luck!$" -gUnknown_8197DE9:: @ 8197DE9 +FuchsiaCity_SafariZone_Entrance_Text_OkayPleaseComeAgain:: @ 8197DE9 .string "Okay.\n" .string "Please come again!$" -gUnknown_8197E02:: @ 8197E02 +FuchsiaCity_SafariZone_Entrance_Text_OopsNotEnoughMoney:: @ 8197E02 .string "Oops!\n" .string "Not enough money!$" -gUnknown_8197E1A:: @ 8197E1A +FuchsiaCity_SafariZone_Entrance_Text_GoingToLeaveSafariZoneEarly:: @ 8197E1A .string "Are you going to leave the\n" .string "SAFARI ZONE early?$" -gUnknown_8197E48:: @ 8197E48 +FuchsiaCity_SafariZone_Entrance_Text_PleaseReturnSafariBalls:: @ 8197E48 .string "Please return any SAFARI BALLS\n" .string "you may have left.$" -gUnknown_8197E7A:: @ 8197E7A +FuchsiaCity_SafariZone_Entrance_Text_GoodLuck:: @ 8197E7A .string "Good luck!$" -gUnknown_8197E85:: @ 8197E85 +FuchsiaCity_SafariZone_Entrance_Text_CatchFairShareComeAgain:: @ 8197E85 .string "Did you catch your fair share?\n" .string "Come again!$" -gUnknown_8197EB0:: @ 8197EB0 +FuchsiaCity_SafariZone_Entrance_Text_FirstTimeAtSafariZone:: @ 8197EB0 .string "Hi! Is it your first time here at\n" .string "the SAFARI ZONE?$" -gUnknown_8197EE3:: @ 8197EE3 +FuchsiaCity_SafariZone_Entrance_Text_ExplainSafariZone:: @ 8197EE3 .string "The SAFARI ZONE actually has\n" .string "four zones in it.\p" .string "Each zone has different kinds of\n" @@ -68,6 +68,6 @@ gUnknown_8197EE3:: @ 8197EE3 .string "When you run out of time or SAFARI\n" .string "BALLS, it's game over for you!$" -gUnknown_819809E:: @ 819809E +FuchsiaCity_SafariZone_Entrance_Text_SorryYoureARegularHere:: @ 819809E .string "Sorry, you're a regular here!$" diff --git a/data/maps/FuchsiaCity_ZooBuilding/map.json b/data/maps/FuchsiaCity_SafariZone_Office/map.json index a4cf1b1a0..be1abfced 100644 --- a/data/maps/FuchsiaCity_ZooBuilding/map.json +++ b/data/maps/FuchsiaCity_SafariZone_Office/map.json @@ -1,7 +1,7 @@ { - "id": "MAP_FUCHSIA_CITY_ZOO_BUILDING", - "name": "FuchsiaCity_ZooBuilding", - "layout": "LAYOUT_FUCHSIA_CITY_ZOO_BUILDING", + "id": "MAP_FUCHSIA_CITY_SAFARI_ZONE_OFFICE", + "name": "FuchsiaCity_SafariZone_Office", + "layout": "LAYOUT_FUCHSIA_CITY_SAFARI_ZONE_OFFICE", "music": "MUS_HANADA", "region_map_section": "MAPSEC_FUCHSIA_CITY", "requires_flash": false, @@ -23,7 +23,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_ZooBuilding_EventScript_16D532", + "script": "FuchsiaCity_SafariZone_Office_EventScript_Worker2", "flag": "0" }, { @@ -36,7 +36,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_ZooBuilding_EventScript_16D53B", + "script": "FuchsiaCity_SafariZone_Office_EventScript_Worker3", "flag": "0" }, { @@ -49,7 +49,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_ZooBuilding_EventScript_16D529", + "script": "FuchsiaCity_SafariZone_Office_EventScript_Worker1", "flag": "0" }, { @@ -62,7 +62,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_ZooBuilding_EventScript_16D544", + "script": "FuchsiaCity_SafariZone_Office_EventScript_Worker4", "flag": "0" } ], diff --git a/data/maps/FuchsiaCity_SafariZone_Office/scripts.inc b/data/maps/FuchsiaCity_SafariZone_Office/scripts.inc new file mode 100644 index 000000000..88832c1b0 --- /dev/null +++ b/data/maps/FuchsiaCity_SafariZone_Office/scripts.inc @@ -0,0 +1,18 @@ +FuchsiaCity_SafariZone_Office_MapScripts:: @ 816D528 + .byte 0 + +FuchsiaCity_SafariZone_Office_EventScript_Worker1:: @ 816D529 + msgbox FuchsiaCity_SafariZone_Office_Text_NicknamedWardenSlowpoke, MSGBOX_NPC + end + +FuchsiaCity_SafariZone_Office_EventScript_Worker2:: @ 816D532 + msgbox FuchsiaCity_SafariZone_Office_Text_WardenIsVeryKnowledgeable, MSGBOX_NPC + end + +FuchsiaCity_SafariZone_Office_EventScript_Worker3:: @ 816D53B + msgbox FuchsiaCity_SafariZone_Office_Text_CouldntUnderstandWarden, MSGBOX_NPC + end + +FuchsiaCity_SafariZone_Office_EventScript_Worker4:: @ 816D544 + msgbox FuchsiaCity_SafariZone_Office_Text_PrizeInSafariZone, MSGBOX_NPC + end diff --git a/data/maps/FuchsiaCity_ZooBuilding/text.inc b/data/maps/FuchsiaCity_SafariZone_Office/text.inc index 36b7e8a3e..0fedd07d6 100644 --- a/data/maps/FuchsiaCity_ZooBuilding/text.inc +++ b/data/maps/FuchsiaCity_SafariZone_Office/text.inc @@ -1,21 +1,21 @@ -gUnknown_819816B:: @ 819816B +FuchsiaCity_SafariZone_Office_Text_NicknamedWardenSlowpoke:: @ 819816B .string "We nicknamed the WARDEN\n" .string "“SLOWPOKE.”\p" .string "You know, he has that vacant look\n" .string "like a SLOWPOKE.$" -gUnknown_81981C2:: @ 81981C2 +FuchsiaCity_SafariZone_Office_Text_WardenIsVeryKnowledgeable:: @ 81981C2 .string "WARDEN SLOWPOKE is very\n" .string "knowledgeable about POKéMON.\p" .string "He even has some fossils of rare,\n" .string "extinct POKéMON.$" -gUnknown_819822A:: @ 819822A +FuchsiaCity_SafariZone_Office_Text_CouldntUnderstandWarden:: @ 819822A .string "WARDEN SLOWPOKE came in, but\n" .string "I couldn't understand him.\p" .string "I think he's got a speech problem!$" -gUnknown_8198285:: @ 8198285 +FuchsiaCity_SafariZone_Office_Text_PrizeInSafariZone:: @ 8198285 .string "WARDEN SLOWPOKE is running a\n" .string "promotion campaign right now.\p" .string "Try to get to the farthest corner\n" diff --git a/data/maps/FuchsiaCity_Building1/map.json b/data/maps/FuchsiaCity_WardensHouse/map.json index 763dfb3e8..00f33363c 100644 --- a/data/maps/FuchsiaCity_Building1/map.json +++ b/data/maps/FuchsiaCity_WardensHouse/map.json @@ -1,7 +1,7 @@ { - "id": "MAP_FUCHSIA_CITY_BUILDING1", - "name": "FuchsiaCity_Building1", - "layout": "LAYOUT_FUCHSIA_CITY_BUILDING1", + "id": "MAP_FUCHSIA_CITY_WARDENS_HOUSE", + "name": "FuchsiaCity_WardensHouse", + "layout": "LAYOUT_FUCHSIA_CITY_WARDENS_HOUSE", "music": "MUS_HANADA", "region_map_section": "MAPSEC_FUCHSIA_CITY", "requires_flash": false, @@ -23,7 +23,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_Building1_EventScript_16D74C", + "script": "FuchsiaCity_WardensHouse_EventScript_Warden", "flag": "0" }, { @@ -49,8 +49,8 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_Building1_EventScript_ItemRareCandy", - "flag": "FLAG_HIDE_FUCHSIA_CITY_BUILDING1_RARE_CANDY" + "script": "FuchsiaCity_WardensHouse_EventScript_ItemRareCandy", + "flag": "FLAG_HIDE_FUCHSIA_CITY_WARDENS_HOUSE_RARE_CANDY" }, { "graphics_id": "0", @@ -62,7 +62,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "FuchsiaCity_Building1_EventScript_1ACEB8", + "script": "FuchsiaCity_WardensHouse_EventScript_PokemonJournalKoga", "flag": "FLAG_HIDE_FAME_CHECKER_KOGA_JOURNAL" } ], @@ -96,28 +96,28 @@ "x": 7, "y": 4, "elevation": 0, - "script": "FuchsiaCity_Building1_EventScript_16D80D" + "script": "FuchsiaCity_WardensHouse_EventScript_DisplaySign2" }, { "type": "bg_event_type_0", "x": 4, "y": 4, "elevation": 0, - "script": "FuchsiaCity_Building1_EventScript_16D804" + "script": "FuchsiaCity_WardensHouse_EventScript_DisplaySign1" }, { "type": "bg_event_type_0", "x": 5, "y": 4, "elevation": 0, - "script": "FuchsiaCity_Building1_EventScript_16D804" + "script": "FuchsiaCity_WardensHouse_EventScript_DisplaySign1" }, { "type": "bg_event_type_0", "x": 6, "y": 4, "elevation": 0, - "script": "FuchsiaCity_Building1_EventScript_16D80D" + "script": "FuchsiaCity_WardensHouse_EventScript_DisplaySign2" } ] } diff --git a/data/maps/FuchsiaCity_WardensHouse/scripts.inc b/data/maps/FuchsiaCity_WardensHouse/scripts.inc new file mode 100644 index 000000000..141101e1b --- /dev/null +++ b/data/maps/FuchsiaCity_WardensHouse/scripts.inc @@ -0,0 +1,63 @@ +FuchsiaCity_WardensHouse_MapScripts:: @ 816D74B + .byte 0 + +FuchsiaCity_WardensHouse_EventScript_Warden:: @ 816D74C + lock + faceplayer + goto_if_set FLAG_GOT_HM04, FuchsiaCity_WardensHouse_EventScript_ExplainStrength + goto_if_set FLAG_HIDE_SAFARI_ZONE_WEST_GOLD_TEETH, FuchsiaCity_WardensHouse_EventScript_GiveGoldTeeth + msgbox FuchsiaCity_WardensHouse_Text_HifFuffHefifoo, MSGBOX_YESNO + compare VAR_RESULT, YES + call_if_eq FuchsiaCity_WardensHouse_EventScript_WardenYes + compare VAR_RESULT, NO + call_if_eq FuchsiaCity_WardensHouse_EventScript_WardenNo + release + end + +FuchsiaCity_WardensHouse_EventScript_GiveGoldTeeth:: @ 816D780 + textcolor 3 + playfanfare MUS_ME_WAZA + message FuchsiaCity_WardensHouse_Text_GaveGoldTeethToWarden + waitmessage + waitfanfare + msgbox FuchsiaCity_WardensHouse_Text_WardenPoppedInHisTeeth + call EventScript_1A6675 + checkplayergender + compare VAR_RESULT, MALE + call_if_eq FuchsiaCity_WardensHouse_EventScript_WardenThanksMale + compare VAR_RESULT, FEMALE + call_if_eq FuchsiaCity_WardensHouse_EventScript_WardenThanksFemale + giveitem_msg FuchsiaCity_WardensHouse_Text_ReceivedHM04FromWarden, ITEM_HM04 + setflag FLAG_GOT_HM04 + removeitem ITEM_GOLD_TEETH, 1 + release + end + +FuchsiaCity_WardensHouse_EventScript_WardenThanksMale:: @ 816D7D6 + msgbox FuchsiaCity_WardensHouse_Text_ThanksSonGiveYouSomething + return + +FuchsiaCity_WardensHouse_EventScript_WardenThanksFemale:: @ 816D7DF + msgbox FuchsiaCity_WardensHouse_Text_ThanksLassieGiveYouSomething + return + +FuchsiaCity_WardensHouse_EventScript_WardenYes:: @ 816D7E8 + msgbox FuchsiaCity_WardensHouse_Text_AhHowheeHoHoo + return + +FuchsiaCity_WardensHouse_EventScript_WardenNo:: @ 816D7F1 + msgbox FuchsiaCity_WardensHouse_Text_HeOhayHeHaHoo + return + +FuchsiaCity_WardensHouse_EventScript_ExplainStrength:: @ 816D7FA + msgbox FuchsiaCity_WardensHouse_Text_ExplainStrength + release + end + +FuchsiaCity_WardensHouse_EventScript_DisplaySign1:: @ 816D804 + msgbox FuchsiaCity_WardensHouse_Text_MonPhotosFossilsOnDisplay, MSGBOX_SIGN + end + +FuchsiaCity_WardensHouse_EventScript_DisplaySign2:: @ 816D80D + msgbox FuchsiaCity_WardensHouse_Text_OldMonMerchandiseOnDisplay, MSGBOX_SIGN + end diff --git a/data/maps/FuchsiaCity_Building1/text.inc b/data/maps/FuchsiaCity_WardensHouse/text.inc index dd4069e1f..b3f4b7b35 100644 --- a/data/maps/FuchsiaCity_Building1/text.inc +++ b/data/maps/FuchsiaCity_WardensHouse/text.inc @@ -1,24 +1,24 @@ -gUnknown_8198DF9:: @ 8198DF9 +FuchsiaCity_WardensHouse_Text_HifFuffHefifoo:: @ 8198DF9 .string "WARDEN: Hif fuff hefifoo!\p" .string "Ha lof ha feef ee hafahi ho.\n" .string "Heff hee fwee!$" -gUnknown_8198E3F:: @ 8198E3F +FuchsiaCity_WardensHouse_Text_AhHowheeHoHoo:: @ 8198E3F .string "Ah howhee ho hoo!\n" .string "Eef ee hafahi ho!$" -gUnknown_8198E63:: @ 8198E63 +FuchsiaCity_WardensHouse_Text_HeOhayHeHaHoo:: @ 8198E63 .string "Ha?\n" .string "He ohay heh ha hoo ee haheh!$" -Text_198E84:: @ 8198E84 +FuchsiaCity_WardensHouse_Text_GaveGoldTeethToWarden:: @ 8198E84 .string "{PLAYER} gave the GOLD TEETH\n" .string "to the WARDEN.$" -gUnknown_8198EAA:: @ 8198EAA +FuchsiaCity_WardensHouse_Text_WardenPoppedInHisTeeth:: @ 8198EAA .string "The WARDEN popped in his teeth!$" -gUnknown_8198ECA:: @ 8198ECA +FuchsiaCity_WardensHouse_Text_ThanksSonGiveYouSomething:: @ 8198ECA .string "WARDEN: Thanks, son!\n" .string "You're a real lifesaver!\p" .string "No one could understand a word\n" @@ -28,7 +28,7 @@ gUnknown_8198ECA:: @ 8198ECA .string "Let me give you something for your\n" .string "trouble.$" -gUnknown_8198F96:: @ 8198F96 +FuchsiaCity_WardensHouse_Text_ThanksLassieGiveYouSomething:: @ 8198F96 .string "WARDEN: Thank you, lassie!\n" .string "You're a real lifesaver!\p" .string "No one could understand a word\n" @@ -38,11 +38,11 @@ gUnknown_8198F96:: @ 8198F96 .string "Let me give you something for your\n" .string "trouble.$" -gUnknown_8199068:: @ 8199068 +FuchsiaCity_WardensHouse_Text_ReceivedHM04FromWarden:: @ 8199068 .string "{PLAYER} received HM04\n" .string "from the WARDEN.$" -gUnknown_819908A:: @ 819908A +FuchsiaCity_WardensHouse_Text_ExplainStrength:: @ 819908A .string "WARDEN: Inside HM04 you'll find\n" .string "STRENGTH.\p" .string "It lets POKéMON move boulders when\n" @@ -50,15 +50,16 @@ gUnknown_819908A:: @ 819908A .string "Oh yes, did you find the SECRET\n" .string "HOUSE in the SAFARI ZONE?$" -Text_19912B:: @ 819912B +@ Unused +FuchsiaCity_WardensHouse_Text_YouHaveTooMuchStuff:: @ 819912B .string "なんや にもつ\n" .string "いっぱいやんけ!$" -gUnknown_819913C:: @ 819913C +FuchsiaCity_WardensHouse_Text_MonPhotosFossilsOnDisplay:: @ 819913C .string "POKéMON photos and fossils are on\n" .string "display.$" -gUnknown_8199167:: @ 8199167 +FuchsiaCity_WardensHouse_Text_OldMonMerchandiseOnDisplay:: @ 8199167 .string "Old POKéMON merchandise is on\n" .string "display.$" diff --git a/data/maps/FuchsiaCity_ZooBuilding/scripts.inc b/data/maps/FuchsiaCity_ZooBuilding/scripts.inc deleted file mode 100644 index 210acd87f..000000000 --- a/data/maps/FuchsiaCity_ZooBuilding/scripts.inc +++ /dev/null @@ -1,18 +0,0 @@ -FuchsiaCity_ZooBuilding_MapScripts:: @ 816D528 - .byte 0 - -FuchsiaCity_ZooBuilding_EventScript_16D529:: @ 816D529 - msgbox gUnknown_819816B, MSGBOX_NPC - end - -FuchsiaCity_ZooBuilding_EventScript_16D532:: @ 816D532 - msgbox gUnknown_81981C2, MSGBOX_NPC - end - -FuchsiaCity_ZooBuilding_EventScript_16D53B:: @ 816D53B - msgbox gUnknown_819822A, MSGBOX_NPC - end - -FuchsiaCity_ZooBuilding_EventScript_16D544:: @ 816D544 - msgbox gUnknown_8198285, MSGBOX_NPC - 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/SafariZone_Building1/scripts.inc b/data/maps/SafariZone_Building1/scripts.inc deleted file mode 100644 index 6aaeac452..000000000 --- a/data/maps/SafariZone_Building1/scripts.inc +++ /dev/null @@ -1,10 +0,0 @@ -SafariZone_Building1_MapScripts:: @ 81623EB - .byte 0 - -SafariZone_Building1_EventScript_1623EC:: @ 81623EC - msgbox gUnknown_8177A5A, MSGBOX_NPC - end - -SafariZone_Building1_EventScript_1623F5:: @ 81623F5 - msgbox gUnknown_8177A82, MSGBOX_NPC - end diff --git a/data/maps/SafariZone_Building2/scripts.inc b/data/maps/SafariZone_Building2/scripts.inc deleted file mode 100644 index ff870464a..000000000 --- a/data/maps/SafariZone_Building2/scripts.inc +++ /dev/null @@ -1,14 +0,0 @@ -SafariZone_Building2_MapScripts:: @ 81623FE - .byte 0 - -SafariZone_Building2_EventScript_1623FF:: @ 81623FF - msgbox gUnknown_8177AE2, MSGBOX_NPC - end - -SafariZone_Building2_EventScript_162408:: @ 8162408 - msgbox gUnknown_8177AAE, MSGBOX_NPC - end - -SafariZone_Building2_EventScript_162411:: @ 8162411 - msgbox gUnknown_8177B16, MSGBOX_NPC - end diff --git a/data/maps/SafariZone_Building3/scripts.inc b/data/maps/SafariZone_Building3/scripts.inc deleted file mode 100644 index 4b328da88..000000000 --- a/data/maps/SafariZone_Building3/scripts.inc +++ /dev/null @@ -1,14 +0,0 @@ -SafariZone_Building3_MapScripts:: @ 816241A - .byte 0 - -SafariZone_Building3_EventScript_16241B:: @ 816241B - msgbox gUnknown_8177BAB, MSGBOX_NPC - end - -SafariZone_Building3_EventScript_162424:: @ 8162424 - msgbox gUnknown_8177B38, MSGBOX_NPC - end - -SafariZone_Building3_EventScript_16242D:: @ 816242D - msgbox gUnknown_8177BEC, MSGBOX_NPC - end diff --git a/data/maps/SafariZone_Building4/scripts.inc b/data/maps/SafariZone_Building4/scripts.inc deleted file mode 100644 index 1c3e52bd3..000000000 --- a/data/maps/SafariZone_Building4/scripts.inc +++ /dev/null @@ -1,14 +0,0 @@ -SafariZone_Building4_MapScripts:: @ 8162436 - .byte 0 - -SafariZone_Building4_EventScript_162437:: @ 8162437 - msgbox gUnknown_8177D39, MSGBOX_NPC - end - -SafariZone_Building4_EventScript_162440:: @ 8162440 - msgbox gUnknown_8177CEB, MSGBOX_NPC - end - -SafariZone_Building4_EventScript_162449:: @ 8162449 - msgbox gUnknown_8177D8B, MSGBOX_NPC - end diff --git a/data/maps/SafariZone_Center/map.json b/data/maps/SafariZone_Center/map.json index f9bdc0137..4dfdda04d 100644 --- a/data/maps/SafariZone_Center/map.json +++ b/data/maps/SafariZone_Center/map.json @@ -116,7 +116,7 @@ "x": 29, "y": 25, "elevation": 0, - "dest_map": "MAP_SAFARI_ZONE_BUILDING1", + "dest_map": "MAP_SAFARI_ZONE_CENTER_REST_HOUSE", "dest_warp_id": 1 } ], @@ -127,14 +127,14 @@ "x": 30, "y": 26, "elevation": 0, - "script": "SafariZone_Center_EventScript_162361" + "script": "SafariZone_Center_EventScript_RestHouseSign" }, { "type": "bg_event_type_0", "x": 25, "y": 27, "elevation": 0, - "script": "SafariZone_Center_EventScript_16236A" + "script": "SafariZone_Center_EventScript_TrainerTips" }, { "type": "hidden_item", @@ -151,7 +151,7 @@ "x": 33, "y": 20, "elevation": 0, - "script": "SafariZone_Center_EventScript_162373" + "script": "SafariZone_Center_EventScript_AreaSign" } ] } diff --git a/data/maps/SafariZone_Center/scripts.inc b/data/maps/SafariZone_Center/scripts.inc index 70599b024..21ca58264 100644 --- a/data/maps/SafariZone_Center/scripts.inc +++ b/data/maps/SafariZone_Center/scripts.inc @@ -6,14 +6,14 @@ SafariZone_Center_OnTransition:: @ 816235D setworldmapflag FLAG_WORLD_MAP_SAFARI_ZONE_CENTER end -SafariZone_Center_EventScript_162361:: @ 8162361 - msgbox gUnknown_81777F2, MSGBOX_SIGN +SafariZone_Center_EventScript_RestHouseSign:: @ 8162361 + msgbox SafariZone_Center_Text_RestHouse, MSGBOX_SIGN end -SafariZone_Center_EventScript_16236A:: @ 816236A - msgbox gUnknown_81777FD, MSGBOX_SIGN +SafariZone_Center_EventScript_TrainerTips:: @ 816236A + msgbox SafariZone_Center_Text_PressStartToCheckTime, MSGBOX_SIGN end -SafariZone_Center_EventScript_162373:: @ 8162373 - msgbox gUnknown_817782F, MSGBOX_SIGN +SafariZone_Center_EventScript_AreaSign:: @ 8162373 + msgbox SafariZone_Center_Text_CenterArea, MSGBOX_SIGN end diff --git a/data/maps/SafariZone_Center/text.inc b/data/maps/SafariZone_Center/text.inc index 7116a230a..a0d7a61de 100644 --- a/data/maps/SafariZone_Center/text.inc +++ b/data/maps/SafariZone_Center/text.inc @@ -1,11 +1,11 @@ -gUnknown_81777F2:: @ 81777F2 +SafariZone_Center_Text_RestHouse:: @ 81777F2 .string "REST HOUSE$" -gUnknown_81777FD:: @ 81777FD +SafariZone_Center_Text_PressStartToCheckTime:: @ 81777FD .string "TRAINER TIPS\p" .string "Press START to check\n" .string "remaining time.$" -gUnknown_817782F:: @ 817782F +SafariZone_Center_Text_CenterArea:: @ 817782F .string "CENTER AREA$" diff --git a/data/maps/SafariZone_Building1/map.json b/data/maps/SafariZone_Center_RestHouse/map.json index 78ea6e719..fc4cbf67c 100644 --- a/data/maps/SafariZone_Building1/map.json +++ b/data/maps/SafariZone_Center_RestHouse/map.json @@ -1,7 +1,7 @@ { - "id": "MAP_SAFARI_ZONE_BUILDING1", - "name": "SafariZone_Building1", - "layout": "LAYOUT_SAFARI_ZONE_BUILDING", + "id": "MAP_SAFARI_ZONE_CENTER_REST_HOUSE", + "name": "SafariZone_Center_RestHouse", + "layout": "LAYOUT_SAFARI_ZONE_REST_HOUSE", "music": "MUS_SHINKA", "region_map_section": "MAPSEC_KANTO_SAFARI_ZONE", "requires_flash": false, @@ -23,7 +23,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "SafariZone_Building1_EventScript_1623F5", + "script": "SafariZone_Center_RestHouse_EventScript_Scientist", "flag": "0" }, { @@ -36,7 +36,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "SafariZone_Building1_EventScript_1623EC", + "script": "SafariZone_Center_RestHouse_EventScript_Sara", "flag": "0" } ], diff --git a/data/maps/SafariZone_Center_RestHouse/scripts.inc b/data/maps/SafariZone_Center_RestHouse/scripts.inc new file mode 100644 index 000000000..75e9cbe1d --- /dev/null +++ b/data/maps/SafariZone_Center_RestHouse/scripts.inc @@ -0,0 +1,10 @@ +SafariZone_Center_RestHouse_MapScripts:: @ 81623EB + .byte 0 + +SafariZone_Center_RestHouse_EventScript_Sara:: @ 81623EC + msgbox SafariZone_Center_Text_WhereDidErikGo, MSGBOX_NPC + end + +SafariZone_Center_RestHouse_EventScript_Scientist:: @ 81623F5 + msgbox SafariZone_Center_Text_CatchingMonsAsGifts, MSGBOX_NPC + end diff --git a/data/maps/SafariZone_Building1/text.inc b/data/maps/SafariZone_Center_RestHouse/text.inc index a071cffeb..156457318 100644 --- a/data/maps/SafariZone_Building1/text.inc +++ b/data/maps/SafariZone_Center_RestHouse/text.inc @@ -1,8 +1,8 @@ -gUnknown_8177A5A:: @ 8177A5A +SafariZone_Center_Text_WhereDidErikGo:: @ 8177A5A .string "SARA: Where did my boyfriend,\n" .string "ERIK, go?$" -gUnknown_8177A82:: @ 8177A82 +SafariZone_Center_Text_CatchingMonsAsGifts:: @ 8177A82 .string "I'm catching POKéMON to take home\n" .string "as gifts.$" diff --git a/data/maps/SafariZone_East/map.json b/data/maps/SafariZone_East/map.json index 50ac526b7..5ba1d08dc 100644 --- a/data/maps/SafariZone_East/map.json +++ b/data/maps/SafariZone_East/map.json @@ -113,7 +113,7 @@ "x": 40, "y": 14, "elevation": 0, - "dest_map": "MAP_SAFARI_ZONE_BUILDING2", + "dest_map": "MAP_SAFARI_ZONE_EAST_REST_HOUSE", "dest_warp_id": 1 } ], @@ -124,21 +124,21 @@ "x": 18, "y": 27, "elevation": 0, - "script": "SafariZone_East_EventScript_16238F" + "script": "SafariZone_East_EventScript_AreaSign" }, { "type": "bg_event_type_0", "x": 43, "y": 15, "elevation": 0, - "script": "SafariZone_East_EventScript_16237D" + "script": "SafariZone_East_EventScript_RestHouseSign" }, { "type": "bg_event_type_0", "x": 17, "y": 8, "elevation": 0, - "script": "SafariZone_East_EventScript_162386" + "script": "SafariZone_East_EventScript_TrainerTips" } ] } diff --git a/data/maps/SafariZone_East/scripts.inc b/data/maps/SafariZone_East/scripts.inc index e37be0d00..fb7c074d1 100644 --- a/data/maps/SafariZone_East/scripts.inc +++ b/data/maps/SafariZone_East/scripts.inc @@ -1,14 +1,14 @@ SafariZone_East_MapScripts:: @ 816237C .byte 0 -SafariZone_East_EventScript_16237D:: @ 816237D - msgbox gUnknown_817783B, MSGBOX_SIGN +SafariZone_East_EventScript_RestHouseSign:: @ 816237D + msgbox SafariZone_East_Text_RestHouse, MSGBOX_SIGN end -SafariZone_East_EventScript_162386:: @ 8162386 - msgbox gUnknown_8177846, MSGBOX_SIGN +SafariZone_East_EventScript_TrainerTips:: @ 8162386 + msgbox SafariZone_East_Text_TimeDeclinesOnlyWhileYouWalk, MSGBOX_SIGN end -SafariZone_East_EventScript_16238F:: @ 816238F - msgbox gUnknown_8177884, MSGBOX_SIGN +SafariZone_East_EventScript_AreaSign:: @ 816238F + msgbox SafariZone_East_Text_AreaSign, MSGBOX_SIGN end diff --git a/data/maps/SafariZone_East/text.inc b/data/maps/SafariZone_East/text.inc index 785cc3a5e..617399c7b 100644 --- a/data/maps/SafariZone_East/text.inc +++ b/data/maps/SafariZone_East/text.inc @@ -1,12 +1,12 @@ -gUnknown_817783B:: @ 817783B +SafariZone_East_Text_RestHouse:: @ 817783B .string "REST HOUSE$" -gUnknown_8177846:: @ 8177846 +SafariZone_East_Text_TimeDeclinesOnlyWhileYouWalk:: @ 8177846 .string "TRAINER TIPS\p" .string "The remaining time declines only\n" .string "while you walk.$" -gUnknown_8177884:: @ 8177884 +SafariZone_East_Text_AreaSign:: @ 8177884 .string "AREA 1\n" .string "WEST: CENTER AREA$" diff --git a/data/maps/SafariZone_Building2/map.json b/data/maps/SafariZone_East_RestHouse/map.json index a8108ab01..d491771d0 100644 --- a/data/maps/SafariZone_Building2/map.json +++ b/data/maps/SafariZone_East_RestHouse/map.json @@ -1,7 +1,7 @@ { - "id": "MAP_SAFARI_ZONE_BUILDING2", - "name": "SafariZone_Building2", - "layout": "LAYOUT_SAFARI_ZONE_BUILDING", + "id": "MAP_SAFARI_ZONE_EAST_REST_HOUSE", + "name": "SafariZone_East_RestHouse", + "layout": "LAYOUT_SAFARI_ZONE_REST_HOUSE", "music": "MUS_SHINKA", "region_map_section": "MAPSEC_KANTO_SAFARI_ZONE", "requires_flash": false, @@ -23,7 +23,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "SafariZone_Building2_EventScript_162408", + "script": "SafariZone_East_RestHouse_EventScript_Scientist", "flag": "0" }, { @@ -36,7 +36,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "SafariZone_Building2_EventScript_1623FF", + "script": "SafariZone_East_RestHouse_EventScript_Rocker", "flag": "0" }, { @@ -49,7 +49,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "SafariZone_Building2_EventScript_162411", + "script": "SafariZone_East_RestHouse_EventScript_BaldingMan", "flag": "0" } ], diff --git a/data/maps/SafariZone_East_RestHouse/scripts.inc b/data/maps/SafariZone_East_RestHouse/scripts.inc new file mode 100644 index 000000000..5d95c153f --- /dev/null +++ b/data/maps/SafariZone_East_RestHouse/scripts.inc @@ -0,0 +1,14 @@ +SafariZone_East_RestHouse_MapScripts:: @ 81623FE + .byte 0 + +SafariZone_East_RestHouse_EventScript_Rocker:: @ 81623FF + msgbox SafariZone_East_Text_CaughtChanseyAllWorthwhile, MSGBOX_NPC + end + +SafariZone_East_RestHouse_EventScript_Scientist:: @ 8162408 + msgbox SafariZone_East_Text_HowManyDidYouCatch, MSGBOX_NPC + end + +SafariZone_East_RestHouse_EventScript_BaldingMan:: @ 8162411 + msgbox SafariZone_East_Text_TiredFromAllTheFun, MSGBOX_NPC + end diff --git a/data/maps/SafariZone_Building2/text.inc b/data/maps/SafariZone_East_RestHouse/text.inc index b25194a31..ea914b754 100644 --- a/data/maps/SafariZone_Building2/text.inc +++ b/data/maps/SafariZone_East_RestHouse/text.inc @@ -1,12 +1,12 @@ -gUnknown_8177AAE:: @ 8177AAE +SafariZone_East_Text_HowManyDidYouCatch:: @ 8177AAE .string "How many did you catch?\n" .string "I'm bushed from the effort!$" -gUnknown_8177AE2:: @ 8177AE2 +SafariZone_East_Text_CaughtChanseyAllWorthwhile:: @ 8177AE2 .string "I caught a CHANSEY!\p" .string "That makes this all worthwhile.$" -gUnknown_8177B16:: @ 8177B16 +SafariZone_East_Text_TiredFromAllTheFun:: @ 8177B16 .string "Whew!\n" .string "I'm tired from all the fun!$" diff --git a/data/maps/SafariZone_North/map.json b/data/maps/SafariZone_North/map.json index 6d6d2c272..79b4a1d2f 100644 --- a/data/maps/SafariZone_North/map.json +++ b/data/maps/SafariZone_North/map.json @@ -142,7 +142,7 @@ "x": 43, "y": 8, "elevation": 0, - "dest_map": "MAP_SAFARI_ZONE_BUILDING3", + "dest_map": "MAP_SAFARI_ZONE_NORTH_REST_HOUSE", "dest_warp_id": 1 } ], @@ -153,35 +153,35 @@ "x": 13, "y": 27, "elevation": 0, - "script": "SafariZone_North_EventScript_1623A2" + "script": "SafariZone_North_EventScript_TrainerTips1" }, { "type": "bg_event_type_0", "x": 23, "y": 31, "elevation": 0, - "script": "SafariZone_North_EventScript_1623AB" + "script": "SafariZone_North_EventScript_AreaSign" }, { "type": "bg_event_type_0", "x": 29, "y": 32, "elevation": 0, - "script": "SafariZone_North_EventScript_1623B4" + "script": "SafariZone_North_EventScript_TrainerTips2" }, { "type": "bg_event_type_0", "x": 34, "y": 28, "elevation": 0, - "script": "SafariZone_North_EventScript_1623BD" + "script": "SafariZone_North_EventScript_TrainerTips3" }, { "type": "bg_event_type_0", "x": 44, "y": 9, "elevation": 0, - "script": "SafariZone_North_EventScript_162399" + "script": "SafariZone_North_EventScript_RestHouseSign" } ] } diff --git a/data/maps/SafariZone_North/scripts.inc b/data/maps/SafariZone_North/scripts.inc index 65a8ad4dd..5acf50ae8 100644 --- a/data/maps/SafariZone_North/scripts.inc +++ b/data/maps/SafariZone_North/scripts.inc @@ -1,22 +1,22 @@ SafariZone_North_MapScripts:: @ 8162398 .byte 0 -SafariZone_North_EventScript_162399:: @ 8162399 - msgbox gUnknown_817789D, MSGBOX_SIGN +SafariZone_North_EventScript_RestHouseSign:: @ 8162399 + msgbox SafariZone_North_Text_RestHouse, MSGBOX_SIGN end -SafariZone_North_EventScript_1623A2:: @ 81623A2 - msgbox gUnknown_81778A8, MSGBOX_SIGN +SafariZone_North_EventScript_TrainerTips1:: @ 81623A2 + msgbox SafariZone_North_Text_SecretHouseStillAhead, MSGBOX_SIGN end -SafariZone_North_EventScript_1623AB:: @ 81623AB - msgbox gUnknown_81778D6, MSGBOX_SIGN +SafariZone_North_EventScript_AreaSign:: @ 81623AB + msgbox SafariZone_North_Text_Area2, MSGBOX_SIGN end -SafariZone_North_EventScript_1623B4:: @ 81623B4 - msgbox gUnknown_81778DD, MSGBOX_SIGN +SafariZone_North_EventScript_TrainerTips2:: @ 81623B4 + msgbox SafariZone_North_Text_ZigzagThroughTallGrass, MSGBOX_SIGN end -SafariZone_North_EventScript_1623BD:: @ 81623BD - msgbox gUnknown_8177935, MSGBOX_SIGN +SafariZone_North_EventScript_TrainerTips3:: @ 81623BD + msgbox SafariZone_North_Text_WinFreeHMFindSecretHouse, MSGBOX_SIGN end diff --git a/data/maps/SafariZone_North/text.inc b/data/maps/SafariZone_North/text.inc index a7978dcfe..4d1bbca97 100644 --- a/data/maps/SafariZone_North/text.inc +++ b/data/maps/SafariZone_North/text.inc @@ -1,20 +1,20 @@ -gUnknown_817789D:: @ 817789D +SafariZone_North_Text_RestHouse:: @ 817789D .string "REST HOUSE$" -gUnknown_81778A8:: @ 81778A8 +SafariZone_North_Text_SecretHouseStillAhead:: @ 81778A8 .string "TRAINER TIPS\p" .string "The SECRET HOUSE is still ahead.$" -gUnknown_81778D6:: @ 81778D6 +SafariZone_North_Text_Area2:: @ 81778D6 .string "AREA 2$" -gUnknown_81778DD:: @ 81778DD +SafariZone_North_Text_ZigzagThroughTallGrass:: @ 81778DD .string "TRAINER TIPS\p" .string "POKéMON hide in tall grass.\p" .string "Zigzag through grassy areas to\n" .string "flush them out.$" -gUnknown_8177935:: @ 8177935 +SafariZone_North_Text_WinFreeHMFindSecretHouse:: @ 8177935 .string "TRAINER TIPS\p" .string "Win a free HM for finding the\n" .string "SECRET HOUSE.$" diff --git a/data/maps/SafariZone_Building3/map.json b/data/maps/SafariZone_North_RestHouse/map.json index 5693b1873..48fc58755 100644 --- a/data/maps/SafariZone_Building3/map.json +++ b/data/maps/SafariZone_North_RestHouse/map.json @@ -1,7 +1,7 @@ { - "id": "MAP_SAFARI_ZONE_BUILDING3", - "name": "SafariZone_Building3", - "layout": "LAYOUT_SAFARI_ZONE_BUILDING", + "id": "MAP_SAFARI_ZONE_NORTH_REST_HOUSE", + "name": "SafariZone_North_RestHouse", + "layout": "LAYOUT_SAFARI_ZONE_REST_HOUSE", "music": "MUS_SHINKA", "region_map_section": "MAPSEC_KANTO_SAFARI_ZONE", "requires_flash": false, @@ -23,7 +23,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "SafariZone_Building3_EventScript_16242D", + "script": "SafariZone_North_RestHouse_EventScript_Gentleman", "flag": "0" }, { @@ -36,7 +36,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "SafariZone_Building3_EventScript_162424", + "script": "SafariZone_North_RestHouse_EventScript_Scientist", "flag": "0" }, { @@ -49,7 +49,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "SafariZone_Building3_EventScript_16241B", + "script": "SafariZone_North_RestHouse_EventScript_Fisher", "flag": "0" }, { @@ -62,7 +62,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "SafariZone_Building3_EventScript_1ACED3", + "script": "SafariZone_North_RestHouse_EventScript_BaldingMan", "flag": "0" } ], diff --git a/data/maps/SafariZone_North_RestHouse/scripts.inc b/data/maps/SafariZone_North_RestHouse/scripts.inc new file mode 100644 index 000000000..b7bcce8ed --- /dev/null +++ b/data/maps/SafariZone_North_RestHouse/scripts.inc @@ -0,0 +1,14 @@ +SafariZone_North_RestHouse_MapScripts:: @ 816241A + .byte 0 + +SafariZone_North_RestHouse_EventScript_Fisher:: @ 816241B + msgbox SafariZone_East_Text_PrizeInDeepestPartOfSafariZone, MSGBOX_NPC + end + +SafariZone_North_RestHouse_EventScript_Scientist:: @ 8162424 + msgbox SafariZone_East_Text_KeepAnyItemFoundOnSafari, MSGBOX_NPC + end + +SafariZone_North_RestHouse_EventScript_Gentleman:: @ 816242D + msgbox SafariZone_East_Text_MyEeveeEvolvedIntoFlareon, MSGBOX_NPC + end diff --git a/data/maps/SafariZone_Building3/text.inc b/data/maps/SafariZone_North_RestHouse/text.inc index d7956d083..cf0188053 100644 --- a/data/maps/SafariZone_Building3/text.inc +++ b/data/maps/SafariZone_North_RestHouse/text.inc @@ -1,14 +1,14 @@ -gUnknown_8177B38:: @ 8177B38 +SafariZone_East_Text_KeepAnyItemFoundOnSafari:: @ 8177B38 .string "You can keep any item you find in\n" .string "the SAFARI ZONE.\p" .string "But, you'll run out of time if you\n" .string "try for all of them at once.$" -gUnknown_8177BAB:: @ 8177BAB +SafariZone_East_Text_PrizeInDeepestPartOfSafariZone:: @ 8177BAB .string "Go to the deepest part of the\n" .string "SAFARI ZONE. You will win a prize!$" -gUnknown_8177BEC:: @ 8177BEC +SafariZone_East_Text_MyEeveeEvolvedIntoFlareon:: @ 8177BEC .string "My EEVEE evolved into FLAREON.\p" .string "But, a friend's EEVEE turned into a\n" .string "VAPOREON. I wonder why?$" diff --git a/data/maps/SafariZone_SecretHouse/map.json b/data/maps/SafariZone_SecretHouse/map.json index 298188e1b..df02367a4 100644 --- a/data/maps/SafariZone_SecretHouse/map.json +++ b/data/maps/SafariZone_SecretHouse/map.json @@ -23,7 +23,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "SafariZone_SecretHouse_EventScript_162453", + "script": "SafariZone_SecretHouse_EventScript_Attendant", "flag": "0" } ], diff --git a/data/maps/SafariZone_SecretHouse/scripts.inc b/data/maps/SafariZone_SecretHouse/scripts.inc index a61a99525..44884acd3 100644 --- a/data/maps/SafariZone_SecretHouse/scripts.inc +++ b/data/maps/SafariZone_SecretHouse/scripts.inc @@ -1,26 +1,26 @@ SafariZone_SecretHouse_MapScripts:: @ 8162452 .byte 0 -SafariZone_SecretHouse_EventScript_162453:: @ 8162453 +SafariZone_SecretHouse_EventScript_Attendant:: @ 8162453 lock faceplayer - goto_if_set FLAG_GOT_HM03, EventScript_1624A9 - msgbox gUnknown_8177DC1 + goto_if_set FLAG_GOT_HM03, SafariZone_SecretHouse_EventScript_ExplainSurf + msgbox SafariZone_SecretHouse_Text_CongratsYouveWon checkitemspace ITEM_HM03, 1 compare VAR_RESULT, FALSE - goto_if_eq EventScript_16249F - giveitem_msg gUnknown_8177E92, ITEM_HM03 - msgbox gUnknown_8177EB7 + goto_if_eq SafariZone_SecretHouse_EventScript_NoRoomForHM03 + giveitem_msg SafariZone_SecretHouse_Text_ReceivedHM03FromAttendant, ITEM_HM03 + msgbox SafariZone_SecretHouse_Text_ExplainSurf setflag FLAG_GOT_HM03 release end -EventScript_16249F:: @ 816249F - msgbox gUnknown_8177F72 +SafariZone_SecretHouse_EventScript_NoRoomForHM03:: @ 816249F + msgbox SafariZone_SecretHouse_Text_DontHaveRoomForPrize release end -EventScript_1624A9:: @ 81624A9 - msgbox gUnknown_8177EB7 +SafariZone_SecretHouse_EventScript_ExplainSurf:: @ 81624A9 + msgbox SafariZone_SecretHouse_Text_ExplainSurf release end diff --git a/data/maps/SafariZone_SecretHouse/text.inc b/data/maps/SafariZone_SecretHouse/text.inc index 04ea02125..bfa505689 100644 --- a/data/maps/SafariZone_SecretHouse/text.inc +++ b/data/maps/SafariZone_SecretHouse/text.inc @@ -1,4 +1,4 @@ -gUnknown_8177DC1:: @ 8177DC1 +SafariZone_SecretHouse_Text_CongratsYouveWon:: @ 8177DC1 .string "Ah! Finally!\p" .string "You're the first person to reach\n" .string "the SECRET HOUSE!\p" @@ -9,11 +9,11 @@ gUnknown_8177DC1:: @ 8177DC1 .string "Congratulations!\n" .string "You have won!$" -gUnknown_8177E92:: @ 8177E92 +SafariZone_SecretHouse_Text_ReceivedHM03FromAttendant:: @ 8177E92 .string "{PLAYER} received HM03\n" .string "from the attendant!$" -gUnknown_8177EB7:: @ 8177EB7 +SafariZone_SecretHouse_Text_ExplainSurf:: @ 8177EB7 .string "HM03 is SURF.\p" .string "POKéMON will be able to ferry you\n" .string "across water using it.\p" @@ -22,7 +22,7 @@ gUnknown_8177EB7:: @ 8177EB7 .string "You're super lucky for winning this\n" .string "fabulous prize!$" -gUnknown_8177F72:: @ 8177F72 +SafariZone_SecretHouse_Text_DontHaveRoomForPrize:: @ 8177F72 .string "You don't have room for this\n" .string "fabulous prize!$" diff --git a/data/maps/SafariZone_West/map.json b/data/maps/SafariZone_West/map.json index cf4eee158..cee77b0b3 100644 --- a/data/maps/SafariZone_West/map.json +++ b/data/maps/SafariZone_West/map.json @@ -141,7 +141,7 @@ "x": 19, "y": 18, "elevation": 0, - "dest_map": "MAP_SAFARI_ZONE_BUILDING4", + "dest_map": "MAP_SAFARI_ZONE_WEST_REST_HOUSE", "dest_warp_id": 1 } ], @@ -152,28 +152,28 @@ "x": 27, "y": 9, "elevation": 0, - "script": "SafariZone_West_EventScript_1623D0" + "script": "SafariZone_West_EventScript_LostTeethNotice" }, { "type": "bg_event_type_0", "x": 36, "y": 10, "elevation": 0, - "script": "SafariZone_West_EventScript_1623D9" + "script": "SafariZone_West_EventScript_TrainerTips" }, { "type": "bg_event_type_0", "x": 35, "y": 26, "elevation": 0, - "script": "SafariZone_West_EventScript_1623E2" + "script": "SafariZone_West_EventScript_AreaSign" }, { "type": "bg_event_type_0", "x": 22, "y": 19, "elevation": 0, - "script": "SafariZone_West_EventScript_1623C7" + "script": "SafariZone_West_EventScript_RestHouseSign" }, { "type": "hidden_item", diff --git a/data/maps/SafariZone_West/scripts.inc b/data/maps/SafariZone_West/scripts.inc index 3d6e0bbf7..aeff53ed8 100644 --- a/data/maps/SafariZone_West/scripts.inc +++ b/data/maps/SafariZone_West/scripts.inc @@ -1,18 +1,18 @@ SafariZone_West_MapScripts:: @ 81623C6 .byte 0 -SafariZone_West_EventScript_1623C7:: @ 81623C7 - msgbox gUnknown_817796E, MSGBOX_SIGN +SafariZone_West_EventScript_RestHouseSign:: @ 81623C7 + msgbox SafariZone_West_Text_RestHouse, MSGBOX_SIGN end -SafariZone_West_EventScript_1623D0:: @ 81623D0 - msgbox gUnknown_8177979, MSGBOX_SIGN +SafariZone_West_EventScript_LostTeethNotice:: @ 81623D0 + msgbox SafariZone_West_Text_PleaseFindWardensLostTeeth, MSGBOX_SIGN end -SafariZone_West_EventScript_1623D9:: @ 81623D9 - msgbox gUnknown_81779F8, MSGBOX_SIGN +SafariZone_West_EventScript_TrainerTips:: @ 81623D9 + msgbox SafariZone_West_Text_SearchForSecretHouse, MSGBOX_SIGN end -SafariZone_West_EventScript_1623E2:: @ 81623E2 - msgbox gUnknown_8177A41, MSGBOX_SIGN +SafariZone_West_EventScript_AreaSign:: @ 81623E2 + msgbox SafariZone_West_Text_AreaSign, MSGBOX_SIGN end diff --git a/data/maps/SafariZone_West/text.inc b/data/maps/SafariZone_West/text.inc index 14a097ada..c158c3467 100644 --- a/data/maps/SafariZone_West/text.inc +++ b/data/maps/SafariZone_West/text.inc @@ -1,7 +1,7 @@ -gUnknown_817796E:: @ 817796E +SafariZone_West_Text_RestHouse:: @ 817796E .string "REST HOUSE$" -gUnknown_8177979:: @ 8177979 +SafariZone_West_Text_PleaseFindWardensLostTeeth:: @ 8177979 .string "REQUEST NOTICE\p" .string "Please find the SAFARI WARDEN's\n" .string "lost GOLD TEETH.\l" @@ -9,12 +9,12 @@ gUnknown_8177979:: @ 8177979 .string "Reward offered!\n" .string "Contact: WARDEN$" -gUnknown_81779F8:: @ 81779F8 +SafariZone_West_Text_SearchForSecretHouse:: @ 81779F8 .string "TRAINER TIPS\p" .string "Zone Exploration Campaign!\n" .string "The Search for the SECRET HOUSE!$" -gUnknown_8177A41:: @ 8177A41 +SafariZone_West_Text_AreaSign:: @ 8177A41 .string "AREA 3\n" .string "EAST: CENTER AREA$" diff --git a/data/maps/SafariZone_Building4/map.json b/data/maps/SafariZone_West_RestHouse/map.json index 6d994ad60..a387fe992 100644 --- a/data/maps/SafariZone_Building4/map.json +++ b/data/maps/SafariZone_West_RestHouse/map.json @@ -1,7 +1,7 @@ { - "id": "MAP_SAFARI_ZONE_BUILDING4", - "name": "SafariZone_Building4", - "layout": "LAYOUT_SAFARI_ZONE_BUILDING", + "id": "MAP_SAFARI_ZONE_WEST_REST_HOUSE", + "name": "SafariZone_West_RestHouse", + "layout": "LAYOUT_SAFARI_ZONE_REST_HOUSE", "music": "MUS_SHINKA", "region_map_section": "MAPSEC_KANTO_SAFARI_ZONE", "requires_flash": false, @@ -23,7 +23,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "SafariZone_Building4_EventScript_162440", + "script": "SafariZone_West_RestHouse_EventScript_Scientist", "flag": "0" }, { @@ -36,7 +36,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "SafariZone_Building4_EventScript_162437", + "script": "SafariZone_West_RestHouse_EventScript_Man", "flag": "0" }, { @@ -49,7 +49,7 @@ "movement_range_y": 1, "trainer_type": 0, "trainer_sight_or_berry_tree_id": 0, - "script": "SafariZone_Building4_EventScript_162449", + "script": "SafariZone_West_RestHouse_EventScript_CooltrainerF", "flag": "0" } ], diff --git a/data/maps/SafariZone_West_RestHouse/scripts.inc b/data/maps/SafariZone_West_RestHouse/scripts.inc new file mode 100644 index 000000000..cc3b70df4 --- /dev/null +++ b/data/maps/SafariZone_West_RestHouse/scripts.inc @@ -0,0 +1,14 @@ +SafariZone_West_RestHouse_MapScripts:: @ 8162436 + .byte 0 + +SafariZone_West_RestHouse_EventScript_Man:: @ 8162437 + msgbox SafariZone_West_Text_BaitMakesMonStickAround, MSGBOX_NPC + end + +SafariZone_West_RestHouse_EventScript_Scientist:: @ 8162440 + msgbox SafariZone_West_Text_RocksMakeMonRunButEasierCatch, MSGBOX_NPC + end + +SafariZone_West_RestHouse_EventScript_CooltrainerF:: @ 8162449 + msgbox SafariZone_West_Text_HikedLotsDidntSeeMonIWanted, MSGBOX_NPC + end diff --git a/data/maps/SafariZone_Building4/text.inc b/data/maps/SafariZone_West_RestHouse/text.inc index 66bf06ba2..c6ef1ae59 100644 --- a/data/maps/SafariZone_Building4/text.inc +++ b/data/maps/SafariZone_West_RestHouse/text.inc @@ -1,4 +1,4 @@ -Text_177C47:: @ 8177C47 +SafariZone_West_Text_KogaPatrolsSafariEverySoOften:: @ 8177C47 .string "The SAFARI ZONE's huge, wouldn't\n" .string "you say?\p" .string "FUCHSIA's GYM LEADER, KOGA, \n" @@ -6,17 +6,17 @@ Text_177C47:: @ 8177C47 .string "Thanks to him, we can play here\n" .string "knowing that we're safe.$" -gUnknown_8177CEB:: @ 8177CEB +SafariZone_West_Text_RocksMakeMonRunButEasierCatch:: @ 8177CEB .string "Tossing ROCKS at POKéMON might\n" .string "make them run, but they'll be\l" .string "easier to catch.$" -gUnknown_8177D39:: @ 8177D39 +SafariZone_West_Text_BaitMakesMonStickAround:: @ 8177D39 .string "Using BAIT will make POKéMON more\n" .string "likely to stick around if they get\l" .string "busy eating.$" -gUnknown_8177D8B:: @ 8177D8B +SafariZone_West_Text_HikedLotsDidntSeeMonIWanted:: @ 8177D8B .string "I hiked a lot, but I didn't see any\n" .string "POKéMON I wanted.$" 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/maps/map_groups.json b/data/maps/map_groups.json index b89b112a4..05f1cd544 100644 --- a/data/maps/map_groups.json +++ b/data/maps/map_groups.json @@ -119,10 +119,10 @@ "SafariZone_East", "SafariZone_North", "SafariZone_West", - "SafariZone_Building1", - "SafariZone_Building2", - "SafariZone_Building3", - "SafariZone_Building4", + "SafariZone_Center_RestHouse", + "SafariZone_East_RestHouse", + "SafariZone_North_RestHouse", + "SafariZone_West_RestHouse", "SafariZone_SecretHouse", "CeruleanCave_1F", "CeruleanCave_2F", @@ -385,12 +385,12 @@ "gMapGroup11": [ "FuchsiaCity_SafariZone_Entrance", "FuchsiaCity_Mart", - "FuchsiaCity_ZooBuilding", + "FuchsiaCity_SafariZone_Office", "FuchsiaCity_Gym", "FuchsiaCity_House1", "FuchsiaCity_PokemonCenter_1F", "FuchsiaCity_PokemonCenter_2F", - "FuchsiaCity_Building1", + "FuchsiaCity_WardensHouse", "FuchsiaCity_House2", "FuchsiaCity_House3" ], diff --git a/data/save_failed_screen.s b/data/save_failed_screen.s deleted file mode 100644 index e19763962..000000000 --- a/data/save_failed_screen.s +++ /dev/null @@ -1,10 +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_841EE44:: @ 841EE44 - .incbin "graphics/interface/save_failed_screen.gbapal" 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/fame_checker.inc b/data/scripts/fame_checker.inc index 0d058b2d5..e141634eb 100644 --- a/data/scripts/fame_checker.inc +++ b/data/scripts/fame_checker.inc @@ -101,20 +101,20 @@ CeladonCity_Condominiums_2F_EventScript_1ACE9D:: @ 81ACE9D release end -FuchsiaCity_Building1_EventScript_1ACEB8:: @ 81ACEB8 +FuchsiaCity_WardensHouse_EventScript_PokemonJournalKoga:: @ 81ACEB8 lock faceplayer famechecker FAMECHECKER_KOGA, 4 textcolor 3 - msgbox gUnknown_81B16A8 + msgbox PokemonJournal_Text_SpecialFeatureKoga release end -SafariZone_Building3_EventScript_1ACED3:: @ 81ACED3 +SafariZone_North_RestHouse_EventScript_BaldingMan:: @ 81ACED3 lock faceplayer famechecker FAMECHECKER_KOGA, 5 - msgbox Text_177C47 + msgbox SafariZone_West_Text_KogaPatrolsSafariEverySoOften release end diff --git a/data/scripts/flavor_text.inc b/data/scripts/flavor_text.inc new file mode 100644 index 000000000..7ea879b04 --- /dev/null +++ b/data/scripts/flavor_text.inc @@ -0,0 +1,113 @@ +@ Flavor text for interacting with various background objects + +gUnknown_81A7606:: @ 81A7606 + msgbox gUnknown_81C0DB0, MSGBOX_SIGN + end + +gUnknown_81A760F:: @ 81A760F + msgbox gUnknown_81C0DFD, MSGBOX_SIGN + end + +gUnknown_81A7618:: @ 81A7618 + msgbox gUnknown_81C0F99, MSGBOX_SIGN + end + +gUnknown_81A7621:: @ 81A7621 + msgbox gUnknown_81C12A7, MSGBOX_SIGN + end + +gUnknown_81A762A:: @ 81A762A + msgbox gUnknown_81C10C1, MSGBOX_SIGN + end + +gUnknown_81A7633:: @ 81A7633 + msgbox gUnknown_81C1273, MSGBOX_SIGN + end + +gUnknown_81A763C:: @ 81A763C + msgbox gUnknown_81C0FD8, MSGBOX_SIGN + end + +gUnknown_81A7645:: @ 81A7645 + msgbox gUnknown_81C12D6, MSGBOX_SIGN + end + +gUnknown_81A764E:: @ 81A764E + msgbox gUnknown_81C1300, MSGBOX_SIGN + end + +gUnknown_81A7657:: @ 81A7657 + msgbox Text_DishesPlatesNeatlyLinedUp, MSGBOX_SIGN + end + +gUnknown_81A7660:: @ 81A7660 + msgbox gUnknown_81C0E40, MSGBOX_SIGN + end + +gUnknown_81A7669:: @ 81A7669 + msgbox gUnknown_81C0E73, MSGBOX_SIGN + end + +gUnknown_81A7672:: @ 81A7672 + msgbox gUnknown_81C0EAC, MSGBOX_SIGN + end + +gUnknown_81A767B:: @ 81A767B + msgbox gUnknown_81C101B, MSGBOX_SIGN + end + +gUnknown_81A7684:: @ 81A7684 + msgbox gUnknown_81C1060, MSGBOX_SIGN + end + +gUnknown_81A768D:: @ 81A768D + msgbox gUnknown_81C109C, MSGBOX_SIGN + end + +gUnknown_81A7696:: @ 81A7696 + msgbox gUnknown_81C10FC, MSGBOX_SIGN + end + +gUnknown_81A769F:: @ 81A769F + msgbox gUnknown_81C1134, MSGBOX_SIGN + end + +gUnknown_81A76A8:: @ 81A76A8 + msgbox gUnknown_81C116E, MSGBOX_SIGN + end + +gUnknown_81A76B1:: @ 81A76B1 + msgbox gUnknown_81C1194, MSGBOX_SIGN + end + +gUnknown_81A76BA:: @ 81A76BA + msgbox gUnknown_81C11BA, MSGBOX_SIGN + end + +gUnknown_81A76C3:: @ 81A76C3 + msgbox gUnknown_81C11DC, MSGBOX_SIGN + end + +gUnknown_81A76CC:: @ 81A76CC + msgbox gUnknown_81C1217, MSGBOX_SIGN + end + +gUnknown_81A76D5:: @ 81A76D5 + msgbox gUnknown_81C124B, MSGBOX_SIGN + end + +gUnknown_81A76DE:: @ 81A76DE + msgbox gUnknown_81C0ECB, MSGBOX_SIGN + end + +gUnknown_81A76E7:: @ 81A76E7 + msgbox gUnknown_81C0EF7, MSGBOX_SIGN + end + +gUnknown_81A76F0:: @ 81A76F0 + msgbox gUnknown_81C0F19, MSGBOX_SIGN + end + +gUnknown_81A76F9:: @ 81A76F9 + msgbox gUnknown_81C0F59, MSGBOX_SIGN + end diff --git a/data/scripts/item_ball_scripts.inc b/data/scripts/item_ball_scripts.inc index ed8aef9d4..f6662368c 100644 --- a/data/scripts/item_ball_scripts.inc +++ b/data/scripts/item_ball_scripts.inc @@ -398,7 +398,7 @@ CeruleanCave_B1F_EventScript_ItemUltraBall:: @ 81BEA95 finditem ITEM_ULTRA_BALL end -FuchsiaCity_Building1_EventScript_ItemRareCandy:: @ 81BEAA2 +FuchsiaCity_WardensHouse_EventScript_ItemRareCandy:: @ 81BEAA2 finditem ITEM_RARE_CANDY end 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/safari_zone.inc b/data/scripts/safari_zone.inc new file mode 100644 index 000000000..15c735821 --- /dev/null +++ b/data/scripts/safari_zone.inc @@ -0,0 +1,37 @@ +SafariZone_EventScript_OutOfBallsMidBattle:: @ 81BFB87 + setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 3 + special ExitSafariMode + setwarp MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 255, 4, 1 + end + +SafariZone_EventScript_Exit:: @ 81BFB98 + setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 1 + special ExitSafariMode + warp MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 255, 4, 1 + waitstate + end + +SafariZone_EventScript_RetirePrompt:: @ 81BFBAA + lockall + msgbox SafariZone_Text_WouldYouLikeToExit, MSGBOX_YESNO + compare VAR_RESULT, YES + goto_if_eq SafariZone_EventScript_Retire + releaseall + end + +SafariZone_EventScript_Retire:: @ 81BFBC0 + goto SafariZone_EventScript_Exit + +SafariZone_EventScript_TimesUp:: @ 81BFBC5 + lockall + playse SE_PINPON + msgbox SafariZone_Text_TimesUp + goto SafariZone_EventScript_Exit + end + +SafariZone_EventScript_OutOfBalls:: @ 81BFBD7 + lockall + playse SE_PINPON + msgbox SafariZone_Text_OutOfBalls + goto SafariZone_EventScript_Exit + 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 a9c76b88e..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.$" @@ -2465,14 +2465,14 @@ gUnknown_8418C62:: @ 0x8418C62 gUnknown_8418C6F:: @ 0x8418C6F .string "もう これいじょう たべない みたい‥$" -gUnknown_8418C83:: @ 8418C83 +gText_SaveFailedScreen_CheckingBackupMemory:: @ 8418C83 .string "Save failed.\n" .string "Checking the backup memory‥\n" .string "Please wait.\n" .string "“Time required:\n" .string "about 1 minute”$" -gUnknown_8418CD9:: @ 8418CD9 +gText_SaveFailedScreen_BackupMemoryDamaged:: @ 8418CD9 .string "The backup memory is damaged or\n" .string "the game's battery has run dry.\n" .string "The game can be played, but its\n" @@ -2493,7 +2493,7 @@ gUnknown_8418DC9:: @ 0x8418DC9 .string "{COLOR RED}“このまま ぼうけんをつづけることは できません\n" .string "タイトルに もどります”$" -gUnknown_8418E09:: @ 8418E09 +gText_SaveFailedScreen_SaveCompleted:: @ 8418E09 .string "Save completed.\n" .string "“Please press the A Button.”$" diff --git a/data/text/berries.inc b/data/text/berries.inc new file mode 100644 index 000000000..3f228df4f --- /dev/null +++ b/data/text/berries.inc @@ -0,0 +1,226 @@ +@ The text here is a copy/paste from Hoenn's various berry NPCs, all unused and untranslated + +PetalburgCity_Gym_Text_GiveEnigmaBerry:: @ 81C0523 + .string "パパ“やあ {PLAYER}!\p" + .string "めずらしい きのみを てに いれたから\n" + .string "プレゼント するよ!$" + +Route104_Text_PlantBerriesInSoilTakeThis:: @ 81C054C + .string "ふかふかの つちに はえている きのみは\n" + .string "じゆうに とっても よいのじゃが‥\p" + .string "1つだけ きのみを おなじ ばしょに うめる\n" + .string "それが れいぎと いうものじゃ\p" + .string "ほれ これを わけてやろう$" + +Route104_Text_TrainersOftenMakeMonHoldBerries:: @ 81C05A8 + .string "あんた みたところ トレーナーじゃろ?\p" + .string "トレーナーは よく きのみを ポケモンに\n" + .string "もたせとるわい\p" + .string "ふやすも つかうも あんた しだいじゃ$" + +Route111_Text_WateredPlantsEveryDayTakeBerry:: @ 81C05ED + .string "いつも みずを あげてたら\n" + .string "たくさん はなが さいたんだ\p" + .string "そしたら きのみも たくさん できた!\p" + .string "はい!\n" + .string "これ あげる$" + +Route111_Text_TryToMakeRedPokeblock:: @ 81C0629 + .string "がんばって あかいポロック つくるんだ!\n" + .string "{STR_VAR_1}も がんばってね!$" + +Route111_Text_WhatColorBerriesToLookForToday:: @ 81C064A + .string "きょうは なにいろの きのみを\n" + .string "さがそっかなー$" + +Route114_Text_GatheringBerriesForContest:: @ 81C0662 + .string "ポケモンコンテストの ゆうしょうを めざして\n" + .string "きのみを あつめているんだ\p" + .string "よかったら きみにも わけて あげるよ!$" + +Route114_Text_GoodLuckToYouToo:: @ 81C069C + .string "きみも がんばれ!$" + +Route114_Text_WhatBerriesShouldIPlantToday:: @ 81C06A6 + .string "きょうは どの きのみを うめるか‥\n" + .string "そして なにいろの ポロックを つくるか‥\p" + .string "なやむのも また たのしいよ$" + +Route120_Text_PokeblocksExpressionOfLove:: @ 81C06DE + .string "ケースを ふると でてくる ポロック‥\p" + .string "そして それを キャッチして\n" + .string "たべてくれる ポケモン‥\p" + .string "これって あい だよね?$" + +Route120_Text_YouUnderstandTakeThis:: @ 81C071B + .string "うん うん!\n" + .string "やっぱ わかるひとには わかるよね\p" + .string "これ あげる$" + +Route120_Text_OwnImpressionsImportantTakeThis:: @ 81C073B + .string "そっか‥‥\n" + .string "でも ちがうと かんじることも たいせつだね\p" + .string "これ あげる$" + +Route120_Text_BerryIsRareRaiseItWithCare:: @ 81C075F + .string "その きのみは めずらしいもの らしいから\n" + .string "たいせつに そだててね!$" + +Route120_Text_IllGetMoreBerriesFromBerryMaster:: @ 81C0782 + .string "また きのみめいじんに もらって こようっと$" + +LilycoveCity_Text_BerrySuitsYou:: @ 81C0799 + .string "やっぱり\p" + .string "わたしに スーツが にあうように\n" + .string "うみには しおかぜが にあうな\l" + .string "そして きみには きのみが にあいそうだ‥‥\p" + .string "なんでだろうね?$" + +LilycoveCity_Text_BecauseYoureTrainer:: @ 81C07DF + .string "やっぱり それは‥‥‥‥\p" + .string "きみが トレーナーだからだ!$" + +LilycoveCity_Text_PokeblocksSuitPokemon:: @ 81C07FB + .string "やっぱり\p" + .string "わたしに シンプルさが にあうように\n" + .string "ポケモンには ポロックが にあうな$" + +Route123_BerryMastersHouse_Text_YoureDeservingOfBerry:: @ 81C0825 + .string "わしは きのみめいじんと よばれておる\p" + .string "わしは せかいじゅうを うつくしい はなで\n" + .string "うめつくそうと きのみを そだてて\l" + .string "そして くばり まくって おるのじゃ\p" + .string "きみにも きのみを わけて あげよう!$" + +Route123_BerryMastersHouse_Text_WhyBeStingyTakeAnother:: @ 81C0888 + .string "ほれ えんりょ せずに もう ひとつ!$" + +Route123_BerryMastersHouse_Text_VisitPrettyPetalFlowerShop:: @ 81C089C + .string "カナズミの ちかくにある サン·トウカという\n" + .string "フラワーショップも よろしくの\p" + .string "せかいに はなを さかせましょう!$" + +Route123_BerryMastersHouse_Text_DoneForToday:: @ 81C08D5 + .string "きょうは もう おしまいじゃ\n" + .string "また おいで\p" + .string "せかいに はなを さかせましょう!$" + +Route123_BerryMastersHouse_Text_HeardAGoodSayingLately:: @ 81C08FD + .string "じいさんの きのみの そだてかたは\n" + .string "そりゃあ せかいいちじゃ\p" + .string "わしも はなが たかいわい\p" + .string "ところで あんた\n" + .string "いい ことばを きいたことが ないかい?$" + +Route123_BerryMastersHouse_Text_InspirationalTakeThis:: @ 81C0948 + .string "おお! とても よい ことばじゃ!\n" + .string "かんどう したわい\p" + .string "ほれ これを もっていきなされ$" + +Route123_BerryMastersHouse_Text_GoodSayingTakeThis:: @ 81C0974 + .string "おお! なかなか よい ことばじゃ\n" + .string "あんたも たいしたもんじゃ\p" + .string "ほれ これを もっていきなされ$" + +Route123_BerryMastersHouse_Text_JoyNeverGoesOutOfMyLife:: @ 81C09A4 + .string "まごたち 4にんも じいさんを しのぐ\n" + .string "おおものに なるじゃろうて\p" + .string "じんせい たのしいことが つきんのう!$" + +Route123_BerryMastersHouse_Text_Ah:: @ 81C09DA + .string "ほう‥‥$" + +Route104_PrettyPetalFlowerShop_Text_ThisIsPrettyPetalFlowerShop:: @ 81C09DF + .string "こんにちは!\p" + .string "はなを せかいに ひろめる\n" + .string "フラワーショップ サン·トウカです!$" + +Route104_PrettyPetalFlowerShop_Text_LearnAboutBerries:: @ 81C0A07 + .string "{PLAYER}{KUN} きのみの こと しりたい?$" + +Route104_PrettyPetalFlowerShop_Text_IntroLearnAboutBerries:: @ 81C0A1A + .string "あなたの なまえは‥‥\p" + .string "{PLAYER}{KUN}ね!\n" + .string "とっても いい なまえだね!\l" + .string "{PLAYER}{KUN} きのみのこと しりたい?$" + +Route104_PrettyPetalFlowerShop_Text_BerriesExplanation:: @ 81C0A4E + .string "きのみはね くろい ふかふかの つちの\n" + .string "ところで たまに とれるの\l" + .string "でね‥‥\p" + .string "とったら その1つを また うめるの!\p" + .string "そうすると その きのみ から\n" + .string "めがでて みきが できて はながさいて\l" + .string "また きのみ が できるの\p" + .string "そうやって はなを ふやして\n" + .string "せかいじゅうを はなに するのが\l" + .string "わたしの ゆめ なんだ!\p" + .string "だから {PLAYER}{KUN}も きのみを うめて\n" + .string "せかいに はなを ふやしてね!$" + +Route104_PrettyPetalFlowerShop_Text_FlowersBringHappiness:: @ 81C0B0B + .string "おはなって とっても しあわせな きぶんに\n" + .string "してくれるよね$" + +Route104_PrettyPetalFlowerShop_Text_YouCanHaveThis:: @ 81C0B29 + .string "こんにちは!\p" + .string "おはなは せわを すれば するほど\n" + .string "たくさん きれいに さいて くれるの\p" + .string "あなたも せわを したく なった でしょ?\n" + .string "これ あげるわ$" + +Route104_PrettyPetalFlowerShop_Text_WailmerPailExplanation:: @ 81C0B73 + .string "きのみが そだつ たびに\n" + .string "じょうろで みずを あげてね!\p" + .string "あとね\p" + .string "きのみは ずっと ずっと ほうっておくと\n" + .string "じめんに おちてしまうの\l" + .string "でもね そこから また めがでて くるの!\p" + .string "すごいよね!\n" + .string "いきものの ちからを かんじるよね$" + +Route104_PrettyPetalFlowerShop_Text_ImGrowingFlowers:: @ 81C0BE5 + .string "おねーちゃんたちを みならって\n" + .string "がんばって おはなを そだててるの\p" + .string "はい! これあげる!$" + +Route104_PrettyPetalFlowerShop_Text_MachineMixesBerries:: @ 81C0C12 + .string "きのみは うめて おおきく したり\n" + .string "ポケモンに もたせたり できるの\p" + .string "でも さいきん きのみを いくつか まぜると\n" + .string "ポケモンの おかしになる きかいが\l" + .string "ある らしいんだ\p" + .string "あたしも おかし ほしー$" + +SootopolisCity_Text_NameIsKiriHaveOneOfThese:: @ 81C0C74 + .string "{STR_VAR_1} なまえ なんていうの?\p" + .string "‥‥‥ ‥‥‥ ‥‥‥\n" + .string "へー いいねー\p" + .string "わたしは キリ っていう なまえなの\p" + .string "パパと ママが すくすくと そだって\n" + .string "こころの あたたかい おんなのこに なって\l" + .string "ほしいっていう ねがいを こめたんだって!\p" + .string "{STR_VAR_1}にも これ あげる$" + +SootopolisCity_Text_GiveYouThisBerryToo:: @ 81C0CF5 + .string "あと {STR_VAR_1}には キリの だいすきな\n" + .string "この きのみも あげちゃう!$" + +SootopolisCity_Text_WhatKindOfWishInYourName:: @ 81C0D16 + .string "{STR_VAR_1}の なまえには\n" + .string "どんな ねがいが こめられてるの?$" + +SootopolisCity_Text_LikeSeasonBornIn:: @ 81C0D32 + .string "はる なつ あき ふゆ\n" + .string "はるに うまれると はるが すきで\l" + .string "なつに うまれると なつが すきなのかな?$" + +SootopolisCity_Text_ThenILoveAutumn:: @ 81C0D66 + .string "じゃあ キリは あきに うまれたから\n" + .string "あきが だいすき!\p" + .string "{STR_VAR_1}は いつが すき?$" + +SootopolisCity_Text_OhDoesntMatter:: @ 81C0D8F + .string "そっか‥\n" + .string "かんけいないのか‥\p" + .string "しりたいことって たくさんあるなー$" diff --git a/data/text/competitive_brothers.inc b/data/text/competitive_brothers.inc new file mode 100644 index 000000000..65afb5aab --- /dev/null +++ b/data/text/competitive_brothers.inc @@ -0,0 +1,39 @@ +@ The text here is a copy/paste from Hoenn's competitive brothers, the NPCs in Sootopolis who request to see big Barboach/Shroomish (Seedot/Lotad in Emerald). It's all unused and untranslated + +SootopolisCity_Text_PleaseShowMeBigMon:: @ 81C0283 + .string "わしは おおきな {STR_VAR_1}に\n" + .string "とても きょうみが ある!\p" + .string "ん? きみ {STR_VAR_1} もってるの?\n" + .string "ちょ ちょ ちょっと···\l" + .string "おじさんに みせて おくれ!$" + +SootopolisCity_Text_GrandMonThanksForShowingMe:: @ 81C02CB + .string "おお! こいつは でかい!\n" + .string "とても すばらしい {STR_VAR_1}だ!\p" + .string "みせて くれて ありがとう\n" + .string "おれいに これを もって いきなさい$" + +SootopolisCity_Text_ReceivedOneItem:: @ 81C0309 + .string "{PLAYER}は\n" + .string "{STR_VAR_2}を もらった!$" + +SootopolisCity_Text_HuhBagIsCrammedFull:: @ 81C0317 + .string "ありゃ?\n" + .string "きみ もちもの いっぱいだね$" + +SootopolisCity_Text_IveSeenBiggerMonThanThisOne:: @ 81C032B + .string "ううむ わしは これより おおきい\n" + .string "{STR_VAR_1}を みたこと あるな···$" + +SootopolisCity_Text_QuiteSomethingButNotMon:: @ 81C034D + .string "おお こいつは なかなか···って\n" + .string "これ {STR_VAR_1}じゃ ないよ!$" + +SootopolisCity_Text_TooBadDontHaveBigMon:: @ 81C036C + .string "おおきい {STR_VAR_1} もってないの?\l" + .string "それは ざんねん···\n" + .string "こんど おおきい {STR_VAR_1} みせてね$" + +SootopolisCity_Text_BiggestMonPlayersXCmColossus:: @ 81C0399 + .string "しじょう さいだいの {STR_VAR_1}!\n" + .string "{STR_VAR_2}の {STR_VAR_3}cmのやつ!$" 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/eon_ticket.inc b/data/text/eon_ticket.inc new file mode 100644 index 000000000..25ccb739b --- /dev/null +++ b/data/text/eon_ticket.inc @@ -0,0 +1,44 @@ +@ The text here is a copy/paste from Hoenn's Eon Ticket event, all unused and untranslated + +Text_DadLetterArrivedForYouPlayer:: @ 81C03B5 + .string "パパ“{PLAYER}! よく きたな!\n" + .string "{PLAYER}あての てがみが とどけられたぞ$" + +Text_DadPassForShipNeverSeenBefore:: @ 81C03D7 + .string "パパ“わたしも みたことのない\n" + .string "ふねの チケット だな‥‥\l" + .string "ミナモに いってみると いいだろう$" + +Text_FerryToSlateportOhThatPass:: @ 81C0407 + .string "カイナいき れんらくせん‥‥\p" + .string "あら?\n" + .string "その チケットは‥‥!$" + +Text_YoureOneWhoBroughtOddPass:: @ 81C0426 + .string "ヘンテコな チケットを\n" + .string "もってきたのは おまえさんか?\p" + .string "おまえが いこうと しているのは\n" + .string "みなみの はての ちっぽけな しま‥‥\p" + .string "そこでは なにが おこるのか\n" + .string "だれも わからねえ‥‥\l" + .string "ううむ ふなのりの ちが さわぐぜ!\p" + .string "さあ のりな!$" + +Text_NothingHereSailBackToLilycove:: @ 81C049D + .string "なにもねえ ちんけな しま だな‥‥\n" + .string "ミナモへ かえるか?$" + +Text_SailHomeWeWill:: @ 81C04BB + .string "よし! かえると するか!$" + +Text_AsYouLikeThen:: @ 81C04C9 + .string "そうかい\n" + .string "まあ すきにするが いいさ$" + +SouthernIsland_Interior_Text_Sign:: @ 81C04DC + .string "すべての ゆめは もうひとつの げんじつ\n" + .string "それを わすれるべからず‥‥$" + +SouthernIsland_Exterior_Text_Sign:: @ 81C0500 + .string "きおく かすみし ものは\n" + .string "こころに きざみつける ことを のぞむ‥‥$" diff --git a/data/text/fame_checker.inc b/data/text/fame_checker.inc index 25ce2e5e9..a65dc1f48 100644 --- a/data/text/fame_checker.inc +++ b/data/text/fame_checker.inc @@ -1404,7 +1404,7 @@ gUnknown_81B161B:: @ 81B161B .string "CELADON GYM, you can often\l" .string "see ERIKA snoozing.$" -gUnknown_81B16A8:: @ 81B16A8 +PokemonJournal_Text_SpecialFeatureKoga:: @ 81B16A8 .string "POKéMON JOURNAL\p" .string "Special Feature: FUCHSIA GYM\n" .string "LEADER KOGA!\p" diff --git a/data/text/flavor_text.inc b/data/text/flavor_text.inc new file mode 100644 index 000000000..a3e46e8d8 --- /dev/null +++ b/data/text/flavor_text.inc @@ -0,0 +1,122 @@ +@ Flavor text for interacting with various background objects + +gUnknown_81C0DB0:: @ 81C0DB0 + .string "It's crammed full of POKéMON\n" + .string "books.$" + +Text_NothingButPokemonBooks:: @ 81C0DD4 + .string "ほんだなに ならんでいるのは\n" + .string "ポケモンの ほん ばかりだ$" + +Text_ATownMap:: @ 81C0DF1 + .string "A TOWN MAP.$" + +gUnknown_81C0DFD:: @ 81C0DFD + .string "Wow!\n" + .string "Tons of POKéMON stuff!$" + +Text_DishesPlatesNeatlyLinedUp:: @ 81C0E19 + .string "Dishes and plates are neatly\n" + .string "lined up.$" + +gUnknown_81C0E40:: @ 81C0E40 + .string "It smells delicious!\n" + .string "Somebody's been cooking here.$" + +gUnknown_81C0E73:: @ 81C0E73 + .string "It's a nicely made dresser.\n" + .string "It will hold a lot of stuff.$" + +gUnknown_81C0EAC:: @ 81C0EAC + .string "There's a pile of snacks here.$" + +gUnknown_81C0ECB:: @ 81C0ECB + .string "All your item needs fulfilled!\n" + .string "POKéMON MART$" + +gUnknown_81C0EF7:: @ 81C0EF7 + .string "Heal Your POKéMON!\n" + .string "POKéMON CENTER$" + +gUnknown_81C0F19:: @ 81C0F19 + .string "INDIGO PLATEAU\p" + .string "The ultimate goal of TRAINERS!\n" + .string "POKéMON LEAGUE HQ$" + +gUnknown_81C0F59:: @ 81C0F59 + .string "INDIGO PLATEAU\p" + .string "The highest POKéMON authority!\n" + .string "POKéMON LEAGUE HQ$" + +gUnknown_81C0F99:: @ 81C0F99 + .string "It should be packed with all kinds\n" + .string "of delicious things to eat.$" + +gUnknown_81C0FD8:: @ 81C0FD8 + .string "It's a blueprint of some sort.\n" + .string "It's filled with diagrams and text.$" + +gUnknown_81C101B:: @ 81C101B + .string "It's a pretty picture of a POKéMON.\n" + .string "It looks like it's feeling good.$" + +gUnknown_81C1060:: @ 81C1060 + .string "What could this machine be?\n" + .string "Better not mess around with it!$" + +gUnknown_81C109C:: @ 81C109C + .string "It's a telephone.\n" + .string "Better not use it.$" + +gUnknown_81C10C1:: @ 81C10C1 + .string "It's all complicated words and\n" + .string "numbers that make no sense…$" + +gUnknown_81C10FC:: @ 81C10FC + .string "It's an advertising poster about\n" + .string "all kinds of products.$" + +gUnknown_81C1134:: @ 81C1134 + .string "Oh, that smells tasty!\n" + .string "It might get the stomach growling!$" + +gUnknown_81C116E:: @ 81C116E + .string "Inside this…\n" + .string "……\p" + .string "There's nothing here!$" + +gUnknown_81C1194:: @ 81C1194 + .string "It's a cup with a POKéMON mark\n" + .string "on it.$" + +gUnknown_81C11BA:: @ 81C11BA + .string "The window is very well polished.$" + +gUnknown_81C11DC:: @ 81C11DC + .string "Outside the window…\p" + .string "The sky looks fantastically\n" + .string "beautiful.$" + +gUnknown_81C1217:: @ 81C1217 + .string "Lights in different colors are\n" + .string "flashing on and off.$" + +gUnknown_81C124B:: @ 81C124B + .string "All sorts of tools are lined up\n" + .string "neatly.$" + +gUnknown_81C1273:: @ 81C1273 + .string "It's a machine of some sort.\n" + .string "It sure is impressive.$" + +gUnknown_81C12A7:: @ 81C12A7 + .string "It's the latest video game!\n" + .string "It sure looks fun!$" + +gUnknown_81C12D6:: @ 81C12D6 + .string "There are obvious signs of burglary\n" + .string "here…$" + +gUnknown_81C1300:: @ 81C1300 + .string "There's a POKéMON on TV!\n" + .string "It looks like it's having fun.$" diff --git a/data/text/safari_zone.inc b/data/text/safari_zone.inc new file mode 100644 index 000000000..5d46de688 --- /dev/null +++ b/data/text/safari_zone.inc @@ -0,0 +1,168 @@ +@ The text here is a copy/paste from Hoenn's Safari Zone, and any unused text was left untranslated + +SafariZone_Text_WouldYouLikeToExit:: @ 81BFBE9 + .string "Would you like to exit the SAFARI\n" + .string "ZONE right now?$" + +SafariZone_Text_TimesUp:: @ 81BFC1B + .string "PA: Ding-dong!\p" + .string "Time's up!\p" + .string "PA: Your SAFARI GAME is over!$" + +SafariZone_Text_OutOfBalls:: @ 81BFC53 + .string "PA: Ding-dong!\p" + .string "You are out of SAFARI BALLS!\p" + .string "PA: Your SAFARI GAME is over!$" + +SafariZone_Text_WelcomeToSafariZone:: @ 81BFC9D + .string "サファリゾーンへ ようこそ!\p" + .string "ここでは ホウエンでは なかなか\n" + .string "みることの できない ポケモンを\p" + .string "しぜんの すがたの まま\n" + .string "めに することが できます\p" + .string "また ポケモントレーナーの\n" + .string "ようぼうに おこたえ して\p" + .string "ポケモンを\n" + .string "つかまえる ことも できます!\p" + .string "サファリゾーンを たのしんで いってね!$" + +SafariZone_Text_WelcomeFirstTime:: @ 81BFD30 + .string "サファリゾーンへ ようこそ!\n" + .string "サファリゾーンは はじめて ですか?$" + +SafariZone_Text_ComeInAndEnjoy:: @ 81BFD52 + .string "サファリゾーンを たのしんで いってね!$" + +SafariZone_Text_FirstTimeInfo:: @ 81BFD67 + .string "サファリゾーンでは\n" + .string "30この サファリボールを つかって\l" + .string "ポケモンを つかまえる ことが できます\p" + .string "サファリボールを つかいきるか\n" + .string "500ぽ あるくと\p" + .string "ゲームは しゅうりょう です\p" + .string "サファリゾーンを たのしんで いってね!$" + +SafariZone_Text_WouldYouLikeToPlay:: @ 81BFDD7 + .string "サファリゾーンへ ようこそ!\p" + .string "500えんで ポケモン つかまえほうだい!\n" + .string "サファリゲームに さんか しますか?$" + +SafariZone_Text_PlayAnotherTime:: @ 81BFE0F + .string "そうですか\n" + .string "こんど ぜひ さんか してください!$" + +SafariZone_Text_NotEnoughMoney:: @ 81BFE28 + .string "おかねが たりませんよ!$" + +SafariZone_Text_ThatWillBe500Please:: @ 81BFE35 + .string "それでは 500えん いただきます$" + +SafariZone_Text_HereAreYourSafariBalls:: @ 81BFE47 + .string "では サファリボールを どうぞ!$" + +SafariZone_Text_Received30SafariBalls:: @ 81BFE58 + .string "{PLAYER}は サファリボールを\n" + .string "30こ うけとった!$" + +SafariZone_Text_PleaseEnjoyYourself:: @ 81BFE70 + .string "じかんに なりましたら\n" + .string "こちらから おしらせ しますので\p" + .string "ぞんぶんに おたのしみ ください!\n" + .string "では いってらっしゃい!$" + +SafariZone_Text_ExcuseMeYourPCBoxIsFull:: @ 81BFEAC + .string "Excuse me!\n" + .string "Your PC BOX is full.$" + +SafariZone_Text_YouNeedPokeblockCase:: @ 81BFECC + .string "あ! おきゃくさん\n" + .string "ポロックケースを おもちで ないですね?\p" + .string "サファリゾーンは ポロックを つかうと\n" + .string "より おたのしみ いただけますので\p" + .string "ぜひ ポロックケースを\n" + .string "おもちに なって おこし ください!$" + +SafariZone_South_Text_StillHaveTimeExit:: @ 81BFF30 + .string "まだ じかんが のこっていますが\n" + .string "サファリゾーンを やめますか?$" + +SafariZone_South_Text_EnjoyTheRestOfYourAdventure:: @ 81BFF51 + .string "では ひきつづき おたのしみ ください!$" + +SafariZone_South_Text_ExitEarlyThankYouForPlaying:: @ 81BFF66 + .string "わかりました\p" + .string "それでは のこりの サファリボールを\n" + .string "おあずかり します\p" + .string "おつかれさまでした\n" + .string "また ごりよう ください$" + +SafariZone_South_Text_GoodLuck:: @ 81BFFA1 + .string "それでは いってらっしゃい!\l" + .string "なにか ありましたら\n" + .string "わたしに こえを かけて くださいね$" + +SafariZone_South_Text_Boy:: @ 81BFFCE + .string "しってた?\p" + .string "あの しかくい はこに ポロックを おくと\n" + .string "ポケモンが あつまって くるんだよ!$" + +SafariZone_South_Text_Man:: @ 81BFFFD + .string "この さきに いきたい けど\n" + .string "じてんしゃ もって くるの わすれた‥‥\p" + .string "おくに めずらしい ポケモンが\n" + .string "いそうな きが するのに!$" + +SafariZone_Southwest_Text_Woman:: @ 81C003F + .string "ポケモンに ポロックを なげても\n" + .string "しらんぷり される ときが あるのよ\p" + .string "ポケモンにも すききらいが あるのかしら?$" + +SafariZone_Northwest_Text_Man:: @ 81C0079 + .string "ぜぇ‥‥ ぜぇ‥‥\n" + .string "やっと ここまで きたけど‥‥\p" + .string "つかれちゃって ポケモン つかまえる\n" + .string "げんきも のこって ないよ‥‥$" + +SafariZone_North_Text_Fisherman:: @ 81C00B6 + .string "ホウエンに いない みずポケモンを\n" + .string "さがしに きたんだけど‥‥\p" + .string "みずうみは どこにあるのか\n" + .string "きみ しってるかい?$" + +SafariZone_North_Text_Man:: @ 81C00EF + .string "ここで めずらしい ポケモンを\n" + .string "たくさん つかまえて\l" + .string "ともだちと こうかん するんだ!$" + +SafariZone_South_Text_Youngster:: @ 81C011B + .string "ポロックおきばに おいた ポロックが\n" + .string "いつのまにか なくなっていた‥‥\p" + .string "しらない うちに\n" + .string "ポケモンが たべちゃったのかな?$" + +Route121_SafariZoneEntrance_Text_TrainerTip:: @ 81C0159 + .string "サファリゾーンの おとくな じょうほう!\p" + .string "であった ポケモンに\n" + .string "ポロックを なげると にげにくく なります!$" + +SafariZone_Southwest_Text_RestHouseSign:: @ 81C0190 + .string "あるき つかれたら ちょっと ひといき!\n" + .string "‘みんなの きゅうけいじょ'$" + +SafariZone_RestHouse_Text_Youngster:: @ 81C01B4 + .string "おれ ポロック もってないけど\n" + .string "ポケモン たくさん つかまえたよ\p" + .string "ちかづいて ボールを なげる だけで\n" + .string "けっこう つかまえられる もんだよ!$" + +SafariZone_RestHouse_Text_PsychicM:: @ 81C01FB + .string "ポロックを つかうと いつもより\n" + .string "ちょっぴり にげにくく なるみたい\p" + .string "だから にげにくい ポケモンに つかっても\n" + .string "あんまり いみが ないかもね$" + +SafariZone_RestHouse_Text_FatMan:: @ 81C0243 + .string "ポロックおきばに ポロック おいて\n" + .string "ポケモンを つかまえると\p" + .string "おなじ ような せいかくの ポケモンが\n" + .string "あつまる きが するなあ$" 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.h b/include/battle.h index bed12204f..c9534745d 100644 --- a/include/battle.h +++ b/include/battle.h @@ -45,7 +45,6 @@ #define B_ACTION_NONE 0xFF #define MAX_TRAINER_ITEMS 4 -#define MAX_MON_MOVES 4 // array entries for battle communication #define MULTIUSE_STATE 0x0 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 982c90fcc..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 @@ -450,7 +450,7 @@ #define FLAG_HIDE_CERULEAN_CAVE_2F_ULTRA_BALL 0x1B6 #define FLAG_HIDE_CERULEAN_CAVE_B1F_MAX_REVIVE 0x1B7 #define FLAG_HIDE_CERULEAN_CAVE_B1F_ULTRA_BALL 0x1B8 -#define FLAG_HIDE_FUCHSIA_CITY_BUILDING1_RARE_CANDY 0x1B9 +#define FLAG_HIDE_FUCHSIA_CITY_WARDENS_HOUSE_RARE_CANDY 0x1B9 #define FLAG_HIDE_TWO_ISLAND_REVIVE 0x1BA #define FLAG_HIDE_THREE_ISLAND_ZINC 0x1BB #define FLAG_0x1BC 0x1BC diff --git a/include/constants/global.h b/include/constants/global.h index 420a9da71..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 @@ -59,6 +60,8 @@ #define NUM_BAG_POCKETS 5 +#define MAX_MON_MOVES 4 + #define PARTY_SIZE 6 #define MULTI_PARTY_SIZE (PARTY_SIZE / 2) 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/layouts.h b/include/constants/layouts.h index 26893ac0c..657d531e8 100644 --- a/include/constants/layouts.h +++ b/include/constants/layouts.h @@ -180,10 +180,10 @@ #define LAYOUT_CELADON_CITY_DEPARTMENT_STORE_4F 195 #define LAYOUT_CELADON_CITY_DEPARTMENT_STORE_5F 196 #define LAYOUT_CELADON_CITY_DEPARTMENT_STORE_ROOF 197 -#define LAYOUT_SAFARI_ZONE_BUILDING 198 +#define LAYOUT_SAFARI_ZONE_REST_HOUSE 198 #define LAYOUT_SAFARI_ZONE_SECRET_HOUSE 199 -#define LAYOUT_FUCHSIA_CITY_ZOO_BUILDING 200 -#define LAYOUT_FUCHSIA_CITY_BUILDING1 201 +#define LAYOUT_FUCHSIA_CITY_SAFARI_ZONE_OFFICE 200 +#define LAYOUT_FUCHSIA_CITY_WARDENS_HOUSE 201 #define LAYOUT_FUCHSIA_CITY_HOUSE2 202 #define LAYOUT_CINNABAR_ISLAND_POKEMON_LAB_ENTRANCE 203 #define LAYOUT_CINNABAR_ISLAND_POKEMON_LAB_LOUNGE 204 diff --git a/include/constants/map_groups.h b/include/constants/map_groups.h index 4d37b0dc8..0cc1c27fb 100644 --- a/include/constants/map_groups.h +++ b/include/constants/map_groups.h @@ -76,10 +76,10 @@ #define MAP_SAFARI_ZONE_EAST (64 | (1 << 8)) #define MAP_SAFARI_ZONE_NORTH (65 | (1 << 8)) #define MAP_SAFARI_ZONE_WEST (66 | (1 << 8)) -#define MAP_SAFARI_ZONE_BUILDING1 (67 | (1 << 8)) -#define MAP_SAFARI_ZONE_BUILDING2 (68 | (1 << 8)) -#define MAP_SAFARI_ZONE_BUILDING3 (69 | (1 << 8)) -#define MAP_SAFARI_ZONE_BUILDING4 (70 | (1 << 8)) +#define MAP_SAFARI_ZONE_CENTER_REST_HOUSE (67 | (1 << 8)) +#define MAP_SAFARI_ZONE_EAST_REST_HOUSE (68 | (1 << 8)) +#define MAP_SAFARI_ZONE_NORTH_REST_HOUSE (69 | (1 << 8)) +#define MAP_SAFARI_ZONE_WEST_REST_HOUSE (70 | (1 << 8)) #define MAP_SAFARI_ZONE_SECRET_HOUSE (71 | (1 << 8)) #define MAP_CERULEAN_CAVE_1F (72 | (1 << 8)) #define MAP_CERULEAN_CAVE_2F (73 | (1 << 8)) @@ -342,12 +342,12 @@ // Map Group 11 #define MAP_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE (0 | (11 << 8)) #define MAP_FUCHSIA_CITY_MART (1 | (11 << 8)) -#define MAP_FUCHSIA_CITY_ZOO_BUILDING (2 | (11 << 8)) +#define MAP_FUCHSIA_CITY_SAFARI_ZONE_OFFICE (2 | (11 << 8)) #define MAP_FUCHSIA_CITY_GYM (3 | (11 << 8)) #define MAP_FUCHSIA_CITY_HOUSE1 (4 | (11 << 8)) #define MAP_FUCHSIA_CITY_POKEMON_CENTER_1F (5 | (11 << 8)) #define MAP_FUCHSIA_CITY_POKEMON_CENTER_2F (6 | (11 << 8)) -#define MAP_FUCHSIA_CITY_BUILDING1 (7 | (11 << 8)) +#define MAP_FUCHSIA_CITY_WARDENS_HOUSE (7 | (11 << 8)) #define MAP_FUCHSIA_CITY_HOUSE2 (8 | (11 << 8)) #define MAP_FUCHSIA_CITY_HOUSE3 (9 | (11 << 8)) 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 b5e355484..54eb2b2a9 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -1148,10 +1148,10 @@ extern const u8 EventScript_FldEffStrength[]; extern const u8 EventScript_FailSweetScent[]; extern const u8 EventScript_FldEffRockSmash[]; -extern const u8 EventScript_SafariTimesUp[]; -extern const u8 EventScript_SafariRetire[]; -extern const u8 EventScript_SafariWarpOut[]; -extern const u8 EventScript_SafariOutOfBalls[]; +extern const u8 SafariZone_EventScript_TimesUp[]; +extern const u8 SafariZone_EventScript_RetirePrompt[]; +extern const u8 SafariZone_EventScript_OutOfBallsMidBattle[]; +extern const u8 SafariZone_EventScript_OutOfBalls[]; extern const u8 EventScript_ItemfinderDigUpUnderfootItem[]; @@ -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/help_system.h b/include/help_system.h index 53dc45014..273b5e119 100644 --- a/include/help_system.h +++ b/include/help_system.h @@ -91,5 +91,6 @@ void PlaceListMenuCursor(void); bool8 MoveCursor(u8 by, u8 dirn); void HelpSystem_BackupSomeVariable(void); void HelpSystem_RestoreSomeVariable(void); +void HelpSystemRenderText(u8 font, u8 * dest, const u8 * src, u8 x, u8 y, u8 width, u8 height); #endif //GUARD_HELP_SYSTEM_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/save_failed_screen.h b/include/save_failed_screen.h index 5950430d2..7056fc6c6 100644 --- a/include/save_failed_screen.h +++ b/include/save_failed_screen.h @@ -2,7 +2,7 @@ #define GUARD_SAVE_FAILED_SCREEN_H extern void DoSaveFailedScreen(u8 saveType); // save_failed_screen -void sub_80F50F4(void); -bool32 sub_80F5118(void); +void SetNotInSaveFailedScreen(void); +bool32 RunSaveFailedScreen(void); #endif //GUARD_SAVE_FAILED_SCREEN_H diff --git a/include/strings.h b/include/strings.h index ec8533a54..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[]; @@ -1033,4 +1033,27 @@ extern const u8 gText_RegionMap_AreaDesc_AlteringCave[]; extern const u8 gText_RegionMap_AreaDesc_PatternBush[]; extern const u8 gText_RegionMap_AreaDesc_DottedHole[]; +// save_failed_screen +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 d6dec1ea3..016793dc9 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -217,7 +217,7 @@ SECTIONS { src/hall_of_fame.o(.text); src/credits.o(.text); src/diploma.o(.text); - asm/save_failed_screen.o(.text); + src/save_failed_screen.o(.text); asm/clear_save_data_screen.o(.text); src/evolution_graphics.o(.text); src/fldeff_teleport.o(.text); @@ -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); @@ -505,7 +505,7 @@ SECTIONS { src/credits.o(.rodata); src/diploma.o(.rodata); data/strings.o(.rodata); - data/save_failed_screen.o(.rodata); + src/save_failed_screen.o(.rodata); data/clear_save_data_screen.o(.rodata); src/evolution_graphics.o(.rodata); src/new_menu_helpers.o(.rodata); @@ -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_ai_script_commands.c b/src/battle_ai_script_commands.c index f98922c28..d988fd7b4 100644 --- a/src/battle_ai_script_commands.c +++ b/src/battle_ai_script_commands.c @@ -34,14 +34,14 @@ enum }; /* -gAIScriptPtr is a pointer to the next battle AI cmd command to read. -when a command finishes processing, gAIScriptPtr is incremented by +sAIScriptPtr is a pointer to the next battle AI cmd command to read. +when a command finishes processing, sAIScriptPtr is incremented by the number of bytes that the current command had reserved for arguments in order to read the next command correctly. refer to battle_ai_scripts.s for the AI scripts. */ -extern const u8 *gAIScriptPtr; +static EWRAM_DATA const u8 *sAIScriptPtr = NULL; extern u8 *gBattleAI_ScriptsTable[]; static void BattleAICmd_if_random_less_than(void); @@ -419,7 +419,7 @@ static void BattleAI_DoAIProcessing(void) case AIState_DoNotProcess: //Needed to match. break; case AIState_SettingUp: - gAIScriptPtr = gBattleAI_ScriptsTable[AI_THINKING_STRUCT->aiLogicId]; // set the AI ptr. + sAIScriptPtr = gBattleAI_ScriptsTable[AI_THINKING_STRUCT->aiLogicId]; // set the AI ptr. if (gBattleMons[gBattlerAttacker].pp[AI_THINKING_STRUCT->movesetIndex] == 0) { AI_THINKING_STRUCT->moveConsidered = 0; // don't consider a move you have 0 PP for, idiot. @@ -432,7 +432,7 @@ static void BattleAI_DoAIProcessing(void) break; case AIState_Processing: if (AI_THINKING_STRUCT->moveConsidered != 0) - sBattleAICmdTable[*gAIScriptPtr](); // run AI command. + sBattleAICmdTable[*sAIScriptPtr](); // run AI command. else { AI_THINKING_STRUCT->score[AI_THINKING_STRUCT->movesetIndex] = 0; // definitely do not consider any move that has 0 PP. @@ -490,44 +490,44 @@ void RecordItemEffectBattle(u8 battlerId, u8 itemEffect) static void BattleAICmd_if_random_less_than(void) { - if (Random() % 256 < gAIScriptPtr[1]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); + if (Random() % 256 < sAIScriptPtr[1]) + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 2); else - gAIScriptPtr += 6; + sAIScriptPtr += 6; } static void BattleAICmd_if_random_greater_than(void) { - if (Random() % 256 > gAIScriptPtr[1]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); + if (Random() % 256 > sAIScriptPtr[1]) + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 2); else - gAIScriptPtr += 6; + sAIScriptPtr += 6; } static void BattleAICmd_if_random_equal(void) { - if (Random() % 256 == gAIScriptPtr[1]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); + if (Random() % 256 == sAIScriptPtr[1]) + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 2); else - gAIScriptPtr += 6; + sAIScriptPtr += 6; } static void BattleAICmd_if_random_not_equal(void) { - if (Random() % 256 != gAIScriptPtr[1]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); + if (Random() % 256 != sAIScriptPtr[1]) + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 2); else - gAIScriptPtr += 6; + sAIScriptPtr += 6; } static void BattleAICmd_score(void) { - AI_THINKING_STRUCT->score[AI_THINKING_STRUCT->movesetIndex] += gAIScriptPtr[1]; // add the result to the array of the move consider's score. + AI_THINKING_STRUCT->score[AI_THINKING_STRUCT->movesetIndex] += sAIScriptPtr[1]; // add the result to the array of the move consider's score. if (AI_THINKING_STRUCT->score[AI_THINKING_STRUCT->movesetIndex] < 0) // if the score is negative, flatten it to 0. AI_THINKING_STRUCT->score[AI_THINKING_STRUCT->movesetIndex] = 0; - gAIScriptPtr += 2; // AI return. + sAIScriptPtr += 2; // AI return. } enum { @@ -539,60 +539,60 @@ static void BattleAICmd_if_hp_less_than(void) { u16 index; - if (gAIScriptPtr[1] == USER) + if (sAIScriptPtr[1] == USER) index = gBattlerAttacker; else index = gBattlerTarget; - if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) < gAIScriptPtr[2]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); + if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) < sAIScriptPtr[2]) + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 3); else - gAIScriptPtr += 7; + sAIScriptPtr += 7; } static void BattleAICmd_if_hp_more_than(void) { u16 index; - if (gAIScriptPtr[1] == USER) + if (sAIScriptPtr[1] == USER) index = gBattlerAttacker; else index = gBattlerTarget; - if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) > gAIScriptPtr[2]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); + if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) > sAIScriptPtr[2]) + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 3); else - gAIScriptPtr += 7; + sAIScriptPtr += 7; } static void BattleAICmd_if_hp_equal(void) { u16 index; - if (gAIScriptPtr[1] == USER) + if (sAIScriptPtr[1] == USER) index = gBattlerAttacker; else index = gBattlerTarget; - if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) == gAIScriptPtr[2]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); + if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) == sAIScriptPtr[2]) + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 3); else - gAIScriptPtr += 7; + sAIScriptPtr += 7; } static void BattleAICmd_if_hp_not_equal(void) { u16 index; - if (gAIScriptPtr[1] == USER) + if (sAIScriptPtr[1] == USER) index = gBattlerAttacker; else index = gBattlerTarget; - if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) != gAIScriptPtr[2]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); + if ((u32)(100 * gBattleMons[index].hp / gBattleMons[index].maxHP) != sAIScriptPtr[2]) + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 3); else - gAIScriptPtr += 7; + sAIScriptPtr += 7; } static void BattleAICmd_if_status(void) @@ -600,17 +600,17 @@ static void BattleAICmd_if_status(void) u16 index; u32 arg; - if (gAIScriptPtr[1] == USER) + if (sAIScriptPtr[1] == USER) index = gBattlerAttacker; else index = gBattlerTarget; - arg = T1_READ_32(gAIScriptPtr + 2); + arg = T1_READ_32(sAIScriptPtr + 2); if ((gBattleMons[index].status1 & arg) != 0) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 6); else - gAIScriptPtr += 10; + sAIScriptPtr += 10; } static void BattleAICmd_if_not_status(void) @@ -618,17 +618,17 @@ static void BattleAICmd_if_not_status(void) u16 index; u32 arg; - if (gAIScriptPtr[1] == USER) + if (sAIScriptPtr[1] == USER) index = gBattlerAttacker; else index = gBattlerTarget; - arg = T1_READ_32(gAIScriptPtr + 2); + arg = T1_READ_32(sAIScriptPtr + 2); if ((gBattleMons[index].status1 & arg) == 0) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 6); else - gAIScriptPtr += 10; + sAIScriptPtr += 10; } static void BattleAICmd_if_status2(void) @@ -636,17 +636,17 @@ static void BattleAICmd_if_status2(void) u16 index; u32 arg; - if (gAIScriptPtr[1] == USER) + if (sAIScriptPtr[1] == USER) index = gBattlerAttacker; else index = gBattlerTarget; - arg = T1_READ_32(gAIScriptPtr + 2); + arg = T1_READ_32(sAIScriptPtr + 2); if ((gBattleMons[index].status2 & arg) != 0) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 6); else - gAIScriptPtr += 10; + sAIScriptPtr += 10; } static void BattleAICmd_if_not_status2(void) @@ -654,17 +654,17 @@ static void BattleAICmd_if_not_status2(void) u16 index; u32 arg; - if (gAIScriptPtr[1] == USER) + if (sAIScriptPtr[1] == USER) index = gBattlerAttacker; else index = gBattlerTarget; - arg = T1_READ_32(gAIScriptPtr + 2); + arg = T1_READ_32(sAIScriptPtr + 2); if ((gBattleMons[index].status2 & arg) == 0) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 6); else - gAIScriptPtr += 10; + sAIScriptPtr += 10; } static void BattleAICmd_if_status3(void) @@ -672,17 +672,17 @@ static void BattleAICmd_if_status3(void) u16 index; u32 arg; - if (gAIScriptPtr[1] == USER) + if (sAIScriptPtr[1] == USER) index = gBattlerAttacker; else index = gBattlerTarget; - arg = T1_READ_32(gAIScriptPtr + 2); + arg = T1_READ_32(sAIScriptPtr + 2); if ((gStatuses3[index] & arg) != 0) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 6); else - gAIScriptPtr += 10; + sAIScriptPtr += 10; } static void BattleAICmd_if_not_status3(void) @@ -690,17 +690,17 @@ static void BattleAICmd_if_not_status3(void) u16 index; u32 arg; - if (gAIScriptPtr[1] == USER) + if (sAIScriptPtr[1] == USER) index = gBattlerAttacker; else index = gBattlerTarget; - arg = T1_READ_32(gAIScriptPtr + 2); + arg = T1_READ_32(sAIScriptPtr + 2); if ((gStatuses3[index] & arg) == 0) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 6); else - gAIScriptPtr += 10; + sAIScriptPtr += 10; } static void BattleAICmd_if_status4(void) @@ -708,18 +708,18 @@ static void BattleAICmd_if_status4(void) u16 index; u32 arg1, arg2; - if (gAIScriptPtr[1] == USER) + if (sAIScriptPtr[1] == USER) index = gBattlerAttacker; else index = gBattlerTarget; arg1 = GetBattlerPosition(index) & 1; - arg2 = T1_READ_32(gAIScriptPtr + 2); + arg2 = T1_READ_32(sAIScriptPtr + 2); if ((gSideStatuses[arg1] & arg2) != 0) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 6); else - gAIScriptPtr += 10; + sAIScriptPtr += 10; } static void BattleAICmd_if_not_status4(void) @@ -727,174 +727,174 @@ static void BattleAICmd_if_not_status4(void) u16 index; u32 arg1, arg2; - if (gAIScriptPtr[1] == USER) + if (sAIScriptPtr[1] == USER) index = gBattlerAttacker; else index = gBattlerTarget; arg1 = GetBattlerPosition(index) & 1; - arg2 = T1_READ_32(gAIScriptPtr + 2); + arg2 = T1_READ_32(sAIScriptPtr + 2); if ((gSideStatuses[arg1] & arg2) == 0) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 6); else - gAIScriptPtr += 10; + sAIScriptPtr += 10; } static void BattleAICmd_if_less_than(void) { - if (AI_THINKING_STRUCT->funcResult < gAIScriptPtr[1]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); + if (AI_THINKING_STRUCT->funcResult < sAIScriptPtr[1]) + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 2); else - gAIScriptPtr += 6; + sAIScriptPtr += 6; } static void BattleAICmd_if_more_than(void) { - if (AI_THINKING_STRUCT->funcResult > gAIScriptPtr[1]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); + if (AI_THINKING_STRUCT->funcResult > sAIScriptPtr[1]) + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 2); else - gAIScriptPtr += 6; + sAIScriptPtr += 6; } static void BattleAICmd_if_equal(void) { - if (AI_THINKING_STRUCT->funcResult == gAIScriptPtr[1]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); + if (AI_THINKING_STRUCT->funcResult == sAIScriptPtr[1]) + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 2); else - gAIScriptPtr += 6; + sAIScriptPtr += 6; } static void BattleAICmd_if_not_equal(void) { - if (AI_THINKING_STRUCT->funcResult != gAIScriptPtr[1]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); + if (AI_THINKING_STRUCT->funcResult != sAIScriptPtr[1]) + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 2); else - gAIScriptPtr += 6; + sAIScriptPtr += 6; } static void BattleAICmd_if_less_than_32(void) { - u8 *temp = T1_READ_PTR(gAIScriptPtr + 1); + u8 *temp = T1_READ_PTR(sAIScriptPtr + 1); if (AI_THINKING_STRUCT->funcResult < *temp) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 5); else - gAIScriptPtr += 9; + sAIScriptPtr += 9; } static void BattleAICmd_if_more_than_32(void) { - u8 *temp = T1_READ_PTR(gAIScriptPtr + 1); + u8 *temp = T1_READ_PTR(sAIScriptPtr + 1); if (AI_THINKING_STRUCT->funcResult > *temp) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 5); else - gAIScriptPtr += 9; + sAIScriptPtr += 9; } static void BattleAICmd_if_equal_32(void) { - u8 *temp = T1_READ_PTR(gAIScriptPtr + 1); + u8 *temp = T1_READ_PTR(sAIScriptPtr + 1); if (AI_THINKING_STRUCT->funcResult == *temp) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 5); else - gAIScriptPtr += 9; + sAIScriptPtr += 9; } static void BattleAICmd_if_not_equal_32(void) { - u8 *temp = T1_READ_PTR(gAIScriptPtr + 1); + u8 *temp = T1_READ_PTR(sAIScriptPtr + 1); if (AI_THINKING_STRUCT->funcResult != *temp) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 5); else - gAIScriptPtr += 9; + sAIScriptPtr += 9; } static void BattleAICmd_if_move(void) { - u16 move = T1_READ_16(gAIScriptPtr + 1); + u16 move = T1_READ_16(sAIScriptPtr + 1); if (AI_THINKING_STRUCT->moveConsidered == move) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 3); else - gAIScriptPtr += 7; + sAIScriptPtr += 7; } static void BattleAICmd_if_not_move(void) { - u16 move = T1_READ_16(gAIScriptPtr + 1); + u16 move = T1_READ_16(sAIScriptPtr + 1); if (AI_THINKING_STRUCT->moveConsidered != move) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 3); else - gAIScriptPtr += 7; + sAIScriptPtr += 7; } static void BattleAICmd_if_in_bytes(void) { - u8 *ptr = T1_READ_PTR(gAIScriptPtr + 1); + u8 *ptr = T1_READ_PTR(sAIScriptPtr + 1); while (*ptr != 0xFF) { if (AI_THINKING_STRUCT->funcResult == *ptr) { - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 5); return; } ptr++; } - gAIScriptPtr += 9; + sAIScriptPtr += 9; } static void BattleAICmd_if_not_in_bytes(void) { - u8 *ptr = T1_READ_PTR(gAIScriptPtr + 1); + u8 *ptr = T1_READ_PTR(sAIScriptPtr + 1); while (*ptr != 0xFF) { if (AI_THINKING_STRUCT->funcResult == *ptr) { - gAIScriptPtr += 9; + sAIScriptPtr += 9; return; } ptr++; } - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 5); } static void BattleAICmd_if_in_words(void) { - u16 *ptr = (u16 *)T1_READ_PTR(gAIScriptPtr + 1); + u16 *ptr = (u16 *)T1_READ_PTR(sAIScriptPtr + 1); while (*ptr != 0xFFFF) { if (AI_THINKING_STRUCT->funcResult == *ptr) { - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 5); return; } ptr++; } - gAIScriptPtr += 9; + sAIScriptPtr += 9; } static void BattleAICmd_if_not_in_words(void) { - u16 *ptr = (u16 *)T1_READ_PTR(gAIScriptPtr + 1); + u16 *ptr = (u16 *)T1_READ_PTR(sAIScriptPtr + 1); while (*ptr != 0xFFFF) { if (AI_THINKING_STRUCT->funcResult == *ptr) { - gAIScriptPtr += 9; + sAIScriptPtr += 9; return; } ptr++; } - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 5); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 5); } static void BattleAICmd_if_user_can_damage(void) @@ -908,9 +908,9 @@ static void BattleAICmd_if_user_can_damage(void) break; } if (i == MAX_MON_MOVES) - gAIScriptPtr += 5; + sAIScriptPtr += 5; else - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 1); } static void BattleAICmd_if_user_cant_damage(void) @@ -924,20 +924,20 @@ static void BattleAICmd_if_user_cant_damage(void) break; } if (i != MAX_MON_MOVES) - gAIScriptPtr += 5; + sAIScriptPtr += 5; else - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 1); } static void BattleAICmd_get_turn_count(void) { AI_THINKING_STRUCT->funcResult = gBattleResults.battleTurnCounter; - gAIScriptPtr += 1; + sAIScriptPtr += 1; } static void BattleAICmd_get_type(void) { - switch (gAIScriptPtr[1]) + switch (sAIScriptPtr[1]) { case 1: // player primary type AI_THINKING_STRUCT->funcResult = gBattleMons[gBattlerAttacker].type1; @@ -955,13 +955,13 @@ static void BattleAICmd_get_type(void) AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->moveConsidered].type; break; } - gAIScriptPtr += 2; + sAIScriptPtr += 2; } static void BattleAICmd_get_move_power(void) { AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->moveConsidered].power; - gAIScriptPtr += 1; + sAIScriptPtr += 1; } static void BattleAICmd_is_most_powerful_move(void) @@ -1025,49 +1025,49 @@ static void BattleAICmd_is_most_powerful_move(void) AI_THINKING_STRUCT->funcResult = MOVE_POWER_DISCOURAGED; // Highly discouraged in terms of power. } - gAIScriptPtr++; + sAIScriptPtr++; } static void BattleAICmd_get_move(void) { - if (gAIScriptPtr[1] == USER) + if (sAIScriptPtr[1] == USER) AI_THINKING_STRUCT->funcResult = gLastMoves[gBattlerAttacker]; else AI_THINKING_STRUCT->funcResult = gLastMoves[gBattlerTarget]; - gAIScriptPtr += 2; + sAIScriptPtr += 2; } static void BattleAICmd_if_arg_equal(void) { - if (gAIScriptPtr[1] == AI_THINKING_STRUCT->funcResult) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); + if (sAIScriptPtr[1] == AI_THINKING_STRUCT->funcResult) + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 2); else - gAIScriptPtr += 6; + sAIScriptPtr += 6; } static void BattleAICmd_if_arg_not_equal(void) { - if (gAIScriptPtr[1] != AI_THINKING_STRUCT->funcResult) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); + if (sAIScriptPtr[1] != AI_THINKING_STRUCT->funcResult) + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 2); else - gAIScriptPtr += 6; + sAIScriptPtr += 6; } static void BattleAICmd_if_would_go_first(void) { - if (GetWhoStrikesFirst(gBattlerAttacker, gBattlerTarget, TRUE) == gAIScriptPtr[1]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); + if (GetWhoStrikesFirst(gBattlerAttacker, gBattlerTarget, TRUE) == sAIScriptPtr[1]) + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 2); else - gAIScriptPtr += 6; + sAIScriptPtr += 6; } static void BattleAICmd_if_would_not_go_first(void) { - if (GetWhoStrikesFirst(gBattlerAttacker, gBattlerTarget, TRUE) != gAIScriptPtr[1]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); + if (GetWhoStrikesFirst(gBattlerAttacker, gBattlerTarget, TRUE) != sAIScriptPtr[1]) + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 2); else - gAIScriptPtr += 6; + sAIScriptPtr += 6; } static void BattleAICmd_nullsub_2A(void) @@ -1087,7 +1087,7 @@ static void BattleAICmd_count_alive_pokemon(void) AI_THINKING_STRUCT->funcResult = 0; - if (gAIScriptPtr[1] == USER) + if (sAIScriptPtr[1] == USER) index = gBattlerAttacker; else index = gBattlerTarget; @@ -1121,26 +1121,26 @@ static void BattleAICmd_count_alive_pokemon(void) } } - gAIScriptPtr += 2; + sAIScriptPtr += 2; } static void BattleAICmd_get_considered_move(void) { AI_THINKING_STRUCT->funcResult = AI_THINKING_STRUCT->moveConsidered; - gAIScriptPtr += 1; + sAIScriptPtr += 1; } static void BattleAICmd_get_considered_move_effect(void) { AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->moveConsidered].effect; - gAIScriptPtr += 1; + sAIScriptPtr += 1; } static void BattleAICmd_get_ability(void) { u8 index; - if (gAIScriptPtr[1] == USER) + if (sAIScriptPtr[1] == USER) index = gBattlerAttacker; else index = gBattlerTarget; @@ -1152,7 +1152,7 @@ static void BattleAICmd_get_ability(void) if (BATTLE_HISTORY->abilities[side] != 0) { AI_THINKING_STRUCT->funcResult = BATTLE_HISTORY->abilities[side]; - gAIScriptPtr += 2; + sAIScriptPtr += 2; return; } @@ -1162,7 +1162,7 @@ static void BattleAICmd_get_ability(void) || gBattleMons[index].ability == ABILITY_ARENA_TRAP) { AI_THINKING_STRUCT->funcResult = gBattleMons[index].ability; - gAIScriptPtr += 2; + sAIScriptPtr += 2; return; } @@ -1195,7 +1195,7 @@ static void BattleAICmd_get_ability(void) // The AI knows its own ability. AI_THINKING_STRUCT->funcResult = gBattleMons[index].ability; } - gAIScriptPtr += 2; + sAIScriptPtr += 2; } static void BattleAICmd_get_highest_possible_damage(void) @@ -1237,7 +1237,7 @@ static void BattleAICmd_get_highest_possible_damage(void) } } - gAIScriptPtr += 1; + sAIScriptPtr += 1; } static void BattleAICmd_if_type_effectiveness(void) @@ -1267,13 +1267,13 @@ static void BattleAICmd_if_type_effectiveness(void) if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) gBattleMoveDamage = AI_EFFECTIVENESS_x0; - // Store gBattleMoveDamage in a u8 variable because gAIScriptPtr[1] is a u8. + // Store gBattleMoveDamage in a u8 variable because sAIScriptPtr[1] is a u8. damageVar = gBattleMoveDamage; - if (damageVar == gAIScriptPtr[1]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); + if (damageVar == sAIScriptPtr[1]) + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 2); else - gAIScriptPtr += 6; + sAIScriptPtr += 6; } static void BattleAICmd_nullsub_32(void) @@ -1292,7 +1292,7 @@ static void BattleAICmd_if_status_in_party(void) u32 statusToCompareTo; // for whatever reason, game freak put the party pointer into 2 variables instead of 1. it's possible at some point the switch encompassed the whole function and used each respective variable creating largely duplicate code. - switch (gAIScriptPtr[1]) + switch (sAIScriptPtr[1]) { case 1: party = partyPtr = gEnemyParty; @@ -1302,7 +1302,7 @@ static void BattleAICmd_if_status_in_party(void) break; } - statusToCompareTo = T1_READ_32(gAIScriptPtr + 2); + statusToCompareTo = T1_READ_32(sAIScriptPtr + 2); for (i = 0; i < 6; i++) { @@ -1312,12 +1312,12 @@ static void BattleAICmd_if_status_in_party(void) if (species != SPECIES_NONE && species != SPECIES_EGG && hp != 0 && status == statusToCompareTo) { - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6); // WHAT. why is this being merged into the above switch + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 6); // WHAT. why is this being merged into the above switch return; } } - gAIScriptPtr += 10; + sAIScriptPtr += 10; } // bugged, doesnt return properly. also unused @@ -1328,7 +1328,7 @@ static void BattleAICmd_if_status_not_in_party(void) int i; u32 statusToCompareTo; - switch (gAIScriptPtr[1]) + switch (sAIScriptPtr[1]) { case 1: party = partyPtr = gEnemyParty; @@ -1338,7 +1338,7 @@ static void BattleAICmd_if_status_not_in_party(void) break; } - statusToCompareTo = T1_READ_32(gAIScriptPtr + 2); + statusToCompareTo = T1_READ_32(sAIScriptPtr + 2); for (i = 0; i < 6; i++) { @@ -1348,9 +1348,9 @@ static void BattleAICmd_if_status_not_in_party(void) // everytime the status is found, the AI's logic jumps further and further past its intended destination. this results in a broken AI macro and is probably why it is unused. if (species != SPECIES_NONE && species != SPECIES_EGG && hp != 0 && status == statusToCompareTo) - gAIScriptPtr += 10; // doesnt return? + sAIScriptPtr += 10; // doesnt return? } - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 6); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 6); } enum @@ -1374,90 +1374,90 @@ static void BattleAICmd_get_weather(void) if (gBattleWeather & WEATHER_HAIL) AI_THINKING_STRUCT->funcResult = WEATHER_TYPE_HAIL; - gAIScriptPtr += 1; + sAIScriptPtr += 1; } static void BattleAICmd_if_effect(void) { - if (gBattleMoves[AI_THINKING_STRUCT->moveConsidered].effect == gAIScriptPtr[1]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); + if (gBattleMoves[AI_THINKING_STRUCT->moveConsidered].effect == sAIScriptPtr[1]) + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 2); else - gAIScriptPtr += 6; + sAIScriptPtr += 6; } static void BattleAICmd_if_not_effect(void) { - if (gBattleMoves[AI_THINKING_STRUCT->moveConsidered].effect != gAIScriptPtr[1]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); + if (gBattleMoves[AI_THINKING_STRUCT->moveConsidered].effect != sAIScriptPtr[1]) + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 2); else - gAIScriptPtr += 6; + sAIScriptPtr += 6; } static void BattleAICmd_if_stat_level_less_than(void) { u32 party; - if (gAIScriptPtr[1] == USER) + if (sAIScriptPtr[1] == USER) party = gBattlerAttacker; else party = gBattlerTarget; - if (gBattleMons[party].statStages[gAIScriptPtr[2]] < gAIScriptPtr[3]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); + if (gBattleMons[party].statStages[sAIScriptPtr[2]] < sAIScriptPtr[3]) + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 4); else - gAIScriptPtr += 8; + sAIScriptPtr += 8; } static void BattleAICmd_if_stat_level_more_than(void) { u32 party; - if (gAIScriptPtr[1] == USER) + if (sAIScriptPtr[1] == USER) party = gBattlerAttacker; else party = gBattlerTarget; - if (gBattleMons[party].statStages[gAIScriptPtr[2]] > gAIScriptPtr[3]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); + if (gBattleMons[party].statStages[sAIScriptPtr[2]] > sAIScriptPtr[3]) + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 4); else - gAIScriptPtr += 8; + sAIScriptPtr += 8; } static void BattleAICmd_if_stat_level_equal(void) { u32 party; - if (gAIScriptPtr[1] == USER) + if (sAIScriptPtr[1] == USER) party = gBattlerAttacker; else party = gBattlerTarget; - if (gBattleMons[party].statStages[gAIScriptPtr[2]] == gAIScriptPtr[3]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); + if (gBattleMons[party].statStages[sAIScriptPtr[2]] == sAIScriptPtr[3]) + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 4); else - gAIScriptPtr += 8; + sAIScriptPtr += 8; } static void BattleAICmd_if_stat_level_not_equal(void) { u32 party; - if (gAIScriptPtr[1] == USER) + if (sAIScriptPtr[1] == USER) party = gBattlerAttacker; else party = gBattlerTarget; - if (gBattleMons[party].statStages[gAIScriptPtr[2]] != gAIScriptPtr[3]) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); + if (gBattleMons[party].statStages[sAIScriptPtr[2]] != sAIScriptPtr[3]) + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 4); else - gAIScriptPtr += 8; + sAIScriptPtr += 8; } static void BattleAICmd_if_can_faint(void) { if (gBattleMoves[AI_THINKING_STRUCT->moveConsidered].power < 2) { - gAIScriptPtr += 5; + sAIScriptPtr += 5; return; } @@ -1477,16 +1477,16 @@ static void BattleAICmd_if_can_faint(void) gBattleMoveDamage = 1; if (gBattleMons[gBattlerTarget].hp <= gBattleMoveDamage) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 1); else - gAIScriptPtr += 5; + sAIScriptPtr += 5; } static void BattleAICmd_if_cant_faint(void) { if (gBattleMoves[AI_THINKING_STRUCT->moveConsidered].power < 2) { - gAIScriptPtr += 5; + sAIScriptPtr += 5; return; } @@ -1504,17 +1504,17 @@ static void BattleAICmd_if_cant_faint(void) // This macro is missing the damage 0 = 1 assumption. if (gBattleMons[gBattlerTarget].hp > gBattleMoveDamage) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 1); else - gAIScriptPtr += 5; + sAIScriptPtr += 5; } static void BattleAICmd_if_has_move(void) { int i; - u16 *temp_ptr = (u16 *)(gAIScriptPtr + 2); + u16 *temp_ptr = (u16 *)(sAIScriptPtr + 2); - switch (gAIScriptPtr[1]) + switch (sAIScriptPtr[1]) { case 1: case 3: @@ -1524,9 +1524,9 @@ static void BattleAICmd_if_has_move(void) break; } if (i == MAX_MON_MOVES) - gAIScriptPtr += 8; + sAIScriptPtr += 8; else - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 4); break; case 0: case 2: @@ -1536,9 +1536,9 @@ static void BattleAICmd_if_has_move(void) break; } if (i == 8) - gAIScriptPtr += 8; + sAIScriptPtr += 8; else - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 4); break; } } @@ -1546,9 +1546,9 @@ static void BattleAICmd_if_has_move(void) static void BattleAICmd_if_dont_have_move(void) { int i; - u16 *temp_ptr = (u16 *)(gAIScriptPtr + 2); + u16 *temp_ptr = (u16 *)(sAIScriptPtr + 2); - switch (gAIScriptPtr[1]) + switch (sAIScriptPtr[1]) { case 1: case 3: @@ -1558,9 +1558,9 @@ static void BattleAICmd_if_dont_have_move(void) break; } if (i != MAX_MON_MOVES) - gAIScriptPtr += 8; + sAIScriptPtr += 8; else - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 4); break; case 0: case 2: @@ -1570,9 +1570,9 @@ static void BattleAICmd_if_dont_have_move(void) break; } if (i != 8) - gAIScriptPtr += 8; + sAIScriptPtr += 8; else - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 4); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 4); break; } } @@ -1581,28 +1581,28 @@ static void BattleAICmd_if_move_effect(void) { int i; - switch (gAIScriptPtr[1]) + switch (sAIScriptPtr[1]) { case 1: case 3: for (i = 0; i < MAX_MON_MOVES; i++) { - if (gBattleMons[gBattlerAttacker].moves[i] != 0 && gBattleMoves[gBattleMons[gBattlerAttacker].moves[i]].effect == gAIScriptPtr[2]) + if (gBattleMons[gBattlerAttacker].moves[i] != 0 && gBattleMoves[gBattleMons[gBattlerAttacker].moves[i]].effect == sAIScriptPtr[2]) break; } if (i != MAX_MON_MOVES) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 3); else - gAIScriptPtr += 7; + sAIScriptPtr += 7; break; case 0: case 2: for (i = 0; i < 8; i++) { - if (gBattleMons[gBattlerAttacker].moves[i] != 0 && gBattleMoves[BATTLE_HISTORY->usedMoves[gBattlerTarget >> 1][i]].effect == gAIScriptPtr[2]) + if (gBattleMons[gBattlerAttacker].moves[i] != 0 && gBattleMoves[BATTLE_HISTORY->usedMoves[gBattlerTarget >> 1][i]].effect == sAIScriptPtr[2]) break; } - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 3); } } @@ -1610,28 +1610,28 @@ static void BattleAICmd_if_not_move_effect(void) { int i; - switch (gAIScriptPtr[1]) + switch (sAIScriptPtr[1]) { case 1: case 3: for (i = 0; i < MAX_MON_MOVES; i++) { - if (gBattleMons[gBattlerAttacker].moves[i] != 0 && gBattleMoves[gBattleMons[gBattlerAttacker].moves[i]].effect == gAIScriptPtr[2]) + if (gBattleMons[gBattlerAttacker].moves[i] != 0 && gBattleMoves[gBattleMons[gBattlerAttacker].moves[i]].effect == sAIScriptPtr[2]) break; } if (i != MAX_MON_MOVES) - gAIScriptPtr += 7; + sAIScriptPtr += 7; else - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 3); break; case 0: case 2: for (i = 0; i < 8; i++) { - if (BATTLE_HISTORY->usedMoves[gBattlerTarget >> 1][i] != 0 && gBattleMoves[BATTLE_HISTORY->usedMoves[gBattlerTarget >> 1][i]].effect == gAIScriptPtr[2]) + if (BATTLE_HISTORY->usedMoves[gBattlerTarget >> 1][i] != 0 && gBattleMoves[BATTLE_HISTORY->usedMoves[gBattlerTarget >> 1][i]].effect == sAIScriptPtr[2]) break; } - gAIScriptPtr += 7; + sAIScriptPtr += 7; } } @@ -1639,56 +1639,56 @@ static void BattleAICmd_if_last_move_did_damage(void) { u8 index; - if (gAIScriptPtr[1] == USER) + if (sAIScriptPtr[1] == USER) index = gBattlerAttacker; else index = gBattlerTarget; - if (gAIScriptPtr[2] == 0) + if (sAIScriptPtr[2] == 0) { if (gDisableStructs[index].disabledMove == MOVE_NONE) { - gAIScriptPtr += 7; + sAIScriptPtr += 7; return; } - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 3); return; } - else if (gAIScriptPtr[2] != 1) // ignore the macro if its not 0 or 1. + else if (sAIScriptPtr[2] != 1) // ignore the macro if its not 0 or 1. { - gAIScriptPtr += 7; + sAIScriptPtr += 7; return; } else if (gDisableStructs[index].encoredMove != MOVE_NONE) { - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 3); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 3); return; } - gAIScriptPtr += 7; + sAIScriptPtr += 7; } static void BattleAICmd_if_encored(void) { - switch (gAIScriptPtr[1]) + switch (sAIScriptPtr[1]) { case 0: // _08109348 if (gDisableStructs[gActiveBattler].disabledMove == AI_THINKING_STRUCT->moveConsidered) { - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 2); return; } - gAIScriptPtr += 6; + sAIScriptPtr += 6; return; case 1: // _08109370 if (gDisableStructs[gActiveBattler].encoredMove == AI_THINKING_STRUCT->moveConsidered) { - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 2); return; } - gAIScriptPtr += 6; + sAIScriptPtr += 6; return; default: - gAIScriptPtr += 6; + sAIScriptPtr += 6; return; } } @@ -1719,9 +1719,9 @@ static void BattleAICmd_frlg_safari(void) var = gBattleStruct->safariEscapeFactor; var *= 5; if ((u8)(Random() % 100) < var) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 1); else - gAIScriptPtr += 5; + sAIScriptPtr += 5; } static void BattleAICmd_watch(void) @@ -1734,7 +1734,7 @@ static void BattleAICmd_get_hold_effect(void) u8 index; u16 side; - if (gAIScriptPtr[1] == USER) + if (sAIScriptPtr[1] == USER) index = gBattlerAttacker; else index = gBattlerTarget; @@ -1747,104 +1747,104 @@ static void BattleAICmd_get_hold_effect(void) else AI_THINKING_STRUCT->funcResult = ItemId_GetHoldEffect(gBattleMons[index].item); - gAIScriptPtr += 2; + sAIScriptPtr += 2; } static void BattleAICmd_get_gender(void) { u8 index; - if (gAIScriptPtr[1] == USER) + if (sAIScriptPtr[1] == USER) index = gBattlerAttacker; else index = gBattlerTarget; AI_THINKING_STRUCT->funcResult = GetGenderFromSpeciesAndPersonality(gBattleMons[index].species, gBattleMons[index].personality); - gAIScriptPtr += 2; + sAIScriptPtr += 2; } static void BattleAICmd_is_first_turn(void) { u8 index; - if (gAIScriptPtr[1] == USER) + if (sAIScriptPtr[1] == USER) index = gBattlerAttacker; else index = gBattlerTarget; AI_THINKING_STRUCT->funcResult = gDisableStructs[index].isFirstTurn; - gAIScriptPtr += 2; + sAIScriptPtr += 2; } static void BattleAICmd_get_stockpile_count(void) { u8 index; - if (gAIScriptPtr[1] == USER) + if (sAIScriptPtr[1] == USER) index = gBattlerAttacker; else index = gBattlerTarget; AI_THINKING_STRUCT->funcResult = gDisableStructs[index].stockpileCounter; - gAIScriptPtr += 2; + sAIScriptPtr += 2; } static void BattleAICmd_is_double_battle(void) { AI_THINKING_STRUCT->funcResult = gBattleTypeFlags & BATTLE_TYPE_DOUBLE; - gAIScriptPtr += 1; + sAIScriptPtr += 1; } static void BattleAICmd_get_used_held_item(void) { u8 battlerId; - if (gAIScriptPtr[1] == AI_USER) + if (sAIScriptPtr[1] == AI_USER) battlerId = gBattlerAttacker; else battlerId = gBattlerTarget; // This is likely a leftover from Ruby's code and its ugly ewram access. AI_THINKING_STRUCT->funcResult = ((u8 *)gBattleStruct->usedHeldItems)[battlerId * 2]; - gAIScriptPtr += 2; + sAIScriptPtr += 2; } static void BattleAICmd_get_move_type_from_result(void) { AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->funcResult].type; - gAIScriptPtr += 1; + sAIScriptPtr += 1; } static void BattleAICmd_get_move_power_from_result(void) { AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->funcResult].power; - gAIScriptPtr += 1; + sAIScriptPtr += 1; } static void BattleAICmd_get_move_effect_from_result(void) { AI_THINKING_STRUCT->funcResult = gBattleMoves[AI_THINKING_STRUCT->funcResult].effect; - gAIScriptPtr += 1; + sAIScriptPtr += 1; } static void BattleAICmd_get_protect_count(void) { u8 index; - if (gAIScriptPtr[1] == USER) + if (sAIScriptPtr[1] == USER) index = gBattlerAttacker; else index = gBattlerTarget; AI_THINKING_STRUCT->funcResult = gDisableStructs[index].protectUses; - gAIScriptPtr += 2; + sAIScriptPtr += 2; } static void BattleAICmd_nullsub_52(void) @@ -1873,13 +1873,13 @@ static void BattleAICmd_nullsub_57(void) static void BattleAICmd_call(void) { - AIStackPushVar(gAIScriptPtr + 5); - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + AIStackPushVar(sAIScriptPtr + 5); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 1); } static void BattleAICmd_jump(void) { - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 1); } static void BattleAICmd_end(void) @@ -1890,31 +1890,31 @@ static void BattleAICmd_end(void) static void BattleAICmd_if_level_compare(void) { - switch (gAIScriptPtr[1]) + switch (sAIScriptPtr[1]) { case 0: // greater than if (gBattleMons[gBattlerAttacker].level > gBattleMons[gBattlerTarget].level) { - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 2); return; } - gAIScriptPtr += 6; + sAIScriptPtr += 6; return; case 1: // less than if (gBattleMons[gBattlerAttacker].level < gBattleMons[gBattlerTarget].level) { - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 2); return; } - gAIScriptPtr += 6; + sAIScriptPtr += 6; return; case 2: // equal if (gBattleMons[gBattlerAttacker].level == gBattleMons[gBattlerTarget].level) { - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 2); return; } - gAIScriptPtr += 6; + sAIScriptPtr += 6; return; } } @@ -1922,17 +1922,17 @@ static void BattleAICmd_if_level_compare(void) static void BattleAICmd_if_taunted(void) { if (gDisableStructs[gBattlerTarget].tauntTimer != 0) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 1); else - gAIScriptPtr += 5; + sAIScriptPtr += 5; } static void BattleAICmd_if_not_taunted(void) { if (gDisableStructs[gBattlerTarget].tauntTimer == 0) - gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); + sAIScriptPtr = T1_READ_PTR(sAIScriptPtr + 1); else - gAIScriptPtr += 5; + sAIScriptPtr += 5; } static void AIStackPushVar(const u8 *var) @@ -1943,7 +1943,7 @@ static void AIStackPushVar(const u8 *var) // unused static void AIStackPushVar_cursor(void) { - gBattleResources->AI_ScriptsStack->ptr[gBattleResources->AI_ScriptsStack->size++] = gAIScriptPtr; + gBattleResources->AI_ScriptsStack->ptr[gBattleResources->AI_ScriptsStack->size++] = sAIScriptPtr; } static bool8 AIStackPop(void) @@ -1951,7 +1951,7 @@ static bool8 AIStackPop(void) if (gBattleResources->AI_ScriptsStack->size != 0) { --gBattleResources->AI_ScriptsStack->size; - gAIScriptPtr = gBattleResources->AI_ScriptsStack->ptr[gBattleResources->AI_ScriptsStack->size]; + sAIScriptPtr = gBattleResources->AI_ScriptsStack->ptr[gBattleResources->AI_ScriptsStack->size]; return TRUE; } else 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/field_specials.c b/src/field_specials.c index 8d6014fba..57bf53830 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -1816,7 +1816,7 @@ static const struct { {MAP_GROUP(ROCKET_HIDEOUT_B1F), MAP_NUM(ROCKET_HIDEOUT_B1F), MAP_GROUP(CELADON_CITY_GAME_CORNER), MAP_NUM(CELADON_CITY_GAME_CORNER)}, {MAP_GROUP(SAFARI_ZONE_CENTER), MAP_NUM(SAFARI_ZONE_CENTER), MAP_GROUP(FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE), MAP_NUM(FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE)}, {MAP_GROUP(FUCHSIA_CITY_GYM), MAP_NUM(FUCHSIA_CITY_GYM), MAP_GROUP(FUCHSIA_CITY), MAP_NUM(FUCHSIA_CITY)}, - {MAP_GROUP(FUCHSIA_CITY_BUILDING1), MAP_NUM(FUCHSIA_CITY_BUILDING1), MAP_GROUP(FUCHSIA_CITY), MAP_NUM(FUCHSIA_CITY)}, + {MAP_GROUP(FUCHSIA_CITY_WARDENS_HOUSE), MAP_NUM(FUCHSIA_CITY_WARDENS_HOUSE), MAP_GROUP(FUCHSIA_CITY), MAP_NUM(FUCHSIA_CITY)}, {MAP_GROUP(SAFFRON_CITY_DOJO), MAP_NUM(SAFFRON_CITY_DOJO), MAP_GROUP(SAFFRON_CITY), MAP_NUM(SAFFRON_CITY)}, {MAP_GROUP(SAFFRON_CITY_GYM), MAP_NUM(SAFFRON_CITY_GYM), MAP_GROUP(SAFFRON_CITY), MAP_NUM(SAFFRON_CITY)}, {MAP_GROUP(SILPH_CO_1F), MAP_NUM(SILPH_CO_1F), MAP_GROUP(SAFFRON_CITY), MAP_NUM(SAFFRON_CITY)}, diff --git a/src/fldeff_rocksmash.c b/src/fldeff_rocksmash.c index 980b72d4f..2cca37f7a 100644 --- a/src/fldeff_rocksmash.c +++ b/src/fldeff_rocksmash.c @@ -25,6 +25,8 @@ static void sub_80C99A0(u8 taskId); static void sub_80C9A10(void); static void sub_80C9A60(void); +EWRAM_DATA struct MapPosition gPlayerFacingPosition = {}; + bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId) { u8 mapObjId; 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/main.c b/src/main.c index 336584ab3..b88326cda 100644 --- a/src/main.c +++ b/src/main.c @@ -115,7 +115,7 @@ void AgbMain() gSoftResetDisabled = FALSE; gHelpSystemEnabled = FALSE; - sub_80F50F4(); + SetNotInSaveFailedScreen(); AGBPrintInit(); @@ -186,7 +186,7 @@ static void InitMainCallbacks(void) static void CallCallbacks(void) { - if (!sub_80F5118() && !RunHelpSystemCallback()) + if (!RunSaveFailedScreen() && !RunHelpSystemCallback()) { if (gMain.callback1) gMain.callback1(); 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/safari_zone.c b/src/safari_zone.c index cb0a58586..65fb89bca 100644 --- a/src/safari_zone.c +++ b/src/safari_zone.c @@ -47,7 +47,7 @@ bool8 SafariZoneTakeStep(void) gSafariZoneStepCounter--; if (gSafariZoneStepCounter == 0) { - ScriptContext1_SetupScript(EventScript_SafariTimesUp); + ScriptContext1_SetupScript(SafariZone_EventScript_TimesUp); return TRUE; } return FALSE; @@ -55,7 +55,7 @@ bool8 SafariZoneTakeStep(void) void SafariZoneRetirePrompt(void) { - ScriptContext1_SetupScript(EventScript_SafariRetire); + ScriptContext1_SetupScript(SafariZone_EventScript_RetirePrompt); } void CB2_EndSafariBattle(void) @@ -66,14 +66,14 @@ void CB2_EndSafariBattle(void) } else if (gBattleOutcome == B_OUTCOME_NO_SAFARI_BALLS) { - ScriptContext2_RunNewScript(EventScript_SafariWarpOut); + ScriptContext2_RunNewScript(SafariZone_EventScript_OutOfBallsMidBattle); WarpIntoMap(); gFieldCallback = sub_807E3EC; SetMainCallback2(CB2_LoadMap); } else if (gBattleOutcome == B_OUTCOME_CAUGHT) { - ScriptContext1_SetupScript(EventScript_SafariOutOfBalls); + ScriptContext1_SetupScript(SafariZone_EventScript_OutOfBalls); ScriptContext1_Stop(); SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic); } diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c new file mode 100644 index 000000000..b6cce890a --- /dev/null +++ b/src/save_failed_screen.c @@ -0,0 +1,231 @@ +#include "global.h" +#include "decompress.h" +#include "dma3.h" +#include "gba/flash_internal.h" +#include "gpu_regs.h" +#include "help_system.h" +#include "m4a.h" +#include "save.h" +#include "save_failed_screen.h" +#include "strings.h" +#include "text.h" + +bool32 sIsInSaveFailedScreen; + +static EWRAM_DATA u16 sSaveType = SAVE_NORMAL; +static EWRAM_DATA u16 unused_203AB4E = 0; +static EWRAM_DATA u8 sSaveFailedScreenState = 0; + +static void BlankPalettes(void); +static void UpdateMapBufferWithText(void); +static void ClearMapBuffer(void); +static void PrintTextOnSaveFailedScreen(const u8 *a0); +static bool32 TryWipeDamagedSectors(void); +static bool32 WipeDamagedSectors(u32 damagedSectors); + +static const u16 sSaveFailedScreenPals[] = INCBIN_U16("graphics/interface/save_failed_screen.gbapal"); + +void SetNotInSaveFailedScreen(void) +{ + sIsInSaveFailedScreen = FALSE; +} + +void DoSaveFailedScreen(u8 saveType) +{ + sSaveType = saveType; + sIsInSaveFailedScreen = TRUE; +} + +bool32 RunSaveFailedScreen(void) +{ + switch (sSaveFailedScreenState) + { + case 0: + if (!sIsInSaveFailedScreen) + return FALSE; + m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 128); + SaveCallbacks(); + sSaveFailedScreenState = 1; + break; + case 1: + SaveMapTiles(); + SaveMapGPURegs(); + SaveMapTextColors(); + BlankPalettes(); + SetGpuReg(REG_OFFSET_DISPCNT, 0); + sSaveFailedScreenState = 2; + break; + case 2: + RequestDma3Fill(0, (void *)BG_CHAR_ADDR(3), BG_CHAR_SIZE, 0); + RequestDma3Copy(sSaveFailedScreenPals, (void *)PLTT, 0x20, 0); + sSaveFailedScreenState = 3; + break; + case 3: + ClearMapBuffer(); + PrintTextOnSaveFailedScreen(gText_SaveFailedScreen_CheckingBackupMemory); + UpdateMapBufferWithText(); + sSaveFailedScreenState = 4; + break; + case 4: + SetGpuReg(REG_OFFSET_BLDCNT, 0); + SetGpuReg(REG_OFFSET_BG0HOFS, 0); + SetGpuReg(REG_OFFSET_BG0VOFS, 0); + SetGpuReg(REG_OFFSET_BG0CNT, BGCNT_PRIORITY(0) | BGCNT_CHARBASE(3) | BGCNT_SCREENBASE(31)); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_BG0_ON); + sSaveFailedScreenState = 5; + break; + case 5: + if (TryWipeDamagedSectors() == TRUE) + { + gSaveSucceeded = SAVE_STATUS_OK; + PrintTextOnSaveFailedScreen(gText_SaveFailedScreen_SaveCompleted); + } + else + { + gSaveSucceeded = SAVE_STATUS_ERROR; + PrintTextOnSaveFailedScreen(gText_SaveFailedScreen_BackupMemoryDamaged); + } + sSaveFailedScreenState = 6; + break; + case 6: + if (JOY_NEW(A_BUTTON)) + sSaveFailedScreenState = 7; + break; + case 7: + SetGpuReg(REG_OFFSET_DISPCNT, 0); + RestoreMapTiles(); + BlankPalettes(); + sSaveFailedScreenState = 8; + break; + case 8: + m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 256); + RestoreMapTextColors(); + RestoreGPURegs(); + RestoreCallbacks(); + sIsInSaveFailedScreen = FALSE; + sSaveFailedScreenState = 0; + break; + } + return TRUE; +} + +static void BlankPalettes(void) +{ + int i; + for (i = 0; i < BG_PLTT_SIZE; i += sizeof(u16)) + { + *((u16 *)(BG_PLTT + i)) = RGB_BLACK; + *((u16 *)(OBJ_PLTT + i)) = RGB_BLACK; + } +} + +static void RequestDmaCopyFromScreenBuffer(void) +{ + RequestDma3Copy(gDecompressionBuffer + 0x3800, (void *)BG_SCREEN_ADDR(31), 0x500, 0); +} + +static void RequestDmaCopyFromCharBuffer(void) +{ + RequestDma3Copy(gDecompressionBuffer + 0x020, (void *)BG_CHAR_ADDR(3) + 0x20, 0x2300, 0); +} + +static void FillBgMapBufferRect(u16 baseBlock, u8 left, u8 top, u8 width, u8 height, u16 blockOffset) +{ + u16 i, j; + + for (i = top; i < top + height; i++) + { + for (j = left; j < left + width; j++) + { + *((u16 *)(gDecompressionBuffer + 0x3800 + 64 * i + 2 * j)) = baseBlock; + baseBlock += blockOffset; + } + } + RequestDmaCopyFromScreenBuffer(); +} + +static void UpdateMapBufferWithText(void) +{ + FillBgMapBufferRect(0x001, 1, 5, 28, 10, 0x001); +} + +static void ClearMapBuffer(void) +{ + FillBgMapBufferRect(0x000, 0, 0, 30, 20, 0x000); +} + +static void PrintTextOnSaveFailedScreen(const u8 *str) +{ + GenerateFontHalfRowLookupTable(TEXT_COLOR_DARK_GREY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GREY); + CpuFill16(PIXEL_FILL(1) | (PIXEL_FILL(1) << 8), gDecompressionBuffer + 0x20, 0x2300); + HelpSystemRenderText(2, gDecompressionBuffer + 0x20, str, 2, 2, 28, 10); + RequestDmaCopyFromCharBuffer(); +} + +static bool32 TryWipeDamagedSectors(void) +{ + int i = 0; + for (i = 0; gDamagedSaveSectors != 0 && i < 3; i++) + { + if (WipeDamagedSectors(gDamagedSaveSectors)) + return FALSE; + HandleSavingData(sSaveType); + } + if (gDamagedSaveSectors != 0) + return FALSE; + return TRUE; +} + +static bool16 VerifySectorWipe(u32 sector) +{ + u16 sector0 = sector; + u16 i; + u32 *saveDataBuffer = (void *)&gSaveDataBuffer; + ReadFlash(sector0, 0, saveDataBuffer, 0x1000); + for (i = 0; i < 0x1000 / sizeof(u32); i++, saveDataBuffer++) + { + if (*saveDataBuffer != 0) + return TRUE; + } + return FALSE; +} + +static bool32 WipeSector(u32 sector) +{ + bool32 result; + u16 i, j; + + i = 0; + while (i < 130) + { + for (j = 0; j < 0x1000; j++) + { + ProgramFlashByte(sector, j, 0); + } + result = VerifySectorWipe(sector); + i++; + if (!result) + break; + } + + return result; +} + +static bool32 WipeDamagedSectors(u32 damagedSectors) +{ + int i; + for (i = 0; i < 32; i++) + { + if (damagedSectors & (1 << i)) + { + if (!WipeSector(i)) + { + damagedSectors &= ~(1 << i); + } + } + } + if (damagedSectors == 0) + return FALSE; + else + return TRUE; +} 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_common.txt b/sym_common.txt index 9f39f9f2b..74e642bc2 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -1,13 +1,22 @@ + .align 2 .include "main.o" + .align 2 .include "bg.o" + .align 2 .include "text_printer.o" + .align 2 .include "window.o" + .align 2 .include "text.o" + .align 2 .include "sprite.o" + .align 2 .include "link.o" .align 4 .include "battle_main.o" + .align 2 .include "random.o" + .align 2 .include "load_save.o" .align 2 @@ -35,6 +44,7 @@ gUnknown_300502C: @ 300502C gUnknown_3005030: @ 3005030 .space 0x10 + .align 2 .include "fieldmap.o" .align 4 @@ -47,16 +57,21 @@ gUnknown_3005068: @ 3005068 gUnknown_300506C: @ 300506C .space 0x4 + .align 2 .include "scrcmd.o" + .align 2 gSelectedObjectEvent: @ 3005074 .space 0x4 gUnknown_3005078: @ 3005078 .space 0x4 + .align 2 .include "event_data.o" + .align 2 .include "sound.o" + .align 2 .include "task.o" @ what is this? @@ -71,10 +86,8 @@ gUnknown_3005078: @ 3005078 .include "save.o" .align 2 .include "battle_anim_special.o" - -gUnknown_3005430: @ 3005430 - .space 0x10 - + .align 2 + .include "save_failed_screen.o" .align 4 .include "link_rfu_2.o" .align 4 @@ -83,31 +96,23 @@ gUnknown_3005430: @ 3005430 .include "list_menu.o" .align 2 .include "quest_log.o" - -sNumQuestLogs: @ 3005E8C - .space 0x4 - -gUnknown_3005E90: @ 3005E90 - .space 0x4 - -gUnknown_3005E94: @ 3005E94 - .space 0x4 - .align 2 .include "party_menu.o" .align 2 .include "help_system_812B1E0.o" .align 4 .include "fame_checker.o" + .align 2 .include "help_system.o" .align 4 .include "mevent.o" - .align 4 .include "battle_controller_pokedude.o" .align 4 .include "berry_fix_program.o" + .align 2 .include "m4a.o" + .align 2 .include "agb_flash.o" .align 2 .include "librfu_stwi.o" diff --git a/sym_ewram.txt b/sym_ewram.txt index b4e4fc2c0..9ceae4842 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -16,7 +16,6 @@ .align 2 .include "src/link.o" .space 8 - .align 2 .include "src/battle_controllers.o" .align 2 @@ -144,6 +143,7 @@ gUnknown_20386A4: @ 20386A4 gUnknown_20386A8: @ 20386A8 .space 0x4 + .align 2 .include "src/battle_setup.o" .align 2 .include "src/wild_encounter.o" @@ -154,7 +154,6 @@ gFieldEffectArguments: @ 20386E0 .align 2 .include "src/scanline_effect.o" - .align 2 .include "src/option_menu.o" .align 2 @@ -268,14 +267,10 @@ gUnknown_203998C: @ 203998C .include "src/menu_helpers.o" .align 2 .include "src/region_map.o" - .align 2 -gAIScriptPtr: @ 2039A00 - .space 0x4 - -gPlayerFacingPosition: @ 2039A04 - .space 0x8 - + .include "src/battle_ai_script_commands.o" + .align 2 + .include "src/fldeff_rocksmash.o" .align 2 .include "src/field_specials.o" .align 2 @@ -310,15 +305,13 @@ gPlayerFacingPosition: @ 2039A04 .include "src/diploma.o" .align 2 -gUnknown_203AB4C: @ 203AB4C - .space 0x4 - -gUnknown_203AB50: @ 203AB50 - .space 0x4 + .include "src/save_failed_screen.o" + .align 2 gUnknown_203AB54: @ 203AB54 .space 0x4 + .align 2 .include "src/new_menu_helpers.o" .align 2 .include "src/box_party_pokemon_dropdown.o" @@ -342,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 @@ -460,6 +415,7 @@ gUnknown_203B0E8: @ 203B0E8 .include "src/oak_speech.o" .align 2 .include "src/tm_case.o" + .align 2 .include "src/menu_indicators.o" gUnknown_203B140: @ 203B140 @@ -506,13 +462,8 @@ gUnknown_203B170: @ 203B170 .include "src/berry_pouch.o" .align 2 .include "src/slot_machine.o" - -sLocationHistory: @ 203F3A8 - .space 0x6 - -sRoamerLocation: @ 203F3AE - .space 0x2 - + .align 2 + .include "src/roamer.o" .align 2 .include "src/mystery_gift_menu.o" .align 2 |