diff options
61 files changed, 8679 insertions, 9744 deletions
@@ -7,7 +7,7 @@ CC1 := tools/agbcc/bin/agbcc override CFLAGS += -mthumb-interwork -Wimplicit -Wparentheses -Wunused -Werror -O2 -fhex-asm CPP := $(DEVKITARM)/bin/arm-none-eabi-cpp -CPPFLAGS := -I tools/agbcc/include -iquote include -nostdinc -undef -Werror +CPPFLAGS := -I tools/agbcc/include -iquote include -nostdinc -undef -Werror -Wno-trigraphs LD := $(DEVKITARM)/bin/arm-none-eabi-ld diff --git a/asm/fldeff_80C5CD4.s b/asm/fldeff_80C5CD4.s deleted file mode 100644 index 011ce6427..000000000 --- a/asm/fldeff_80C5CD4.s +++ /dev/null @@ -1,2766 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_80C5CD4 -sub_80C5CD4: @ 80C5CD4 - push {r4-r7,lr} - sub sp, 0x28 - adds r7, r0, 0 - ldr r0, _080C5D64 @ =gUnknown_083D1898 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x18] - str r1, [sp, 0x1C] - ldr r0, _080C5D68 @ =gUnknown_083D18A0 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x20] - str r1, [sp, 0x24] - mov r1, sp - ldr r0, _080C5D6C @ =gSpriteTemplate_83D18A8 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldrh r3, [r7] - lsls r2, r3, 16 - add r0, sp, 0x18 - ldrh r1, [r0, 0x4] - orrs r1, r2 - str r1, [r0, 0x4] - mov r1, sp - movs r6, 0 - strh r3, [r1] - ldrh r2, [r7, 0x2] - ldr r5, _080C5D70 @ =0xffff0000 - add r4, sp, 0x20 - ldr r1, [r4, 0x4] - ands r1, r5 - orrs r1, r2 - str r1, [r4, 0x4] - mov r1, sp - strh r2, [r1, 0x2] - bl LoadSpriteSheet - adds r0, r4, 0 - bl LoadSpritePalette - movs r0, 0x1 - strh r0, [r7, 0xC] - strh r6, [r7, 0xA] - strh r6, [r7, 0x8] - ldrh r0, [r7, 0x2] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x80 - lsls r1, 9 - lsls r1, r0 - bics r5, r1 - str r5, [r7, 0x10] - ldrh r0, [r7, 0x4] - cmp r0, 0 - bne _080C5D4E - movs r0, 0x10 - strh r0, [r7, 0x4] -_080C5D4E: - ldrh r0, [r7, 0x6] - cmp r0, 0 - bne _080C5D58 - movs r0, 0x14 - strh r0, [r7, 0x6] -_080C5D58: - ldr r0, _080C5D74 @ =gUnknown_020387EC - str r7, [r0] - movs r4, 0 - ldr r5, _080C5D78 @ =gSprites - b _080C5D94 - .align 2, 0 -_080C5D64: .4byte gUnknown_083D1898 -_080C5D68: .4byte gUnknown_083D18A0 -_080C5D6C: .4byte gSpriteTemplate_83D18A8 -_080C5D70: .4byte 0xffff0000 -_080C5D74: .4byte gUnknown_020387EC -_080C5D78: .4byte gSprites -_080C5D7C: - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r1, [r7, 0x4] - cmp r4, 0x3 - bhi _080C5D8C - negs r1, r1 -_080C5D8C: - strh r1, [r0, 0x2E] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_080C5D94: - cmp r4, 0x7 - bhi _080C5DB2 - lsls r1, r4, 5 - adds r1, 0x8 - lsls r1, 16 - asrs r1, 16 - mov r0, sp - movs r2, 0x50 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - bne _080C5D7C -_080C5DB2: - ldr r1, _080C5DC8 @ =REG_BLDCNT - movs r0, 0xBF - strh r0, [r1] - adds r1, 0x4 - movs r0, 0x10 - strh r0, [r1] - add sp, 0x28 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C5DC8: .4byte REG_BLDCNT - thumb_func_end sub_80C5CD4 - - thumb_func_start sub_80C5DCC -sub_80C5DCC: @ 80C5DCC - push {r4,lr} - ldr r4, _080C5E10 @ =gUnknown_020387EC - ldr r1, [r4] - ldrh r0, [r1, 0x8] - cmp r0, 0 - bne _080C5DF0 - ldr r0, [r1, 0x10] - ldr r2, _080C5E14 @ =0x0000ffff - movs r1, 0x10 - bl BlendPalettes - ldr r0, _080C5E18 @ =sub_80C603C - bl sub_80C61B0 - ldr r1, [r4] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_080C5DF0: - ldr r1, [r4] - ldrh r0, [r1, 0xA] - cmp r0, 0x7 - bls _080C5E0A - ldrh r0, [r1, 0x6] - ldrh r2, [r1, 0xC] - adds r0, r2 - movs r2, 0 - strh r0, [r1, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4F - bgt _080C5E1C -_080C5E0A: - movs r0, 0 - b _080C5E2E - .align 2, 0 -_080C5E10: .4byte gUnknown_020387EC -_080C5E14: .4byte 0x0000ffff -_080C5E18: .4byte sub_80C603C -_080C5E1C: - movs r0, 0x50 - strh r0, [r1, 0xC] - ldr r0, _080C5E34 @ =REG_BLDCNT - strh r2, [r0] - adds r0, 0x4 - strh r2, [r0] - bl ClearGpuRegBits - movs r0, 0x1 -_080C5E2E: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080C5E34: .4byte REG_BLDCNT - thumb_func_end sub_80C5DCC - - thumb_func_start sub_80C5E38 -sub_80C5E38: @ 80C5E38 - push {r4-r7,lr} - sub sp, 0x28 - adds r7, r0, 0 - ldr r0, _080C5EC8 @ =gUnknown_083D1898 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x18] - str r1, [sp, 0x1C] - ldr r0, _080C5ECC @ =gUnknown_083D18A0 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x20] - str r1, [sp, 0x24] - mov r1, sp - ldr r0, _080C5ED0 @ =gSpriteTemplate_83D18C0 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldrh r3, [r7] - lsls r2, r3, 16 - add r0, sp, 0x18 - ldrh r1, [r0, 0x4] - orrs r1, r2 - str r1, [r0, 0x4] - mov r1, sp - movs r6, 0 - strh r3, [r1] - ldrh r2, [r7, 0x2] - ldr r5, _080C5ED4 @ =0xffff0000 - add r4, sp, 0x20 - ldr r1, [r4, 0x4] - ands r1, r5 - orrs r1, r2 - str r1, [r4, 0x4] - mov r1, sp - strh r2, [r1, 0x2] - bl LoadSpriteSheet - adds r0, r4, 0 - bl LoadSpritePalette - movs r0, 0x50 - strh r0, [r7, 0xC] - strh r6, [r7, 0x8] - strh r6, [r7, 0xA] - ldrh r0, [r7, 0x2] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x80 - lsls r1, 9 - lsls r1, r0 - bics r5, r1 - str r5, [r7, 0x10] - ldrh r0, [r7, 0x4] - cmp r0, 0 - bne _080C5EB2 - movs r0, 0x10 - strh r0, [r7, 0x4] -_080C5EB2: - ldrh r0, [r7, 0x6] - cmp r0, 0 - bne _080C5EBC - movs r0, 0x14 - strh r0, [r7, 0x6] -_080C5EBC: - ldr r0, _080C5ED8 @ =gUnknown_020387EC - str r7, [r0] - movs r5, 0 - ldr r6, _080C5EDC @ =gSprites - b _080C5F4A - .align 2, 0 -_080C5EC8: .4byte gUnknown_083D1898 -_080C5ECC: .4byte gUnknown_083D18A0 -_080C5ED0: .4byte gSpriteTemplate_83D18C0 -_080C5ED4: .4byte 0xffff0000 -_080C5ED8: .4byte gUnknown_020387EC -_080C5EDC: .4byte gSprites -_080C5EE0: - lsls r2, r3, 4 - adds r1, r2, r3 - lsls r1, 2 - adds r1, r6 - ldrh r0, [r7, 0x4] - strh r0, [r1, 0x2E] - movs r0, 0x1 - strh r0, [r1, 0x30] - ldr r1, _080C5EF4 @ =gSprites - b _080C5F2A - .align 2, 0 -_080C5EF4: .4byte gSprites -_080C5EF8: - lsls r1, r5, 21 - movs r0, 0x80 - lsls r0, 16 - adds r1, r0 - asrs r1, 16 - mov r0, sp - movs r2, 0x50 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - beq _080C5F6E - lsls r2, r3, 4 - adds r1, r2, r3 - lsls r1, 2 - adds r1, r6 - ldrh r0, [r7, 0x4] - negs r0, r0 - strh r0, [r1, 0x2E] - ldr r0, _080C5F88 @ =0x0000ffff - strh r0, [r1, 0x30] - ldr r1, _080C5F8C @ =gSprites - lsls r4, r5, 5 -_080C5F2A: - adds r0, r2, r3 - lsls r0, 2 - adds r0, r1 - adds r1, r4, 0 - adds r1, 0x8 - movs r2, 0 - strh r1, [r0, 0x32] - strh r2, [r0, 0x36] - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_080C5F4A: - cmp r5, 0x7 - bhi _080C5F6E - cmp r5, 0x3 - bhi _080C5EF8 - lsls r4, r5, 5 - adds r1, r4, 0 - subs r1, 0x70 - lsls r1, 16 - asrs r1, 16 - mov r0, sp - movs r2, 0x50 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x40 - bne _080C5EE0 -_080C5F6E: - ldr r1, _080C5F90 @ =REG_BLDCNT - movs r0, 0xFF - strh r0, [r1] - adds r1, 0x4 - movs r0, 0x10 - strh r0, [r1] - ldr r0, _080C5F94 @ =sub_80C6078 - bl sub_80C61B0 - add sp, 0x28 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C5F88: .4byte 0x0000ffff -_080C5F8C: .4byte gSprites -_080C5F90: .4byte REG_BLDCNT -_080C5F94: .4byte sub_80C6078 - thumb_func_end sub_80C5E38 - - thumb_func_start sub_80C5F98 -sub_80C5F98: @ 80C5F98 - push {r4,lr} - ldr r4, _080C5FB0 @ =gUnknown_020387EC - ldr r2, [r4] - ldrh r0, [r2, 0x8] - cmp r0, 0x1 - beq _080C5FEC - cmp r0, 0x1 - bgt _080C5FB4 - cmp r0, 0 - beq _080C5FBA - b _080C602C - .align 2, 0 -_080C5FB0: .4byte gUnknown_020387EC -_080C5FB4: - cmp r0, 0x2 - beq _080C6008 - b _080C602C -_080C5FBA: - ldrh r0, [r2, 0xC] - ldrh r1, [r2, 0x6] - subs r0, r1 - strh r0, [r2, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bgt _080C6034 - ldr r0, [r2, 0x10] - ldr r2, _080C5FE4 @ =0x0000ffff - movs r1, 0x10 - bl BlendPalettes - ldr r0, _080C5FE8 @ =sub_80C603C - bl SetHBlankCallback - ldr r1, [r4] - movs r0, 0x1 - strh r0, [r1, 0xC] - b _080C6000 - .align 2, 0 -_080C5FE4: .4byte 0x0000ffff -_080C5FE8: .4byte sub_80C603C -_080C5FEC: - ldrh r0, [r2, 0xA] - cmp r0, 0x8 - bne _080C6034 - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - ldr r1, [r4] -_080C6000: - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _080C6034 -_080C6008: - ldr r0, _080C6030 @ =REG_BLDCNT - movs r1, 0 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - ldrh r0, [r2] - bl FreeSpriteTilesByTag - ldr r0, [r4] - ldrh r0, [r0, 0x2] - bl FreeSpritePaletteByTag - bl ClearGpuRegBits - ldr r1, [r4] - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_080C602C: - movs r0, 0x1 - b _080C6036 - .align 2, 0 -_080C6030: .4byte REG_BLDCNT -_080C6034: - movs r0, 0 -_080C6036: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80C5F98 - - thumb_func_start sub_80C603C -sub_80C603C: @ 80C603C - push {lr} - sub sp, 0x4 - mov r2, sp - ldr r0, _080C6060 @ =REG_VCOUNT - ldrh r1, [r0] - movs r3, 0xFF - adds r0, r3, 0 - ands r0, r1 - strh r0, [r2] - mov r0, sp - ldrh r0, [r0] - cmp r0, 0x50 - bne _080C6068 - ldr r1, _080C6064 @ =REG_BLDCNT - movs r0, 0x8F - strh r0, [r1] - b _080C606C - .align 2, 0 -_080C6060: .4byte REG_VCOUNT -_080C6064: .4byte REG_BLDCNT -_080C6068: - ldr r0, _080C6074 @ =REG_BLDCNT - strh r3, [r0] -_080C606C: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080C6074: .4byte REG_BLDCNT - thumb_func_end sub_80C603C - - thumb_func_start sub_80C6078 -sub_80C6078: @ 80C6078 - push {lr} - sub sp, 0x4 - mov r2, sp - ldr r0, _080C60B0 @ =REG_VCOUNT - ldrh r1, [r0] - movs r0, 0xFF - ands r0, r1 - strh r0, [r2] - mov r0, sp - ldrh r1, [r0] - ldr r0, _080C60B4 @ =gUnknown_020387EC - ldr r0, [r0] - movs r3, 0xC - ldrsh r2, [r0, r3] - movs r0, 0x50 - subs r0, r2 - cmp r1, r0 - ble _080C60BC - mov r0, sp - ldrh r1, [r0] - adds r0, r2, 0 - adds r0, 0x50 - cmp r1, r0 - bge _080C60BC - ldr r1, _080C60B8 @ =REG_BLDY - movs r0, 0 - b _080C60C0 - .align 2, 0 -_080C60B0: .4byte REG_VCOUNT -_080C60B4: .4byte gUnknown_020387EC -_080C60B8: .4byte REG_BLDY -_080C60BC: - ldr r1, _080C60C8 @ =REG_BLDY - movs r0, 0x10 -_080C60C0: - strh r0, [r1] - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080C60C8: .4byte REG_BLDY - thumb_func_end sub_80C6078 - - thumb_func_start sub_80C60CC -sub_80C60CC: @ 80C60CC - push {r4,lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x20] - adds r0, r1 - strh r0, [r2, 0x20] - adds r0, 0x8 - lsls r0, 16 - movs r1, 0x80 - lsls r1, 17 - cmp r0, r1 - bls _080C611C - adds r0, r2, 0 - bl DestroySprite - ldr r4, _080C6124 @ =gUnknown_020387EC - ldr r1, [r4] - ldrh r0, [r1, 0xA] - adds r0, 0x1 - strh r0, [r1, 0xA] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x8 - bne _080C611C - ldrh r0, [r1] - bl FreeSpriteTilesByTag - ldr r0, [r4] - ldrh r0, [r0, 0x2] - bl FreeSpritePaletteByTag - ldr r0, [r4] - ldr r0, [r0, 0x10] - ldr r2, _080C6128 @ =0x0000ffff - movs r1, 0 - bl BlendPalettes - ldr r0, _080C612C @ =sub_80C6078 - bl SetHBlankCallback -_080C611C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C6124: .4byte gUnknown_020387EC -_080C6128: .4byte 0x0000ffff -_080C612C: .4byte sub_80C6078 - thumb_func_end sub_80C60CC - - thumb_func_start sub_80C6130 -sub_80C6130: @ 80C6130 - push {r4,r5,lr} - adds r2, r0, 0 - movs r1, 0x36 - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _080C61AA - ldr r1, _080C6184 @ =gUnknown_020387EC - ldr r0, [r1] - movs r3, 0xC - ldrsh r4, [r0, r3] - adds r5, r1, 0 - cmp r4, 0x1 - bne _080C61AA - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x20] - adds r0, r1 - strh r0, [r2, 0x20] - adds r0, 0xF - lsls r0, 16 - movs r1, 0x87 - lsls r1, 17 - cmp r0, r1 - bhi _080C616C - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] -_080C616C: - movs r3, 0x30 - ldrsh r0, [r2, r3] - cmp r0, 0 - ble _080C6188 - movs r0, 0x20 - ldrsh r1, [r2, r0] - movs r3, 0x32 - ldrsh r0, [r2, r3] - cmp r1, r0 - blt _080C6196 - b _080C6194 - .align 2, 0 -_080C6184: .4byte gUnknown_020387EC -_080C6188: - movs r0, 0x20 - ldrsh r1, [r2, r0] - movs r3, 0x32 - ldrsh r0, [r2, r3] - cmp r1, r0 - bgt _080C6196 -_080C6194: - strh r4, [r2, 0x36] -_080C6196: - movs r1, 0x36 - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _080C61AA - ldr r0, [r5] - ldrh r1, [r0, 0xA] - adds r1, 0x1 - strh r1, [r0, 0xA] - ldrh r0, [r2, 0x32] - strh r0, [r2, 0x20] -_080C61AA: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80C6130 - - thumb_func_start sub_80C61B0 -sub_80C61B0: @ 80C61B0 - push {r4-r6,lr} - ldr r2, _080C61F0 @ =INTR_CHECK - ldrh r1, [r2] - movs r5, 0x2 - orrs r1, r5 - strh r1, [r2] - ldr r3, _080C61F4 @ =REG_DISPSTAT - ldrh r1, [r3] - movs r2, 0x10 - orrs r1, r2 - strh r1, [r3] - ldr r4, _080C61F8 @ =0x04000208 - ldrh r2, [r4] - movs r6, 0 - strh r6, [r4] - ldr r3, _080C61FC @ =0x04000200 - ldrh r1, [r3] - orrs r1, r5 - strh r1, [r3] - strh r2, [r4] - ldr r2, _080C6200 @ =gMain - ldrh r1, [r2, 0x1C] - orrs r1, r5 - ldrh r3, [r2, 0x1C] - orrs r1, r6 - strh r1, [r2, 0x1C] - bl SetHBlankCallback - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C61F0: .4byte INTR_CHECK -_080C61F4: .4byte REG_DISPSTAT -_080C61F8: .4byte 0x04000208 -_080C61FC: .4byte 0x04000200 -_080C6200: .4byte gMain - thumb_func_end sub_80C61B0 - - thumb_func_start ClearGpuRegBits -ClearGpuRegBits: @ 80C6204 - push {r4,r5,lr} - ldr r3, _080C6248 @ =INTR_CHECK - ldrh r1, [r3] - ldr r2, _080C624C @ =0x0000fffd - adds r0, r2, 0 - ands r0, r1 - strh r0, [r3] - ldr r3, _080C6250 @ =REG_DISPSTAT - ldrh r1, [r3] - ldr r0, _080C6254 @ =0x0000ffef - ands r0, r1 - strh r0, [r3] - ldr r4, _080C6258 @ =0x04000208 - ldrh r3, [r4] - movs r0, 0 - strh r0, [r4] - ldr r5, _080C625C @ =0x04000200 - ldrh r1, [r5] - adds r0, r2, 0 - ands r0, r1 - strh r0, [r5] - strh r3, [r4] - ldr r0, _080C6260 @ =gMain - ldrh r1, [r0, 0x1C] - ands r2, r1 - ldrh r1, [r0, 0x1C] - strh r2, [r0, 0x1C] - movs r0, 0 - bl SetHBlankCallback - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C6248: .4byte INTR_CHECK -_080C624C: .4byte 0x0000fffd -_080C6250: .4byte REG_DISPSTAT -_080C6254: .4byte 0x0000ffef -_080C6258: .4byte 0x04000208 -_080C625C: .4byte 0x04000200 -_080C6260: .4byte gMain - thumb_func_end ClearGpuRegBits - - thumb_func_start sub_80C6264 -sub_80C6264: @ 80C6264 - push {lr} - ldr r0, _080C6278 @ =gUnknown_0203923C - ldr r1, _080C627C @ =gMapHeader - ldr r1, [r1, 0x4] - bl sub_80BBFD8 - bl sub_80BB5E4 - pop {r0} - bx r0 - .align 2, 0 -_080C6278: .4byte gUnknown_0203923C -_080C627C: .4byte gMapHeader - thumb_func_end sub_80C6264 - - thumb_func_start sub_80C6280 -sub_80C6280: @ 80C6280 - push {lr} - ldr r1, _080C6294 @ =gFieldEffectArguments - ldr r0, [r1, 0x4] - cmp r0, 0x2 - beq _080C62AA - cmp r0, 0x2 - bgt _080C6298 - cmp r0, 0x1 - beq _080C62A2 - b _080C62BE - .align 2, 0 -_080C6294: .4byte gFieldEffectArguments -_080C6298: - cmp r0, 0x3 - beq _080C62AE - cmp r0, 0x4 - beq _080C62B8 - b _080C62BE -_080C62A2: - movs r0, 0x8 - str r0, [r1, 0x14] - movs r0, 0x28 - b _080C62BC -_080C62AA: - movs r0, 0x8 - b _080C62BA -_080C62AE: - movs r0, 0x8 - negs r0, r0 - str r0, [r1, 0x14] - movs r0, 0x18 - b _080C62BC -_080C62B8: - movs r0, 0x18 -_080C62BA: - str r0, [r1, 0x14] -_080C62BC: - str r0, [r1, 0x18] -_080C62BE: - pop {r0} - bx r0 - thumb_func_end sub_80C6280 - - thumb_func_start SetUpFieldMove_SecretPower -SetUpFieldMove_SecretPower: @ 80C62C4 - push {r4,lr} - bl sub_80BB63C - ldr r0, _080C6318 @ =gScriptResult - ldrh r0, [r0] - cmp r0, 0x1 - beq _080C636E - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _080C636E - ldr r4, _080C631C @ =gUnknown_0203923C - adds r1, r4, 0x2 - adds r0, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl MetatileBehavior_IsSecretBaseCave - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C6330 - bl sub_80C6264 - ldr r1, _080C6320 @ =gFieldCallback - ldr r0, _080C6324 @ =FieldCallback_Teleport - str r0, [r1] - ldr r1, _080C6328 @ =gUnknown_03005CE4 - ldr r0, _080C632C @ =sub_80C639C - b _080C6380 - .align 2, 0 -_080C6318: .4byte gScriptResult -_080C631C: .4byte gUnknown_0203923C -_080C6320: .4byte gFieldCallback -_080C6324: .4byte FieldCallback_Teleport -_080C6328: .4byte gUnknown_03005CE4 -_080C632C: .4byte sub_80C639C -_080C6330: - adds r0, r4, 0 - bl MetatileBehavior_IsSecretBaseTree - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C6360 - bl sub_80C6264 - ldr r1, _080C6350 @ =gFieldCallback - ldr r0, _080C6354 @ =FieldCallback_Teleport - str r0, [r1] - ldr r1, _080C6358 @ =gUnknown_03005CE4 - ldr r0, _080C635C @ =sub_80C64A8 - b _080C6380 - .align 2, 0 -_080C6350: .4byte gFieldCallback -_080C6354: .4byte FieldCallback_Teleport -_080C6358: .4byte gUnknown_03005CE4 -_080C635C: .4byte sub_80C64A8 -_080C6360: - adds r0, r4, 0 - bl MetatileBehavior_IsSecretBaseShrub - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080C6372 -_080C636E: - movs r0, 0 - b _080C6384 -_080C6372: - bl sub_80C6264 - ldr r1, _080C638C @ =gFieldCallback - ldr r0, _080C6390 @ =FieldCallback_Teleport - str r0, [r1] - ldr r1, _080C6394 @ =gUnknown_03005CE4 - ldr r0, _080C6398 @ =sub_80C660C -_080C6380: - str r0, [r1] - movs r0, 0x1 -_080C6384: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080C638C: .4byte gFieldCallback -_080C6390: .4byte FieldCallback_Teleport -_080C6394: .4byte gUnknown_03005CE4 -_080C6398: .4byte sub_80C660C - thumb_func_end SetUpFieldMove_SecretPower - - thumb_func_start sub_80C639C -sub_80C639C: @ 80C639C - push {lr} - ldr r1, _080C63B0 @ =gFieldEffectArguments - ldr r0, _080C63B4 @ =gLastFieldPokeMenuOpened - ldrb r0, [r0] - str r0, [r1] - ldr r0, _080C63B8 @ =gUnknown_081A2CE6 - bl ScriptContext1_SetupScript - pop {r0} - bx r0 - .align 2, 0 -_080C63B0: .4byte gFieldEffectArguments -_080C63B4: .4byte gLastFieldPokeMenuOpened -_080C63B8: .4byte gUnknown_081A2CE6 - thumb_func_end sub_80C639C - - thumb_func_start FldEff_UseSecretPowerCave -FldEff_UseSecretPowerCave: @ 80C63BC - push {lr} - bl oei_task_add - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C63E0 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _080C63E4 @ =sub_80C63E8 - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080C63E0: .4byte gTasks -_080C63E4: .4byte sub_80C63E8 - thumb_func_end FldEff_UseSecretPowerCave - - thumb_func_start sub_80C63E8 -sub_80C63E8: @ 80C63E8 - push {lr} - movs r0, 0xB - bl FieldEffectActiveListRemove - movs r0, 0x37 - bl FieldEffectStart - pop {r0} - bx r0 - thumb_func_end sub_80C63E8 - - thumb_func_start FldEff_SecretPowerCave -FldEff_SecretPowerCave: @ 80C63FC - push {r4,lr} - bl sub_80C6280 - ldr r0, _080C643C @ =gSpriteTemplate_83D2614 - ldr r3, _080C6440 @ =gSprites - ldr r1, _080C6444 @ =gPlayerAvatar - ldrb r1, [r1, 0x4] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r3 - ldrh r1, [r2, 0x2] - lsls r1, 23 - lsrs r1, 23 - ldr r4, _080C6448 @ =gFieldEffectArguments - ldr r3, [r4, 0x14] - adds r1, r3 - lsls r1, 16 - asrs r1, 16 - ldrb r2, [r2] - ldr r3, [r4, 0x18] - adds r2, r3 - lsls r2, 16 - asrs r2, 16 - movs r3, 0x94 - bl CreateSprite - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080C643C: .4byte gSpriteTemplate_83D2614 -_080C6440: .4byte gSprites -_080C6444: .4byte gPlayerAvatar -_080C6448: .4byte gFieldEffectArguments - thumb_func_end FldEff_SecretPowerCave - - thumb_func_start sub_80C644C -sub_80C644C: @ 80C644C - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x83 - bl PlaySE - movs r0, 0 - strh r0, [r4, 0x2E] - ldr r0, _080C6464 @ =sub_80C6468 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C6464: .4byte sub_80C6468 - thumb_func_end sub_80C644C - - thumb_func_start sub_80C6468 -sub_80C6468: @ 80C6468 - push {lr} - adds r1, r0, 0 - ldrh r2, [r1, 0x2E] - movs r3, 0x2E - ldrsh r0, [r1, r3] - cmp r0, 0x27 - bgt _080C6488 - adds r0, r2, 0x1 - strh r0, [r1, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bne _080C6490 - bl sub_80BB800 - b _080C6490 -_080C6488: - movs r0, 0 - strh r0, [r1, 0x2E] - ldr r0, _080C6494 @ =sub_80C6498 - str r0, [r1, 0x1C] -_080C6490: - pop {r0} - bx r0 - .align 2, 0 -_080C6494: .4byte sub_80C6498 - thumb_func_end sub_80C6468 - - thumb_func_start sub_80C6498 -sub_80C6498: @ 80C6498 - push {lr} - movs r1, 0x37 - bl FieldEffectStop - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end sub_80C6498 - - thumb_func_start sub_80C64A8 -sub_80C64A8: @ 80C64A8 - push {lr} - ldr r1, _080C64BC @ =gFieldEffectArguments - ldr r0, _080C64C0 @ =gLastFieldPokeMenuOpened - ldrb r0, [r0] - str r0, [r1] - ldr r0, _080C64C4 @ =gUnknown_081A2D3E - bl ScriptContext1_SetupScript - pop {r0} - bx r0 - .align 2, 0 -_080C64BC: .4byte gFieldEffectArguments -_080C64C0: .4byte gLastFieldPokeMenuOpened -_080C64C4: .4byte gUnknown_081A2D3E - thumb_func_end sub_80C64A8 - - thumb_func_start FldEff_UseSecretPowerTree -FldEff_UseSecretPowerTree: @ 80C64C8 - push {lr} - bl oei_task_add - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C64EC @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _080C64F0 @ =sub_80C64F4 - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080C64EC: .4byte gTasks -_080C64F0: .4byte sub_80C64F4 - thumb_func_end FldEff_UseSecretPowerTree - - thumb_func_start sub_80C64F4 -sub_80C64F4: @ 80C64F4 - push {lr} - movs r0, 0x1A - bl FieldEffectActiveListRemove - movs r0, 0x38 - bl FieldEffectStart - pop {r0} - bx r0 - thumb_func_end sub_80C64F4 - - thumb_func_start FldEff_SecretPowerTree -FldEff_SecretPowerTree: @ 80C6508 - push {r4,lr} - ldr r1, _080C6580 @ =gUnknown_0203923C - movs r2, 0 - ldrsh r0, [r1, r2] - movs r2, 0x2 - ldrsh r1, [r1, r2] - bl MapGridGetMetatileBehaviorAt - adds r2, r0, 0 - ldr r1, _080C6584 @ =0x00000fff - adds r0, r1, 0 - ands r2, r0 - cmp r2, 0x96 - bne _080C652A - ldr r1, _080C6588 @ =gFieldEffectArguments - movs r0, 0 - str r0, [r1, 0x1C] -_080C652A: - cmp r2, 0x9C - bne _080C6534 - ldr r1, _080C6588 @ =gFieldEffectArguments - movs r0, 0x2 - str r0, [r1, 0x1C] -_080C6534: - bl sub_80C6280 - ldr r0, _080C658C @ =gSpriteTemplate_83D262C - ldr r3, _080C6590 @ =gSprites - ldr r1, _080C6594 @ =gPlayerAvatar - ldrb r1, [r1, 0x4] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r3 - ldrh r1, [r2, 0x2] - lsls r1, 23 - lsrs r1, 23 - ldr r4, _080C6588 @ =gFieldEffectArguments - ldr r3, [r4, 0x14] - adds r1, r3 - lsls r1, 16 - asrs r1, 16 - ldrb r2, [r2] - ldr r3, [r4, 0x18] - adds r2, r3 - lsls r2, 16 - asrs r2, 16 - movs r3, 0x94 - bl CreateSprite - ldr r0, [r4, 0x1C] - cmp r0, 0x1 - beq _080C6572 - cmp r0, 0x3 - bne _080C6576 -_080C6572: - bl sub_80BB800 -_080C6576: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080C6580: .4byte gUnknown_0203923C -_080C6584: .4byte 0x00000fff -_080C6588: .4byte gFieldEffectArguments -_080C658C: .4byte gSpriteTemplate_83D262C -_080C6590: .4byte gSprites -_080C6594: .4byte gPlayerAvatar - thumb_func_end FldEff_SecretPowerTree - - thumb_func_start sub_80C6598 -sub_80C6598: @ 80C6598 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x9B - bl PlaySE - ldr r0, _080C65BC @ =gFieldEffectArguments - ldr r1, [r0, 0x1C] - adds r2, r4, 0 - adds r2, 0x2A - movs r0, 0 - strb r1, [r2] - strh r0, [r4, 0x2E] - ldr r0, _080C65C0 @ =sub_80C65C4 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C65BC: .4byte gFieldEffectArguments -_080C65C0: .4byte sub_80C65C4 - thumb_func_end sub_80C6598 - - thumb_func_start sub_80C65C4 -sub_80C65C4: @ 80C65C4 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x27 - ble _080C65EE - ldr r0, _080C65F4 @ =gFieldEffectArguments - ldr r0, [r0, 0x1C] - cmp r0, 0 - beq _080C65E2 - cmp r0, 0x2 - bne _080C65E6 -_080C65E2: - bl sub_80BB800 -_080C65E6: - movs r0, 0 - strh r0, [r4, 0x2E] - ldr r0, _080C65F8 @ =sub_80C65FC - str r0, [r4, 0x1C] -_080C65EE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C65F4: .4byte gFieldEffectArguments -_080C65F8: .4byte sub_80C65FC - thumb_func_end sub_80C65C4 - - thumb_func_start sub_80C65FC -sub_80C65FC: @ 80C65FC - push {lr} - movs r1, 0x38 - bl FieldEffectStop - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end sub_80C65FC - - thumb_func_start sub_80C660C -sub_80C660C: @ 80C660C - push {lr} - ldr r1, _080C6620 @ =gFieldEffectArguments - ldr r0, _080C6624 @ =gLastFieldPokeMenuOpened - ldrb r0, [r0] - str r0, [r1] - ldr r0, _080C6628 @ =gUnknown_081A2D96 - bl ScriptContext1_SetupScript - pop {r0} - bx r0 - .align 2, 0 -_080C6620: .4byte gFieldEffectArguments -_080C6624: .4byte gLastFieldPokeMenuOpened -_080C6628: .4byte gUnknown_081A2D96 - thumb_func_end sub_80C660C - - thumb_func_start FldEff_UseSecretPowerShrub -FldEff_UseSecretPowerShrub: @ 80C662C - push {lr} - bl oei_task_add - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C6650 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _080C6654 @ =sub_80C6658 - lsrs r0, r2, 16 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080C6650: .4byte gTasks -_080C6654: .4byte sub_80C6658 - thumb_func_end FldEff_UseSecretPowerShrub - - thumb_func_start sub_80C6658 -sub_80C6658: @ 80C6658 - push {lr} - movs r0, 0x1B - bl FieldEffectActiveListRemove - movs r0, 0x39 - bl FieldEffectStart - pop {r0} - bx r0 - thumb_func_end sub_80C6658 - - thumb_func_start FldEff_SecretPowerShrub -FldEff_SecretPowerShrub: @ 80C666C - push {r4,lr} - bl sub_80C6280 - ldr r0, _080C66AC @ =gSpriteTemplate_83D2644 - ldr r3, _080C66B0 @ =gSprites - ldr r1, _080C66B4 @ =gPlayerAvatar - ldrb r1, [r1, 0x4] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r3 - ldrh r1, [r2, 0x2] - lsls r1, 23 - lsrs r1, 23 - ldr r4, _080C66B8 @ =gFieldEffectArguments - ldr r3, [r4, 0x14] - adds r1, r3 - lsls r1, 16 - asrs r1, 16 - ldrb r2, [r2] - ldr r3, [r4, 0x18] - adds r2, r3 - lsls r2, 16 - asrs r2, 16 - movs r3, 0x94 - bl CreateSprite - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080C66AC: .4byte gSpriteTemplate_83D2644 -_080C66B0: .4byte gSprites -_080C66B4: .4byte gPlayerAvatar -_080C66B8: .4byte gFieldEffectArguments - thumb_func_end FldEff_SecretPowerShrub - - thumb_func_start sub_80C66BC -sub_80C66BC: @ 80C66BC - push {r4,lr} - adds r4, r0, 0 - movs r0, 0xA9 - bl PlaySE - movs r0, 0 - strh r0, [r4, 0x2E] - ldr r0, _080C66D4 @ =sub_80C66D8 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C66D4: .4byte sub_80C66D8 - thumb_func_end sub_80C66BC - - thumb_func_start sub_80C66D8 -sub_80C66D8: @ 80C66D8 - push {lr} - adds r1, r0, 0 - ldrh r2, [r1, 0x2E] - movs r3, 0x2E - ldrsh r0, [r1, r3] - cmp r0, 0x27 - bgt _080C66F8 - adds r0, r2, 0x1 - strh r0, [r1, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bne _080C6700 - bl sub_80BB800 - b _080C6700 -_080C66F8: - movs r0, 0 - strh r0, [r1, 0x2E] - ldr r0, _080C6704 @ =sub_80C6708 - str r0, [r1, 0x1C] -_080C6700: - pop {r0} - bx r0 - .align 2, 0 -_080C6704: .4byte sub_80C6708 - thumb_func_end sub_80C66D8 - - thumb_func_start sub_80C6708 -sub_80C6708: @ 80C6708 - push {lr} - movs r1, 0x39 - bl FieldEffectStop - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end sub_80C6708 - - thumb_func_start FldEff_PCTurnOn -FldEff_PCTurnOn: @ 80C6718 - push {r4,lr} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - ldr r0, _080C6758 @ =sub_80C6760 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C675C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - mov r0, sp - ldrh r0, [r0] - movs r2, 0 - strh r0, [r1, 0x8] - ldrh r0, [r4] - strh r0, [r1, 0xA] - strh r2, [r1, 0xC] - movs r0, 0 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080C6758: .4byte sub_80C6760 -_080C675C: .4byte gTasks - thumb_func_end FldEff_PCTurnOn - - thumb_func_start sub_80C6760 -sub_80C6760: @ 80C6760 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080C6788 @ =gTasks + 0x8 - adds r4, r0, r1 - ldrh r0, [r4, 0x4] - subs r0, 0x4 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x10 - bhi _080C682E - lsls r0, 2 - ldr r1, _080C678C @ =_080C6790 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C6788: .4byte gTasks + 0x8 -_080C678C: .4byte _080C6790 - .align 2, 0 -_080C6790: - .4byte _080C67D4 - .4byte _080C682E - .4byte _080C682E - .4byte _080C682E - .4byte _080C67E2 - .4byte _080C682E - .4byte _080C682E - .4byte _080C682E - .4byte _080C67D4 - .4byte _080C682E - .4byte _080C682E - .4byte _080C682E - .4byte _080C67E2 - .4byte _080C682E - .4byte _080C682E - .4byte _080C682E - .4byte _080C6800 -_080C67D4: - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - movs r2, 0x89 - lsls r2, 2 - b _080C67EE -_080C67E2: - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - movs r2, 0x88 - lsls r2, 2 -_080C67EE: - bl MapGridSetMetatileIdAt - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - bl CurrentMapDrawMetatileAt - b _080C682E -_080C6800: - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - movs r2, 0x89 - lsls r2, 2 - bl MapGridSetMetatileIdAt - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - bl CurrentMapDrawMetatileAt - movs r0, 0x3D - bl FieldEffectActiveListRemove - bl EnableBothScriptContexts - adds r0, r5, 0 - bl DestroyTask - b _080C6834 -_080C682E: - ldrh r0, [r4, 0x4] - adds r0, 0x1 - strh r0, [r4, 0x4] -_080C6834: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80C6760 - - thumb_func_start sub_80C683C -sub_80C683C: @ 80C683C - push {r4,lr} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - movs r0, 0x3 - bl PlaySE - ldr r0, _080C6874 @ =0x00004054 - bl VarGet - lsls r0, 16 - cmp r0, 0 - bne _080C6878 - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r2, 0xE2 - lsls r2, 4 - bl MapGridSetMetatileIdAt - b _080C6888 - .align 2, 0 -_080C6874: .4byte 0x00004054 -_080C6878: - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - ldr r2, _080C68A0 @ =0x00000e21 - bl MapGridSetMetatileIdAt -_080C6888: - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl CurrentMapDrawMetatileAt - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C68A0: .4byte 0x00000e21 - thumb_func_end sub_80C683C - - thumb_func_start sub_80C68A4 -sub_80C68A4: @ 80C68A4 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 16 - lsrs r6, 16 - ldr r0, _080C68E4 @ =sub_80C68EC - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C68E8 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r4, [r1, 0x8] - strh r5, [r1, 0xA] - strh r6, [r1, 0xC] - strh r0, [r1, 0xE] - movs r0, 0x1 - strh r0, [r1, 0x10] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C68E4: .4byte sub_80C68EC -_080C68E8: .4byte gTasks - thumb_func_end sub_80C68A4 - - thumb_func_start sub_80C68EC -sub_80C68EC: @ 80C68EC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _080C690C @ =gTasks + 0x8 - adds r4, r0, r1 - ldrh r1, [r4, 0x6] - movs r2, 0x6 - ldrsh r0, [r4, r2] - cmp r0, 0x6 - bne _080C6910 - movs r0, 0 - b _080C6912 - .align 2, 0 -_080C690C: .4byte gTasks + 0x8 -_080C6910: - adds r0, r1, 0x1 -_080C6912: - strh r0, [r4, 0x6] - movs r3, 0x6 - ldrsh r0, [r4, r3] - cmp r0, 0 - bne _080C6964 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x2 - bne _080C692C - movs r2, 0 - ldrsh r0, [r4, r2] - bl DoBalloonSoundEffect -_080C692C: - movs r3, 0x2 - ldrsh r0, [r4, r3] - movs r2, 0x4 - ldrsh r1, [r4, r2] - ldrh r2, [r4, 0x8] - ldrh r3, [r4] - adds r2, r3 - lsls r2, 16 - lsrs r2, 16 - bl MapGridSetMetatileIdAt - movs r1, 0x2 - ldrsh r0, [r4, r1] - movs r2, 0x4 - ldrsh r1, [r4, r2] - bl CurrentMapDrawMetatileAt - ldrh r1, [r4, 0x8] - movs r3, 0x8 - ldrsh r0, [r4, r3] - cmp r0, 0x3 - bne _080C6960 - adds r0, r5, 0 - bl DestroyTask - b _080C6964 -_080C6960: - adds r0, r1, 0x1 - strh r0, [r4, 0x8] -_080C6964: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80C68EC - - thumb_func_start DoBalloonSoundEffect -DoBalloonSoundEffect: @ 80C696C - push {lr} - lsls r0, 16 - asrs r1, r0, 16 - movs r0, 0xCE - lsls r0, 2 - cmp r1, r0 - beq _080C6998 - cmp r1, r0 - bgt _080C6988 - movs r0, 0x8A - lsls r0, 2 - cmp r1, r0 - beq _080C69B0 - b _080C69B6 -_080C6988: - movs r0, 0xCF - lsls r0, 2 - cmp r1, r0 - beq _080C69A0 - adds r0, 0x4 - cmp r1, r0 - beq _080C69A8 - b _080C69B6 -_080C6998: - movs r0, 0x4A - bl PlaySE - b _080C69B6 -_080C69A0: - movs r0, 0x4B - bl PlaySE - b _080C69B6 -_080C69A8: - movs r0, 0x4C - bl PlaySE - b _080C69B6 -_080C69B0: - movs r0, 0x4E - bl PlaySE -_080C69B6: - pop {r0} - bx r0 - thumb_func_end DoBalloonSoundEffect - - thumb_func_start FldEff_Nop47 -FldEff_Nop47: @ 80C69BC - movs r0, 0 - bx lr - thumb_func_end FldEff_Nop47 - - thumb_func_start FldEff_Nop48 -FldEff_Nop48: @ 80C69C0 - movs r0, 0 - bx lr - thumb_func_end FldEff_Nop48 - - thumb_func_start sub_80C69C4 -sub_80C69C4: @ 80C69C4 - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r1, 0 - lsls r5, 16 - lsrs r5, 16 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0x4D - bl PlaySE - lsls r5, 16 - asrs r5, 16 - lsls r4, 16 - asrs r4, 16 - ldr r2, _080C6A0C @ =0x00000276 - adds r0, r5, 0 - adds r1, r4, 0 - bl MapGridSetMetatileIdAt - subs r6, r4, 0x1 - ldr r2, _080C6A10 @ =0x0000026e - adds r0, r5, 0 - adds r1, r6, 0 - bl MapGridSetMetatileIdAt - adds r0, r5, 0 - adds r1, r4, 0 - bl CurrentMapDrawMetatileAt - adds r0, r5, 0 - adds r1, r6, 0 - bl CurrentMapDrawMetatileAt - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080C6A0C: .4byte 0x00000276 -_080C6A10: .4byte 0x0000026e - thumb_func_end sub_80C69C4 - - thumb_func_start sub_80C6A14 -sub_80C6A14: @ 80C6A14 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080C6A44 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r1 - ldrh r2, [r1, 0x8] - movs r3, 0x8 - ldrsh r0, [r1, r3] - cmp r0, 0x7 - bne _080C6A48 - movs r2, 0xA - ldrsh r0, [r1, r2] - movs r3, 0xC - ldrsh r1, [r1, r3] - bl sub_80C69C4 - adds r0, r4, 0 - bl DestroyTask - b _080C6A4C - .align 2, 0 -_080C6A44: .4byte gTasks -_080C6A48: - adds r0, r2, 0x1 - strh r0, [r1, 0x8] -_080C6A4C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C6A14 - - thumb_func_start sub_80C6A54 -sub_80C6A54: @ 80C6A54 - push {r4-r7,lr} - lsls r0, 16 - lsrs r5, r0, 16 - adds r7, r5, 0 - lsls r1, 16 - lsrs r4, r1, 16 - adds r6, r4, 0 - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080C6A7C - lsls r0, r5, 16 - asrs r0, 16 - lsls r1, r4, 16 - asrs r1, 16 - bl sub_80C69C4 - b _080C6A9E -_080C6A7C: - cmp r0, 0x2 - bne _080C6A9E - ldr r0, _080C6AA4 @ =sub_80C6A14 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C6AA8 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0x8] - strh r7, [r1, 0xA] - strh r6, [r1, 0xC] -_080C6A9E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C6AA4: .4byte sub_80C6A14 -_080C6AA8: .4byte gTasks - thumb_func_end sub_80C6A54 - - thumb_func_start Task_DecorationSoundEffect -Task_DecorationSoundEffect: @ 80C6AAC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080C6AE4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r1 - ldrh r2, [r1, 0xA] - movs r3, 0xA - ldrsh r0, [r1, r3] - cmp r0, 0x7 - beq _080C6AC8 - b _080C6C26 -_080C6AC8: - ldr r2, _080C6AE8 @ =0xfffffd88 - adds r0, r2, 0 - ldrh r1, [r1, 0x8] - adds r0, r1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3B - bls _080C6ADA - b _080C6C1E -_080C6ADA: - lsls r0, 2 - ldr r1, _080C6AEC @ =_080C6AF0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080C6AE4: .4byte gTasks -_080C6AE8: .4byte 0xfffffd88 -_080C6AEC: .4byte _080C6AF0 - .align 2, 0 -_080C6AF0: - .4byte _080C6BE0 - .4byte _080C6BE8 - .4byte _080C6BF0 - .4byte _080C6BF8 - .4byte _080C6C00 - .4byte _080C6C08 - .4byte _080C6C10 - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C1E - .4byte _080C6C18 -_080C6BE0: - movs r0, 0x3E - bl PlaySE - b _080C6C1E -_080C6BE8: - movs r0, 0x3F - bl PlaySE - b _080C6C1E -_080C6BF0: - movs r0, 0x40 - bl PlaySE - b _080C6C1E -_080C6BF8: - movs r0, 0x41 - bl PlaySE - b _080C6C1E -_080C6C00: - movs r0, 0x42 - bl PlaySE - b _080C6C1E -_080C6C08: - movs r0, 0x43 - bl PlaySE - b _080C6C1E -_080C6C10: - movs r0, 0x44 - bl PlaySE - b _080C6C1E -_080C6C18: - movs r0, 0x45 - bl PlaySE -_080C6C1E: - adds r0, r4, 0 - bl DestroyTask - b _080C6C2A -_080C6C26: - adds r0, r2, 0x1 - strh r0, [r1, 0xA] -_080C6C2A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end Task_DecorationSoundEffect - - thumb_func_start DoDecorationSoundEffect -DoDecorationSoundEffect: @ 80C6C30 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, _080C6C5C @ =Task_DecorationSoundEffect - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C6C60 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r4, [r1, 0x8] - strh r0, [r1, 0xA] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C6C5C: .4byte Task_DecorationSoundEffect -_080C6C60: .4byte gTasks - thumb_func_end DoDecorationSoundEffect - - thumb_func_start SpriteCB_YellowCave4Sparkle -SpriteCB_YellowCave4Sparkle: @ 80C6C64 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - bne _080C6C7C - movs r0, 0xC3 - bl PlaySE -_080C6C7C: - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1F - ble _080C6C8A - adds r0, r4, 0 - bl DestroySprite -_080C6C8A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end SpriteCB_YellowCave4Sparkle - - thumb_func_start DoYellowCave4Sparkle -DoYellowCave4Sparkle: @ 80C6C90 - push {r4,lr} - sub sp, 0x4 - ldr r3, _080C6D28 @ =gMapObjects - ldr r2, _080C6D2C @ =gPlayerAvatar - ldrb r1, [r2, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x10] - mov r0, sp - strh r1, [r0] - ldrb r1, [r2, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x12] - mov r4, sp - adds r4, 0x2 - strh r0, [r4] - mov r0, sp - adds r1, r4, 0 - movs r2, 0x8 - movs r3, 0x4 - bl sub_8060470 - ldr r0, _080C6D30 @ =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x58] - mov r1, sp - movs r2, 0 - ldrsh r1, [r1, r2] - movs r3, 0 - ldrsh r2, [r4, r3] - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080C6D1E - ldr r3, _080C6D34 @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r4, r2, r3 - movs r0, 0x3E - adds r0, r4 - mov r12, r0 - ldrb r0, [r0] - movs r1, 0x2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrb r1, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - movs r1, 0xF - ands r0, r1 - movs r1, 0x50 - orrs r0, r1 - strb r0, [r4, 0x5] - adds r3, 0x1C - adds r2, r3 - ldr r0, _080C6D38 @ =SpriteCB_YellowCave4Sparkle - str r0, [r2] - movs r0, 0 - strh r0, [r4, 0x2E] -_080C6D1E: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C6D28: .4byte gMapObjects -_080C6D2C: .4byte gPlayerAvatar -_080C6D30: .4byte gFieldEffectObjectTemplatePointers -_080C6D34: .4byte gSprites -_080C6D38: .4byte SpriteCB_YellowCave4Sparkle - thumb_func_end DoYellowCave4Sparkle - - thumb_func_start FldEff_SandPillar -FldEff_SandPillar: @ 80C6D3C - push {r4,lr} - sub sp, 0x4 - bl ScriptContext2_Enable - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - ldr r1, _080C6D78 @ =gFieldEffectArguments - mov r0, sp - movs r2, 0 - ldrsh r0, [r0, r2] - str r0, [r1, 0x14] - movs r3, 0 - ldrsh r0, [r4, r3] - str r0, [r1, 0x18] - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - beq _080C6DBC - cmp r0, 0x2 - bgt _080C6D7C - cmp r0, 0x1 - beq _080C6D86 - b _080C6E4C - .align 2, 0 -_080C6D78: .4byte gFieldEffectArguments -_080C6D7C: - cmp r0, 0x3 - beq _080C6DEC - cmp r0, 0x4 - beq _080C6E24 - b _080C6E4C -_080C6D86: - ldr r0, _080C6DB0 @ =gSpriteTemplate_83D26A0 - ldr r3, _080C6DB4 @ =gSprites - ldr r1, _080C6DB8 @ =gPlayerAvatar - ldrb r1, [r1, 0x4] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r3 - ldrh r1, [r2, 0x2] - lsls r1, 23 - lsrs r1, 7 - movs r3, 0x80 - lsls r3, 12 - adds r1, r3 - asrs r1, 16 - ldrb r2, [r2] - adds r2, 0x20 - movs r3, 0 - bl CreateSprite - b _080C6E4C - .align 2, 0 -_080C6DB0: .4byte gSpriteTemplate_83D26A0 -_080C6DB4: .4byte gSprites -_080C6DB8: .4byte gPlayerAvatar -_080C6DBC: - ldr r0, _080C6DE0 @ =gSpriteTemplate_83D26A0 - ldr r3, _080C6DE4 @ =gSprites - ldr r1, _080C6DE8 @ =gPlayerAvatar - ldrb r1, [r1, 0x4] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r3 - ldrh r1, [r2, 0x2] - lsls r1, 23 - lsrs r1, 7 - movs r3, 0x80 - lsls r3, 12 - adds r1, r3 - asrs r1, 16 - ldrb r2, [r2] - b _080C6E0C - .align 2, 0 -_080C6DE0: .4byte gSpriteTemplate_83D26A0 -_080C6DE4: .4byte gSprites -_080C6DE8: .4byte gPlayerAvatar -_080C6DEC: - ldr r0, _080C6E14 @ =gSpriteTemplate_83D26A0 - ldr r3, _080C6E18 @ =gSprites - ldr r1, _080C6E1C @ =gPlayerAvatar - ldrb r1, [r1, 0x4] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r3 - ldrh r1, [r2, 0x2] - lsls r1, 23 - lsrs r1, 7 - ldr r3, _080C6E20 @ =0xfff80000 - adds r1, r3 - asrs r1, 16 - ldrb r2, [r2] - adds r2, 0x10 -_080C6E0C: - movs r3, 0x94 - bl CreateSprite - b _080C6E4C - .align 2, 0 -_080C6E14: .4byte gSpriteTemplate_83D26A0 -_080C6E18: .4byte gSprites -_080C6E1C: .4byte gPlayerAvatar -_080C6E20: .4byte 0xfff80000 -_080C6E24: - ldr r0, _080C6E58 @ =gSpriteTemplate_83D26A0 - ldr r3, _080C6E5C @ =gSprites - ldr r1, _080C6E60 @ =gPlayerAvatar - ldrb r1, [r1, 0x4] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r3 - ldrh r1, [r2, 0x2] - lsls r1, 23 - lsrs r1, 7 - movs r3, 0xC0 - lsls r3, 13 - adds r1, r3 - asrs r1, 16 - ldrb r2, [r2] - adds r2, 0x10 - movs r3, 0x94 - bl CreateSprite -_080C6E4C: - movs r0, 0 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080C6E58: .4byte gSpriteTemplate_83D26A0 -_080C6E5C: .4byte gSprites -_080C6E60: .4byte gPlayerAvatar - thumb_func_end FldEff_SandPillar - - thumb_func_start SpriteCB_SandPillar_0 -SpriteCB_SandPillar_0: @ 80C6E64 - push {r4,r5,lr} - adds r5, r0, 0 - movs r0, 0x83 - bl PlaySE - ldr r4, _080C6E90 @ =gFieldEffectArguments - ldr r0, [r4, 0x14] - ldr r1, [r4, 0x18] - subs r1, 0x1 - bl MapGridGetMetatileIdAt - ldr r1, _080C6E94 @ =0x00000286 - cmp r0, r1 - bne _080C6E9C - ldr r0, [r4, 0x14] - ldr r1, [r4, 0x18] - subs r1, 0x1 - ldr r2, _080C6E98 @ =0x00000e02 - bl MapGridSetMetatileIdAt - b _080C6EAA - .align 2, 0 -_080C6E90: .4byte gFieldEffectArguments -_080C6E94: .4byte 0x00000286 -_080C6E98: .4byte 0x00000e02 -_080C6E9C: - ldr r0, [r4, 0x14] - ldr r1, [r4, 0x18] - subs r1, 0x1 - movs r2, 0xA1 - lsls r2, 2 - bl MapGridSetMetatileIdAt -_080C6EAA: - ldr r4, _080C6ED8 @ =gFieldEffectArguments - ldr r0, [r4, 0x14] - ldr r1, [r4, 0x18] - ldr r2, _080C6EDC @ =0x0000020a - bl MapGridSetMetatileIdAt - ldr r0, [r4, 0x14] - ldr r1, [r4, 0x18] - subs r1, 0x1 - bl CurrentMapDrawMetatileAt - ldr r0, [r4, 0x14] - ldr r1, [r4, 0x18] - bl CurrentMapDrawMetatileAt - movs r0, 0 - strh r0, [r5, 0x2E] - ldr r0, _080C6EE0 @ =SpriteCB_SandPillar_1 - str r0, [r5, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C6ED8: .4byte gFieldEffectArguments -_080C6EDC: .4byte 0x0000020a -_080C6EE0: .4byte SpriteCB_SandPillar_1 - thumb_func_end SpriteCB_SandPillar_0 - - thumb_func_start SpriteCB_SandPillar_1 -SpriteCB_SandPillar_1: @ 80C6EE4 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r1, [r5, 0x2E] - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0x11 - bgt _080C6EF8 - adds r0, r1, 0x1 - strh r0, [r5, 0x2E] - b _080C6F14 -_080C6EF8: - ldr r4, _080C6F1C @ =gFieldEffectArguments - ldr r0, [r4, 0x14] - ldr r1, [r4, 0x18] - ldr r2, _080C6F20 @ =0x00000e8c - bl MapGridSetMetatileIdAt - ldr r0, [r4, 0x14] - ldr r1, [r4, 0x18] - bl CurrentMapDrawMetatileAt - movs r0, 0 - strh r0, [r5, 0x2E] - ldr r0, _080C6F24 @ =SpriteCB_SandPillar_2 - str r0, [r5, 0x1C] -_080C6F14: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C6F1C: .4byte gFieldEffectArguments -_080C6F20: .4byte 0x00000e8c -_080C6F24: .4byte SpriteCB_SandPillar_2 - thumb_func_end SpriteCB_SandPillar_1 - - thumb_func_start SpriteCB_SandPillar_2 -SpriteCB_SandPillar_2: @ 80C6F28 - push {lr} - movs r1, 0x34 - bl FieldEffectStop - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end SpriteCB_SandPillar_2 - - thumb_func_start GetShieldToyTVDecorationInfo -GetShieldToyTVDecorationInfo: @ 80C6F38 - push {r4,lr} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileIdAt - adds r1, r0, 0 - ldr r0, _080C6F70 @ =0x000002f5 - cmp r1, r0 - beq _080C6FE8 - cmp r1, r0 - bgt _080C6F74 - subs r0, 0x17 - cmp r1, r0 - beq _080C6FB0 - adds r0, 0x16 - cmp r1, r0 - beq _080C6FDC - b _080C6FFA - .align 2, 0 -_080C6F70: .4byte 0x000002f5 -_080C6F74: - ldr r0, _080C6F9C @ =0x000002f6 - cmp r1, r0 - beq _080C6FF4 - adds r0, 0x40 - cmp r1, r0 - bne _080C6FFA - ldr r0, _080C6FA0 @ =gStringVar1 - movs r1, 0x64 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r0, _080C6FA4 @ =gStringVar2 - ldr r1, _080C6FA8 @ =gSecretBaseText_GoldRank - bl StringCopy - ldr r1, _080C6FAC @ =gScriptResult - movs r0, 0 - b _080C6FF8 - .align 2, 0 -_080C6F9C: .4byte 0x000002f6 -_080C6FA0: .4byte gStringVar1 -_080C6FA4: .4byte gStringVar2 -_080C6FA8: .4byte gSecretBaseText_GoldRank -_080C6FAC: .4byte gScriptResult -_080C6FB0: - ldr r0, _080C6FCC @ =gStringVar1 - movs r1, 0x32 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, _080C6FD0 @ =gStringVar2 - ldr r1, _080C6FD4 @ =gSecretBaseText_SilverRank - bl StringCopy - ldr r1, _080C6FD8 @ =gScriptResult - movs r0, 0 - b _080C6FF8 - .align 2, 0 -_080C6FCC: .4byte gStringVar1 -_080C6FD0: .4byte gStringVar2 -_080C6FD4: .4byte gSecretBaseText_SilverRank -_080C6FD8: .4byte gScriptResult -_080C6FDC: - ldr r1, _080C6FE4 @ =gScriptResult - movs r0, 0x1 - b _080C6FF8 - .align 2, 0 -_080C6FE4: .4byte gScriptResult -_080C6FE8: - ldr r1, _080C6FF0 @ =gScriptResult - movs r0, 0x2 - b _080C6FF8 - .align 2, 0 -_080C6FF0: .4byte gScriptResult -_080C6FF4: - ldr r1, _080C7004 @ =gScriptResult - movs r0, 0x3 -_080C6FF8: - strh r0, [r1] -_080C6FFA: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080C7004: .4byte gScriptResult - thumb_func_end GetShieldToyTVDecorationInfo - - thumb_func_start Task_FieldPoisonEffect -Task_FieldPoisonEffect: @ 80C7008 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080C702C @ =gTasks + 0x8 - adds r1, r0, r1 - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, 0x1 - beq _080C7046 - cmp r0, 0x1 - bgt _080C7030 - cmp r0, 0 - beq _080C7036 - b _080C7062 - .align 2, 0 -_080C702C: .4byte gTasks + 0x8 -_080C7030: - cmp r0, 0x2 - beq _080C705A - b _080C7062 -_080C7036: - ldrh r0, [r1, 0x2] - adds r0, 0x2 - strh r0, [r1, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x8 - ble _080C7062 - b _080C7052 -_080C7046: - ldrh r0, [r1, 0x2] - subs r0, 0x2 - strh r0, [r1, 0x2] - lsls r0, 16 - cmp r0, 0 - bne _080C7062 -_080C7052: - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - b _080C7062 -_080C705A: - adds r0, r2, 0 - bl DestroyTask - b _080C706C -_080C7062: - ldr r2, _080C7070 @ =REG_MOSAIC - ldrh r1, [r1, 0x2] - lsls r0, r1, 4 - orrs r0, r1 - strh r0, [r2] -_080C706C: - pop {r0} - bx r0 - .align 2, 0 -_080C7070: .4byte REG_MOSAIC - thumb_func_end Task_FieldPoisonEffect - - thumb_func_start DoFieldPoisonEffect -DoFieldPoisonEffect: @ 80C7074 - push {lr} - movs r0, 0x4F - bl PlaySE - ldr r0, _080C7088 @ =Task_FieldPoisonEffect - movs r1, 0x50 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080C7088: .4byte Task_FieldPoisonEffect - thumb_func_end DoFieldPoisonEffect - - thumb_func_start FieldPoisonEffectIsRunning -FieldPoisonEffectIsRunning: @ 80C708C - push {lr} - ldr r0, _080C709C @ =Task_FieldPoisonEffect - bl FuncIsActiveTask - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_080C709C: .4byte Task_FieldPoisonEffect - thumb_func_end FieldPoisonEffectIsRunning - - thumb_func_start Task_WateringBerryTreeAnim_0 -Task_WateringBerryTreeAnim_0: @ 80C70A0 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080C70B4 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _080C70B8 @ =Task_WateringBerryTreeAnim_1 - str r0, [r1] - bx lr - .align 2, 0 -_080C70B4: .4byte gTasks -_080C70B8: .4byte Task_WateringBerryTreeAnim_1 - thumb_func_end Task_WateringBerryTreeAnim_0 - - thumb_func_start Task_WateringBerryTreeAnim_1 -Task_WateringBerryTreeAnim_1: @ 80C70BC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080C7120 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C7124 @ =gMapObjects - adds r4, r0, r1 - adds r0, r4, 0 - bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive - lsls r0, 24 - cmp r0, 0 - beq _080C70E8 - adds r0, r4, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _080C711A -_080C70E8: - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - bl sub_8059D08 - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - bl GetStepInPlaceDelay16AnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectSetSpecialAnim - ldr r1, _080C7128 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, _080C712C @ =Task_WateringBerryTreeAnim_2 - str r1, [r0] -_080C711A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C7120: .4byte gPlayerAvatar -_080C7124: .4byte gMapObjects -_080C7128: .4byte gTasks -_080C712C: .4byte Task_WateringBerryTreeAnim_2 - thumb_func_end Task_WateringBerryTreeAnim_1 - - thumb_func_start Task_WateringBerryTreeAnim_2 -Task_WateringBerryTreeAnim_2: @ 80C7130 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080C7184 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080C7188 @ =gMapObjects - adds r5, r0, r1 - adds r0, r5, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished - lsls r0, 24 - cmp r0, 0 - beq _080C7194 - ldr r1, _080C718C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r2, r0, r1 - ldrh r0, [r2, 0xA] - adds r1, r0, 0x1 - strh r1, [r2, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x9 - bgt _080C7190 - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - bl GetStepInPlaceDelay16AnimId - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl FieldObjectSetSpecialAnim - b _080C7194 - .align 2, 0 -_080C7184: .4byte gPlayerAvatar -_080C7188: .4byte gMapObjects -_080C718C: .4byte gTasks -_080C7190: - ldr r0, _080C719C @ =Task_WateringBerryTreeAnim_3 - str r0, [r2] -_080C7194: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080C719C: .4byte Task_WateringBerryTreeAnim_3 - thumb_func_end Task_WateringBerryTreeAnim_2 - - thumb_func_start Task_WateringBerryTreeAnim_3 -Task_WateringBerryTreeAnim_3: @ 80C71A0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_80597D0 - lsls r0, 24 - lsrs r0, 24 - bl SetPlayerAvatarTransitionFlags - adds r0, r4, 0 - bl DestroyTask - bl EnableBothScriptContexts - pop {r4} - pop {r0} - bx r0 - thumb_func_end Task_WateringBerryTreeAnim_3 - - thumb_func_start DoWateringBerryTreeAnim -DoWateringBerryTreeAnim: @ 80C71C4 - push {lr} - ldr r0, _080C71D4 @ =Task_WateringBerryTreeAnim_0 - movs r1, 0x50 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080C71D4: .4byte Task_WateringBerryTreeAnim_0 - thumb_func_end DoWateringBerryTreeAnim - - thumb_func_start CreateRecordMixingSprite -CreateRecordMixingSprite: @ 80C71D8 - push {r4,r5,lr} - ldr r0, _080C722C @ =gUnknown_083D2878 - bl LoadSpritePalette - ldr r0, _080C7230 @ =gSpriteTemplate_83D2894 - movs r1, 0 - movs r2, 0 - movs r3, 0x52 - bl CreateSprite - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x40 - beq _080C7238 - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - ldr r1, _080C7234 @ =gSprites - adds r4, r0, r1 - adds r2, r4, 0 - adds r2, 0x20 - adds r3, r4, 0 - adds r3, 0x22 - movs r0, 0x10 - movs r1, 0xD - bl sub_8060388 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x20] - adds r0, 0x10 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x22] - adds r0, 0x2 - strh r0, [r4, 0x22] - adds r0, r5, 0 - b _080C723A - .align 2, 0 -_080C722C: .4byte gUnknown_083D2878 -_080C7230: .4byte gSpriteTemplate_83D2894 -_080C7234: .4byte gSprites -_080C7238: - movs r0, 0x40 -_080C723A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end CreateRecordMixingSprite - - thumb_func_start DestroyRecordMixingSprite -DestroyRecordMixingSprite: @ 80C7240 - push {r4-r7,lr} - ldr r4, _080C7274 @ =gSprites - adds r7, r4, 0 - movs r6, 0 - movs r5, 0x3F -_080C724A: - adds r0, r7, 0 - adds r0, 0x14 - adds r0, r6, r0 - ldr r1, [r0] - ldr r0, _080C7278 @ =gSpriteTemplate_83D2894 - cmp r1, r0 - bne _080C7264 - adds r0, r4, 0 - bl FreeSpritePalette - adds r0, r4, 0 - bl DestroySprite -_080C7264: - adds r4, 0x44 - adds r6, 0x44 - subs r5, 0x1 - cmp r5, 0 - bge _080C724A - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C7274: .4byte gSprites -_080C7278: .4byte gSpriteTemplate_83D2894 - thumb_func_end DestroyRecordMixingSprite - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/fldeff_berrytree.s b/asm/fldeff_berrytree.s new file mode 100755 index 000000000..a36ba0519 --- /dev/null +++ b/asm/fldeff_berrytree.s @@ -0,0 +1,164 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start Task_WateringBerryTreeAnim_0 +Task_WateringBerryTreeAnim_0: @ 80C70A0 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C70B4 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r0, _080C70B8 @ =Task_WateringBerryTreeAnim_1 + str r0, [r1] + bx lr + .align 2, 0 +_080C70B4: .4byte gTasks +_080C70B8: .4byte Task_WateringBerryTreeAnim_1 + thumb_func_end Task_WateringBerryTreeAnim_0 + + thumb_func_start Task_WateringBerryTreeAnim_1 +Task_WateringBerryTreeAnim_1: @ 80C70BC + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080C7120 @ =gPlayerAvatar + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C7124 @ =gMapObjects + adds r4, r0, r1 + adds r0, r4, 0 + bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive + lsls r0, 24 + cmp r0, 0 + beq _080C70E8 + adds r0, r4, 0 + bl FieldObjectClearAnimIfSpecialAnimFinished + lsls r0, 24 + cmp r0, 0 + beq _080C711A +_080C70E8: + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + bl sub_8059D08 + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + bl GetStepInPlaceDelay16AnimId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl FieldObjectSetSpecialAnim + ldr r1, _080C7128 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080C712C @ =Task_WateringBerryTreeAnim_2 + str r1, [r0] +_080C711A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C7120: .4byte gPlayerAvatar +_080C7124: .4byte gMapObjects +_080C7128: .4byte gTasks +_080C712C: .4byte Task_WateringBerryTreeAnim_2 + thumb_func_end Task_WateringBerryTreeAnim_1 + + thumb_func_start Task_WateringBerryTreeAnim_2 +Task_WateringBerryTreeAnim_2: @ 80C7130 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080C7184 @ =gPlayerAvatar + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080C7188 @ =gMapObjects + adds r5, r0, r1 + adds r0, r5, 0 + bl FieldObjectClearAnimIfSpecialAnimFinished + lsls r0, 24 + cmp r0, 0 + beq _080C7194 + ldr r1, _080C718C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r1 + ldrh r0, [r2, 0xA] + adds r1, r0, 0x1 + strh r1, [r2, 0xA] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x9 + bgt _080C7190 + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + bl GetStepInPlaceDelay16AnimId + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl FieldObjectSetSpecialAnim + b _080C7194 + .align 2, 0 +_080C7184: .4byte gPlayerAvatar +_080C7188: .4byte gMapObjects +_080C718C: .4byte gTasks +_080C7190: + ldr r0, _080C719C @ =Task_WateringBerryTreeAnim_3 + str r0, [r2] +_080C7194: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C719C: .4byte Task_WateringBerryTreeAnim_3 + thumb_func_end Task_WateringBerryTreeAnim_2 + + thumb_func_start Task_WateringBerryTreeAnim_3 +Task_WateringBerryTreeAnim_3: @ 80C71A0 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_80597D0 + lsls r0, 24 + lsrs r0, 24 + bl SetPlayerAvatarTransitionFlags + adds r0, r4, 0 + bl DestroyTask + bl EnableBothScriptContexts + pop {r4} + pop {r0} + bx r0 + thumb_func_end Task_WateringBerryTreeAnim_3 + + thumb_func_start DoWateringBerryTreeAnim +DoWateringBerryTreeAnim: @ 80C71C4 + push {lr} + ldr r0, _080C71D4 @ =Task_WateringBerryTreeAnim_0 + movs r1, 0x50 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080C71D4: .4byte Task_WateringBerryTreeAnim_0 + thumb_func_end DoWateringBerryTreeAnim + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/fldeff_decoration.s b/asm/fldeff_decoration.s new file mode 100755 index 000000000..38c5a6e61 --- /dev/null +++ b/asm/fldeff_decoration.s @@ -0,0 +1,907 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_80C68A4 +sub_80C68A4: @ 80C68A4 + push {r4-r6,lr} + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 16 + lsrs r5, 16 + lsls r6, 16 + lsrs r6, 16 + ldr r0, _080C68E4 @ =sub_80C68EC + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C68E8 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r4, [r1, 0x8] + strh r5, [r1, 0xA] + strh r6, [r1, 0xC] + strh r0, [r1, 0xE] + movs r0, 0x1 + strh r0, [r1, 0x10] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C68E4: .4byte sub_80C68EC +_080C68E8: .4byte gTasks + thumb_func_end sub_80C68A4 + + thumb_func_start sub_80C68EC +sub_80C68EC: @ 80C68EC + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080C690C @ =gTasks + 0x8 + adds r4, r0, r1 + ldrh r1, [r4, 0x6] + movs r2, 0x6 + ldrsh r0, [r4, r2] + cmp r0, 0x6 + bne _080C6910 + movs r0, 0 + b _080C6912 + .align 2, 0 +_080C690C: .4byte gTasks + 0x8 +_080C6910: + adds r0, r1, 0x1 +_080C6912: + strh r0, [r4, 0x6] + movs r3, 0x6 + ldrsh r0, [r4, r3] + cmp r0, 0 + bne _080C6964 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x2 + bne _080C692C + movs r2, 0 + ldrsh r0, [r4, r2] + bl DoBalloonSoundEffect +_080C692C: + movs r3, 0x2 + ldrsh r0, [r4, r3] + movs r2, 0x4 + ldrsh r1, [r4, r2] + ldrh r2, [r4, 0x8] + ldrh r3, [r4] + adds r2, r3 + lsls r2, 16 + lsrs r2, 16 + bl MapGridSetMetatileIdAt + movs r1, 0x2 + ldrsh r0, [r4, r1] + movs r2, 0x4 + ldrsh r1, [r4, r2] + bl CurrentMapDrawMetatileAt + ldrh r1, [r4, 0x8] + movs r3, 0x8 + ldrsh r0, [r4, r3] + cmp r0, 0x3 + bne _080C6960 + adds r0, r5, 0 + bl DestroyTask + b _080C6964 +_080C6960: + adds r0, r1, 0x1 + strh r0, [r4, 0x8] +_080C6964: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80C68EC + + thumb_func_start DoBalloonSoundEffect +DoBalloonSoundEffect: @ 80C696C + push {lr} + lsls r0, 16 + asrs r1, r0, 16 + movs r0, 0xCE + lsls r0, 2 + cmp r1, r0 + beq _080C6998 + cmp r1, r0 + bgt _080C6988 + movs r0, 0x8A + lsls r0, 2 + cmp r1, r0 + beq _080C69B0 + b _080C69B6 +_080C6988: + movs r0, 0xCF + lsls r0, 2 + cmp r1, r0 + beq _080C69A0 + adds r0, 0x4 + cmp r1, r0 + beq _080C69A8 + b _080C69B6 +_080C6998: + movs r0, 0x4A + bl PlaySE + b _080C69B6 +_080C69A0: + movs r0, 0x4B + bl PlaySE + b _080C69B6 +_080C69A8: + movs r0, 0x4C + bl PlaySE + b _080C69B6 +_080C69B0: + movs r0, 0x4E + bl PlaySE +_080C69B6: + pop {r0} + bx r0 + thumb_func_end DoBalloonSoundEffect + + thumb_func_start FldEff_Nop47 +FldEff_Nop47: @ 80C69BC + movs r0, 0 + bx lr + thumb_func_end FldEff_Nop47 + + thumb_func_start FldEff_Nop48 +FldEff_Nop48: @ 80C69C0 + movs r0, 0 + bx lr + thumb_func_end FldEff_Nop48 + + thumb_func_start sub_80C69C4 +sub_80C69C4: @ 80C69C4 + push {r4-r6,lr} + adds r5, r0, 0 + adds r4, r1, 0 + lsls r5, 16 + lsrs r5, 16 + lsls r4, 16 + lsrs r4, 16 + movs r0, 0x4D + bl PlaySE + lsls r5, 16 + asrs r5, 16 + lsls r4, 16 + asrs r4, 16 + ldr r2, _080C6A0C @ =0x00000276 + adds r0, r5, 0 + adds r1, r4, 0 + bl MapGridSetMetatileIdAt + subs r6, r4, 0x1 + ldr r2, _080C6A10 @ =0x0000026e + adds r0, r5, 0 + adds r1, r6, 0 + bl MapGridSetMetatileIdAt + adds r0, r5, 0 + adds r1, r4, 0 + bl CurrentMapDrawMetatileAt + adds r0, r5, 0 + adds r1, r6, 0 + bl CurrentMapDrawMetatileAt + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C6A0C: .4byte 0x00000276 +_080C6A10: .4byte 0x0000026e + thumb_func_end sub_80C69C4 + + thumb_func_start sub_80C6A14 +sub_80C6A14: @ 80C6A14 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080C6A44 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r1 + ldrh r2, [r1, 0x8] + movs r3, 0x8 + ldrsh r0, [r1, r3] + cmp r0, 0x7 + bne _080C6A48 + movs r2, 0xA + ldrsh r0, [r1, r2] + movs r3, 0xC + ldrsh r1, [r1, r3] + bl sub_80C69C4 + adds r0, r4, 0 + bl DestroyTask + b _080C6A4C + .align 2, 0 +_080C6A44: .4byte gTasks +_080C6A48: + adds r0, r2, 0x1 + strh r0, [r1, 0x8] +_080C6A4C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80C6A14 + + thumb_func_start sub_80C6A54 +sub_80C6A54: @ 80C6A54 + push {r4-r7,lr} + lsls r0, 16 + lsrs r5, r0, 16 + adds r7, r5, 0 + lsls r1, 16 + lsrs r4, r1, 16 + adds r6, r4, 0 + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080C6A7C + lsls r0, r5, 16 + asrs r0, 16 + lsls r1, r4, 16 + asrs r1, 16 + bl sub_80C69C4 + b _080C6A9E +_080C6A7C: + cmp r0, 0x2 + bne _080C6A9E + ldr r0, _080C6AA4 @ =sub_80C6A14 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C6AA8 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0x8] + strh r7, [r1, 0xA] + strh r6, [r1, 0xC] +_080C6A9E: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C6AA4: .4byte sub_80C6A14 +_080C6AA8: .4byte gTasks + thumb_func_end sub_80C6A54 + + thumb_func_start Task_DecorationSoundEffect +Task_DecorationSoundEffect: @ 80C6AAC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080C6AE4 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r1, r0, r1 + ldrh r2, [r1, 0xA] + movs r3, 0xA + ldrsh r0, [r1, r3] + cmp r0, 0x7 + beq _080C6AC8 + b _080C6C26 +_080C6AC8: + ldr r2, _080C6AE8 @ =0xfffffd88 + adds r0, r2, 0 + ldrh r1, [r1, 0x8] + adds r0, r1 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x3B + bls _080C6ADA + b _080C6C1E +_080C6ADA: + lsls r0, 2 + ldr r1, _080C6AEC @ =_080C6AF0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C6AE4: .4byte gTasks +_080C6AE8: .4byte 0xfffffd88 +_080C6AEC: .4byte _080C6AF0 + .align 2, 0 +_080C6AF0: + .4byte _080C6BE0 + .4byte _080C6BE8 + .4byte _080C6BF0 + .4byte _080C6BF8 + .4byte _080C6C00 + .4byte _080C6C08 + .4byte _080C6C10 + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C1E + .4byte _080C6C18 +_080C6BE0: + movs r0, 0x3E + bl PlaySE + b _080C6C1E +_080C6BE8: + movs r0, 0x3F + bl PlaySE + b _080C6C1E +_080C6BF0: + movs r0, 0x40 + bl PlaySE + b _080C6C1E +_080C6BF8: + movs r0, 0x41 + bl PlaySE + b _080C6C1E +_080C6C00: + movs r0, 0x42 + bl PlaySE + b _080C6C1E +_080C6C08: + movs r0, 0x43 + bl PlaySE + b _080C6C1E +_080C6C10: + movs r0, 0x44 + bl PlaySE + b _080C6C1E +_080C6C18: + movs r0, 0x45 + bl PlaySE +_080C6C1E: + adds r0, r4, 0 + bl DestroyTask + b _080C6C2A +_080C6C26: + adds r0, r2, 0x1 + strh r0, [r1, 0xA] +_080C6C2A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end Task_DecorationSoundEffect + + thumb_func_start DoDecorationSoundEffect +DoDecorationSoundEffect: @ 80C6C30 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldr r0, _080C6C5C @ =Task_DecorationSoundEffect + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C6C60 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r4, [r1, 0x8] + strh r0, [r1, 0xA] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C6C5C: .4byte Task_DecorationSoundEffect +_080C6C60: .4byte gTasks + thumb_func_end DoDecorationSoundEffect + + thumb_func_start SpriteCB_YellowCave4Sparkle +SpriteCB_YellowCave4Sparkle: @ 80C6C64 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + bne _080C6C7C + movs r0, 0xC3 + bl PlaySE +_080C6C7C: + movs r1, 0x2E + ldrsh r0, [r4, r1] + cmp r0, 0x1F + ble _080C6C8A + adds r0, r4, 0 + bl DestroySprite +_080C6C8A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end SpriteCB_YellowCave4Sparkle + + thumb_func_start DoYellowCave4Sparkle +DoYellowCave4Sparkle: @ 80C6C90 + push {r4,lr} + sub sp, 0x4 + ldr r3, _080C6D28 @ =gMapObjects + ldr r2, _080C6D2C @ =gPlayerAvatar + ldrb r1, [r2, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r1, [r0, 0x10] + mov r0, sp + strh r1, [r0] + ldrb r1, [r2, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrh r0, [r0, 0x12] + mov r4, sp + adds r4, 0x2 + strh r0, [r4] + mov r0, sp + adds r1, r4, 0 + movs r2, 0x8 + movs r3, 0x4 + bl sub_8060470 + ldr r0, _080C6D30 @ =gFieldEffectObjectTemplatePointers + ldr r0, [r0, 0x58] + mov r1, sp + movs r2, 0 + ldrsh r1, [r1, r2] + movs r3, 0 + ldrsh r2, [r4, r3] + movs r3, 0 + bl CreateSpriteAtEnd + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _080C6D1E + ldr r3, _080C6D34 @ =gSprites + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r4, r2, r3 + movs r0, 0x3E + adds r0, r4 + mov r12, r0 + ldrb r0, [r0] + movs r1, 0x2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldrb r1, [r4, 0x5] + movs r0, 0xD + negs r0, r0 + ands r0, r1 + movs r1, 0x4 + orrs r0, r1 + movs r1, 0xF + ands r0, r1 + movs r1, 0x50 + orrs r0, r1 + strb r0, [r4, 0x5] + adds r3, 0x1C + adds r2, r3 + ldr r0, _080C6D38 @ =SpriteCB_YellowCave4Sparkle + str r0, [r2] + movs r0, 0 + strh r0, [r4, 0x2E] +_080C6D1E: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C6D28: .4byte gMapObjects +_080C6D2C: .4byte gPlayerAvatar +_080C6D30: .4byte gFieldEffectObjectTemplatePointers +_080C6D34: .4byte gSprites +_080C6D38: .4byte SpriteCB_YellowCave4Sparkle + thumb_func_end DoYellowCave4Sparkle + + thumb_func_start FldEff_SandPillar +FldEff_SandPillar: @ 80C6D3C + push {r4,lr} + sub sp, 0x4 + bl ScriptContext2_Enable + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl GetXYCoordsOneStepInFrontOfPlayer + ldr r1, _080C6D78 @ =gFieldEffectArguments + mov r0, sp + movs r2, 0 + ldrsh r0, [r0, r2] + str r0, [r1, 0x14] + movs r3, 0 + ldrsh r0, [r4, r3] + str r0, [r1, 0x18] + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + beq _080C6DBC + cmp r0, 0x2 + bgt _080C6D7C + cmp r0, 0x1 + beq _080C6D86 + b _080C6E4C + .align 2, 0 +_080C6D78: .4byte gFieldEffectArguments +_080C6D7C: + cmp r0, 0x3 + beq _080C6DEC + cmp r0, 0x4 + beq _080C6E24 + b _080C6E4C +_080C6D86: + ldr r0, _080C6DB0 @ =gSpriteTemplate_83D26A0 + ldr r3, _080C6DB4 @ =gSprites + ldr r1, _080C6DB8 @ =gPlayerAvatar + ldrb r1, [r1, 0x4] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r3 + ldrh r1, [r2, 0x2] + lsls r1, 23 + lsrs r1, 7 + movs r3, 0x80 + lsls r3, 12 + adds r1, r3 + asrs r1, 16 + ldrb r2, [r2] + adds r2, 0x20 + movs r3, 0 + bl CreateSprite + b _080C6E4C + .align 2, 0 +_080C6DB0: .4byte gSpriteTemplate_83D26A0 +_080C6DB4: .4byte gSprites +_080C6DB8: .4byte gPlayerAvatar +_080C6DBC: + ldr r0, _080C6DE0 @ =gSpriteTemplate_83D26A0 + ldr r3, _080C6DE4 @ =gSprites + ldr r1, _080C6DE8 @ =gPlayerAvatar + ldrb r1, [r1, 0x4] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r3 + ldrh r1, [r2, 0x2] + lsls r1, 23 + lsrs r1, 7 + movs r3, 0x80 + lsls r3, 12 + adds r1, r3 + asrs r1, 16 + ldrb r2, [r2] + b _080C6E0C + .align 2, 0 +_080C6DE0: .4byte gSpriteTemplate_83D26A0 +_080C6DE4: .4byte gSprites +_080C6DE8: .4byte gPlayerAvatar +_080C6DEC: + ldr r0, _080C6E14 @ =gSpriteTemplate_83D26A0 + ldr r3, _080C6E18 @ =gSprites + ldr r1, _080C6E1C @ =gPlayerAvatar + ldrb r1, [r1, 0x4] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r3 + ldrh r1, [r2, 0x2] + lsls r1, 23 + lsrs r1, 7 + ldr r3, _080C6E20 @ =0xfff80000 + adds r1, r3 + asrs r1, 16 + ldrb r2, [r2] + adds r2, 0x10 +_080C6E0C: + movs r3, 0x94 + bl CreateSprite + b _080C6E4C + .align 2, 0 +_080C6E14: .4byte gSpriteTemplate_83D26A0 +_080C6E18: .4byte gSprites +_080C6E1C: .4byte gPlayerAvatar +_080C6E20: .4byte 0xfff80000 +_080C6E24: + ldr r0, _080C6E58 @ =gSpriteTemplate_83D26A0 + ldr r3, _080C6E5C @ =gSprites + ldr r1, _080C6E60 @ =gPlayerAvatar + ldrb r1, [r1, 0x4] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r3 + ldrh r1, [r2, 0x2] + lsls r1, 23 + lsrs r1, 7 + movs r3, 0xC0 + lsls r3, 13 + adds r1, r3 + asrs r1, 16 + ldrb r2, [r2] + adds r2, 0x10 + movs r3, 0x94 + bl CreateSprite +_080C6E4C: + movs r0, 0 + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080C6E58: .4byte gSpriteTemplate_83D26A0 +_080C6E5C: .4byte gSprites +_080C6E60: .4byte gPlayerAvatar + thumb_func_end FldEff_SandPillar + + thumb_func_start SpriteCB_SandPillar_0 +SpriteCB_SandPillar_0: @ 80C6E64 + push {r4,r5,lr} + adds r5, r0, 0 + movs r0, 0x83 + bl PlaySE + ldr r4, _080C6E90 @ =gFieldEffectArguments + ldr r0, [r4, 0x14] + ldr r1, [r4, 0x18] + subs r1, 0x1 + bl MapGridGetMetatileIdAt + ldr r1, _080C6E94 @ =0x00000286 + cmp r0, r1 + bne _080C6E9C + ldr r0, [r4, 0x14] + ldr r1, [r4, 0x18] + subs r1, 0x1 + ldr r2, _080C6E98 @ =0x00000e02 + bl MapGridSetMetatileIdAt + b _080C6EAA + .align 2, 0 +_080C6E90: .4byte gFieldEffectArguments +_080C6E94: .4byte 0x00000286 +_080C6E98: .4byte 0x00000e02 +_080C6E9C: + ldr r0, [r4, 0x14] + ldr r1, [r4, 0x18] + subs r1, 0x1 + movs r2, 0xA1 + lsls r2, 2 + bl MapGridSetMetatileIdAt +_080C6EAA: + ldr r4, _080C6ED8 @ =gFieldEffectArguments + ldr r0, [r4, 0x14] + ldr r1, [r4, 0x18] + ldr r2, _080C6EDC @ =0x0000020a + bl MapGridSetMetatileIdAt + ldr r0, [r4, 0x14] + ldr r1, [r4, 0x18] + subs r1, 0x1 + bl CurrentMapDrawMetatileAt + ldr r0, [r4, 0x14] + ldr r1, [r4, 0x18] + bl CurrentMapDrawMetatileAt + movs r0, 0 + strh r0, [r5, 0x2E] + ldr r0, _080C6EE0 @ =SpriteCB_SandPillar_1 + str r0, [r5, 0x1C] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C6ED8: .4byte gFieldEffectArguments +_080C6EDC: .4byte 0x0000020a +_080C6EE0: .4byte SpriteCB_SandPillar_1 + thumb_func_end SpriteCB_SandPillar_0 + + thumb_func_start SpriteCB_SandPillar_1 +SpriteCB_SandPillar_1: @ 80C6EE4 + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r1, [r5, 0x2E] + movs r2, 0x2E + ldrsh r0, [r5, r2] + cmp r0, 0x11 + bgt _080C6EF8 + adds r0, r1, 0x1 + strh r0, [r5, 0x2E] + b _080C6F14 +_080C6EF8: + ldr r4, _080C6F1C @ =gFieldEffectArguments + ldr r0, [r4, 0x14] + ldr r1, [r4, 0x18] + ldr r2, _080C6F20 @ =0x00000e8c + bl MapGridSetMetatileIdAt + ldr r0, [r4, 0x14] + ldr r1, [r4, 0x18] + bl CurrentMapDrawMetatileAt + movs r0, 0 + strh r0, [r5, 0x2E] + ldr r0, _080C6F24 @ =SpriteCB_SandPillar_2 + str r0, [r5, 0x1C] +_080C6F14: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C6F1C: .4byte gFieldEffectArguments +_080C6F20: .4byte 0x00000e8c +_080C6F24: .4byte SpriteCB_SandPillar_2 + thumb_func_end SpriteCB_SandPillar_1 + + thumb_func_start SpriteCB_SandPillar_2 +SpriteCB_SandPillar_2: @ 80C6F28 + push {lr} + movs r1, 0x34 + bl FieldEffectStop + bl EnableBothScriptContexts + pop {r0} + bx r0 + thumb_func_end SpriteCB_SandPillar_2 + + thumb_func_start GetShieldToyTVDecorationInfo +GetShieldToyTVDecorationInfo: @ 80C6F38 + push {r4,lr} + sub sp, 0x4 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl GetXYCoordsOneStepInFrontOfPlayer + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileIdAt + adds r1, r0, 0 + ldr r0, _080C6F70 @ =0x000002f5 + cmp r1, r0 + beq _080C6FE8 + cmp r1, r0 + bgt _080C6F74 + subs r0, 0x17 + cmp r1, r0 + beq _080C6FB0 + adds r0, 0x16 + cmp r1, r0 + beq _080C6FDC + b _080C6FFA + .align 2, 0 +_080C6F70: .4byte 0x000002f5 +_080C6F74: + ldr r0, _080C6F9C @ =0x000002f6 + cmp r1, r0 + beq _080C6FF4 + adds r0, 0x40 + cmp r1, r0 + bne _080C6FFA + ldr r0, _080C6FA0 @ =gStringVar1 + movs r1, 0x64 + movs r2, 0 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + ldr r0, _080C6FA4 @ =gStringVar2 + ldr r1, _080C6FA8 @ =gSecretBaseText_GoldRank + bl StringCopy + ldr r1, _080C6FAC @ =gScriptResult + movs r0, 0 + b _080C6FF8 + .align 2, 0 +_080C6F9C: .4byte 0x000002f6 +_080C6FA0: .4byte gStringVar1 +_080C6FA4: .4byte gStringVar2 +_080C6FA8: .4byte gSecretBaseText_GoldRank +_080C6FAC: .4byte gScriptResult +_080C6FB0: + ldr r0, _080C6FCC @ =gStringVar1 + movs r1, 0x32 + movs r2, 0 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r0, _080C6FD0 @ =gStringVar2 + ldr r1, _080C6FD4 @ =gSecretBaseText_SilverRank + bl StringCopy + ldr r1, _080C6FD8 @ =gScriptResult + movs r0, 0 + b _080C6FF8 + .align 2, 0 +_080C6FCC: .4byte gStringVar1 +_080C6FD0: .4byte gStringVar2 +_080C6FD4: .4byte gSecretBaseText_SilverRank +_080C6FD8: .4byte gScriptResult +_080C6FDC: + ldr r1, _080C6FE4 @ =gScriptResult + movs r0, 0x1 + b _080C6FF8 + .align 2, 0 +_080C6FE4: .4byte gScriptResult +_080C6FE8: + ldr r1, _080C6FF0 @ =gScriptResult + movs r0, 0x2 + b _080C6FF8 + .align 2, 0 +_080C6FF0: .4byte gScriptResult +_080C6FF4: + ldr r1, _080C7004 @ =gScriptResult + movs r0, 0x3 +_080C6FF8: + strh r0, [r1] +_080C6FFA: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C7004: .4byte gScriptResult + thumb_func_end GetShieldToyTVDecorationInfo + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/fldeff_pc.s b/asm/fldeff_pc.s new file mode 100755 index 000000000..32afe2050 --- /dev/null +++ b/asm/fldeff_pc.s @@ -0,0 +1,190 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start FldEff_PCTurnOn +FldEff_PCTurnOn: @ 80C6718 + push {r4,lr} + sub sp, 0x4 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl GetXYCoordsOneStepInFrontOfPlayer + ldr r0, _080C6758 @ =sub_80C6760 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C675C @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + mov r0, sp + ldrh r0, [r0] + movs r2, 0 + strh r0, [r1, 0x8] + ldrh r0, [r4] + strh r0, [r1, 0xA] + strh r2, [r1, 0xC] + movs r0, 0 + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080C6758: .4byte sub_80C6760 +_080C675C: .4byte gTasks + thumb_func_end FldEff_PCTurnOn + + thumb_func_start sub_80C6760 +sub_80C6760: @ 80C6760 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080C6788 @ =gTasks + 0x8 + adds r4, r0, r1 + ldrh r0, [r4, 0x4] + subs r0, 0x4 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x10 + bhi _080C682E + lsls r0, 2 + ldr r1, _080C678C @ =_080C6790 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080C6788: .4byte gTasks + 0x8 +_080C678C: .4byte _080C6790 + .align 2, 0 +_080C6790: + .4byte _080C67D4 + .4byte _080C682E + .4byte _080C682E + .4byte _080C682E + .4byte _080C67E2 + .4byte _080C682E + .4byte _080C682E + .4byte _080C682E + .4byte _080C67D4 + .4byte _080C682E + .4byte _080C682E + .4byte _080C682E + .4byte _080C67E2 + .4byte _080C682E + .4byte _080C682E + .4byte _080C682E + .4byte _080C6800 +_080C67D4: + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0x2 + ldrsh r1, [r4, r2] + movs r2, 0x89 + lsls r2, 2 + b _080C67EE +_080C67E2: + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0x2 + ldrsh r1, [r4, r2] + movs r2, 0x88 + lsls r2, 2 +_080C67EE: + bl MapGridSetMetatileIdAt + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0x2 + ldrsh r1, [r4, r2] + bl CurrentMapDrawMetatileAt + b _080C682E +_080C6800: + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0x2 + ldrsh r1, [r4, r2] + movs r2, 0x89 + lsls r2, 2 + bl MapGridSetMetatileIdAt + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0x2 + ldrsh r1, [r4, r2] + bl CurrentMapDrawMetatileAt + movs r0, 0x3D + bl FieldEffectActiveListRemove + bl EnableBothScriptContexts + adds r0, r5, 0 + bl DestroyTask + b _080C6834 +_080C682E: + ldrh r0, [r4, 0x4] + adds r0, 0x1 + strh r0, [r4, 0x4] +_080C6834: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80C6760 + + thumb_func_start sub_80C683C +sub_80C683C: @ 80C683C + push {r4,lr} + sub sp, 0x4 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl GetXYCoordsOneStepInFrontOfPlayer + movs r0, 0x3 + bl PlaySE + ldr r0, _080C6874 @ =0x00004054 + bl VarGet + lsls r0, 16 + cmp r0, 0 + bne _080C6878 + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r4, r2] + movs r2, 0xE2 + lsls r2, 4 + bl MapGridSetMetatileIdAt + b _080C6888 + .align 2, 0 +_080C6874: .4byte 0x00004054 +_080C6878: + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r4, r2] + ldr r2, _080C68A0 @ =0x00000e21 + bl MapGridSetMetatileIdAt +_080C6888: + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r4, r2] + bl CurrentMapDrawMetatileAt + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C68A0: .4byte 0x00000e21 + thumb_func_end sub_80C683C + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/fldeff_poison.s b/asm/fldeff_poison.s new file mode 100755 index 000000000..e76ccba05 --- /dev/null +++ b/asm/fldeff_poison.s @@ -0,0 +1,99 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start Task_FieldPoisonEffect +Task_FieldPoisonEffect: @ 80C7008 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, _080C702C @ =gTasks + 0x8 + adds r1, r0, r1 + movs r3, 0 + ldrsh r0, [r1, r3] + cmp r0, 0x1 + beq _080C7046 + cmp r0, 0x1 + bgt _080C7030 + cmp r0, 0 + beq _080C7036 + b _080C7062 + .align 2, 0 +_080C702C: .4byte gTasks + 0x8 +_080C7030: + cmp r0, 0x2 + beq _080C705A + b _080C7062 +_080C7036: + ldrh r0, [r1, 0x2] + adds r0, 0x2 + strh r0, [r1, 0x2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x8 + ble _080C7062 + b _080C7052 +_080C7046: + ldrh r0, [r1, 0x2] + subs r0, 0x2 + strh r0, [r1, 0x2] + lsls r0, 16 + cmp r0, 0 + bne _080C7062 +_080C7052: + ldrh r0, [r1] + adds r0, 0x1 + strh r0, [r1] + b _080C7062 +_080C705A: + adds r0, r2, 0 + bl DestroyTask + b _080C706C +_080C7062: + ldr r2, _080C7070 @ =REG_MOSAIC + ldrh r1, [r1, 0x2] + lsls r0, r1, 4 + orrs r0, r1 + strh r0, [r2] +_080C706C: + pop {r0} + bx r0 + .align 2, 0 +_080C7070: .4byte REG_MOSAIC + thumb_func_end Task_FieldPoisonEffect + + thumb_func_start DoFieldPoisonEffect +DoFieldPoisonEffect: @ 80C7074 + push {lr} + movs r0, 0x4F + bl PlaySE + ldr r0, _080C7088 @ =Task_FieldPoisonEffect + movs r1, 0x50 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080C7088: .4byte Task_FieldPoisonEffect + thumb_func_end DoFieldPoisonEffect + + thumb_func_start FieldPoisonEffectIsRunning +FieldPoisonEffectIsRunning: @ 80C708C + push {lr} + ldr r0, _080C709C @ =Task_FieldPoisonEffect + bl FuncIsActiveTask + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .align 2, 0 +_080C709C: .4byte Task_FieldPoisonEffect + thumb_func_end FieldPoisonEffectIsRunning + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/fldeff_recordmixing.s b/asm/fldeff_recordmixing.s new file mode 100755 index 000000000..8c79cdef8 --- /dev/null +++ b/asm/fldeff_recordmixing.s @@ -0,0 +1,94 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start CreateRecordMixingSprite +CreateRecordMixingSprite: @ 80C71D8 + push {r4,r5,lr} + ldr r0, _080C722C @ =gUnknown_083D2878 + bl LoadSpritePalette + ldr r0, _080C7230 @ =gSpriteTemplate_83D2894 + movs r1, 0 + movs r2, 0 + movs r3, 0x52 + bl CreateSprite + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x40 + beq _080C7238 + lsls r0, r5, 4 + adds r0, r5 + lsls r0, 2 + ldr r1, _080C7234 @ =gSprites + adds r4, r0, r1 + adds r2, r4, 0 + adds r2, 0x20 + adds r3, r4, 0 + adds r3, 0x22 + movs r0, 0x10 + movs r1, 0xD + bl sub_8060388 + adds r2, r4, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x2 + orrs r0, r1 + strb r0, [r2] + ldrh r0, [r4, 0x20] + adds r0, 0x10 + strh r0, [r4, 0x20] + ldrh r0, [r4, 0x22] + adds r0, 0x2 + strh r0, [r4, 0x22] + adds r0, r5, 0 + b _080C723A + .align 2, 0 +_080C722C: .4byte gUnknown_083D2878 +_080C7230: .4byte gSpriteTemplate_83D2894 +_080C7234: .4byte gSprites +_080C7238: + movs r0, 0x40 +_080C723A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end CreateRecordMixingSprite + + thumb_func_start DestroyRecordMixingSprite +DestroyRecordMixingSprite: @ 80C7240 + push {r4-r7,lr} + ldr r4, _080C7274 @ =gSprites + adds r7, r4, 0 + movs r6, 0 + movs r5, 0x3F +_080C724A: + adds r0, r7, 0 + adds r0, 0x14 + adds r0, r6, r0 + ldr r1, [r0] + ldr r0, _080C7278 @ =gSpriteTemplate_83D2894 + cmp r1, r0 + bne _080C7264 + adds r0, r4, 0 + bl FreeSpritePalette + adds r0, r4, 0 + bl DestroySprite +_080C7264: + adds r4, 0x44 + adds r6, 0x44 + subs r5, 0x1 + cmp r5, 0 + bge _080C724A + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C7274: .4byte gSprites +_080C7278: .4byte gSpriteTemplate_83D2894 + thumb_func_end DestroyRecordMixingSprite + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/fldeff_secretpower.s b/asm/fldeff_secretpower.s new file mode 100755 index 000000000..a8e9b5883 --- /dev/null +++ b/asm/fldeff_secretpower.s @@ -0,0 +1,640 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_80C6264 +sub_80C6264: @ 80C6264 + push {lr} + ldr r0, _080C6278 @ =gUnknown_0203923C + ldr r1, _080C627C @ =gMapHeader + ldr r1, [r1, 0x4] + bl sub_80BBFD8 + bl sub_80BB5E4 + pop {r0} + bx r0 + .align 2, 0 +_080C6278: .4byte gUnknown_0203923C +_080C627C: .4byte gMapHeader + thumb_func_end sub_80C6264 + + thumb_func_start sub_80C6280 +sub_80C6280: @ 80C6280 + push {lr} + ldr r1, _080C6294 @ =gFieldEffectArguments + ldr r0, [r1, 0x4] + cmp r0, 0x2 + beq _080C62AA + cmp r0, 0x2 + bgt _080C6298 + cmp r0, 0x1 + beq _080C62A2 + b _080C62BE + .align 2, 0 +_080C6294: .4byte gFieldEffectArguments +_080C6298: + cmp r0, 0x3 + beq _080C62AE + cmp r0, 0x4 + beq _080C62B8 + b _080C62BE +_080C62A2: + movs r0, 0x8 + str r0, [r1, 0x14] + movs r0, 0x28 + b _080C62BC +_080C62AA: + movs r0, 0x8 + b _080C62BA +_080C62AE: + movs r0, 0x8 + negs r0, r0 + str r0, [r1, 0x14] + movs r0, 0x18 + b _080C62BC +_080C62B8: + movs r0, 0x18 +_080C62BA: + str r0, [r1, 0x14] +_080C62BC: + str r0, [r1, 0x18] +_080C62BE: + pop {r0} + bx r0 + thumb_func_end sub_80C6280 + + thumb_func_start SetUpFieldMove_SecretPower +SetUpFieldMove_SecretPower: @ 80C62C4 + push {r4,lr} + bl sub_80BB63C + ldr r0, _080C6318 @ =gScriptResult + ldrh r0, [r0] + cmp r0, 0x1 + beq _080C636E + bl player_get_direction_lower_nybble + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _080C636E + ldr r4, _080C631C @ =gUnknown_0203923C + adds r1, r4, 0x2 + adds r0, r4, 0 + bl GetXYCoordsOneStepInFrontOfPlayer + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0x2 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl MetatileBehavior_IsSecretBaseCave + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080C6330 + bl sub_80C6264 + ldr r1, _080C6320 @ =gFieldCallback + ldr r0, _080C6324 @ =FieldCallback_Teleport + str r0, [r1] + ldr r1, _080C6328 @ =gUnknown_03005CE4 + ldr r0, _080C632C @ =sub_80C639C + b _080C6380 + .align 2, 0 +_080C6318: .4byte gScriptResult +_080C631C: .4byte gUnknown_0203923C +_080C6320: .4byte gFieldCallback +_080C6324: .4byte FieldCallback_Teleport +_080C6328: .4byte gUnknown_03005CE4 +_080C632C: .4byte sub_80C639C +_080C6330: + adds r0, r4, 0 + bl MetatileBehavior_IsSecretBaseTree + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080C6360 + bl sub_80C6264 + ldr r1, _080C6350 @ =gFieldCallback + ldr r0, _080C6354 @ =FieldCallback_Teleport + str r0, [r1] + ldr r1, _080C6358 @ =gUnknown_03005CE4 + ldr r0, _080C635C @ =sub_80C64A8 + b _080C6380 + .align 2, 0 +_080C6350: .4byte gFieldCallback +_080C6354: .4byte FieldCallback_Teleport +_080C6358: .4byte gUnknown_03005CE4 +_080C635C: .4byte sub_80C64A8 +_080C6360: + adds r0, r4, 0 + bl MetatileBehavior_IsSecretBaseShrub + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080C6372 +_080C636E: + movs r0, 0 + b _080C6384 +_080C6372: + bl sub_80C6264 + ldr r1, _080C638C @ =gFieldCallback + ldr r0, _080C6390 @ =FieldCallback_Teleport + str r0, [r1] + ldr r1, _080C6394 @ =gUnknown_03005CE4 + ldr r0, _080C6398 @ =sub_80C660C +_080C6380: + str r0, [r1] + movs r0, 0x1 +_080C6384: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080C638C: .4byte gFieldCallback +_080C6390: .4byte FieldCallback_Teleport +_080C6394: .4byte gUnknown_03005CE4 +_080C6398: .4byte sub_80C660C + thumb_func_end SetUpFieldMove_SecretPower + + thumb_func_start sub_80C639C +sub_80C639C: @ 80C639C + push {lr} + ldr r1, _080C63B0 @ =gFieldEffectArguments + ldr r0, _080C63B4 @ =gLastFieldPokeMenuOpened + ldrb r0, [r0] + str r0, [r1] + ldr r0, _080C63B8 @ =gUnknown_081A2CE6 + bl ScriptContext1_SetupScript + pop {r0} + bx r0 + .align 2, 0 +_080C63B0: .4byte gFieldEffectArguments +_080C63B4: .4byte gLastFieldPokeMenuOpened +_080C63B8: .4byte gUnknown_081A2CE6 + thumb_func_end sub_80C639C + + thumb_func_start FldEff_UseSecretPowerCave +FldEff_UseSecretPowerCave: @ 80C63BC + push {lr} + bl oei_task_add + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C63E0 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, _080C63E4 @ =sub_80C63E8 + lsrs r0, r2, 16 + strh r0, [r1, 0x18] + strh r2, [r1, 0x1A] + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_080C63E0: .4byte gTasks +_080C63E4: .4byte sub_80C63E8 + thumb_func_end FldEff_UseSecretPowerCave + + thumb_func_start sub_80C63E8 +sub_80C63E8: @ 80C63E8 + push {lr} + movs r0, 0xB + bl FieldEffectActiveListRemove + movs r0, 0x37 + bl FieldEffectStart + pop {r0} + bx r0 + thumb_func_end sub_80C63E8 + + thumb_func_start FldEff_SecretPowerCave +FldEff_SecretPowerCave: @ 80C63FC + push {r4,lr} + bl sub_80C6280 + ldr r0, _080C643C @ =gSpriteTemplate_83D2614 + ldr r3, _080C6440 @ =gSprites + ldr r1, _080C6444 @ =gPlayerAvatar + ldrb r1, [r1, 0x4] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r3 + ldrh r1, [r2, 0x2] + lsls r1, 23 + lsrs r1, 23 + ldr r4, _080C6448 @ =gFieldEffectArguments + ldr r3, [r4, 0x14] + adds r1, r3 + lsls r1, 16 + asrs r1, 16 + ldrb r2, [r2] + ldr r3, [r4, 0x18] + adds r2, r3 + lsls r2, 16 + asrs r2, 16 + movs r3, 0x94 + bl CreateSprite + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080C643C: .4byte gSpriteTemplate_83D2614 +_080C6440: .4byte gSprites +_080C6444: .4byte gPlayerAvatar +_080C6448: .4byte gFieldEffectArguments + thumb_func_end FldEff_SecretPowerCave + + thumb_func_start sub_80C644C +sub_80C644C: @ 80C644C + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x83 + bl PlaySE + movs r0, 0 + strh r0, [r4, 0x2E] + ldr r0, _080C6464 @ =sub_80C6468 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C6464: .4byte sub_80C6468 + thumb_func_end sub_80C644C + + thumb_func_start sub_80C6468 +sub_80C6468: @ 80C6468 + push {lr} + adds r1, r0, 0 + ldrh r2, [r1, 0x2E] + movs r3, 0x2E + ldrsh r0, [r1, r3] + cmp r0, 0x27 + bgt _080C6488 + adds r0, r2, 0x1 + strh r0, [r1, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + bne _080C6490 + bl sub_80BB800 + b _080C6490 +_080C6488: + movs r0, 0 + strh r0, [r1, 0x2E] + ldr r0, _080C6494 @ =sub_80C6498 + str r0, [r1, 0x1C] +_080C6490: + pop {r0} + bx r0 + .align 2, 0 +_080C6494: .4byte sub_80C6498 + thumb_func_end sub_80C6468 + + thumb_func_start sub_80C6498 +sub_80C6498: @ 80C6498 + push {lr} + movs r1, 0x37 + bl FieldEffectStop + bl EnableBothScriptContexts + pop {r0} + bx r0 + thumb_func_end sub_80C6498 + + thumb_func_start sub_80C64A8 +sub_80C64A8: @ 80C64A8 + push {lr} + ldr r1, _080C64BC @ =gFieldEffectArguments + ldr r0, _080C64C0 @ =gLastFieldPokeMenuOpened + ldrb r0, [r0] + str r0, [r1] + ldr r0, _080C64C4 @ =gUnknown_081A2D3E + bl ScriptContext1_SetupScript + pop {r0} + bx r0 + .align 2, 0 +_080C64BC: .4byte gFieldEffectArguments +_080C64C0: .4byte gLastFieldPokeMenuOpened +_080C64C4: .4byte gUnknown_081A2D3E + thumb_func_end sub_80C64A8 + + thumb_func_start FldEff_UseSecretPowerTree +FldEff_UseSecretPowerTree: @ 80C64C8 + push {lr} + bl oei_task_add + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C64EC @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, _080C64F0 @ =sub_80C64F4 + lsrs r0, r2, 16 + strh r0, [r1, 0x18] + strh r2, [r1, 0x1A] + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_080C64EC: .4byte gTasks +_080C64F0: .4byte sub_80C64F4 + thumb_func_end FldEff_UseSecretPowerTree + + thumb_func_start sub_80C64F4 +sub_80C64F4: @ 80C64F4 + push {lr} + movs r0, 0x1A + bl FieldEffectActiveListRemove + movs r0, 0x38 + bl FieldEffectStart + pop {r0} + bx r0 + thumb_func_end sub_80C64F4 + + thumb_func_start FldEff_SecretPowerTree +FldEff_SecretPowerTree: @ 80C6508 + push {r4,lr} + ldr r1, _080C6580 @ =gUnknown_0203923C + movs r2, 0 + ldrsh r0, [r1, r2] + movs r2, 0x2 + ldrsh r1, [r1, r2] + bl MapGridGetMetatileBehaviorAt + adds r2, r0, 0 + ldr r1, _080C6584 @ =0x00000fff + adds r0, r1, 0 + ands r2, r0 + cmp r2, 0x96 + bne _080C652A + ldr r1, _080C6588 @ =gFieldEffectArguments + movs r0, 0 + str r0, [r1, 0x1C] +_080C652A: + cmp r2, 0x9C + bne _080C6534 + ldr r1, _080C6588 @ =gFieldEffectArguments + movs r0, 0x2 + str r0, [r1, 0x1C] +_080C6534: + bl sub_80C6280 + ldr r0, _080C658C @ =gSpriteTemplate_83D262C + ldr r3, _080C6590 @ =gSprites + ldr r1, _080C6594 @ =gPlayerAvatar + ldrb r1, [r1, 0x4] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r3 + ldrh r1, [r2, 0x2] + lsls r1, 23 + lsrs r1, 23 + ldr r4, _080C6588 @ =gFieldEffectArguments + ldr r3, [r4, 0x14] + adds r1, r3 + lsls r1, 16 + asrs r1, 16 + ldrb r2, [r2] + ldr r3, [r4, 0x18] + adds r2, r3 + lsls r2, 16 + asrs r2, 16 + movs r3, 0x94 + bl CreateSprite + ldr r0, [r4, 0x1C] + cmp r0, 0x1 + beq _080C6572 + cmp r0, 0x3 + bne _080C6576 +_080C6572: + bl sub_80BB800 +_080C6576: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080C6580: .4byte gUnknown_0203923C +_080C6584: .4byte 0x00000fff +_080C6588: .4byte gFieldEffectArguments +_080C658C: .4byte gSpriteTemplate_83D262C +_080C6590: .4byte gSprites +_080C6594: .4byte gPlayerAvatar + thumb_func_end FldEff_SecretPowerTree + + thumb_func_start sub_80C6598 +sub_80C6598: @ 80C6598 + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x9B + bl PlaySE + ldr r0, _080C65BC @ =gFieldEffectArguments + ldr r1, [r0, 0x1C] + adds r2, r4, 0 + adds r2, 0x2A + movs r0, 0 + strb r1, [r2] + strh r0, [r4, 0x2E] + ldr r0, _080C65C0 @ =sub_80C65C4 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C65BC: .4byte gFieldEffectArguments +_080C65C0: .4byte sub_80C65C4 + thumb_func_end sub_80C6598 + + thumb_func_start sub_80C65C4 +sub_80C65C4: @ 80C65C4 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + adds r0, 0x1 + strh r0, [r4, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x27 + ble _080C65EE + ldr r0, _080C65F4 @ =gFieldEffectArguments + ldr r0, [r0, 0x1C] + cmp r0, 0 + beq _080C65E2 + cmp r0, 0x2 + bne _080C65E6 +_080C65E2: + bl sub_80BB800 +_080C65E6: + movs r0, 0 + strh r0, [r4, 0x2E] + ldr r0, _080C65F8 @ =sub_80C65FC + str r0, [r4, 0x1C] +_080C65EE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C65F4: .4byte gFieldEffectArguments +_080C65F8: .4byte sub_80C65FC + thumb_func_end sub_80C65C4 + + thumb_func_start sub_80C65FC +sub_80C65FC: @ 80C65FC + push {lr} + movs r1, 0x38 + bl FieldEffectStop + bl EnableBothScriptContexts + pop {r0} + bx r0 + thumb_func_end sub_80C65FC + + thumb_func_start sub_80C660C +sub_80C660C: @ 80C660C + push {lr} + ldr r1, _080C6620 @ =gFieldEffectArguments + ldr r0, _080C6624 @ =gLastFieldPokeMenuOpened + ldrb r0, [r0] + str r0, [r1] + ldr r0, _080C6628 @ =gUnknown_081A2D96 + bl ScriptContext1_SetupScript + pop {r0} + bx r0 + .align 2, 0 +_080C6620: .4byte gFieldEffectArguments +_080C6624: .4byte gLastFieldPokeMenuOpened +_080C6628: .4byte gUnknown_081A2D96 + thumb_func_end sub_80C660C + + thumb_func_start FldEff_UseSecretPowerShrub +FldEff_UseSecretPowerShrub: @ 80C662C + push {lr} + bl oei_task_add + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080C6650 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + ldr r2, _080C6654 @ =sub_80C6658 + lsrs r0, r2, 16 + strh r0, [r1, 0x18] + strh r2, [r1, 0x1A] + movs r0, 0 + pop {r1} + bx r1 + .align 2, 0 +_080C6650: .4byte gTasks +_080C6654: .4byte sub_80C6658 + thumb_func_end FldEff_UseSecretPowerShrub + + thumb_func_start sub_80C6658 +sub_80C6658: @ 80C6658 + push {lr} + movs r0, 0x1B + bl FieldEffectActiveListRemove + movs r0, 0x39 + bl FieldEffectStart + pop {r0} + bx r0 + thumb_func_end sub_80C6658 + + thumb_func_start FldEff_SecretPowerShrub +FldEff_SecretPowerShrub: @ 80C666C + push {r4,lr} + bl sub_80C6280 + ldr r0, _080C66AC @ =gSpriteTemplate_83D2644 + ldr r3, _080C66B0 @ =gSprites + ldr r1, _080C66B4 @ =gPlayerAvatar + ldrb r1, [r1, 0x4] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r3 + ldrh r1, [r2, 0x2] + lsls r1, 23 + lsrs r1, 23 + ldr r4, _080C66B8 @ =gFieldEffectArguments + ldr r3, [r4, 0x14] + adds r1, r3 + lsls r1, 16 + asrs r1, 16 + ldrb r2, [r2] + ldr r3, [r4, 0x18] + adds r2, r3 + lsls r2, 16 + asrs r2, 16 + movs r3, 0x94 + bl CreateSprite + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080C66AC: .4byte gSpriteTemplate_83D2644 +_080C66B0: .4byte gSprites +_080C66B4: .4byte gPlayerAvatar +_080C66B8: .4byte gFieldEffectArguments + thumb_func_end FldEff_SecretPowerShrub + + thumb_func_start sub_80C66BC +sub_80C66BC: @ 80C66BC + push {r4,lr} + adds r4, r0, 0 + movs r0, 0xA9 + bl PlaySE + movs r0, 0 + strh r0, [r4, 0x2E] + ldr r0, _080C66D4 @ =sub_80C66D8 + str r0, [r4, 0x1C] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C66D4: .4byte sub_80C66D8 + thumb_func_end sub_80C66BC + + thumb_func_start sub_80C66D8 +sub_80C66D8: @ 80C66D8 + push {lr} + adds r1, r0, 0 + ldrh r2, [r1, 0x2E] + movs r3, 0x2E + ldrsh r0, [r1, r3] + cmp r0, 0x27 + bgt _080C66F8 + adds r0, r2, 0x1 + strh r0, [r1, 0x2E] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + bne _080C6700 + bl sub_80BB800 + b _080C6700 +_080C66F8: + movs r0, 0 + strh r0, [r1, 0x2E] + ldr r0, _080C6704 @ =sub_80C6708 + str r0, [r1, 0x1C] +_080C6700: + pop {r0} + bx r0 + .align 2, 0 +_080C6704: .4byte sub_80C6708 + thumb_func_end sub_80C66D8 + + thumb_func_start sub_80C6708 +sub_80C6708: @ 80C6708 + push {lr} + movs r1, 0x39 + bl FieldEffectStop + bl EnableBothScriptContexts + pop {r0} + bx r0 + thumb_func_end sub_80C6708 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/pc_screen_effect.s b/asm/pc_screen_effect.s new file mode 100755 index 000000000..d549d85e1 --- /dev/null +++ b/asm/pc_screen_effect.s @@ -0,0 +1,726 @@ + .include "constants/gba_constants.inc" + .include "constants/species_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_80C5CD4 +sub_80C5CD4: @ 80C5CD4 + push {r4-r7,lr} + sub sp, 0x28 + adds r7, r0, 0 + ldr r0, _080C5D64 @ =gUnknown_083D1898 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x18] + str r1, [sp, 0x1C] + ldr r0, _080C5D68 @ =gUnknown_083D18A0 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x20] + str r1, [sp, 0x24] + mov r1, sp + ldr r0, _080C5D6C @ =gSpriteTemplate_83D18A8 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldrh r3, [r7] + lsls r2, r3, 16 + add r0, sp, 0x18 + ldrh r1, [r0, 0x4] + orrs r1, r2 + str r1, [r0, 0x4] + mov r1, sp + movs r6, 0 + strh r3, [r1] + ldrh r2, [r7, 0x2] + ldr r5, _080C5D70 @ =0xffff0000 + add r4, sp, 0x20 + ldr r1, [r4, 0x4] + ands r1, r5 + orrs r1, r2 + str r1, [r4, 0x4] + mov r1, sp + strh r2, [r1, 0x2] + bl LoadSpriteSheet + adds r0, r4, 0 + bl LoadSpritePalette + movs r0, 0x1 + strh r0, [r7, 0xC] + strh r6, [r7, 0xA] + strh r6, [r7, 0x8] + ldrh r0, [r7, 0x2] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x80 + lsls r1, 9 + lsls r1, r0 + bics r5, r1 + str r5, [r7, 0x10] + ldrh r0, [r7, 0x4] + cmp r0, 0 + bne _080C5D4E + movs r0, 0x10 + strh r0, [r7, 0x4] +_080C5D4E: + ldrh r0, [r7, 0x6] + cmp r0, 0 + bne _080C5D58 + movs r0, 0x14 + strh r0, [r7, 0x6] +_080C5D58: + ldr r0, _080C5D74 @ =gUnknown_020387EC + str r7, [r0] + movs r4, 0 + ldr r5, _080C5D78 @ =gSprites + b _080C5D94 + .align 2, 0 +_080C5D64: .4byte gUnknown_083D1898 +_080C5D68: .4byte gUnknown_083D18A0 +_080C5D6C: .4byte gSpriteTemplate_83D18A8 +_080C5D70: .4byte 0xffff0000 +_080C5D74: .4byte gUnknown_020387EC +_080C5D78: .4byte gSprites +_080C5D7C: + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrh r1, [r7, 0x4] + cmp r4, 0x3 + bhi _080C5D8C + negs r1, r1 +_080C5D8C: + strh r1, [r0, 0x2E] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_080C5D94: + cmp r4, 0x7 + bhi _080C5DB2 + lsls r1, r4, 5 + adds r1, 0x8 + lsls r1, 16 + asrs r1, 16 + mov r0, sp + movs r2, 0x50 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + bne _080C5D7C +_080C5DB2: + ldr r1, _080C5DC8 @ =REG_BLDCNT + movs r0, 0xBF + strh r0, [r1] + adds r1, 0x4 + movs r0, 0x10 + strh r0, [r1] + add sp, 0x28 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C5DC8: .4byte REG_BLDCNT + thumb_func_end sub_80C5CD4 + + thumb_func_start sub_80C5DCC +sub_80C5DCC: @ 80C5DCC + push {r4,lr} + ldr r4, _080C5E10 @ =gUnknown_020387EC + ldr r1, [r4] + ldrh r0, [r1, 0x8] + cmp r0, 0 + bne _080C5DF0 + ldr r0, [r1, 0x10] + ldr r2, _080C5E14 @ =0x0000ffff + movs r1, 0x10 + bl BlendPalettes + ldr r0, _080C5E18 @ =sub_80C603C + bl sub_80C61B0 + ldr r1, [r4] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_080C5DF0: + ldr r1, [r4] + ldrh r0, [r1, 0xA] + cmp r0, 0x7 + bls _080C5E0A + ldrh r0, [r1, 0x6] + ldrh r2, [r1, 0xC] + adds r0, r2 + movs r2, 0 + strh r0, [r1, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x4F + bgt _080C5E1C +_080C5E0A: + movs r0, 0 + b _080C5E2E + .align 2, 0 +_080C5E10: .4byte gUnknown_020387EC +_080C5E14: .4byte 0x0000ffff +_080C5E18: .4byte sub_80C603C +_080C5E1C: + movs r0, 0x50 + strh r0, [r1, 0xC] + ldr r0, _080C5E34 @ =REG_BLDCNT + strh r2, [r0] + adds r0, 0x4 + strh r2, [r0] + bl ClearGpuRegBits + movs r0, 0x1 +_080C5E2E: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080C5E34: .4byte REG_BLDCNT + thumb_func_end sub_80C5DCC + + thumb_func_start sub_80C5E38 +sub_80C5E38: @ 80C5E38 + push {r4-r7,lr} + sub sp, 0x28 + adds r7, r0, 0 + ldr r0, _080C5EC8 @ =gUnknown_083D1898 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x18] + str r1, [sp, 0x1C] + ldr r0, _080C5ECC @ =gUnknown_083D18A0 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [sp, 0x20] + str r1, [sp, 0x24] + mov r1, sp + ldr r0, _080C5ED0 @ =gSpriteTemplate_83D18C0 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldrh r3, [r7] + lsls r2, r3, 16 + add r0, sp, 0x18 + ldrh r1, [r0, 0x4] + orrs r1, r2 + str r1, [r0, 0x4] + mov r1, sp + movs r6, 0 + strh r3, [r1] + ldrh r2, [r7, 0x2] + ldr r5, _080C5ED4 @ =0xffff0000 + add r4, sp, 0x20 + ldr r1, [r4, 0x4] + ands r1, r5 + orrs r1, r2 + str r1, [r4, 0x4] + mov r1, sp + strh r2, [r1, 0x2] + bl LoadSpriteSheet + adds r0, r4, 0 + bl LoadSpritePalette + movs r0, 0x50 + strh r0, [r7, 0xC] + strh r6, [r7, 0x8] + strh r6, [r7, 0xA] + ldrh r0, [r7, 0x2] + bl IndexOfSpritePaletteTag + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x80 + lsls r1, 9 + lsls r1, r0 + bics r5, r1 + str r5, [r7, 0x10] + ldrh r0, [r7, 0x4] + cmp r0, 0 + bne _080C5EB2 + movs r0, 0x10 + strh r0, [r7, 0x4] +_080C5EB2: + ldrh r0, [r7, 0x6] + cmp r0, 0 + bne _080C5EBC + movs r0, 0x14 + strh r0, [r7, 0x6] +_080C5EBC: + ldr r0, _080C5ED8 @ =gUnknown_020387EC + str r7, [r0] + movs r5, 0 + ldr r6, _080C5EDC @ =gSprites + b _080C5F4A + .align 2, 0 +_080C5EC8: .4byte gUnknown_083D1898 +_080C5ECC: .4byte gUnknown_083D18A0 +_080C5ED0: .4byte gSpriteTemplate_83D18C0 +_080C5ED4: .4byte 0xffff0000 +_080C5ED8: .4byte gUnknown_020387EC +_080C5EDC: .4byte gSprites +_080C5EE0: + lsls r2, r3, 4 + adds r1, r2, r3 + lsls r1, 2 + adds r1, r6 + ldrh r0, [r7, 0x4] + strh r0, [r1, 0x2E] + movs r0, 0x1 + strh r0, [r1, 0x30] + ldr r1, _080C5EF4 @ =gSprites + b _080C5F2A + .align 2, 0 +_080C5EF4: .4byte gSprites +_080C5EF8: + lsls r1, r5, 21 + movs r0, 0x80 + lsls r0, 16 + adds r1, r0 + asrs r1, 16 + mov r0, sp + movs r2, 0x50 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + beq _080C5F6E + lsls r2, r3, 4 + adds r1, r2, r3 + lsls r1, 2 + adds r1, r6 + ldrh r0, [r7, 0x4] + negs r0, r0 + strh r0, [r1, 0x2E] + ldr r0, _080C5F88 @ =0x0000ffff + strh r0, [r1, 0x30] + ldr r1, _080C5F8C @ =gSprites + lsls r4, r5, 5 +_080C5F2A: + adds r0, r2, r3 + lsls r0, 2 + adds r0, r1 + adds r1, r4, 0 + adds r1, 0x8 + movs r2, 0 + strh r1, [r0, 0x32] + strh r2, [r0, 0x36] + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 +_080C5F4A: + cmp r5, 0x7 + bhi _080C5F6E + cmp r5, 0x3 + bhi _080C5EF8 + lsls r4, r5, 5 + adds r1, r4, 0 + subs r1, 0x70 + lsls r1, 16 + asrs r1, 16 + mov r0, sp + movs r2, 0x50 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x40 + bne _080C5EE0 +_080C5F6E: + ldr r1, _080C5F90 @ =REG_BLDCNT + movs r0, 0xFF + strh r0, [r1] + adds r1, 0x4 + movs r0, 0x10 + strh r0, [r1] + ldr r0, _080C5F94 @ =sub_80C6078 + bl sub_80C61B0 + add sp, 0x28 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080C5F88: .4byte 0x0000ffff +_080C5F8C: .4byte gSprites +_080C5F90: .4byte REG_BLDCNT +_080C5F94: .4byte sub_80C6078 + thumb_func_end sub_80C5E38 + + thumb_func_start sub_80C5F98 +sub_80C5F98: @ 80C5F98 + push {r4,lr} + ldr r4, _080C5FB0 @ =gUnknown_020387EC + ldr r2, [r4] + ldrh r0, [r2, 0x8] + cmp r0, 0x1 + beq _080C5FEC + cmp r0, 0x1 + bgt _080C5FB4 + cmp r0, 0 + beq _080C5FBA + b _080C602C + .align 2, 0 +_080C5FB0: .4byte gUnknown_020387EC +_080C5FB4: + cmp r0, 0x2 + beq _080C6008 + b _080C602C +_080C5FBA: + ldrh r0, [r2, 0xC] + ldrh r1, [r2, 0x6] + subs r0, r1 + strh r0, [r2, 0xC] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x1 + bgt _080C6034 + ldr r0, [r2, 0x10] + ldr r2, _080C5FE4 @ =0x0000ffff + movs r1, 0x10 + bl BlendPalettes + ldr r0, _080C5FE8 @ =sub_80C603C + bl SetHBlankCallback + ldr r1, [r4] + movs r0, 0x1 + strh r0, [r1, 0xC] + b _080C6000 + .align 2, 0 +_080C5FE4: .4byte 0x0000ffff +_080C5FE8: .4byte sub_80C603C +_080C5FEC: + ldrh r0, [r2, 0xA] + cmp r0, 0x8 + bne _080C6034 + movs r0, 0x1 + negs r0, r0 + movs r1, 0x10 + movs r2, 0 + bl BlendPalettes + ldr r1, [r4] +_080C6000: + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _080C6034 +_080C6008: + ldr r0, _080C6030 @ =REG_BLDCNT + movs r1, 0 + strh r1, [r0] + adds r0, 0x4 + strh r1, [r0] + ldrh r0, [r2] + bl FreeSpriteTilesByTag + ldr r0, [r4] + ldrh r0, [r0, 0x2] + bl FreeSpritePaletteByTag + bl ClearGpuRegBits + ldr r1, [r4] + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] +_080C602C: + movs r0, 0x1 + b _080C6036 + .align 2, 0 +_080C6030: .4byte REG_BLDCNT +_080C6034: + movs r0, 0 +_080C6036: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80C5F98 + + thumb_func_start sub_80C603C +sub_80C603C: @ 80C603C + push {lr} + sub sp, 0x4 + mov r2, sp + ldr r0, _080C6060 @ =REG_VCOUNT + ldrh r1, [r0] + movs r3, 0xFF + adds r0, r3, 0 + ands r0, r1 + strh r0, [r2] + mov r0, sp + ldrh r0, [r0] + cmp r0, 0x50 + bne _080C6068 + ldr r1, _080C6064 @ =REG_BLDCNT + movs r0, 0x8F + strh r0, [r1] + b _080C606C + .align 2, 0 +_080C6060: .4byte REG_VCOUNT +_080C6064: .4byte REG_BLDCNT +_080C6068: + ldr r0, _080C6074 @ =REG_BLDCNT + strh r3, [r0] +_080C606C: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080C6074: .4byte REG_BLDCNT + thumb_func_end sub_80C603C + + thumb_func_start sub_80C6078 +sub_80C6078: @ 80C6078 + push {lr} + sub sp, 0x4 + mov r2, sp + ldr r0, _080C60B0 @ =REG_VCOUNT + ldrh r1, [r0] + movs r0, 0xFF + ands r0, r1 + strh r0, [r2] + mov r0, sp + ldrh r1, [r0] + ldr r0, _080C60B4 @ =gUnknown_020387EC + ldr r0, [r0] + movs r3, 0xC + ldrsh r2, [r0, r3] + movs r0, 0x50 + subs r0, r2 + cmp r1, r0 + ble _080C60BC + mov r0, sp + ldrh r1, [r0] + adds r0, r2, 0 + adds r0, 0x50 + cmp r1, r0 + bge _080C60BC + ldr r1, _080C60B8 @ =REG_BLDY + movs r0, 0 + b _080C60C0 + .align 2, 0 +_080C60B0: .4byte REG_VCOUNT +_080C60B4: .4byte gUnknown_020387EC +_080C60B8: .4byte REG_BLDY +_080C60BC: + ldr r1, _080C60C8 @ =REG_BLDY + movs r0, 0x10 +_080C60C0: + strh r0, [r1] + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_080C60C8: .4byte REG_BLDY + thumb_func_end sub_80C6078 + + thumb_func_start sub_80C60CC +sub_80C60CC: @ 80C60CC + push {r4,lr} + adds r2, r0, 0 + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x20] + adds r0, r1 + strh r0, [r2, 0x20] + adds r0, 0x8 + lsls r0, 16 + movs r1, 0x80 + lsls r1, 17 + cmp r0, r1 + bls _080C611C + adds r0, r2, 0 + bl DestroySprite + ldr r4, _080C6124 @ =gUnknown_020387EC + ldr r1, [r4] + ldrh r0, [r1, 0xA] + adds r0, 0x1 + strh r0, [r1, 0xA] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x8 + bne _080C611C + ldrh r0, [r1] + bl FreeSpriteTilesByTag + ldr r0, [r4] + ldrh r0, [r0, 0x2] + bl FreeSpritePaletteByTag + ldr r0, [r4] + ldr r0, [r0, 0x10] + ldr r2, _080C6128 @ =0x0000ffff + movs r1, 0 + bl BlendPalettes + ldr r0, _080C612C @ =sub_80C6078 + bl SetHBlankCallback +_080C611C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080C6124: .4byte gUnknown_020387EC +_080C6128: .4byte 0x0000ffff +_080C612C: .4byte sub_80C6078 + thumb_func_end sub_80C60CC + + thumb_func_start sub_80C6130 +sub_80C6130: @ 80C6130 + push {r4,r5,lr} + adds r2, r0, 0 + movs r1, 0x36 + ldrsh r0, [r2, r1] + cmp r0, 0 + bne _080C61AA + ldr r1, _080C6184 @ =gUnknown_020387EC + ldr r0, [r1] + movs r3, 0xC + ldrsh r4, [r0, r3] + adds r5, r1, 0 + cmp r4, 0x1 + bne _080C61AA + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x20] + adds r0, r1 + strh r0, [r2, 0x20] + adds r0, 0xF + lsls r0, 16 + movs r1, 0x87 + lsls r1, 17 + cmp r0, r1 + bhi _080C616C + adds r3, r2, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r3] +_080C616C: + movs r3, 0x30 + ldrsh r0, [r2, r3] + cmp r0, 0 + ble _080C6188 + movs r0, 0x20 + ldrsh r1, [r2, r0] + movs r3, 0x32 + ldrsh r0, [r2, r3] + cmp r1, r0 + blt _080C6196 + b _080C6194 + .align 2, 0 +_080C6184: .4byte gUnknown_020387EC +_080C6188: + movs r0, 0x20 + ldrsh r1, [r2, r0] + movs r3, 0x32 + ldrsh r0, [r2, r3] + cmp r1, r0 + bgt _080C6196 +_080C6194: + strh r4, [r2, 0x36] +_080C6196: + movs r1, 0x36 + ldrsh r0, [r2, r1] + cmp r0, 0 + beq _080C61AA + ldr r0, [r5] + ldrh r1, [r0, 0xA] + adds r1, 0x1 + strh r1, [r0, 0xA] + ldrh r0, [r2, 0x32] + strh r0, [r2, 0x20] +_080C61AA: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80C6130 + + thumb_func_start sub_80C61B0 +sub_80C61B0: @ 80C61B0 + push {r4-r6,lr} + ldr r2, _080C61F0 @ =INTR_CHECK + ldrh r1, [r2] + movs r5, 0x2 + orrs r1, r5 + strh r1, [r2] + ldr r3, _080C61F4 @ =REG_DISPSTAT + ldrh r1, [r3] + movs r2, 0x10 + orrs r1, r2 + strh r1, [r3] + ldr r4, _080C61F8 @ =0x04000208 + ldrh r2, [r4] + movs r6, 0 + strh r6, [r4] + ldr r3, _080C61FC @ =0x04000200 + ldrh r1, [r3] + orrs r1, r5 + strh r1, [r3] + strh r2, [r4] + ldr r2, _080C6200 @ =gMain + ldrh r1, [r2, 0x1C] + orrs r1, r5 + ldrh r3, [r2, 0x1C] + orrs r1, r6 + strh r1, [r2, 0x1C] + bl SetHBlankCallback + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080C61F0: .4byte INTR_CHECK +_080C61F4: .4byte REG_DISPSTAT +_080C61F8: .4byte 0x04000208 +_080C61FC: .4byte 0x04000200 +_080C6200: .4byte gMain + thumb_func_end sub_80C61B0 + + thumb_func_start ClearGpuRegBits +ClearGpuRegBits: @ 80C6204 + push {r4,r5,lr} + ldr r3, _080C6248 @ =INTR_CHECK + ldrh r1, [r3] + ldr r2, _080C624C @ =0x0000fffd + adds r0, r2, 0 + ands r0, r1 + strh r0, [r3] + ldr r3, _080C6250 @ =REG_DISPSTAT + ldrh r1, [r3] + ldr r0, _080C6254 @ =0x0000ffef + ands r0, r1 + strh r0, [r3] + ldr r4, _080C6258 @ =0x04000208 + ldrh r3, [r4] + movs r0, 0 + strh r0, [r4] + ldr r5, _080C625C @ =0x04000200 + ldrh r1, [r5] + adds r0, r2, 0 + ands r0, r1 + strh r0, [r5] + strh r3, [r4] + ldr r0, _080C6260 @ =gMain + ldrh r1, [r0, 0x1C] + ands r2, r1 + ldrh r1, [r0, 0x1C] + strh r2, [r0, 0x1C] + movs r0, 0 + bl SetHBlankCallback + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080C6248: .4byte INTR_CHECK +_080C624C: .4byte 0x0000fffd +_080C6250: .4byte REG_DISPSTAT +_080C6254: .4byte 0x0000ffef +_080C6258: .4byte 0x04000208 +_080C625C: .4byte 0x04000200 +_080C6260: .4byte gMain + thumb_func_end ClearGpuRegBits + + .align 2, 0 @ Don't pad with nop. diff --git a/data-de/text/battle_strings.inc b/data-de/text/battle_strings.inc deleted file mode 100644 index 0df0e87b4..000000000 --- a/data-de/text/battle_strings.inc +++ /dev/null @@ -1,2315 +0,0 @@ -BattleText_UnknownString: - .string "{STRING 33}$" -BattleText_GainExpPoints: - .string "{STRING 0} erhält{PLAYER}\n" - .string "{STRING 42} E-Punkte!\p" - .string "$" -BattleText_Terminator: - .string "$" -BattleText_BoostedExp: - .string " spezielle$" -BattleText_GrewLevel: - .string "{STRING 0} erreicht\n" - .string "Lv. {PLAYER}!{UNKNOWN_A}\p" - .string "$" -BattleText_LearnedMove: - .string "{STRING 0} erlernt\n" - .string "{PLAYER}!{UNKNOWN_A}\p" - .string "$" -BattleText_TryingToLearnMove: - .string "{STRING 0} versucht,\n" - .string "{PLAYER} zu lernen.\p" - .string "$" -BattleText_CantLearnMore: - .string "Aber {STRING 0} kann nicht\n" - .string "mehr als vier Attacken erlernen.\p" - .string "$" -BattleText_DeleteMove: - .string "Soll eine Attacke zu Gunsten von\n" - .string "{PLAYER} vergessen werden?$" -BattleText_DeletedMove: - .string "{STRING 0} hat\n" - .string "{PLAYER} vergessen!\p" - .string "$" -BattleText_StopLearning: - .string "{PAUSE 32}{PLAYER}\n" - .string "nicht erlernen?$" -BattleText_DidNotLearn: - .string "{STRING 0} hat {PLAYER}\n" - .string "nicht erlernt.\p" - .string "$" -BattleText_UseNext: - .string "Nächstes POKéMON einsetzen?$" -BattleText_AttackMissed: - .string "Attacke von {EVIL_LEGENDARY}\n" - .string "ging daneben!$" -BattleText_ProtectedItself: - .string "{GOOD_LEGENDARY}\n" - .string "schützt sich selbst!$" -BattleText_AvoidedDamage: - .string "{GOOD_LEGENDARY} vermeidet\n" - .string "Schaden mit {STRING 22}!$" -BattleText_GroundMoveNegate: - .string "{GOOD_LEGENDARY} wehrt BODEN-\n" - .string "Attacken mit {STRING 22} ab!$" -BattleText_AvoidedAttack: - .string "{GOOD_LEGENDARY} wehrt die\n" - .string "Attacke ab!$" -BattleText_DoesntAffect: - .string "Es hat keine Wirkung auf\n" - .string "{GOOD_LEGENDARY}...$" -BattleText_AttackingFainted: - .string "{EVIL_LEGENDARY}\n" - .string "wurde besiegt!\p" - .string "$" -BattleText_DefendingFainted: - .string "{GOOD_LEGENDARY}\n" - .string "wurde besiegt!\p" - .string "$" -BattleText_WinningPrize: - .string "{STRING 32} gewinnt ¥{STRING 0}!\p" - .string "$" -BattleText_OutOfUsablePoke: - .string "{STRING 32} hat kein\n" - .string "kampffähiges POKéMON mehr!\p" - .string "$" -BattleText_WhitedOut: - .string "{STRING 32} fällt in Ohnmacht!{PAUSE_UNTIL_PRESS}$" -BattleText_PreventEscape: - .string "{STRING 16} verhindert\n" - .string "eine Flucht mit {STRING 23}!\p" - .string "$" -BattleText_CantEscape: - .string "Flucht unmöglich!\p" - .string "$" -BattleText_AttackingCantEscape: - .string "{EVIL_LEGENDARY}\n" - .string "kann nicht fliehen!$" -BattleText_HitMulti: - .string "{STRING 0}-mal getroffen!$" -BattleText_FellAsleep: - .string "{STRING 14}\n" - .string "ist eingeschlafen!$" -BattleText_MadeAsleep: - .string "{STRING 23} von\n" - .string "{STRING 16} lässt\l" - .string "{STRING 14} einschlafen!$" -BattleText_DefendingAsleep: - .string "{GOOD_LEGENDARY} schläft\n" - .string "bereits!$" -BattleText_AttackingAsleep: - .string "{EVIL_LEGENDARY} schläft\n" - .string "bereits!$" -BattleText_WasntAffected: - .string "{GOOD_LEGENDARY}\n" - .string "ist unversehrt!$" -BattleText_Poisoned: - .string "{STRING 14}\n" - .string "wurde vergiftet!$" -BattleText_Poisoned2: - .string "{STRING 23} von\n" - .string "{STRING 16} vergiftete\l" - .string "{STRING 14}!$" -BattleText_PoisonHurt: - .string "{EVIL_LEGENDARY} wurde durch\n" - .string "Gift verletzt!$" -BattleText_AlreadyPoisoned: - .string "{GOOD_LEGENDARY} ist bereits\n" - .string "vergiftet.$" -BattleText_BadlyPoisoned: - .string "{STRING 14} wurde schwer\n" - .string "vergiftet!$" -BattleText_EnergyDrained: - .string "{GOOD_LEGENDARY} wurde\n" - .string "Energie abgesaugt!$" -BattleText_Burned: - .string "{STRING 14} brennt!$" -BattleText_Burned2: - .string "{STRING 23} von\n" - .string "{STRING 16} verbrennt\l" - .string "{STRING 14}!$" -BattleText_BurnHurt: - .string "Die Verbrennung schadet\n" - .string "{EVIL_LEGENDARY}!$" -BattleText_AlreadyBurned: - .string "{GOOD_LEGENDARY} brennt\n" - .string "bereits.$" -BattleText_Frozen: - .string "{STRING 14} erstarrt\n" - .string "zu Eis!$" -BattleText_Frozen2: - .string "{STRING 14} wurde durch\n" - .string "{STRING 23} von\l" - .string "{STRING 16} eingefroren!$" -BattleText_FrozenSolid: - .string "{EVIL_LEGENDARY} ist\n" - .string "eingefroren!$" -BattleText_DefendingDefrosted: - .string "{GOOD_LEGENDARY} wurde\n" - .string "aufgetaut!$" -BattleText_AttackingDefrosted: - .string "{EVIL_LEGENDARY} wurde\n" - .string "aufgetaut!$" -BattleText_Defrosted: - .string "{EVIL_LEGENDARY} wurde\n" - .string "durch {STRING 17} aufgetaut!$" -BattleText_Paralyzed: - .string "{STRING 14} ist\n" - .string "paralysiert! Es greift\l" - .string "eventuell nicht an!$" -BattleText_Paralyzed2: - .string "{STRING 23} von\n" - .string "{STRING 16} paralysierte\p" - .string "{STRING 14}!\n" - .string "Es greift eventuell nicht an!$" -BattleText_Paralyzed3: - .string "{EVIL_LEGENDARY} ist\n" - .string "paralysiert! Es kann\l" - .string "nicht angreifen!$" -BattleText_AlreadyParalyzed: - .string "{GOOD_LEGENDARY} ist\n" - .string "bereits paralysiert!$" -BattleText_ParalysisHealed: - .string "{GOOD_LEGENDARY} wurde von der\n" - .string "Paralyse geheilt!$" -BattleText_DreamEaten: - .string "Der Traum von {GOOD_LEGENDARY}\n" - .string "wurde gefressen!$" -BattleText_AttackingStatNoHigher: - .string "{STRING 0} von\n" - .string "{EVIL_LEGENDARY} kann nicht\l" - .string "mehr erhöht werden!$" -BattleText_DefendingStatNoHigher: - .string "{STRING 0} von\n" - .string "{GOOD_LEGENDARY} kann nicht\l" - .string "weiter gesenkt werden!$" -BattleText_StoppedWorking: - .string "{STRING 0} in deinem Team\n" - .string "funktioniert nicht mehr!$" -BattleText_StoppedWorking2: - .string "{STRING 0} des Gegners\n" - .string "funktioniert nicht mehr!$" -BattleText_Confused: - .string "{EVIL_LEGENDARY} ist\n" - .string "verwirrt!$" -BattleText_ConfusionSnapOut: - .string "{EVIL_LEGENDARY} ist nicht\n" - .string "mehr verwirrt!$" -BattleText_BecameConfused: - .string "{STRING 14} wurde\n" - .string "verwirrt!$" -BattleText_AlreadyConfused: - .string "{GOOD_LEGENDARY} ist\n" - .string "bereits verwirrt!$" -BattleText_FellLove: - .string "{GOOD_LEGENDARY}\n" - .string "hat sich verliebt!$" -BattleText_InLoveWith: - .string "{EVIL_LEGENDARY} hat sich in\n" - .string "{STRING 16} verliebt!$" -BattleText_ImmobilizedBy: - .string "{EVIL_LEGENDARY} ist starr\n" - .string "vor Liebe!$" -BattleText_BlownAway: - .string "{GOOD_LEGENDARY} wurde\n" - .string "weggeweht!$" -BattleText_TypeTransform: - .string "{EVIL_LEGENDARY} verwandelt\n" - .string "sich zu Typ {STRING 0}!$" -BattleText_Flinched: - .string "{EVIL_LEGENDARY} schreckt\n" - .string "zurück!$" -BattleText_RegainedHealth: - .string "{GOOD_LEGENDARY} erholt sich!$" -BattleText_HPFull: - .string "{GOOD_LEGENDARY} hat alle KP!$" -BattleText_RaisedSpDef: - .string "{STRING 17} von\n" - .string "{STRING 38} erhöht\l" - .string "die SP. VER.$" -BattleText_RaisedSpDefLittle: - .string "Die SP. VER. wird etwas durch\n" - .string "{STRING 17} von\l" - .string "{STRING 38} erhöht.$" -BattleText_RaisedDefense: - .string "{STRING 17} von\n" - .string "{STRING 38}\l" - .string "erhöht die VERTEIDIGUNG!$" -BattleText_RaisedDefenseLittle: - .string "{STRING 17} von\n" - .string "{STRING 38}\l" - .string "erhöht etwas die VERTEIDIGUNG!$" -BattleText_CoveredVeil: - .string "{STRING 38} wird von\n" - .string "einem Schleier umhüllt!$" -BattleText_SafeguardActive: - .string "{GOOD_LEGENDARY} wird durch\n" - .string "BODYGUARD geschützt!$" -BattleText_SafeguardFaded: - .string "BODYGUARD von\n" - .string "{STRING 40} lässt nach!$" -BattleText_WentToSleep: - .string "{EVIL_LEGENDARY} ist\n" - .string "eingeschlafen!$" -BattleText_SpeltHealthy: - .string "{EVIL_LEGENDARY} schläft und\n" - .string "erholt sich!$" -BattleText_WhipWhirlwind: - .string "{EVIL_LEGENDARY} entfacht\n" - .string "einen Wirbelwind!$" -BattleText_TookSunlight: - .string "{EVIL_LEGENDARY} absorbiert\n" - .string "Sonnenlicht!$" -BattleText_LoweredHead: - .string "{EVIL_LEGENDARY} zieht seinen\n" - .string "Kopf ein!$" -BattleText_IsGlowing: - .string "{EVIL_LEGENDARY} leuchtet!$" -BattleText_FlewHigh: - .string "{EVIL_LEGENDARY} fliegt\n" - .string "hoch empor!$" -BattleText_DugHole: - .string "{EVIL_LEGENDARY} gräbt sich\n" - .string "ein!$" -BattleText_HidUnderwater: - .string "{EVIL_LEGENDARY} taucht\n" - .string "unter!$" -BattleText_SprangUp: - .string "{EVIL_LEGENDARY} springt auf!$" -BattleText_SqueezedBind: - .string "{EVIL_LEGENDARY} setzt bei\n" - .string "{GOOD_LEGENDARY}\l" - .string "KLAMMERGRIFF ein!$" -BattleText_TrappedVortex: - .string "{GOOD_LEGENDARY} wurde in\n" - .string "einem Strudel gefangen!$" -BattleText_SandTombTrapped: - .string "{GOOD_LEGENDARY} wurde durch\n" - .string "SANDGRAB gefangen!$" -BattleText_Wrapped: - .string "{GOOD_LEGENDARY} wurde von\n" - .string "{EVIL_LEGENDARY} umWICKELt!$" -BattleText_Clamped: - .string "{GOOD_LEGENDARY} wurde von\n" - .string "{EVIL_LEGENDARY} geSCHNAPPT!$" -BattleText_HurtBy: - .string "{EVIL_LEGENDARY} wurde durch\n" - .string "{STRING 0} verletzt!$" -BattleText_FreedFrom: - .string "{EVIL_LEGENDARY} wurde von\n" - .string "{STRING 0} befreit!$" -BattleText_KeptGoingCrash: - .string "{EVIL_LEGENDARY} macht weiter\n" - .string "und bricht zusammen!$" - -gUnknown_083FEE5D:: @ 83FEE5D -BattleText_MistShroud: - .string "{STRING 38} wird in\n" - .string "WEISSNEBEL gehüllt!$" -BattleText_MistProtect: - .string "{STRING 16} wird durch\n" - .string "WEISSNEBEL geschützt!$" - -gUnknown_083FEE92:: @ 83FEE92 -BattleText_GetPumped: - .string "{EVIL_LEGENDARY} pumpt\n" - .string "sich auf!$" -BattleText_HitRecoil: - .string "{EVIL_LEGENDARY} wurde vom\n" - .string "Rückstoß getroffen!$" -BattleText_ProtectedItself2: - .string "{EVIL_LEGENDARY} schützt\n" - .string "sich selbst!$" -BattleText_SandBuffeted: - .string "{EVIL_LEGENDARY} wird vom\n" - .string "Sandsturm getroffen!$" -BattleText_HailStricken: - .string "{EVIL_LEGENDARY} wird vom\n" - .string "HAGELSTURM getroffen!$" -BattleText_WoreOff: - .string "{STRING 0} von\n" - .string "{STRING 36} lässt nach!$" -BattleText_WasSeeded: - .string "{GOOD_LEGENDARY} wurde\n" - .string "bepflanzt!$" -BattleText_EvadedAttack: - .string "{GOOD_LEGENDARY} ist\n" - .string "ausgewichen!$" -BattleText_HealthSapped: - .string "EGELSAMEN schadet\n" - .string "{EVIL_LEGENDARY}!$" -BattleText_FastAsleep: - .string "{EVIL_LEGENDARY} schläft tief\n" - .string "und fest.$" -BattleText_WokeUp: - .string "{EVIL_LEGENDARY} ist\n" - .string "aufgewacht!$" -BattleText_UproarAwake: - .string "AUFRUHR von {STRING 16}\n" - .string "hält es wach!$" -BattleText_UproarWoke: - .string "{EVIL_LEGENDARY} wird durch\n" - .string "AUFRUHR wach!$" -BattleText_UproarCaused: - .string "{EVIL_LEGENDARY} verursacht\n" - .string "AUFRUHR!$" -BattleText_UproarMaking: - .string "{EVIL_LEGENDARY} macht\n" - .string "einen AUFRUHR!$" -BattleText_CalmedDown: - .string "{EVIL_LEGENDARY}\n" - .string "beruhigt sich.$" -BattleText_UproarCantSleep: - .string "{GOOD_LEGENDARY} kann bei dem\n" - .string "AUFRUHR nicht schlafen!$" -BattleText_Stockpiled: - .string "{EVIL_LEGENDARY} HORTET\n" - .string "{STRING 0}!$" -BattleText_StockpiledCant: - .string "{EVIL_LEGENDARY} kann nicht\n" - .string "weiter HORTEN!$" -BattleText_UproarCantSleep2: - .string "{GOOD_LEGENDARY} kann bei dem\n" - .string "AUFRUHR nicht schlafen!$" -BattleText_UproarKeptAwake: - .string "Aber der AUFRUHR hält\n" - .string "{GOOD_LEGENDARY} wach!$" -BattleText_StayedAwake: - .string "{GOOD_LEGENDARY} hält sich mit\n" - .string "{STRING 22} wach!$" -BattleText_StoringEnergy: - .string "{EVIL_LEGENDARY} speichert\n" - .string "Energie!$" -BattleText_UnleashedEnergy: - .string "{EVIL_LEGENDARY} erzeugt\n" - .string "Energie!$" -BattleText_FatigueConfuse: - .string "{EVIL_LEGENDARY} ist vor\n" - .string "Erschöpfung verwirrt!$" -BattleText_PickedUpYen: - .string "{STRING 32} hebt\n" - .string "¥{STRING 0} auf!\p" - .string "$" -BattleText_Unaffected: - .string "{GOOD_LEGENDARY} ist\n" - .string "unversehrt!$" -BattleText_Transformed: - .string "{EVIL_LEGENDARY} verwandelt\n" - .string "sich in {STRING 0}!$" -BattleText_SubMade: - .string "{EVIL_LEGENDARY} setzt einen\n" - .string "DELEGATOR ein!$" -BattleText_SubAlready: - .string "{EVIL_LEGENDARY} hat bereits\n" - .string "einen DELEGATOR!$" -BattleText_SubTookDamage: - .string "Der DELEGATOR steckt den\n" - .string "Schlag für {GOOD_LEGENDARY}\l" - .string "ein!\p" - .string "$" -BattleText_SubFaded: - .string "DELEGATOR von\n" - .string "{GOOD_LEGENDARY} lässt nach!\p" - .string "$" -BattleText_MustRecharge: - .string "{EVIL_LEGENDARY} muss sich\n" - .string "wieder aufladen!$" -BattleText_RageBuilding: - .string "{GOOD_LEGENDARY} verfällt in\n" - .string "RASEREI!$" -BattleText_MoveWasDisabled: - .string "{STRING 0} von\n" - .string "{GOOD_LEGENDARY}\l" - .string "wurde blockiert!$" -BattleText_DisabledNoMore: - .string "{EVIL_LEGENDARY} ist nicht\n" - .string "mehr blockiert!$" -BattleText_EncoreGot: - .string "{GOOD_LEGENDARY} gibt\n" - .string "eine ZUGABE!$" -BattleText_EncoreEnded: - .string "ZUGABE von {EVIL_LEGENDARY}\n" - .string "ist beendet!$" -BattleText_TookAim: - .string "{EVIL_LEGENDARY} zielt\n" - .string "auf {GOOD_LEGENDARY}!$" -BattleText_SketchedMove: - .string "{EVIL_LEGENDARY} setzt\n" - .string "NACHAHMER bei {STRING 0} ein!$" -BattleText_DestinyBondTake: - .string "{EVIL_LEGENDARY} versucht den\n" - .string "Gegner mit sich zu nehmen!$" -BattleText_DestinyBondTaken: - .string "{GOOD_LEGENDARY} nimmt\n" - .string "{EVIL_LEGENDARY} mit sich!$" -BattleText_ReducedBy: - .string "{STRING 0} von\n" - .string "{GOOD_LEGENDARY} wird um\l" - .string "{PLAYER} reduziert!$" -BattleText_StoleSomething: - .string "{EVIL_LEGENDARY} stiehlt\n" - .string "{STRING 19} von\l" - .string "{GOOD_LEGENDARY}!$" -BattleText_CantEscapeNow: - .string "{GOOD_LEGENDARY} kann\n" - .string "nicht fliehen!$" -BattleText_NightmareStart: - .string "{GOOD_LEGENDARY} bekommt\n" - .string "NACHTMAHR!$" -BattleText_NightmareLock: - .string "{EVIL_LEGENDARY} ist in\n" - .string "NACHTMAHR gefangen!$" -BattleText_CurseLay: - .string "{EVIL_LEGENDARY} nimmt einen\n" - .string "Teil seiner KP und legt einen\l" - .string "FLUCH auf {GOOD_LEGENDARY}!$" -BattleText_CurseAfflict: - .string "{EVIL_LEGENDARY} wurde durch\n" - .string "FLUCH verletzt!$" -BattleText_SpikesScattered: - .string "POKéMON-Team von {STRING 37}\n" - .string "verteilt STACHELN um sich!$" -BattleText_SpikesHurt: - .string "{STRING 16} wurde durch\n" - .string "STACHLER verletzt!$" -BattleText_IdentifiedPoke: - .string "{EVIL_LEGENDARY} erkennt\n" - .string "{GOOD_LEGENDARY}!$" -BattleText_PerishSongFell: - .string "ABGESANG von {EVIL_LEGENDARY}\n" - .string "steht bei {STRING 0}!$" -BattleText_BracedItself: - .string "{EVIL_LEGENDARY} macht sich\n" - .string "bereit!$" -BattleText_EnduredHit: - .string "{GOOD_LEGENDARY} setzt\n" - .string "AUSDAUER ein!$" -BattleText_MagnitudeCount: - .string "INTENSITÄT {STRING 0}!$" -BattleText_CutHPMaxATK: - .string "{EVIL_LEGENDARY} nutzt seine\n" - .string "KP und hebt den ANGR-Wert!$" -BattleText_CopyStatChanges: - .string "{EVIL_LEGENDARY} kopiert die\n" - .string "Statusveränderungen\l" - .string "von {GOOD_LEGENDARY}!$" -BattleText_GotFreeFrom: - .string "{EVIL_LEGENDARY} befreit\n" - .string "sich von {STRING 0}\l" - .string "von {GOOD_LEGENDARY}!$" -BattleText_LeechShed: - .string "{EVIL_LEGENDARY} befreit sich\n" - .string "von EGELSAMEN!$" -BattleText_SpikesBlownAway: - .string "{EVIL_LEGENDARY} blies den\n" - .string "STACHLER weg!$" -BattleText_FledBattle: - .string "{EVIL_LEGENDARY} ist\n" - .string "geflüchtet!$" -BattleText_ForesawAttack: - .string "{EVIL_LEGENDARY} sah eine\n" - .string "Attacke voraus!$" -BattleText_TookAttack: - .string "{GOOD_LEGENDARY} wurde von\n" - .string "der Attacke {STRING 0} getroffen!$" -BattleText_ChoseDestiny: - .string "{EVIL_LEGENDARY} wählte\n" - .string "{STRING 17} als Vorhersehung aus!$" -BattleText_PokeAttack: - .string "Angriff von {STRING 0}!$" -BattleText_CenterAttention: - .string "{EVIL_LEGENDARY} zieht alle\n" - .string "Aufmerksamkeit auf sich!$" -BattleText_ChargingPower: - .string "{EVIL_LEGENDARY} lädt\n" - .string "sich auf!$" -BattleText_NaturePower: - .string "NATUR-KRAFT wurde zu\n" - .string "{STRING 17}!$" -BattleText_StatusNormal: - .string "Status von {EVIL_LEGENDARY}\n" - .string "wird normal!$" -BattleText_TormentSubject: - .string "{GOOD_LEGENDARY} wird von\n" - .string "FOLTERKNECHT unterworfen!$" -BattleText_TightenFocus: - .string "{EVIL_LEGENDARY} verstärkt\n" - .string "seinen Fokus!$" -BattleText_TauntFell: - .string "{GOOD_LEGENDARY} fällt auf\n" - .string "VERHÖHNER herein!$" -BattleText_ReadyToHelp: - .string "{EVIL_LEGENDARY} will\n" - .string "{GOOD_LEGENDARY} helfen!$" -BattleText_SwitchedItems: - .string "{EVIL_LEGENDARY} tauscht\n" - .string "Items mit anderem PKMN!$" -BattleText_Obtained1: - .string "{EVIL_LEGENDARY} erhält\n" - .string "{STRING 0}.$" -BattleText_Obtained2: - .string "{GOOD_LEGENDARY} erhält\n" - .string "{PLAYER}.$" -BattleText_Obtained3: - .string "{EVIL_LEGENDARY} erhält\n" - .string "{STRING 0}.\p" - .string "{GOOD_LEGENDARY} erhält\n" - .string "{PLAYER}.$" -BattleText_CopiedObject: - .string "{EVIL_LEGENDARY}\n" - .string "kopiert {STRING 22} von\l" - .string "{GOOD_LEGENDARY}!$" -BattleText_WishMade: - .string "{EVIL_LEGENDARY} spricht einen\n" - .string "WUNSCHTRAUM aus!$" -BattleText_WishTrue: - .string "WUNSCHTRAUM von\n" - .string "{STRING 0} erfüllt sich!$" -BattleText_PlantedRoots: - .string "{EVIL_LEGENDARY} pflanzt seine\n" - .string "Wurzeln!$" -BattleText_AbsorbNutrients: - .string "{EVIL_LEGENDARY} nimmt über\n" - .string "seine Wurzeln Nährstoffe auf!$" -BattleText_AnchoredItself: - .string "{GOOD_LEGENDARY}\n" - .string "verankert sich mit seinen Wurzeln!$" -BattleText_DrowsyMade: - .string "{EVIL_LEGENDARY} macht\n" - .string "{GOOD_LEGENDARY} schläfrig!$" -BattleText_KnockedOffItem: - .string "{EVIL_LEGENDARY}\n" - .string "entreißt {STRING 19} von\l" - .string "{GOOD_LEGENDARY}!$" -BattleText_AbilitySwap: - .string "{EVIL_LEGENDARY} tauscht die\n" - .string "Fähigkeiten mit einem PKMN!$" -BattleText_SealedMove: - .string "{EVIL_LEGENDARY} versiegelt\n" - .string "die Attacke/n des Gegners!$" -BattleText_GrudgeBear: - .string "{EVIL_LEGENDARY} möchte, dass\n" - .string "der Gegner ein NACHSPIEL erträgt!$" -BattleText_GrudgeLosePP: - .string "{STRING 0} von\n" - .string "{EVIL_LEGENDARY} hat aufgrund\l" - .string "von NACHSPIEL alle AP verloren!$" -BattleText_ShroudedItself: - .string "{EVIL_LEGENDARY} verhüllt sich\n" - .string "selbst in {STRING 17}!$" -BattleText_MagicCoatBounce: - .string "{STRING 17} von\n" - .string "{EVIL_LEGENDARY} prallte am\l" - .string "MAGIEMANTEL ab!$" -BattleText_AwaitMove: - .string "{EVIL_LEGENDARY} wartet auf\n" - .string "eine gegnerische Attacke!$" -BattleText_SnatchedMove: - .string "{GOOD_LEGENDARY} ÜBERNAHM\n" - .string "Attacke von {STRING 16}!$" -BattleText_ElecWeakened: - .string "Die Stärke der Elektrizität\n" - .string "wurde geschwächt!$" -BattleText_FireWeakened: - .string "Die Stärke des Feuers\n" - .string "wurde geschwächt!$" -BattleText_FoundOne: - .string "{EVIL_LEGENDARY} hat 1\n" - .string "{STRING 19} gefunden!$" -BattleText_SoothingAroma: - .string "Ein wohltuendes Aroma\n" - .string "breitet sich aus!$" -BattleText_CantUseItems: - .string "Hier können Items nicht eingesetzt\n" - .string "werden.{PAUSE 64}$" -BattleText_UnknownString2: - .string "Für {STRING 16} war\n" - .string "{STRING 19} {STRING 0}$" -BattleText_HustleUse: - .string "{STRING 16} setzt\n" - .string "{STRING 19} ein, um zu drängeln!$" -BattleText_LostFocus: - .string "{EVIL_LEGENDARY} hat seinen\n" - .string "Fokus verloren und kann\l" - .string "nicht angreifen!$" -BattleText_DraggedOut: - .string "{GOOD_LEGENDARY} wurde\n" - .string "auserwählt!\p" - .string "$" -BattleText_BrokeWall: - .string "Die Mauer brach zusammen!$" -BattleText_NoEffect: - .string "Es ist wirkungslos!$" -BattleText_NoMovesLeft: - .string "{STRING 15} hat keine\n" - .string "Attacken mehr übrig!\p" - .string "$" -BattleText_MoveIsDisabled: - .string "{STRING 17} von\n" - .string "{STRING 15} ist blockiert!\p" - .string "$" -BattleText_TormentNoUse: - .string "{STRING 15} kann\n" - .string "aufgrund von FOLTERKNECHT\p" - .string "die Attacke nicht 2-mal\n" - .string "hintereinander einsetzen!$" -BattleText_TauntNoUse: - .string "{STRING 15} kann\n" - .string "{STRING 17} nach VERHÖHNER\l" - .string "nicht einsetzen!\p" - .string "$" -BattleText_SealedNoUse: - .string "{STRING 15} kann die ver-\n" - .string "siegelte Attacke {STRING 17}\l" - .string "nicht einsetzen!\p" - .string "$" -BattleText_RainMade: - .string "{STRING 23} von\n" - .string "{STRING 16} lässt\l" - .string "es regnen!$" -BattleText_SpeedRisen: - .string "{STRING 23} von\n" - .string "{STRING 16} erhöht\l" - .string "seine INIT.!$" -BattleText_ProtectedBy: - .string "{GOOD_LEGENDARY} wurde durch\n" - .string "{STRING 22} geschützt!$" -BattleText_PreventedBy: - .string "{STRING 22} von\n" - .string "{GOOD_LEGENDARY} hindert\p" - .string "{EVIL_LEGENDARY} daran,\n" - .string "{STRING 17} einzusetzen!$" -BattleText_HPRestoredUsing: - .string "{GOOD_LEGENDARY} füllt KP mit\n" - .string "Hilfe von {STRING 22} auf!$" -BattleText_MadeUseless: - .string "{STRING 22} von\n" - .string "{GOOD_LEGENDARY} hebt die\l" - .string "Wirkung von {STRING 17} auf!$" -BattleText_MadeType: - .string "{STRING 22} von\n" - .string "{GOOD_LEGENDARY} macht es zu\l" - .string "einem {STRING 0}-Typ!$" -BattleText_PreventedPara: - .string "{STRING 22} von\n" - .string "{STRING 14} verhindert\l" - .string "eine Paralyse!$" -BattleText_PreventedRomance: - .string "{STRING 22} von\n" - .string "{GOOD_LEGENDARY} verhindert\l" - .string "eine Romanze!$" -BattleText_PreventedPoison: - .string "{STRING 22} von\n" - .string "{STRING 14} verhindert\l" - .string "eine Vergiftung!$" -BattleText_PreventedConfusion: - .string "{STRING 22} von\n" - .string "{GOOD_LEGENDARY} verhindert\l" - .string "Verwirrung!$" -BattleText_RaisedFirePower: - .string "{STRING 22} von\n" - .string "{GOOD_LEGENDARY} erhöht die\l" - .string "FEUER-Kraft!$" -BattleText_AnchorsItself: - .string "{GOOD_LEGENDARY} verankert\n" - .string "sich mit Hilfe von {STRING 22}!$" -BattleText_CutsAttack: - .string "{STRING 23} von\n" - .string "{STRING 16} vermindert\l" - .string "ANGRIFF von {GOOD_LEGENDARY}!$" -BattleText_PreventedStatLoss: - .string "{STRING 23} von\n" - .string "{STRING 16} verhindert\l" - .string "Statusveränderungen!$" -BattleText_HurtOther: - .string "{STRING 22} von\n" - .string "{GOOD_LEGENDARY} verletzt\l" - .string "{EVIL_LEGENDARY}!$" -BattleText_Traced: - .string "FÄHRTE von\n" - .string "{STRING 16}\p" - .string "erkennt {PLAYER}\n" - .string "von {STRING 0}!$" -BattleText_PreventedBurn: - .string "{STRING 24} von\n" - .string "{STRING 14} verhindert\l" - .string "Verbrennung!$" -BattleText_BlocksOther: - .string "{STRING 22} von\n" - .string "{GOOD_LEGENDARY} blockiert\l" - .string "{STRING 17}!$" -BattleText_BlocksOther2: - .string "{STRING 23} von\n" - .string "{STRING 16} blockiert\l" - .string "{STRING 17}!$" -BattleText_RestoredHPByItem: - .string "{STRING 21} von\n" - .string "{EVIL_LEGENDARY} füllt\l" - .string "einige KP auf!$" -BattleText_WhipSandstorm: - .string "{STRING 23} von\n" - .string "{STRING 16} entfacht\l" - .string "einen Sandsturm!$" -BattleText_SunIntensified: - .string "{STRING 23} von\n" - .string "{STRING 16} intensiviert\l" - .string "die Sonnenstrahlen!$" -BattleText_PreventedLoss: - .string "{STRING 23} von\n" - .string "{STRING 16} verhindert \l" - .string "den Verlust von {STRING 0}!$" -BattleText_InfatuatedPoke: - .string "{EVIL_LEGENDARY} ist vernarrt\n" - .string "in {STRING 22} von\l" - .string "{GOOD_LEGENDARY}!$" -BattleText_MadeIneffective: - .string "{STRING 22} von\n" - .string "{GOOD_LEGENDARY} macht\l" - .string "{STRING 17} wirkungslos!$" -BattleText_CuredProblem: - .string "{STRING 23} von\n" - .string "{STRING 16} heilte sein\l" - .string "Problem mit {STRING 0}!$" -BattleText_OozeSuckup: - .string "Es saugte\n" - .string "KLOAKENSOSSE auf!$" -BattleText_Transformed2: - .string "{STRING 16}\n" - .string "verwandelte sich!$" -BattleText_TookAttack2: - .string "{STRING 22} von\n" - .string "{GOOD_LEGENDARY} übernahm\l" - .string "den Angriff!$" - -gUnknown_083FFCCA:: @ 83FFCCA -BattleText_PreventedSwitch:: - .string "{STRING 20} von\n" - .string "{STRING 0} verhindert\p" - .string "Wechsel!\p" - .string "$" -BattleText_PreventedOther: - .string "{STRING 22} von\n" - .string "{GOOD_LEGENDARY} macht\p" - .string "{STRING 0} von\n" - .string "{STRING 16} wirkungslos!$" -BattleText_MadeIneffective2: - .string "{STRING 23} von\n" - .string "{STRING 16} machte\l" - .string "es wirkungslos!$" -BattleText_PreventedFlinching: - .string "{STRING 24} von\n" - .string "{STRING 14} verhindert\l" - .string "ein Zurückschrecken!$" -BattleText_PreventedOther2: - .string "{STRING 21} von\n" - .string "{EVIL_LEGENDARY} macht\p" - .string "{STRING 22} von\n" - .string "{GOOD_LEGENDARY} wirkungslos!$" -BattleText_CuredOfProblem: - .string "{STRING 23} von\n" - .string "{STRING 16} heilte sein\l" - .string "Problem mit {STRING 0}!$" -BattleText_NoEffectOn: - .string "{STRING 23} von\n" - .string "{STRING 16} hat keine\l" - .string "Wirkung auf {STRING 14}!$" -BattleText_Sharply: - .string "steigt stark!$" - -gUnknown_083FFDB3:: @ 83FFDB3 -BattleText_Rose: - .string "steigt.$" -BattleText_Harshly: - .string "sinkt stark!$" -BattleText_Fell: - .string "sinkt.$" -BattleText_UnknownString7: - .string "{STRING 0} von\n" - .string "{EVIL_LEGENDARY} {PLAYER}$" - -gUnknown_083FFDD3:: @ 83FFDD3 -BattleText_UnknownString3: - .string "{STRING 0} von\n" - .string "{GOOD_LEGENDARY} {PLAYER}$" -BattleText_UnknownString4: - .string "{STRING 19}: {STRING 0} von\n" - .string "{STRING 16} {PLAYER}$" -BattleText_UnknownString5: - .string "{STRING 0} von\n" - .string "{EVIL_LEGENDARY} {PLAYER}$" -BattleText_UnknownString6: - .string "{STRING 0} von\n" - .string "{GOOD_LEGENDARY} {PLAYER}$" -BattleText_StatNoHigher: - .string "Status von {EVIL_LEGENDARY}\n" - .string "kann nicht weiter erhöht werden!$" -BattleText_StatNoLower: - .string "Status von {GOOD_LEGENDARY}\n" - .string "kann nicht weiter sinken!$" -BattleText_Critical: - .string "Ein Volltreffer!$" -BattleText_GrandSlam: - .string "Ein K.O.-Treffer!$" -BattleText_MoveForget123: - .string "{PAUSE 32}1, {PAUSE 15}2 und...{PAUSE 15} ...{PAUSE 15} ...{PAUSE 15}\n" - .string "{PAUSE 15}{PLAY_SE 0x38 0x00}Schwupp!\p" - .string "$" -BattleText_MoveForgetAnd: - .string "Und...\p" - .string "$" -BattleText_CantForgetHM: - .string "VM-Attacken können jetzt \n" - .string "nicht vergessen werden.\p" - .string "$" -BattleText_NotEffective: - .string "Das ist nicht sehr effektiv...$" -BattleText_SuperEffective: - .string "Das ist sehr effektiv!$" - -gUnknown_083FFEFC:: @ 83FFEFC -BattleText_GotAwaySafely: - .string "{PLAY_SE 0x11 0x00}Du bist entkommen!\p" - .string "$" -BattleText_FledUsingItem: - .string "{PLAY_SE 0x11 0x00}{EVIL_LEGENDARY} floh\n" - .string "durch Einsatz von {STRING 19}!\p" - .string "$" -BattleText_FledUsingOther: - .string "{PLAY_SE 0x11 0x00}{EVIL_LEGENDARY} floh\n" - .string "durch Einsatz von {STRING 21}!\p" - .string "$" -BattleText_FledWild: - .string "{PLAY_SE 0x11 0x00}Wildes {STRING 0} floh!$" - -gUnknown_083FFF56:: @ 83FFF56 -BattleText_PlayerDefeatedTrainer: - .string "Spieler besiegte\n" - .string "{STRING 29}!$" - -gUnknown_083FFF6A:: @ 83FFF6A -BattleText_PlayerDefeatedTrainers: - .string "Spieler besiegte\n" - .string "{STRING 30} und {STRING 29}!$" - -gUnknown_083FFF81:: @ 83FFF81 -BattleText_PlayerLostTrainer: - .string "Spieler verlor gegen\n" - .string "{STRING 29}!$" - -gUnknown_083FFF99:: @ 83FFF99 -BattleText_PlayerLostTrainers: - .string "Spieler verlor gegen\n" - .string "{STRING 30} und {STRING 29}!$" - -gUnknown_083FFFB3:: @ 83FFFB3 -BattleText_PlayerTiedTrainer: - .string "Patt zwischen Spieler und\n" - .string "{STRING 29}!$" - -gUnknown_083FFFCB:: @ 83FFFCB -BattleText_PlayerTiedTrainers: - .string "Patt zwischen Spieler, {STRING 30}\n" - .string "und {STRING 29}!$" - -gUnknown_083FFFEA:: @ 83FFFEA -BattleText_FledSingle: - .string "{PLAY_SE 0x11 0x00}{STRING 29} floh!$" - -gUnknown_083FFFF7:: @ 83FFFF7 -BattleText_FledDouble: - .string "{PLAY_SE 0x11 0x00}{STRING 29} und\n" - .string "{STRING 30} flohen!$" -BattleText_NoRunning: - .string "Du kannst aus TRAINER-Kämpfen\n" - .string "nicht fliehen!\p" - .string "$" -BattleText_CantEscape2: - .string "Flucht unmöglich!\p" - .string "$" -BattleText_BirchDontLeaveMe: - .string "PROF. BIRK: Du... Du kannst mich doch\n" - .string "nicht einfach im Stich lassen!\p" - .string "$" -BattleText_Nothing: - .string "Nichts geschieht!$" -BattleText_Failed: - .string "Es schlug fehl!$" -BattleText_HurtItself: - .string "Es hat sich vor Verwirrung\n" - .string "selbst verletzt!$" -BattleText_MirrorFail: - .string "Der SPIEGELTRICK schlug fehl!$" -BattleText_RainStart: - .string "Es fängt an zu regnen!$" -BattleText_PourStart: - .string "Ein Wolkenbruch!$" -BattleText_RainCont1: - .string "Es regnet weiter.$" -BattleText_PourCont: - .string "Der Wolkenbruch hält an.$" -BattleText_RainStop: - .string "Es hat aufgehört zu regnen.$" -BattleText_SandBrewed: - .string "Ein Sandsturm kommt auf!$" -BattleText_SandRages: - .string "Der Sandsturm tobt.$" -BattleText_SandSubsided: - .string "Der Sandsturm legt sich.$" -BattleText_SunBright: - .string "Das Sonnenlicht wird stärker!$" -BattleText_SunStrong: - .string "Gleißendes Sonnenlicht!$" -BattleText_SunFaded: - .string "Das Sonnenlicht lässt nach!$" -BattleText_HailStart: - .string "Es fängt an zu hageln!$" -BattleText_HailCont: - .string "Es hagelt!$" -BattleText_HailStop: - .string "Es hat aufgehört zu hageln.$" -BattleText_SpitUpFail: - .string "Aber es konnte nichts\n" - .string "ENTFESSELN!$" -BattleText_SwallowFail: - .string "Aber es konnte nichts\n" - .string "VERZEHREN!$" -BattleText_WindHeatWave: - .string "Der Wind wurde zu einer\n" - .string "HITZEWELLE!$" -BattleText_StatElim: - .string "Alle Statusveränderungen wurden\n" - .string "entfernt!$" -BattleText_CoinScatter: - .string "Es liegen überall Münzen verstreut!$" -BattleText_SubWeak: - .string "Zu schwach, um einen DELEGATOR\n" - .string "einzusetzen!$" -BattleText_PainSplit: - .string "Die Kontrahenten teilen\n" - .string "ihr Leid!$" -BattleText_BellChime: - .string "Eine Glocke läutet!$" -BattleText_PerishSong: - .string "Alle betroffenen POKéMON werden\n" - .string "in 3 Runden K.O. gehen!$" -BattleText_NoPP1: - .string "Es sind keine AP mehr für\n" - .string "diese Attacke übrig!\p" - .string "$" -BattleText_NoPP2: - .string "Aber es waren keine AP mehr\n" - .string "für diese Attacke übrig!$" -BattleText_IgnoredOrdersSLP: - .string "{EVIL_LEGENDARY} ignoriert die\n" - .string "Befehle. Es schläft!$" -BattleText_IgnoredOrders: - .string "{EVIL_LEGENDARY} ignoriert den\n" - .string "Befehl!$" -BattleText_BeganNap: - .string "{EVIL_LEGENDARY} macht\n" - .string "ein Nickerchen!$" -BattleText_LoafingAround: - .string "{EVIL_LEGENDARY} faulenzt!$" -BattleText_WontObey: - .string "{EVIL_LEGENDARY} ist\n" - .string "ungehorsam!$" -BattleText_TurnedAway: - .string "{EVIL_LEGENDARY} wendet\n" - .string "sich ab!$" -BattleText_NotNotice: - .string "{EVIL_LEGENDARY} gibt vor,\n" - .string "nichts zu bemerken!$" -BattleText_WillSwitch: - .string "Als Nächstes wird {PLAYER} von\n" - .string "{STRING 25} {STRING 26} eingesetzt.\p" - .string "Wird {STRING 32} das\n" - .string "POKéMON wechseln?$" -BattleText_LearnedMove2: - .string "{EVIL_LEGENDARY} hat\n" - .string "{STRING 0} gelernt!$" -BattleText_PlayerDefeatedTrainer2: - .string "Spieler besiegte\n" - .string "{STRING 25} {STRING 26}!\p" - .string "$" -BattleText_CreptCloser: - .string "{STRING 32} schleicht sich näher an\n" - .string "{STR_VAR_2} heran!$" -BattleText_CantGetCloser: - .string "{STRING 32} kann nicht näher herangehen!$" -BattleText_WatchingCarefully: - .string "{STR_VAR_2} beobachtet\n" - .string "alles aufmerksam!$" -BattleText_CuriousAbout: - .string "{STR_VAR_2} ist\n" - .string "neugierig auf {STRING 0}!$" -BattleText_EnthralledBy: - .string "{STR_VAR_2} ist begeistert\n" - .string "von {STRING 0}!$" -BattleText_IgnoredThing: - .string "{STR_VAR_2} ignoriert\n" - .string "{STRING 0} völlig!$" -BattleText_ThrewBlock: - .string "{STRING 32} wirft {STR_VAR_2} einen\n" - .string "{POKEBLOCK} zu!$" -BattleText_SafariOver: - .string "{PLAY_SE 0x49 0x00}ANSAGE: Du hast keine\n" - .string "SAFARIBÄLLE mehr! Game over!\p" - .string "$" - -gUnknown_08400555:: @ 8400555 -BattleText_WildAppeared1: - .string "Ein wildes {STR_VAR_2} erscheint!\p" - .string "$" - -gUnknown_08400568:: @ 8400568 -BattleText_WildAppeared2: - .string "Ein wildes {STR_VAR_2} erscheint!\p" - .string "$" - -gUnknown_0840057B:: @ 840057B -BattleText_WildAppeared3: - .string "Ein wildes {STR_VAR_2} erscheint!{PAUSE 127}$" - -gUnknown_08400590:: @ 8400590 -BattleText_WildDoubleAppeared: - .string "Ein wildes {KUN} und\n" - .string "ein wildes {STR_VAR_2} erscheinen!\p" - .string "$" - -gUnknown_084005AA:: @ 84005AA -BattleText_SingleWantToBattle1: - .string "Eine Herausforderung von\n" - .string "{STRING 25} {STRING 26}!\p" - .string "$" - -gUnknown_084005C7:: @ 84005C7 -BattleText_SingleWantToBattle2: - .string "Eine Herausforderung von\n" - .string "{STRING 29}!$" - -gUnknown_084005DB:: @ 84005DB -BattleText_DoubleWantToBattle: - .string "{STRING 29} und {STRING 30}\n" - .string "möchten kämpfen!$" - -gUnknown_084005F5:: @ 84005F5 -BattleText_SentOutSingle1: - .string "{STR_VAR_2} wird von\n" - .string "{STRING 25} {STRING 26} in den\l" - .string "Kampf geschickt!$" - -gUnknown_08400608:: @ 8400608 -BattleText_SentOutDouble1: - .string "{STR_VAR_2} und {KUN}\n" - .string "werden von\p" - .string "{STRING 25} {STRING 26}\n" - .string "in den Kampf geschickt!$" - -gUnknown_08400622:: @ 8400622 -BattleText_SentOutSingle2: - .string "{STRING 0} wird von\n" - .string "{STRING 25} {STRING 26}\l" - .string "in den Kampf geschickt!$" - -gUnknown_08400635:: @ 8400635 -BattleText_SentOutSingle3: - .string "{STRING 29} schickt\n" - .string "{STR_VAR_2} in den Kampf!$" - -gUnknown_08400645:: @ 8400645 -BattleText_SentOutDouble2: - .string "{STRING 29} schickt\n" - .string "{STR_VAR_2} und {KUN}!$" - -gUnknown_0840065C:: @ 840065C -BattleText_SentOutDouble3: - .string "{STRING 29} schickt\n" - .string "{VERSION}!\p" - .string "{STRING 30} schickt\n" - .string "{GOOD_TEAM}!$" - -gUnknown_0840067C:: @ 840067C -BattleText_SentOutSingle4: - .string "{STRING 29} schickt\n" - .string "{STRING 0}!$" - -gUnknown_0840068C:: @ 840068C -BattleText_SentOutSingle5: - .string "{STRING 31} schickt\n" - .string "{STRING 0}!$" - -gUnknown_0840069C:: @ 840069C -BattleText_SentOutSingle6: - .string "Los! {STR_VAR_1}!$" - -gUnknown_084006A4:: @ 84006A4 -BattleText_SentOutDouble4: - .string "Los! {STR_VAR_1} und\n" - .string "{STR_VAR_3}!$" - -gUnknown_084006B3:: @ 84006B3 -BattleText_SentOutSingle7: - .string "Los! {STRING 0}!$" - -gUnknown_084006BB:: @ 84006BB -BattleText_SentOutSingle8: - .string "Du schaffst es! {STRING 0}!$" - -gUnknown_084006C6:: @ 84006C6 -BattleText_SentOutSingle9: - .string "Streng dich an, {STRING 0}!$" - -gUnknown_084006D5:: @ 84006D5 -BattleText_SentOutSingle10: - .string "Mach es fertig!\n" - .string "Los, {STRING 0}!$" - -gUnknown_084006F1:: @ 84006F1 -BattleText_SentOutSingle11: - .string "{STRING 28} schickt\n" - .string "{EVIL_TEAM}!\p" - .string "Los! {RIVAL}!$" - -gUnknown_08400709:: @ 8400709 -BattleText_ComeBackSingle1: - .string "{STRING 0}, genug!\n" - .string "Komm zurück!$" - -gUnknown_08400727:: @ 8400727 -BattleText_ComeBackSingle2: - .string "{STRING 0}, komm zurück!$" - -gUnknown_08400736:: @ 8400736 -BattleText_ComeBackSingle3: - .string "{STRING 0}, O.K.!\n" - .string "Komm zurück!$" - -gUnknown_08400749:: @ 8400749 -BattleText_ComeBackSingle4: - .string "{STRING 0}, gut!\n" - .string "Komm zurück!$" - -gUnknown_0840075E:: @ 840075E -BattleText_WithdrewPoke1: - .string "{STRING 0} wurde\n" - .string "von {STRING 25} {STRING 26}\l" - .string "zurückgerufen!$" - -gUnknown_08400771:: @ 8400771 -BattleText_WithdrewPoke2: - .string "{STRING 29} ruft\n" - .string "{STRING 0} zurück!$" - -gUnknown_08400781:: @ 8400781 -BattleText_WithdrewPoke3: - .string "{STRING 31} ruft\n" - .string "{STRING 0} zurück!$" - -gUnknown_08400791:: @ 8400791 -BattleText_Wild: - .string " (Wild)$" - -gUnknown_08400797:: @ 8400797 -BattleText_Foe: - .string " (Gegner)$" - -gUnknown_0840079C:: @ 840079C -BattleText_Foe2: - .string "Gegner$" - -gUnknown_084007A1:: @ 84007A1 -BattleText_Ally: - .string "Anwender$" - -gUnknown_084007A7:: @ 84007A7 -BattleText_Foe3: - .string "Gegner$" - -gUnknown_084007AC:: @ 84007AC -BattleText_Ally2: - .string "Anwender$" - -gUnknown_084007B2:: @ 84007B2 -BattleText_Foe4: - .string "Gegner$" - -gUnknown_084007B7:: @ 84007B7 -BattleText_Ally3: - .string "Anwender$" - -gUnknown_084007BD:: @ 84007BD -BattleText_OpponentUsedMove: - .string "{EVIL_LEGENDARY} setzt\n" - .string "{PLAYER} ein!$" - -gUnknown_084007C8:: @ 84007C8 -BattleText_Exclamation2: - .string "$" - -gUnknown_084007CA:: @ 84007CA -BattleText_Exclamation3: - .string "$" - -gUnknown_084007CC:: @ 84007CC -BattleText_Exclamation4: - .string "$" - -gUnknown_084007CE:: @ 84007CE -BattleText_Exclamation5: - .string "$" - -gUnknown_084007D0:: @ 84007D0 -BattleText_Exclamation: - .string "$" - -BattleStatText_HP: @ 84007D2 - .string "KP$" - -BattleStatText_Attack: @ 84007D5 - .string "ANGRIFF$" - -BattleStatText_Defense: @ 84007DC - .string "VERT.$" - -BattleStatText_Speed: @ 84007E4 - .string "INIT.$" - -BattleStatText_SpAtk: @ 84007EA - .string "SP.ANG.$" - -BattleStatText_SpDef: @ 84007F2 - .string "SP.VER.$" - -BattleStatText_Accuracy: @ 84007FA - .string "GENAUIGKEIT$" - -BattleStatText_Evasion: @ 8400803 - .string "FLUCHTWERT$" - -ContestStatText_TooSpicy: @ 840080F - .string "zu scharf!$" - -ContestStatText_TooDry: @ 840081E - .string "zu trocken!$" - -ContestStatText_TooSweet: @ 840082B - .string "zu süß!$" - -ContestStatText_TooBitter: @ 840083A - .string "zu bitter!$" - -ContestStatText_TooSour: @ 840084A - .string "zu sauer!$" -BattleText_Used1: - .string "{STRING 32} setzt\n" - .string "{STRING 19} ein!$" -BattleText_TutorialUsed: - .string "HEIKO setzt\n" - .string "{STRING 19} ein!$" -BattleText_Used2: - .string "{STRING 19} wird von\n" - .string "{STRING 25} {STRING 26} eingesetzt!$" -BattleText_BlockBall: - .string "Der TRAINER hat den BALL abgeblockt!$" -BattleText_DontBeAThief: - .string "Sei kein Dieb!$" -BattleText_DodgeBall: - .string "Es ist dem BALL ausgewichen! Dieses\n" - .string "POKéMON kann nicht gefangen werden!$" -BattleText_MissPoke: - .string "Du hast das POKéMON verfehlt!$" -BattleText_BallBrokeOhNo: - .string "Mist!\n" - .string "Das POKéMON hat sich befreit!$" -BattleText_BallBrokeAppeared: - .string "Oh!\n" - .string "Fast hätte es geklappt!$" -BattleText_BallBrokeAlmost: - .string "Mist!\n" - .string "Das war knapp!$" -BattleText_BallBrokeSoClose: - .string "Verflixt!\n" - .string "Es hätte beinahe geklappt!$" -BattleText_BallCaught1: - .string "Toll!\n" - .string "{STR_VAR_2} wurde gefangen!{UNKNOWN_A}{PLAY_BGM 0x60 0x01}\p" - .string "$" -BattleText_BallCaught2: - .string "Toll!\n" - .string "{STR_VAR_2} wurde gefangen!{UNKNOWN_A}{PLAY_BGM 0x60 0x01}{PAUSE 127}$" -BattleText_GiveNickname: - .string "Möchtest du dem {STR_VAR_2}\n" - .string "einen Spitznamen geben?$" -BattleText_SentToPC: - .string "{STR_VAR_2} wurde auf\n" - .string "{STRING 35} PC übertragen.$" - -gUnknown_084009ED:: @ 84009ED -BattleText_Someone: - .string "einen$" - -gUnknown_084009F7:: @ 84009F7 -BattleText_Lanette: - .string "LANETTES$" -BattleText_AddedToDex: - .string "Für {STR_VAR_2} wurde ein Eintrag\n" - .string "im POKéDEX angelegt.\p" - .string "$" -BattleText_Raining: - .string "Es regnet.$" -BattleText_Sandstorm: - .string "Ein Sandsturm tobt.$" -BattleText_BoxFull: - .string "Die BOXEN sind voll!\n" - .string "Du kannst keines mehr fangen!\p" - .string "$" - -gUnknown_08400A78:: @ 8400A78 -BattleText_EnigmaBerry: - .string "ENIGMABEERE$" - -gUnknown_08400A85:: @ 8400A85 -BattleText_Berry: - .string "{STR_VAR_1}BEERE$" -BattleText_CuredParalysis: - .string "{STRING 19} von\n" - .string "{STRING 16}\l" - .string "heilte die Paralyse!$" -BattleText_CuredPoison: - .string "{STRING 19} von\n" - .string "{STRING 16}\l" - .string "heilte die Vergiftung!$" -BattleText_CuredBurn: - .string "{STRING 19} von\n" - .string "{STRING 16}\l" - .string "heilte die Verbrennung!$" -BattleText_CuredFreeze: - .string "{STRING 19} von\n" - .string "{STRING 16} taute es auf!$" -BattleText_CuredSleep: - .string "{STRING 19} von\n" - .string "{STRING 16} \l" - .string "weckte es auf!$" -BattleText_CuredConfusion: - .string "{STRING 19} von\n" - .string "{STRING 16}\l" - .string "hebt die Verwirrung auf!$" -BattleText_CuredStatus: - .string "{STRING 19} von\n" - .string "{STRING 16} \l" - .string "heilte sein {STRING 0}-Problem!$" -BattleText_NormalizedStatus: - .string "{STRING 19} von\n" - .string "{STRING 16} normalisierte\l" - .string "seine Statuswerte!$" -BattleText_RestoredHealth: - .string "{STRING 19} füllte\n" - .string "KP von {STRING 16} auf!$" -BattleText_RestoredPP: - .string "{STRING 19} von\n" - .string "{STRING 16} füllte AP von\l" - .string "{STRING 0} auf!$" -BattleText_RestoredStatus: - .string "{STRING 19} von\n" - .string "{STRING 16}\p" - .string "stellte seine\n" - .string "Statuswerte wieder her!$" -BattleText_RestoredHPLittle: - .string "{STRING 19} von\n" - .string "{STRING 16}\l" - .string "füllte einige KP auf!$" -BattleText_ChoiceBand: - .string "{STRING 19} erlaubt\n" - .string "nur den Einsatz von {STRING 17}!\p" - .string "$" -BattleText_FocusSash: - .string "{GOOD_LEGENDARY} hält\n" - .string "mit Hilfe von\l" - .string "{STRING 19} durch!$" -BattleText_Terminator2: - .string "$" -BattleText_WallyBall: - .string "Nun muss man einen BALL werfen, oder?\n" - .string "Ich... Ich werde mein Bestes geben!$" - -gUnknown_08400C4A:: @ 8400C4A -BattleText_StartEvo: - .string "Hey?\n" - .string "{STR_VAR_1} entwickelt sich!$" - -gUnknown_08400C60:: @ 8400C60 -BattleText_FinishEvo: - .string "Glückwunsch! Dein {STR_VAR_1}\n" - .string "wurde zu {STR_VAR_2}!{UNKNOWN_A}\p" - .string "$" - -gUnknown_08400C8D:: @ 8400C8D -BattleText_StopEvo: - .string "Hm? Die Entwicklung\n" - .string "wurde abgebrochen!\p" - .string "$" - -gUnknown_08400CA8:: @ 8400CA8 -BattleText_OtherMenu: - .string "Was soll\n" - .string "{STRING 15} tun?$" - -gUnknown_08400CBB:: @ 8400CBB -BattleText_PlayerMenu: - .string "Was wird {STRING 32}\n" - .string "tun?$" - -gUnknown_08400CCC:: @ 8400CCC -BattleText_WallyMenu: - .string "Was wird\n" - .string "HEIKO tun?$" - -gUnknown_08400CE0:: @ 8400CE0 -BattleText_LinkStandby: - .string "{PAUSE 16}Verbindung...$" - -gUnknown_08400CF3:: @ 8400CF3 -BattleText_MenuOptions: - .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}KAMPF{CLEAR_TO 46}BEUTEL\n" - .string "POKéMON{CLEAR_TO 46}FLUCHT$" - -gUnknown_08400D15:: @ 8400D15 -BattleText_MenuOptionsSafari: - .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}BALL{CLEAR_TO 46}{POKEBLOCK}\n" - .string "NÄHER{CLEAR_TO 46}FLUCHT$" - -gUnknown_08400D38:: @ 8400D38 -BattleText_PP: - .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}AP\n" - .string "TYP/$" - -gUnknown_08400D49:: @ 8400D49 -BattleText_Format: - .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}$" - -gUnknown_08400D52:: @ 8400D52 -BattleText_ForgetMove: - .string "{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}{PALETTE 5}Welche Attacke soll vergessen werden?$" - -gUnknown_08400D7A:: @ 8400D7A -BattleText_YesNo: - .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}Ja\n" - .string "Nein$" - -gUnknown_08400D89:: @ 8400D89 -BattleText_SwitchWhich: - .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}\n" - .string "Wohin?$" - -gUnknown_08400D9F:: @ 8400D9F -BattleText_Format2: - .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}$" -BattleText_RightArrow: - .string "{RIGHT_ARROW}$" - -gUnknown_08400DAA:: @ 8400DAA -BattleText_Plus: - .string "+$" - -gUnknown_08400DAC:: @ 8400DAC -BattleText_Dash: - .string "-$" -BattleText_HP: - .string "KP $" -BattleText_Attack: - .string "ANGR. $" -BattleText_Defense: - .string "VERT.$" -BattleText_SpAtk: - .string "SP.ANG.$" -BattleText_SpDef: - .string "SP.VER.$" - -gUnknown_08400DD6:: @ 8400DD6 -BattleText_SafariBalls:: - .string "{HIGHLIGHT RED}SAFARIBÄLLE$" - -gUnknown_08400DE6:: @ 8400DE6 -BattleText_SafariBallsLeft:: - .string "{HIGHLIGHT RED}Übrig: $" - -gUnknown_08400DF0:: @ 8400DF0 -BattleText_HighlightRed:: - .string "{HIGHLIGHT RED}$" - -BattleText_Sleep:: - .string "Schlaf$" -BattleText_PoisonStatus:: - .string "Gift$" -BattleText_Burn:: - .string "Verbrennung$" -BattleText_Paralysis:: - .string "Paralyse$" -BattleText_IceStatus:: - .string "Eis$" -BattleText_Confusion:: - .string "Verwirrung$" -BattleText_Love:: - .string "Liebe$" - -gUnknown_08400E23:: @ 8400E23 -BattleText_Format3: - .string " und $" - -gUnknown_08400E29:: @ 8400E29 -BattleText_Format4: - .string ", $" - -gUnknown_08400E2C:: @ 8400E2C -BattleText_Format5: - .string " $" - -gUnknown_08400E2E:: @ 8400E2E -BattleText_Format6: - .string "\l" - .string "$" - -gUnknown_08400E30:: @ 8400E30 -BattleText_Format7: - .string "\n" - .string "$" - -gUnknown_08400E32:: @ 8400E32 -BattleText_Format8: - .string "sind$" - -gUnknown_08400E36:: @ 8400E36 -BattleText_Format9: - .string "sind$" - -gBadEggNickname:: @ 8400E3A - .string "Schl. EI$" - -gUnknown_08400E42:: @ 8400E42 -BattleText_Wally:: - .string "HEIKO$" - -BattleText_Win:: @ 8400E48 - .string "{HIGHLIGHT TRANSPARENT}Sieg$" - -BattleText_Loss:: @ 8400E4F - .string "{HIGHLIGHT TRANSPARENT}Ndrl.$" - -BattleText_Tie:: @ 8400E57 - .string "{HIGHLIGHT TRANSPARENT}Patt$" - -gUnknown_08400E5E:: @ 8400E5E -BattleText_Format10: - .string " ist$" - -gUnknown_08400E62:: @ 8400E62 -BattleText_Format11: - .string "$" -BattleText_Normal: - .string "eine NORMALE Att.$" -BattleText_Fighting: - .string "eine KAMPF-Att.$" -BattleText_Flying: - .string "eine FLUG-Att.$" -BattleText_Poison: - .string "eine GIFT-Att.$" -BattleText_Ground: - .string "eine BODEN-Att.$" -BattleText_Rock: - .string "eine GESTEINS-Att.$" -BattleText_Bug: - .string "eine KÄFER-Att.$" -BattleText_Ghost: - .string "eine GEIST-Att.$" -BattleText_Steel: - .string "eine STAHL-Att.$" -BattleText_Typeless: - .string "eine ???-Attacke$" -BattleText_Fire: - .string "eine FEUER-Att.$" -BattleText_Water: - .string "eine WASSER-Att.$" -BattleText_Grass: - .string "eine PFLANZEN-Att.$" -BattleText_Electric: - .string "eine ELEKTRO-Att.$" -BattleText_Psychic: - .string "eine PSYCHO-Att.$" -BattleText_Ice: - .string "eine EIS-Att.$" -BattleText_Dragon: - .string "eine DRACHEN-Att.$" -BattleText_Dark: - .string "eine UNLICHT-Att.$" - - .align 2 -gUnknown_08400F58:: @ 8400F58 - .4byte BattleStatText_HP - .4byte BattleStatText_Attack - .4byte BattleStatText_Defense - .4byte BattleStatText_Speed - .4byte BattleStatText_SpAtk - .4byte BattleStatText_SpDef - .4byte BattleStatText_Accuracy - .4byte BattleStatText_Evasion - - .align 2 -gUnknown_08400F78:: @ 8400F78 - .4byte ContestStatText_TooSpicy - .4byte ContestStatText_TooDry - .4byte ContestStatText_TooSweet - .4byte ContestStatText_TooBitter - .4byte ContestStatText_TooSour - - .align 2 -gBattleStringsTable:: @ 8400F8C - .4byte BattleText_UnknownString - .4byte BattleText_GainExpPoints - .4byte BattleText_GrewLevel - .4byte BattleText_LearnedMove - .4byte BattleText_TryingToLearnMove - .4byte BattleText_CantLearnMore - .4byte BattleText_DeleteMove - .4byte BattleText_DeletedMove - .4byte BattleText_StopLearning - .4byte BattleText_DidNotLearn - .4byte BattleText_LearnedMove2 - .4byte BattleText_AttackMissed - .4byte BattleText_ProtectedItself - .4byte BattleText_StatNoHigher - .4byte BattleText_AvoidedDamage - .4byte BattleText_DoesntAffect - .4byte BattleText_AttackingFainted - .4byte BattleText_DefendingFainted - .4byte BattleText_WinningPrize - .4byte BattleText_OutOfUsablePoke - .4byte BattleText_WhitedOut - .4byte BattleText_PreventEscape - .4byte BattleText_HitMulti - .4byte BattleText_FellAsleep - .4byte BattleText_MadeAsleep - .4byte BattleText_DefendingAsleep - .4byte BattleText_AttackingAsleep - .4byte BattleText_WasntAffected - .4byte BattleText_Poisoned - .4byte BattleText_Poisoned2 - .4byte BattleText_PoisonHurt - .4byte BattleText_AlreadyPoisoned - .4byte BattleText_BadlyPoisoned - .4byte BattleText_EnergyDrained - .4byte BattleText_Burned - .4byte BattleText_Burned2 - .4byte BattleText_BurnHurt - .4byte BattleText_Frozen - .4byte BattleText_Frozen2 - .4byte BattleText_FrozenSolid - .4byte BattleText_DefendingDefrosted - .4byte BattleText_AttackingDefrosted - .4byte BattleText_Defrosted - .4byte BattleText_Paralyzed - .4byte BattleText_Paralyzed2 - .4byte BattleText_Paralyzed3 - .4byte BattleText_AlreadyParalyzed - .4byte BattleText_ParalysisHealed - .4byte BattleText_DreamEaten - .4byte BattleText_AttackingStatNoHigher - .4byte BattleText_DefendingStatNoHigher - .4byte BattleText_StoppedWorking - .4byte BattleText_StoppedWorking2 - .4byte BattleText_Confused - .4byte BattleText_ConfusionSnapOut - .4byte BattleText_BecameConfused - .4byte BattleText_AlreadyConfused - .4byte BattleText_FellLove - .4byte BattleText_InLoveWith - .4byte BattleText_ImmobilizedBy - .4byte BattleText_BlownAway - .4byte BattleText_TypeTransform - .4byte BattleText_Flinched - .4byte BattleText_RegainedHealth - .4byte BattleText_HPFull - .4byte BattleText_RaisedSpDef - .4byte BattleText_RaisedDefense - .4byte BattleText_CoveredVeil - .4byte BattleText_SafeguardActive - .4byte BattleText_SafeguardFaded - .4byte BattleText_WentToSleep - .4byte BattleText_SpeltHealthy - .4byte BattleText_WhipWhirlwind - .4byte BattleText_TookSunlight - .4byte BattleText_LoweredHead - .4byte BattleText_IsGlowing - .4byte BattleText_FlewHigh - .4byte BattleText_DugHole - .4byte BattleText_SqueezedBind - .4byte BattleText_TrappedVortex - .4byte BattleText_Wrapped - .4byte BattleText_Clamped - .4byte BattleText_HurtBy - .4byte BattleText_FreedFrom - .4byte BattleText_KeptGoingCrash - .4byte BattleText_MistShroud - .4byte BattleText_MistProtect - .4byte BattleText_GetPumped - .4byte BattleText_HitRecoil - .4byte BattleText_ProtectedItself2 - .4byte BattleText_SandBuffeted - .4byte BattleText_HailStricken - .4byte BattleText_WasSeeded - .4byte BattleText_EvadedAttack - .4byte BattleText_HealthSapped - .4byte BattleText_FastAsleep - .4byte BattleText_WokeUp - .4byte BattleText_UproarAwake - .4byte BattleText_UproarWoke - .4byte BattleText_UproarCaused - .4byte BattleText_UproarMaking - .4byte BattleText_CalmedDown - .4byte BattleText_UproarCantSleep - .4byte BattleText_Stockpiled - .4byte BattleText_StockpiledCant - .4byte BattleText_UproarCantSleep2 - .4byte BattleText_UproarKeptAwake - .4byte BattleText_StayedAwake - .4byte BattleText_StoringEnergy - .4byte BattleText_UnleashedEnergy - .4byte BattleText_FatigueConfuse - .4byte BattleText_PickedUpYen - .4byte BattleText_Unaffected - .4byte BattleText_Transformed - .4byte BattleText_SubMade - .4byte BattleText_SubAlready - .4byte BattleText_SubTookDamage - .4byte BattleText_SubFaded - .4byte BattleText_MustRecharge - .4byte BattleText_RageBuilding - .4byte BattleText_MoveWasDisabled - .4byte BattleText_MoveIsDisabled - .4byte BattleText_DisabledNoMore - .4byte BattleText_EncoreGot - .4byte BattleText_EncoreEnded - .4byte BattleText_TookAim - .4byte BattleText_SketchedMove - .4byte BattleText_DestinyBondTake - .4byte BattleText_DestinyBondTaken - .4byte BattleText_ReducedBy - .4byte BattleText_StoleSomething - .4byte BattleText_CantEscapeNow - .4byte BattleText_NightmareStart - .4byte BattleText_NightmareLock - .4byte BattleText_CurseLay - .4byte BattleText_CurseAfflict - .4byte BattleText_SpikesScattered - .4byte BattleText_SpikesHurt - .4byte BattleText_IdentifiedPoke - .4byte BattleText_PerishSongFell - .4byte BattleText_BracedItself - .4byte BattleText_EnduredHit - .4byte BattleText_MagnitudeCount - .4byte BattleText_CutHPMaxATK - .4byte BattleText_CopyStatChanges - .4byte BattleText_GotFreeFrom - .4byte BattleText_LeechShed - .4byte BattleText_SpikesBlownAway - .4byte BattleText_FledBattle - .4byte BattleText_ForesawAttack - .4byte BattleText_TookAttack - .4byte BattleText_PokeAttack - .4byte BattleText_CenterAttention - .4byte BattleText_ChargingPower - .4byte BattleText_NaturePower - .4byte BattleText_StatusNormal - .4byte BattleText_NoMovesLeft - .4byte BattleText_TormentSubject - .4byte BattleText_TormentNoUse - .4byte BattleText_TightenFocus - .4byte BattleText_TauntFell - .4byte BattleText_TauntNoUse - .4byte BattleText_ReadyToHelp - .4byte BattleText_SwitchedItems - .4byte BattleText_CopiedObject - .4byte BattleText_WishMade - .4byte BattleText_WishTrue - .4byte BattleText_PlantedRoots - .4byte BattleText_AbsorbNutrients - .4byte BattleText_AnchoredItself - .4byte BattleText_DrowsyMade - .4byte BattleText_KnockedOffItem - .4byte BattleText_AbilitySwap - .4byte BattleText_SealedMove - .4byte BattleText_SealedNoUse - .4byte BattleText_GrudgeBear - .4byte BattleText_GrudgeLosePP - .4byte BattleText_ShroudedItself - .4byte BattleText_MagicCoatBounce - .4byte BattleText_AwaitMove - .4byte BattleText_SnatchedMove - .4byte BattleText_RainMade - .4byte BattleText_SpeedRisen - .4byte BattleText_ProtectedBy - .4byte BattleText_PreventedBy - .4byte BattleText_HPRestoredUsing - .4byte BattleText_MadeType - .4byte BattleText_PreventedPara - .4byte BattleText_PreventedRomance - .4byte BattleText_PreventedPoison - .4byte BattleText_PreventedConfusion - .4byte BattleText_RaisedFirePower - .4byte BattleText_AnchorsItself - .4byte BattleText_CutsAttack - .4byte BattleText_PreventedStatLoss - .4byte BattleText_HurtOther - .4byte BattleText_Traced - .4byte BattleText_Sharply - .4byte BattleText_Rose - .4byte BattleText_Harshly - .4byte BattleText_Fell - .4byte BattleText_UnknownString7 - .4byte BattleText_UnknownString3 - .4byte BattleText_UnknownString5 - .4byte BattleText_UnknownString6 - .4byte BattleText_Critical - .4byte BattleText_GrandSlam - .4byte BattleText_MoveForget123 - .4byte BattleText_MoveForgetAnd - .4byte BattleText_NotEffective - .4byte BattleText_SuperEffective - .4byte BattleText_GotAwaySafely - .4byte BattleText_FledWild - .4byte BattleText_NoRunning - .4byte BattleText_CantEscape2 - .4byte BattleText_BirchDontLeaveMe - .4byte BattleText_Nothing - .4byte BattleText_Failed - .4byte BattleText_HurtItself - .4byte BattleText_MirrorFail - .4byte BattleText_RainStart - .4byte BattleText_PourStart - .4byte BattleText_RainCont1 - .4byte BattleText_PourCont - .4byte BattleText_RainStop - .4byte BattleText_SandBrewed - .4byte BattleText_SandRages - .4byte BattleText_SandSubsided - .4byte BattleText_SunBright - .4byte BattleText_SunStrong - .4byte BattleText_SunFaded - .4byte BattleText_HailStart - .4byte BattleText_HailCont - .4byte BattleText_HailStop - .4byte BattleText_SpitUpFail - .4byte BattleText_SwallowFail - .4byte BattleText_WindHeatWave - .4byte BattleText_StatElim - .4byte BattleText_CoinScatter - .4byte BattleText_SubWeak - .4byte BattleText_PainSplit - .4byte BattleText_BellChime - .4byte BattleText_PerishSong - .4byte BattleText_NoPP1 - .4byte BattleText_NoPP2 - .4byte BattleText_Used1 - .4byte BattleText_TutorialUsed - .4byte BattleText_BlockBall - .4byte BattleText_DontBeAThief - .4byte BattleText_DodgeBall - .4byte BattleText_MissPoke - .4byte BattleText_BallBrokeOhNo - .4byte BattleText_BallBrokeAppeared - .4byte BattleText_BallBrokeAlmost - .4byte BattleText_BallBrokeSoClose - .4byte BattleText_BallCaught1 - .4byte BattleText_BallCaught2 - .4byte BattleText_GiveNickname - .4byte BattleText_SentToPC - .4byte BattleText_AddedToDex - .4byte BattleText_Raining - .4byte BattleText_Sandstorm - .4byte BattleText_CantEscape - .4byte BattleText_IgnoredOrdersSLP - .4byte BattleText_IgnoredOrders - .4byte BattleText_BeganNap - .4byte BattleText_LoafingAround - .4byte BattleText_WontObey - .4byte BattleText_TurnedAway - .4byte BattleText_NotNotice - .4byte BattleText_WillSwitch - .4byte BattleText_CreptCloser - .4byte BattleText_CantGetCloser - .4byte BattleText_WatchingCarefully - .4byte BattleText_CuriousAbout - .4byte BattleText_EnthralledBy - .4byte BattleText_IgnoredThing - .4byte BattleText_ThrewBlock - .4byte BattleText_SafariOver - .4byte BattleText_CuredParalysis - .4byte BattleText_CuredPoison - .4byte BattleText_CuredBurn - .4byte BattleText_CuredFreeze - .4byte BattleText_CuredSleep - .4byte BattleText_CuredConfusion - .4byte BattleText_CuredStatus - .4byte BattleText_RestoredHealth - .4byte BattleText_RestoredPP - .4byte BattleText_RestoredStatus - .4byte BattleText_RestoredHPLittle - .4byte BattleText_ChoiceBand - .4byte BattleText_FocusSash - .4byte BattleText_Terminator2 @ terminator? - .4byte BattleText_PreventedBurn - .4byte BattleText_BlocksOther - .4byte BattleText_RestoredHPByItem - .4byte BattleText_WhipSandstorm - .4byte BattleText_PreventedLoss - .4byte BattleText_InfatuatedPoke - .4byte BattleText_MadeIneffective - .4byte BattleText_CuredProblem - .4byte BattleText_OozeSuckup - .4byte BattleText_Transformed2 - .4byte BattleText_ElecWeakened - .4byte BattleText_FireWeakened - .4byte BattleText_HidUnderwater - .4byte BattleText_SprangUp - .4byte BattleText_CantForgetHM - .4byte BattleText_FoundOne - .4byte BattleText_PlayerDefeatedTrainer2 - .4byte BattleText_SoothingAroma - .4byte BattleText_CantUseItems - .4byte BattleText_UnknownString2 - .4byte BattleText_UnknownString4 - .4byte BattleText_HustleUse - .4byte BattleText_MadeUseless - .4byte BattleText_SandTombTrapped @ sand tomb - .4byte BattleText_Terminator - .4byte BattleText_BoostedExp - .4byte BattleText_SunIntensified - .4byte BattleText_GroundMoveNegate - .4byte BattleText_WallyBall - .4byte BattleText_TookAttack2 - .4byte BattleText_ChoseDestiny - .4byte BattleText_LostFocus - .4byte BattleText_UseNext - .4byte BattleText_FledUsingItem - .4byte BattleText_FledUsingOther - .4byte BattleText_DraggedOut - .4byte BattleText_PreventedOther - .4byte BattleText_NormalizedStatus - .4byte BattleText_Used2 - .4byte BattleText_BoxFull - .4byte BattleText_AvoidedAttack - .4byte BattleText_MadeIneffective2 - .4byte BattleText_PreventedFlinching - .4byte BattleText_AlreadyBurned - .4byte BattleText_StatNoLower - .4byte BattleText_BlocksOther2 - .4byte BattleText_WoreOff - .4byte BattleText_RaisedDefenseLittle - .4byte BattleText_RaisedSpDefLittle - .4byte BattleText_BrokeWall - .4byte BattleText_PreventedOther2 - .4byte BattleText_CuredOfProblem - .4byte BattleText_AttackingCantEscape - .4byte BattleText_Obtained1 - .4byte BattleText_Obtained2 - .4byte BattleText_Obtained3 - .4byte BattleText_NoEffect - .4byte BattleText_NoEffectOn - - .align 1 -gMissStrings:: @ 8401508 -@ Each entry refers to a text pointer in gUnknown_08400F8C, but the values are offset -@ by 0xc. For example, 0x0017 refers to BattleText_AttackMissed because it is the -@ 11th entry in the pointer table. - .2byte BATTLE_TEXT_AttackMissed - .2byte BATTLE_TEXT_ProtectedItself - .2byte BATTLE_TEXT_AvoidedAttack - .2byte BATTLE_TEXT_AvoidedDamage - .2byte BATTLE_TEXT_GroundMoveNegate - -BattleTextList_401512:: @ 8401512 - .2byte BATTLE_TEXT_CantEscape2 - .2byte BATTLE_TEXT_BirchDontLeaveMe - .2byte BATTLE_TEXT_PreventEscape - .2byte BATTLE_TEXT_CantEscape - .2byte BATTLE_TEXT_AttackingCantEscape - -BattleTextList_40151C:: @ 840151C - .2byte BATTLE_TEXT_RainStart - .2byte BATTLE_TEXT_PourStart - .2byte BATTLE_TEXT_Failed - .2byte BATTLE_TEXT_SandBrewed - .2byte BATTLE_TEXT_SunBright - .2byte BATTLE_TEXT_HailStart - -BattleTextList_401528:: @ 8401528 - .2byte BATTLE_TEXT_SandRages - .2byte BATTLE_TEXT_HailCont - -BattleTextList_40152C:: @ 840152C - .2byte BATTLE_TEXT_SandBuffeted - .2byte BATTLE_TEXT_HailStricken - -BattleTextList_401530:: @ 8401530 - .2byte BATTLE_TEXT_SandSubsided - .2byte BATTLE_TEXT_HailStop - -BattleTextList_401534:: @ 8401534 - .2byte BATTLE_TEXT_RainCont1 - .2byte BATTLE_TEXT_PourCont - .2byte BATTLE_TEXT_RainStop - -BattleTextList_40153A:: @ 840153A - .2byte BATTLE_TEXT_ProtectedItself2 - .2byte BATTLE_TEXT_BracedItself - .2byte BATTLE_TEXT_Failed - -BattleTextList_401540:: @ 8401540 - .2byte BATTLE_TEXT_Failed - .2byte BATTLE_TEXT_RaisedDefense - .2byte BATTLE_TEXT_RaisedDefenseLittle - .2byte BATTLE_TEXT_RaisedSpDef - .2byte BATTLE_TEXT_RaisedSpDefLittle - .2byte BATTLE_TEXT_CoveredVeil - -BattleTextList_40154C:: @ 840154C - .2byte BATTLE_TEXT_WasSeeded - .2byte BATTLE_TEXT_EvadedAttack - .2byte BATTLE_TEXT_DoesntAffect - .2byte BATTLE_TEXT_HealthSapped - .2byte BATTLE_TEXT_OozeSuckup - -BattleTextList_401556:: @ 8401556 - .2byte BATTLE_TEXT_WentToSleep - .2byte BATTLE_TEXT_SpeltHealthy - -BattleTextList_40155A:: @ 840155A - .2byte BATTLE_TEXT_UproarMaking - .2byte BATTLE_TEXT_CalmedDown - -BattleTextList_40155E:: @ 840155E - .2byte BATTLE_TEXT_Stockpiled - .2byte BATTLE_TEXT_StockpiledCant - -BattleTextList_401562:: @ 8401562 - .2byte BATTLE_TEXT_WokeUp - .2byte BATTLE_TEXT_UproarWoke - -BattleTextList_401566:: @ 8401566 - .2byte BATTLE_TEXT_SwallowFail - .2byte BATTLE_TEXT_HPFull - -BattleTextList_40156A:: @ 840156A - .2byte BATTLE_TEXT_UproarCantSleep2 - .2byte BATTLE_TEXT_UproarKeptAwake - .2byte BATTLE_TEXT_StayedAwake - -BattleTextList_401570:: @ 8401570 - .2byte BATTLE_TEXT_UnknownString7 - .2byte BATTLE_TEXT_UnknownString3 - .2byte BATTLE_TEXT_AttackingStatNoHigher - .2byte BATTLE_TEXT_Terminator2 - .2byte BATTLE_TEXT_UnknownString4 - .2byte BATTLE_TEXT_HustleUse - -BattleTextList_40157C:: @ 840157C - .2byte BATTLE_TEXT_UnknownString5 - .2byte BATTLE_TEXT_UnknownString6 - .2byte BATTLE_TEXT_DefendingStatNoHigher - .2byte BATTLE_TEXT_Terminator2 - -BattleTextList_401584:: @ 8401584 - .2byte BATTLE_TEXT_WhipWhirlwind - .2byte BATTLE_TEXT_TookSunlight - .2byte BATTLE_TEXT_LoweredHead - .2byte BATTLE_TEXT_IsGlowing - .2byte BATTLE_TEXT_FlewHigh - .2byte BATTLE_TEXT_DugHole - .2byte BATTLE_TEXT_HidUnderwater - .2byte BATTLE_TEXT_SprangUp - -BattleTextList_401594:: @ 8401594 - .2byte BATTLE_TEXT_SqueezedBind - .2byte BATTLE_TEXT_Wrapped - .2byte BATTLE_TEXT_TrappedVortex - .2byte BATTLE_TEXT_Clamped - .2byte BATTLE_TEXT_TrappedVortex - .2byte BATTLE_TEXT_SandTombTrapped - -BattleTextList_4015A0:: @ 84015A0 - .2byte BATTLE_TEXT_MistShroud - .2byte BATTLE_TEXT_Failed - -BattleTextList_4015A4:: @ 84015A4 - .2byte BATTLE_TEXT_GetPumped - .2byte BATTLE_TEXT_Failed - -BattleTextList_4015A8:: @ 84015A8 - .2byte BATTLE_TEXT_Transformed - .2byte BATTLE_TEXT_Failed - -BattleTextList_4015AC:: @ 84015AC - .2byte BATTLE_TEXT_SubMade - .2byte BATTLE_TEXT_SubWeak - -BattleTextList_4015B0:: @ 84015B0 - .2byte BATTLE_TEXT_Poisoned - .2byte BATTLE_TEXT_Poisoned2 - -BattleTextList_4015B4:: @ 84015B4 - .2byte BATTLE_TEXT_Paralyzed - .2byte BATTLE_TEXT_Paralyzed2 - -BattleTextList_4015B8:: @ 84015B8 - .2byte BATTLE_TEXT_FellAsleep - .2byte BATTLE_TEXT_MadeAsleep - -BattleTextList_4015BC:: @ 84015BC - .2byte BATTLE_TEXT_Burned - .2byte BATTLE_TEXT_Burned2 - -BattleTextList_4015C0:: @ 84015C0 - .2byte BATTLE_TEXT_Frozen - .2byte BATTLE_TEXT_Frozen2 - -BattleTextList_4015C4:: @ 84015C4 - .2byte BATTLE_TEXT_AttackingDefrosted - .2byte BATTLE_TEXT_Defrosted - -BattleTextList_4015C8:: @ 84015C8 - .2byte BATTLE_TEXT_AttackMissed - .2byte BATTLE_TEXT_Unaffected - .2byte BATTLE_TEXT_FellLove - .2byte BATTLE_TEXT_InfatuatedPoke - -BattleTextList_4015D0:: @ 84015D0 - .2byte BATTLE_TEXT_EnergyDrained - .2byte BATTLE_TEXT_OozeSuckup - -BattleTextList_4015D4:: @ 84015D4 - .2byte BATTLE_TEXT_ElecWeakened - .2byte BATTLE_TEXT_FireWeakened - -BattleTextList_4015D8:: @ 84015D8 - .2byte BATTLE_TEXT_BellChime - .2byte BATTLE_TEXT_BellChime - .2byte BATTLE_TEXT_BellChime - .2byte BATTLE_TEXT_BellChime - .2byte BATTLE_TEXT_SoothingAroma - -BattleTextList_4015E2:: @ 84015E2 - .2byte BATTLE_TEXT_ForesawAttack - .2byte BATTLE_TEXT_ChoseDestiny - -BattleTextList_4015E6:: @ 84015E6 - .2byte BATTLE_TEXT_BallBrokeOhNo - .2byte BATTLE_TEXT_BallBrokeAppeared - .2byte BATTLE_TEXT_BallBrokeAlmost - .2byte BATTLE_TEXT_BallBrokeSoClose - -BattleTextList_4015EE:: @ 84015EE - .2byte BATTLE_TEXT_Raining - .2byte BATTLE_TEXT_Raining - .2byte BATTLE_TEXT_Raining - .2byte BATTLE_TEXT_Raining - .2byte BATTLE_TEXT_Raining - .2byte BATTLE_TEXT_Raining - .2byte BATTLE_TEXT_Raining - .2byte BATTLE_TEXT_Raining - .2byte BATTLE_TEXT_Sandstorm - .2byte BATTLE_TEXT_Raining - .2byte BATTLE_TEXT_Raining - .2byte BATTLE_TEXT_Raining - .2byte BATTLE_TEXT_SunStrong - .2byte BATTLE_TEXT_Raining - .2byte BATTLE_TEXT_Raining - .2byte BATTLE_TEXT_Raining - -BattleTextList_40160E:: @ 840160E - .2byte BATTLE_TEXT_LoafingAround - .2byte BATTLE_TEXT_WontObey - .2byte BATTLE_TEXT_TurnedAway - .2byte BATTLE_TEXT_NotNotice - -BattleTextList_401616:: @ 8401616 - .2byte BATTLE_TEXT_CreptCloser - .2byte BATTLE_TEXT_CantGetCloser - -BattleTextList_40161A:: @ 840161A - .2byte BATTLE_TEXT_CuriousAbout - .2byte BATTLE_TEXT_EnthralledBy - .2byte BATTLE_TEXT_IgnoredThing - -BattleTextList_401620:: @ 8401620 - .2byte BATTLE_TEXT_CuredConfusion - .2byte BATTLE_TEXT_CuredParalysis - .2byte BATTLE_TEXT_CuredFreeze - .2byte BATTLE_TEXT_CuredBurn - .2byte BATTLE_TEXT_CuredPoison - .2byte BATTLE_TEXT_CuredSleep - -BattleTextList_40162C:: @ 840162C - .2byte BATTLE_TEXT_CuredStatus - .2byte BATTLE_TEXT_NormalizedStatus - -BattleTextList_401630:: @ 8401630 - .2byte BATTLE_TEXT_PreventedBurn - .2byte BATTLE_TEXT_PreventedOther2 - .2byte BATTLE_TEXT_NoEffectOn - -BattleTextList_401636:: @ 8401636 - .2byte BATTLE_TEXT_PreventedPara - .2byte BATTLE_TEXT_PreventedOther2 - .2byte BATTLE_TEXT_NoEffectOn - -BattleTextList_40163C:: @ 840163C - .2byte BATTLE_TEXT_PreventedPoison - .2byte BATTLE_TEXT_PreventedOther2 - .2byte BATTLE_TEXT_NoEffectOn - -BattleTextList_401642:: @ 8401642 - .2byte BATTLE_TEXT_Obtained1 - .2byte BATTLE_TEXT_Obtained2 - .2byte BATTLE_TEXT_Obtained3 - -BattleTextList_401648:: @ 8401648 - .2byte BATTLE_TEXT_RaisedFirePower - .2byte BATTLE_TEXT_MadeIneffective - -gTrappingMoves:: @ 840164C - .2byte BATTLE_TEXT_StopLearning - .2byte BATTLE_TEXT_FellAsleep - .2byte BATTLE_TEXT_SpeltHealthy - .2byte BATTLE_TEXT_SubTookDamage - .2byte BATTLE_TEXT_CoinScatter - .2byte BATTLE_TEXT_SandTombTrapped - .2byte 0xFFFF - - .align 2 -gUnknown_0840165C:: @ 840165C - .4byte BattleText_HP - .4byte BattleText_SpAtk - .4byte BattleText_Attack - .4byte BattleText_SpDef - .4byte BattleText_Defense - .4byte BattleStatText_Speed - - .align 2 -gUnknown_08401674:: @ 8401674 - .4byte BattleText_Normal - .4byte BattleText_Fighting - .4byte BattleText_Flying - .4byte BattleText_Poison - .4byte BattleText_Ground - .4byte BattleText_Rock - .4byte BattleText_Bug - .4byte BattleText_Ghost - .4byte BattleText_Steel - .4byte BattleText_Typeless - .4byte BattleText_Fire - .4byte BattleText_Water - .4byte BattleText_Grass - .4byte BattleText_Electric - .4byte BattleText_Psychic - .4byte BattleText_Ice - .4byte BattleText_Dragon - .4byte BattleText_Dark diff --git a/data/battle_message.s b/data/battle_message.s deleted file mode 100644 index 0ad61bfc0..000000000 --- a/data/battle_message.s +++ /dev/null @@ -1,131 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .include "data/text/battle_strings.inc" - - .align 1 -gUnknown_084016BC:: @ 84016BC - .2byte 0xE - .2byte 0x46 - .2byte 0x4A - .2byte 0x6A - .2byte 0x6B - .2byte 0x6C - .2byte 0x6E - .2byte 0x6F - .2byte 0x79 - .2byte 0x7B - .2byte 0x7D - .2byte 0x94 - .2byte 0x96 - .2byte 0x97 - .2byte 0x9B - .2byte 0x9C - .2byte 0x9F - .2byte 0xA4 - .2byte 0xAA - .2byte 0xAD - .2byte 0xB6 - .2byte 0xBF - .2byte 0xCB - .2byte 0xCD - .2byte 0xCF - .2byte 0xD6 - .2byte 0xED - .2byte 0xF4 - .2byte 0xF5 - .2byte 0x10A - .2byte 0x10F - .2byte 0x112 - .2byte 0x113 - .2byte 0x11A - .2byte 0x125 - .2byte 0x136 - .2byte 0x13C - .2byte 0x140 - .2byte 0x149 - .2byte 0x14A - .2byte 0x14E - .2byte 0x154 - .2byte 0x0 - .2byte 0x64 - .2byte 0x69 - .2byte 0x75 - .2byte 0x85 - .2byte 0xAF - .2byte 0x10D - .2byte 0x153 - .2byte 0x0 - .2byte 0x60 - .2byte 0x61 - .2byte 0x66 - .2byte 0x68 - .2byte 0x8C - .2byte 0x90 - .2byte 0xA5 - .2byte 0xB8 - .2byte 0x10C - .2byte 0x111 - .2byte 0x118 - .2byte 0x119 - .2byte 0x129 - .2byte 0x12A - .2byte 0x12C - .2byte 0x139 - .2byte 0x15A - .2byte 0x15B - .2byte 0x0 - .2byte 0x1 - .2byte 0xA - .2byte 0xB - .2byte 0x11 - .2byte 0x13 - .2byte 0x14 - .2byte 0x15 - .2byte 0x1E - .2byte 0x23 - .2byte 0x25 - .2byte 0x27 - .2byte 0x2B - .2byte 0x2C - .2byte 0x2D - .2byte 0x2E - .2byte 0x2F - .2byte 0x40 - .2byte 0x47 - .2byte 0x51 - .2byte 0x59 - .2byte 0x5A - .2byte 0x5B - .2byte 0x5C - .2byte 0x67 - .2byte 0x76 - .2byte 0x7A - .2byte 0x80 - .2byte 0x84 - .2byte 0x8B - .2byte 0x91 - .2byte 0xA3 - .2byte 0xA9 - .2byte 0xAB - .2byte 0xAE - .2byte 0xC1 - .2byte 0xCC - .2byte 0xD5 - .2byte 0xF9 - .2byte 0xFD - .2byte 0xFF - .2byte 0x100 - .2byte 0x103 - .2byte 0x104 - .2byte 0x110 - .2byte 0x11B - .2byte 0x141 - .2byte 0x157 - .2byte 0x0 - - .align 2 -gUnknown_084017A8:: @ 84017A8 - .4byte -1, -1 diff --git a/data/cable_club.s b/data/cable_club.s deleted file mode 100644 index f0ced6292..000000000 --- a/data/cable_club.s +++ /dev/null @@ -1,32 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -.ifdef ENGLISH -TrainerCardColorName_Bronze: - .string "BRONZE$", 7 -TrainerCardColorName_Copper: - .string "COPPER$", 7 -TrainerCardColorName_Silver: - .string "SILVER$", 7 -TrainerCardColorName_Gold: - .string "GOLD$", 7 -.else -TrainerCardColorName_Bronze: - .string "BRONZE$", 7 -TrainerCardColorName_Copper: - .string "KUPFER$", 7 -TrainerCardColorName_Silver: - .string "SILBER$", 7 -TrainerCardColorName_Gold: - .string "GOLD$", 7 -.endif - - - .align 2 -gTrainerCardColorNames:: @ 839B21C - .4byte TrainerCardColorName_Bronze - .4byte TrainerCardColorName_Copper - .4byte TrainerCardColorName_Silver - .4byte TrainerCardColorName_Gold diff --git a/data/field_door.s b/data/field_door.s deleted file mode 100644 index d7ccdd2d4..000000000 --- a/data/field_door.s +++ /dev/null @@ -1,416 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -DoorAnimTiles_04: @ 8308F1C - .incbin "graphics/door_anims/04/0.4bpp" - .incbin "graphics/door_anims/04/1.4bpp" - .incbin "graphics/door_anims/04/2.4bpp" - - .space 32 - - .align 2 -DoorAnimTiles_05: @ 830923C - .incbin "graphics/door_anims/05/0.4bpp" - .incbin "graphics/door_anims/05/1.4bpp" - .incbin "graphics/door_anims/05/2.4bpp" - - .align 2 -DoorAnimTiles_08: @ 830953C - .incbin "graphics/door_anims/08/0.4bpp" - .incbin "graphics/door_anims/08/1.4bpp" - .incbin "graphics/door_anims/08/2.4bpp" - - .space 32 - - .align 2 -DoorAnimTiles_15: @ 830985C - .incbin "graphics/door_anims/15/0.4bpp" - .incbin "graphics/door_anims/15/1.4bpp" - .incbin "graphics/door_anims/15/2.4bpp" - - .space 32 - - .align 2 -DoorAnimTiles_16: @ 8309B7C - .incbin "graphics/door_anims/16/0.4bpp" - .incbin "graphics/door_anims/16/1.4bpp" - .incbin "graphics/door_anims/16/2.4bpp" - - .space 32 - - .align 2 -DoorAnimTiles_00: @ 8309E9C - .incbin "graphics/door_anims/00/0.4bpp" - .incbin "graphics/door_anims/00/1.4bpp" - .incbin "graphics/door_anims/00/2.4bpp" - - .align 2 -DoorAnimTiles_01: @ 830A19C - .incbin "graphics/door_anims/01/0.4bpp" - .incbin "graphics/door_anims/01/1.4bpp" - .incbin "graphics/door_anims/01/2.4bpp" - - .align 2 -DoorAnimTiles_02: @ 830A49C - .incbin "graphics/door_anims/02/0.4bpp" - .incbin "graphics/door_anims/02/1.4bpp" - .incbin "graphics/door_anims/02/2.4bpp" - - .align 2 -DoorAnimTiles_03: @ 830A79C - .incbin "graphics/door_anims/03/0.4bpp" - .incbin "graphics/door_anims/03/1.4bpp" - .incbin "graphics/door_anims/03/2.4bpp" - - .align 2 -DoorAnimTiles_06: @ 830AA9C - .incbin "graphics/door_anims/06/0.4bpp" - .incbin "graphics/door_anims/06/1.4bpp" - .incbin "graphics/door_anims/06/2.4bpp" - - .align 2 -DoorAnimTiles_07: @ 830AD9C - .incbin "graphics/door_anims/07/0.4bpp" - .incbin "graphics/door_anims/07/1.4bpp" - .incbin "graphics/door_anims/07/2.4bpp" - - .align 2 -DoorAnimTiles_09: @ 830B09C - .incbin "graphics/door_anims/09/0.4bpp" - .incbin "graphics/door_anims/09/1.4bpp" - .incbin "graphics/door_anims/09/2.4bpp" - - .space 32 - - .align 2 -DoorAnimTiles_10: @ 830B3BC - .incbin "graphics/door_anims/10/0.4bpp" - .incbin "graphics/door_anims/10/1.4bpp" - .incbin "graphics/door_anims/10/2.4bpp" - - .space 32 - - .align 2 -DoorAnimTiles_11: @ 830B6DC - .incbin "graphics/door_anims/11/0.4bpp" - .incbin "graphics/door_anims/11/1.4bpp" - .incbin "graphics/door_anims/11/2.4bpp" - - .space 32 - - .align 2 -DoorAnimTiles_12: @ 830B9FC - .incbin "graphics/door_anims/12/0.4bpp" - .incbin "graphics/door_anims/12/1.4bpp" - .incbin "graphics/door_anims/12/2.4bpp" - - .space 32 - - .align 2 -DoorAnimTiles_13: @ 830BD1C - .incbin "graphics/door_anims/13/0.4bpp" - .incbin "graphics/door_anims/13/1.4bpp" - .incbin "graphics/door_anims/13/2.4bpp" - - .space 32 - - .align 2 -DoorAnimTiles_14: @ 830C03C - .incbin "graphics/door_anims/14/0.4bpp" - .incbin "graphics/door_anims/14/1.4bpp" - .incbin "graphics/door_anims/14/2.4bpp" - - .space 32 - - .align 2 -DoorAnimTiles_17: @ 830C35C - .incbin "graphics/door_anims/17/0.4bpp" - .incbin "graphics/door_anims/17/1.4bpp" - .incbin "graphics/door_anims/17/2.4bpp" - - .space 32 - - .align 2 -DoorAnimTiles_18: @ 830C67C - .incbin "graphics/door_anims/18/0.4bpp" - .incbin "graphics/door_anims/18/1.4bpp" - .incbin "graphics/door_anims/18/2.4bpp" - - .space 32 - - .align 2 -DoorAnimTiles_19: @ 830C99C - .incbin "graphics/door_anims/19/0.4bpp" - .incbin "graphics/door_anims/19/1.4bpp" - .incbin "graphics/door_anims/19/2.4bpp" - - .space 32 - - .align 2 -DoorAnimTiles_20: @ 830CCBC - .incbin "graphics/door_anims/20/0.4bpp" - .incbin "graphics/door_anims/20/1.4bpp" - .incbin "graphics/door_anims/20/2.4bpp" - - .space 32 - - .align 2 -DoorAnimTiles_21: @ 830CFDC - .incbin "graphics/door_anims/21/0.4bpp" - .incbin "graphics/door_anims/21/1.4bpp" - .incbin "graphics/door_anims/21/2.4bpp" - - .space 32 - - .align 2 -DoorAnimTiles_22: @ 830D2FC - .incbin "graphics/door_anims/22/0.4bpp" - .incbin "graphics/door_anims/22/1.4bpp" - .incbin "graphics/door_anims/22/2.4bpp" - - .space 32 - - .align 2 -DoorAnimTiles_23: @ 830D61C - .incbin "graphics/door_anims/23/0.4bpp" - .incbin "graphics/door_anims/23/1.4bpp" - .incbin "graphics/door_anims/23/2.4bpp" - - .space 32 - - .align 2 -DoorAnimTiles_24: @ 830D93C - .incbin "graphics/door_anims/24/0.4bpp" - .incbin "graphics/door_anims/24/1.4bpp" - .incbin "graphics/door_anims/24/2.4bpp" - - .space 32 - - .align 2 -DoorAnimTiles_25: @ 830DC5C - .incbin "graphics/door_anims/25/0.4bpp" - .incbin "graphics/door_anims/25/1.4bpp" - .incbin "graphics/door_anims/25/2.4bpp" - - .space 32 - - .align 2 -DoorAnimTiles_26: @ 830DF7C - .incbin "graphics/door_anims/26/0.4bpp" - .incbin "graphics/door_anims/26/1.4bpp" - .incbin "graphics/door_anims/26/2.4bpp" - - .space 32 - - .align 2 -DoorAnimTiles_27: @ 830E29C - .incbin "graphics/door_anims/27/0.4bpp" - .incbin "graphics/door_anims/27/1.4bpp" - .incbin "graphics/door_anims/27/2.4bpp" - - .space 32 - - .align 2 -DoorAnimTiles_28: @ 830E5BC - .incbin "graphics/door_anims/28/0.4bpp" - .incbin "graphics/door_anims/28/1.4bpp" - .incbin "graphics/door_anims/28/2.4bpp" - - .space 32 - - .align 2 -DoorAnimTiles_29: @ 830E8DC - .incbin "graphics/door_anims/29/0.4bpp" - .incbin "graphics/door_anims/29/1.4bpp" - .incbin "graphics/door_anims/29/2.4bpp" - - .space 32 - - .align 2 -DoorAnimTiles_30: @ 830EBFC - .incbin "graphics/door_anims/30/0.4bpp" - .incbin "graphics/door_anims/30/1.4bpp" - .incbin "graphics/door_anims/30/2.4bpp" - - .space 32 - - .align 2 -DoorAnimTiles_31: @ 830EF1C - .incbin "graphics/door_anims/31/0.4bpp" - .incbin "graphics/door_anims/31/1.4bpp" - .incbin "graphics/door_anims/31/2.4bpp" - - .space 32 - - .align 2 -DoorAnimTiles_32: @ 830F23C - .incbin "graphics/door_anims/32/0.4bpp" - .incbin "graphics/door_anims/32/1.4bpp" - .incbin "graphics/door_anims/32/2.4bpp" - - .space 32 - - .align 2 -DoorAnimTiles_33: @ 830F55C - .incbin "graphics/door_anims/33/0.4bpp" - .incbin "graphics/door_anims/33/1.4bpp" - .incbin "graphics/door_anims/33/2.4bpp" - - .space 32 - -gDoorOpenAnimFrames:: @ 830F87C - door_anim_frame 4, -1 - door_anim_frame 4, 0 - door_anim_frame 4, 0x100 - door_anim_frame 4, 0x200 - door_anim_frame 0, 0 - -gDoorCloseAnimFrames:: @ 830F890 - door_anim_frame 4, 0x200 - door_anim_frame 4, 0x100 - door_anim_frame 4, 0 - door_anim_frame 4, -1 - door_anim_frame 0, 0 - -DoorAnimPalettes_830F8A4: - .byte 1, 1, 1, 1, 1, 1, 1, 1 - -DoorAnimPalettes_830F8AC: - .byte 1, 1, 1, 1, 1, 1, 1, 1 - -DoorAnimPalettes_830F8B4: - .byte 5, 5, 5, 5, 5, 5, 5, 5 - -DoorAnimPalettes_830F8BC: - .byte 0, 0, 1, 1, 1, 1, 1, 1 - -DoorAnimPalettes_830F8C4: - .byte 6, 6, 6, 6, 6, 6, 6, 6 - -DoorAnimPalettes_830F8CC: - .byte 8, 8, 8, 8, 8, 8, 8, 8 - -DoorAnimPalettes_830F8D4: - .byte 11, 11, 11, 11, 11, 11, 11, 11 - -DoorAnimPalettes_830F8DC: - .byte 10, 10, 10, 10, 10, 10, 10, 10 - -DoorAnimPalettes_830F8E4: - .byte 7, 7, 7, 7, 7, 7, 7, 7 - -DoorAnimPalettes_830F8EC: - .byte 8, 8, 8, 8, 8, 8, 8, 8 - -DoorAnimPalettes_830F8F4: - .byte 9, 9, 9, 9, 9, 9, 9, 9 - -DoorAnimPalettes_830F8FC: - .byte 9, 9, 1, 1, 1, 1, 1, 1 - -DoorAnimPalettes_830F904: - .byte 8, 8, 8, 8, 8, 8, 8, 8 - -DoorAnimPalettes_830F90C: - .byte 9, 9, 9, 9, 9, 9, 9, 9 - -DoorAnimPalettes_830F914: - .byte 6, 6, 6, 6, 6, 6, 6, 6 - -DoorAnimPalettes_830F91C: - .byte 6, 6, 6, 6, 6, 6, 6, 6 - -DoorAnimPalettes_830F924: - .byte 0, 0, 5, 5, 5, 5, 5, 5 - -DoorAnimPalettes_830F92C: - .byte 6, 6, 1, 1, 1, 1, 1, 1 - -DoorAnimPalettes_830F934: - .byte 7, 7, 7, 7, 7, 7, 7, 7 - -DoorAnimPalettes_830F93C: - .byte 6, 6, 5, 5, 5, 5, 5, 5 - -DoorAnimPalettes_830F944: - .byte 5, 5, 5, 5, 5, 5, 5, 5 - -DoorAnimPalettes_830F94C: - .byte 1, 1, 1, 1, 1, 1, 1, 1 - -DoorAnimPalettes_830F954: - .byte 6, 6, 7, 7, 7, 7, 7, 7 - -DoorAnimPalettes_830F95C: - .byte 7, 7, 7, 7, 7, 7, 7, 7 - -DoorAnimPalettes_830F964: - .byte 5, 5, 5, 5, 5, 5, 5, 5 - -DoorAnimPalettes_830F96C: - .byte 9, 9, 9, 9, 9, 9, 9, 9 - -DoorAnimPalettes_830F974: - .byte 8, 8, 8, 8, 8, 8, 8, 8 - -DoorAnimPalettes_830F97C: - .byte 6, 6, 6, 6, 6, 6, 6, 6 - -DoorAnimPalettes_830F984: - .byte 7, 7, 7, 7, 7, 7, 7, 7 - -DoorAnimPalettes_830F98C: - .byte 11, 11, 7, 7, 7, 7, 7, 7 - -DoorAnimPalettes_830F994: - .byte 7, 7, 7, 7, 7, 7, 7, 7 - -DoorAnimPalettes_830F99C: - .byte 6, 6, 7, 7, 7, 7, 7, 7 - -DoorAnimPalettes_830F9A4: - .byte 9, 9, 9, 9, 9, 9, 9, 9 - -DoorAnimPalettes_830F9AC: - .byte 7, 7, 7, 7, 7, 7, 7, 7 - - .align 2 -gDoorAnimGraphicsTable:: @ 830F9B4 - door_anim_gfx 0x021, 0, DoorAnimTiles_00, DoorAnimPalettes_830F8A4 - door_anim_gfx 0x061, 1, DoorAnimTiles_01, DoorAnimPalettes_830F8AC - door_anim_gfx 0x1CD, 1, DoorAnimTiles_02, DoorAnimPalettes_830F8B4 - door_anim_gfx 0x041, 1, DoorAnimTiles_03, DoorAnimPalettes_830F8BC - door_anim_gfx 0x248, 0, DoorAnimTiles_04, DoorAnimPalettes_830F8C4 - door_anim_gfx 0x249, 0, DoorAnimTiles_05, DoorAnimPalettes_830F8CC - door_anim_gfx 0x22F, 0, DoorAnimTiles_06, DoorAnimPalettes_830F8D4 - door_anim_gfx 0x21F, 0, DoorAnimTiles_07, DoorAnimPalettes_830F8DC - door_anim_gfx 0x2A5, 0, DoorAnimTiles_08, DoorAnimPalettes_830F8E4 - door_anim_gfx 0x287, 0, DoorAnimTiles_09, DoorAnimPalettes_830F8F4 - door_anim_gfx 0x2AC, 0, DoorAnimTiles_10, DoorAnimPalettes_830F934 - door_anim_gfx 0x3A1, 0, DoorAnimTiles_11, DoorAnimPalettes_830F93C - door_anim_gfx 0x2DC, 0, DoorAnimTiles_12, DoorAnimPalettes_830F92C - door_anim_gfx 0x225, 0, DoorAnimTiles_13, DoorAnimPalettes_830F924 - door_anim_gfx 0x1DB, 1, DoorAnimTiles_14, DoorAnimPalettes_830F94C - door_anim_gfx 0x246, 0, DoorAnimTiles_15, DoorAnimPalettes_830F8EC - door_anim_gfx 0x28E, 0, DoorAnimTiles_16, DoorAnimPalettes_830F944 - door_anim_gfx 0x2A1, 0, DoorAnimTiles_17, DoorAnimPalettes_830F8FC - door_anim_gfx 0x21C, 0, DoorAnimTiles_18, DoorAnimPalettes_830F914 - door_anim_gfx 0x21E, 0, DoorAnimTiles_19, DoorAnimPalettes_830F91C - door_anim_gfx 0x21D, 1, DoorAnimTiles_20, DoorAnimPalettes_830F904 - door_anim_gfx 0x21A, 0, DoorAnimTiles_21, DoorAnimPalettes_830F90C - door_anim_gfx 0x224, 0, DoorAnimTiles_22, DoorAnimPalettes_830F954 - door_anim_gfx 0x289, 0, DoorAnimTiles_23, DoorAnimPalettes_830F95C - door_anim_gfx 0x30C, 1, DoorAnimTiles_24, DoorAnimPalettes_830F964 - door_anim_gfx 0x32D, 1, DoorAnimTiles_25, DoorAnimPalettes_830F96C - door_anim_gfx 0x2ED, 1, DoorAnimTiles_26, DoorAnimPalettes_830F974 - door_anim_gfx 0x264, 1, DoorAnimTiles_27, DoorAnimPalettes_830F97C - door_anim_gfx 0x22B, 0, DoorAnimTiles_28, DoorAnimPalettes_830F984 - door_anim_gfx 0x2F7, 0, DoorAnimTiles_29, DoorAnimPalettes_830F98C - door_anim_gfx 0x297, 0, DoorAnimTiles_30, DoorAnimPalettes_830F994 - door_anim_gfx 0x285, 1, DoorAnimTiles_31, DoorAnimPalettes_830F99C - door_anim_gfx 0x25D, 1, DoorAnimTiles_32, DoorAnimPalettes_830F9A4 - door_anim_gfx 0x20E, 1, DoorAnimTiles_33, DoorAnimPalettes_830F9AC - door_anim_gfx 0, 0, 0, 0 diff --git a/data/fldeff_decoration.s b/data/fldeff_decoration.s new file mode 100755 index 000000000..2081679cd --- /dev/null +++ b/data/fldeff_decoration.s @@ -0,0 +1,36 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + + .align 2 +gOamData_83D266C:: @ 83D266C + .2byte 0x8000 + .2byte 0x8000 + .2byte 0x0800 + + .align 2 +gSpriteAnim_83D2674:: @ 83D2674 + obj_image_anim_frame 0, 6 + obj_image_anim_frame 1, 6 + obj_image_anim_frame 2, 6 + obj_image_anim_end + + .align 2 +gSpriteAnimTable_83D2684:: @ 83D2684 + .4byte gSpriteAnim_83D2674 + + .align 2 +gSpriteImageTable_83D2688:: @ 83D2688 + obj_frame_tiles gSpriteImage_83D21EC, 0x100 + obj_frame_tiles gSpriteImage_83D22EC, 0x100 + obj_frame_tiles gSpriteImage_83D23EC, 0x100 + + .align 2 +gSpriteTemplate_83D26A0:: @ 83D26A0 + spr_template 0xFFFF, 4110, gOamData_83D266C, gSpriteAnimTable_83D2684, gSpriteImageTable_83D2688, gDummySpriteAffineAnimTable, SpriteCB_SandPillar_0 + +@ This uses one of the secret base palettes, so there is no "09.pal" file. + .align 2 +gFieldEffectObjectPaletteInfo9:: @ 83D26B8 + obj_pal gTilesetPalettes_SecretBase + 5 * 0x20, 0x100E diff --git a/data/fldeff_flash.s b/data/fldeff_flash.s deleted file mode 100644 index c8b6185f2..000000000 --- a/data/fldeff_flash.s +++ /dev/null @@ -1,71 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gUnknown_083F7FC4:: @ 83F7FC4 - .byte 1, 4, 1, 0 - .4byte sub_810CFF8 - .byte 2, 4, 1, 0 - .4byte sub_810CFF8 - .byte 3, 4, 1, 0 - .4byte sub_810CFF8 - .byte 5, 4, 1, 0 - .4byte sub_810CFF8 - .byte 6, 4, 1, 0 - .4byte sub_810CFF8 - .byte 7, 4, 1, 0 - .4byte sub_810CFF8 - .byte 8, 4, 1, 0 - .4byte sub_810CFF8 - .byte 9, 4, 1, 0 - .4byte sub_810CFF8 - - .byte 4, 1, 0, 1 - .4byte sub_810CE48 - .byte 4, 2, 0, 1 - .4byte sub_810CE48 - .byte 4, 3, 0, 1 - .4byte sub_810CE48 - .byte 4, 5, 0, 1 - .4byte sub_810CE48 - .byte 4, 6, 0, 1 - .4byte sub_810CE48 - .byte 4, 7, 0, 1 - .4byte sub_810CE48 - .byte 4, 8, 0, 1 - .4byte sub_810CE48 - .byte 4, 9, 0, 1 - .4byte sub_810CE48 - - .byte 0, 0, 0, 0 - .4byte NULL - - .align 2 -gCaveTransitionPalette_White:: @ 83F804C - .rept 16 - .2byte 0x7FFF - .endr - - .align 2 -gCaveTransitionPalette_Black:: @ 83F806C - .rept 16 - .2byte 0x0000 - .endr - - .align 1 -gUnknown_083F808C:: @ 83F808C - .incbin "graphics/misc/83F808C.gbapal" - - .align 1 -gUnknown_083F809C:: @ 83F809C - .incbin "graphics/misc/83F809C.gbapal" - - .align 2 -gCaveTransitionTilemap:: @ 83F80AC - .incbin "graphics/misc/cave_transition_map.bin.lz" - - .align 2 -gCaveTransitionTiles:: @ 83F828C - .incbin "graphics/misc/cave_transition.4bpp.lz" diff --git a/data/fldeff_recordmixing.s b/data/fldeff_recordmixing.s new file mode 100755 index 000000000..ee9d6b8d6 --- /dev/null +++ b/data/fldeff_recordmixing.s @@ -0,0 +1,45 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + + .align 2 +gSpriteImage_83D26C0:: @ 83D26C0 + .incbin "graphics/unknown_sprites/83D2860/0.4bpp" + + .align 2 +gSpriteImage_83D2740:: @ 83D2740 + .incbin "graphics/unknown_sprites/83D2860/1.4bpp" + + .align 2 +gSpriteImage_83D27C0:: @ 83D27C0 + .incbin "graphics/unknown_sprites/83D2860/2.4bpp" + + .align 2 +Palette_3D2840:: @ 83D2840 + .incbin "graphics/unknown/unknown_3D2840.gbapal" + + .align 2 +gSpriteImageTable_83D2860:: @ 83D2860 + obj_frame_tiles gSpriteImage_83D26C0, 0x80 + obj_frame_tiles gSpriteImage_83D2740, 0x80 + obj_frame_tiles gSpriteImage_83D27C0, 0x80 + + .align 2 +gUnknown_083D2878:: @ 83D2878 + obj_pal Palette_3D2840, 4096 + + .align 2 +gSpriteAnim_83D2880:: @ 83D2880 + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 2, 30 + obj_image_anim_jump 0 + + .align 2 +gSpriteAnimTable_83D2890:: @ 83D2890 + .4byte gSpriteAnim_83D2880 + + .align 2 +gSpriteTemplate_83D2894:: @ 83D2894 + spr_template 0xFFFF, 4096, gFieldOamData_32x8, gSpriteAnimTable_83D2890, gSpriteImageTable_83D2860, gDummySpriteAffineAnimTable, SpriteCallbackDummy diff --git a/data/fldeff_80C5CD4.s b/data/fldeff_secretpower.s index 4f0e83832..589ded675 100644..100755 --- a/data/fldeff_80C5CD4.s +++ b/data/fldeff_secretpower.s @@ -4,45 +4,6 @@ .section .rodata .align 2 -gUnknown_083D1898:: @ 83D1898 - obj_tiles gUnknownGfx_083D190C, 0x80, 0 - - .align 2 -gUnknown_083D18A0:: @ 83D18A0 - obj_pal gUnknownPal_083D18EC, 0x0000 - - .align 2 -gSpriteTemplate_83D18A8:: @ 83D18A8 - spr_template 0, 0, gOamData_83D18D8, gSpriteAnimTable_83D18E8, NULL, gDummySpriteAffineAnimTable, sub_80C60CC - - .align 2 -gSpriteTemplate_83D18C0:: @ 83D18C0 - spr_template 0, 0, gOamData_83D18D8, gSpriteAnimTable_83D18E8, NULL, gDummySpriteAffineAnimTable, sub_80C6130 - - .align 2 -gOamData_83D18D8:: @ 83D18D8 - .2byte 0x4000 - .2byte 0x4000 - .2byte 0x0000 - - .align 2 -gSpriteAnim_83D18E0:: @ 83D18E0 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83D18E8:: @ 83D18E8 - .4byte gSpriteAnim_83D18E0 - - .align 2 -gUnknownPal_083D18EC:: - .incbin "graphics/unknown/unknown_3D18EC.gbapal" - - .align 2 -gUnknownGfx_083D190C:: - .incbin "graphics/unknown/unknown_3D190C.4bpp" - - .align 2 gSpriteImage_83D198C:: @ 83D198C .incbin "graphics/unknown_sprites/83D259C/0.4bpp" @@ -245,76 +206,3 @@ gFieldEffectObjectPaletteInfo7:: @ 83D265C .align 2 gFieldEffectObjectPaletteInfo8:: @ 83D2664 obj_pal gFieldEffectObjectPalette8, 0x1008 - - .align 2 -gOamData_83D266C:: @ 83D266C - .2byte 0x8000 - .2byte 0x8000 - .2byte 0x0800 - - .align 2 -gSpriteAnim_83D2674:: @ 83D2674 - obj_image_anim_frame 0, 6 - obj_image_anim_frame 1, 6 - obj_image_anim_frame 2, 6 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83D2684:: @ 83D2684 - .4byte gSpriteAnim_83D2674 - - .align 2 -gSpriteImageTable_83D2688:: @ 83D2688 - obj_frame_tiles gSpriteImage_83D21EC, 0x100 - obj_frame_tiles gSpriteImage_83D22EC, 0x100 - obj_frame_tiles gSpriteImage_83D23EC, 0x100 - - .align 2 -gSpriteTemplate_83D26A0:: @ 83D26A0 - spr_template 0xFFFF, 4110, gOamData_83D266C, gSpriteAnimTable_83D2684, gSpriteImageTable_83D2688, gDummySpriteAffineAnimTable, SpriteCB_SandPillar_0 - -@ This uses one of the secret base palettes, so there is no "09.pal" file. - .align 2 -gFieldEffectObjectPaletteInfo9:: @ 83D26B8 - obj_pal gTilesetPalettes_SecretBase + 5 * 0x20, 0x100E - - .align 2 -gSpriteImage_83D26C0:: @ 83D26C0 - .incbin "graphics/unknown_sprites/83D2860/0.4bpp" - - .align 2 -gSpriteImage_83D2740:: @ 83D2740 - .incbin "graphics/unknown_sprites/83D2860/1.4bpp" - - .align 2 -gSpriteImage_83D27C0:: @ 83D27C0 - .incbin "graphics/unknown_sprites/83D2860/2.4bpp" - - .align 2 -Palette_3D2840:: @ 83D2840 - .incbin "graphics/unknown/unknown_3D2840.gbapal" - - .align 2 -gSpriteImageTable_83D2860:: @ 83D2860 - obj_frame_tiles gSpriteImage_83D26C0, 0x80 - obj_frame_tiles gSpriteImage_83D2740, 0x80 - obj_frame_tiles gSpriteImage_83D27C0, 0x80 - - .align 2 -gUnknown_083D2878:: @ 83D2878 - obj_pal Palette_3D2840, 4096 - - .align 2 -gSpriteAnim_83D2880:: @ 83D2880 - obj_image_anim_frame 0, 30 - obj_image_anim_frame 1, 30 - obj_image_anim_frame 2, 30 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnimTable_83D2890:: @ 83D2890 - .4byte gSpriteAnim_83D2880 - - .align 2 -gSpriteTemplate_83D2894:: @ 83D2894 - spr_template 0xFFFF, 4096, gFieldOamData_32x8, gSpriteAnimTable_83D2890, gSpriteImageTable_83D2860, gDummySpriteAffineAnimTable, SpriteCallbackDummy diff --git a/data/main_menu.s b/data/main_menu.s deleted file mode 100644 index 1fae3850b..000000000 --- a/data/main_menu.s +++ /dev/null @@ -1,59 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gUnknown_081E764C:: @ 81E764C - .incbin "graphics/birch_speech/bg0.gbapal" - .incbin "graphics/birch_speech/bg1.gbapal" - - .align 2 -gBirchIntroShadowGfx:: @ 81E768C - .incbin "graphics/birch_speech/shadow.4bpp.lz" - - .align 2 -gUnknown_081E7834:: @ 81E7834 - .incbin "graphics/birch_speech/map.bin.lz" - - .align 2 -gUnknown_081E795C:: @ 81E795C - .incbin "graphics/birch_speech/bg2.gbapal" - - .align 2 -gUnknown_081E796C:: @ 81E796C - .space 16 - - .align 2 -gMainMenuPalette:: @ 81E797C - .incbin "graphics/misc/main_menu.gbapal" - - .align 2 -gSpriteAffineAnim_81E799C:: @ 81E799C - obj_rot_scal_anim_frame 0xFFFE, 0xFFFE, 0, 48 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_81E79AC:: @ 81E79AC - .4byte gSpriteAffineAnim_81E799C - - .align 2 -gUnknown_081E79B0:: @ 81E79B0 - .4byte gBirchText_Boy, 0 - .4byte gBirchText_Girl, 0 - - .align 2 -gMalePresetNames:: @ 81E79C0 - .4byte gBirchText_NewName, 0 - .4byte gDefaultBoyName1, 0 - .4byte gDefaultBoyName2, 0 - .4byte gDefaultBoyName3, 0 - .4byte gDefaultBoyName4, 0 - - .align 2 -gFemalePresetNames:: @ 81E79E8 - .4byte gBirchText_NewName, 0 - .4byte gDefaultGirlName1, 0 - .4byte gDefaultGirlName2, 0 - .4byte gDefaultGirlName3, 0 - .4byte gDefaultGirlName4, 0 diff --git a/data/map_events.s b/data/map_events.s index 68c8e510e..7156e4b6e 100644 --- a/data/map_events.s +++ b/data/map_events.s @@ -396,15 +396,4 @@ .include "data/maps/events/Route119_WeatherInstitute_1F.inc" .include "data/maps/events/Route119_WeatherInstitute_2F.inc" .include "data/maps/events/Route119_House.inc" -Route124_DivingTreasureHuntersHouse_MapObjects:: @ 839300C - object_event 1, MAP_OBJ_GFX_MAN_6, 0, 5, 0, 4, 0, 0, 9, 0, 0, 0, 0, 0, 0, Route124_DivingTreasureHuntersHouse_EventScript_163E04, 0, 0, 0 - -Route124_DivingTreasureHuntersHouse_MapWarps:: @ 8393024 - warp_def 3, 8, 0, 0, Route124 - warp_def 4, 8, 0, 0, Route124 - -Route124_DivingTreasureHuntersHouse_MapBGEvents:: @ 8393034 - bg_event 7, 1, 0, 0, 0, Route124_DivingTreasureHuntersHouse_EventScript_164335 - -Route124_DivingTreasureHuntersHouse_MapEvents:: @ 8393040 - map_events Route124_DivingTreasureHuntersHouse_MapObjects, Route124_DivingTreasureHuntersHouse_MapWarps, 0x0, Route124_DivingTreasureHuntersHouse_MapBGEvents + .include "data/maps/events/Route124_DivingTreasureHuntersHouse.inc" diff --git a/data/maps/events/Route124_DivingTreasureHuntersHouse.inc b/data/maps/events/Route124_DivingTreasureHuntersHouse.inc new file mode 100755 index 000000000..5d60c795e --- /dev/null +++ b/data/maps/events/Route124_DivingTreasureHuntersHouse.inc @@ -0,0 +1,12 @@ +Route124_DivingTreasureHuntersHouse_MapObjects:: @ 839300C + object_event 1, MAP_OBJ_GFX_MAN_6, 0, 5, 0, 4, 0, 0, 9, 0, 0, 0, 0, 0, 0, Route124_DivingTreasureHuntersHouse_EventScript_163E04, 0, 0, 0 + +Route124_DivingTreasureHuntersHouse_MapWarps:: @ 8393024 + warp_def 3, 8, 0, 0, Route124 + warp_def 4, 8, 0, 0, Route124 + +Route124_DivingTreasureHuntersHouse_MapBGEvents:: @ 8393034 + bg_event 7, 1, 0, 0, 0, Route124_DivingTreasureHuntersHouse_EventScript_164335 + +Route124_DivingTreasureHuntersHouse_MapEvents:: @ 8393040 + map_events Route124_DivingTreasureHuntersHouse_MapObjects, Route124_DivingTreasureHuntersHouse_MapWarps, 0x0, Route124_DivingTreasureHuntersHouse_MapBGEvents diff --git a/data/matsuda_debug_menu.s b/data/matsuda_debug_menu.s deleted file mode 100644 index c4f7adcb7..000000000 --- a/data/matsuda_debug_menu.s +++ /dev/null @@ -1,201 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -@ 83C9150 - .string "テストです$" @ "test" - -gMatsudaDebugMenu_ActionContestText: - .string "Contest$" - -gMatsudaDebugMenu_ActionContestResultsText: - .string "Contest results$" - .string "パラメータへんこう$" @ "Change parameter" - .string "わざ へんこう$" @ "Change move" - -gMatsudaDebugMenu_ActionContestCommText: - .string "Contest (comm.)$" - -gMatsudaDebugMenu_ActionCommTestText: - .string "Init comm. data$" - -gMatsudaDebugMenu_ActionSetHighScoreText: - .string "Set highest score$" - -gMatsudaDebugMenu_ActionResetHighScoreText: - .string "Reset highest score$" - -gMatsudaDebugMenu_ActionSetAllArtMuseumText: - .string "Set all art museum items$" - - .align 2 -gMatsudaDebugMenuActions:: @ 83C91F0 - .4byte gMatsudaDebugMenu_ActionContestText, MatsudaDebugMenu_Contest - .4byte gMatsudaDebugMenu_ActionContestResultsText, MatsudaDebugMenu_ContestResults - .4byte gMatsudaDebugMenu_ActionContestCommText, MatsudaDebugMenu_ContestComm - .4byte gMatsudaDebugMenu_ActionCommTestText, MatsudaDebugMenu_CommTest - .4byte gMatsudaDebugMenu_ActionSetHighScoreText, MatsudaDebugMenu_SetHighScore - .4byte gMatsudaDebugMenu_ActionResetHighScoreText, MatsudaDebugMenu_ResetHighScore - .4byte gMatsudaDebugMenu_ActionSetAllArtMuseumText, MatsudaDebugMenu_SetArtMuseumItems - -gMatsudaDebugMenu_UnknownByteArray:: @ 83C9228 - .byte 0xFC, 0x02, 0x0F, 0x00, 0xFF - -Unknown_083C922D: - .incbin "graphics/unknown/ball.4bpp" - - .align 1 -Unknown_083C924E: - .incbin "graphics/unknown/ball.gbapal" - -gUnknown_083C926E:: @ 83C926E - .byte 2, 0 - .byte 17, 0 - .byte 2, 2 - .byte 17, 2 - -gMatsudaDebugMenuContestTopLeft:: @ 83C9276 - .byte 0, 6 - .byte 15, 6 - .byte 0, 8 - .byte 15, 8 - .byte 0, 10 - .byte 15, 10 - -gUnknown_083C9282:: @ 83C9282 - .byte 7, 6 - .byte 22, 6 - .byte 7, 8 - .byte 22, 8 - .byte 7, 10 - .byte 22, 10 - -gUnknown_083C928E:: @ 83C928E - .byte 2, 14 - .byte 17, 14 - .byte 2, 16 - .byte 17, 16 - -gUnknown_083C9296:: @ 83C9296 - .byte 0x08, 0x80, 0x08, 0x80, 0x10, 0x10, 0x30, 0xA8, 0x30, 0xA8, 0x30, 0xA8, 0x08, 0x80, 0x08, 0x80, 0x10, 0x88 - -gUnknown_083C92A8:: @ 83C92A8 - .byte 0x08, 0x18, 0x28, 0x38, 0x48, 0x58, 0x78, 0x88, 0x98 - - .align 2 -gUnknown_083C92B4:: @ 83C92B4 - obj_tiles Unknown_083C922D, 32, 0x04b0 - - .align 2 -gUnknown_083C92BC:: @ 83C92BC - obj_pal Unknown_083C924E, 0x04B0 - - .align 2 -gOamData_83C92C4:: @ 83C92C4 - .2byte 0x0000 - .2byte 0x0000 - .2byte 0x0000 - - .align 2 -gSpriteTemplate_83C92CC:: @ 83C92CC - spr_template 1200, 1200, gOamData_83C92C4, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80AA754 - - .align 2 -gUnknown_083C92E4:: @ 83C92E4 - .4byte sub_80AA8C8 - .4byte sub_80AA8D8 - .4byte sub_80AA8E8 - .4byte sub_80AA8F8 - .4byte sub_80AAC5C - .4byte sub_80AAC5C - .4byte sub_80AA930 - .4byte sub_80AA974 - .4byte sub_80AA9B8 - .4byte sub_80AA9FC - .4byte sub_80AAA40 - .4byte sub_80AAA84 - .4byte sub_80AAAF0 - .4byte sub_80AAB30 - .4byte sub_80AAB70 - .4byte sub_80AABB0 - .4byte sub_80AABF0 - .4byte sub_80AAD44 - -gMatsudaDebugMenu_StartText:: @ 83C932C - .string "{COLOR CYAN}{HIGHLIGHT RED}$" - .string "かいし$" @ Start - -gMatsudaDebugMenu_GoBackText:: @ 83C9337 - .string "もどる$" @ Go Back - -gMatsudaDebugMenu_BattlePointsText:: @ 83C933B -.ifdef ENGLISH - .string "{COLOR MAGENTA}BP.$" -.else - .string "{COLOR MAGENTA}BP,$" -.endif - -MatsudaDebugMenuText_Cool: - .string "かっこよさ$" @ coolness -MatsudaDebugMenuText_Cute: - .string "かわいさ$" @ cuteness -MatsudaDebugMenuText_Beauty: - .string "うつくしさ$" @ beauty -MatsudaDebugMenuText_Smart: - .string "かしこさ$" @ smartness -MatsudaDebugMenuText_Tough: - .string "たくましさ$" @ toughness -MatsudaDebugMenuText_Sheen: - .string "けづや$" @ sheen - - .align 2 -gMatsudaDebugMenuTextList1:: @ 83C9364 - .4byte MatsudaDebugMenuText_Cool - .4byte MatsudaDebugMenuText_Cute - .4byte MatsudaDebugMenuText_Beauty - .4byte MatsudaDebugMenuText_Smart - .4byte MatsudaDebugMenuText_Tough - .4byte MatsudaDebugMenuText_Sheen - -MatsudaDebugMenuText_CoolContest: - .string "かっこよさコンテスト$" @ Cool Contest -MatsudaDebugMenuText_BeautyContest: - .string "うつくしさコンテスト$" @ Beauty Contest -MatsudaDebugMenuText_CuteContest: - .string "かわいさコンテスト $" @ Cute Contest -MatsudaDebugMenuText_SmartContest: - .string "かしこさコンテスト $" @ Smart Contest -MatsudaDebugMenuText_ToughContest: - .string "たくましさコンテスト$" @ Tough Contest - - .align 2 -gMatsudaDebugMenuTextList2:: @ 83C93B4 - .4byte MatsudaDebugMenuText_CoolContest - .4byte MatsudaDebugMenuText_BeautyContest - .4byte MatsudaDebugMenuText_CuteContest - .4byte MatsudaDebugMenuText_SmartContest - .4byte MatsudaDebugMenuText_ToughContest - -MatsudaDebugMenuText_Fallarbor: - .string "ハジツゲ/ノーマル$" @ Fallarbor / Normal -MatsudaDebugMenuText_Verdanturf: - .string "シダケ/スーパー $" @ Verdanturf / Super -MatsudaDebugMenuText_Slateport: - .string "カイナ/ハイパー $" @ Slateport / Hyper -MatsudaDebugMenuText_Lilycove: - .string "ミナモ/マスター $" @ Lilycove / Master - - .align 2 -gMatsudaDebugMenuTextList3:: @ 83C93F0 - .4byte MatsudaDebugMenuText_Fallarbor @ Normal - .4byte MatsudaDebugMenuText_Verdanturf @ Super - .4byte MatsudaDebugMenuText_Slateport @ Hyper - .4byte MatsudaDebugMenuText_Lilycove @ Master - -@ OamData - .align 2 -gUnknown_083C9400:: @ 83C9400 - .2byte 0x4000 - .2byte 0x4000 - .2byte 0xF3FF diff --git a/data/money.s b/data/money.s deleted file mode 100644 index 04e54a836..000000000 --- a/data/money.s +++ /dev/null @@ -1,31 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gOamData_83CF558:: @ 83CF558 - .2byte 0x4000 - .2byte 0x8000 - .2byte 0x0000 - - .align 2 -gSpriteAnim_83CF560:: @ 83CF560 - obj_image_anim_frame 0, 0 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83CF568:: @ 83CF568 - .4byte gSpriteAnim_83CF560 - - .align 2 -gSpriteTemplate_83CF56C:: @ 83CF56C - spr_template 10018, 10018, gOamData_83CF558, gSpriteAnimTable_83CF568, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - - .align 2 -gUnknown_083CF584:: @ 83CF584 - obj_tiles gMenuMoneyGfx, 256, 0x2722 - - .align 2 -gUnknown_083CF58C:: @ 83CF58C - obj_pal gMenuMoneyPal, 0x2722 diff --git a/data/mori_debug_menu.s b/data/mori_debug_menu.s deleted file mode 100644 index 2545b2b15..000000000 --- a/data/mori_debug_menu.s +++ /dev/null @@ -1,72 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -@ These seem to be strings for keypad test code. -gUnknown_0839B22C:: @ 839B22C - .string " A$" @ A - .string " B$" @ B - .string "SL$" @ SELECT - .string "ST$" @ START - .string "RK$" @ right - .string "LK$" @ left - .string "UK$" @ up - .string "DK$" @ down - .string "RT$" @ R - .string "LT$" @ L - -gUnknown_0839B24A:: @ 839B24A - .string "ND$" - -gUnknown_0839B24D:: @ 839B24D - .string "の こどもは\n$" @ "'s child <topic-particle>" - -gUnknown_0839B255:: @ 839B255 - .string " $" - -gUnknown_0839B257:: @ 839B257 - .string "ながいなまえぽけもん$" @ "long name pokemon" (used as test name) - -Text_39B262: @ 839B262 - .string "Search a child$" - -Text_39B271: @ 839B271 - .string "Egg$" - -Text_39B275: @ 839B275 - .string "Egg (male)$" - -Text_39B280: @ 839B280 - .string "1000 steps$" - -Text_39B28B: @ 839B28B - .string "10000 steps$" - -Text_39B297: @ 839B297 - .string "MOVE TUTOR$" - -Text_39B2A2: @ 839B2A2 - .string "Breed an egg$" - -Text_39B2AF: @ 839B2AF - .string "Long name$" - -Text_39B2B9: @ 839B2B9 -.ifdef ENGLISH - .string "ポロックけす$" @ "{POKEBLOCK} CASE$" -.else - .string "Delete {POKEBLOCK}$" -.endif - - .align 2 -gMoriDebugMenuActions:: @ 839B2C0 - .4byte Text_39B262, MoriDebugMenu_SearchChild - .4byte Text_39B271, MoriDebugMenu_Egg - .4byte Text_39B275, MoriDebugMenu_MaleEgg - .4byte Text_39B280, MoriDebugMenu_1000Steps - .4byte Text_39B28B, MoriDebugMenu_10000Steps - .4byte Text_39B297, MoriDebugMenu_MoveTutor - .4byte Text_39B2A2, MoriDebugMenu_BreedEgg - .4byte Text_39B2AF, MoriDebugMenu_LongName - .4byte Text_39B2B9, MoriDebugMenu_PokeblockCase diff --git a/data/pc_screen_effect.s b/data/pc_screen_effect.s new file mode 100755 index 000000000..4f860213a --- /dev/null +++ b/data/pc_screen_effect.s @@ -0,0 +1,43 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + + .align 2 +gUnknown_083D1898:: @ 83D1898 + obj_tiles gUnknownGfx_083D190C, 0x80, 0 + + .align 2 +gUnknown_083D18A0:: @ 83D18A0 + obj_pal gUnknownPal_083D18EC, 0x0000 + + .align 2 +gSpriteTemplate_83D18A8:: @ 83D18A8 + spr_template 0, 0, gOamData_83D18D8, gSpriteAnimTable_83D18E8, NULL, gDummySpriteAffineAnimTable, sub_80C60CC + + .align 2 +gSpriteTemplate_83D18C0:: @ 83D18C0 + spr_template 0, 0, gOamData_83D18D8, gSpriteAnimTable_83D18E8, NULL, gDummySpriteAffineAnimTable, sub_80C6130 + + .align 2 +gOamData_83D18D8:: @ 83D18D8 + .2byte 0x4000 + .2byte 0x4000 + .2byte 0x0000 + + .align 2 +gSpriteAnim_83D18E0:: @ 83D18E0 + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gSpriteAnimTable_83D18E8:: @ 83D18E8 + .4byte gSpriteAnim_83D18E0 + + .align 2 +gUnknownPal_083D18EC:: + .incbin "graphics/unknown/unknown_3D18EC.gbapal" + + .align 2 +gUnknownGfx_083D190C:: + .incbin "graphics/unknown/unknown_3D190C.4bpp" diff --git a/data/reset_rtc_screen.s b/data/reset_rtc_screen.s deleted file mode 100644 index a9a3ac847..000000000 --- a/data/reset_rtc_screen.s +++ /dev/null @@ -1,67 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gUnknown_08376420:: @ 8376420 - .byte 3, 0, 1, 0, 15, 39, 0, 2, 0, 0, 0, 0 - .byte 4, 0, 0, 0, 23, 0, 1, 3, 0, 0, 0, 0 - .byte 5, 0, 0, 0, 59, 0, 2, 4, 0, 0, 0, 0 - .byte 6, 0, 0, 0, 59, 0, 3, 5, 0, 0, 0, 0 - .byte 7, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0 - - .align 2 -gOamData_837645C:: @ 837645C - .2byte 0x0000 - .2byte 0x0000 - .2byte 0x0000 - - .align 2 -gSpriteImage_8376464:: @ 8376464 - .incbin "graphics/unknown_sprites/83764AC/0.4bpp" - - .align 2 -gSpriteImage_8376484:: @ 8376484 - .incbin "graphics/unknown_sprites/83764AC/1.4bpp" - - .align 2 -Palette_3764A4: @ 83764A4 - .incbin "graphics/unknown/83764A4.gbapal" - - .align 2 -gSpriteImageTable_83764AC:: @ 83764AC - obj_frame_tiles gSpriteImage_8376464, 0x20 - obj_frame_tiles gSpriteImage_8376484, 0x20 - - .align 2 -gUnknown_083764BC:: @ 83764BC - obj_pal Palette_3764A4, 0x1000 - - .align 2 -gSpriteAnim_83764C4:: @ 83764C4 - obj_image_anim_frame 0, 30 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnim_83764CC:: @ 83764CC - obj_image_anim_frame 0, 30, OBJ_IMAGE_ANIM_V_FLIP - obj_image_anim_jump 0 - - .align 2 -gSpriteAnim_83764D4:: @ 83764D4 - obj_image_anim_frame 1, 30 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnimTable_83764DC:: @ 83764DC - .4byte gSpriteAnim_83764C4 - .4byte gSpriteAnim_83764CC - .4byte gSpriteAnim_83764D4 - - .align 2 -gSpriteTemplate_83764E8:: @ 83764E8 - spr_template 0xFFFF, 0x1000, gOamData_837645C, gSpriteAnimTable_83764DC, gSpriteImageTable_83764AC, gDummySpriteAffineAnimTable, SpriteCallbackDummy - -gUnknown_08376500:: @ 8376500 - .string " : $" diff --git a/data/text/battle_strings.inc b/data/text/battle_strings.inc deleted file mode 100644 index 7a47caa0e..000000000 --- a/data/text/battle_strings.inc +++ /dev/null @@ -1,1830 +0,0 @@ -BattleText_UnknownString: - .string "{STRING 33}$" -BattleText_GainExpPoints: - .string "{STRING 0} gained{STRING 1}\n{STRING 42} EXP. Points!\p$" -BattleText_Terminator: - .string "$" -BattleText_BoostedExp: - .string " a boosted$" -BattleText_GrewLevel: - .string "{STRING 0} grew to\nLV. {STRING 1}!{UNKNOWN_A}\p$" -BattleText_LearnedMove: - .string "{STRING 0} learned\n{STRING 1}!{UNKNOWN_A}\p$" -BattleText_TryingToLearnMove: - .string "{STRING 0} is trying to\nlearn {STRING 1}.\p$" -BattleText_CantLearnMore: - .string "But, {STRING 0} can’t learn\nmore than four moves.\p$" -BattleText_DeleteMove: - .string "Delete a move to make\nroom for {STRING 1}?$" -BattleText_DeletedMove: - .string "{STRING 0} forgot\n{STRING 1}.\p$" -BattleText_StopLearning: - .string "{PAUSE 32}Stop learning\n{STRING 1}?$" -BattleText_DidNotLearn: - .string "{STRING 0} did not learn\n{STRING 1}.\p$" -BattleText_UseNext: - .string "Use next POKéMON?$" -BattleText_AttackMissed: - .string "{ATTACKING_MON}’s\nattack missed!$" -BattleText_ProtectedItself: - .string "{DEFENDING_MON}\nprotected itself!$" -BattleText_AvoidedDamage: - .string "{DEFENDING_MON} avoided\ndamage with {STRING 22}!$" -BattleText_GroundMoveNegate: - .string "{DEFENDING_MON} makes GROUND\nmoves miss with {STRING 22}!$" -BattleText_AvoidedAttack: - .string "{DEFENDING_MON} avoided\nthe attack!$" -BattleText_DoesntAffect: - .string "It doesn’t affect\n{DEFENDING_MON}...$" -BattleText_AttackingFainted: - .string "{ATTACKING_MON}\nfainted!\p$" -BattleText_DefendingFainted: - .string "{DEFENDING_MON}\nfainted!\p$" -BattleText_WinningPrize: - .string "{STRING 32} got ¥{STRING 0}\nfor winning!\p$" -BattleText_OutOfUsablePoke: - .string "{STRING 32} is out of\nuseable POKéMON!\p$" -BattleText_WhitedOut: - .string "{STRING 32} whited out!{PAUSE_UNTIL_PRESS}$" -BattleText_PreventEscape: - .string "{STRING 16} prevents\nescape with {STRING 23}!\p$" -BattleText_CantEscape: - .string "Can’t escape!\p$" -BattleText_AttackingCantEscape: - .string "{ATTACKING_MON}\ncan’t escape!$" -BattleText_HitMulti: - .string "Hit {STRING 0} time(s)!$" -BattleText_FellAsleep: - .string "{STRING 14}\nfell asleep!$" -BattleText_MadeAsleep: - .string "{STRING 16}’s {STRING 23}\nmade {STRING 14} sleep!$" -BattleText_DefendingAsleep: - .string "{DEFENDING_MON} is\nalready asleep!$" -BattleText_AttackingAsleep: - .string "{ATTACKING_MON} is\nalready asleep!$" -BattleText_WasntAffected: - .string "{DEFENDING_MON}\nwasn’t affected!$" -BattleText_Poisoned: - .string "{STRING 14}\nwas poisoned!$" -BattleText_Poisoned2: - .string "{STRING 16}’s {STRING 23}\npoisoned {STRING 14}!$" -BattleText_PoisonHurt: - .string "{ATTACKING_MON} is hurt\nby poison!$" -BattleText_AlreadyPoisoned: - .string "{DEFENDING_MON} is already\npoisoned.$" -BattleText_BadlyPoisoned: - .string "{STRING 14} is badly\npoisoned!$" -BattleText_EnergyDrained: - .string "{DEFENDING_MON} had its\nenergy drained!$" -BattleText_Burned: - .string "{STRING 14} was burned!$" -BattleText_Burned2: - .string "{STRING 16}’s {STRING 23}\nburned {STRING 14}!$" -BattleText_BurnHurt: - .string "{ATTACKING_MON} is hurt\nby its burn!$" -BattleText_AlreadyBurned: - .string "{DEFENDING_MON} already\nhas a burn.$" -BattleText_Frozen: - .string "{STRING 14} was\nfrozen solid!$" -BattleText_Frozen2: - .string "{STRING 16}’s {STRING 23}\nfroze {STRING 14} solid!$" -BattleText_FrozenSolid: - .string "{ATTACKING_MON} is\nfrozen solid!$" -BattleText_DefendingDefrosted: - .string "{DEFENDING_MON} was\ndefrosted!$" -BattleText_AttackingDefrosted: - .string "{ATTACKING_MON} was\ndefrosted!$" -BattleText_Defrosted: - .string "{ATTACKING_MON} was\ndefrosted by {STRING 17}!$" -BattleText_Paralyzed: - .string "{STRING 14} is paralyzed!\nIt may be unable to move!$" -BattleText_Paralyzed2: - .string "{STRING 16}’s {STRING 23}\nparalyzed {STRING 14}!\lIt may be unable to move!$" -BattleText_Paralyzed3: - .string "{ATTACKING_MON} is paralyzed!\nIt can’t move!$" -BattleText_AlreadyParalyzed: - .string "{DEFENDING_MON} is\nalready paralyzed!$" -BattleText_ParalysisHealed: - .string "{DEFENDING_MON} was\nhealed of paralysis!$" -BattleText_DreamEaten: - .string "{DEFENDING_MON}’s\ndream was eaten!$" -BattleText_AttackingStatNoHigher: - .string "{ATTACKING_MON}’s {STRING 0}\nwon’t go higher!$" -BattleText_DefendingStatNoHigher: - .string "{DEFENDING_MON}’s {STRING 0}\nwon’t go lower!$" -BattleText_StoppedWorking: - .string "Your team’s {STRING 0}\nstopped working!$" -BattleText_StoppedWorking2: - .string "The foe’s {STRING 0}\nstopped working!$" -BattleText_Confused: - .string "{ATTACKING_MON} is\nconfused!$" -BattleText_ConfusionSnapOut: - .string "{ATTACKING_MON} snapped\nout of confusion!$" -BattleText_BecameConfused: - .string "{STRING 14} became\nconfused!$" -BattleText_AlreadyConfused: - .string "{DEFENDING_MON} is\nalready confused!$" -BattleText_FellLove: - .string "{DEFENDING_MON}\nfell in love!$" -BattleText_InLoveWith: - .string "{ATTACKING_MON} is in love\nwith {STRING 16}!$" -BattleText_ImmobilizedBy: - .string "{ATTACKING_MON} is\nimmobilized by love!$" -BattleText_BlownAway: - .string "{DEFENDING_MON} was\nblown away!$" -BattleText_TypeTransform: - .string "{ATTACKING_MON} transformed\ninto the {STRING 0} type!$" -BattleText_Flinched: - .string "{ATTACKING_MON} flinched!$" -BattleText_RegainedHealth: - .string "{DEFENDING_MON} regained\nhealth!$" -BattleText_HPFull: - .string "{DEFENDING_MON}’s\nHP is full!$" -BattleText_RaisedSpDef: - .string "{STRING 38}’s {STRING 17}\nraised SP. DEF!$" -BattleText_RaisedSpDefLittle: - .string "{STRING 38}’s {STRING 17}\nraised SP. DEF a little!$" -BattleText_RaisedDefense: - .string "{STRING 38}’s {STRING 17}\nraised DEFENSE!$" -BattleText_RaisedDefenseLittle: - .string "{STRING 38}’s {STRING 17}\nraised DEFENSE a little!$" -BattleText_CoveredVeil: - .string "{STRING 38} is covered\nby a veil!$" -BattleText_SafeguardActive: - .string "{DEFENDING_MON} is protected\nby SAFEGUARD!$" -BattleText_SafeguardFaded: - .string "{STRING 40}’s SAFEGUARD\nfaded!$" -BattleText_WentToSleep: - .string "{ATTACKING_MON} went\nto sleep!$" -BattleText_SpeltHealthy: - .string "{ATTACKING_MON} slept and\nbecame healthy!$" -BattleText_WhipWhirlwind: - .string "{ATTACKING_MON} whipped\nup a whirlwind!$" -BattleText_TookSunlight: - .string "{ATTACKING_MON} took\nin sunlight!$" -BattleText_LoweredHead: - .string "{ATTACKING_MON} lowered\nits head!$" -BattleText_IsGlowing: - .string "{ATTACKING_MON} is glowing!$" -BattleText_FlewHigh: - .string "{ATTACKING_MON} flew\nup high!$" -BattleText_DugHole: - .string "{ATTACKING_MON} dug a hole!$" -BattleText_HidUnderwater: - .string "{ATTACKING_MON} hid\nunderwater!$" -BattleText_SprangUp: - .string "{ATTACKING_MON} sprang up!$" -BattleText_SqueezedBind: - .string "{DEFENDING_MON} was squeezed by\n{ATTACKING_MON}’s BIND!$" -BattleText_TrappedVortex: - .string "{DEFENDING_MON} was trapped\nin the vortex!$" -BattleText_SandTombTrapped: - .string "{DEFENDING_MON} was trapped\nby SAND TOMB!$" -BattleText_Wrapped: - .string "{DEFENDING_MON} was WRAPPED by\n{ATTACKING_MON}!$" -BattleText_Clamped: - .string "{ATTACKING_MON} CLAMPED\n{DEFENDING_MON}!$" -BattleText_HurtBy: - .string "{ATTACKING_MON} is hurt\nby {STRING 0}!$" -BattleText_FreedFrom: - .string "{ATTACKING_MON} was freed\nfrom {STRING 0}!$" -BattleText_KeptGoingCrash: - .string "{ATTACKING_MON} kept going\nand crashed!$" - -gUnknown_083FEE5D:: @ 83FEE5D -BattleText_MistShroud: - .string "{STRING 38} became\nshrouded in MIST!$" -BattleText_MistProtect: - .string "{STRING 16} is protected\nby MIST!$" - -gUnknown_083FEE92:: @ 83FEE92 -BattleText_GetPumped: - .string "{ATTACKING_MON} is getting\npumped!$" -BattleText_HitRecoil: - .string "{ATTACKING_MON} is hit\nwith recoil!$" -BattleText_ProtectedItself2: - .string "{ATTACKING_MON} protected\nitself!$" -BattleText_SandBuffeted: - .string "{ATTACKING_MON} is buffeted\nby the sandstorm!$" -BattleText_HailStricken: - .string "{ATTACKING_MON} is stricken\nby HAIL!$" -BattleText_WoreOff: - .string "{STRING 36}’s {STRING 0}\nwore off!$" -BattleText_WasSeeded: - .string "{DEFENDING_MON} was seeded!$" -BattleText_EvadedAttack: - .string "{DEFENDING_MON} evaded\nthe attack!$" -BattleText_HealthSapped: - .string "{ATTACKING_MON}’s health is\nsapped by LEECH SEED!$" -BattleText_FastAsleep: - .string "{ATTACKING_MON} is fast\nasleep.$" -BattleText_WokeUp: - .string "{ATTACKING_MON} woke up!$" -BattleText_UproarAwake: - .string "But {STRING 16}’s UPROAR\nkept it awake!$" -BattleText_UproarWoke: - .string "{ATTACKING_MON} woke up\nin the UPROAR!$" -BattleText_UproarCaused: - .string "{ATTACKING_MON} caused\nan UPROAR!$" -BattleText_UproarMaking: - .string "{ATTACKING_MON} is making\nan UPROAR!$" -BattleText_CalmedDown: - .string "{ATTACKING_MON} calmed down.$" -BattleText_UproarCantSleep: - .string "But {DEFENDING_MON} can’t\nsleep in an UPROAR!$" -BattleText_Stockpiled: - .string "{ATTACKING_MON} STOCKPILED\n{STRING 0}!$" -BattleText_StockpiledCant: - .string "{ATTACKING_MON} can’t\nSTOCKPILE any more!$" -BattleText_UproarCantSleep2: - .string "But {DEFENDING_MON} can’t\nsleep in an UPROAR!$" -BattleText_UproarKeptAwake: - .string "But the UPROAR kept\n{DEFENDING_MON} awake!$" -BattleText_StayedAwake: - .string "{DEFENDING_MON} stayed awake\nusing its {STRING 22}!$" -BattleText_StoringEnergy: - .string "{ATTACKING_MON} is storing\nenergy!$" -BattleText_UnleashedEnergy: - .string "{ATTACKING_MON} unleashed\nenergy!$" -BattleText_FatigueConfuse: - .string "{ATTACKING_MON} became\nconfused out of fatigue!$" -BattleText_PickedUpYen: - .string "{STRING 32} picked up\n¥{STRING 0}!\p$" -BattleText_Unaffected: - .string "{DEFENDING_MON} is\nunaffected!$" -BattleText_Transformed: - .string "{ATTACKING_MON} transformed\ninto {STRING 0}!$" -BattleText_SubMade: - .string "{ATTACKING_MON} made\na SUBSTITUTE!$" -BattleText_SubAlready: - .string "{ATTACKING_MON} already\nhas a SUBSTITUTE!$" -BattleText_SubTookDamage: - .string "The SUBSTITUTE took damage\nfor {DEFENDING_MON}!\p$" -BattleText_SubFaded: - .string "{DEFENDING_MON}’s\nSUBSTITUTE faded!\p$" -BattleText_MustRecharge: - .string "{ATTACKING_MON} must\nrecharge!$" -BattleText_RageBuilding: - .string "{DEFENDING_MON}’s RAGE\nis building!$" -BattleText_MoveWasDisabled: - .string "{DEFENDING_MON}’s {STRING 0}\nwas disabled!$" -BattleText_DisabledNoMore: - .string "{ATTACKING_MON} is disabled\nno more!$" -BattleText_EncoreGot: - .string "{DEFENDING_MON} got\nan ENCORE!$" -BattleText_EncoreEnded: - .string "{ATTACKING_MON}’s ENCORE\nended!$" -BattleText_TookAim: - .string "{ATTACKING_MON} took aim\nat {DEFENDING_MON}!$" -BattleText_SketchedMove: - .string "{ATTACKING_MON} SKETCHED\n{STRING 0}!$" -BattleText_DestinyBondTake: - .string "{ATTACKING_MON} is trying\nto take its foe with it!$" -BattleText_DestinyBondTaken: - .string "{DEFENDING_MON} took\n{ATTACKING_MON} with it!$" -BattleText_ReducedBy: - .string "Reduced {DEFENDING_MON}’s\n{STRING 0} by {STRING 1}!$" -BattleText_StoleSomething: - .string "{ATTACKING_MON} stole\n{DEFENDING_MON}’s {STRING 19}!$" -BattleText_CantEscapeNow: - .string "{DEFENDING_MON} can’t\nescape now!$" -BattleText_NightmareStart: - .string "{DEFENDING_MON} fell into\na NIGHTMARE!$" -BattleText_NightmareLock: - .string "{ATTACKING_MON} is locked\nin a NIGHTMARE!$" -BattleText_CurseLay: - .string "{ATTACKING_MON} cut its own HP\nand laid a CURSE on\l{DEFENDING_MON}!$" -BattleText_CurseAfflict: - .string "{ATTACKING_MON} is afflicted\nby the CURSE!$" -BattleText_SpikesScattered: - .string "{STRING 37} POKéMON team had SPIKES\nscattered around it!$" -BattleText_SpikesHurt: - .string "{STRING 16} is hurt\nby SPIKES!$" -BattleText_IdentifiedPoke: - .string "{ATTACKING_MON} identified\n{DEFENDING_MON}!$" -BattleText_PerishSongFell: - .string "{ATTACKING_MON}’s PERISH count\nfell to {STRING 0}!$" -BattleText_BracedItself: - .string "{ATTACKING_MON} braced\nitself!$" -BattleText_EnduredHit: - .string "{DEFENDING_MON} ENDURED\nthe hit!$" -BattleText_MagnitudeCount: - .string "MAGNITUDE {STRING 0}!$" -BattleText_CutHPMaxATK: - .string "{ATTACKING_MON} cut its own HP\nand maximized ATTACK!$" -BattleText_CopyStatChanges: - .string "{ATTACKING_MON} copied\n{DEFENDING_MON}’s stat changes!$" -BattleText_GotFreeFrom: - .string "{ATTACKING_MON} got free of\n{DEFENDING_MON}’s {STRING 0}!$" -BattleText_LeechShed: - .string "{ATTACKING_MON} shed\nLEECH SEED!$" -BattleText_SpikesBlownAway: - .string "{ATTACKING_MON} blew away\nSPIKES!$" -BattleText_FledBattle: - .string "{ATTACKING_MON} fled from\nbattle!$" -BattleText_ForesawAttack: - .string "{ATTACKING_MON} foresaw\nan attack!$" -BattleText_TookAttack: - .string "{DEFENDING_MON} took\n{STRING 0}’s attack!$" -BattleText_ChoseDestiny: - .string "{ATTACKING_MON} chose\n{STRING 17} as its destiny!$" -BattleText_PokeAttack: - .string "{STRING 0}’s attack!$" -BattleText_CenterAttention: - .string "{ATTACKING_MON} became the\ncenter of attention!$" -BattleText_ChargingPower: - .string "{ATTACKING_MON} began\ncharging power!$" -BattleText_NaturePower: - .string "NATURE POWER turned into\n{STRING 17}!$" -BattleText_StatusNormal: - .string "{ATTACKING_MON}’s status\nreturned to normal!$" -BattleText_TormentSubject: - .string "{DEFENDING_MON} was subjected\nto TORMENT!$" -BattleText_TightenFocus: - .string "{ATTACKING_MON} is tightening\nits focus!$" -BattleText_TauntFell: - .string "{DEFENDING_MON} fell for\nthe TAUNT!$" -BattleText_ReadyToHelp: - .string "{ATTACKING_MON} is ready to\nhelp {DEFENDING_MON}!$" -BattleText_SwitchedItems: - .string "{ATTACKING_MON} switched\nitems with its opponent!$" -BattleText_Obtained1: - .string "{ATTACKING_MON} obtained\n{STRING 0}.$" -BattleText_Obtained2: - .string "{DEFENDING_MON} obtained\n{STRING 1}.$" -BattleText_Obtained3: - .string "{ATTACKING_MON} obtained\n{STRING 0}.\p{DEFENDING_MON} obtained\n{STRING 1}.$" -BattleText_CopiedObject: - .string "{ATTACKING_MON} copied\n{DEFENDING_MON}’s {STRING 22}!$" -BattleText_WishMade: - .string "{ATTACKING_MON} made a WISH!$" -BattleText_WishTrue: - .string "{STRING 0}’s WISH\ncame true!$" -BattleText_PlantedRoots: - .string "{ATTACKING_MON} planted its roots!$" -BattleText_AbsorbNutrients: - .string "{ATTACKING_MON} absorbed\nnutrients with its roots!$" -BattleText_AnchoredItself: - .string "{DEFENDING_MON} anchored\nitself with its roots!$" -BattleText_DrowsyMade: - .string "{ATTACKING_MON} made\n{DEFENDING_MON} drowsy!$" -BattleText_KnockedOffItem: - .string "{ATTACKING_MON} knocked off\n{DEFENDING_MON}’s {STRING 19}!$" -BattleText_AbilitySwap: - .string "{ATTACKING_MON} swapped abilities\nwith its opponent!$" -BattleText_SealedMove: - .string "{ATTACKING_MON} sealed the\nopponent’s move(s)!$" -BattleText_GrudgeBear: - .string "{ATTACKING_MON} wants the\nopponent to bear a GRUDGE!$" -BattleText_GrudgeLosePP: - .string "{ATTACKING_MON}’s {STRING 0}\nlost all its PP due to\lthe GRUDGE!$" -BattleText_ShroudedItself: - .string "{ATTACKING_MON} shrouded\nitself in {STRING 17}!$" -BattleText_MagicCoatBounce: - .string "{ATTACKING_MON}’s {STRING 17}\nwas bounced back by MAGIC COAT!$" -BattleText_AwaitMove: - .string "{ATTACKING_MON} awaits its foe\nto make a move!$" -BattleText_SnatchedMove: - .string "{DEFENDING_MON} SNATCHED\n{STRING 16}’s move!$" -BattleText_ElecWeakened: - .string "Electricity’s power was\nweakened!$" -BattleText_FireWeakened: - .string "Fire’s power was\nweakened!$" -BattleText_FoundOne: - .string "{ATTACKING_MON} found\none {STRING 19}!$" -BattleText_SoothingAroma: - .string "A soothing aroma wafted\nthrough the area!$" -BattleText_CantUseItems: - .string "Items can’t be used now.{PAUSE 64}$" -BattleText_UnknownString2: - .string "For {STRING 16},\n{STRING 19} {STRING 0}$" -BattleText_HustleUse: - .string "{STRING 16} used\n{STRING 19} to hustle!$" -BattleText_LostFocus: - .string "{ATTACKING_MON} lost its\nfocus and couldn’t move!$" -BattleText_DraggedOut: - .string "{DEFENDING_MON} was\ndragged out!\p$" -BattleText_BrokeWall: - .string "The wall shattered!$" -BattleText_NoEffect: - .string "But it had no effect!$" -BattleText_NoMovesLeft: - .string "{STRING 15} has no\nmoves left!\p$" -BattleText_MoveIsDisabled: - .string "{STRING 15}’s {STRING 17}\nis disabled!\p$" -BattleText_TormentNoUse: - .string "{STRING 15} can’t use the same\nmove twice in a row due to the TORMENT!\p$" -BattleText_TauntNoUse: - .string "{STRING 15} can’t use\n{STRING 17} after the TAUNT!\p$" -BattleText_SealedNoUse: - .string "{STRING 15} can’t use the\nsealed {STRING 17}!\p$" -BattleText_RainMade: - .string "{STRING 16}’s {STRING 23}\nmade it rain!$" -BattleText_SpeedRisen: - .string "{STRING 16}’s {STRING 23}\nraised its SPEED!$" -BattleText_ProtectedBy: - .string "{DEFENDING_MON} was protected\nby {STRING 22}!$" -BattleText_PreventedBy: - .string "{DEFENDING_MON}’s {STRING 22}\nprevents {ATTACKING_MON}\lfrom using {STRING 17}!$" -BattleText_HPRestoredUsing: - .string "{DEFENDING_MON} restored HP\nusing its {STRING 22}!$" -BattleText_MadeUseless: - .string "{DEFENDING_MON}’s {STRING 22}\nmade {STRING 17} useless!$" -BattleText_MadeType: - .string "{DEFENDING_MON}’s {STRING 22}\nmade it the {STRING 0} type!$" -BattleText_PreventedPara: - .string "{STRING 14}’s {STRING 22}\nprevents paralysis!$" -BattleText_PreventedRomance: - .string "{DEFENDING_MON}’s {STRING 22}\nprevents romance!$" -BattleText_PreventedPoison: - .string "{STRING 14}’s {STRING 22}\nprevents poisoning!$" -BattleText_PreventedConfusion: - .string "{DEFENDING_MON}’s {STRING 22}\nprevents confusion!$" -BattleText_RaisedFirePower: - .string "{DEFENDING_MON}’s {STRING 22}\nraised its FIRE power!$" -BattleText_AnchorsItself: - .string "{DEFENDING_MON} anchors\nitself with {STRING 22}!$" -BattleText_CutsAttack: - .string "{STRING 16}’s {STRING 23}\ncuts {DEFENDING_MON}’s ATTACK!$" -BattleText_PreventedStatLoss: - .string "{STRING 16}’s {STRING 23}\nprevents stat loss!$" -BattleText_HurtOther: - .string "{DEFENDING_MON}’s {STRING 22}\nhurt {ATTACKING_MON}!$" -BattleText_Traced: - .string "{STRING 16} TRACED\n{STRING 0}’s {STRING 1}!$" -BattleText_PreventedBurn: - .string "{STRING 14}’s {STRING 24}\nprevents burns!$" -BattleText_BlocksOther: - .string "{DEFENDING_MON}’s {STRING 22}\nblocks {STRING 17}!$" -BattleText_BlocksOther2: - .string "{STRING 16}’s {STRING 23}\nblocks {STRING 17}!$" -BattleText_RestoredHPByItem: - .string "{ATTACKING_MON}’s {STRING 21}\nrestored some HP!$" -BattleText_WhipSandstorm: - .string "{STRING 16}’s {STRING 23}\nwhipped up a sandstorm!$" -BattleText_SunIntensified: - .string "{STRING 16}’s {STRING 23}\nintensified the sun’s rays!$" -BattleText_PreventedLoss: - .string "{STRING 16}’s {STRING 23}\nprevents {STRING 0} loss!$" -BattleText_InfatuatedPoke: - .string "{DEFENDING_MON}’s {STRING 22}\ninfatuated {ATTACKING_MON}!$" -BattleText_MadeIneffective: - .string "{DEFENDING_MON}’s {STRING 22}\nmade {STRING 17} ineffective!$" -BattleText_CuredProblem: - .string "{STRING 16}’s {STRING 23}\ncured its {STRING 0} problem!$" -BattleText_OozeSuckup: - .string "It sucked up the\nLIQUID OOZE!$" -BattleText_Transformed2: - .string "{STRING 16} transformed!$" -BattleText_TookAttack2: - .string "{DEFENDING_MON}’s {STRING 22}\ntook the attack!$" - -gUnknown_083FFCCA:: @ 83FFCCA -BattleText_PreventedSwitch:: - .string "{STRING 0}’s {STRING 20}\nprevents switching!\p$" -BattleText_PreventedOther: - .string "{DEFENDING_MON}’s {STRING 22}\nprevented {STRING 16}’s\l{STRING 0} from working!$" -BattleText_MadeIneffective2: - .string "{STRING 16}’s {STRING 23}\nmade it ineffective!$" -BattleText_PreventedFlinching: - .string "{STRING 14}’s {STRING 24}\nprevents flinching!$" -BattleText_PreventedOther2: - .string "{ATTACKING_MON}’s {STRING 21}\nprevents {DEFENDING_MON}’s\l{STRING 22} from working!$" -BattleText_CuredOfProblem: - .string "{STRING 16}’s {STRING 23}\ncured its {STRING 0} problem!$" -BattleText_NoEffectOn: - .string "{STRING 16}’s {STRING 23}\nhad no effect on {STRING 14}!$" -BattleText_Sharply: - .string "sharply $" - -gUnknown_083FFDB3:: @ 83FFDB3 -BattleText_Rose: - .string "rose!$" -BattleText_Harshly: - .string "harshly $" -BattleText_Fell: - .string "fell!$" -BattleText_UnknownString7: - .string "{ATTACKING_MON}’s {STRING 0}\n{STRING 1}$" - -gUnknown_083FFDD3:: @ 83FFDD3 -BattleText_UnknownString3: - .string "{DEFENDING_MON}’s {STRING 0}\n{STRING 1}$" -BattleText_UnknownString4: - .string "Using {STRING 19}, the {STRING 0}\nof {STRING 16} {STRING 1}$" -BattleText_UnknownString5: - .string "{ATTACKING_MON}’s {STRING 0}\n{STRING 1}$" -BattleText_UnknownString6: - .string "{DEFENDING_MON}’s {STRING 0}\n{STRING 1}$" -BattleText_StatNoHigher: - .string "{ATTACKING_MON}’s stats won’t\ngo any higher!$" -BattleText_StatNoLower: - .string "{DEFENDING_MON}’s stats won’t\ngo any lower!$" -BattleText_Critical: - .string "A critical hit!$" -BattleText_GrandSlam: - .string "It’s a one-hit KO!$" -BattleText_MoveForget123: - .string "{PAUSE 32}1, {PAUSE 15}2 and...{PAUSE 15} ...{PAUSE 15} ...{PAUSE 15}\n{PAUSE 15}{PLAY_SE SE_KON}Poof!\p$" -BattleText_MoveForgetAnd: - .string "And...\p$" -BattleText_CantForgetHM: - .string "HM moves can’t be\nforgotten now.\p$" -BattleText_NotEffective: - .string "It’s not very effective...$" -BattleText_SuperEffective: - .string "It’s super effective!$" - -gUnknown_083FFEFC:: @ 83FFEFC -BattleText_GotAwaySafely: - .string "{PLAY_SE SE_NIGERU}Got away safely!\p$" -BattleText_FledUsingItem: - .string "{PLAY_SE SE_NIGERU}{ATTACKING_MON} fled\nusing its {STRING 19}!\p$" -BattleText_FledUsingOther: - .string "{PLAY_SE SE_NIGERU}{ATTACKING_MON} fled\nusing {STRING 21}!\p$" -BattleText_FledWild: - .string "{PLAY_SE SE_NIGERU}Wild {STRING 0} fled!$" - -gUnknown_083FFF56:: @ 83FFF56 -BattleText_PlayerDefeatedTrainer: - .string "Player defeated\n{STRING 29}!$" - -gUnknown_083FFF6A:: @ 83FFF6A -BattleText_PlayerDefeatedTrainers: - .string "Player beat {STRING 30}\nand {STRING 29}!$" - -gUnknown_083FFF81:: @ 83FFF81 -BattleText_PlayerLostTrainer: - .string "Player lost against\n{STRING 29}!$" - -gUnknown_083FFF99:: @ 83FFF99 -BattleText_PlayerLostTrainers: - .string "Player lost to {STRING 30}\nand {STRING 29}!$" - -gUnknown_083FFFB3:: @ 83FFFB3 -BattleText_PlayerTiedTrainer: - .string "Player tied against\n{STRING 29}!$" - -gUnknown_083FFFCB:: @ 83FFFCB -BattleText_PlayerTiedTrainers: - .string "Player tied against {STRING 30}\nand {STRING 29}!$" - -gUnknown_083FFFEA:: @ 83FFFEA -BattleText_FledSingle: - .string "{PLAY_SE SE_NIGERU}{STRING 29} fled!$" - -gUnknown_083FFFF7:: @ 83FFFF7 -BattleText_FledDouble: - .string "{PLAY_SE SE_NIGERU}{STRING 29} and\n{STRING 30} fled!$" -BattleText_NoRunning: - .string "No! There’s no running\nfrom a TRAINER battle!\p$" -BattleText_CantEscape2: - .string "Can’t escape!\p$" -BattleText_BirchDontLeaveMe: - .string "PROF. BIRCH: D-don’t leave\nme here like this!\p$" -BattleText_Nothing: - .string "But nothing happened!$" -BattleText_Failed: - .string "But it failed!$" -BattleText_HurtItself: - .string "It hurt itself in its\nconfusion!$" -BattleText_MirrorFail: - .string "The MIRROR MOVE failed!$" -BattleText_RainStart: - .string "It started to rain!$" -BattleText_PourStart: - .string "A downpour started!$" -BattleText_RainCont1: - .string "Rain continues to fall.$" -BattleText_PourCont: - .string "The downpour continues.$" -BattleText_RainStop: - .string "The rain stopped.$" -BattleText_SandBrewed: - .string "A sandstorm brewed!$" -BattleText_SandRages: - .string "The sandstorm rages.$" -BattleText_SandSubsided: - .string "The sandstorm subsided.$" -BattleText_SunBright: - .string "The sunlight got bright!$" -BattleText_SunStrong: - .string "The sunlight is strong.$" -BattleText_SunFaded: - .string "The sunlight faded.$" -BattleText_HailStart: - .string "It started to hail!$" -BattleText_HailCont: - .string "Hail continues to fall.$" -BattleText_HailStop: - .string "The hail stopped.$" -BattleText_SpitUpFail: - .string "But it failed to SPIT UP\na thing!$" -BattleText_SwallowFail: - .string "But it failed to SWALLOW\na thing!$" -BattleText_WindHeatWave: - .string "The wind turned into a\nHEAT WAVE!$" -BattleText_StatElim: - .string "All stat changes were\neliminated!$" -BattleText_CoinScatter: - .string "Coins scattered everywhere!$" -BattleText_SubWeak: - .string "It was too weak to make\na SUBSTITUTE!$" -BattleText_PainSplit: - .string "The battlers shared\ntheir pain!$" -BattleText_BellChime: - .string "A bell chimed!$" -BattleText_PerishSong: - .string "All affected POKéMON will\nfaint in 3 turns!$" -BattleText_NoPP1: - .string "There’s no PP left for\nthis move!\p$" -BattleText_NoPP2: - .string "But there was no PP left\nfor the move!$" -BattleText_IgnoredOrdersSLP: - .string "{ATTACKING_MON} ignored\norders while asleep!$" -BattleText_IgnoredOrders: - .string "{ATTACKING_MON} ignored\norders!$" -BattleText_BeganNap: - .string "{ATTACKING_MON} began to nap!$" -BattleText_LoafingAround: - .string "{ATTACKING_MON} is\nloafing around!$" -BattleText_WontObey: - .string "{ATTACKING_MON} won’t\nobey!$" -BattleText_TurnedAway: - .string "{ATTACKING_MON} turned away!$" -BattleText_NotNotice: - .string "{ATTACKING_MON} pretended\nto not notice!$" -BattleText_WillSwitch: - .string "{STRING 25} {STRING 26} is\nabout to use {STRING 1}.\pWill {STRING 32} change\nPOKéMON?$" -BattleText_LearnedMove2: - .string "{ATTACKING_MON} learned\n{STRING 0}!$" -BattleText_PlayerDefeatedTrainer2: - .string "Player defeated\n{STRING 25} {STRING 26}!\p$" -BattleText_CreptCloser: - .string "{STRING 32} crept closer to\n{STRING 3}!$" -BattleText_CantGetCloser: - .string "{STRING 32} can’t get any closer!$" -BattleText_WatchingCarefully: - .string "{STRING 3} is watching\ncarefully!$" -BattleText_CuriousAbout: - .string "{STRING 3} is curious about\nthe {STRING 0}!$" -BattleText_EnthralledBy: - .string "{STRING 3} is enthralled by\nthe {STRING 0}!$" -BattleText_IgnoredThing: - .string "{STRING 3} completely ignored\nthe {STRING 0}!$" -BattleText_ThrewBlock: - .string "{STRING 32} threw a {POKEBLOCK}\nat the {STRING 3}!$" -BattleText_SafariOver: - .string "{PLAY_SE SE_PINPON}ANNOUNCER: You’re out of\nSAFARI BALLS! Game over!\p$" - -gUnknown_08400555:: @ 8400555 -BattleText_WildAppeared1: - .string "Wild {STRING 3} appeared!\p$" - -gUnknown_08400568:: @ 8400568 -BattleText_WildAppeared2: - .string "Wild {STRING 3} appeared!\p$" - -gUnknown_0840057B:: @ 840057B -BattleText_WildAppeared3: - .string "Wild {STRING 3} appeared!{PAUSE 127}$" - -gUnknown_08400590:: @ 8400590 -BattleText_WildDoubleAppeared: - .string "Wild {STRING 5} and\n{STRING 3} appeared!\p$" - -gUnknown_084005AA:: @ 84005AA -BattleText_SingleWantToBattle1: - .string "{STRING 25} {STRING 26}\nwould like to battle!\p$" - -gUnknown_084005C7:: @ 84005C7 -BattleText_SingleWantToBattle2: - .string "{STRING 29}\nwants to battle!$" - -gUnknown_084005DB:: @ 84005DB -BattleText_DoubleWantToBattle: - .string "{STRING 29} and {STRING 30}\nwant to battle!$" - -gUnknown_084005F5:: @ 84005F5 -BattleText_SentOutSingle1: - .string "{STRING 25} {STRING 26} sent\nout {STRING 3}!$" - -gUnknown_08400608:: @ 8400608 -BattleText_SentOutDouble1: - .string "{STRING 25} {STRING 26} sent\nout {STRING 3} and {STRING 5}!$" - -gUnknown_08400622:: @ 8400622 -BattleText_SentOutSingle2: - .string "{STRING 25} {STRING 26} sent\nout {STRING 0}!$" - -gUnknown_08400635:: @ 8400635 -BattleText_SentOutSingle3: - .string "{STRING 29} sent\nout {STRING 3}!$" - -gUnknown_08400645:: @ 8400645 -BattleText_SentOutDouble2: - .string "{STRING 29} sent out\n{STRING 3} and {STRING 5}!$" - -gUnknown_0840065C:: @ 840065C -BattleText_SentOutDouble3: - .string "{STRING 29} sent out\n{STRING 7}!\p{STRING 30} sent out\n{STRING 9}!$" - -gUnknown_0840067C:: @ 840067C -BattleText_SentOutSingle4: - .string "{STRING 29} sent out\n{STRING 0}!$" - -gUnknown_0840068C:: @ 840068C -BattleText_SentOutSingle5: - .string "{STRING 31} sent out\n{STRING 0}!$" - -gUnknown_0840069C:: @ 840069C -BattleText_SentOutSingle6: - .string "Go! {STRING 2}!$" - -gUnknown_084006A4:: @ 84006A4 -BattleText_SentOutDouble4: - .string "Go! {STRING 2} and\n{STRING 4}!$" - -gUnknown_084006B3:: @ 84006B3 -BattleText_SentOutSingle7: - .string "Go! {STRING 0}!$" - -gUnknown_084006BB:: @ 84006BB -BattleText_SentOutSingle8: - .string "Do it! {STRING 0}!$" - -gUnknown_084006C6:: @ 84006C6 -BattleText_SentOutSingle9: - .string "Go for it, {STRING 0}!$" - -gUnknown_084006D5:: @ 84006D5 -BattleText_SentOutSingle10: - .string "Your foe’s weak!\nGet’m, {STRING 0}!$" - -gUnknown_084006F1:: @ 84006F1 -BattleText_SentOutSingle11: - .string "{STRING 28} sent out\n{STRING 8}!\pGo! {STRING 6}!$" - -gUnknown_08400709:: @ 8400709 -BattleText_ComeBackSingle1: - .string "{STRING 0}, that’s enough!\nCome back!$" - -gUnknown_08400727:: @ 8400727 -BattleText_ComeBackSingle2: - .string "{STRING 0}, come back!$" - -gUnknown_08400736:: @ 8400736 -BattleText_ComeBackSingle3: - .string "{STRING 0}, OK!\nCome back!$" - -gUnknown_08400749:: @ 8400749 -BattleText_ComeBackSingle4: - .string "{STRING 0}, good!\nCome back!$" - -gUnknown_0840075E:: @ 840075E -BattleText_WithdrewPoke1: - .string "{STRING 25} {STRING 26}\nwithdrew {STRING 0}!$" - -gUnknown_08400771:: @ 8400771 -BattleText_WithdrewPoke2: - .string "{STRING 29} withdrew\n{STRING 0}!$" - -gUnknown_08400781:: @ 8400781 -BattleText_WithdrewPoke3: - .string "{STRING 31} withdrew\n{STRING 0}!$" - -gUnknown_08400791:: @ 8400791 -BattleText_Wild: - .string "Wild $" - -gUnknown_08400797:: @ 8400797 -BattleText_Foe: - .string "Foe $" - -gUnknown_0840079C:: @ 840079C -BattleText_Foe2: - .string "Foe $" - -gUnknown_084007A1:: @ 84007A1 -BattleText_Ally: - .string "Ally $" - -gUnknown_084007A7:: @ 84007A7 -BattleText_Foe3: - .string "Foe $" - -gUnknown_084007AC:: @ 84007AC -BattleText_Ally2: - .string "Ally $" - -gUnknown_084007B2:: @ 84007B2 -BattleText_Foe4: - .string "Foe $" - -gUnknown_084007B7:: @ 84007B7 -BattleText_Ally3: - .string "Ally $" - -gUnknown_084007BD:: @ 84007BD -BattleText_OpponentUsedMove: - .string "{ATTACKING_MON} used\n{STRING 1}$" - -gUnknown_084007C8:: @ 84007C8 -BattleText_Exclamation2: @ out of order but whatever - .string "!$" - -gUnknown_084007CA:: @ 84007CA -BattleText_Exclamation3: - .string "!$" - -gUnknown_084007CC:: @ 84007CC -BattleText_Exclamation4: - .string "!$" - -gUnknown_084007CE:: @ 84007CE -BattleText_Exclamation5: - .string "!$" - -gUnknown_084007D0:: @ 84007D0 -BattleText_Exclamation: - .string "!$" -BattleStatText_HP: - .string "HP$" -BattleStatText_Attack: - .string "ATTACK$" -BattleStatText_Defense: - .string "DEFENSE$" -BattleStatText_Speed: - .string "SPEED$" -BattleStatText_SpAtk: - .string "SP. ATK$" -BattleStatText_SpDef: - .string "SP. DEF$" -BattleStatText_Accuracy: - .string "accuracy$" -BattleStatText_Evasion: - .string "evasiveness$" -ContestStatText_TooSpicy: - .string "was too spicy!$" -ContestStatText_TooDry: - .string "was too dry!$" -ContestStatText_TooSweet: - .string "was too sweet!$" -ContestStatText_TooBitter: - .string "was too bitter!$" -ContestStatText_TooSour: - .string "was too sour!$" -BattleText_Used1: - .string "{STRING 32} used\n{STRING 19}!$" -BattleText_TutorialUsed: - .string "WALLY used\n{STRING 19}!$" -BattleText_Used2: - .string "{STRING 25} {STRING 26}\nused {STRING 19}!$" -BattleText_BlockBall: - .string "The TRAINER blocked the BALL!$" -BattleText_DontBeAThief: - .string "Don’t be a thief!$" -BattleText_DodgeBall: - .string "It dodged the thrown BALL!\nThis POKéMON can’t be caught!$" -BattleText_MissPoke: - .string "You missed the POKéMON!$" -BattleText_BallBrokeOhNo: - .string "Oh, no!\nThe POKéMON broke free!$" -BattleText_BallBrokeAppeared: - .string "Aww!\nIt appeared to be caught!$" -BattleText_BallBrokeAlmost: - .string "Aargh!\nAlmost had it!$" -BattleText_BallBrokeSoClose: - .string "Shoot!\nIt was so close, too!$" -BattleText_BallCaught1: - .string "Gotcha!\n{STRING 3} was caught!{UNKNOWN_A}{PLAY_BGM BGM_KACHI22}\p$" -BattleText_BallCaught2: - .string "Gotcha!\n{STRING 3} was caught!{UNKNOWN_A}{PLAY_BGM BGM_KACHI22}{PAUSE 127}$" -BattleText_GiveNickname: - .string "Give a nickname to the\ncaptured {STRING 3}?$" -BattleText_SentToPC: - .string "{STRING 3} was sent to\n{STRING 35} PC.$" - -gUnknown_084009ED:: @ 84009ED -BattleText_Someone: - .string "someone’s$" - -gUnknown_084009F7:: @ 84009F7 -BattleText_Lanette: - .string "LANETTE’s$" -BattleText_AddedToDex: - .string "{STRING 3}’s data was\nadded to the POKéDEX.\p$" -BattleText_Raining: - .string "It is raining.$" -BattleText_Sandstorm: - .string "A sandstorm is raging.$" -BattleText_BoxFull: - .string "The BOX is full!\nYou can’t catch any more!\p$" - -gUnknown_08400A78:: @ 8400A78 -BattleText_EnigmaBerry: - .string "ENIGMA BERRY$" - -gUnknown_08400A85:: @ 8400A85 -BattleText_Berry: - .string " BERRY$" -BattleText_CuredParalysis: - .string "{STRING 16}’s {STRING 19}\ncured paralysis!$" -BattleText_CuredPoison: - .string "{STRING 16}’s {STRING 19}\ncured poison!$" -BattleText_CuredBurn: - .string "{STRING 16}’s {STRING 19}\nhealed its burn!$" -BattleText_CuredFreeze: - .string "{STRING 16}’s {STRING 19}\ndefrosted it!$" -BattleText_CuredSleep: - .string "{STRING 16}’s {STRING 19}\nwoke it from its sleep!$" -BattleText_CuredConfusion: - .string "{STRING 16}’s {STRING 19}\nsnapped it out of confusion!$" -BattleText_CuredStatus: - .string "{STRING 16}’s {STRING 19}\ncured its {STRING 0} problem!$" -BattleText_NormalizedStatus: - .string "{STRING 16}’s {STRING 19}\nnormalized its status!$" -BattleText_RestoredHealth: - .string "{STRING 16}’s {STRING 19}\nrestored health!$" -BattleText_RestoredPP: - .string "{STRING 16}’s {STRING 19}\nrestored {STRING 0}’s PP!$" -BattleText_RestoredStatus: - .string "{STRING 16}’s {STRING 19}\nrestored its status!$" -BattleText_RestoredHPLittle: - .string "{STRING 16}’s {STRING 19}\nrestored its HP a little!$" -BattleText_ChoiceBand: - .string "{STRING 19} allows the\nuse of only {STRING 17}!\p$" -BattleText_FocusSash: - .string "{DEFENDING_MON} hung on\nusing its {STRING 19}!$" -BattleText_Terminator2: - .string "$" -BattleText_WallyBall: - .string "You throw a BALL now, right?\nI... I’ll do my best!$" - -gUnknown_08400C4A:: @ 8400C4A -BattleText_StartEvo: - .string "What?\n{STRING 2} is evolving!$" - -gUnknown_08400C60:: @ 8400C60 -BattleText_FinishEvo: - .string "Congratulations! Your {STRING 2}\nevolved into {STRING 3}!{UNKNOWN_A}\p$" - -gUnknown_08400C8D:: @ 8400C8D -BattleText_StopEvo: - .string "Huh? {STRING 2}\nstopped evolving!\p$" - -gUnknown_08400CA8:: @ 8400CA8 -BattleText_OtherMenu: - .string "What should\n{STRING 15} do?$" - -gUnknown_08400CBB:: @ 8400CBB -BattleText_PlayerMenu: - .string "What will\n{STRING 32} do?$" - -gUnknown_08400CCC:: @ 8400CCC -BattleText_WallyMenu: - .string "What will\nWALLY do?$" - -gUnknown_08400CE0:: @ 8400CE0 -BattleText_LinkStandby: - .string "{PAUSE 16}Link standby...$" - -gUnknown_08400CF3:: @ 8400CF3 -BattleText_MenuOptions: - .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}FIGHT{CLEAR_TO 0x2E}BAG\nPOKéMON{CLEAR_TO 0x2E}RUN$" - -gUnknown_08400D15:: @ 8400D15 -BattleText_MenuOptionsSafari: - .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}BALL{CLEAR_TO 0x2E}{POKEBLOCK}\nGO NEAR{CLEAR_TO 0x2E}RUN$" - -gUnknown_08400D38:: @ 8400D38 -BattleText_PP: - .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}PP\nTYPE/$" - -gUnknown_08400D49:: @ 8400D49 -BattleText_Format: @ cant think of a better name - .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}$" - -gUnknown_08400D52:: @ 8400D52 -BattleText_ForgetMove: - .string "{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}{PALETTE 5}Which move should\nbe forgotten?$" - -gUnknown_08400D7A:: @ 8400D7A -BattleText_YesNo: - .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}Yes\nNo$" - -gUnknown_08400D89:: @ 8400D89 -BattleText_SwitchWhich: - .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}Switch\nwhich?$" - -gUnknown_08400D9F:: @ 8400D9F -BattleText_Format2: - .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}$" -BattleText_RightArrow: - .string "{RIGHT_ARROW}$" - -gUnknown_08400DAA:: @ 8400DAA -BattleText_Plus: - .string "+$" - -gUnknown_08400DAC:: @ 8400DAC -@ someone improve the formatting of this please -BattleText_Dash: - .string "-$" -BattleText_HP: - .string "HP $" -BattleText_Attack: - .string "ATTACK $" -BattleText_Defense: - .string "DEFENSE$" -BattleText_SpAtk: - .string "SP. ATK$" -BattleText_SpDef: - .string "SP. DEF$" - -gUnknown_08400DD6:: @ 8400DD6 -BattleText_SafariBalls:: - .string "{HIGHLIGHT RED}SAFARI BALLS$" - -gUnknown_08400DE6:: @ 8400DE6 -BattleText_SafariBallsLeft:: - .string "{HIGHLIGHT RED}Left: $" - -gUnknown_08400DF0:: @ 8400DF0 -BattleText_HighlightRed:: - .string "{HIGHLIGHT RED}$" - -BattleText_Sleep:: - .string "sleep$" -BattleText_PoisonStatus:: - .string "poison$" -BattleText_Burn:: - .string "burn$" -BattleText_Paralysis:: - .string "paralysis$" -BattleText_IceStatus:: - .string "ice$" -BattleText_Confusion:: - .string "confusion$" -BattleText_Love:: - .string "love$" - -gUnknown_08400E23:: @ 8400E23 -BattleText_Format3: - .string " and $" - -gUnknown_08400E29:: @ 8400E29 -BattleText_Format4: - .string ", $" - -gUnknown_08400E2C:: @ 8400E2C -BattleText_Format5: - .string " $" - -gUnknown_08400E2E:: @ 8400E2E -BattleText_Format6: - .string "\l$" - -gUnknown_08400E30:: @ 8400E30 -BattleText_Format7: - .string "\n$" - -gUnknown_08400E32:: @ 8400E32 -BattleText_Format8: - .string "are$" - -gUnknown_08400E36:: @ 8400E36 -BattleText_Format9: - .string "are$" - -gBadEggNickname:: @ 8400E3A - .string "Bad EGG$" - -gUnknown_08400E42:: @ 8400E42 -BattleText_Wally:: - .string "WALLY$" - -BattleText_Win:: @ 8400E48 - .string "{HIGHLIGHT TRANSPARENT}Win$" - -BattleText_Loss:: @ 8400E4F - .string "{HIGHLIGHT TRANSPARENT}Loss$" - -BattleText_Tie:: @ 8400E57 - .string "{HIGHLIGHT TRANSPARENT}Tie$" - -gUnknown_08400E5E:: @ 8400E5E -BattleText_Format10: - .string " is$" - -gUnknown_08400E62:: @ 8400E62 -BattleText_Format11: - .string "’s$" -BattleText_Normal: - .string "a NORMAL move$" -BattleText_Fighting: - .string "a FIGHTING move$" -BattleText_Flying: - .string "a FLYING move$" -BattleText_Poison: - .string "a POISON move$" -BattleText_Ground: - .string "a GROUND move$" -BattleText_Rock: - .string "a ROCK move$" -BattleText_Bug: - .string "a BUG move$" -BattleText_Ghost: - .string "a GHOST move$" -BattleText_Steel: - .string "a STEEL move$" -BattleText_Typeless: - .string "a ??? move$" -BattleText_Fire: - .string "a FIRE move$" -BattleText_Water: - .string "a WATER move$" -BattleText_Grass: - .string "a GRASS move$" -BattleText_Electric: - .string "an ELECTRIC move$" -BattleText_Psychic: - .string "a PSYCHIC move$" -BattleText_Ice: - .string "an ICE move$" -BattleText_Dragon: - .string "a DRAGON move$" -BattleText_Dark: - .string "a DARK move$" - - .align 2 -gUnknown_08400F58:: @ 8400F58 - .4byte BattleStatText_HP - .4byte BattleStatText_Attack - .4byte BattleStatText_Defense - .4byte BattleStatText_Speed - .4byte BattleStatText_SpAtk - .4byte BattleStatText_SpDef - .4byte BattleStatText_Accuracy - .4byte BattleStatText_Evasion - - .align 2 -gUnknown_08400F78:: @ 8400F78 - .4byte ContestStatText_TooSpicy - .4byte ContestStatText_TooDry - .4byte ContestStatText_TooSweet - .4byte ContestStatText_TooBitter - .4byte ContestStatText_TooSour - - .align 2 -gBattleStringsTable:: @ 8400F8C - .4byte BattleText_UnknownString - .4byte BattleText_GainExpPoints - .4byte BattleText_GrewLevel - .4byte BattleText_LearnedMove - .4byte BattleText_TryingToLearnMove - .4byte BattleText_CantLearnMore - .4byte BattleText_DeleteMove - .4byte BattleText_DeletedMove - .4byte BattleText_StopLearning - .4byte BattleText_DidNotLearn - .4byte BattleText_LearnedMove2 - .4byte BattleText_AttackMissed - .4byte BattleText_ProtectedItself - .4byte BattleText_StatNoHigher - .4byte BattleText_AvoidedDamage - .4byte BattleText_DoesntAffect - .4byte BattleText_AttackingFainted - .4byte BattleText_DefendingFainted - .4byte BattleText_WinningPrize - .4byte BattleText_OutOfUsablePoke - .4byte BattleText_WhitedOut - .4byte BattleText_PreventEscape - .4byte BattleText_HitMulti - .4byte BattleText_FellAsleep - .4byte BattleText_MadeAsleep - .4byte BattleText_DefendingAsleep - .4byte BattleText_AttackingAsleep - .4byte BattleText_WasntAffected - .4byte BattleText_Poisoned - .4byte BattleText_Poisoned2 - .4byte BattleText_PoisonHurt - .4byte BattleText_AlreadyPoisoned - .4byte BattleText_BadlyPoisoned - .4byte BattleText_EnergyDrained - .4byte BattleText_Burned - .4byte BattleText_Burned2 - .4byte BattleText_BurnHurt - .4byte BattleText_Frozen - .4byte BattleText_Frozen2 - .4byte BattleText_FrozenSolid - .4byte BattleText_DefendingDefrosted - .4byte BattleText_AttackingDefrosted - .4byte BattleText_Defrosted - .4byte BattleText_Paralyzed - .4byte BattleText_Paralyzed2 - .4byte BattleText_Paralyzed3 - .4byte BattleText_AlreadyParalyzed - .4byte BattleText_ParalysisHealed - .4byte BattleText_DreamEaten - .4byte BattleText_AttackingStatNoHigher - .4byte BattleText_DefendingStatNoHigher - .4byte BattleText_StoppedWorking - .4byte BattleText_StoppedWorking2 - .4byte BattleText_Confused - .4byte BattleText_ConfusionSnapOut - .4byte BattleText_BecameConfused - .4byte BattleText_AlreadyConfused - .4byte BattleText_FellLove - .4byte BattleText_InLoveWith - .4byte BattleText_ImmobilizedBy - .4byte BattleText_BlownAway - .4byte BattleText_TypeTransform - .4byte BattleText_Flinched - .4byte BattleText_RegainedHealth - .4byte BattleText_HPFull - .4byte BattleText_RaisedSpDef - .4byte BattleText_RaisedDefense - .4byte BattleText_CoveredVeil - .4byte BattleText_SafeguardActive - .4byte BattleText_SafeguardFaded - .4byte BattleText_WentToSleep - .4byte BattleText_SpeltHealthy - .4byte BattleText_WhipWhirlwind - .4byte BattleText_TookSunlight - .4byte BattleText_LoweredHead - .4byte BattleText_IsGlowing - .4byte BattleText_FlewHigh - .4byte BattleText_DugHole - .4byte BattleText_SqueezedBind - .4byte BattleText_TrappedVortex - .4byte BattleText_Wrapped - .4byte BattleText_Clamped - .4byte BattleText_HurtBy - .4byte BattleText_FreedFrom - .4byte BattleText_KeptGoingCrash - .4byte BattleText_MistShroud - .4byte BattleText_MistProtect - .4byte BattleText_GetPumped - .4byte BattleText_HitRecoil - .4byte BattleText_ProtectedItself2 - .4byte BattleText_SandBuffeted - .4byte BattleText_HailStricken - .4byte BattleText_WasSeeded - .4byte BattleText_EvadedAttack - .4byte BattleText_HealthSapped - .4byte BattleText_FastAsleep - .4byte BattleText_WokeUp - .4byte BattleText_UproarAwake - .4byte BattleText_UproarWoke - .4byte BattleText_UproarCaused - .4byte BattleText_UproarMaking - .4byte BattleText_CalmedDown - .4byte BattleText_UproarCantSleep - .4byte BattleText_Stockpiled - .4byte BattleText_StockpiledCant - .4byte BattleText_UproarCantSleep2 - .4byte BattleText_UproarKeptAwake - .4byte BattleText_StayedAwake - .4byte BattleText_StoringEnergy - .4byte BattleText_UnleashedEnergy - .4byte BattleText_FatigueConfuse - .4byte BattleText_PickedUpYen - .4byte BattleText_Unaffected - .4byte BattleText_Transformed - .4byte BattleText_SubMade - .4byte BattleText_SubAlready - .4byte BattleText_SubTookDamage - .4byte BattleText_SubFaded - .4byte BattleText_MustRecharge - .4byte BattleText_RageBuilding - .4byte BattleText_MoveWasDisabled - .4byte BattleText_MoveIsDisabled - .4byte BattleText_DisabledNoMore - .4byte BattleText_EncoreGot - .4byte BattleText_EncoreEnded - .4byte BattleText_TookAim - .4byte BattleText_SketchedMove - .4byte BattleText_DestinyBondTake - .4byte BattleText_DestinyBondTaken - .4byte BattleText_ReducedBy - .4byte BattleText_StoleSomething - .4byte BattleText_CantEscapeNow - .4byte BattleText_NightmareStart - .4byte BattleText_NightmareLock - .4byte BattleText_CurseLay - .4byte BattleText_CurseAfflict - .4byte BattleText_SpikesScattered - .4byte BattleText_SpikesHurt - .4byte BattleText_IdentifiedPoke - .4byte BattleText_PerishSongFell - .4byte BattleText_BracedItself - .4byte BattleText_EnduredHit - .4byte BattleText_MagnitudeCount - .4byte BattleText_CutHPMaxATK - .4byte BattleText_CopyStatChanges - .4byte BattleText_GotFreeFrom - .4byte BattleText_LeechShed - .4byte BattleText_SpikesBlownAway - .4byte BattleText_FledBattle - .4byte BattleText_ForesawAttack - .4byte BattleText_TookAttack - .4byte BattleText_PokeAttack - .4byte BattleText_CenterAttention - .4byte BattleText_ChargingPower - .4byte BattleText_NaturePower - .4byte BattleText_StatusNormal - .4byte BattleText_NoMovesLeft - .4byte BattleText_TormentSubject - .4byte BattleText_TormentNoUse - .4byte BattleText_TightenFocus - .4byte BattleText_TauntFell - .4byte BattleText_TauntNoUse - .4byte BattleText_ReadyToHelp - .4byte BattleText_SwitchedItems - .4byte BattleText_CopiedObject - .4byte BattleText_WishMade - .4byte BattleText_WishTrue - .4byte BattleText_PlantedRoots - .4byte BattleText_AbsorbNutrients - .4byte BattleText_AnchoredItself - .4byte BattleText_DrowsyMade - .4byte BattleText_KnockedOffItem - .4byte BattleText_AbilitySwap - .4byte BattleText_SealedMove - .4byte BattleText_SealedNoUse - .4byte BattleText_GrudgeBear - .4byte BattleText_GrudgeLosePP - .4byte BattleText_ShroudedItself - .4byte BattleText_MagicCoatBounce - .4byte BattleText_AwaitMove - .4byte BattleText_SnatchedMove - .4byte BattleText_RainMade - .4byte BattleText_SpeedRisen - .4byte BattleText_ProtectedBy - .4byte BattleText_PreventedBy - .4byte BattleText_HPRestoredUsing - .4byte BattleText_MadeType - .4byte BattleText_PreventedPara - .4byte BattleText_PreventedRomance - .4byte BattleText_PreventedPoison - .4byte BattleText_PreventedConfusion - .4byte BattleText_RaisedFirePower - .4byte BattleText_AnchorsItself - .4byte BattleText_CutsAttack - .4byte BattleText_PreventedStatLoss - .4byte BattleText_HurtOther - .4byte BattleText_Traced - .4byte BattleText_Sharply - .4byte BattleText_Rose - .4byte BattleText_Harshly - .4byte BattleText_Fell - .4byte BattleText_UnknownString7 - .4byte BattleText_UnknownString3 - .4byte BattleText_UnknownString5 - .4byte BattleText_UnknownString6 - .4byte BattleText_Critical - .4byte BattleText_GrandSlam - .4byte BattleText_MoveForget123 - .4byte BattleText_MoveForgetAnd - .4byte BattleText_NotEffective - .4byte BattleText_SuperEffective - .4byte BattleText_GotAwaySafely - .4byte BattleText_FledWild - .4byte BattleText_NoRunning - .4byte BattleText_CantEscape2 - .4byte BattleText_BirchDontLeaveMe - .4byte BattleText_Nothing - .4byte BattleText_Failed - .4byte BattleText_HurtItself - .4byte BattleText_MirrorFail - .4byte BattleText_RainStart - .4byte BattleText_PourStart - .4byte BattleText_RainCont1 - .4byte BattleText_PourCont - .4byte BattleText_RainStop - .4byte BattleText_SandBrewed - .4byte BattleText_SandRages - .4byte BattleText_SandSubsided - .4byte BattleText_SunBright - .4byte BattleText_SunStrong - .4byte BattleText_SunFaded - .4byte BattleText_HailStart - .4byte BattleText_HailCont - .4byte BattleText_HailStop - .4byte BattleText_SpitUpFail - .4byte BattleText_SwallowFail - .4byte BattleText_WindHeatWave - .4byte BattleText_StatElim - .4byte BattleText_CoinScatter - .4byte BattleText_SubWeak - .4byte BattleText_PainSplit - .4byte BattleText_BellChime - .4byte BattleText_PerishSong - .4byte BattleText_NoPP1 - .4byte BattleText_NoPP2 - .4byte BattleText_Used1 - .4byte BattleText_TutorialUsed - .4byte BattleText_BlockBall - .4byte BattleText_DontBeAThief - .4byte BattleText_DodgeBall - .4byte BattleText_MissPoke - .4byte BattleText_BallBrokeOhNo - .4byte BattleText_BallBrokeAppeared - .4byte BattleText_BallBrokeAlmost - .4byte BattleText_BallBrokeSoClose - .4byte BattleText_BallCaught1 - .4byte BattleText_BallCaught2 - .4byte BattleText_GiveNickname - .4byte BattleText_SentToPC - .4byte BattleText_AddedToDex - .4byte BattleText_Raining - .4byte BattleText_Sandstorm - .4byte BattleText_CantEscape - .4byte BattleText_IgnoredOrdersSLP - .4byte BattleText_IgnoredOrders - .4byte BattleText_BeganNap - .4byte BattleText_LoafingAround - .4byte BattleText_WontObey - .4byte BattleText_TurnedAway - .4byte BattleText_NotNotice - .4byte BattleText_WillSwitch - .4byte BattleText_CreptCloser - .4byte BattleText_CantGetCloser - .4byte BattleText_WatchingCarefully - .4byte BattleText_CuriousAbout - .4byte BattleText_EnthralledBy - .4byte BattleText_IgnoredThing - .4byte BattleText_ThrewBlock - .4byte BattleText_SafariOver - .4byte BattleText_CuredParalysis - .4byte BattleText_CuredPoison - .4byte BattleText_CuredBurn - .4byte BattleText_CuredFreeze - .4byte BattleText_CuredSleep - .4byte BattleText_CuredConfusion - .4byte BattleText_CuredStatus - .4byte BattleText_RestoredHealth - .4byte BattleText_RestoredPP - .4byte BattleText_RestoredStatus - .4byte BattleText_RestoredHPLittle - .4byte BattleText_ChoiceBand - .4byte BattleText_FocusSash - .4byte BattleText_Terminator2 @ terminator? - .4byte BattleText_PreventedBurn - .4byte BattleText_BlocksOther - .4byte BattleText_RestoredHPByItem - .4byte BattleText_WhipSandstorm - .4byte BattleText_PreventedLoss - .4byte BattleText_InfatuatedPoke - .4byte BattleText_MadeIneffective - .4byte BattleText_CuredProblem - .4byte BattleText_OozeSuckup - .4byte BattleText_Transformed2 - .4byte BattleText_ElecWeakened - .4byte BattleText_FireWeakened - .4byte BattleText_HidUnderwater - .4byte BattleText_SprangUp - .4byte BattleText_CantForgetHM - .4byte BattleText_FoundOne - .4byte BattleText_PlayerDefeatedTrainer2 - .4byte BattleText_SoothingAroma - .4byte BattleText_CantUseItems - .4byte BattleText_UnknownString2 - .4byte BattleText_UnknownString4 - .4byte BattleText_HustleUse - .4byte BattleText_MadeUseless - .4byte BattleText_SandTombTrapped @ sand tomb - .4byte BattleText_Terminator - .4byte BattleText_BoostedExp - .4byte BattleText_SunIntensified - .4byte BattleText_GroundMoveNegate - .4byte BattleText_WallyBall - .4byte BattleText_TookAttack2 - .4byte BattleText_ChoseDestiny - .4byte BattleText_LostFocus - .4byte BattleText_UseNext - .4byte BattleText_FledUsingItem - .4byte BattleText_FledUsingOther - .4byte BattleText_DraggedOut - .4byte BattleText_PreventedOther - .4byte BattleText_NormalizedStatus - .4byte BattleText_Used2 - .4byte BattleText_BoxFull - .4byte BattleText_AvoidedAttack - .4byte BattleText_MadeIneffective2 - .4byte BattleText_PreventedFlinching - .4byte BattleText_AlreadyBurned - .4byte BattleText_StatNoLower - .4byte BattleText_BlocksOther2 - .4byte BattleText_WoreOff - .4byte BattleText_RaisedDefenseLittle - .4byte BattleText_RaisedSpDefLittle - .4byte BattleText_BrokeWall - .4byte BattleText_PreventedOther2 - .4byte BattleText_CuredOfProblem - .4byte BattleText_AttackingCantEscape - .4byte BattleText_Obtained1 - .4byte BattleText_Obtained2 - .4byte BattleText_Obtained3 - .4byte BattleText_NoEffect - .4byte BattleText_NoEffectOn - - .align 1 -gMissStrings:: @ 8401508 -@ Each entry refers to a text pointer in gBattleStringsTable, but the values are offset -@ by 0xc. For example, 0x0017 refers to BattleText_AttackMissed because it is the -@ 11th entry in the pointer table. - .2byte BATTLE_TEXT_AttackMissed - .2byte BATTLE_TEXT_ProtectedItself - .2byte BATTLE_TEXT_AvoidedAttack - .2byte BATTLE_TEXT_AvoidedDamage - .2byte BATTLE_TEXT_GroundMoveNegate - -BattleTextList_401512:: @ 8401512 - .2byte BATTLE_TEXT_CantEscape2 - .2byte BATTLE_TEXT_BirchDontLeaveMe - .2byte BATTLE_TEXT_PreventEscape - .2byte BATTLE_TEXT_CantEscape - .2byte BATTLE_TEXT_AttackingCantEscape - -BattleTextList_40151C:: @ 840151C - .2byte BATTLE_TEXT_RainStart - .2byte BATTLE_TEXT_PourStart - .2byte BATTLE_TEXT_Failed - .2byte BATTLE_TEXT_SandBrewed - .2byte BATTLE_TEXT_SunBright - .2byte BATTLE_TEXT_HailStart - -BattleTextList_401528:: @ 8401528 - .2byte BATTLE_TEXT_SandRages - .2byte BATTLE_TEXT_HailCont - -BattleTextList_40152C:: @ 840152C - .2byte BATTLE_TEXT_SandBuffeted - .2byte BATTLE_TEXT_HailStricken - -BattleTextList_401530:: @ 8401530 - .2byte BATTLE_TEXT_SandSubsided - .2byte BATTLE_TEXT_HailStop - -BattleTextList_401534:: @ 8401534 - .2byte BATTLE_TEXT_RainCont1 - .2byte BATTLE_TEXT_PourCont - .2byte BATTLE_TEXT_RainStop - -BattleTextList_40153A:: @ 840153A - .2byte BATTLE_TEXT_ProtectedItself2 - .2byte BATTLE_TEXT_BracedItself - .2byte BATTLE_TEXT_Failed - -BattleTextList_401540:: @ 8401540 - .2byte BATTLE_TEXT_Failed - .2byte BATTLE_TEXT_RaisedDefense - .2byte BATTLE_TEXT_RaisedDefenseLittle - .2byte BATTLE_TEXT_RaisedSpDef - .2byte BATTLE_TEXT_RaisedSpDefLittle - .2byte BATTLE_TEXT_CoveredVeil - -BattleTextList_40154C:: @ 840154C - .2byte BATTLE_TEXT_WasSeeded - .2byte BATTLE_TEXT_EvadedAttack - .2byte BATTLE_TEXT_DoesntAffect - .2byte BATTLE_TEXT_HealthSapped - .2byte BATTLE_TEXT_OozeSuckup - -BattleTextList_401556:: @ 8401556 - .2byte BATTLE_TEXT_WentToSleep - .2byte BATTLE_TEXT_SpeltHealthy - -BattleTextList_40155A:: @ 840155A - .2byte BATTLE_TEXT_UproarMaking - .2byte BATTLE_TEXT_CalmedDown - -BattleTextList_40155E:: @ 840155E - .2byte BATTLE_TEXT_Stockpiled - .2byte BATTLE_TEXT_StockpiledCant - -BattleTextList_401562:: @ 8401562 - .2byte BATTLE_TEXT_WokeUp - .2byte BATTLE_TEXT_UproarWoke - -BattleTextList_401566:: @ 8401566 - .2byte BATTLE_TEXT_SwallowFail - .2byte BATTLE_TEXT_HPFull - -BattleTextList_40156A:: @ 840156A - .2byte BATTLE_TEXT_UproarCantSleep2 - .2byte BATTLE_TEXT_UproarKeptAwake - .2byte BATTLE_TEXT_StayedAwake - -BattleTextList_401570:: @ 8401570 - .2byte BATTLE_TEXT_UnknownString7 - .2byte BATTLE_TEXT_UnknownString3 - .2byte BATTLE_TEXT_AttackingStatNoHigher - .2byte BATTLE_TEXT_Terminator2 - .2byte BATTLE_TEXT_UnknownString4 - .2byte BATTLE_TEXT_HustleUse - -BattleTextList_40157C:: @ 840157C - .2byte BATTLE_TEXT_UnknownString5 - .2byte BATTLE_TEXT_UnknownString6 - .2byte BATTLE_TEXT_DefendingStatNoHigher - .2byte BATTLE_TEXT_Terminator2 - -BattleTextList_401584:: @ 8401584 - .2byte BATTLE_TEXT_WhipWhirlwind - .2byte BATTLE_TEXT_TookSunlight - .2byte BATTLE_TEXT_LoweredHead - .2byte BATTLE_TEXT_IsGlowing - .2byte BATTLE_TEXT_FlewHigh - .2byte BATTLE_TEXT_DugHole - .2byte BATTLE_TEXT_HidUnderwater - .2byte BATTLE_TEXT_SprangUp - -BattleTextList_401594:: @ 8401594 - .2byte BATTLE_TEXT_SqueezedBind - .2byte BATTLE_TEXT_Wrapped - .2byte BATTLE_TEXT_TrappedVortex - .2byte BATTLE_TEXT_Clamped - .2byte BATTLE_TEXT_TrappedVortex - .2byte BATTLE_TEXT_SandTombTrapped - -BattleTextList_4015A0:: @ 84015A0 - .2byte BATTLE_TEXT_MistShroud - .2byte BATTLE_TEXT_Failed - -BattleTextList_4015A4:: @ 84015A4 - .2byte BATTLE_TEXT_GetPumped - .2byte BATTLE_TEXT_Failed - -BattleTextList_4015A8:: @ 84015A8 - .2byte BATTLE_TEXT_Transformed - .2byte BATTLE_TEXT_Failed - -BattleTextList_4015AC:: @ 84015AC - .2byte BATTLE_TEXT_SubMade - .2byte BATTLE_TEXT_SubWeak - -BattleTextList_4015B0:: @ 84015B0 - .2byte BATTLE_TEXT_Poisoned - .2byte BATTLE_TEXT_Poisoned2 - -BattleTextList_4015B4:: @ 84015B4 - .2byte BATTLE_TEXT_Paralyzed - .2byte BATTLE_TEXT_Paralyzed2 - -BattleTextList_4015B8:: @ 84015B8 - .2byte BATTLE_TEXT_FellAsleep - .2byte BATTLE_TEXT_MadeAsleep - -BattleTextList_4015BC:: @ 84015BC - .2byte BATTLE_TEXT_Burned - .2byte BATTLE_TEXT_Burned2 - -BattleTextList_4015C0:: @ 84015C0 - .2byte BATTLE_TEXT_Frozen - .2byte BATTLE_TEXT_Frozen2 - -BattleTextList_4015C4:: @ 84015C4 - .2byte BATTLE_TEXT_AttackingDefrosted - .2byte BATTLE_TEXT_Defrosted - -BattleTextList_4015C8:: @ 84015C8 - .2byte BATTLE_TEXT_AttackMissed - .2byte BATTLE_TEXT_Unaffected - .2byte BATTLE_TEXT_FellLove - .2byte BATTLE_TEXT_InfatuatedPoke - -BattleTextList_4015D0:: @ 84015D0 - .2byte BATTLE_TEXT_EnergyDrained - .2byte BATTLE_TEXT_OozeSuckup - -BattleTextList_4015D4:: @ 84015D4 - .2byte BATTLE_TEXT_ElecWeakened - .2byte BATTLE_TEXT_FireWeakened - -BattleTextList_4015D8:: @ 84015D8 - .2byte BATTLE_TEXT_BellChime - .2byte BATTLE_TEXT_BellChime - .2byte BATTLE_TEXT_BellChime - .2byte BATTLE_TEXT_BellChime - .2byte BATTLE_TEXT_SoothingAroma - -BattleTextList_4015E2:: @ 84015E2 - .2byte BATTLE_TEXT_ForesawAttack - .2byte BATTLE_TEXT_ChoseDestiny - -BattleTextList_4015E6:: @ 84015E6 - .2byte BATTLE_TEXT_BallBrokeOhNo - .2byte BATTLE_TEXT_BallBrokeAppeared - .2byte BATTLE_TEXT_BallBrokeAlmost - .2byte BATTLE_TEXT_BallBrokeSoClose - -BattleTextList_4015EE:: @ 84015EE - .2byte BATTLE_TEXT_Raining - .2byte BATTLE_TEXT_Raining - .2byte BATTLE_TEXT_Raining - .2byte BATTLE_TEXT_Raining - .2byte BATTLE_TEXT_Raining - .2byte BATTLE_TEXT_Raining - .2byte BATTLE_TEXT_Raining - .2byte BATTLE_TEXT_Raining - .2byte BATTLE_TEXT_Sandstorm - .2byte BATTLE_TEXT_Raining - .2byte BATTLE_TEXT_Raining - .2byte BATTLE_TEXT_Raining - .2byte BATTLE_TEXT_SunStrong - .2byte BATTLE_TEXT_Raining - .2byte BATTLE_TEXT_Raining - .2byte BATTLE_TEXT_Raining - -BattleTextList_40160E:: @ 840160E - .2byte BATTLE_TEXT_LoafingAround - .2byte BATTLE_TEXT_WontObey - .2byte BATTLE_TEXT_TurnedAway - .2byte BATTLE_TEXT_NotNotice - -BattleTextList_401616:: @ 8401616 - .2byte BATTLE_TEXT_CreptCloser - .2byte BATTLE_TEXT_CantGetCloser - -BattleTextList_40161A:: @ 840161A - .2byte BATTLE_TEXT_CuriousAbout - .2byte BATTLE_TEXT_EnthralledBy - .2byte BATTLE_TEXT_IgnoredThing - -BattleTextList_401620:: @ 8401620 - .2byte BATTLE_TEXT_CuredConfusion - .2byte BATTLE_TEXT_CuredParalysis - .2byte BATTLE_TEXT_CuredFreeze - .2byte BATTLE_TEXT_CuredBurn - .2byte BATTLE_TEXT_CuredPoison - .2byte BATTLE_TEXT_CuredSleep - -BattleTextList_40162C:: @ 840162C - .2byte BATTLE_TEXT_CuredStatus - .2byte BATTLE_TEXT_NormalizedStatus - -BattleTextList_401630:: @ 8401630 - .2byte BATTLE_TEXT_PreventedBurn - .2byte BATTLE_TEXT_PreventedOther2 - .2byte BATTLE_TEXT_NoEffectOn - -BattleTextList_401636:: @ 8401636 - .2byte BATTLE_TEXT_PreventedPara - .2byte BATTLE_TEXT_PreventedOther2 - .2byte BATTLE_TEXT_NoEffectOn - -BattleTextList_40163C:: @ 840163C - .2byte BATTLE_TEXT_PreventedPoison - .2byte BATTLE_TEXT_PreventedOther2 - .2byte BATTLE_TEXT_NoEffectOn - -BattleTextList_401642:: @ 8401642 - .2byte BATTLE_TEXT_Obtained1 - .2byte BATTLE_TEXT_Obtained2 - .2byte BATTLE_TEXT_Obtained3 - -BattleTextList_401648:: @ 8401648 - .2byte BATTLE_TEXT_RaisedFirePower - .2byte BATTLE_TEXT_MadeIneffective - -gTrappingMoves:: @ 840164C - .2byte MOVE_BIND - .2byte MOVE_WRAP - .2byte MOVE_FIRE_SPIN - .2byte MOVE_CLAMP - .2byte MOVE_WHIRLPOOL - .2byte MOVE_SAND_TOMB - .2byte 0xFFFF - - .align 2 -gUnknown_0840165C:: @ 840165C - .4byte BattleText_HP - .4byte BattleText_SpAtk - .4byte BattleText_Attack - .4byte BattleText_SpDef - .4byte BattleText_Defense - .4byte BattleStatText_Speed - - .align 2 -gUnknown_08401674:: @ 8401674 - .4byte BattleText_Normal - .4byte BattleText_Fighting - .4byte BattleText_Flying - .4byte BattleText_Poison - .4byte BattleText_Ground - .4byte BattleText_Rock - .4byte BattleText_Bug - .4byte BattleText_Ghost - .4byte BattleText_Steel - .4byte BattleText_Typeless - .4byte BattleText_Fire - .4byte BattleText_Water - .4byte BattleText_Grass - .4byte BattleText_Electric - .4byte BattleText_Psychic - .4byte BattleText_Ice - .4byte BattleText_Dragon - .4byte BattleText_Dark diff --git a/data/text_window.s b/data/text_window.s deleted file mode 100644 index d8a3dbb38..000000000 --- a/data/text_window.s +++ /dev/null @@ -1,31 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gUnknown_083761F0:: @ 83761F0 - .4byte gTextWindowFrame1_Gfx, gTextWindowFrame1_Pal - .4byte gTextWindowFrame2_Gfx, gTextWindowFrame2_Pal - .4byte gTextWindowFrame3_Gfx, gTextWindowFrame3_Pal - .4byte gTextWindowFrame4_Gfx, gTextWindowFrame4_Pal - .4byte gTextWindowFrame5_Gfx, gTextWindowFrame5_Pal - .4byte gTextWindowFrame6_Gfx, gTextWindowFrame6_Pal - .4byte gTextWindowFrame7_Gfx, gTextWindowFrame7_Pal - .4byte gTextWindowFrame8_Gfx, gTextWindowFrame8_Pal - .4byte gTextWindowFrame9_Gfx, gTextWindowFrame9_Pal - .4byte gTextWindowFrame10_Gfx, gTextWindowFrame10_Pal - .4byte gTextWindowFrame11_Gfx, gTextWindowFrame11_Pal - .4byte gTextWindowFrame12_Gfx, gTextWindowFrame12_Pal - .4byte gTextWindowFrame13_Gfx, gTextWindowFrame13_Pal - .4byte gTextWindowFrame14_Gfx, gTextWindowFrame14_Pal - .4byte gTextWindowFrame15_Gfx, gTextWindowFrame15_Pal - .4byte gTextWindowFrame16_Gfx, gTextWindowFrame16_Pal - .4byte gTextWindowFrame17_Gfx, gTextWindowFrame17_Pal - .4byte gTextWindowFrame18_Gfx, gTextWindowFrame18_Pal - .4byte gTextWindowFrame19_Gfx, gTextWindowFrame19_Pal - .4byte gTextWindowFrame20_Gfx, gTextWindowFrame20_Pal - - .align 1 -gMessageBoxTilemap:: @ 8376290 - .incbin "graphics/text_window/message_box_map.bin" diff --git a/data/tileset_anim.s b/data/tileset_anim.s deleted file mode 100644 index e34d50953..000000000 --- a/data/tileset_anim.s +++ /dev/null @@ -1,637 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -TilesetAnimTiles_General_0_1: @ 8376D84 - .incbin "data/tilesets/primary/general/anim/0/1.4bpp" - - .align 2 -TilesetAnimTiles_General_0_0: @ 8376E04 - .incbin "data/tilesets/primary/general/anim/0/0.4bpp" - - .align 2 -TilesetAnimTiles_General_0_2: @ 8376E84 - .incbin "data/tilesets/primary/general/anim/0/2.4bpp" - - .space 32 - - .align 2 -gTilesetAnimTable_General_0:: @ 8376F24 - .4byte TilesetAnimTiles_General_0_0 - .4byte TilesetAnimTiles_General_0_1 - .4byte TilesetAnimTiles_General_0_0 - .4byte TilesetAnimTiles_General_0_2 - - .align 2 -TilesetAnimTiles_General_1_0: @ 8376F34 - .incbin "data/tilesets/primary/general/anim/1/0.4bpp" - - .align 2 -TilesetAnimTiles_General_1_1: @ 83772F4 - .incbin "data/tilesets/primary/general/anim/1/1.4bpp" - - .align 2 -TilesetAnimTiles_General_1_2: @ 83776B4 - .incbin "data/tilesets/primary/general/anim/1/2.4bpp" - - .align 2 -TilesetAnimTiles_General_1_3: @ 8377A74 - .incbin "data/tilesets/primary/general/anim/1/3.4bpp" - - .align 2 -TilesetAnimTiles_General_1_4: @ 8377E34 - .incbin "data/tilesets/primary/general/anim/1/4.4bpp" - - .align 2 -TilesetAnimTiles_General_1_5: @ 83781F4 - .incbin "data/tilesets/primary/general/anim/1/5.4bpp" - - .align 2 -TilesetAnimTiles_General_1_6: @ 83785B4 - .incbin "data/tilesets/primary/general/anim/1/6.4bpp" - - .align 2 -TilesetAnimTiles_General_1_7: @ 8378974 - .incbin "data/tilesets/primary/general/anim/1/7.4bpp" - - .align 2 -gTilesetAnimTable_General_1:: @ 8378D34 - .4byte TilesetAnimTiles_General_1_0 - .4byte TilesetAnimTiles_General_1_1 - .4byte TilesetAnimTiles_General_1_2 - .4byte TilesetAnimTiles_General_1_3 - .4byte TilesetAnimTiles_General_1_4 - .4byte TilesetAnimTiles_General_1_5 - .4byte TilesetAnimTiles_General_1_6 - .4byte TilesetAnimTiles_General_1_7 - - .align 2 -TilesetAnimTiles_General_2_0: @ 8378D54 - .incbin "data/tilesets/primary/general/anim/2/0.4bpp" - - .align 2 -TilesetAnimTiles_General_2_1: @ 8378E94 - .incbin "data/tilesets/primary/general/anim/2/1.4bpp" - - .align 2 -TilesetAnimTiles_General_2_2: @ 8378FD4 - .incbin "data/tilesets/primary/general/anim/2/2.4bpp" - - .align 2 -TilesetAnimTiles_General_2_3: @ 8379114 - .incbin "data/tilesets/primary/general/anim/2/3.4bpp" - - .align 2 -TilesetAnimTiles_General_2_4: @ 8379254 - .incbin "data/tilesets/primary/general/anim/2/4.4bpp" - - .align 2 -TilesetAnimTiles_General_2_5: @ 8379394 - .incbin "data/tilesets/primary/general/anim/2/5.4bpp" - - .align 2 -TilesetAnimTiles_General_2_6: @ 83794D4 - .incbin "data/tilesets/primary/general/anim/2/6.4bpp" - - .align 2 -gTilesetAnimTable_General_2:: @ 8379614 - .4byte TilesetAnimTiles_General_2_0 - .4byte TilesetAnimTiles_General_2_1 - .4byte TilesetAnimTiles_General_2_2 - .4byte TilesetAnimTiles_General_2_3 - .4byte TilesetAnimTiles_General_2_4 - .4byte TilesetAnimTiles_General_2_5 - .4byte TilesetAnimTiles_General_2_6 - .4byte TilesetAnimTiles_General_2_0 - - .align 2 -TilesetAnimTiles_General_3_0: @ 8379634 - .incbin "data/tilesets/primary/general/anim/3/0.4bpp" - - .align 2 -TilesetAnimTiles_General_3_1: @ 83796F4 - .incbin "data/tilesets/primary/general/anim/3/1.4bpp" - - .align 2 -TilesetAnimTiles_General_3_2: @ 83797B4 - .incbin "data/tilesets/primary/general/anim/3/2.4bpp" - - .align 2 -TilesetAnimTiles_General_3_3: @ 8379874 - .incbin "data/tilesets/primary/general/anim/3/3.4bpp" - - .align 2 -gTilesetAnimTable_General_3:: @ 8379934 - .4byte TilesetAnimTiles_General_3_0 - .4byte TilesetAnimTiles_General_3_1 - .4byte TilesetAnimTiles_General_3_2 - .4byte TilesetAnimTiles_General_3_3 - - .align 2 -TilesetAnimTiles_General_4_0: @ 8379944 - .incbin "data/tilesets/primary/general/anim/4/0.4bpp" - - .align 2 -TilesetAnimTiles_General_4_1: @ 8379A84 - .incbin "data/tilesets/primary/general/anim/4/1.4bpp" - - .align 2 -TilesetAnimTiles_General_4_2: @ 8379BC4 - .incbin "data/tilesets/primary/general/anim/4/2.4bpp" - - .align 2 -TilesetAnimTiles_General_4_3: @ 8379D04 - .incbin "data/tilesets/primary/general/anim/4/3.4bpp" - - .align 2 -gTilesetAnimTable_General_4:: @ 8379E44 - .4byte TilesetAnimTiles_General_4_0 - .4byte TilesetAnimTiles_General_4_1 - .4byte TilesetAnimTiles_General_4_2 - .4byte TilesetAnimTiles_General_4_3 - - .align 2 -TilesetAnimTiles_Lavaridge_0: @ 8379E54 - .incbin "data/tilesets/secondary/lavaridge/anim/0.4bpp" - - .align 2 -TilesetAnimTiles_Lavaridge_1: @ 8379ED4 - .incbin "data/tilesets/secondary/lavaridge/anim/1.4bpp" - - .align 2 -TilesetAnimTiles_Lavaridge_2: @ 8379F54 - .incbin "data/tilesets/secondary/lavaridge/anim/2.4bpp" - - .align 2 -TilesetAnimTiles_Lavaridge_3: @ 8379FD4 - .incbin "data/tilesets/secondary/lavaridge/anim/3.4bpp" - - .align 2 -gTilesetAnimTable_Lavaridge:: @ 837A054 - .4byte TilesetAnimTiles_Lavaridge_0 - .4byte TilesetAnimTiles_Lavaridge_1 - .4byte TilesetAnimTiles_Lavaridge_2 - .4byte TilesetAnimTiles_Lavaridge_3 - - .align 2 -TilesetAnimTiles_Pacifidlog_0_0: @ 837A064 - .incbin "data/tilesets/secondary/pacifidlog/anim/0/0.4bpp" - - .align 2 -TilesetAnimTiles_Pacifidlog_0_1: @ 837A424 - .incbin "data/tilesets/secondary/pacifidlog/anim/0/1.4bpp" - - .align 2 -TilesetAnimTiles_Pacifidlog_0_2: @ 837A7E4 - .incbin "data/tilesets/secondary/pacifidlog/anim/0/2.4bpp" - - .align 2 -gTilesetAnimTable_Pacifidlog_0:: @ 837ABA4 - .4byte TilesetAnimTiles_Pacifidlog_0_0 - .4byte TilesetAnimTiles_Pacifidlog_0_1 - .4byte TilesetAnimTiles_Pacifidlog_0_2 - .4byte TilesetAnimTiles_Pacifidlog_0_1 - - .align 2 -TilesetAnimTiles_Underwater_0: @ 837ABB4 - .incbin "data/tilesets/secondary/underwater/anim/0.4bpp" - - .align 2 -TilesetAnimTiles_Underwater_1: @ 837AC34 - .incbin "data/tilesets/secondary/underwater/anim/1.4bpp" - - .align 2 -TilesetAnimTiles_Underwater_2: @ 837ACB4 - .incbin "data/tilesets/secondary/underwater/anim/2.4bpp" - - .align 2 -TilesetAnimTiles_Underwater_3: @ 837AD34 - .incbin "data/tilesets/secondary/underwater/anim/3.4bpp" - - .align 2 -gTilesetAnimTable_Underwater:: @ 837ADB4 - .4byte TilesetAnimTiles_Underwater_0 - .4byte TilesetAnimTiles_Underwater_1 - .4byte TilesetAnimTiles_Underwater_2 - .4byte TilesetAnimTiles_Underwater_3 - - .align 2 -TilesetAnimTiles_Pacifidlog_1_0: @ 837ADC4 - .incbin "data/tilesets/secondary/pacifidlog/anim/1/0.4bpp" - - .align 2 -TilesetAnimTiles_Pacifidlog_1_1: @ 837AEC4 - .incbin "data/tilesets/secondary/pacifidlog/anim/1/1.4bpp" - - .align 2 -TilesetAnimTiles_Pacifidlog_1_2: @ 837AFC4 - .incbin "data/tilesets/secondary/pacifidlog/anim/1/2.4bpp" - - .align 2 -TilesetAnimTiles_Pacifidlog_1_3: @ 837B0C4 - .incbin "data/tilesets/secondary/pacifidlog/anim/1/3.4bpp" - - .align 2 -TilesetAnimTiles_Pacifidlog_1_4: @ 837B1C4 - .incbin "data/tilesets/secondary/pacifidlog/anim/1/4.4bpp" - - .align 2 -TilesetAnimTiles_Pacifidlog_1_5: @ 837B2C4 - .incbin "data/tilesets/secondary/pacifidlog/anim/1/5.4bpp" - - .align 2 -TilesetAnimTiles_Pacifidlog_1_6: @ 837B3C4 - .incbin "data/tilesets/secondary/pacifidlog/anim/1/6.4bpp" - - .align 2 -TilesetAnimTiles_Pacifidlog_1_7: @ 837B4C4 - .incbin "data/tilesets/secondary/pacifidlog/anim/1/7.4bpp" - - .align 2 -gTilesetAnimTable_Pacifidlog_1:: @ 837B5C4 - .4byte TilesetAnimTiles_Pacifidlog_1_0 - .4byte TilesetAnimTiles_Pacifidlog_1_1 - .4byte TilesetAnimTiles_Pacifidlog_1_2 - .4byte TilesetAnimTiles_Pacifidlog_1_3 - .4byte TilesetAnimTiles_Pacifidlog_1_4 - .4byte TilesetAnimTiles_Pacifidlog_1_5 - .4byte TilesetAnimTiles_Pacifidlog_1_6 - .4byte TilesetAnimTiles_Pacifidlog_1_7 - - .align 2 -TilesetAnimTiles_Mauville_0_0: @ 837B5E4 - .incbin "data/tilesets/secondary/mauville/anim/0/0.4bpp" - - .align 2 -TilesetAnimTiles_Mauville_0_1: @ 837B664 - .incbin "data/tilesets/secondary/mauville/anim/0/1.4bpp" - - .align 2 -TilesetAnimTiles_Mauville_0_2: @ 837B6E4 - .incbin "data/tilesets/secondary/mauville/anim/0/2.4bpp" - - .align 2 -TilesetAnimTiles_Mauville_0_3: @ 837B764 - .incbin "data/tilesets/secondary/mauville/anim/0/3.4bpp" - - .align 2 -TilesetAnimTiles_Mauville_0_4: @ 837B7E4 - .incbin "data/tilesets/secondary/mauville/anim/0/4.4bpp" - - .align 2 -TilesetAnimTiles_Mauville_1_0: @ 837B864 - .incbin "data/tilesets/secondary/mauville/anim/1/0.4bpp" - - .align 2 -TilesetAnimTiles_Mauville_1_1: @ 837B8E4 - .incbin "data/tilesets/secondary/mauville/anim/1/1.4bpp" - - .align 2 -TilesetAnimTiles_Mauville_1_2: @ 837B964 - .incbin "data/tilesets/secondary/mauville/anim/1/2.4bpp" - - .align 2 -TilesetAnimTiles_Mauville_1_3: @ 837B9E4 - .incbin "data/tilesets/secondary/mauville/anim/1/3.4bpp" - - .align 2 -TilesetAnimTiles_Mauville_1_4: @ 837BA64 - .incbin "data/tilesets/secondary/mauville/anim/1/4.4bpp" - - .align 2 -gUnknown_0837BAE4:: @ 837BAE4 - .4byte 0x06004C00 - .4byte 0x06004C80 - .4byte 0x06004D00 - .4byte 0x06004D80 - .4byte 0x06004E00 - .4byte 0x06004E80 - .4byte 0x06004F00 - .4byte 0x06004F80 - - .align 2 -gUnknown_0837BB04:: @ 837BB04 - .4byte 0x06005000 - .4byte 0x06005080 - .4byte 0x06005100 - .4byte 0x06005180 - .4byte 0x06005200 - .4byte 0x06005280 - .4byte 0x06005300 - .4byte 0x06005380 - - .align 2 -gTilesetAnimTable_Mauville_0A:: @ 837BB24 - .4byte TilesetAnimTiles_Mauville_0_0 - .4byte TilesetAnimTiles_Mauville_0_0 - .4byte TilesetAnimTiles_Mauville_0_1 - .4byte TilesetAnimTiles_Mauville_0_2 - .4byte TilesetAnimTiles_Mauville_0_3 - .4byte TilesetAnimTiles_Mauville_0_3 - .4byte TilesetAnimTiles_Mauville_0_3 - .4byte TilesetAnimTiles_Mauville_0_3 - .4byte TilesetAnimTiles_Mauville_0_3 - .4byte TilesetAnimTiles_Mauville_0_3 - .4byte TilesetAnimTiles_Mauville_0_2 - .4byte TilesetAnimTiles_Mauville_0_1 - - .align 2 -gTilesetAnimTable_Mauville_1A:: @ 837BB54 - .4byte TilesetAnimTiles_Mauville_1_0 - .4byte TilesetAnimTiles_Mauville_1_0 - .4byte TilesetAnimTiles_Mauville_1_1 - .4byte TilesetAnimTiles_Mauville_1_2 - .4byte TilesetAnimTiles_Mauville_1_3 - .4byte TilesetAnimTiles_Mauville_1_3 - .4byte TilesetAnimTiles_Mauville_1_3 - .4byte TilesetAnimTiles_Mauville_1_3 - .4byte TilesetAnimTiles_Mauville_1_3 - .4byte TilesetAnimTiles_Mauville_1_3 - .4byte TilesetAnimTiles_Mauville_1_2 - .4byte TilesetAnimTiles_Mauville_1_1 - - .align 2 -gTilesetAnimTable_Mauville_0B:: @ 837BB84 - .4byte TilesetAnimTiles_Mauville_0_0 - .4byte TilesetAnimTiles_Mauville_0_0 - .4byte TilesetAnimTiles_Mauville_0_4 - .4byte TilesetAnimTiles_Mauville_0_4 - - .align 2 -gTilesetAnimTable_Mauville_1B:: @ 837BB94 - .4byte TilesetAnimTiles_Mauville_1_0 - .4byte TilesetAnimTiles_Mauville_1_0 - .4byte TilesetAnimTiles_Mauville_1_4 - .4byte TilesetAnimTiles_Mauville_1_4 - - .align 2 -TilesetAnimTiles_Rustboro_0_0: @ 837BBA4 - .incbin "data/tilesets/secondary/rustboro/anim/0/0.4bpp" - - .align 2 -TilesetAnimTiles_Rustboro_0_1: @ 837BC24 - .incbin "data/tilesets/secondary/rustboro/anim/0/1.4bpp" - - .align 2 -TilesetAnimTiles_Rustboro_0_2: @ 837BCA4 - .incbin "data/tilesets/secondary/rustboro/anim/0/2.4bpp" - - .align 2 -TilesetAnimTiles_Rustboro_0_3: @ 837BD24 - .incbin "data/tilesets/secondary/rustboro/anim/0/3.4bpp" - - .align 2 -TilesetAnimTiles_Rustboro_0_4: @ 837BDA4 - .incbin "data/tilesets/secondary/rustboro/anim/0/4.4bpp" - - .align 2 -TilesetAnimTiles_Rustboro_0_5: @ 837BE24 - .incbin "data/tilesets/secondary/rustboro/anim/0/5.4bpp" - - .align 2 -TilesetAnimTiles_Rustboro_0_6: @ 837BEA4 - .incbin "data/tilesets/secondary/rustboro/anim/0/6.4bpp" - - .align 2 -TilesetAnimTiles_Rustboro_0_7: @ 837BF24 - .incbin "data/tilesets/secondary/rustboro/anim/0/7.4bpp" - - .align 2 -gUnknown_0837BFA4:: @ 837BFA4 - .4byte 0x06005000 - .4byte 0x06005080 - .4byte 0x06005100 - .4byte 0x06005180 - .4byte 0x06005200 - .4byte 0x06005280 - .4byte 0x06005300 - .4byte 0x06005380 - - .align 2 -gTilesetAnimTable_Rustboro_0:: @ 837BFC4 - .4byte TilesetAnimTiles_Rustboro_0_0 - .4byte TilesetAnimTiles_Rustboro_0_1 - .4byte TilesetAnimTiles_Rustboro_0_2 - .4byte TilesetAnimTiles_Rustboro_0_3 - .4byte TilesetAnimTiles_Rustboro_0_4 - .4byte TilesetAnimTiles_Rustboro_0_5 - .4byte TilesetAnimTiles_Rustboro_0_6 - .4byte TilesetAnimTiles_Rustboro_0_7 - - .align 2 -TilesetAnimTiles_Rustboro_1_0: @ 837BFE4 - .incbin "data/tilesets/secondary/rustboro/anim/1/0.4bpp" - - .align 2 -TilesetAnimTiles_Rustboro_1_1: @ 837C064 - .incbin "data/tilesets/secondary/rustboro/anim/1/1.4bpp" - - .align 2 -gTilesetAnimTable_Rustboro_1:: @ 837C0E4 - .4byte TilesetAnimTiles_Rustboro_1_0 - .4byte TilesetAnimTiles_Rustboro_1_1 - - .align 2 -TilesetAnimTiles_Cave_0: @ 837C0EC - .incbin "data/tilesets/secondary/cave/anim/0.4bpp" - - .align 2 -TilesetAnimTiles_Cave_1: @ 837C16C - .incbin "data/tilesets/secondary/cave/anim/1.4bpp" - - .align 2 -TilesetAnimTiles_Cave_2: @ 837C1EC - .incbin "data/tilesets/secondary/cave/anim/2.4bpp" - - .align 2 -TilesetAnimTiles_Cave_3: @ 837C26C - .incbin "data/tilesets/secondary/cave/anim/3.4bpp" - - .incbin "data/tilesets/secondary/cave/anim/unused/0.4bpp" - .incbin "data/tilesets/secondary/cave/anim/unused/1.4bpp" - .incbin "data/tilesets/secondary/cave/anim/unused/2.4bpp" - .incbin "data/tilesets/secondary/cave/anim/unused/3.4bpp" - - .space 32 - - .align 2 -gTilesetAnimTable_Cave:: @ 837C50C - .4byte TilesetAnimTiles_Cave_0 - .4byte TilesetAnimTiles_Cave_1 - .4byte TilesetAnimTiles_Cave_2 - .4byte TilesetAnimTiles_Cave_3 - - .align 2 -TilesetAnimTiles_EverGrande_0: @ 837C51C - .incbin "data/tilesets/secondary/ever_grande/anim/0.4bpp" - - .align 2 -TilesetAnimTiles_EverGrande_1: @ 837C59C - .incbin "data/tilesets/secondary/ever_grande/anim/1.4bpp" - - .align 2 -TilesetAnimTiles_EverGrande_2: @ 837C61C - .incbin "data/tilesets/secondary/ever_grande/anim/2.4bpp" - - .align 2 -TilesetAnimTiles_EverGrande_3: @ 837C69C - .incbin "data/tilesets/secondary/ever_grande/anim/3.4bpp" - - .align 2 -TilesetAnimTiles_EverGrande_4: @ 837C71C - .incbin "data/tilesets/secondary/ever_grande/anim/4.4bpp" - - .align 2 -TilesetAnimTiles_EverGrande_5: @ 837C79C - .incbin "data/tilesets/secondary/ever_grande/anim/5.4bpp" - - .align 2 -TilesetAnimTiles_EverGrande_6: @ 837C81C - .incbin "data/tilesets/secondary/ever_grande/anim/6.4bpp" - - .align 2 -TilesetAnimTiles_EverGrande_7: @ 837C89C - .incbin "data/tilesets/secondary/ever_grande/anim/7.4bpp" - - .space 32 - - .align 2 -gUnknown_0837C93C:: @ 837C93C - .4byte 0x06005C00 - .4byte 0x06005C80 - .4byte 0x06005D00 - .4byte 0x06005D80 - .4byte 0x06005E00 - .4byte 0x06005E80 - .4byte 0x06005F00 - .4byte 0x06005F80 - - .align 2 -gTilesetAnimTable_EverGrande:: @ 837C95C - .4byte TilesetAnimTiles_EverGrande_0 - .4byte TilesetAnimTiles_EverGrande_1 - .4byte TilesetAnimTiles_EverGrande_2 - .4byte TilesetAnimTiles_EverGrande_3 - .4byte TilesetAnimTiles_EverGrande_4 - .4byte TilesetAnimTiles_EverGrande_5 - .4byte TilesetAnimTiles_EverGrande_6 - .4byte TilesetAnimTiles_EverGrande_7 - - .align 2 -TilesetAnimTiles_Building_0: @ 837C97C - .incbin "data/tilesets/primary/building/anim/0.4bpp" - - .align 2 -TilesetAnimTiles_Building_1: @ 837C9FC - .incbin "data/tilesets/primary/building/anim/1.4bpp" - - .align 2 -gTilesetAnimTable_Building:: @ 837CA7C - .4byte TilesetAnimTiles_Building_0 - .4byte TilesetAnimTiles_Building_1 - - .align 2 -TilesetAnimTiles_SootopolisGym_0_0: @ 837CA84 - .incbin "data/tilesets/secondary/sootopolis_gym/anim/0/0.4bpp" - - .align 2 -TilesetAnimTiles_SootopolisGym_0_1: @ 837CC04 - .incbin "data/tilesets/secondary/sootopolis_gym/anim/0/1.4bpp" - - .align 2 -TilesetAnimTiles_SootopolisGym_0_2: @ 837CD84 - .incbin "data/tilesets/secondary/sootopolis_gym/anim/0/2.4bpp" - - .align 2 -TilesetAnimTiles_SootopolisGym_1_0: @ 837CF04 - .incbin "data/tilesets/secondary/sootopolis_gym/anim/1/0.4bpp" - - .align 2 -TilesetAnimTiles_SootopolisGym_1_1: @ 837D184 - .incbin "data/tilesets/secondary/sootopolis_gym/anim/1/1.4bpp" - - .align 2 -TilesetAnimTiles_SootopolisGym_1_2: @ 837D404 - .incbin "data/tilesets/secondary/sootopolis_gym/anim/1/2.4bpp" - - .align 2 -gTilesetAnimTable_SootopolisGym_0:: @ 837D684 - .4byte TilesetAnimTiles_SootopolisGym_0_0 - .4byte TilesetAnimTiles_SootopolisGym_0_1 - .4byte TilesetAnimTiles_SootopolisGym_0_2 - - .align 2 -gTilesetAnimTable_SootopolisGym_1:: @ 837D690 - .4byte TilesetAnimTiles_SootopolisGym_1_0 - .4byte TilesetAnimTiles_SootopolisGym_1_1 - .4byte TilesetAnimTiles_SootopolisGym_1_2 - - .align 2 -TilesetAnimTiles_EliteFour_1_0: @ 837D69C - .incbin "data/tilesets/secondary/elite_four/anim/1/0.4bpp" - - .align 2 -TilesetAnimTiles_EliteFour_1_1: @ 837D71C - .incbin "data/tilesets/secondary/elite_four/anim/1/1.4bpp" - - .align 2 -TilesetAnimTiles_EliteFour_0_0: @ 837D79C - .incbin "data/tilesets/secondary/elite_four/anim/0/0.4bpp" - - .align 2 -TilesetAnimTiles_EliteFour_0_1: @ 837D7BC - .incbin "data/tilesets/secondary/elite_four/anim/0/1.4bpp" - - .align 2 -TilesetAnimTiles_EliteFour_0_2: @ 837D7DC - .incbin "data/tilesets/secondary/elite_four/anim/0/2.4bpp" - - .align 2 -TilesetAnimTiles_EliteFour_0_3: @ 837D7FC - .incbin "data/tilesets/secondary/elite_four/anim/0/3.4bpp" - - .space 32 - - .align 2 -gTilesetAnimTable_EliteFour_0:: @ 837D83C - .4byte TilesetAnimTiles_EliteFour_0_0 - .4byte TilesetAnimTiles_EliteFour_0_1 - .4byte TilesetAnimTiles_EliteFour_0_2 - .4byte TilesetAnimTiles_EliteFour_0_3 - - .align 2 -gTilesetAnimTable_EliteFour_1:: @ 837D84C - .4byte TilesetAnimTiles_EliteFour_1_0 - .4byte TilesetAnimTiles_EliteFour_1_1 - - .align 2 -TilesetAnimTiles_MauvilleGym_0: @ 837D854 - .incbin "data/tilesets/secondary/mauville_gym/anim/0.4bpp" - - .align 2 -TilesetAnimTiles_MauvilleGym_1: @ 837DA54 - .incbin "data/tilesets/secondary/mauville_gym/anim/1.4bpp" - - .space 32 - - .align 2 -gTilesetAnimTable_MauvilleGym:: @ 837DC74 - .4byte TilesetAnimTiles_MauvilleGym_0 - .4byte TilesetAnimTiles_MauvilleGym_1 - - .align 2 -TilesetAnimTiles_BikeShop_0: @ 837DC7C - .incbin "data/tilesets/secondary/bike_shop/anim/0.4bpp" - - .align 2 -TilesetAnimTiles_BikeShop_1: @ 837DD9C - .incbin "data/tilesets/secondary/bike_shop/anim/1.4bpp" - - .space 32 - - .align 2 -gTilesetAnimTable_BikeShop:: @ 837DEDC - .4byte TilesetAnimTiles_BikeShop_0 - .4byte TilesetAnimTiles_BikeShop_1 diff --git a/data/tv.s b/data/tv.s deleted file mode 100644 index 293f84217..000000000 --- a/data/tv.s +++ /dev/null @@ -1,205 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -gPokeOutbreakSpeciesList:: @ 83D13F8 - .2byte SPECIES_SURSKIT - .2byte MOVE_BUBBLE, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE - .byte 3 - .byte MAPSEC_Route102 - - .2byte SPECIES_SURSKIT - .2byte MOVE_BUBBLE, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE - .byte 15 - .byte MAPSEC_Route114 - - .2byte SPECIES_SURSKIT - .2byte MOVE_BUBBLE, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE - .byte 15 - .byte MAPSEC_Route117 - - .2byte SPECIES_SURSKIT - .2byte MOVE_BUBBLE, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE - .byte 28 - .byte MAPSEC_Route120 - - .2byte SPECIES_SKITTY - .2byte MOVE_GROWL, MOVE_TACKLE, MOVE_NONE, MOVE_NONE - .byte 15 - .byte MAPSEC_Route116 - - .align 2 -gTVNewsTextGroup1:: @ 83D1434 - .4byte 0x0 - .4byte gTVNewsText_EnergyGuru1 - .4byte gTVNewsText_GameCorner1 - .4byte gTVNewsText_LilycoveDepartment1 - - .align 2 -gTVNewsTextGroup2:: @ 83D1444 - .4byte 0x0 - .4byte gTVNewsText_EnergyGuru2 - .4byte gTVNewsText_GameCorner2 - .4byte gTVNewsText_LilycoveDepartment2 - - .align 2 -gTVNewsTextGroup3:: @ 83D1454 - .4byte 0x0 - .4byte gTVNewsText_EnergyGuru3 - .4byte gTVNewsText_GameCorner3 - .4byte gTVNewsText_LilycoveDepartment3 - - .align 2 -gUnknown_083D1464:: @ 83D1464 - .4byte gStringVar1 - .4byte gStringVar2 - .4byte gStringVar3 - - .align 2 -gTVFanClubTextGroup:: @ 83D1470 - .4byte gTVFanClubText1 - .4byte gTVFanClubText2 - .4byte gTVFanClubText3 - .4byte gTVFanClubText4 - .4byte gTVFanClubText5 - .4byte gTVFanClubText6 - .4byte gTVFanClubText7 - .4byte gTVFanClubText8 - - .align 2 -gTVRecentHappeningsTextGroup:: @ 83D1490 - .4byte gTVRecentHappeningsText1 - .4byte gTVRecentHappeningsText2 - .4byte gTVRecentHappeningsText3 - .4byte gTVRecentHappeningsText4 - .4byte gTVRecentHappeningsText5 - .4byte gTVRecentHappeningsText6 - - .align 2 -gTVFanClubOpinionsTextGroup:: @ 83D14A8 - .4byte gTVFanClubOpinionsText1 - .4byte gTVFanClubOpinionsText2 - .4byte gTVFanClubOpinionsText3 - .4byte gTVFanClubOpinionsText4 - .4byte gTVFanClubOpinionsText5 - - .align 2 -gTVPokemonOutbreakTextGroup:: @ 83D14BC - .4byte gTVPokemonOutbreakText - - .align 2 -gTVPokemonTodayTextGroup:: @ 83D14C0 - .4byte gTVPokemonTodayText1 - .4byte gTVPokemonTodayText2 - .4byte gTVPokemonTodayText3 - .4byte gTVPokemonTodayText4 - .4byte gTVPokemonTodayText5 - .4byte gTVPokemonTodayText6 - .4byte gTVPokemonTodayText7 - .4byte gTVPokemonTodayText8 - .4byte gTVPokemonTodayText9 - .4byte gTVPokemonTodayText10 - .4byte gTVPokemonTodayText11 - .4byte gTVPokemonTodayText12 - - .align 2 -gTVSmartShopperTextGroup:: @ 83D14F0 - .4byte gTVSmartShopperText1 - .4byte gTVSmartShopperText2 - .4byte gTVSmartShopperText3 - .4byte gTVSmartShopperText4 - .4byte gTVSmartShopperText5 - .4byte gTVSmartShopperText6 - .4byte gTVSmartShopperText7 - .4byte gTVSmartShopperText8 - .4byte gTVSmartShopperText9 - .4byte gTVSmartShopperText10 - .4byte gTVSmartShopperText11 - .4byte gTVSmartShopperText12 - .4byte gTVSmartShopperText13 - - .align 2 -gTVBravoTrainerTextGroup:: @ 83D1524 - .4byte gTVBravoTrainerText1 - .4byte gTVBravoTrainerText2 - .4byte gTVBravoTrainerText3 - .4byte gTVBravoTrainerText4 - .4byte gTVBravoTrainerText5 - .4byte gTVBravoTrainerText6 - .4byte gTVBravoTrainerText7 - .4byte gTVBravoTrainerText8 - .4byte gTVBravoTrainerText9 - - .align 2 -gTVBravoTrainerBattleTowerTextGroup:: @ 83D1548 - .4byte gTVBravoTrainerBattleTowerText1 - .4byte gTVBravoTrainerBattleTowerText2 - .4byte gTVBravoTrainerBattleTowerText3 - .4byte gTVBravoTrainerBattleTowerText4 - .4byte gTVBravoTrainerBattleTowerText5 - .4byte gTVBravoTrainerBattleTowerText6 - .4byte gTVBravoTrainerBattleTowerText7 - .4byte gTVBravoTrainerBattleTowerText8 - .4byte gTVBravoTrainerBattleTowerText9 - .4byte gTVBravoTrainerBattleTowerText10 - .4byte gTVBravoTrainerBattleTowerText11 - .4byte gTVBravoTrainerBattleTowerText12 - .4byte gTVBravoTrainerBattleTowerText13 - .4byte gTVBravoTrainerBattleTowerText14 - .4byte gTVBravoTrainerBattleTowerText15 - - .align 2 -gTVNameRaterTextGroup:: @ 83D1584 - .4byte gTVNameRaterText1 - .4byte gTVNameRaterText2 - .4byte gTVNameRaterText3 - .4byte gTVNameRaterText4 - .4byte gTVNameRaterText5 - .4byte gTVNameRaterText6 - .4byte gTVNameRaterText7 - .4byte gTVNameRaterText8 - .4byte gTVNameRaterText9 - .4byte gTVNameRaterText10 - .4byte gTVNameRaterText11 - .4byte gTVNameRaterText12 - .4byte gTVNameRaterText13 - .4byte gTVNameRaterText14 - .4byte gTVNameRaterText15 - .4byte gTVNameRaterText16 - .4byte gTVNameRaterText17 - .4byte gTVNameRaterText18 - .4byte gTVNameRaterText19 - - .align 2 -gTVPokemonTodayFailedCaptureTextGroup:: @ 83D15D0 - .4byte gTVPokemonTodayFailedCaptureText1 - .4byte gTVPokemonTodayFailedCaptureText2 - .4byte gTVPokemonTodayFailedCaptureText3 - .4byte gTVPokemonTodayFailedCaptureText4 - .4byte gTVPokemonTodayFailedCaptureText5 - .4byte gTVPokemonTodayFailedCaptureText6 - .4byte gTVPokemonTodayFailedCaptureText7 - - .align 2 -gTVFishingGuruAdviceTextGroup:: @ 83D15EC - .4byte gTVFishingGuruAdviceText1 - .4byte gTVFishingGuruAdviceText2 - - .align 2 -gTVWorldOfMastersTextGroup:: @ 83D15F4 - .4byte gTVWorldOfMastersText1 - .4byte gTVWorldOfMastersText2 - .4byte gTVWorldOfMastersText3 - - .align 2 -gTVGabbyAndTyTextGroup:: @ 83D1600 - .4byte gTVGabbyAndTyText1 - .4byte gTVGabbyAndTyText2 - .4byte gTVGabbyAndTyText3 - .4byte gTVGabbyAndTyText4 - .4byte gTVGabbyAndTyText5 - .4byte gTVGabbyAndTyText6 - .4byte gTVGabbyAndTyText7 - .4byte gTVGabbyAndTyText8 - .4byte gTVGabbyAndTyText9 diff --git a/graphics/birch_speech/blank_pal.pal b/graphics/birch_speech/blank_pal.pal new file mode 100755 index 000000000..7dc528e38 --- /dev/null +++ b/graphics/birch_speech/blank_pal.pal @@ -0,0 +1,11 @@ +JASC-PAL +0100 +8 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/include/field_door.h b/include/field_door.h index 31fdd154b..091aac27f 100644 --- a/include/field_door.h +++ b/include/field_door.h @@ -5,8 +5,8 @@ struct DoorGraphics { u16 metatileNum; u8 unk2; - void *tiles; - void *palette; + const void *tiles; + const void *palette; }; struct DoorAnimFrame diff --git a/include/matsuda_debug_menu.h b/include/matsuda_debug_menu.h index 5df53d688..60f2dc48c 100644 --- a/include/matsuda_debug_menu.h +++ b/include/matsuda_debug_menu.h @@ -7,5 +7,31 @@ void sub_80AB184(void); void sub_80AA280(u8); void sub_80AA5E8(u8); void sub_80AA658(u8); +u8 MatsudaDebugMenu_Contest(void); +u8 MatsudaDebugMenu_ContestResults(void); +u8 MatsudaDebugMenu_ContestComm(void); +u8 MatsudaDebugMenu_CommTest(void); +u8 MatsudaDebugMenu_SetHighScore(void); +u8 MatsudaDebugMenu_ResetHighScore(void); +u8 MatsudaDebugMenu_SetArtMuseumItems(void); +void sub_80AA754(struct Sprite *sprite); +void sub_80AA8C8(struct Sprite *, s8); +void sub_80AA8D8(struct Sprite *, s8); +void sub_80AA8E8(struct Sprite *, s8); +void sub_80AA8F8(struct Sprite *, s8); +void sub_80AAC5C(struct Sprite *, s8); +void sub_80AAC5C(struct Sprite *, s8); +void sub_80AA930(struct Sprite *, s8); +void sub_80AA974(struct Sprite *, s8); +void sub_80AA9B8(struct Sprite *, s8); +void sub_80AA9FC(struct Sprite *, s8); +void sub_80AAA40(struct Sprite *, s8); +void sub_80AAA84(struct Sprite *, s8); +void sub_80AAAF0(struct Sprite *, s8); +void sub_80AAB30(struct Sprite *, s8); +void sub_80AAB70(struct Sprite *, s8); +void sub_80AABB0(struct Sprite *, s8); +void sub_80AABF0(struct Sprite *, s8); +void sub_80AAD44(struct Sprite *, s8); #endif diff --git a/include/mori_debug_menu.h b/include/mori_debug_menu.h index f1dc0de93..9b0a39fe3 100644 --- a/include/mori_debug_menu.h +++ b/include/mori_debug_menu.h @@ -3,14 +3,14 @@ bool8 sub_8083D4C(void); u8 MoriDebugMenu_SearchChild(u8 a1, u8 a2, u8 *ptr); -s8 MoriDebugMenu_Egg(void); -s8 MoriDebugMenu_MaleEgg(void); -s8 MoriDebugMenu_1000Steps(void); -s8 MoriDebugMenu_10000Steps(void); -s8 MoriDebugMenu_MoveTutor(void); -s8 MoriDebugMenu_BreedEgg(void); -s8 MoriDebugMenu_LongName(void); -s8 MoriDebugMenu_PokeblockCase(void); +u8 MoriDebugMenu_Egg(void); +u8 MoriDebugMenu_MaleEgg(void); +u8 MoriDebugMenu_1000Steps(void); +u8 MoriDebugMenu_10000Steps(void); +u8 MoriDebugMenu_MoveTutor(void); +u8 MoriDebugMenu_BreedEgg(void); +u8 MoriDebugMenu_LongName(void); +u8 MoriDebugMenu_PokeblockCase(void); bool8 MoriDebugMenuProcessInput(void); s8 InitMoriDebugMenu(void); diff --git a/include/moves.h b/include/moves.h index e3b6d3113..9b9d3ff19 100644 --- a/include/moves.h +++ b/include/moves.h @@ -3,361 +3,361 @@ enum { - MOVE_NONE, - MOVE_POUND, - MOVE_KARATE_CHOP, - MOVE_DOUBLE_SLAP, - MOVE_COMET_PUNCH, - MOVE_MEGA_PUNCH, - MOVE_PAY_DAY, - MOVE_FIRE_PUNCH, - MOVE_ICE_PUNCH, - MOVE_THUNDER_PUNCH, - MOVE_SCRATCH, - MOVE_VICE_GRIP, - MOVE_GUILLOTINE, - MOVE_RAZOR_WIND, - MOVE_SWORDS_DANCE, - MOVE_CUT, - MOVE_GUST, - MOVE_WING_ATTACK, - MOVE_WHIRLWIND, - MOVE_FLY, - MOVE_BIND, - MOVE_SLAM, - MOVE_VINE_WHIP, - MOVE_STOMP, - MOVE_DOUBLE_KICK, - MOVE_MEGA_KICK, - MOVE_JUMP_KICK, - MOVE_ROLLING_KICK, - MOVE_SAND_ATTACK, - MOVE_HEADBUTT, - MOVE_HORN_ATTACK, - MOVE_FURY_ATTACK, - MOVE_HORN_DRILL, - MOVE_TACKLE, - MOVE_BODY_SLAM, - MOVE_WRAP, - MOVE_TAKE_DOWN, - MOVE_THRASH, - MOVE_DOUBLE_EDGE, - MOVE_TAIL_WHIP, - MOVE_POISON_STING, - MOVE_TWINEEDLE, - MOVE_PIN_MISSILE, - MOVE_LEER, - MOVE_BITE, - MOVE_GROWL, - MOVE_ROAR, - MOVE_SING, - MOVE_SUPERSONIC, - MOVE_SONIC_BOOM, - MOVE_DISABLE, - MOVE_ACID, - MOVE_EMBER, - MOVE_FLAMETHROWER, - MOVE_MIST, - MOVE_WATER_GUN, - MOVE_HYDRO_PUMP, - MOVE_SURF, - MOVE_ICE_BEAM, - MOVE_BLIZZARD, - MOVE_PSYBEAM, - MOVE_BUBBLE_BEAM, - MOVE_AURORA_BEAM, - MOVE_HYPER_BEAM, - MOVE_PECK, - MOVE_DRILL_PECK, - MOVE_SUBMISSION, - MOVE_LOW_KICK, - MOVE_COUNTER, - MOVE_SEISMIC_TOSS, - MOVE_STRENGTH, - MOVE_ABSORB, - MOVE_MEGA_DRAIN, - MOVE_LEECH_SEED, - MOVE_GROWTH, - MOVE_RAZOR_LEAF, - MOVE_SOLAR_BEAM, - MOVE_POISON_POWDER, - MOVE_STUN_SPORE, - MOVE_SLEEP_POWDER, - MOVE_PETAL_DANCE, - MOVE_STRING_SHOT, - MOVE_DRAGON_RAGE, - MOVE_FIRE_SPIN, - MOVE_THUNDER_SHOCK, - MOVE_THUNDERBOLT, - MOVE_THUNDER_WAVE, - MOVE_THUNDER, - MOVE_ROCK_THROW, - MOVE_EARTHQUAKE, - MOVE_FISSURE, - MOVE_DIG, - MOVE_TOXIC, - MOVE_CONFUSION, - MOVE_PSYCHIC, - MOVE_HYPNOSIS, - MOVE_MEDITATE, - MOVE_AGILITY, - MOVE_QUICK_ATTACK, - MOVE_RAGE, - MOVE_TELEPORT, - MOVE_NIGHT_SHADE, - MOVE_MIMIC, - MOVE_SCREECH, - MOVE_DOUBLE_TEAM, - MOVE_RECOVER, - MOVE_HARDEN, - MOVE_MINIMIZE, - MOVE_SMOKESCREEN, - MOVE_CONFUSE_RAY, - MOVE_WITHDRAW, - MOVE_DEFENSE_CURL, - MOVE_BARRIER, - MOVE_LIGHT_SCREEN, - MOVE_HAZE, - MOVE_REFLECT, - MOVE_FOCUS_ENERGY, - MOVE_BIDE, - MOVE_METRONOME, - MOVE_MIRROR_MOVE, - MOVE_SELF_DESTRUCT, - MOVE_EGG_BOMB, - MOVE_LICK, - MOVE_SMOG, - MOVE_SLUDGE, - MOVE_BONE_CLUB, - MOVE_FIRE_BLAST, - MOVE_WATERFALL, - MOVE_CLAMP, - MOVE_SWIFT, - MOVE_SKULL_BASH, - MOVE_SPIKE_CANNON, - MOVE_CONSTRICT, - MOVE_AMNESIA, - MOVE_KINESIS, - MOVE_SOFT_BOILED, - MOVE_HI_JUMP_KICK, - MOVE_GLARE, - MOVE_DREAM_EATER, - MOVE_POISON_GAS, - MOVE_BARRAGE, - MOVE_LEECH_LIFE, - MOVE_LOVELY_KISS, - MOVE_SKY_ATTACK, - MOVE_TRANSFORM, - MOVE_BUBBLE, - MOVE_DIZZY_PUNCH, - MOVE_SPORE, - MOVE_FLASH, - MOVE_PSYWAVE, - MOVE_SPLASH, - MOVE_ACID_ARMOR, - MOVE_CRABHAMMER, - MOVE_EXPLOSION, - MOVE_FURY_SWIPES, - MOVE_BONEMERANG, - MOVE_REST, - MOVE_ROCK_SLIDE, - MOVE_HYPER_FANG, - MOVE_SHARPEN, - MOVE_CONVERSION, - MOVE_TRI_ATTACK, - MOVE_SUPER_FANG, - MOVE_SLASH, - MOVE_SUBSTITUTE, - MOVE_STRUGGLE, - MOVE_SKETCH, - MOVE_TRIPLE_KICK, - MOVE_THIEF, - MOVE_SPIDER_WEB, - MOVE_MIND_READER, - MOVE_NIGHTMARE, - MOVE_FLAME_WHEEL, - MOVE_SNORE, - MOVE_CURSE, - MOVE_FLAIL, - MOVE_CONVERSION_2, - MOVE_AEROBLAST, - MOVE_COTTON_SPORE, - MOVE_REVERSAL, - MOVE_SPITE, - MOVE_POWDER_SNOW, - MOVE_PROTECT, - MOVE_MACH_PUNCH, - MOVE_SCARY_FACE, - MOVE_FAINT_ATTACK, - MOVE_SWEET_KISS, - MOVE_BELLY_DRUM, - MOVE_SLUDGE_BOMB, - MOVE_MUD_SLAP, - MOVE_OCTAZOOKA, - MOVE_SPIKES, - MOVE_ZAP_CANNON, - MOVE_FORESIGHT, - MOVE_DESTINY_BOND, - MOVE_PERISH_SONG, - MOVE_ICY_WIND, - MOVE_DETECT, - MOVE_BONE_RUSH, - MOVE_LOCK_ON, - MOVE_OUTRAGE, - MOVE_SANDSTORM, - MOVE_GIGA_DRAIN, - MOVE_ENDURE, - MOVE_CHARM, - MOVE_ROLLOUT, - MOVE_FALSE_SWIPE, - MOVE_SWAGGER, - MOVE_MILK_DRINK, - MOVE_SPARK, - MOVE_FURY_CUTTER, - MOVE_STEEL_WING, - MOVE_MEAN_LOOK, - MOVE_ATTRACT, - MOVE_SLEEP_TALK, - MOVE_HEAL_BELL, - MOVE_RETURN, - MOVE_PRESENT, - MOVE_FRUSTRATION, - MOVE_SAFEGUARD, - MOVE_PAIN_SPLIT, - MOVE_SACRED_FIRE, - MOVE_MAGNITUDE, - MOVE_DYNAMIC_PUNCH, - MOVE_MEGAHORN, - MOVE_DRAGON_BREATH, - MOVE_BATON_PASS, - MOVE_ENCORE, - MOVE_PURSUIT, - MOVE_RAPID_SPIN, - MOVE_SWEET_SCENT, - MOVE_IRON_TAIL, - MOVE_METAL_CLAW, - MOVE_VITAL_THROW, - MOVE_MORNING_SUN, - MOVE_SYNTHESIS, - MOVE_MOONLIGHT, - MOVE_HIDDEN_POWER, - MOVE_CROSS_CHOP, - MOVE_TWISTER, - MOVE_RAIN_DANCE, - MOVE_SUNNY_DAY, - MOVE_CRUNCH, - MOVE_MIRROR_COAT, - MOVE_PSYCH_UP, - MOVE_EXTREME_SPEED, - MOVE_ANCIENT_POWER, - MOVE_SHADOW_BALL, - MOVE_FUTURE_SIGHT, - MOVE_ROCK_SMASH, - MOVE_WHIRLPOOL, - MOVE_BEAT_UP, - MOVE_FAKE_OUT, - MOVE_UPROAR, - MOVE_STOCKPILE, - MOVE_SPIT_UP, - MOVE_SWALLOW, - MOVE_HEAT_WAVE, - MOVE_HAIL, - MOVE_TORMENT, - MOVE_FLATTER, - MOVE_WILL_O_WISP, - MOVE_MEMENTO, - MOVE_FACADE, - MOVE_FOCUS_PUNCH, - MOVE_SMELLING_SALT, - MOVE_FOLLOW_ME, - MOVE_NATURE_POWER, - MOVE_CHARGE, - MOVE_TAUNT, - MOVE_HELPING_HAND, - MOVE_TRICK, - MOVE_ROLE_PLAY, - MOVE_WISH, - MOVE_ASSIST, - MOVE_INGRAIN, - MOVE_SUPERPOWER, - MOVE_MAGIC_COAT, - MOVE_RECYCLE, - MOVE_REVENGE, - MOVE_BRICK_BREAK, - MOVE_YAWN, - MOVE_KNOCK_OFF, - MOVE_ENDEAVOR, - MOVE_ERUPTION, - MOVE_SKILL_SWAP, - MOVE_IMPRISON, - MOVE_REFRESH, - MOVE_GRUDGE, - MOVE_SNATCH, - MOVE_SECRET_POWER, - MOVE_DIVE, - MOVE_ARM_THRUST, - MOVE_CAMOUFLAGE, - MOVE_TAIL_GLOW, - MOVE_LUSTER_PURGE, - MOVE_MIST_BALL, - MOVE_FEATHER_DANCE, - MOVE_TEETER_DANCE, - MOVE_BLAZE_KICK, - MOVE_MUD_SPORT, - MOVE_ICE_BALL, - MOVE_NEEDLE_ARM, - MOVE_SLACK_OFF, - MOVE_HYPER_VOICE, - MOVE_POISON_FANG, - MOVE_CRUSH_CLAW, - MOVE_BLAST_BURN, - MOVE_HYDRO_CANNON, - MOVE_METEOR_MASH, - MOVE_ASTONISH, - MOVE_WEATHER_BALL, - MOVE_AROMATHERAPY, - MOVE_FAKE_TEARS, - MOVE_AIR_CUTTER, - MOVE_OVERHEAT, - MOVE_ODOR_SLEUTH, - MOVE_ROCK_TOMB, - MOVE_SILVER_WIND, - MOVE_METAL_SOUND, - MOVE_GRASS_WHISTLE, - MOVE_TICKLE, - MOVE_COSMIC_POWER, - MOVE_WATER_SPOUT, - MOVE_SIGNAL_BEAM, - MOVE_SHADOW_PUNCH, - MOVE_EXTRASENSORY, - MOVE_SKY_UPPERCUT, - MOVE_SAND_TOMB, - MOVE_SHEER_COLD, - MOVE_MUDDY_WATER, - MOVE_BULLET_SEED, - MOVE_AERIAL_ACE, - MOVE_ICICLE_SPEAR, - MOVE_IRON_DEFENSE, - MOVE_BLOCK, - MOVE_HOWL, - MOVE_DRAGON_CLAW, - MOVE_FRENZY_PLANT, - MOVE_BULK_UP, - MOVE_BOUNCE, - MOVE_MUD_SHOT, - MOVE_POISON_TAIL, - MOVE_COVET, - MOVE_VOLT_TACKLE, - MOVE_MAGICAL_LEAF, - MOVE_WATER_SPORT, - MOVE_CALM_MIND, - MOVE_LEAF_BLADE, - MOVE_DRAGON_DANCE, - MOVE_ROCK_BLAST, - MOVE_SHOCK_WAVE, - MOVE_WATER_PULSE, - MOVE_DOOM_DESIRE, - MOVE_PSYCHO_BOOST, + /*0x0000*/ MOVE_NONE, + /*0x0001*/ MOVE_POUND, + /*0x0002*/ MOVE_KARATE_CHOP, + /*0x0003*/ MOVE_DOUBLE_SLAP, + /*0x0004*/ MOVE_COMET_PUNCH, + /*0x0005*/ MOVE_MEGA_PUNCH, + /*0x0006*/ MOVE_PAY_DAY, + /*0x0007*/ MOVE_FIRE_PUNCH, + /*0x0008*/ MOVE_ICE_PUNCH, + /*0x0009*/ MOVE_THUNDER_PUNCH, + /*0x000a*/ MOVE_SCRATCH, + /*0x000b*/ MOVE_VICE_GRIP, + /*0x000c*/ MOVE_GUILLOTINE, + /*0x000d*/ MOVE_RAZOR_WIND, + /*0x000e*/ MOVE_SWORDS_DANCE, + /*0x000f*/ MOVE_CUT, + /*0x0010*/ MOVE_GUST, + /*0x0011*/ MOVE_WING_ATTACK, + /*0x0012*/ MOVE_WHIRLWIND, + /*0x0013*/ MOVE_FLY, + /*0x0014*/ MOVE_BIND, + /*0x0015*/ MOVE_SLAM, + /*0x0016*/ MOVE_VINE_WHIP, + /*0x0017*/ MOVE_STOMP, + /*0x0018*/ MOVE_DOUBLE_KICK, + /*0x0019*/ MOVE_MEGA_KICK, + /*0x001a*/ MOVE_JUMP_KICK, + /*0x001b*/ MOVE_ROLLING_KICK, + /*0x001c*/ MOVE_SAND_ATTACK, + /*0x001d*/ MOVE_HEADBUTT, + /*0x001e*/ MOVE_HORN_ATTACK, + /*0x001f*/ MOVE_FURY_ATTACK, + /*0x0020*/ MOVE_HORN_DRILL, + /*0x0021*/ MOVE_TACKLE, + /*0x0022*/ MOVE_BODY_SLAM, + /*0x0023*/ MOVE_WRAP, + /*0x0024*/ MOVE_TAKE_DOWN, + /*0x0025*/ MOVE_THRASH, + /*0x0026*/ MOVE_DOUBLE_EDGE, + /*0x0027*/ MOVE_TAIL_WHIP, + /*0x0028*/ MOVE_POISON_STING, + /*0x0029*/ MOVE_TWINEEDLE, + /*0x002a*/ MOVE_PIN_MISSILE, + /*0x002b*/ MOVE_LEER, + /*0x002c*/ MOVE_BITE, + /*0x002d*/ MOVE_GROWL, + /*0x002e*/ MOVE_ROAR, + /*0x002f*/ MOVE_SING, + /*0x0030*/ MOVE_SUPERSONIC, + /*0x0031*/ MOVE_SONIC_BOOM, + /*0x0032*/ MOVE_DISABLE, + /*0x0033*/ MOVE_ACID, + /*0x0034*/ MOVE_EMBER, + /*0x0035*/ MOVE_FLAMETHROWER, + /*0x0036*/ MOVE_MIST, + /*0x0037*/ MOVE_WATER_GUN, + /*0x0038*/ MOVE_HYDRO_PUMP, + /*0x0039*/ MOVE_SURF, + /*0x003a*/ MOVE_ICE_BEAM, + /*0x003b*/ MOVE_BLIZZARD, + /*0x003c*/ MOVE_PSYBEAM, + /*0x003d*/ MOVE_BUBBLE_BEAM, + /*0x003e*/ MOVE_AURORA_BEAM, + /*0x003f*/ MOVE_HYPER_BEAM, + /*0x0040*/ MOVE_PECK, + /*0x0041*/ MOVE_DRILL_PECK, + /*0x0042*/ MOVE_SUBMISSION, + /*0x0043*/ MOVE_LOW_KICK, + /*0x0044*/ MOVE_COUNTER, + /*0x0045*/ MOVE_SEISMIC_TOSS, + /*0x0046*/ MOVE_STRENGTH, + /*0x0047*/ MOVE_ABSORB, + /*0x0048*/ MOVE_MEGA_DRAIN, + /*0x0049*/ MOVE_LEECH_SEED, + /*0x004a*/ MOVE_GROWTH, + /*0x004b*/ MOVE_RAZOR_LEAF, + /*0x004c*/ MOVE_SOLAR_BEAM, + /*0x004d*/ MOVE_POISON_POWDER, + /*0x004e*/ MOVE_STUN_SPORE, + /*0x004f*/ MOVE_SLEEP_POWDER, + /*0x0050*/ MOVE_PETAL_DANCE, + /*0x0051*/ MOVE_STRING_SHOT, + /*0x0052*/ MOVE_DRAGON_RAGE, + /*0x0053*/ MOVE_FIRE_SPIN, + /*0x0054*/ MOVE_THUNDER_SHOCK, + /*0x0055*/ MOVE_THUNDERBOLT, + /*0x0056*/ MOVE_THUNDER_WAVE, + /*0x0057*/ MOVE_THUNDER, + /*0x0058*/ MOVE_ROCK_THROW, + /*0x0059*/ MOVE_EARTHQUAKE, + /*0x005a*/ MOVE_FISSURE, + /*0x005b*/ MOVE_DIG, + /*0x005c*/ MOVE_TOXIC, + /*0x005d*/ MOVE_CONFUSION, + /*0x005e*/ MOVE_PSYCHIC, + /*0x005f*/ MOVE_HYPNOSIS, + /*0x0060*/ MOVE_MEDITATE, + /*0x0061*/ MOVE_AGILITY, + /*0x0062*/ MOVE_QUICK_ATTACK, + /*0x0063*/ MOVE_RAGE, + /*0x0064*/ MOVE_TELEPORT, + /*0x0065*/ MOVE_NIGHT_SHADE, + /*0x0066*/ MOVE_MIMIC, + /*0x0067*/ MOVE_SCREECH, + /*0x0068*/ MOVE_DOUBLE_TEAM, + /*0x0069*/ MOVE_RECOVER, + /*0x006a*/ MOVE_HARDEN, + /*0x006b*/ MOVE_MINIMIZE, + /*0x006c*/ MOVE_SMOKESCREEN, + /*0x006d*/ MOVE_CONFUSE_RAY, + /*0x006e*/ MOVE_WITHDRAW, + /*0x006f*/ MOVE_DEFENSE_CURL, + /*0x0070*/ MOVE_BARRIER, + /*0x0071*/ MOVE_LIGHT_SCREEN, + /*0x0072*/ MOVE_HAZE, + /*0x0073*/ MOVE_REFLECT, + /*0x0074*/ MOVE_FOCUS_ENERGY, + /*0x0075*/ MOVE_BIDE, + /*0x0076*/ MOVE_METRONOME, + /*0x0077*/ MOVE_MIRROR_MOVE, + /*0x0078*/ MOVE_SELF_DESTRUCT, + /*0x0079*/ MOVE_EGG_BOMB, + /*0x007a*/ MOVE_LICK, + /*0x007b*/ MOVE_SMOG, + /*0x007c*/ MOVE_SLUDGE, + /*0x007d*/ MOVE_BONE_CLUB, + /*0x007e*/ MOVE_FIRE_BLAST, + /*0x007f*/ MOVE_WATERFALL, + /*0x0080*/ MOVE_CLAMP, + /*0x0081*/ MOVE_SWIFT, + /*0x0082*/ MOVE_SKULL_BASH, + /*0x0083*/ MOVE_SPIKE_CANNON, + /*0x0084*/ MOVE_CONSTRICT, + /*0x0085*/ MOVE_AMNESIA, + /*0x0086*/ MOVE_KINESIS, + /*0x0087*/ MOVE_SOFT_BOILED, + /*0x0088*/ MOVE_HI_JUMP_KICK, + /*0x0089*/ MOVE_GLARE, + /*0x008a*/ MOVE_DREAM_EATER, + /*0x008b*/ MOVE_POISON_GAS, + /*0x008c*/ MOVE_BARRAGE, + /*0x008d*/ MOVE_LEECH_LIFE, + /*0x008e*/ MOVE_LOVELY_KISS, + /*0x008f*/ MOVE_SKY_ATTACK, + /*0x0090*/ MOVE_TRANSFORM, + /*0x0091*/ MOVE_BUBBLE, + /*0x0092*/ MOVE_DIZZY_PUNCH, + /*0x0093*/ MOVE_SPORE, + /*0x0094*/ MOVE_FLASH, + /*0x0095*/ MOVE_PSYWAVE, + /*0x0096*/ MOVE_SPLASH, + /*0x0097*/ MOVE_ACID_ARMOR, + /*0x0098*/ MOVE_CRABHAMMER, + /*0x0099*/ MOVE_EXPLOSION, + /*0x009a*/ MOVE_FURY_SWIPES, + /*0x009b*/ MOVE_BONEMERANG, + /*0x009c*/ MOVE_REST, + /*0x009d*/ MOVE_ROCK_SLIDE, + /*0x009e*/ MOVE_HYPER_FANG, + /*0x009f*/ MOVE_SHARPEN, + /*0x00a0*/ MOVE_CONVERSION, + /*0x00a1*/ MOVE_TRI_ATTACK, + /*0x00a2*/ MOVE_SUPER_FANG, + /*0x00a3*/ MOVE_SLASH, + /*0x00a4*/ MOVE_SUBSTITUTE, + /*0x00a5*/ MOVE_STRUGGLE, + /*0x00a6*/ MOVE_SKETCH, + /*0x00a7*/ MOVE_TRIPLE_KICK, + /*0x00a8*/ MOVE_THIEF, + /*0x00a9*/ MOVE_SPIDER_WEB, + /*0x00aa*/ MOVE_MIND_READER, + /*0x00ab*/ MOVE_NIGHTMARE, + /*0x00ac*/ MOVE_FLAME_WHEEL, + /*0x00ad*/ MOVE_SNORE, + /*0x00ae*/ MOVE_CURSE, + /*0x00af*/ MOVE_FLAIL, + /*0x00b0*/ MOVE_CONVERSION_2, + /*0x00b1*/ MOVE_AEROBLAST, + /*0x00b2*/ MOVE_COTTON_SPORE, + /*0x00b3*/ MOVE_REVERSAL, + /*0x00b4*/ MOVE_SPITE, + /*0x00b5*/ MOVE_POWDER_SNOW, + /*0x00b6*/ MOVE_PROTECT, + /*0x00b7*/ MOVE_MACH_PUNCH, + /*0x00b8*/ MOVE_SCARY_FACE, + /*0x00b9*/ MOVE_FAINT_ATTACK, + /*0x00ba*/ MOVE_SWEET_KISS, + /*0x00bb*/ MOVE_BELLY_DRUM, + /*0x00bc*/ MOVE_SLUDGE_BOMB, + /*0x00bd*/ MOVE_MUD_SLAP, + /*0x00be*/ MOVE_OCTAZOOKA, + /*0x00bf*/ MOVE_SPIKES, + /*0x00c0*/ MOVE_ZAP_CANNON, + /*0x00c1*/ MOVE_FORESIGHT, + /*0x00c2*/ MOVE_DESTINY_BOND, + /*0x00c3*/ MOVE_PERISH_SONG, + /*0x00c4*/ MOVE_ICY_WIND, + /*0x00c5*/ MOVE_DETECT, + /*0x00c6*/ MOVE_BONE_RUSH, + /*0x00c7*/ MOVE_LOCK_ON, + /*0x00c8*/ MOVE_OUTRAGE, + /*0x00c9*/ MOVE_SANDSTORM, + /*0x00ca*/ MOVE_GIGA_DRAIN, + /*0x00cb*/ MOVE_ENDURE, + /*0x00cc*/ MOVE_CHARM, + /*0x00cd*/ MOVE_ROLLOUT, + /*0x00ce*/ MOVE_FALSE_SWIPE, + /*0x00cf*/ MOVE_SWAGGER, + /*0x00d0*/ MOVE_MILK_DRINK, + /*0x00d1*/ MOVE_SPARK, + /*0x00d2*/ MOVE_FURY_CUTTER, + /*0x00d3*/ MOVE_STEEL_WING, + /*0x00d4*/ MOVE_MEAN_LOOK, + /*0x00d5*/ MOVE_ATTRACT, + /*0x00d6*/ MOVE_SLEEP_TALK, + /*0x00d7*/ MOVE_HEAL_BELL, + /*0x00d8*/ MOVE_RETURN, + /*0x00d9*/ MOVE_PRESENT, + /*0x00da*/ MOVE_FRUSTRATION, + /*0x00db*/ MOVE_SAFEGUARD, + /*0x00dc*/ MOVE_PAIN_SPLIT, + /*0x00dd*/ MOVE_SACRED_FIRE, + /*0x00de*/ MOVE_MAGNITUDE, + /*0x00df*/ MOVE_DYNAMIC_PUNCH, + /*0x00e0*/ MOVE_MEGAHORN, + /*0x00e1*/ MOVE_DRAGON_BREATH, + /*0x00e2*/ MOVE_BATON_PASS, + /*0x00e3*/ MOVE_ENCORE, + /*0x00e4*/ MOVE_PURSUIT, + /*0x00e5*/ MOVE_RAPID_SPIN, + /*0x00e6*/ MOVE_SWEET_SCENT, + /*0x00e7*/ MOVE_IRON_TAIL, + /*0x00e8*/ MOVE_METAL_CLAW, + /*0x00e9*/ MOVE_VITAL_THROW, + /*0x00ea*/ MOVE_MORNING_SUN, + /*0x00eb*/ MOVE_SYNTHESIS, + /*0x00ec*/ MOVE_MOONLIGHT, + /*0x00ed*/ MOVE_HIDDEN_POWER, + /*0x00ee*/ MOVE_CROSS_CHOP, + /*0x00ef*/ MOVE_TWISTER, + /*0x00f0*/ MOVE_RAIN_DANCE, + /*0x00f1*/ MOVE_SUNNY_DAY, + /*0x00f2*/ MOVE_CRUNCH, + /*0x00f3*/ MOVE_MIRROR_COAT, + /*0x00f4*/ MOVE_PSYCH_UP, + /*0x00f5*/ MOVE_EXTREME_SPEED, + /*0x00f6*/ MOVE_ANCIENT_POWER, + /*0x00f7*/ MOVE_SHADOW_BALL, + /*0x00f8*/ MOVE_FUTURE_SIGHT, + /*0x00f9*/ MOVE_ROCK_SMASH, + /*0x00fa*/ MOVE_WHIRLPOOL, + /*0x00fb*/ MOVE_BEAT_UP, + /*0x00fc*/ MOVE_FAKE_OUT, + /*0x00fd*/ MOVE_UPROAR, + /*0x00fe*/ MOVE_STOCKPILE, + /*0x00ff*/ MOVE_SPIT_UP, + /*0x0100*/ MOVE_SWALLOW, + /*0x0101*/ MOVE_HEAT_WAVE, + /*0x0102*/ MOVE_HAIL, + /*0x0103*/ MOVE_TORMENT, + /*0x0104*/ MOVE_FLATTER, + /*0x0105*/ MOVE_WILL_O_WISP, + /*0x0106*/ MOVE_MEMENTO, + /*0x0107*/ MOVE_FACADE, + /*0x0108*/ MOVE_FOCUS_PUNCH, + /*0x0109*/ MOVE_SMELLING_SALT, + /*0x010a*/ MOVE_FOLLOW_ME, + /*0x010b*/ MOVE_NATURE_POWER, + /*0x010c*/ MOVE_CHARGE, + /*0x010d*/ MOVE_TAUNT, + /*0x010e*/ MOVE_HELPING_HAND, + /*0x010f*/ MOVE_TRICK, + /*0x0110*/ MOVE_ROLE_PLAY, + /*0x0111*/ MOVE_WISH, + /*0x0112*/ MOVE_ASSIST, + /*0x0113*/ MOVE_INGRAIN, + /*0x0114*/ MOVE_SUPERPOWER, + /*0x0115*/ MOVE_MAGIC_COAT, + /*0x0116*/ MOVE_RECYCLE, + /*0x0117*/ MOVE_REVENGE, + /*0x0118*/ MOVE_BRICK_BREAK, + /*0x0119*/ MOVE_YAWN, + /*0x011a*/ MOVE_KNOCK_OFF, + /*0x011b*/ MOVE_ENDEAVOR, + /*0x011c*/ MOVE_ERUPTION, + /*0x011d*/ MOVE_SKILL_SWAP, + /*0x011e*/ MOVE_IMPRISON, + /*0x011f*/ MOVE_REFRESH, + /*0x0120*/ MOVE_GRUDGE, + /*0x0121*/ MOVE_SNATCH, + /*0x0122*/ MOVE_SECRET_POWER, + /*0x0123*/ MOVE_DIVE, + /*0x0124*/ MOVE_ARM_THRUST, + /*0x0125*/ MOVE_CAMOUFLAGE, + /*0x0126*/ MOVE_TAIL_GLOW, + /*0x0127*/ MOVE_LUSTER_PURGE, + /*0x0128*/ MOVE_MIST_BALL, + /*0x0129*/ MOVE_FEATHER_DANCE, + /*0x012a*/ MOVE_TEETER_DANCE, + /*0x012b*/ MOVE_BLAZE_KICK, + /*0x012c*/ MOVE_MUD_SPORT, + /*0x012d*/ MOVE_ICE_BALL, + /*0x012e*/ MOVE_NEEDLE_ARM, + /*0x012f*/ MOVE_SLACK_OFF, + /*0x0130*/ MOVE_HYPER_VOICE, + /*0x0131*/ MOVE_POISON_FANG, + /*0x0132*/ MOVE_CRUSH_CLAW, + /*0x0133*/ MOVE_BLAST_BURN, + /*0x0134*/ MOVE_HYDRO_CANNON, + /*0x0135*/ MOVE_METEOR_MASH, + /*0x0136*/ MOVE_ASTONISH, + /*0x0137*/ MOVE_WEATHER_BALL, + /*0x0138*/ MOVE_AROMATHERAPY, + /*0x0139*/ MOVE_FAKE_TEARS, + /*0x013a*/ MOVE_AIR_CUTTER, + /*0x013b*/ MOVE_OVERHEAT, + /*0x013c*/ MOVE_ODOR_SLEUTH, + /*0x013d*/ MOVE_ROCK_TOMB, + /*0x013e*/ MOVE_SILVER_WIND, + /*0x013f*/ MOVE_METAL_SOUND, + /*0x0140*/ MOVE_GRASS_WHISTLE, + /*0x0141*/ MOVE_TICKLE, + /*0x0142*/ MOVE_COSMIC_POWER, + /*0x0143*/ MOVE_WATER_SPOUT, + /*0x0144*/ MOVE_SIGNAL_BEAM, + /*0x0145*/ MOVE_SHADOW_PUNCH, + /*0x0146*/ MOVE_EXTRASENSORY, + /*0x0147*/ MOVE_SKY_UPPERCUT, + /*0x0148*/ MOVE_SAND_TOMB, + /*0x0149*/ MOVE_SHEER_COLD, + /*0x014a*/ MOVE_MUDDY_WATER, + /*0x014b*/ MOVE_BULLET_SEED, + /*0x014c*/ MOVE_AERIAL_ACE, + /*0x014d*/ MOVE_ICICLE_SPEAR, + /*0x014e*/ MOVE_IRON_DEFENSE, + /*0x014f*/ MOVE_BLOCK, + /*0x0150*/ MOVE_HOWL, + /*0x0151*/ MOVE_DRAGON_CLAW, + /*0x0152*/ MOVE_FRENZY_PLANT, + /*0x0153*/ MOVE_BULK_UP, + /*0x0154*/ MOVE_BOUNCE, + /*0x0155*/ MOVE_MUD_SHOT, + /*0x0156*/ MOVE_POISON_TAIL, + /*0x0157*/ MOVE_COVET, + /*0x0158*/ MOVE_VOLT_TACKLE, + /*0x0159*/ MOVE_MAGICAL_LEAF, + /*0x015a*/ MOVE_WATER_SPORT, + /*0x015b*/ MOVE_CALM_MIND, + /*0x015c*/ MOVE_LEAF_BLADE, + /*0x015d*/ MOVE_DRAGON_DANCE, + /*0x015e*/ MOVE_ROCK_BLAST, + /*0x015f*/ MOVE_SHOCK_WAVE, + /*0x0160*/ MOVE_WATER_PULSE, + /*0x0161*/ MOVE_DOOM_DESIRE, + /*0x0162*/ MOVE_PSYCHO_BOOST, }; #endif // GUARD_MOVES_H
\ No newline at end of file diff --git a/include/region_map_sections.h b/include/region_map_sections.h new file mode 100755 index 000000000..3b7c5d9eb --- /dev/null +++ b/include/region_map_sections.h @@ -0,0 +1,60 @@ +#ifndef GUARD_REGIONMAPSEC_H +#define GUARD_REGIONMAPSEC_H + +enum +{ + MAPSEC_LittlerootTown, // 0x00 + MAPSEC_OldaleTown, // 0x01 + MAPSEC_DewfordTown, // 0x02 + MAPSEC_LavaridgeTown, // 0x03 + MAPSEC_FallarborTown, // 0x04 + MAPSEC_VerdanturfTown, // 0x05 + MAPSEC_PacifidlogTown, // 0x06 + MAPSEC_PetalburgCity, // 0x07 + MAPSEC_SlateportCity, // 0x08 + MAPSEC_MauvilleCity, // 0x09 + MAPSEC_RustboroCity, // 0x0A + MAPSEC_FortreeCity, // 0x0B + MAPSEC_LilycoveCity, // 0x0C + MAPSEC_MossdeepCity, // 0x0D + MAPSEC_SootopolisCity, // 0x0E + MAPSEC_EverGrandeCity, // 0x0F + MAPSEC_Route101, // 0x10 + MAPSEC_Route102, // 0x11 + MAPSEC_Route103, // 0x12 + MAPSEC_Route104, // 0x13 + MAPSEC_Route105, // 0x14 + MAPSEC_Route106, // 0x15 + MAPSEC_Route107, // 0x16 + MAPSEC_Route108, // 0x17 + MAPSEC_Route109, // 0x18 + MAPSEC_Route110, // 0x19 + MAPSEC_Route111, // 0x1A + MAPSEC_Route112, // 0x1B + MAPSEC_Route113, // 0x1C + MAPSEC_Route114, // 0x1D + MAPSEC_Route115, // 0x1E + MAPSEC_Route116, // 0x1F + MAPSEC_Route117, // 0x20 + MAPSEC_Route118, // 0x21 + MAPSEC_Route119, // 0x22 + MAPSEC_Route120, // 0x23 + MAPSEC_Route121, // 0x24 + MAPSEC_Route122, // 0x25 + MAPSEC_Route123, // 0x26 + MAPSEC_Route124, // 0x27 + MAPSEC_Route125, // 0x28 + MAPSEC_Route126, // 0x29 + MAPSEC_Route127, // 0x2A + MAPSEC_Route128, // 0x2B + MAPSEC_Route129, // 0x2C + MAPSEC_Route130, // 0x2D + MAPSEC_Route131, // 0x2E + MAPSEC_Route132, // 0x2F + MAPSEC_Route133, // 0x30 + MAPSEC_Route134, // 0x31 + MAPSEC_MtChimney, // 0x38 + MAPSEC_Nothing, // 0x58 +}; + +#endif // GUARD_REGIONMAPSEC_H diff --git a/include/text_window.h b/include/text_window.h index afd645540..7df1453ca 100644 --- a/include/text_window.h +++ b/include/text_window.h @@ -5,8 +5,8 @@ struct FrameGraphics { - u8 *tiles; - u16 *palette; + const u8 *tiles; + const u16 *palette; }; u16 SetTextWindowBaseTileNum(u16 baseTileNum); diff --git a/include/tv.h b/include/tv.h index a933e1779..0f355043c 100644 --- a/include/tv.h +++ b/include/tv.h @@ -18,8 +18,6 @@ enum TVSHOW_MASS_OUTBREAK = 41, }; -extern u8 *const gUnknown_083D1464[3]; - void ClearTVShowData(void); u8 sub_80BDEAC(u8 *); void sub_80BE028(void); diff --git a/ld_script.txt b/ld_script.txt index e699cacf6..e5c6508ee 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -158,7 +158,13 @@ SECTIONS { src/script_pokemon_util_80C4BF0.o(.text); src/field/field_poison.o(.text); src/pokemon/pokemon_size_record.o(.text); - asm/fldeff_80C5CD4.o(.text); + asm/pc_screen_effect.o(.text); + asm/fldeff_secretpower.o(.text); + asm/fldeff_pc.o(.text); + asm/fldeff_decoration.o(.text); + asm/fldeff_poison.o(.text); + asm/fldeff_berrytree.o(.text); + asm/fldeff_recordmixing.o(.text); src/field/field_special_scene.o(.text); src/field/rotating_gate.o(.text); src/field/safari_zone.o(.text); @@ -312,7 +318,7 @@ SECTIONS { src/engine/string_util.o(.rodata); src/engine/link.o(.rodata); src/engine/rtc.o(.rodata); - data/main_menu.o(.rodata); + src/engine/main_menu.o(.rodata); data/data2a.o(.rodata); src/battle/battle_4.o(.rodata); src/battle/battle_controller_player.o(.rodata); @@ -337,21 +343,21 @@ SECTIONS { data/maps.o(.rodata); src/field/fieldmap.o(.rodata); src/field/metatile_behavior.o(.rodata); - data/field_door.o(.rodata); + src/field/field_door.o(.rodata); src/field/field_player_avatar.o(.rodata); src/field/field_map_obj.o(.rodata); src/field/field_ground_effect.o(.rodata); data/field_map_obj_helpers.o(.rodata); - data/text_window.o(.rodata); + src/engine/text_window.o(.rodata); src/engine/script.o(.rodata); src/field/scrcmd.o(.rodata); src/field/coord_event_weather.o(.rodata); src/field/field_tasks.o(.rodata); - data/reset_rtc_screen.o(.rodata); + src/engine/reset_rtc_screen.o(.rodata); src/field/party_menu.o(.rodata); src/field/start_menu.o(.rodata); src/engine/menu.o(.rodata); - data/tileset_anim.o(.rodata); + src/engine/tileset_anim.o(.rodata); src/engine/palette.o(.rodata); src/engine/sound.o(.rodata); data/battle_anim.o(.rodata); @@ -366,8 +372,8 @@ SECTIONS { data/field_weather.o(.rodata); src/field/field_screen_effect.o(.rodata); src/battle/battle_setup.o(.rodata); - data/cable_club.o(.rodata); - data/mori_debug_menu.o(.rodata); + src/engine/cable_club.o(.rodata); + src/debug/mori_debug_menu.o(.rodata); src/field/trainer_see.o(.rodata); data/trainer_see.o(.rodata); src/field/wild_encounter.o(.rodata); @@ -385,23 +391,26 @@ SECTIONS { src/field/item_menu.o(.rodata); data/battle_anim_80A7E7C.o(.rodata); src/field/item.o(.rodata); - data/matsuda_debug_menu.o(.rodata); + src/debug/matsuda_debug_menu.o(.rodata); data/contest.o(.rodata); src/field/shop.o(.rodata); src/field/berry.o(.rodata); src/field/script_menu.o(.rodata); src/engine/naming_screen.o(.rodata); data/naming_screen.o(.rodata); - data/money.o(.rodata); + src/field/money.o(.rodata); data/contest_effect.o(.rodata); src/engine/record_mixing.o(.data); src/engine/record_mixing.o(.rodata); src/debug/sound_check_menu.o(.rodata); src/field/secret_base.o(.rodata); - data/tv.o(.rodata); + src/field/tv.o(.rodata); data/contest_link_80C2020.o(.rodata); src/pokemon/pokemon_size_record.o(.rodata); - data/fldeff_80C5CD4.o(.rodata); + data/pc_screen_effect.o(.rodata); + data/fldeff_secretpower.o(.rodata); + data/fldeff_decoration.o(.rodata); + data/fldeff_recordmixing.o(.rodata); src/field/field_special_scene.o(.rodata); src/field/rotating_gate.o(.rodata); src/field/item_use.o(.rodata); @@ -424,7 +433,7 @@ SECTIONS { src/field/starter_choose.o(.rodata); src/field/wallclock.o(.rodata); src/field/pokeblock.o(.rodata); - data/fldeff_flash.o(.rodata); + src/field/fldeff_flash.o(.rodata); src/engine/time_events.o(.rodata); src/field/field_specials.o(.rodata); data/pokedex_area_screen.o(.rodata); @@ -434,7 +443,7 @@ SECTIONS { data/landmark.o(.rodata); src/battle/battle_transition.o(.rodata); src/battle/battle_controller_linkpartner.o(.rodata); - data/battle_message.o(.rodata); + src/battle/battle_message.o(.rodata); src/field/choose_party.o(.rodata); data/cable_car.o(.rodata); src/engine/save.o(.rodata); diff --git a/src/battle/battle_4.c b/src/battle/battle_4.c index 6f3be7804..cff81396d 100644 --- a/src/battle/battle_4.c +++ b/src/battle/battle_4.c @@ -81,7 +81,7 @@ extern u8 gBattleTextBuff3[]; extern u8 gLeveledUpInBattle; extern void (*gBattleMainFunc)(void); extern struct Window gUnknown_03004210; -extern const u8 gUnknown_08400D7A[]; +extern const u8 BattleText_YesNo[]; extern u8 gPlayerPartyCount; extern u16 gMoveToLearn; //move to learn extern const u8 gTrainerMoney[]; @@ -10952,7 +10952,7 @@ void atk59_learnmove_inbattle(void) void sub_8023A80(void) { sub_802BBD4(0x18, 8, 0x1D, 0xD, 0); - InitWindow(&gUnknown_03004210, gUnknown_08400D7A, 0x100, 0x19, 0x9); + InitWindow(&gUnknown_03004210, BattleText_YesNo, 0x100, 0x19, 0x9); sub_8002F44(&gUnknown_03004210); sub_814A5C0(0, 0xFFFF, 0xC, 0x2D9F, 0x20); } @@ -11660,7 +11660,7 @@ static void atk6C_lvlbox_display(void) { case 0: sub_802BBD4(0xB, 0, 0x1D, 0x7, r1); - StringCopy(gStringVar4, gUnknown_08400D9F); + StringCopy(gStringVar4, BattleText_Format2); } } @@ -11670,7 +11670,7 @@ __attribute__((naked)) static void atk6C_lvlbox_display(void) { asm(".syntax unified\n\ - push {r4-r7,lr}\n\ + push {r4-r7,lr}\n\ mov r7, r10\n\ mov r6, r9\n\ mov r5, r8\n\ @@ -11713,7 +11713,7 @@ _0802493E:\n\ movs r3, 0x7\n\ bl sub_802BBD4\n\ ldr r0, _0802499C @ =gStringVar4\n\ - ldr r1, _080249A0 @ =gUnknown_08400D9F\n\ + ldr r1, _080249A0 @ =BattleText_Format2\n\ bl StringCopy\n\ adds r5, r0, 0\n\ movs r1, 0\n\ @@ -11752,7 +11752,7 @@ _0802495A:\n\ mov pc, r0\n\ .align 2, 0\n\ _0802499C: .4byte gStringVar4\n\ -_080249A0: .4byte gUnknown_08400D9F\n\ +_080249A0: .4byte BattleText_Format2\n\ _080249A4: .4byte gUnknown_0840165C\n\ _080249A8: .4byte gSharedMem\n\ _080249AC: .4byte 0x00016018\n\ @@ -11832,13 +11832,13 @@ _08024A2C:\n\ mov r0, r9\n\ cmp r0, 0\n\ beq _08024A5C\n\ - ldr r1, _08024A58 @ =gUnknown_08400DAC\n\ + ldr r1, _08024A58 @ =BattleText_Dash\n\ b _08024A5E\n\ .align 2, 0\n\ _08024A54: .4byte gSharedMem + 0x17180\n\ -_08024A58: .4byte gUnknown_08400DAC\n\ +_08024A58: .4byte BattleText_Dash\n\ _08024A5C:\n\ - ldr r1, _08024AA4 @ =gUnknown_08400DAA\n\ + ldr r1, _08024AA4 @ =BattleText_Plus\n\ _08024A5E:\n\ adds r0, r5, 0\n\ bl StringCopy\n\ @@ -11874,7 +11874,7 @@ _08024A5E:\n\ adds r5, 0x1\n\ b _08024AB8\n\ .align 2, 0\n\ -_08024AA4: .4byte gUnknown_08400DAA\n\ +_08024AA4: .4byte BattleText_Plus\n\ _08024AA8:\n\ strb r6, [r5]\n\ movs r0, 0x11\n\ @@ -11921,7 +11921,7 @@ _08024AFE:\n\ movs r0, 0x5\n\ bl PlaySE\n\ ldr r0, _08024B98 @ =gStringVar4\n\ - ldr r1, _08024B9C @ =gUnknown_08400D9F\n\ + ldr r1, _08024B9C @ =BattleText_Format2\n\ bl StringCopy\n\ adds r5, r0, 0\n\ movs r0, 0\n\ @@ -11992,7 +11992,7 @@ _08024B1C:\n\ .align 2, 0\n\ _08024B94: .4byte gMain\n\ _08024B98: .4byte gStringVar4\n\ -_08024B9C: .4byte gUnknown_08400D9F\n\ +_08024B9C: .4byte BattleText_Format2\n\ _08024BA0: .4byte 0x00016018\n\ _08024BA4: .4byte gUnknown_0840165C\n\ _08024BA8: .4byte gPlayerParty\n\ diff --git a/src/battle/battle_controller_player.c b/src/battle/battle_controller_player.c index 1aa73e90c..f2004c9b7 100644 --- a/src/battle/battle_controller_player.c +++ b/src/battle/battle_controller_player.c @@ -78,9 +78,9 @@ extern u16 gUnknown_030042C0; extern u8 gUnknown_03004344; extern u8 gUnknown_0300434C[]; -extern const u8 gUnknown_08400CA8[]; -extern const u8 gUnknown_08400CF3[]; -extern const u8 gUnknown_08400D38[]; +extern const u8 BattleText_OtherMenu[]; +extern const u8 BattleText_MenuOptions[]; +extern const u8 BattleText_PP[]; extern void sub_802C68C(void); extern void sub_802E1B0(void); @@ -152,7 +152,7 @@ extern u16 gBattlePartyID[]; extern u16 gUnknown_030042A0; extern u16 gUnknown_030042A4; extern struct Window gUnknown_03004210; -extern const u8 gUnknown_08400D89[]; +extern const u8 BattleText_SwitchWhich[]; extern u8 gUnknown_03004348; extern struct BattlePokemon gBattleMons[]; extern MainCallback gPreBattleCallback1; @@ -164,7 +164,7 @@ extern u8 gUnknown_0202E8F5; extern u8 gUnknown_02038470[]; extern u16 gScriptItemId; extern u8 gDisplayedStringBattle[]; -extern const u8 gUnknown_08400CE0[]; +extern const u8 BattleText_LinkStandby[]; extern void dp11b_obj_instanciate(u8, u8, s8, s8); extern u8 GetBankIdentity(u8); @@ -746,15 +746,14 @@ void sub_802C68C(void) gUnknown_03004344 = gMoveSelectionCursor[gActiveBank] + 1; sub_802E3B4(gUnknown_03004344, 27); FillWindowRect(&gUnknown_03004210, 0x1016, 0x17, 0x37, 0x1C, 0x3A); - InitWindow(&gUnknown_03004210, gUnknown_08400D89, 0x290, 0x17, 0x37); + InitWindow(&gUnknown_03004210, BattleText_SwitchWhich, 0x290, 0x17, 0x37); sub_8002F44(&gUnknown_03004210); gBattleBankFunc[gActiveBank] = sub_802CA60; } } } -extern const u8 gUnknown_08400D49[]; -extern const u8 gUnknown_08400D38[]; +extern const u8 BattleText_Format[]; void sub_802CA60(void) { @@ -850,13 +849,13 @@ void sub_802CA60(void) } else { - sub_802E12C(gUnknown_03004344, gUnknown_08400D49); + sub_802E12C(gUnknown_03004344, BattleText_Format); } gBattleBankFunc[gActiveBank] = sub_802C68C; gMoveSelectionCursor[gActiveBank] = gUnknown_03004344; sub_802E3B4(gMoveSelectionCursor[gActiveBank], 0); FillWindowRect(&gUnknown_03004210, 0x1016, 0x17, 0x37, 0x1C, 0x3A); - InitWindow(&gUnknown_03004210, gUnknown_08400D38, 0x290, 0x17, 0x37); + InitWindow(&gUnknown_03004210, BattleText_PP, 0x290, 0x17, 0x37); sub_8002F44(&gUnknown_03004210); sub_802E220(); sub_802E2D4(); @@ -866,10 +865,10 @@ void sub_802CA60(void) PlaySE(SE_SELECT); nullsub_7(gUnknown_03004344); sub_802E3B4(gMoveSelectionCursor[gActiveBank], 0); - sub_802E12C(gMoveSelectionCursor[gActiveBank], gUnknown_08400D49); + sub_802E12C(gMoveSelectionCursor[gActiveBank], BattleText_Format); gBattleBankFunc[gActiveBank] = sub_802C68C; FillWindowRect(&gUnknown_03004210, 0x1016, 0x17, 0x37, 0x1C, 0x3A); - InitWindow(&gUnknown_03004210, gUnknown_08400D38, 0x290, 0x17, 0x37); + InitWindow(&gUnknown_03004210, BattleText_PP, 0x290, 0x17, 0x37); sub_8002F44(&gUnknown_03004210); sub_802E220(); sub_802E2D4(); @@ -1578,7 +1577,7 @@ void sub_802E1B0(void) for (i = 0; i < 4; i++) { nullsub_7(i); - sub_802E12C(i, gUnknown_08400D49); + sub_802E12C(i, BattleText_Format); if (r4->moves[i] != 0) gUnknown_03004348++; } @@ -1591,7 +1590,7 @@ void sub_802E220(void) struct UnknownStruct1 *r4 = (struct UnknownStruct1 *)&gBattleBufferA[gActiveBank][4]; u8 *str = gDisplayedStringBattle; - str = StringCopy(str, gUnknown_08400D49); + str = StringCopy(str, BattleText_Format); str[0] = EXT_CTRL_CODE_BEGIN; str[1] = 0x11; str[2] = 2; @@ -1608,7 +1607,7 @@ void sub_802E220(void) } } -extern const u8 gUnknown_08400D52[]; +extern const u8 BattleText_ForgetMove[]; extern const u8 gTypeNames[][7]; void sub_802E2D4(void) @@ -1616,14 +1615,14 @@ void sub_802E2D4(void) if (gBattleBufferA[gActiveBank][2] == 1) { FillWindowRect(&gUnknown_03004210, 0x1016, 0x17, 0x37, 0x1C, 0x3A); - InitWindow(&gUnknown_03004210, gUnknown_08400D52, 0x290, 0x13, 0x37); + InitWindow(&gUnknown_03004210, BattleText_ForgetMove, 0x290, 0x13, 0x37); } else { struct UnknownStruct1 *r4 = (struct UnknownStruct1 *)&gBattleBufferA[gActiveBank][4]; u8 *str = gDisplayedStringBattle; - str = StringCopy(str, gUnknown_08400D49); + str = StringCopy(str, BattleText_Format); StringCopy(str, gTypeNames[gBattleMoves[r4->moves[gMoveSelectionCursor[gActiveBank]]].type]); FillWindowRect(&gUnknown_03004210, 0x1016, 0x17, 0x39, 0x1C, 0x3A); InitWindow(&gUnknown_03004210, gDisplayedStringBattle, 0x2C0, 0x17, 0x39); @@ -1699,7 +1698,7 @@ void b_link_standby_message(void) { gUnknown_030042A4 = 0; gUnknown_030042A0 = 0; - sub_8002EB0(&gUnknown_03004210, gUnknown_08400CE0, 0x90, 2, 15); + sub_8002EB0(&gUnknown_03004210, BattleText_LinkStandby, 0x90, 2, 15); } } @@ -2587,7 +2586,7 @@ void PlayerHandlecmd18(void) gBattleBankFunc[gActiveBank] = sub_802C098; - InitWindow(&gUnknown_03004210, gUnknown_08400CF3, 400, 18, 35); + InitWindow(&gUnknown_03004210, BattleText_MenuOptions, 400, 18, 35); sub_8002F44(&gUnknown_03004210); sub_814A5C0(0, 0xFFFF, 12, 11679, 0); @@ -2596,7 +2595,7 @@ void PlayerHandlecmd18(void) sub_802E3E4(gActionSelectionCursor[gActiveBank], 0); - StrCpyDecodeToDisplayedStringBattle(gUnknown_08400CA8); + StrCpyDecodeToDisplayedStringBattle(BattleText_OtherMenu); InitWindow(&gUnknown_03004210, gDisplayedStringBattle, SUB_803037C_TILE_DATA_OFFSET, 2, 35); sub_8002F44(&gUnknown_03004210); } @@ -2621,7 +2620,7 @@ void sub_80304A8(void) sub_802E3B4(gMoveSelectionCursor[gActiveBank], 0); if (gBattleBufferA[gActiveBank][2] != 1) { - InitWindow(&gUnknown_03004210, gUnknown_08400D38, 656, 23, 55); + InitWindow(&gUnknown_03004210, BattleText_PP, 656, 23, 55); sub_8002F44(&gUnknown_03004210); } sub_802E220(); diff --git a/src/battle/battle_controller_safari.c b/src/battle/battle_controller_safari.c index 5b89cf9ba..8a8515fc7 100644 --- a/src/battle/battle_controller_safari.c +++ b/src/battle/battle_controller_safari.c @@ -18,9 +18,9 @@ extern struct Window gUnknown_03004210; extern u8 gDisplayedStringBattle[]; extern u8 gActionSelectionCursor[]; -extern const u8 gUnknown_08400CBB[]; +extern const u8 BattleText_PlayerMenu[]; extern u8 gActiveBank; -extern const u8 gUnknown_08400D15[]; +extern const u8 BattleText_MenuOptionsSafari[]; extern void *gBattleBankFunc[]; extern u16 gUnknown_030042A0; @@ -476,7 +476,7 @@ void SafariHandlecmd18(void) FillWindowRect_DefaultPalette(&gUnknown_03004210, 10, 2, 35, 16, 36); gBattleBankFunc[gActiveBank] = bx_battle_menu_t6_2; - InitWindow(&gUnknown_03004210, gUnknown_08400D15, 400, 18, 35); + InitWindow(&gUnknown_03004210, BattleText_MenuOptionsSafari, 400, 18, 35); sub_8002F44(&gUnknown_03004210); sub_814A5C0(0, 0xFFFF, 12, 11679, 0); @@ -484,7 +484,7 @@ void SafariHandlecmd18(void) nullsub_8(i); sub_802E3E4(gActionSelectionCursor[gActiveBank], 0); - StrCpyDecodeToDisplayedStringBattle(gUnknown_08400CBB); + StrCpyDecodeToDisplayedStringBattle(BattleText_PlayerMenu); InitWindow(&gUnknown_03004210, gDisplayedStringBattle, SUB_812BB10_TILE_DATA_OFFSET, 2, 35); sub_8002F44(&gUnknown_03004210); diff --git a/src/battle/battle_controller_wally.c b/src/battle/battle_controller_wally.c index 9392832d7..05fd8e583 100644 --- a/src/battle/battle_controller_wally.c +++ b/src/battle/battle_controller_wally.c @@ -57,8 +57,8 @@ extern struct Window gUnknown_03004210; extern u16 gUnknown_030042A0; extern u16 gUnknown_030042A4; extern u8 gUnknown_0300434C[]; -extern const u8 gUnknown_08400CCC[]; -extern const u8 gUnknown_08400CF3[]; +extern const u8 BattleText_WallyMenu[]; +extern const u8 BattleText_MenuOptions[]; // TODO: include rom3.h when my other PR gets merged extern void Emitcmd33(u8, u8, u16); @@ -1269,13 +1269,13 @@ void WallyHandlecmd18(void) FillWindowRect_DefaultPalette(&gUnknown_03004210, 10, 2, 15, 27, 18); FillWindowRect_DefaultPalette(&gUnknown_03004210, 10, 2, 35, 16, 36); gBattleBankFunc[gActiveBank] = sub_81372BC; - InitWindow(&gUnknown_03004210, gUnknown_08400CF3, 400, 18, 35); + InitWindow(&gUnknown_03004210, BattleText_MenuOptions, 400, 18, 35); sub_8002F44(&gUnknown_03004210); sub_814A5C0(0, 0xFFFF, 12, 0x2D9F, 0); for (i = 0; i < 4; i++) nullsub_8(i); sub_802E3E4(0, 0); - StrCpyDecodeToDisplayedStringBattle(gUnknown_08400CCC); + StrCpyDecodeToDisplayedStringBattle(BattleText_WallyMenu); #ifdef ENGLISH InitWindow(&gUnknown_03004210, gDisplayedStringBattle, 440, 2, 35); #else diff --git a/src/battle/battle_message.c b/src/battle/battle_message.c index 4e8067a49..eac92a78d 100644 --- a/src/battle/battle_message.c +++ b/src/battle/battle_message.c @@ -18,6 +18,136 @@ #define BATTLESTRINGS_NO 351 #define BATTLESTRINGS_MAX BATTLESTRINGS_NO + BATTLESTRING_TO_SUB +#ifdef GERMAN +#include "../data/battle_strings_de.h" // TODO: German +#else +#include "../data/battle_strings_en.h" +#endif + +const u16 gUnknown_084016BC[] = +{ + MOVE_SWORDS_DANCE, + MOVE_STRENGTH, + MOVE_GROWTH, + MOVE_HARDEN, + MOVE_MINIMIZE, + MOVE_SMOKESCREEN, + MOVE_WITHDRAW, + MOVE_DEFENSE_CURL, + MOVE_EGG_BOMB, + MOVE_SMOG, + MOVE_BONE_CLUB, + MOVE_FLASH, + MOVE_SPLASH, + MOVE_ACID_ARMOR, + MOVE_BONEMERANG, + MOVE_REST, + MOVE_SHARPEN, + MOVE_SUBSTITUTE, + MOVE_MIND_READER, + MOVE_SNORE, + MOVE_PROTECT, + MOVE_SPIKES, + MOVE_ENDURE, + MOVE_ROLLOUT, + MOVE_SWAGGER, + MOVE_SLEEP_TALK, + MOVE_HIDDEN_POWER, + MOVE_PSYCH_UP, + MOVE_EXTREME_SPEED, + MOVE_FOLLOW_ME, + MOVE_TRICK, + MOVE_ASSIST, + MOVE_INGRAIN, + MOVE_KNOCK_OFF, + MOVE_CAMOUFLAGE, + MOVE_ASTONISH, + MOVE_ODOR_SLEUTH, + MOVE_GRASS_WHISTLE, + MOVE_SHEER_COLD, + MOVE_MUDDY_WATER, + MOVE_IRON_DEFENSE, + MOVE_BOUNCE, + MOVE_NONE, + MOVE_TELEPORT, + MOVE_RECOVER, + MOVE_BIDE, + MOVE_AMNESIA, + MOVE_FLAIL, + MOVE_TAUNT, + MOVE_BULK_UP, + MOVE_NONE, + MOVE_MEDITATE, + MOVE_AGILITY, + MOVE_MIMIC, + MOVE_DOUBLE_TEAM, + MOVE_BARRAGE, + MOVE_TRANSFORM, + MOVE_STRUGGLE, + MOVE_SCARY_FACE, + MOVE_CHARGE, + MOVE_WISH, + MOVE_BRICK_BREAK, + MOVE_YAWN, + MOVE_FEATHER_DANCE, + MOVE_TEETER_DANCE, + MOVE_MUD_SPORT, + MOVE_FAKE_TEARS, + MOVE_WATER_SPORT, + MOVE_CALM_MIND, + MOVE_NONE, + MOVE_POUND, + MOVE_SCRATCH, + MOVE_VICE_GRIP, + MOVE_WING_ATTACK, + MOVE_FLY, + MOVE_BIND, + MOVE_SLAM, + MOVE_HORN_ATTACK, + MOVE_WRAP, + MOVE_THRASH, + MOVE_TAIL_WHIP, + MOVE_LEER, + MOVE_BITE, + MOVE_GROWL, + MOVE_ROAR, + MOVE_SING, + MOVE_PECK, + MOVE_ABSORB, + MOVE_STRING_SHOT, + MOVE_EARTHQUAKE, + MOVE_FISSURE, + MOVE_DIG, + MOVE_TOXIC, + MOVE_SCREECH, + MOVE_METRONOME, + MOVE_LICK, + MOVE_CLAMP, + MOVE_CONSTRICT, + MOVE_POISON_GAS, + MOVE_BUBBLE, + MOVE_SLASH, + MOVE_SPIDER_WEB, + MOVE_NIGHTMARE, + MOVE_CURSE, + MOVE_FORESIGHT, + MOVE_CHARM, + MOVE_ATTRACT, + MOVE_ROCK_SMASH, + MOVE_UPROAR, + MOVE_SPIT_UP, + MOVE_SWALLOW, + MOVE_TORMENT, + MOVE_FLATTER, + MOVE_ROLE_PLAY, + MOVE_ENDEAVOR, + MOVE_TICKLE, + MOVE_COVET, + MOVE_NONE, +}; + +const u8 gUnknown_084017A8[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; // empty flags + extern const u8* const gBattleStringsTable[BATTLESTRINGS_NO]; extern u16 gLastUsedItem; @@ -44,67 +174,6 @@ extern u16 gBattlePartyID[4]; extern struct BattleEnigmaBerry gEnigmaBerries[4]; extern u8 gBattleBufferA[4][0x200]; -extern const u8 gUnknown_084005DB[]; -extern const u8 gUnknown_084005C7[]; -extern const u8 gUnknown_084005AA[]; -extern const u8 gUnknown_08400568[]; -extern const u8 gUnknown_08400590[]; -extern const u8 gUnknown_0840057B[]; -extern const u8 gUnknown_08400555[]; -extern const u8 gUnknown_084006F1[]; -extern const u8 gUnknown_084006A4[]; -extern const u8 gUnknown_0840069C[]; -extern const u8 gUnknown_0840065C[]; -extern const u8 gUnknown_08400645[]; -extern const u8 gUnknown_08400608[]; -extern const u8 gUnknown_08400635[]; -extern const u8 gUnknown_084005F5[]; -extern const u8 gUnknown_08400709[]; -extern const u8 gUnknown_08400727[]; -extern const u8 gUnknown_08400736[]; -extern const u8 gUnknown_08400749[]; -extern const u8 gUnknown_08400781[]; -extern const u8 gUnknown_08400771[]; -extern const u8 gUnknown_0840075E[]; -extern const u8 gUnknown_084006B3[]; -extern const u8 gUnknown_084006BB[]; -extern const u8 gUnknown_084006C6[]; -extern const u8 gUnknown_084006D5[]; -extern const u8 gUnknown_0840068C[]; -extern const u8 gUnknown_0840067C[]; -extern const u8 gUnknown_08400622[]; -extern const u8 gUnknown_084007BD[]; -extern const u8 gUnknown_083FFEFC[]; -extern const u8 gUnknown_083FFFF7[]; -extern const u8 gUnknown_083FFFEA[]; -extern const u8 gUnknown_083FFF6A[]; -extern const u8 gUnknown_083FFF99[]; -extern const u8 gUnknown_083FFFCB[]; -extern const u8 gUnknown_083FFF56[]; -extern const u8 gUnknown_083FFF81[]; -extern const u8 gUnknown_083FFFB3[]; -extern const u8 gUnknown_08400A78[]; -extern const u8 gUnknown_08400A85[]; -extern const u8 gUnknown_08400797[]; -extern const u8 gUnknown_08400791[]; -extern const u8 gUnknown_084007B7[]; -extern const u8 gUnknown_084007B2[]; -extern const u8 gUnknown_0840079C[]; -extern const u8 gUnknown_084007A1[]; -extern const u8 gUnknown_084007A7[]; -extern const u8 gUnknown_084007AC[]; -extern const u8 gUnknown_084009ED[]; -extern const u8 gUnknown_084009F7[]; -extern const u8 gUnknown_084007C8[]; -extern const u8 gUnknown_084007CA[]; -extern const u8 gUnknown_084007CC[]; -extern const u8 gUnknown_084007CE[]; -extern const u8 gUnknown_084007D0[]; -extern const u8 gUnknown_08400E5E[]; -extern const u8 gUnknown_08400E62[]; - -extern const u16 gUnknown_084016BC[]; // a table of moves - extern const u8* const gUnknown_08401674[]; // table of pointers to 'a -TYPE' strings extern const u8* const gUnknown_08400F58[]; // table of pointers to stat strings extern const u8* const gUnknown_08400F78[]; // table of pointers to flavour strings @@ -116,7 +185,6 @@ struct StatusFlagString }; extern const struct StatusFlagString gUnknown_081FA6D4[7]; // status flag/text -extern const u8 gUnknown_084017A8[8]; // empty flags extern struct StringInfoBattle* gSelectedOrderFromParty; #define gStringInfo gSelectedOrderFromParty @@ -168,13 +236,13 @@ void BufferStringBattle(u16 stringID) if (gBattleTypeFlags & BATTLE_TYPE_LINK) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI) - stringPtr = gUnknown_084005DB; + stringPtr = BattleText_DoubleWantToBattle; else - stringPtr = gUnknown_084005C7; + stringPtr = BattleText_SingleWantToBattle2; } else { - stringPtr = gUnknown_084005AA; + stringPtr = BattleText_SingleWantToBattle1; #ifdef GERMAN stringPtr = de_sub_804110C(0xFFFF, stringPtr); #endif @@ -183,13 +251,13 @@ void BufferStringBattle(u16 stringID) else { if (gBattleTypeFlags & BATTLE_TYPE_LEGENDARY) - stringPtr = gUnknown_08400568; + stringPtr = BattleText_WildAppeared2; else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) // interesting, looks like they had something planned for wild double battles - stringPtr = gUnknown_08400590; + stringPtr = BattleText_WildDoubleAppeared; else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL) - stringPtr = gUnknown_0840057B; + stringPtr = BattleText_WildAppeared3; else - stringPtr = gUnknown_08400555; + stringPtr = BattleText_WildAppeared1; } break; case 1: // poke first send-out @@ -198,34 +266,34 @@ void BufferStringBattle(u16 stringID) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI) - stringPtr = gUnknown_084006F1; + stringPtr = BattleText_SentOutSingle11; else - stringPtr = gUnknown_084006A4; + stringPtr = BattleText_SentOutDouble4; } else - stringPtr = gUnknown_0840069C; + stringPtr = BattleText_SentOutSingle6; } else { if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI) - stringPtr = gUnknown_0840065C; + stringPtr = BattleText_SentOutDouble3; else if (gBattleTypeFlags & BATTLE_TYPE_LINK) - stringPtr = gUnknown_08400645; + stringPtr = BattleText_SentOutDouble2; else { - stringPtr = gUnknown_08400608; + stringPtr = BattleText_SentOutDouble1; #ifdef GERMAN stringPtr = de_sub_804110C(0xFFFF, stringPtr); #endif } } else if (gBattleTypeFlags & BATTLE_TYPE_LINK) - stringPtr = gUnknown_08400635; + stringPtr = BattleText_SentOutSingle3; else { - stringPtr = gUnknown_084005F5; + stringPtr = BattleText_SentOutSingle1; #ifdef GERMAN stringPtr = de_sub_804110C(0xFFFF, stringPtr); #endif @@ -236,26 +304,26 @@ void BufferStringBattle(u16 stringID) if (GetBankSide(gActiveBank) == 0) { if (BATTLE_STRUCT->hpScale == 0) - stringPtr = gUnknown_08400709; + stringPtr = BattleText_ComeBackSingle1; else if (BATTLE_STRUCT->hpScale == 1 || gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - stringPtr = gUnknown_08400727; + stringPtr = BattleText_ComeBackSingle2; else if (BATTLE_STRUCT->hpScale == 2) - stringPtr = gUnknown_08400736; + stringPtr = BattleText_ComeBackSingle3; else - stringPtr = gUnknown_08400749; + stringPtr = BattleText_ComeBackSingle4; } else { if (gTrainerBattleOpponent == 0x800) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI) - stringPtr = gUnknown_08400781; + stringPtr = BattleText_WithdrewPoke3; else - stringPtr = gUnknown_08400771; + stringPtr = BattleText_WithdrewPoke2; } else { - stringPtr = gUnknown_0840075E; + stringPtr = BattleText_WithdrewPoke1; #ifdef GERMAN stringPtr = de_sub_804110C(0xFFFF, stringPtr); #endif @@ -266,26 +334,26 @@ void BufferStringBattle(u16 stringID) if (GetBankSide(BATTLE_STRUCT->scriptingActive) == 0) { if (BATTLE_STRUCT->hpScale == 0 || gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - stringPtr = gUnknown_084006B3; + stringPtr = BattleText_SentOutSingle7; else if (BATTLE_STRUCT->hpScale == 1) - stringPtr = gUnknown_084006BB; + stringPtr = BattleText_SentOutSingle8; else if (BATTLE_STRUCT->hpScale == 2) - stringPtr = gUnknown_084006C6; + stringPtr = BattleText_SentOutSingle9; else - stringPtr = gUnknown_084006D5; + stringPtr = BattleText_SentOutSingle10; } else { if (gBattleTypeFlags & BATTLE_TYPE_LINK) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI) - stringPtr = gUnknown_0840068C; + stringPtr = BattleText_SentOutSingle5; else - stringPtr = gUnknown_0840067C; + stringPtr = BattleText_SentOutSingle4; } else { - stringPtr = gUnknown_08400622; + stringPtr = BattleText_SentOutSingle2; #ifdef GERMAN stringPtr = de_sub_804110C(0xFFFF, stringPtr); #endif @@ -299,7 +367,7 @@ void BufferStringBattle(u16 stringID) else StringCopy(gBattleTextBuff2, gMoveNames[gStringInfo->currentMove]); sub_8121D74(gBattleTextBuff2); - stringPtr = gUnknown_084007BD; + stringPtr = BattleText_OpponentUsedMove; break; case 5: // battle end if (gBattleTextBuff1[0] & 0x80) @@ -308,13 +376,13 @@ void BufferStringBattle(u16 stringID) if (GetBankSide(gActiveBank) == 1 && gBattleTextBuff1[0] != 3) gBattleTextBuff1[0] ^= 3; if (gBattleTextBuff1[0] == BATTLE_LOST || gBattleTextBuff1[0] == BATTLE_DREW) - stringPtr = gUnknown_083FFEFC; + stringPtr = BattleText_GotAwaySafely; else { if (gBattleTypeFlags & BATTLE_TYPE_MULTI) - stringPtr = gUnknown_083FFFF7; + stringPtr = BattleText_FledDouble; else - stringPtr = gUnknown_083FFFEA; + stringPtr = BattleText_FledSingle; } } else @@ -326,13 +394,13 @@ void BufferStringBattle(u16 stringID) switch (gBattleTextBuff1[0]) { case BATTLE_WON: - stringPtr = gUnknown_083FFF6A; + stringPtr = BattleText_PlayerDefeatedTrainers; break; case BATTLE_LOST: - stringPtr = gUnknown_083FFF99; + stringPtr = BattleText_PlayerLostTrainers; break; case BATTLE_DREW: - stringPtr = gUnknown_083FFFCB; + stringPtr = BattleText_PlayerTiedTrainers; break; } } @@ -341,13 +409,13 @@ void BufferStringBattle(u16 stringID) switch (gBattleTextBuff1[0]) { case BATTLE_WON: - stringPtr = gUnknown_083FFF56; + stringPtr = BattleText_PlayerDefeatedTrainer; break; case BATTLE_LOST: - stringPtr = gUnknown_083FFF81; + stringPtr = BattleText_PlayerLostTrainer; break; case BATTLE_DREW: - stringPtr = gUnknown_083FFFB3; + stringPtr = BattleText_PlayerTiedTrainer; break; } } @@ -414,9 +482,9 @@ extern u8 *de_sub_8041024(s32, u32); if (GetBankSide(bank) != 0) \ { \ if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) \ - toCpy = gUnknown_08400797; \ + toCpy = BattleText_Foe; \ else \ - toCpy = gUnknown_08400791; \ + toCpy = BattleText_Wild; \ while (*toCpy != EOS) \ { \ dst[dstID] = *toCpy; \ @@ -445,9 +513,9 @@ extern u8 *de_sub_8041024(s32, u32); toCpy++; \ } \ if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) \ - toCpy = gUnknown_08400797; \ + toCpy = BattleText_Foe; \ else \ - toCpy = gUnknown_08400791; \ + toCpy = BattleText_Wild; \ } \ else \ { \ @@ -590,14 +658,14 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst) { StringCopy(text, gEnigmaBerries[gStringBank].name); #ifdef ENGLISH - StringAppend(text, gUnknown_08400A85); + StringAppend(text, BattleText_Berry); #else - de_sub_8073174(text, gUnknown_08400A85); + de_sub_8073174(text, BattleText_Berry); #endif toCpy = text; } else - toCpy = gUnknown_08400A78; + toCpy = BattleText_EnigmaBerry; } else { @@ -694,45 +762,45 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst) break; case 35: // lanette pc if (FlagGet(SYS_PC_LANETTE)) - toCpy = gUnknown_084009F7; + toCpy = BattleText_Lanette; else - toCpy = gUnknown_084009ED; + toCpy = BattleText_Someone; break; case 38: if (GetBankSide(gBankAttacker) == 0) - toCpy = gUnknown_084007AC; + toCpy = BattleText_Ally2; else - toCpy = gUnknown_084007A7; + toCpy = BattleText_Foe3; break; case 39: if (GetBankSide(gBankTarget) == 0) - toCpy = gUnknown_084007AC; + toCpy = BattleText_Ally2; else - toCpy = gUnknown_084007A7; + toCpy = BattleText_Foe3; break; case 36: if (GetBankSide(gBankAttacker) == 0) - toCpy = gUnknown_084007A1; + toCpy = BattleText_Ally; else - toCpy = gUnknown_0840079C; + toCpy = BattleText_Foe2; break; case 37: if (GetBankSide(gBankTarget) == 0) - toCpy = gUnknown_084007A1; + toCpy = BattleText_Ally; else - toCpy = gUnknown_0840079C; + toCpy = BattleText_Foe2; break; case 40: if (GetBankSide(gBankAttacker) == 0) - toCpy = gUnknown_084007B7; + toCpy = BattleText_Ally3; else - toCpy = gUnknown_084007B2; + toCpy = BattleText_Foe4; break; case 41: if (GetBankSide(gBankTarget) == 0) - toCpy = gUnknown_084007B7; + toCpy = BattleText_Ally3; else - toCpy = gUnknown_084007B2; + toCpy = BattleText_Foe4; break; } //if (toCpy != NULL) really GF, why did you forget about this? @@ -819,9 +887,9 @@ void StrCpyDecodeBattleTextBuff(u8* src, u8* dst) else { if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) - StringAppend(dst, gUnknown_08400797); + StringAppend(dst, BattleText_Foe); else - StringAppend(dst, gUnknown_08400791); + StringAppend(dst, BattleText_Wild); GetMonData(&gEnemyParty[src[srcID + 2]], MON_DATA_NICKNAME, text); } StringGetEnd10(text); @@ -839,9 +907,9 @@ void StrCpyDecodeBattleTextBuff(u8* src, u8* dst) StringGetEnd10(text); StringAppend(dst, text); if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) - StringAppend(dst, gUnknown_08400797); + StringAppend(dst, BattleText_Foe); else - StringAppend(dst, gUnknown_08400791); + StringAppend(dst, BattleText_Wild); } #endif srcID += 3; @@ -881,13 +949,13 @@ void StrCpyDecodeBattleTextBuff(u8* src, u8* dst) { StringCopy(dst, gEnigmaBerries[gStringBank].name); #ifdef ENGLISH - StringAppend(dst, gUnknown_08400A85); + StringAppend(dst, BattleText_Berry); #else - de_sub_8073174(dst, gUnknown_08400A85); + de_sub_8073174(dst, BattleText_Berry); #endif } else - StringAppend(dst, gUnknown_08400A78); + StringAppend(dst, BattleText_EnigmaBerry); } else CopyItemName(hword, dst); @@ -917,9 +985,9 @@ void sub_8121D1C(u8* textBuff) if (counter >= 0) { if (counter <= 2) - StringCopy(textBuff, gUnknown_08400E5E); // is + StringCopy(textBuff, BattleText_Format10); // is else if (counter <= 4) - StringCopy(textBuff, gUnknown_08400E62); // 's + StringCopy(textBuff, BattleText_Format11); // 's } } @@ -942,19 +1010,19 @@ void sub_8121D74(u8* dst) switch (counter) { case 0: - StringCopy(dst, gUnknown_084007C8); + StringCopy(dst, BattleText_Exclamation2); break; case 1: - StringCopy(dst, gUnknown_084007CA); + StringCopy(dst, BattleText_Exclamation3); break; case 2: - StringCopy(dst, gUnknown_084007CC); + StringCopy(dst, BattleText_Exclamation4); break; case 3: - StringCopy(dst, gUnknown_084007CE); + StringCopy(dst, BattleText_Exclamation5); break; case 4: - StringCopy(dst, gUnknown_084007D0); + StringCopy(dst, BattleText_Exclamation); break; } } diff --git a/src/data/battle_strings_de.h b/src/data/battle_strings_de.h new file mode 100755 index 000000000..5289ce4e0 --- /dev/null +++ b/src/data/battle_strings_de.h @@ -0,0 +1,1612 @@ +#include "moves.h" + +enum +{ + BATTLE_TEXT_UnknownString = 12, + BATTLE_TEXT_GainExpPoints, + BATTLE_TEXT_GrewLevel, + BATTLE_TEXT_LearnedMove, + BATTLE_TEXT_TryingToLearnMove, + BATTLE_TEXT_CantLearnMore, + BATTLE_TEXT_DeleteMove, + BATTLE_TEXT_DeletedMove, + BATTLE_TEXT_StopLearning, + BATTLE_TEXT_DidNotLearn, + BATTLE_TEXT_LearnedMove2, + BATTLE_TEXT_AttackMissed, + BATTLE_TEXT_ProtectedItself, + BATTLE_TEXT_StatNoHigher, + BATTLE_TEXT_AvoidedDamage, + BATTLE_TEXT_DoesntAffect, + BATTLE_TEXT_AttackingFainted, + BATTLE_TEXT_DefendingFainted, + BATTLE_TEXT_WinningPrize, + BATTLE_TEXT_OutOfUsablePoke, + BATTLE_TEXT_WhitedOut, + BATTLE_TEXT_PreventEscape, + BATTLE_TEXT_HitMulti, + BATTLE_TEXT_FellAsleep, + BATTLE_TEXT_MadeAsleep, + BATTLE_TEXT_DefendingAsleep, + BATTLE_TEXT_AttackingAsleep, + BATTLE_TEXT_WasntAffected, + BATTLE_TEXT_Poisoned, + BATTLE_TEXT_Poisoned2, + BATTLE_TEXT_PoisonHurt, + BATTLE_TEXT_AlreadyPoisoned, + BATTLE_TEXT_BadlyPoisoned, + BATTLE_TEXT_EnergyDrained, + BATTLE_TEXT_Burned, + BATTLE_TEXT_Burned2, + BATTLE_TEXT_BurnHurt, + BATTLE_TEXT_Frozen, + BATTLE_TEXT_Frozen2, + BATTLE_TEXT_FrozenSolid, + BATTLE_TEXT_DefendingDefrosted, + BATTLE_TEXT_AttackingDefrosted, + BATTLE_TEXT_Defrosted, + BATTLE_TEXT_Paralyzed, + BATTLE_TEXT_Paralyzed2, + BATTLE_TEXT_Paralyzed3, + BATTLE_TEXT_AlreadyParalyzed, + BATTLE_TEXT_ParalysisHealed, + BATTLE_TEXT_DreamEaten, + BATTLE_TEXT_AttackingStatNoHigher, + BATTLE_TEXT_DefendingStatNoHigher, + BATTLE_TEXT_StoppedWorking, + BATTLE_TEXT_StoppedWorking2, + BATTLE_TEXT_Confused, + BATTLE_TEXT_ConfusionSnapOut, + BATTLE_TEXT_BecameConfused, + BATTLE_TEXT_AlreadyConfused, + BATTLE_TEXT_FellLove, + BATTLE_TEXT_InLoveWith, + BATTLE_TEXT_ImmobilizedBy, + BATTLE_TEXT_BlownAway, + BATTLE_TEXT_TypeTransform, + BATTLE_TEXT_Flinched, + BATTLE_TEXT_RegainedHealth, + BATTLE_TEXT_HPFull, + BATTLE_TEXT_RaisedSpDef, + BATTLE_TEXT_RaisedDefense, + BATTLE_TEXT_CoveredVeil, + BATTLE_TEXT_SafeguardActive, + BATTLE_TEXT_SafeguardFaded, + BATTLE_TEXT_WentToSleep, + BATTLE_TEXT_SpeltHealthy, + BATTLE_TEXT_WhipWhirlwind, + BATTLE_TEXT_TookSunlight, + BATTLE_TEXT_LoweredHead, + BATTLE_TEXT_IsGlowing, + BATTLE_TEXT_FlewHigh, + BATTLE_TEXT_DugHole, + BATTLE_TEXT_SqueezedBind, + BATTLE_TEXT_TrappedVortex, + BATTLE_TEXT_Wrapped, + BATTLE_TEXT_Clamped, + BATTLE_TEXT_HurtBy, + BATTLE_TEXT_FreedFrom, + BATTLE_TEXT_KeptGoingCrash, + BATTLE_TEXT_MistShroud, + BATTLE_TEXT_MistProtect, + BATTLE_TEXT_GetPumped, + BATTLE_TEXT_HitRecoil, + BATTLE_TEXT_ProtectedItself2, + BATTLE_TEXT_SandBuffeted, + BATTLE_TEXT_HailStricken, + BATTLE_TEXT_WasSeeded, + BATTLE_TEXT_EvadedAttack, + BATTLE_TEXT_HealthSapped, + BATTLE_TEXT_FastAsleep, + BATTLE_TEXT_WokeUp, + BATTLE_TEXT_UproarAwake, + BATTLE_TEXT_UproarWoke, + BATTLE_TEXT_UproarCaused, + BATTLE_TEXT_UproarMaking, + BATTLE_TEXT_CalmedDown, + BATTLE_TEXT_UproarCantSleep, + BATTLE_TEXT_Stockpiled, + BATTLE_TEXT_StockpiledCant, + BATTLE_TEXT_UproarCantSleep2, + BATTLE_TEXT_UproarKeptAwake, + BATTLE_TEXT_StayedAwake, + BATTLE_TEXT_StoringEnergy, + BATTLE_TEXT_UnleashedEnergy, + BATTLE_TEXT_FatigueConfuse, + BATTLE_TEXT_PickedUpYen, + BATTLE_TEXT_Unaffected, + BATTLE_TEXT_Transformed, + BATTLE_TEXT_SubMade, + BATTLE_TEXT_SubAlready, + BATTLE_TEXT_SubTookDamage, + BATTLE_TEXT_SubFaded, + BATTLE_TEXT_MustRecharge, + BATTLE_TEXT_RageBuilding, + BATTLE_TEXT_MoveWasDisabled, + BATTLE_TEXT_MoveIsDisabled, + BATTLE_TEXT_DisabledNoMore, + BATTLE_TEXT_EncoreGot, + BATTLE_TEXT_EncoreEnded, + BATTLE_TEXT_TookAim, + BATTLE_TEXT_SketchedMove, + BATTLE_TEXT_DestinyBondTake, + BATTLE_TEXT_DestinyBondTaken, + BATTLE_TEXT_ReducedBy, + BATTLE_TEXT_StoleSomething, + BATTLE_TEXT_CantEscapeNow, + BATTLE_TEXT_NightmareStart, + BATTLE_TEXT_NightmareLock, + BATTLE_TEXT_CurseLay, + BATTLE_TEXT_CurseAfflict, + BATTLE_TEXT_SpikesScattered, + BATTLE_TEXT_SpikesHurt, + BATTLE_TEXT_IdentifiedPoke, + BATTLE_TEXT_PerishSongFell, + BATTLE_TEXT_BracedItself, + BATTLE_TEXT_EnduredHit, + BATTLE_TEXT_MagnitudeCount, + BATTLE_TEXT_CutHPMaxATK, + BATTLE_TEXT_CopyStatChanges, + BATTLE_TEXT_GotFreeFrom, + BATTLE_TEXT_LeechShed, + BATTLE_TEXT_SpikesBlownAway, + BATTLE_TEXT_FledBattle, + BATTLE_TEXT_ForesawAttack, + BATTLE_TEXT_TookAttack, + BATTLE_TEXT_PokeAttack, + BATTLE_TEXT_CenterAttention, + BATTLE_TEXT_ChargingPower, + BATTLE_TEXT_NaturePower, + BATTLE_TEXT_StatusNormal, + BATTLE_TEXT_NoMovesLeft, + BATTLE_TEXT_TormentSubject, + BATTLE_TEXT_TormentNoUse, + BATTLE_TEXT_TightenFocus, + BATTLE_TEXT_TauntFell, + BATTLE_TEXT_TauntNoUse, + BATTLE_TEXT_ReadyToHelp, + BATTLE_TEXT_SwitchedItems, + BATTLE_TEXT_CopiedObject, + BATTLE_TEXT_WishMade, + BATTLE_TEXT_WishTrue, + BATTLE_TEXT_PlantedRoots, + BATTLE_TEXT_AbsorbNutrients, + BATTLE_TEXT_AnchoredItself, + BATTLE_TEXT_DrowsyMade, + BATTLE_TEXT_KnockedOffItem, + BATTLE_TEXT_AbilitySwap, + BATTLE_TEXT_SealedMove, + BATTLE_TEXT_SealedNoUse, + BATTLE_TEXT_GrudgeBear, + BATTLE_TEXT_GrudgeLosePP, + BATTLE_TEXT_ShroudedItself, + BATTLE_TEXT_MagicCoatBounce, + BATTLE_TEXT_AwaitMove, + BATTLE_TEXT_SnatchedMove, + BATTLE_TEXT_RainMade, + BATTLE_TEXT_SpeedRisen, + BATTLE_TEXT_ProtectedBy, + BATTLE_TEXT_PreventedBy, + BATTLE_TEXT_HPRestoredUsing, + BATTLE_TEXT_MadeType, + BATTLE_TEXT_PreventedPara, + BATTLE_TEXT_PreventedRomance, + BATTLE_TEXT_PreventedPoison, + BATTLE_TEXT_PreventedConfusion, + BATTLE_TEXT_RaisedFirePower, + BATTLE_TEXT_AnchorsItself, + BATTLE_TEXT_CutsAttack, + BATTLE_TEXT_PreventedStatLoss, + BATTLE_TEXT_HurtOther, + BATTLE_TEXT_Traced, + BATTLE_TEXT_Sharply, + BATTLE_TEXT_Rose, + BATTLE_TEXT_Harshly, + BATTLE_TEXT_Fell, + BATTLE_TEXT_UnknownString7, + BATTLE_TEXT_UnknownString3, + BATTLE_TEXT_UnknownString5, + BATTLE_TEXT_UnknownString6, + BATTLE_TEXT_Critical, + BATTLE_TEXT_GrandSlam, + BATTLE_TEXT_MoveForget123, + BATTLE_TEXT_MoveForgetAnd, + BATTLE_TEXT_NotEffective, + BATTLE_TEXT_SuperEffective, + BATTLE_TEXT_GotAwaySafely, + BATTLE_TEXT_FledWild, + BATTLE_TEXT_NoRunning, + BATTLE_TEXT_CantEscape2, + BATTLE_TEXT_BirchDontLeaveMe, + BATTLE_TEXT_Nothing, + BATTLE_TEXT_Failed, + BATTLE_TEXT_HurtItself, + BATTLE_TEXT_MirrorFail, + BATTLE_TEXT_RainStart, + BATTLE_TEXT_PourStart, + BATTLE_TEXT_RainCont1, + BATTLE_TEXT_PourCont, + BATTLE_TEXT_RainStop, + BATTLE_TEXT_SandBrewed, + BATTLE_TEXT_SandRages, + BATTLE_TEXT_SandSubsided, + BATTLE_TEXT_SunBright, + BATTLE_TEXT_SunStrong, + BATTLE_TEXT_SunFaded, + BATTLE_TEXT_HailStart, + BATTLE_TEXT_HailCont, + BATTLE_TEXT_HailStop, + BATTLE_TEXT_SpitUpFail, + BATTLE_TEXT_SwallowFail, + BATTLE_TEXT_WindHeatWave, + BATTLE_TEXT_StatElim, + BATTLE_TEXT_CoinScatter, + BATTLE_TEXT_SubWeak, + BATTLE_TEXT_PainSplit, + BATTLE_TEXT_BellChime, + BATTLE_TEXT_PerishSong, + BATTLE_TEXT_NoPP1, + BATTLE_TEXT_NoPP2, + BATTLE_TEXT_Used1, + BATTLE_TEXT_TutorialUsed, + BATTLE_TEXT_BlockBall, + BATTLE_TEXT_DontBeAThief, + BATTLE_TEXT_DodgeBall, + BATTLE_TEXT_MissPoke, + BATTLE_TEXT_BallBrokeOhNo, + BATTLE_TEXT_BallBrokeAppeared, + BATTLE_TEXT_BallBrokeAlmost, + BATTLE_TEXT_BallBrokeSoClose, + BATTLE_TEXT_BallCaught1, + BATTLE_TEXT_BallCaught2, + BATTLE_TEXT_GiveNickname, + BATTLE_TEXT_SentToPC, + BATTLE_TEXT_AddedToDex, + BATTLE_TEXT_Raining, + BATTLE_TEXT_Sandstorm, + BATTLE_TEXT_CantEscape, + BATTLE_TEXT_IgnoredOrdersSLP, + BATTLE_TEXT_IgnoredOrders, + BATTLE_TEXT_BeganNap, + BATTLE_TEXT_LoafingAround, + BATTLE_TEXT_WontObey, + BATTLE_TEXT_TurnedAway, + BATTLE_TEXT_NotNotice, + BATTLE_TEXT_WillSwitch, + BATTLE_TEXT_CreptCloser, + BATTLE_TEXT_CantGetCloser, + BATTLE_TEXT_WatchingCarefully, + BATTLE_TEXT_CuriousAbout, + BATTLE_TEXT_EnthralledBy, + BATTLE_TEXT_IgnoredThing, + BATTLE_TEXT_ThrewBlock, + BATTLE_TEXT_SafariOver, + BATTLE_TEXT_CuredParalysis, + BATTLE_TEXT_CuredPoison, + BATTLE_TEXT_CuredBurn, + BATTLE_TEXT_CuredFreeze, + BATTLE_TEXT_CuredSleep, + BATTLE_TEXT_CuredConfusion, + BATTLE_TEXT_CuredStatus, + BATTLE_TEXT_RestoredHealth, + BATTLE_TEXT_RestoredPP, + BATTLE_TEXT_RestoredStatus, + BATTLE_TEXT_RestoredHPLittle, + BATTLE_TEXT_ChoiceBand, + BATTLE_TEXT_FocusSash, + BATTLE_TEXT_Terminator2, + BATTLE_TEXT_PreventedBurn, + BATTLE_TEXT_BlocksOther, + BATTLE_TEXT_RestoredHPByItem, + BATTLE_TEXT_WhipSandstorm, + BATTLE_TEXT_PreventedLoss, + BATTLE_TEXT_InfatuatedPoke, + BATTLE_TEXT_MadeIneffective, + BATTLE_TEXT_CuredProblem, + BATTLE_TEXT_OozeSuckup, + BATTLE_TEXT_Transformed2, + BATTLE_TEXT_ElecWeakened, + BATTLE_TEXT_FireWeakened, + BATTLE_TEXT_HidUnderwater, + BATTLE_TEXT_SprangUp, + BATTLE_TEXT_CantForgetHM, + BATTLE_TEXT_FoundOne, + BATTLE_TEXT_PlayerDefeatedTrainer2, + BATTLE_TEXT_SoothingAroma, + BATTLE_TEXT_CantUseItems, + BATTLE_TEXT_UnknownString2, + BATTLE_TEXT_UnknownString4, + BATTLE_TEXT_HustleUse, + BATTLE_TEXT_MadeUseless, + BATTLE_TEXT_SandTombTrapped, + BATTLE_TEXT_Terminator, + BATTLE_TEXT_BoostedExp, + BATTLE_TEXT_SunIntensified, + BATTLE_TEXT_GroundMoveNegate, + BATTLE_TEXT_WallyBall, + BATTLE_TEXT_TookAttack2, + BATTLE_TEXT_ChoseDestiny, + BATTLE_TEXT_LostFocus, + BATTLE_TEXT_UseNext, + BATTLE_TEXT_FledUsingItem, + BATTLE_TEXT_FledUsingOther, + BATTLE_TEXT_DraggedOut, + BATTLE_TEXT_PreventedOther, + BATTLE_TEXT_NormalizedStatus, + BATTLE_TEXT_Used2, + BATTLE_TEXT_BoxFull, + BATTLE_TEXT_AvoidedAttack, + BATTLE_TEXT_MadeIneffective2, + BATTLE_TEXT_PreventedFlinching, + BATTLE_TEXT_AlreadyBurned, + BATTLE_TEXT_StatNoLower, + BATTLE_TEXT_BlocksOther2, + BATTLE_TEXT_WoreOff, + BATTLE_TEXT_RaisedDefenseLittle, + BATTLE_TEXT_RaisedSpDefLittle, + BATTLE_TEXT_BrokeWall, + BATTLE_TEXT_PreventedOther2, + BATTLE_TEXT_CuredOfProblem, + BATTLE_TEXT_AttackingCantEscape, + BATTLE_TEXT_Obtained1, + BATTLE_TEXT_Obtained2, + BATTLE_TEXT_Obtained3, + BATTLE_TEXT_NoEffect, + BATTLE_TEXT_NoEffectOn, +}; + +const u8 BattleText_UnknownString[] = _("{STRING 33}"); +const u8 BattleText_GainExpPoints[] = _("{STRING 0} erhält{PLAYER}\n{STRING 42} E-Punkte!\p"); +const u8 BattleText_Terminator[] = _(""); +const u8 BattleText_BoostedExp[] = _(" spezielle"); +const u8 BattleText_GrewLevel[] = _("{STRING 0} erreicht\nLv. {PLAYER}!{UNKNOWN_A}\p"); +const u8 BattleText_LearnedMove[] = _("{STRING 0} erlernt\n{PLAYER}!{UNKNOWN_A}\p"); +const u8 BattleText_TryingToLearnMove[] = _("{STRING 0} versucht,\n{PLAYER} zu lernen.\p"); +const u8 BattleText_CantLearnMore[] = _("Aber {STRING 0} kann nicht\nmehr als vier Attacken erlernen.\p"); +const u8 BattleText_DeleteMove[] = _("Soll eine Attacke zu Gunsten von\n{PLAYER} vergessen werden?"); +const u8 BattleText_DeletedMove[] = _("{STRING 0} hat\n{PLAYER} vergessen!\p"); +const u8 BattleText_StopLearning[] = _("{PAUSE 32}{PLAYER}\nnicht erlernen?"); +const u8 BattleText_DidNotLearn[] = _("{STRING 0} hat {PLAYER}\nnicht erlernt.\p"); +const u8 BattleText_UseNext[] = _("Nächstes POKéMON einsetzen?"); +const u8 BattleText_AttackMissed[] = _("Attacke von {EVIL_LEGENDARY}\nging daneben!"); +const u8 BattleText_ProtectedItself[] = _("{GOOD_LEGENDARY}\nschützt sich selbst!"); +const u8 BattleText_AvoidedDamage[] = _("{GOOD_LEGENDARY} vermeidet\nSchaden mit {STRING 22}!"); +const u8 BattleText_GroundMoveNegate[] = _("{GOOD_LEGENDARY} wehrt BODEN-\nAttacken mit {STRING 22} ab!"); +const u8 BattleText_AvoidedAttack[] = _("{GOOD_LEGENDARY} wehrt die\nAttacke ab!"); +const u8 BattleText_DoesntAffect[] = _("Es hat keine Wirkung auf\n{GOOD_LEGENDARY}..."); +const u8 BattleText_AttackingFainted[] = _("{EVIL_LEGENDARY}\nwurde besiegt!\p"); +const u8 BattleText_DefendingFainted[] = _("{GOOD_LEGENDARY}\nwurde besiegt!\p"); +const u8 BattleText_WinningPrize[] = _("{STRING 32} gewinnt ¥{STRING 0}!\p"); +const u8 BattleText_OutOfUsablePoke[] = _("{STRING 32} hat kein\nkampffähiges POKéMON mehr!\p"); +const u8 BattleText_WhitedOut[] = _("{STRING 32} fällt in Ohnmacht!{PAUSE_UNTIL_PRESS}"); +const u8 BattleText_PreventEscape[] = _("{STRING 16} verhindert\neine Flucht mit {STRING 23}!\p"); +const u8 BattleText_CantEscape[] = _("Flucht unmöglich!\p"); +const u8 BattleText_AttackingCantEscape[] = _("{EVIL_LEGENDARY}\nkann nicht fliehen!"); +const u8 BattleText_HitMulti[] = _("{STRING 0}-mal getroffen!"); +const u8 BattleText_FellAsleep[] = _("{STRING 14}\nist eingeschlafen!"); +const u8 BattleText_MadeAsleep[] = _("{STRING 23} von\n{STRING 16} lässt\l{STRING 14} einschlafen!"); +const u8 BattleText_DefendingAsleep[] = _("{GOOD_LEGENDARY} schläft\nbereits!"); +const u8 BattleText_AttackingAsleep[] = _("{EVIL_LEGENDARY} schläft\nbereits!"); +const u8 BattleText_WasntAffected[] = _("{GOOD_LEGENDARY}\nist unversehrt!"); +const u8 BattleText_Poisoned[] = _("{STRING 14}\nwurde vergiftet!"); +const u8 BattleText_Poisoned2[] = _("{STRING 23} von\n{STRING 16} vergiftete\l{STRING 14}!"); +const u8 BattleText_PoisonHurt[] = _("{EVIL_LEGENDARY} wurde durch\nGift verletzt!"); +const u8 BattleText_AlreadyPoisoned[] = _("{GOOD_LEGENDARY} ist bereits\nvergiftet."); +const u8 BattleText_BadlyPoisoned[] = _("{STRING 14} wurde schwer\nvergiftet!"); +const u8 BattleText_EnergyDrained[] = _("{GOOD_LEGENDARY} wurde\nEnergie abgesaugt!"); +const u8 BattleText_Burned[] = _("{STRING 14} brennt!"); +const u8 BattleText_Burned2[] = _("{STRING 23} von\n{STRING 16} verbrennt\l{STRING 14}!"); +const u8 BattleText_BurnHurt[] = _("Die Verbrennung schadet\n{EVIL_LEGENDARY}!"); +const u8 BattleText_AlreadyBurned[] = _("{GOOD_LEGENDARY} brennt\nbereits."); +const u8 BattleText_Frozen[] = _("{STRING 14} erstarrt\nzu Eis!"); +const u8 BattleText_Frozen2[] = _("{STRING 14} wurde durch\n{STRING 23} von\l{STRING 16} eingefroren!"); +const u8 BattleText_FrozenSolid[] = _("{EVIL_LEGENDARY} ist\neingefroren!"); +const u8 BattleText_DefendingDefrosted[] = _("{GOOD_LEGENDARY} wurde\naufgetaut!"); +const u8 BattleText_AttackingDefrosted[] = _("{EVIL_LEGENDARY} wurde\naufgetaut!"); +const u8 BattleText_Defrosted[] = _("{EVIL_LEGENDARY} wurde\ndurch {STRING 17} aufgetaut!"); +const u8 BattleText_Paralyzed[] = _("{STRING 14} ist\nparalysiert! Es greift\leventuell nicht an!"); +const u8 BattleText_Paralyzed2[] = _("{STRING 23} von\n{STRING 16} paralysierte\p{STRING 14}!\nEs greift eventuell nicht an!"); +const u8 BattleText_Paralyzed3[] = _("{EVIL_LEGENDARY} ist\nparalysiert! Es kann\lnicht angreifen!"); +const u8 BattleText_AlreadyParalyzed[] = _("{GOOD_LEGENDARY} ist\nbereits paralysiert!"); +const u8 BattleText_ParalysisHealed[] = _("{GOOD_LEGENDARY} wurde von der\nParalyse geheilt!"); +const u8 BattleText_DreamEaten[] = _("Der Traum von {GOOD_LEGENDARY}\nwurde gefressen!"); +const u8 BattleText_AttackingStatNoHigher[] = _("{STRING 0} von\n{EVIL_LEGENDARY} kann nicht\lmehr erhöht werden!"); +const u8 BattleText_DefendingStatNoHigher[] = _("{STRING 0} von\n{GOOD_LEGENDARY} kann nicht\lweiter gesenkt werden!"); +const u8 BattleText_StoppedWorking[] = _("{STRING 0} in deinem Team\nfunktioniert nicht mehr!"); +const u8 BattleText_StoppedWorking2[] = _("{STRING 0} des Gegners\nfunktioniert nicht mehr!"); +const u8 BattleText_Confused[] = _("{EVIL_LEGENDARY} ist\nverwirrt!"); +const u8 BattleText_ConfusionSnapOut[] = _("{EVIL_LEGENDARY} ist nicht\nmehr verwirrt!"); +const u8 BattleText_BecameConfused[] = _("{STRING 14} wurde\nverwirrt!"); +const u8 BattleText_AlreadyConfused[] = _("{GOOD_LEGENDARY} ist\nbereits verwirrt!"); +const u8 BattleText_FellLove[] = _("{GOOD_LEGENDARY}\nhat sich verliebt!"); +const u8 BattleText_InLoveWith[] = _("{EVIL_LEGENDARY} hat sich in\n{STRING 16} verliebt!"); +const u8 BattleText_ImmobilizedBy[] = _("{EVIL_LEGENDARY} ist starr\nvor Liebe!"); +const u8 BattleText_BlownAway[] = _("{GOOD_LEGENDARY} wurde\nweggeweht!"); +const u8 BattleText_TypeTransform[] = _("{EVIL_LEGENDARY} verwandelt\nsich zu Typ {STRING 0}!"); +const u8 BattleText_Flinched[] = _("{EVIL_LEGENDARY} schreckt\nzurück!"); +const u8 BattleText_RegainedHealth[] = _("{GOOD_LEGENDARY} erholt sich!"); +const u8 BattleText_HPFull[] = _("{GOOD_LEGENDARY} hat alle KP!"); +const u8 BattleText_RaisedSpDef[] = _("{STRING 17} von\n{STRING 38} erhöht\ldie SP. VER."); +const u8 BattleText_RaisedSpDefLittle[] = _("Die SP. VER. wird etwas durch\n{STRING 17} von\l{STRING 38} erhöht."); +const u8 BattleText_RaisedDefense[] = _("{STRING 17} von\n{STRING 38}\lerhöht die VERTEIDIGUNG!"); +const u8 BattleText_RaisedDefenseLittle[] = _("{STRING 17} von\n{STRING 38}\lerhöht etwas die VERTEIDIGUNG!"); +const u8 BattleText_CoveredVeil[] = _("{STRING 38} wird von\neinem Schleier umhüllt!"); +const u8 BattleText_SafeguardActive[] = _("{GOOD_LEGENDARY} wird durch\nBODYGUARD geschützt!"); +const u8 BattleText_SafeguardFaded[] = _("BODYGUARD von\n{STRING 40} lässt nach!"); +const u8 BattleText_WentToSleep[] = _("{EVIL_LEGENDARY} ist\neingeschlafen!"); +const u8 BattleText_SpeltHealthy[] = _("{EVIL_LEGENDARY} schläft und\nerholt sich!"); +const u8 BattleText_WhipWhirlwind[] = _("{EVIL_LEGENDARY} entfacht\neinen Wirbelwind!"); +const u8 BattleText_TookSunlight[] = _("{EVIL_LEGENDARY} absorbiert\nSonnenlicht!"); +const u8 BattleText_LoweredHead[] = _("{EVIL_LEGENDARY} zieht seinen\nKopf ein!"); +const u8 BattleText_IsGlowing[] = _("{EVIL_LEGENDARY} leuchtet!"); +const u8 BattleText_FlewHigh[] = _("{EVIL_LEGENDARY} fliegt\nhoch empor!"); +const u8 BattleText_DugHole[] = _("{EVIL_LEGENDARY} gräbt sich\nein!"); +const u8 BattleText_HidUnderwater[] = _("{EVIL_LEGENDARY} taucht\nunter!"); +const u8 BattleText_SprangUp[] = _("{EVIL_LEGENDARY} springt auf!"); +const u8 BattleText_SqueezedBind[] = _("{EVIL_LEGENDARY} setzt bei\n{GOOD_LEGENDARY}\lKLAMMERGRIFF ein!"); +const u8 BattleText_TrappedVortex[] = _("{GOOD_LEGENDARY} wurde in\neinem Strudel gefangen!"); +const u8 BattleText_SandTombTrapped[] = _("{GOOD_LEGENDARY} wurde durch\nSANDGRAB gefangen!"); +const u8 BattleText_Wrapped[] = _("{GOOD_LEGENDARY} wurde von\n{EVIL_LEGENDARY} umWICKELt!"); +const u8 BattleText_Clamped[] = _("{GOOD_LEGENDARY} wurde von\n{EVIL_LEGENDARY} geSCHNAPPT!"); +const u8 BattleText_HurtBy[] = _("{EVIL_LEGENDARY} wurde durch\n{STRING 0} verletzt!"); +const u8 BattleText_FreedFrom[] = _("{EVIL_LEGENDARY} wurde von\n{STRING 0} befreit!"); +const u8 BattleText_KeptGoingCrash[] = _("{EVIL_LEGENDARY} macht weiter\nund bricht zusammen!"); +const u8 BattleText_MistShroud[] = _("{STRING 38} wird in\nWEISSNEBEL gehüllt!"); +const u8 BattleText_MistProtect[] = _("{STRING 16} wird durch\nWEISSNEBEL geschützt!"); +const u8 BattleText_GetPumped[] = _("{EVIL_LEGENDARY} pumpt\nsich auf!"); +const u8 BattleText_HitRecoil[] = _("{EVIL_LEGENDARY} wurde vom\nRückstoß getroffen!"); +const u8 BattleText_ProtectedItself2[] = _("{EVIL_LEGENDARY} schützt\nsich selbst!"); +const u8 BattleText_SandBuffeted[] = _("{EVIL_LEGENDARY} wird vom\nSandsturm getroffen!"); +const u8 BattleText_HailStricken[] = _("{EVIL_LEGENDARY} wird vom\nHAGELSTURM getroffen!"); +const u8 BattleText_WoreOff[] = _("{STRING 0} von\n{STRING 36} lässt nach!"); +const u8 BattleText_WasSeeded[] = _("{GOOD_LEGENDARY} wurde\nbepflanzt!"); +const u8 BattleText_EvadedAttack[] = _("{GOOD_LEGENDARY} ist\nausgewichen!"); +const u8 BattleText_HealthSapped[] = _("EGELSAMEN schadet\n{EVIL_LEGENDARY}!"); +const u8 BattleText_FastAsleep[] = _("{EVIL_LEGENDARY} schläft tief\nund fest."); +const u8 BattleText_WokeUp[] = _("{EVIL_LEGENDARY} ist\naufgewacht!"); +const u8 BattleText_UproarAwake[] = _("AUFRUHR von {STRING 16}\nhält es wach!"); +const u8 BattleText_UproarWoke[] = _("{EVIL_LEGENDARY} wird durch\nAUFRUHR wach!"); +const u8 BattleText_UproarCaused[] = _("{EVIL_LEGENDARY} verursacht\nAUFRUHR!"); +const u8 BattleText_UproarMaking[] = _("{EVIL_LEGENDARY} macht\neinen AUFRUHR!"); +const u8 BattleText_CalmedDown[] = _("{EVIL_LEGENDARY}\nberuhigt sich."); +const u8 BattleText_UproarCantSleep[] = _("{GOOD_LEGENDARY} kann bei dem\nAUFRUHR nicht schlafen!"); +const u8 BattleText_Stockpiled[] = _("{EVIL_LEGENDARY} HORTET\n{STRING 0}!"); +const u8 BattleText_StockpiledCant[] = _("{EVIL_LEGENDARY} kann nicht\nweiter HORTEN!"); +const u8 BattleText_UproarCantSleep2[] = _("{GOOD_LEGENDARY} kann bei dem\nAUFRUHR nicht schlafen!"); +const u8 BattleText_UproarKeptAwake[] = _("Aber der AUFRUHR hält\n{GOOD_LEGENDARY} wach!"); +const u8 BattleText_StayedAwake[] = _("{GOOD_LEGENDARY} hält sich mit\n{STRING 22} wach!"); +const u8 BattleText_StoringEnergy[] = _("{EVIL_LEGENDARY} speichert\nEnergie!"); +const u8 BattleText_UnleashedEnergy[] = _("{EVIL_LEGENDARY} erzeugt\nEnergie!"); +const u8 BattleText_FatigueConfuse[] = _("{EVIL_LEGENDARY} ist vor\nErschöpfung verwirrt!"); +const u8 BattleText_PickedUpYen[] = _("{STRING 32} hebt\n¥{STRING 0} auf!\p"); +const u8 BattleText_Unaffected[] = _("{GOOD_LEGENDARY} ist\nunversehrt!"); +const u8 BattleText_Transformed[] = _("{EVIL_LEGENDARY} verwandelt\nsich in {STRING 0}!"); +const u8 BattleText_SubMade[] = _("{EVIL_LEGENDARY} setzt einen\nDELEGATOR ein!"); +const u8 BattleText_SubAlready[] = _("{EVIL_LEGENDARY} hat bereits\neinen DELEGATOR!"); +const u8 BattleText_SubTookDamage[] = _("Der DELEGATOR steckt den\nSchlag für {GOOD_LEGENDARY}\lein!\p"); +const u8 BattleText_SubFaded[] = _("DELEGATOR von\n{GOOD_LEGENDARY} lässt nach!\p"); +const u8 BattleText_MustRecharge[] = _("{EVIL_LEGENDARY} muss sich\nwieder aufladen!"); +const u8 BattleText_RageBuilding[] = _("{GOOD_LEGENDARY} verfällt in\nRASEREI!"); +const u8 BattleText_MoveWasDisabled[] = _("{STRING 0} von\n{GOOD_LEGENDARY}\lwurde blockiert!"); +const u8 BattleText_DisabledNoMore[] = _("{EVIL_LEGENDARY} ist nicht\nmehr blockiert!"); +const u8 BattleText_EncoreGot[] = _("{GOOD_LEGENDARY} gibt\neine ZUGABE!"); +const u8 BattleText_EncoreEnded[] = _("ZUGABE von {EVIL_LEGENDARY}\nist beendet!"); +const u8 BattleText_TookAim[] = _("{EVIL_LEGENDARY} zielt\nauf {GOOD_LEGENDARY}!"); +const u8 BattleText_SketchedMove[] = _("{EVIL_LEGENDARY} setzt\nNACHAHMER bei {STRING 0} ein!"); +const u8 BattleText_DestinyBondTake[] = _("{EVIL_LEGENDARY} versucht den\nGegner mit sich zu nehmen!"); +const u8 BattleText_DestinyBondTaken[] = _("{GOOD_LEGENDARY} nimmt\n{EVIL_LEGENDARY} mit sich!"); +const u8 BattleText_ReducedBy[] = _("{STRING 0} von\n{GOOD_LEGENDARY} wird um\l{PLAYER} reduziert!"); +const u8 BattleText_StoleSomething[] = _("{EVIL_LEGENDARY} stiehlt\n{STRING 19} von\l{GOOD_LEGENDARY}!"); +const u8 BattleText_CantEscapeNow[] = _("{GOOD_LEGENDARY} kann\nnicht fliehen!"); +const u8 BattleText_NightmareStart[] = _("{GOOD_LEGENDARY} bekommt\nNACHTMAHR!"); +const u8 BattleText_NightmareLock[] = _("{EVIL_LEGENDARY} ist in\nNACHTMAHR gefangen!"); +const u8 BattleText_CurseLay[] = _("{EVIL_LEGENDARY} nimmt einen\nTeil seiner KP und legt einen\lFLUCH auf {GOOD_LEGENDARY}!"); +const u8 BattleText_CurseAfflict[] = _("{EVIL_LEGENDARY} wurde durch\nFLUCH verletzt!"); +const u8 BattleText_SpikesScattered[] = _("POKéMON-Team von {STRING 37}\nverteilt STACHELN um sich!"); +const u8 BattleText_SpikesHurt[] = _("{STRING 16} wurde durch\nSTACHLER verletzt!"); +const u8 BattleText_IdentifiedPoke[] = _("{EVIL_LEGENDARY} erkennt\n{GOOD_LEGENDARY}!"); +const u8 BattleText_PerishSongFell[] = _("ABGESANG von {EVIL_LEGENDARY}\nsteht bei {STRING 0}!"); +const u8 BattleText_BracedItself[] = _("{EVIL_LEGENDARY} macht sich\nbereit!"); +const u8 BattleText_EnduredHit[] = _("{GOOD_LEGENDARY} setzt\nAUSDAUER ein!"); +const u8 BattleText_MagnitudeCount[] = _("INTENSITÄT {STRING 0}!"); +const u8 BattleText_CutHPMaxATK[] = _("{EVIL_LEGENDARY} nutzt seine\nKP und hebt den ANGR-Wert!"); +const u8 BattleText_CopyStatChanges[] = _("{EVIL_LEGENDARY} kopiert die\nStatusveränderungen\lvon {GOOD_LEGENDARY}!"); +const u8 BattleText_GotFreeFrom[] = _("{EVIL_LEGENDARY} befreit\nsich von {STRING 0}\lvon {GOOD_LEGENDARY}!"); +const u8 BattleText_LeechShed[] = _("{EVIL_LEGENDARY} befreit sich\nvon EGELSAMEN!"); +const u8 BattleText_SpikesBlownAway[] = _("{EVIL_LEGENDARY} blies den\nSTACHLER weg!"); +const u8 BattleText_FledBattle[] = _("{EVIL_LEGENDARY} ist\ngeflüchtet!"); +const u8 BattleText_ForesawAttack[] = _("{EVIL_LEGENDARY} sah eine\nAttacke voraus!"); +const u8 BattleText_TookAttack[] = _("{GOOD_LEGENDARY} wurde von\nder Attacke {STRING 0} getroffen!"); +const u8 BattleText_ChoseDestiny[] = _("{EVIL_LEGENDARY} wählte\n{STRING 17} als Vorhersehung aus!"); +const u8 BattleText_PokeAttack[] = _("Angriff von {STRING 0}!"); +const u8 BattleText_CenterAttention[] = _("{EVIL_LEGENDARY} zieht alle\nAufmerksamkeit auf sich!"); +const u8 BattleText_ChargingPower[] = _("{EVIL_LEGENDARY} lädt\nsich auf!"); +const u8 BattleText_NaturePower[] = _("NATUR-KRAFT wurde zu\n{STRING 17}!"); +const u8 BattleText_StatusNormal[] = _("Status von {EVIL_LEGENDARY}\nwird normal!"); +const u8 BattleText_TormentSubject[] = _("{GOOD_LEGENDARY} wird von\nFOLTERKNECHT unterworfen!"); +const u8 BattleText_TightenFocus[] = _("{EVIL_LEGENDARY} verstärkt\nseinen Fokus!"); +const u8 BattleText_TauntFell[] = _("{GOOD_LEGENDARY} fällt auf\nVERHÖHNER herein!"); +const u8 BattleText_ReadyToHelp[] = _("{EVIL_LEGENDARY} will\n{GOOD_LEGENDARY} helfen!"); +const u8 BattleText_SwitchedItems[] = _("{EVIL_LEGENDARY} tauscht\nItems mit anderem PKMN!"); +const u8 BattleText_Obtained1[] = _("{EVIL_LEGENDARY} erhält\n{STRING 0}."); +const u8 BattleText_Obtained2[] = _("{GOOD_LEGENDARY} erhält\n{PLAYER}."); +const u8 BattleText_Obtained3[] = _("{EVIL_LEGENDARY} erhält\n{STRING 0}.\p{GOOD_LEGENDARY} erhält\n{PLAYER}."); +const u8 BattleText_CopiedObject[] = _("{EVIL_LEGENDARY}\nkopiert {STRING 22} von\l{GOOD_LEGENDARY}!"); +const u8 BattleText_WishMade[] = _("{EVIL_LEGENDARY} spricht einen\nWUNSCHTRAUM aus!"); +const u8 BattleText_WishTrue[] = _("WUNSCHTRAUM von\n{STRING 0} erfüllt sich!"); +const u8 BattleText_PlantedRoots[] = _("{EVIL_LEGENDARY} pflanzt seine\nWurzeln!"); +const u8 BattleText_AbsorbNutrients[] = _("{EVIL_LEGENDARY} nimmt über\nseine Wurzeln Nährstoffe auf!"); +const u8 BattleText_AnchoredItself[] = _("{GOOD_LEGENDARY}\nverankert sich mit seinen Wurzeln!"); +const u8 BattleText_DrowsyMade[] = _("{EVIL_LEGENDARY} macht\n{GOOD_LEGENDARY} schläfrig!"); +const u8 BattleText_KnockedOffItem[] = _("{EVIL_LEGENDARY}\nentreißt {STRING 19} von\l{GOOD_LEGENDARY}!"); +const u8 BattleText_AbilitySwap[] = _("{EVIL_LEGENDARY} tauscht die\nFähigkeiten mit einem PKMN!"); +const u8 BattleText_SealedMove[] = _("{EVIL_LEGENDARY} versiegelt\ndie Attacke/n des Gegners!"); +const u8 BattleText_GrudgeBear[] = _("{EVIL_LEGENDARY} möchte, dass\nder Gegner ein NACHSPIEL erträgt!"); +const u8 BattleText_GrudgeLosePP[] = _("{STRING 0} von\n{EVIL_LEGENDARY} hat aufgrund\lvon NACHSPIEL alle AP verloren!"); +const u8 BattleText_ShroudedItself[] = _("{EVIL_LEGENDARY} verhüllt sich\nselbst in {STRING 17}!"); +const u8 BattleText_MagicCoatBounce[] = _("{STRING 17} von\n{EVIL_LEGENDARY} prallte am\lMAGIEMANTEL ab!"); +const u8 BattleText_AwaitMove[] = _("{EVIL_LEGENDARY} wartet auf\neine gegnerische Attacke!"); +const u8 BattleText_SnatchedMove[] = _("{GOOD_LEGENDARY} ÜBERNAHM\nAttacke von {STRING 16}!"); +const u8 BattleText_ElecWeakened[] = _("Die Stärke der Elektrizität\nwurde geschwächt!"); +const u8 BattleText_FireWeakened[] = _("Die Stärke des Feuers\nwurde geschwächt!"); +const u8 BattleText_FoundOne[] = _("{EVIL_LEGENDARY} hat 1\n{STRING 19} gefunden!"); +const u8 BattleText_SoothingAroma[] = _("Ein wohltuendes Aroma\nbreitet sich aus!"); +const u8 BattleText_CantUseItems[] = _("Hier können Items nicht eingesetzt\nwerden.{PAUSE 64}"); +const u8 BattleText_UnknownString2[] = _("Für {STRING 16} war\n{STRING 19} {STRING 0}"); +const u8 BattleText_HustleUse[] = _("{STRING 16} setzt\n{STRING 19} ein, um zu drängeln!"); +const u8 BattleText_LostFocus[] = _("{EVIL_LEGENDARY} hat seinen\nFokus verloren und kann\lnicht angreifen!"); +const u8 BattleText_DraggedOut[] = _("{GOOD_LEGENDARY} wurde\nauserwählt!\p"); +const u8 BattleText_BrokeWall[] = _("Die Mauer brach zusammen!"); +const u8 BattleText_NoEffect[] = _("Es ist wirkungslos!"); +const u8 BattleText_NoMovesLeft[] = _("{STRING 15} hat keine\nAttacken mehr übrig!\p"); +const u8 BattleText_MoveIsDisabled[] = _("{STRING 17} von\n{STRING 15} ist blockiert!\p"); +const u8 BattleText_TormentNoUse[] = _("{STRING 15} kann\naufgrund von FOLTERKNECHT\pdie Attacke nicht 2-mal\nhintereinander einsetzen!"); +const u8 BattleText_TauntNoUse[] = _("{STRING 15} kann\n{STRING 17} nach VERHÖHNER\lnicht einsetzen!\p"); +const u8 BattleText_SealedNoUse[] = _("{STRING 15} kann die ver-\nsiegelte Attacke {STRING 17}\lnicht einsetzen!\p"); +const u8 BattleText_RainMade[] = _("{STRING 23} von\n{STRING 16} lässt\les regnen!"); +const u8 BattleText_SpeedRisen[] = _("{STRING 23} von\n{STRING 16} erhöht\lseine INIT.!"); +const u8 BattleText_ProtectedBy[] = _("{GOOD_LEGENDARY} wurde durch\n{STRING 22} geschützt!"); +const u8 BattleText_PreventedBy[] = _("{STRING 22} von\n{GOOD_LEGENDARY} hindert\p{EVIL_LEGENDARY} daran,\n{STRING 17} einzusetzen!"); +const u8 BattleText_HPRestoredUsing[] = _("{GOOD_LEGENDARY} füllt KP mit\nHilfe von {STRING 22} auf!"); +const u8 BattleText_MadeUseless[] = _("{STRING 22} von\n{GOOD_LEGENDARY} hebt die\lWirkung von {STRING 17} auf!"); +const u8 BattleText_MadeType[] = _("{STRING 22} von\n{GOOD_LEGENDARY} macht es zu\leinem {STRING 0}-Typ!"); +const u8 BattleText_PreventedPara[] = _("{STRING 22} von\n{STRING 14} verhindert\leine Paralyse!"); +const u8 BattleText_PreventedRomance[] = _("{STRING 22} von\n{GOOD_LEGENDARY} verhindert\leine Romanze!"); +const u8 BattleText_PreventedPoison[] = _("{STRING 22} von\n{STRING 14} verhindert\leine Vergiftung!"); +const u8 BattleText_PreventedConfusion[] = _("{STRING 22} von\n{GOOD_LEGENDARY} verhindert\lVerwirrung!"); +const u8 BattleText_RaisedFirePower[] = _("{STRING 22} von\n{GOOD_LEGENDARY} erhöht die\lFEUER-Kraft!"); +const u8 BattleText_AnchorsItself[] = _("{GOOD_LEGENDARY} verankert\nsich mit Hilfe von {STRING 22}!"); +const u8 BattleText_CutsAttack[] = _("{STRING 23} von\n{STRING 16} vermindert\lANGRIFF von {GOOD_LEGENDARY}!"); +const u8 BattleText_PreventedStatLoss[] = _("{STRING 23} von\n{STRING 16} verhindert\lStatusveränderungen!"); +const u8 BattleText_HurtOther[] = _("{STRING 22} von\n{GOOD_LEGENDARY} verletzt\l{EVIL_LEGENDARY}!"); +const u8 BattleText_Traced[] = _("FÄHRTE von\n{STRING 16}\perkennt {PLAYER}\nvon {STRING 0}!"); +const u8 BattleText_PreventedBurn[] = _("{STRING 24} von\n{STRING 14} verhindert\lVerbrennung!"); +const u8 BattleText_BlocksOther[] = _("{STRING 22} von\n{GOOD_LEGENDARY} blockiert\l{STRING 17}!"); +const u8 BattleText_BlocksOther2[] = _("{STRING 23} von\n{STRING 16} blockiert\l{STRING 17}!"); +const u8 BattleText_RestoredHPByItem[] = _("{STRING 21} von\n{EVIL_LEGENDARY} füllt\leinige KP auf!"); +const u8 BattleText_WhipSandstorm[] = _("{STRING 23} von\n{STRING 16} entfacht\leinen Sandsturm!"); +const u8 BattleText_SunIntensified[] = _("{STRING 23} von\n{STRING 16} intensiviert\ldie Sonnenstrahlen!"); +const u8 BattleText_PreventedLoss[] = _("{STRING 23} von\n{STRING 16} verhindert \lden Verlust von {STRING 0}!"); +const u8 BattleText_InfatuatedPoke[] = _("{EVIL_LEGENDARY} ist vernarrt\nin {STRING 22} von\l{GOOD_LEGENDARY}!"); +const u8 BattleText_MadeIneffective[] = _("{STRING 22} von\n{GOOD_LEGENDARY} macht\l{STRING 17} wirkungslos!"); +const u8 BattleText_CuredProblem[] = _("{STRING 23} von\n{STRING 16} heilte sein\lProblem mit {STRING 0}!"); +const u8 BattleText_OozeSuckup[] = _("Es saugte\nKLOAKENSOSSE auf!"); +const u8 BattleText_Transformed2[] = _("{STRING 16}\nverwandelte sich!"); +const u8 BattleText_TookAttack2[] = _("{STRING 22} von\n{GOOD_LEGENDARY} übernahm\lden Angriff!"); +const u8 BattleText_PreventedSwitch[] = _("{STRING 20} von\n{STRING 0} verhindert\pWechsel!\p"); +const u8 BattleText_PreventedOther[] = _("{STRING 22} von\n{GOOD_LEGENDARY} macht\p{STRING 0} von\n{STRING 16} wirkungslos!"); +const u8 BattleText_MadeIneffective2[] = _("{STRING 23} von\n{STRING 16} machte\les wirkungslos!"); +const u8 BattleText_PreventedFlinching[] = _("{STRING 24} von\n{STRING 14} verhindert\lein Zurückschrecken!"); +const u8 BattleText_PreventedOther2[] = _("{STRING 21} von\n{EVIL_LEGENDARY} macht\p{STRING 22} von\n{GOOD_LEGENDARY} wirkungslos!"); +const u8 BattleText_CuredOfProblem[] = _("{STRING 23} von\n{STRING 16} heilte sein\lProblem mit {STRING 0}!"); +const u8 BattleText_NoEffectOn[] = _("{STRING 23} von\n{STRING 16} hat keine\lWirkung auf {STRING 14}!"); +const u8 BattleText_Sharply[] = _("steigt stark!"); +const u8 BattleText_Rose[] = _("steigt."); +const u8 BattleText_Harshly[] = _("sinkt stark!"); +const u8 BattleText_Fell[] = _("sinkt."); +const u8 BattleText_UnknownString7[] = _("{STRING 0} von\n{EVIL_LEGENDARY} {PLAYER}"); +const u8 BattleText_UnknownString3[] = _("{STRING 0} von\n{GOOD_LEGENDARY} {PLAYER}"); +const u8 BattleText_UnknownString4[] = _("{STRING 19}: {STRING 0} von\n{STRING 16} {PLAYER}"); +const u8 BattleText_UnknownString5[] = _("{STRING 0} von\n{EVIL_LEGENDARY} {PLAYER}"); +const u8 BattleText_UnknownString6[] = _("{STRING 0} von\n{GOOD_LEGENDARY} {PLAYER}"); +const u8 BattleText_StatNoHigher[] = _("Status von {EVIL_LEGENDARY}\nkann nicht weiter erhöht werden!"); +const u8 BattleText_StatNoLower[] = _("Status von {GOOD_LEGENDARY}\nkann nicht weiter sinken!"); +const u8 BattleText_Critical[] = _("Ein Volltreffer!"); +const u8 BattleText_GrandSlam[] = _("Ein K.O.-Treffer!"); +const u8 BattleText_MoveForget123[] = _("{PAUSE 32}1, {PAUSE 15}2 und...{PAUSE 15} ...{PAUSE 15} ...{PAUSE 15}\n{PAUSE 15}{PLAY_SE 0x38 0x00}Schwupp!\p"); +const u8 BattleText_MoveForgetAnd[] = _("Und...\p"); +const u8 BattleText_CantForgetHM[] = _("VM-Attacken können jetzt \nnicht vergessen werden.\p"); +const u8 BattleText_NotEffective[] = _("Das ist nicht sehr effektiv..."); +const u8 BattleText_SuperEffective[] = _("Das ist sehr effektiv!"); +const u8 BattleText_GotAwaySafely[] = _("{PLAY_SE 0x11 0x00}Du bist entkommen!\p"); +const u8 BattleText_FledUsingItem[] = _("{PLAY_SE 0x11 0x00}{EVIL_LEGENDARY} floh\ndurch Einsatz von {STRING 19}!\p"); +const u8 BattleText_FledUsingOther[] = _("{PLAY_SE 0x11 0x00}{EVIL_LEGENDARY} floh\ndurch Einsatz von {STRING 21}!\p"); +const u8 BattleText_FledWild[] = _("{PLAY_SE 0x11 0x00}Wildes {STRING 0} floh!"); +const u8 BattleText_PlayerDefeatedTrainer[] = _("Spieler besiegte\n{STRING 29}!"); +const u8 BattleText_PlayerDefeatedTrainers[] = _("Spieler besiegte\n{STRING 30} und {STRING 29}!"); +const u8 BattleText_PlayerLostTrainer[] = _("Spieler verlor gegen\n{STRING 29}!"); +const u8 BattleText_PlayerLostTrainers[] = _("Spieler verlor gegen\n{STRING 30} und {STRING 29}!"); +const u8 BattleText_PlayerTiedTrainer[] = _("Patt zwischen Spieler und\n{STRING 29}!"); +const u8 BattleText_PlayerTiedTrainers[] = _("Patt zwischen Spieler, {STRING 30}\nund {STRING 29}!"); +const u8 BattleText_FledSingle[] = _("{PLAY_SE 0x11 0x00}{STRING 29} floh!"); +const u8 BattleText_FledDouble[] = _("{PLAY_SE 0x11 0x00}{STRING 29} und\n{STRING 30} flohen!"); +const u8 BattleText_NoRunning[] = _("Du kannst aus TRAINER-Kämpfen\nnicht fliehen!\p"); +const u8 BattleText_CantEscape2[] = _("Flucht unmöglich!\p"); +const u8 BattleText_BirchDontLeaveMe[] = _("PROF. BIRK: Du... Du kannst mich doch\nnicht einfach im Stich lassen!\p"); +const u8 BattleText_Nothing[] = _("Nichts geschieht!"); +const u8 BattleText_Failed[] = _("Es schlug fehl!"); +const u8 BattleText_HurtItself[] = _("Es hat sich vor Verwirrung\nselbst verletzt!"); +const u8 BattleText_MirrorFail[] = _("Der SPIEGELTRICK schlug fehl!"); +const u8 BattleText_RainStart[] = _("Es fängt an zu regnen!"); +const u8 BattleText_PourStart[] = _("Ein Wolkenbruch!"); +const u8 BattleText_RainCont1[] = _("Es regnet weiter."); +const u8 BattleText_PourCont[] = _("Der Wolkenbruch hält an."); +const u8 BattleText_RainStop[] = _("Es hat aufgehört zu regnen."); +const u8 BattleText_SandBrewed[] = _("Ein Sandsturm kommt auf!"); +const u8 BattleText_SandRages[] = _("Der Sandsturm tobt."); +const u8 BattleText_SandSubsided[] = _("Der Sandsturm legt sich."); +const u8 BattleText_SunBright[] = _("Das Sonnenlicht wird stärker!"); +const u8 BattleText_SunStrong[] = _("Gleißendes Sonnenlicht!"); +const u8 BattleText_SunFaded[] = _("Das Sonnenlicht lässt nach!"); +const u8 BattleText_HailStart[] = _("Es fängt an zu hageln!"); +const u8 BattleText_HailCont[] = _("Es hagelt!"); +const u8 BattleText_HailStop[] = _("Es hat aufgehört zu hageln."); +const u8 BattleText_SpitUpFail[] = _("Aber es konnte nichts\nENTFESSELN!"); +const u8 BattleText_SwallowFail[] = _("Aber es konnte nichts\nVERZEHREN!"); +const u8 BattleText_WindHeatWave[] = _("Der Wind wurde zu einer\nHITZEWELLE!"); +const u8 BattleText_StatElim[] = _("Alle Statusveränderungen wurden\nentfernt!"); +const u8 BattleText_CoinScatter[] = _("Es liegen überall Münzen verstreut!"); +const u8 BattleText_SubWeak[] = _("Zu schwach, um einen DELEGATOR\neinzusetzen!"); +const u8 BattleText_PainSplit[] = _("Die Kontrahenten teilen\nihr Leid!"); +const u8 BattleText_BellChime[] = _("Eine Glocke läutet!"); +const u8 BattleText_PerishSong[] = _("Alle betroffenen POKéMON werden\nin 3 Runden K.O. gehen!"); +const u8 BattleText_NoPP1[] = _("Es sind keine AP mehr für\ndiese Attacke übrig!\p"); +const u8 BattleText_NoPP2[] = _("Aber es waren keine AP mehr\nfür diese Attacke übrig!"); +const u8 BattleText_IgnoredOrdersSLP[] = _("{EVIL_LEGENDARY} ignoriert die\nBefehle. Es schläft!"); +const u8 BattleText_IgnoredOrders[] = _("{EVIL_LEGENDARY} ignoriert den\nBefehl!"); +const u8 BattleText_BeganNap[] = _("{EVIL_LEGENDARY} macht\nein Nickerchen!"); +const u8 BattleText_LoafingAround[] = _("{EVIL_LEGENDARY} faulenzt!"); +const u8 BattleText_WontObey[] = _("{EVIL_LEGENDARY} ist\nungehorsam!"); +const u8 BattleText_TurnedAway[] = _("{EVIL_LEGENDARY} wendet\nsich ab!"); +const u8 BattleText_NotNotice[] = _("{EVIL_LEGENDARY} gibt vor,\nnichts zu bemerken!"); +const u8 BattleText_WillSwitch[] = _("Als Nächstes wird {PLAYER} von\n{STRING 25} {STRING 26} eingesetzt.\pWird {STRING 32} das\nPOKéMON wechseln?"); +const u8 BattleText_LearnedMove2[] = _("{EVIL_LEGENDARY} hat\n{STRING 0} gelernt!"); +const u8 BattleText_PlayerDefeatedTrainer2[] = _("Spieler besiegte\n{STRING 25} {STRING 26}!\p"); +const u8 BattleText_CreptCloser[] = _("{STRING 32} schleicht sich näher an\n{STR_VAR_2} heran!"); +const u8 BattleText_CantGetCloser[] = _("{STRING 32} kann nicht näher herangehen!"); +const u8 BattleText_WatchingCarefully[] = _("{STR_VAR_2} beobachtet\nalles aufmerksam!"); +const u8 BattleText_CuriousAbout[] = _("{STR_VAR_2} ist\nneugierig auf {STRING 0}!"); +const u8 BattleText_EnthralledBy[] = _("{STR_VAR_2} ist begeistert\nvon {STRING 0}!"); +const u8 BattleText_IgnoredThing[] = _("{STR_VAR_2} ignoriert\n{STRING 0} völlig!"); +const u8 BattleText_ThrewBlock[] = _("{STRING 32} wirft {STR_VAR_2} einen\n{POKEBLOCK} zu!"); +const u8 BattleText_SafariOver[] = _("{PLAY_SE 0x49 0x00}ANSAGE: Du hast keine\nSAFARIBÄLLE mehr! Game over!\p"); +const u8 BattleText_WildAppeared1[] = _("Ein wildes {STR_VAR_2} erscheint!\p"); +const u8 BattleText_WildAppeared2[] = _("Ein wildes {STR_VAR_2} erscheint!\p"); +const u8 BattleText_WildAppeared3[] = _("Ein wildes {STR_VAR_2} erscheint!{PAUSE 127}"); +const u8 BattleText_WildDoubleAppeared[] = _("Ein wildes {KUN} und\nein wildes {STR_VAR_2} erscheinen!\p"); +const u8 BattleText_SingleWantToBattle1[] = _("Eine Herausforderung von\n{STRING 25} {STRING 26}!\p"); +const u8 BattleText_SingleWantToBattle2[] = _("Eine Herausforderung von\n{STRING 29}!"); +const u8 BattleText_DoubleWantToBattle[] = _("{STRING 29} und {STRING 30}\nmöchten kämpfen!"); +const u8 BattleText_SentOutSingle1[] = _("{STR_VAR_2} wird von\n{STRING 25} {STRING 26} in den\lKampf geschickt!"); +const u8 BattleText_SentOutDouble1[] = _("{STR_VAR_2} und {KUN}\nwerden von\p{STRING 25} {STRING 26}\nin den Kampf geschickt!"); +const u8 BattleText_SentOutSingle2[] = _("{STRING 0} wird von\n{STRING 25} {STRING 26}\lin den Kampf geschickt!"); +const u8 BattleText_SentOutSingle3[] = _("{STRING 29} schickt\n{STR_VAR_2} in den Kampf!"); +const u8 BattleText_SentOutDouble2[] = _("{STRING 29} schickt\n{STR_VAR_2} und {KUN}!"); +const u8 BattleText_SentOutDouble3[] = _("{STRING 29} schickt\n{VERSION}!\p{STRING 30} schickt\n{GOOD_TEAM}!"); +const u8 BattleText_SentOutSingle4[] = _("{STRING 29} schickt\n{STRING 0}!"); +const u8 BattleText_SentOutSingle5[] = _("{STRING 31} schickt\n{STRING 0}!"); +const u8 BattleText_SentOutSingle6[] = _("Los! {STR_VAR_1}!"); +const u8 BattleText_SentOutDouble4[] = _("Los! {STR_VAR_1} und\n{STR_VAR_3}!"); +const u8 BattleText_SentOutSingle7[] = _("Los! {STRING 0}!"); +const u8 BattleText_SentOutSingle8[] = _("Du schaffst es! {STRING 0}!"); +const u8 BattleText_SentOutSingle9[] = _("Streng dich an, {STRING 0}!"); +const u8 BattleText_SentOutSingle10[] = _("Mach es fertig!\nLos, {STRING 0}!"); +const u8 BattleText_SentOutSingle11[] = _("{STRING 28} schickt\n{EVIL_TEAM}!\pLos! {RIVAL}!"); +const u8 BattleText_ComeBackSingle1[] = _("{STRING 0}, genug!\nKomm zurück!"); +const u8 BattleText_ComeBackSingle2[] = _("{STRING 0}, komm zurück!"); +const u8 BattleText_ComeBackSingle3[] = _("{STRING 0}, O.K.!\nKomm zurück!"); +const u8 BattleText_ComeBackSingle4[] = _("{STRING 0}, gut!\nKomm zurück!"); +const u8 BattleText_WithdrewPoke1[] = _("{STRING 0} wurde\nvon {STRING 25} {STRING 26}\lzurückgerufen!"); +const u8 BattleText_WithdrewPoke2[] = _("{STRING 29} ruft\n{STRING 0} zurück!"); +const u8 BattleText_WithdrewPoke3[] = _("{STRING 31} ruft\n{STRING 0} zurück!"); +const u8 BattleText_Wild[] = _(" (Wild)"); +const u8 BattleText_Foe[] = _(" (Gegner)"); +const u8 BattleText_Foe2[] = _("Gegner"); +const u8 BattleText_Ally[] = _("Anwender"); +const u8 BattleText_Foe3[] = _("Gegner"); +const u8 BattleText_Ally2[] = _("Anwender"); +const u8 BattleText_Foe4[] = _("Gegner"); +const u8 BattleText_Ally3[] = _("Anwender"); +const u8 BattleText_OpponentUsedMove[] = _("{EVIL_LEGENDARY} setzt\n{PLAYER} ein!"); +const u8 BattleText_Exclamation2[] = _(""); +const u8 BattleText_Exclamation3[] = _(""); +const u8 BattleText_Exclamation4[] = _(""); +const u8 BattleText_Exclamation5[] = _(""); +const u8 BattleText_Exclamation[] = _(""); +const u8 BattleStatText_HP[] = _("KP"); +const u8 BattleStatText_Attack[] = _("ANGRIFF"); +const u8 BattleStatText_Defense[] = _("VERT."); +const u8 BattleStatText_Speed[] = _("INIT."); +const u8 BattleStatText_SpAtk[] = _("SP.ANG."); +const u8 BattleStatText_SpDef[] = _("SP.VER."); +const u8 BattleStatText_Accuracy[] = _("GENAUIGKEIT"); +const u8 BattleStatText_Evasion[] = _("FLUCHTWERT"); +const u8 ContestStatText_TooSpicy[] = _("zu scharf!"); +const u8 ContestStatText_TooDry[] = _("zu trocken!"); +const u8 ContestStatText_TooSweet[] = _("zu süß!"); +const u8 ContestStatText_TooBitter[] = _("zu bitter!"); +const u8 ContestStatText_TooSour[] = _("zu sauer!"); +const u8 BattleText_Used1[] = _("{STRING 32} setzt\n{STRING 19} ein!"); +const u8 BattleText_TutorialUsed[] = _("HEIKO setzt\n{STRING 19} ein!"); +const u8 BattleText_Used2[] = _("{STRING 19} wird von\n{STRING 25} {STRING 26} eingesetzt!"); +const u8 BattleText_BlockBall[] = _("Der TRAINER hat den BALL abgeblockt!"); +const u8 BattleText_DontBeAThief[] = _("Sei kein Dieb!"); +const u8 BattleText_DodgeBall[] = _("Es ist dem BALL ausgewichen! Dieses\nPOKéMON kann nicht gefangen werden!"); +const u8 BattleText_MissPoke[] = _("Du hast das POKéMON verfehlt!"); +const u8 BattleText_BallBrokeOhNo[] = _("Mist!\nDas POKéMON hat sich befreit!"); +const u8 BattleText_BallBrokeAppeared[] = _("Oh!\nFast hätte es geklappt!"); +const u8 BattleText_BallBrokeAlmost[] = _("Mist!\nDas war knapp!"); +const u8 BattleText_BallBrokeSoClose[] = _("Verflixt!\nEs hätte beinahe geklappt!"); +const u8 BattleText_BallCaught1[] = _("Toll!\n{STR_VAR_2} wurde gefangen!{UNKNOWN_A}{PLAY_BGM 0x60 0x01}\p"); +const u8 BattleText_BallCaught2[] = _("Toll!\n{STR_VAR_2} wurde gefangen!{UNKNOWN_A}{PLAY_BGM 0x60 0x01}{PAUSE 127}"); +const u8 BattleText_GiveNickname[] = _("Möchtest du dem {STR_VAR_2}\neinen Spitznamen geben?"); +const u8 BattleText_SentToPC[] = _("{STR_VAR_2} wurde auf\n{STRING 35} PC übertragen."); +const u8 BattleText_Someone[] = _("einen"); +const u8 BattleText_Lanette[] = _("LANETTES"); +const u8 BattleText_AddedToDex[] = _("Für {STR_VAR_2} wurde ein Eintrag\nim POKéDEX angelegt.\p"); +const u8 BattleText_Raining[] = _("Es regnet."); +const u8 BattleText_Sandstorm[] = _("Ein Sandsturm tobt."); +const u8 BattleText_BoxFull[] = _("Die BOXEN sind voll!\nDu kannst keines mehr fangen!\p"); +const u8 BattleText_EnigmaBerry[] = _("ENIGMABEERE"); +const u8 BattleText_Berry[] = _("{STR_VAR_1}BEERE"); +const u8 BattleText_CuredParalysis[] = _("{STRING 19} von\n{STRING 16}\lheilte die Paralyse!"); +const u8 BattleText_CuredPoison[] = _("{STRING 19} von\n{STRING 16}\lheilte die Vergiftung!"); +const u8 BattleText_CuredBurn[] = _("{STRING 19} von\n{STRING 16}\lheilte die Verbrennung!"); +const u8 BattleText_CuredFreeze[] = _("{STRING 19} von\n{STRING 16} taute es auf!"); +const u8 BattleText_CuredSleep[] = _("{STRING 19} von\n{STRING 16} \lweckte es auf!"); +const u8 BattleText_CuredConfusion[] = _("{STRING 19} von\n{STRING 16}\lhebt die Verwirrung auf!"); +const u8 BattleText_CuredStatus[] = _("{STRING 19} von\n{STRING 16} \lheilte sein {STRING 0}-Problem!"); +const u8 BattleText_NormalizedStatus[] = _("{STRING 19} von\n{STRING 16} normalisierte\lseine Statuswerte!"); +const u8 BattleText_RestoredHealth[] = _("{STRING 19} füllte\nKP von {STRING 16} auf!"); +const u8 BattleText_RestoredPP[] = _("{STRING 19} von\n{STRING 16} füllte AP von\l{STRING 0} auf!"); +const u8 BattleText_RestoredStatus[] = _("{STRING 19} von\n{STRING 16}\pstellte seine\nStatuswerte wieder her!"); +const u8 BattleText_RestoredHPLittle[] = _("{STRING 19} von\n{STRING 16}\lfüllte einige KP auf!"); +const u8 BattleText_ChoiceBand[] = _("{STRING 19} erlaubt\nnur den Einsatz von {STRING 17}!\p"); +const u8 BattleText_FocusSash[] = _("{GOOD_LEGENDARY} hält\nmit Hilfe von\l{STRING 19} durch!"); +const u8 BattleText_Terminator2[] = _(""); +const u8 BattleText_WallyBall[] = _("Nun muss man einen BALL werfen, oder?\nIch... Ich werde mein Bestes geben!"); +const u8 BattleText_StartEvo[] = _("Hey?\n{STR_VAR_1} entwickelt sich!"); +const u8 BattleText_FinishEvo[] = _("Glückwunsch! Dein {STR_VAR_1}\nwurde zu {STR_VAR_2}!{UNKNOWN_A}\p"); +const u8 BattleText_StopEvo[] = _("Hm? Die Entwicklung\nwurde abgebrochen!\p"); +const u8 BattleText_OtherMenu[] = _("Was soll\n{STRING 15} tun?"); +const u8 BattleText_PlayerMenu[] = _("Was wird {STRING 32}\ntun?"); +const u8 BattleText_WallyMenu[] = _("Was wird\nHEIKO tun?"); +const u8 BattleText_LinkStandby[] = _("{PAUSE 16}Verbindung..."); +const u8 BattleText_MenuOptions[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}KAMPF{CLEAR_TO 46}BEUTEL\nPOKéMON{CLEAR_TO 46}FLUCHT"); +const u8 BattleText_MenuOptionsSafari[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}BALL{CLEAR_TO 46}{POKEBLOCK}\nNÄHER{CLEAR_TO 46}FLUCHT"); +const u8 BattleText_PP[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}AP\nTYP/"); +const u8 BattleText_Format[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}"); +const u8 BattleText_ForgetMove[] = _("{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}{PALETTE 5}Welche Attacke soll vergessen werden?"); +const u8 BattleText_YesNo[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}Ja\nNein"); +const u8 BattleText_SwitchWhich[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}\nWohin?"); +const u8 BattleText_Format2[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}"); +const u8 BattleText_RightArrow[] = _("{RIGHT_ARROW}"); +const u8 BattleText_Plus[] = _("+"); +const u8 BattleText_Dash[] = _("-"); +const u8 BattleText_HP[] = _("KP "); +const u8 BattleText_Attack[] = _("ANGR. "); +const u8 BattleText_Defense[] = _("VERT."); +const u8 BattleText_SpAtk[] = _("SP.ANG."); +const u8 BattleText_SpDef[] = _("SP.VER."); +const u8 BattleText_SafariBalls[] = _("{HIGHLIGHT RED}SAFARIBÄLLE"); +const u8 BattleText_SafariBallsLeft[] = _("{HIGHLIGHT RED}Übrig: "); +const u8 BattleText_HighlightRed[] = _("{HIGHLIGHT RED}"); +const u8 BattleText_Sleep[] = _("Schlaf"); +const u8 BattleText_PoisonStatus[] = _("Gift"); +const u8 BattleText_Burn[] = _("Verbrennung"); +const u8 BattleText_Paralysis[] = _("Paralyse"); +const u8 BattleText_IceStatus[] = _("Eis"); +const u8 BattleText_Confusion[] = _("Verwirrung"); +const u8 BattleText_Love[] = _("Liebe"); +const u8 BattleText_Format3[] = _(" und "); +const u8 BattleText_Format4[] = _(", "); +const u8 BattleText_Format5[] = _(" "); +const u8 BattleText_Format6[] = _("\l"); +const u8 BattleText_Format7[] = _("\n"); +const u8 BattleText_Format8[] = _("sind"); +const u8 BattleText_Format9[] = _("sind"); +const u8 gBadEggNickname[] = _("Schl. EI"); +const u8 BattleText_Wally[] = _("HEIKO"); +const u8 BattleText_Win[] = _("{HIGHLIGHT TRANSPARENT}Sieg"); +const u8 BattleText_Loss[] = _("{HIGHLIGHT TRANSPARENT}Ndrl."); +const u8 BattleText_Tie[] = _("{HIGHLIGHT TRANSPARENT}Patt"); +const u8 BattleText_Format10[] = _(" ist"); +const u8 BattleText_Format11[] = _(""); +const u8 BattleText_Normal[] = _("eine NORMALE Att."); +const u8 BattleText_Fighting[] = _("eine KAMPF-Att."); +const u8 BattleText_Flying[] = _("eine FLUG-Att."); +const u8 BattleText_Poison[] = _("eine GIFT-Att."); +const u8 BattleText_Ground[] = _("eine BODEN-Att."); +const u8 BattleText_Rock[] = _("eine GESTEINS-Att."); +const u8 BattleText_Bug[] = _("eine KÄFER-Att."); +const u8 BattleText_Ghost[] = _("eine GEIST-Att."); +const u8 BattleText_Steel[] = _("eine STAHL-Att."); +const u8 BattleText_Typeless[] = _("eine ???-Attacke"); +const u8 BattleText_Fire[] = _("eine FEUER-Att."); +const u8 BattleText_Water[] = _("eine WASSER-Att."); +const u8 BattleText_Grass[] = _("eine PFLANZEN-Att."); +const u8 BattleText_Electric[] = _("eine ELEKTRO-Att."); +const u8 BattleText_Psychic[] = _("eine PSYCHO-Att."); +const u8 BattleText_Ice[] = _("eine EIS-Att."); +const u8 BattleText_Dragon[] = _("eine DRACHEN-Att."); +const u8 BattleText_Dark[] = _("eine UNLICHT-Att."); + +const u8 *const gUnknown_08400F58[] = +{ + BattleStatText_HP, + BattleStatText_Attack, + BattleStatText_Defense, + BattleStatText_Speed, + BattleStatText_SpAtk, + BattleStatText_SpDef, + BattleStatText_Accuracy, + BattleStatText_Evasion, +}; + +const u8 *const gUnknown_08400F78[] = +{ + ContestStatText_TooSpicy, + ContestStatText_TooDry, + ContestStatText_TooSweet, + ContestStatText_TooBitter, + ContestStatText_TooSour, +}; + +const u8 *const gBattleStringsTable[] = +{ + BattleText_UnknownString, + BattleText_GainExpPoints, + BattleText_GrewLevel, + BattleText_LearnedMove, + BattleText_TryingToLearnMove, + BattleText_CantLearnMore, + BattleText_DeleteMove, + BattleText_DeletedMove, + BattleText_StopLearning, + BattleText_DidNotLearn, + BattleText_LearnedMove2, + BattleText_AttackMissed, + BattleText_ProtectedItself, + BattleText_StatNoHigher, + BattleText_AvoidedDamage, + BattleText_DoesntAffect, + BattleText_AttackingFainted, + BattleText_DefendingFainted, + BattleText_WinningPrize, + BattleText_OutOfUsablePoke, + BattleText_WhitedOut, + BattleText_PreventEscape, + BattleText_HitMulti, + BattleText_FellAsleep, + BattleText_MadeAsleep, + BattleText_DefendingAsleep, + BattleText_AttackingAsleep, + BattleText_WasntAffected, + BattleText_Poisoned, + BattleText_Poisoned2, + BattleText_PoisonHurt, + BattleText_AlreadyPoisoned, + BattleText_BadlyPoisoned, + BattleText_EnergyDrained, + BattleText_Burned, + BattleText_Burned2, + BattleText_BurnHurt, + BattleText_Frozen, + BattleText_Frozen2, + BattleText_FrozenSolid, + BattleText_DefendingDefrosted, + BattleText_AttackingDefrosted, + BattleText_Defrosted, + BattleText_Paralyzed, + BattleText_Paralyzed2, + BattleText_Paralyzed3, + BattleText_AlreadyParalyzed, + BattleText_ParalysisHealed, + BattleText_DreamEaten, + BattleText_AttackingStatNoHigher, + BattleText_DefendingStatNoHigher, + BattleText_StoppedWorking, + BattleText_StoppedWorking2, + BattleText_Confused, + BattleText_ConfusionSnapOut, + BattleText_BecameConfused, + BattleText_AlreadyConfused, + BattleText_FellLove, + BattleText_InLoveWith, + BattleText_ImmobilizedBy, + BattleText_BlownAway, + BattleText_TypeTransform, + BattleText_Flinched, + BattleText_RegainedHealth, + BattleText_HPFull, + BattleText_RaisedSpDef, + BattleText_RaisedDefense, + BattleText_CoveredVeil, + BattleText_SafeguardActive, + BattleText_SafeguardFaded, + BattleText_WentToSleep, + BattleText_SpeltHealthy, + BattleText_WhipWhirlwind, + BattleText_TookSunlight, + BattleText_LoweredHead, + BattleText_IsGlowing, + BattleText_FlewHigh, + BattleText_DugHole, + BattleText_SqueezedBind, + BattleText_TrappedVortex, + BattleText_Wrapped, + BattleText_Clamped, + BattleText_HurtBy, + BattleText_FreedFrom, + BattleText_KeptGoingCrash, + BattleText_MistShroud, + BattleText_MistProtect, + BattleText_GetPumped, + BattleText_HitRecoil, + BattleText_ProtectedItself2, + BattleText_SandBuffeted, + BattleText_HailStricken, + BattleText_WasSeeded, + BattleText_EvadedAttack, + BattleText_HealthSapped, + BattleText_FastAsleep, + BattleText_WokeUp, + BattleText_UproarAwake, + BattleText_UproarWoke, + BattleText_UproarCaused, + BattleText_UproarMaking, + BattleText_CalmedDown, + BattleText_UproarCantSleep, + BattleText_Stockpiled, + BattleText_StockpiledCant, + BattleText_UproarCantSleep2, + BattleText_UproarKeptAwake, + BattleText_StayedAwake, + BattleText_StoringEnergy, + BattleText_UnleashedEnergy, + BattleText_FatigueConfuse, + BattleText_PickedUpYen, + BattleText_Unaffected, + BattleText_Transformed, + BattleText_SubMade, + BattleText_SubAlready, + BattleText_SubTookDamage, + BattleText_SubFaded, + BattleText_MustRecharge, + BattleText_RageBuilding, + BattleText_MoveWasDisabled, + BattleText_MoveIsDisabled, + BattleText_DisabledNoMore, + BattleText_EncoreGot, + BattleText_EncoreEnded, + BattleText_TookAim, + BattleText_SketchedMove, + BattleText_DestinyBondTake, + BattleText_DestinyBondTaken, + BattleText_ReducedBy, + BattleText_StoleSomething, + BattleText_CantEscapeNow, + BattleText_NightmareStart, + BattleText_NightmareLock, + BattleText_CurseLay, + BattleText_CurseAfflict, + BattleText_SpikesScattered, + BattleText_SpikesHurt, + BattleText_IdentifiedPoke, + BattleText_PerishSongFell, + BattleText_BracedItself, + BattleText_EnduredHit, + BattleText_MagnitudeCount, + BattleText_CutHPMaxATK, + BattleText_CopyStatChanges, + BattleText_GotFreeFrom, + BattleText_LeechShed, + BattleText_SpikesBlownAway, + BattleText_FledBattle, + BattleText_ForesawAttack, + BattleText_TookAttack, + BattleText_PokeAttack, + BattleText_CenterAttention, + BattleText_ChargingPower, + BattleText_NaturePower, + BattleText_StatusNormal, + BattleText_NoMovesLeft, + BattleText_TormentSubject, + BattleText_TormentNoUse, + BattleText_TightenFocus, + BattleText_TauntFell, + BattleText_TauntNoUse, + BattleText_ReadyToHelp, + BattleText_SwitchedItems, + BattleText_CopiedObject, + BattleText_WishMade, + BattleText_WishTrue, + BattleText_PlantedRoots, + BattleText_AbsorbNutrients, + BattleText_AnchoredItself, + BattleText_DrowsyMade, + BattleText_KnockedOffItem, + BattleText_AbilitySwap, + BattleText_SealedMove, + BattleText_SealedNoUse, + BattleText_GrudgeBear, + BattleText_GrudgeLosePP, + BattleText_ShroudedItself, + BattleText_MagicCoatBounce, + BattleText_AwaitMove, + BattleText_SnatchedMove, + BattleText_RainMade, + BattleText_SpeedRisen, + BattleText_ProtectedBy, + BattleText_PreventedBy, + BattleText_HPRestoredUsing, + BattleText_MadeType, + BattleText_PreventedPara, + BattleText_PreventedRomance, + BattleText_PreventedPoison, + BattleText_PreventedConfusion, + BattleText_RaisedFirePower, + BattleText_AnchorsItself, + BattleText_CutsAttack, + BattleText_PreventedStatLoss, + BattleText_HurtOther, + BattleText_Traced, + BattleText_Sharply, + BattleText_Rose, + BattleText_Harshly, + BattleText_Fell, + BattleText_UnknownString7, + BattleText_UnknownString3, + BattleText_UnknownString5, + BattleText_UnknownString6, + BattleText_Critical, + BattleText_GrandSlam, + BattleText_MoveForget123, + BattleText_MoveForgetAnd, + BattleText_NotEffective, + BattleText_SuperEffective, + BattleText_GotAwaySafely, + BattleText_FledWild, + BattleText_NoRunning, + BattleText_CantEscape2, + BattleText_BirchDontLeaveMe, + BattleText_Nothing, + BattleText_Failed, + BattleText_HurtItself, + BattleText_MirrorFail, + BattleText_RainStart, + BattleText_PourStart, + BattleText_RainCont1, + BattleText_PourCont, + BattleText_RainStop, + BattleText_SandBrewed, + BattleText_SandRages, + BattleText_SandSubsided, + BattleText_SunBright, + BattleText_SunStrong, + BattleText_SunFaded, + BattleText_HailStart, + BattleText_HailCont, + BattleText_HailStop, + BattleText_SpitUpFail, + BattleText_SwallowFail, + BattleText_WindHeatWave, + BattleText_StatElim, + BattleText_CoinScatter, + BattleText_SubWeak, + BattleText_PainSplit, + BattleText_BellChime, + BattleText_PerishSong, + BattleText_NoPP1, + BattleText_NoPP2, + BattleText_Used1, + BattleText_TutorialUsed, + BattleText_BlockBall, + BattleText_DontBeAThief, + BattleText_DodgeBall, + BattleText_MissPoke, + BattleText_BallBrokeOhNo, + BattleText_BallBrokeAppeared, + BattleText_BallBrokeAlmost, + BattleText_BallBrokeSoClose, + BattleText_BallCaught1, + BattleText_BallCaught2, + BattleText_GiveNickname, + BattleText_SentToPC, + BattleText_AddedToDex, + BattleText_Raining, + BattleText_Sandstorm, + BattleText_CantEscape, + BattleText_IgnoredOrdersSLP, + BattleText_IgnoredOrders, + BattleText_BeganNap, + BattleText_LoafingAround, + BattleText_WontObey, + BattleText_TurnedAway, + BattleText_NotNotice, + BattleText_WillSwitch, + BattleText_CreptCloser, + BattleText_CantGetCloser, + BattleText_WatchingCarefully, + BattleText_CuriousAbout, + BattleText_EnthralledBy, + BattleText_IgnoredThing, + BattleText_ThrewBlock, + BattleText_SafariOver, + BattleText_CuredParalysis, + BattleText_CuredPoison, + BattleText_CuredBurn, + BattleText_CuredFreeze, + BattleText_CuredSleep, + BattleText_CuredConfusion, + BattleText_CuredStatus, + BattleText_RestoredHealth, + BattleText_RestoredPP, + BattleText_RestoredStatus, + BattleText_RestoredHPLittle, + BattleText_ChoiceBand, + BattleText_FocusSash, + BattleText_Terminator2, + BattleText_PreventedBurn, + BattleText_BlocksOther, + BattleText_RestoredHPByItem, + BattleText_WhipSandstorm, + BattleText_PreventedLoss, + BattleText_InfatuatedPoke, + BattleText_MadeIneffective, + BattleText_CuredProblem, + BattleText_OozeSuckup, + BattleText_Transformed2, + BattleText_ElecWeakened, + BattleText_FireWeakened, + BattleText_HidUnderwater, + BattleText_SprangUp, + BattleText_CantForgetHM, + BattleText_FoundOne, + BattleText_PlayerDefeatedTrainer2, + BattleText_SoothingAroma, + BattleText_CantUseItems, + BattleText_UnknownString2, + BattleText_UnknownString4, + BattleText_HustleUse, + BattleText_MadeUseless, + BattleText_SandTombTrapped, + BattleText_Terminator, + BattleText_BoostedExp, + BattleText_SunIntensified, + BattleText_GroundMoveNegate, + BattleText_WallyBall, + BattleText_TookAttack2, + BattleText_ChoseDestiny, + BattleText_LostFocus, + BattleText_UseNext, + BattleText_FledUsingItem, + BattleText_FledUsingOther, + BattleText_DraggedOut, + BattleText_PreventedOther, + BattleText_NormalizedStatus, + BattleText_Used2, + BattleText_BoxFull, + BattleText_AvoidedAttack, + BattleText_MadeIneffective2, + BattleText_PreventedFlinching, + BattleText_AlreadyBurned, + BattleText_StatNoLower, + BattleText_BlocksOther2, + BattleText_WoreOff, + BattleText_RaisedDefenseLittle, + BattleText_RaisedSpDefLittle, + BattleText_BrokeWall, + BattleText_PreventedOther2, + BattleText_CuredOfProblem, + BattleText_AttackingCantEscape, + BattleText_Obtained1, + BattleText_Obtained2, + BattleText_Obtained3, + BattleText_NoEffect, + BattleText_NoEffectOn, +}; + +// below are lists of battle string enums and NOT pointers to the strings. +const u16 gMissStrings[] = +{ + BATTLE_TEXT_AttackMissed, + BATTLE_TEXT_ProtectedItself, + BATTLE_TEXT_AvoidedAttack, + BATTLE_TEXT_AvoidedDamage, + BATTLE_TEXT_GroundMoveNegate, +}; + +const u16 BattleTextList_401512[] = +{ + BATTLE_TEXT_CantEscape2, + BATTLE_TEXT_BirchDontLeaveMe, + BATTLE_TEXT_PreventEscape, + BATTLE_TEXT_CantEscape, + BATTLE_TEXT_AttackingCantEscape, +}; + +const u16 BattleTextList_40151C[] = +{ + BATTLE_TEXT_RainStart, + BATTLE_TEXT_PourStart, + BATTLE_TEXT_Failed, + BATTLE_TEXT_SandBrewed, + BATTLE_TEXT_SunBright, + BATTLE_TEXT_HailStart, +}; + +const u16 BattleTextList_401528[] = +{ + BATTLE_TEXT_SandRages, + BATTLE_TEXT_HailCont, +}; + +const u16 BattleTextList_40152C[] = +{ + BATTLE_TEXT_SandBuffeted, + BATTLE_TEXT_HailStricken, +}; + +const u16 BattleTextList_401530[] = +{ + BATTLE_TEXT_SandSubsided, + BATTLE_TEXT_HailStop, +}; + +const u16 BattleTextList_401534[] = +{ + BATTLE_TEXT_RainCont1, + BATTLE_TEXT_PourCont, + BATTLE_TEXT_RainStop, +}; + +const u16 BattleTextList_40153A[] = +{ + BATTLE_TEXT_ProtectedItself2, + BATTLE_TEXT_BracedItself, + BATTLE_TEXT_Failed, +}; + +const u16 BattleTextList_401540[] = +{ + BATTLE_TEXT_Failed, + BATTLE_TEXT_RaisedDefense, + BATTLE_TEXT_RaisedDefenseLittle, + BATTLE_TEXT_RaisedSpDef, + BATTLE_TEXT_RaisedSpDefLittle, + BATTLE_TEXT_CoveredVeil, +}; + +const u16 BattleTextList_40154C[] = +{ + BATTLE_TEXT_WasSeeded, + BATTLE_TEXT_EvadedAttack, + BATTLE_TEXT_DoesntAffect, + BATTLE_TEXT_HealthSapped, + BATTLE_TEXT_OozeSuckup, +}; + +const u16 BattleTextList_401556[] = +{ + BATTLE_TEXT_WentToSleep, + BATTLE_TEXT_SpeltHealthy, +}; + +const u16 BattleTextList_40155A[] = +{ + BATTLE_TEXT_UproarMaking, + BATTLE_TEXT_CalmedDown, +}; + +const u16 BattleTextList_40155E[] = +{ + BATTLE_TEXT_Stockpiled, + BATTLE_TEXT_StockpiledCant, +}; + +const u16 BattleTextList_401562[] = +{ + BATTLE_TEXT_WokeUp, + BATTLE_TEXT_UproarWoke, +}; + +const u16 BattleTextList_401566[] = +{ + BATTLE_TEXT_SwallowFail, + BATTLE_TEXT_HPFull, +}; + +const u16 BattleTextList_40156A[] = +{ + BATTLE_TEXT_UproarCantSleep2, + BATTLE_TEXT_UproarKeptAwake, + BATTLE_TEXT_StayedAwake, +}; + +const u16 BattleTextList_401570[] = +{ + BATTLE_TEXT_UnknownString7, + BATTLE_TEXT_UnknownString3, + BATTLE_TEXT_AttackingStatNoHigher, + BATTLE_TEXT_Terminator2, + BATTLE_TEXT_UnknownString4, + BATTLE_TEXT_HustleUse, +}; + +const u16 BattleTextList_40157C[] = +{ + BATTLE_TEXT_UnknownString5, + BATTLE_TEXT_UnknownString6, + BATTLE_TEXT_DefendingStatNoHigher, + BATTLE_TEXT_Terminator2, +}; + +const u16 BattleTextList_401584[] = +{ + BATTLE_TEXT_WhipWhirlwind, + BATTLE_TEXT_TookSunlight, + BATTLE_TEXT_LoweredHead, + BATTLE_TEXT_IsGlowing, + BATTLE_TEXT_FlewHigh, + BATTLE_TEXT_DugHole, + BATTLE_TEXT_HidUnderwater, + BATTLE_TEXT_SprangUp, +}; + +const u16 BattleTextList_401594[] = +{ + BATTLE_TEXT_SqueezedBind, + BATTLE_TEXT_Wrapped, + BATTLE_TEXT_TrappedVortex, + BATTLE_TEXT_Clamped, + BATTLE_TEXT_TrappedVortex, + BATTLE_TEXT_SandTombTrapped, +}; + +const u16 BattleTextList_4015A0[] = +{ + BATTLE_TEXT_MistShroud, + BATTLE_TEXT_Failed, +}; + +const u16 BattleTextList_4015A4[] = +{ + BATTLE_TEXT_GetPumped, + BATTLE_TEXT_Failed, +}; + +const u16 BattleTextList_4015A8[] = +{ + BATTLE_TEXT_Transformed, + BATTLE_TEXT_Failed, +}; + +const u16 BattleTextList_4015AC[] = +{ + BATTLE_TEXT_SubMade, + BATTLE_TEXT_SubWeak, +}; + +const u16 BattleTextList_4015B0[] = +{ + BATTLE_TEXT_Poisoned, + BATTLE_TEXT_Poisoned2, +}; + +const u16 BattleTextList_4015B4[] = +{ + BATTLE_TEXT_Paralyzed, + BATTLE_TEXT_Paralyzed2, +}; + +const u16 BattleTextList_4015B8[] = +{ + BATTLE_TEXT_FellAsleep, + BATTLE_TEXT_MadeAsleep, +}; + +const u16 BattleTextList_4015BC[] = +{ + BATTLE_TEXT_Burned, + BATTLE_TEXT_Burned2, +}; + +const u16 BattleTextList_4015C0[] = +{ + BATTLE_TEXT_Frozen, + BATTLE_TEXT_Frozen2, +}; + +const u16 BattleTextList_4015C4[] = +{ + BATTLE_TEXT_AttackingDefrosted, + BATTLE_TEXT_Defrosted, +}; + +const u16 BattleTextList_4015C8[] = +{ + BATTLE_TEXT_AttackMissed, + BATTLE_TEXT_Unaffected, + BATTLE_TEXT_FellLove, + BATTLE_TEXT_InfatuatedPoke, +}; + +const u16 BattleTextList_4015D0[] = +{ + BATTLE_TEXT_EnergyDrained, + BATTLE_TEXT_OozeSuckup, +}; + +const u16 BattleTextList_4015D4[] = +{ + BATTLE_TEXT_ElecWeakened, + BATTLE_TEXT_FireWeakened, +}; + +const u16 BattleTextList_4015D8[] = +{ + BATTLE_TEXT_BellChime, + BATTLE_TEXT_BellChime, + BATTLE_TEXT_BellChime, + BATTLE_TEXT_BellChime, + BATTLE_TEXT_SoothingAroma, +}; + +const u16 BattleTextList_4015E2[] = +{ + BATTLE_TEXT_ForesawAttack, + BATTLE_TEXT_ChoseDestiny, +}; + +const u16 BattleTextList_4015E6[] = +{ + BATTLE_TEXT_BallBrokeOhNo, + BATTLE_TEXT_BallBrokeAppeared, + BATTLE_TEXT_BallBrokeAlmost, + BATTLE_TEXT_BallBrokeSoClose, +}; + +const u16 BattleTextList_4015EE[] = +{ + BATTLE_TEXT_Raining, + BATTLE_TEXT_Raining, + BATTLE_TEXT_Raining, + BATTLE_TEXT_Raining, + BATTLE_TEXT_Raining, + BATTLE_TEXT_Raining, + BATTLE_TEXT_Raining, + BATTLE_TEXT_Raining, + BATTLE_TEXT_Sandstorm, + BATTLE_TEXT_Raining, + BATTLE_TEXT_Raining, + BATTLE_TEXT_Raining, + BATTLE_TEXT_SunStrong, + BATTLE_TEXT_Raining, + BATTLE_TEXT_Raining, + BATTLE_TEXT_Raining, +}; + +const u16 BattleTextList_40160E[] = +{ + BATTLE_TEXT_LoafingAround, + BATTLE_TEXT_WontObey, + BATTLE_TEXT_TurnedAway, + BATTLE_TEXT_NotNotice, +}; + +const u16 BattleTextList_401616[] = +{ + BATTLE_TEXT_CreptCloser, + BATTLE_TEXT_CantGetCloser, +}; + +const u16 BattleTextList_40161A[] = +{ + BATTLE_TEXT_CuriousAbout, + BATTLE_TEXT_EnthralledBy, + BATTLE_TEXT_IgnoredThing, +}; + +const u16 BattleTextList_401620[] = +{ + BATTLE_TEXT_CuredConfusion, + BATTLE_TEXT_CuredParalysis, + BATTLE_TEXT_CuredFreeze, + BATTLE_TEXT_CuredBurn, + BATTLE_TEXT_CuredPoison, + BATTLE_TEXT_CuredSleep, +}; + +const u16 BattleTextList_40162C[] = +{ + BATTLE_TEXT_CuredStatus, + BATTLE_TEXT_NormalizedStatus, +}; + +const u16 BattleTextList_401630[] = +{ + BATTLE_TEXT_PreventedBurn, + BATTLE_TEXT_PreventedOther2, + BATTLE_TEXT_NoEffectOn, +}; + +const u16 BattleTextList_401636[] = +{ + BATTLE_TEXT_PreventedPara, + BATTLE_TEXT_PreventedOther2, + BATTLE_TEXT_NoEffectOn, +}; + +const u16 BattleTextList_40163C[] = +{ + BATTLE_TEXT_PreventedPoison, + BATTLE_TEXT_PreventedOther2, + BATTLE_TEXT_NoEffectOn, +}; + +const u16 BattleTextList_401642[] = +{ + BATTLE_TEXT_Obtained1, + BATTLE_TEXT_Obtained2, + BATTLE_TEXT_Obtained3, +}; + +const u16 BattleTextList_401648[] = +{ + BATTLE_TEXT_RaisedFirePower, + BATTLE_TEXT_MadeIneffective, +}; + +const u16 gTrappingMoves[] = +{ + MOVE_BIND, + MOVE_WRAP, + MOVE_FIRE_SPIN, + MOVE_CLAMP, + MOVE_WHIRLPOOL, + MOVE_SAND_TOMB, + 0xFFFF, +}; + +const u8 *const gUnknown_0840165C[] = +{ + BattleText_HP, + BattleText_SpAtk, + BattleText_Attack, + BattleText_SpDef, + BattleText_Defense, + BattleStatText_Speed, +}; + +const u8 *const gUnknown_08401674[] = +{ + BattleText_Normal, + BattleText_Fighting, + BattleText_Flying, + BattleText_Poison, + BattleText_Ground, + BattleText_Rock, + BattleText_Bug, + BattleText_Ghost, + BattleText_Steel, + BattleText_Typeless, + BattleText_Fire, + BattleText_Water, + BattleText_Grass, + BattleText_Electric, + BattleText_Psychic, + BattleText_Ice, + BattleText_Dragon, + BattleText_Dark, +}; diff --git a/src/data/battle_strings_en.h b/src/data/battle_strings_en.h new file mode 100755 index 000000000..7f0481b50 --- /dev/null +++ b/src/data/battle_strings_en.h @@ -0,0 +1,1612 @@ +#include "moves.h" + +enum +{ + BATTLE_TEXT_UnknownString = 12, + BATTLE_TEXT_GainExpPoints, + BATTLE_TEXT_GrewLevel, + BATTLE_TEXT_LearnedMove, + BATTLE_TEXT_TryingToLearnMove, + BATTLE_TEXT_CantLearnMore, + BATTLE_TEXT_DeleteMove, + BATTLE_TEXT_DeletedMove, + BATTLE_TEXT_StopLearning, + BATTLE_TEXT_DidNotLearn, + BATTLE_TEXT_LearnedMove2, + BATTLE_TEXT_AttackMissed, + BATTLE_TEXT_ProtectedItself, + BATTLE_TEXT_StatNoHigher, + BATTLE_TEXT_AvoidedDamage, + BATTLE_TEXT_DoesntAffect, + BATTLE_TEXT_AttackingFainted, + BATTLE_TEXT_DefendingFainted, + BATTLE_TEXT_WinningPrize, + BATTLE_TEXT_OutOfUsablePoke, + BATTLE_TEXT_WhitedOut, + BATTLE_TEXT_PreventEscape, + BATTLE_TEXT_HitMulti, + BATTLE_TEXT_FellAsleep, + BATTLE_TEXT_MadeAsleep, + BATTLE_TEXT_DefendingAsleep, + BATTLE_TEXT_AttackingAsleep, + BATTLE_TEXT_WasntAffected, + BATTLE_TEXT_Poisoned, + BATTLE_TEXT_Poisoned2, + BATTLE_TEXT_PoisonHurt, + BATTLE_TEXT_AlreadyPoisoned, + BATTLE_TEXT_BadlyPoisoned, + BATTLE_TEXT_EnergyDrained, + BATTLE_TEXT_Burned, + BATTLE_TEXT_Burned2, + BATTLE_TEXT_BurnHurt, + BATTLE_TEXT_Frozen, + BATTLE_TEXT_Frozen2, + BATTLE_TEXT_FrozenSolid, + BATTLE_TEXT_DefendingDefrosted, + BATTLE_TEXT_AttackingDefrosted, + BATTLE_TEXT_Defrosted, + BATTLE_TEXT_Paralyzed, + BATTLE_TEXT_Paralyzed2, + BATTLE_TEXT_Paralyzed3, + BATTLE_TEXT_AlreadyParalyzed, + BATTLE_TEXT_ParalysisHealed, + BATTLE_TEXT_DreamEaten, + BATTLE_TEXT_AttackingStatNoHigher, + BATTLE_TEXT_DefendingStatNoHigher, + BATTLE_TEXT_StoppedWorking, + BATTLE_TEXT_StoppedWorking2, + BATTLE_TEXT_Confused, + BATTLE_TEXT_ConfusionSnapOut, + BATTLE_TEXT_BecameConfused, + BATTLE_TEXT_AlreadyConfused, + BATTLE_TEXT_FellLove, + BATTLE_TEXT_InLoveWith, + BATTLE_TEXT_ImmobilizedBy, + BATTLE_TEXT_BlownAway, + BATTLE_TEXT_TypeTransform, + BATTLE_TEXT_Flinched, + BATTLE_TEXT_RegainedHealth, + BATTLE_TEXT_HPFull, + BATTLE_TEXT_RaisedSpDef, + BATTLE_TEXT_RaisedDefense, + BATTLE_TEXT_CoveredVeil, + BATTLE_TEXT_SafeguardActive, + BATTLE_TEXT_SafeguardFaded, + BATTLE_TEXT_WentToSleep, + BATTLE_TEXT_SpeltHealthy, + BATTLE_TEXT_WhipWhirlwind, + BATTLE_TEXT_TookSunlight, + BATTLE_TEXT_LoweredHead, + BATTLE_TEXT_IsGlowing, + BATTLE_TEXT_FlewHigh, + BATTLE_TEXT_DugHole, + BATTLE_TEXT_SqueezedBind, + BATTLE_TEXT_TrappedVortex, + BATTLE_TEXT_Wrapped, + BATTLE_TEXT_Clamped, + BATTLE_TEXT_HurtBy, + BATTLE_TEXT_FreedFrom, + BATTLE_TEXT_KeptGoingCrash, + BATTLE_TEXT_MistShroud, + BATTLE_TEXT_MistProtect, + BATTLE_TEXT_GetPumped, + BATTLE_TEXT_HitRecoil, + BATTLE_TEXT_ProtectedItself2, + BATTLE_TEXT_SandBuffeted, + BATTLE_TEXT_HailStricken, + BATTLE_TEXT_WasSeeded, + BATTLE_TEXT_EvadedAttack, + BATTLE_TEXT_HealthSapped, + BATTLE_TEXT_FastAsleep, + BATTLE_TEXT_WokeUp, + BATTLE_TEXT_UproarAwake, + BATTLE_TEXT_UproarWoke, + BATTLE_TEXT_UproarCaused, + BATTLE_TEXT_UproarMaking, + BATTLE_TEXT_CalmedDown, + BATTLE_TEXT_UproarCantSleep, + BATTLE_TEXT_Stockpiled, + BATTLE_TEXT_StockpiledCant, + BATTLE_TEXT_UproarCantSleep2, + BATTLE_TEXT_UproarKeptAwake, + BATTLE_TEXT_StayedAwake, + BATTLE_TEXT_StoringEnergy, + BATTLE_TEXT_UnleashedEnergy, + BATTLE_TEXT_FatigueConfuse, + BATTLE_TEXT_PickedUpYen, + BATTLE_TEXT_Unaffected, + BATTLE_TEXT_Transformed, + BATTLE_TEXT_SubMade, + BATTLE_TEXT_SubAlready, + BATTLE_TEXT_SubTookDamage, + BATTLE_TEXT_SubFaded, + BATTLE_TEXT_MustRecharge, + BATTLE_TEXT_RageBuilding, + BATTLE_TEXT_MoveWasDisabled, + BATTLE_TEXT_MoveIsDisabled, + BATTLE_TEXT_DisabledNoMore, + BATTLE_TEXT_EncoreGot, + BATTLE_TEXT_EncoreEnded, + BATTLE_TEXT_TookAim, + BATTLE_TEXT_SketchedMove, + BATTLE_TEXT_DestinyBondTake, + BATTLE_TEXT_DestinyBondTaken, + BATTLE_TEXT_ReducedBy, + BATTLE_TEXT_StoleSomething, + BATTLE_TEXT_CantEscapeNow, + BATTLE_TEXT_NightmareStart, + BATTLE_TEXT_NightmareLock, + BATTLE_TEXT_CurseLay, + BATTLE_TEXT_CurseAfflict, + BATTLE_TEXT_SpikesScattered, + BATTLE_TEXT_SpikesHurt, + BATTLE_TEXT_IdentifiedPoke, + BATTLE_TEXT_PerishSongFell, + BATTLE_TEXT_BracedItself, + BATTLE_TEXT_EnduredHit, + BATTLE_TEXT_MagnitudeCount, + BATTLE_TEXT_CutHPMaxATK, + BATTLE_TEXT_CopyStatChanges, + BATTLE_TEXT_GotFreeFrom, + BATTLE_TEXT_LeechShed, + BATTLE_TEXT_SpikesBlownAway, + BATTLE_TEXT_FledBattle, + BATTLE_TEXT_ForesawAttack, + BATTLE_TEXT_TookAttack, + BATTLE_TEXT_PokeAttack, + BATTLE_TEXT_CenterAttention, + BATTLE_TEXT_ChargingPower, + BATTLE_TEXT_NaturePower, + BATTLE_TEXT_StatusNormal, + BATTLE_TEXT_NoMovesLeft, + BATTLE_TEXT_TormentSubject, + BATTLE_TEXT_TormentNoUse, + BATTLE_TEXT_TightenFocus, + BATTLE_TEXT_TauntFell, + BATTLE_TEXT_TauntNoUse, + BATTLE_TEXT_ReadyToHelp, + BATTLE_TEXT_SwitchedItems, + BATTLE_TEXT_CopiedObject, + BATTLE_TEXT_WishMade, + BATTLE_TEXT_WishTrue, + BATTLE_TEXT_PlantedRoots, + BATTLE_TEXT_AbsorbNutrients, + BATTLE_TEXT_AnchoredItself, + BATTLE_TEXT_DrowsyMade, + BATTLE_TEXT_KnockedOffItem, + BATTLE_TEXT_AbilitySwap, + BATTLE_TEXT_SealedMove, + BATTLE_TEXT_SealedNoUse, + BATTLE_TEXT_GrudgeBear, + BATTLE_TEXT_GrudgeLosePP, + BATTLE_TEXT_ShroudedItself, + BATTLE_TEXT_MagicCoatBounce, + BATTLE_TEXT_AwaitMove, + BATTLE_TEXT_SnatchedMove, + BATTLE_TEXT_RainMade, + BATTLE_TEXT_SpeedRisen, + BATTLE_TEXT_ProtectedBy, + BATTLE_TEXT_PreventedBy, + BATTLE_TEXT_HPRestoredUsing, + BATTLE_TEXT_MadeType, + BATTLE_TEXT_PreventedPara, + BATTLE_TEXT_PreventedRomance, + BATTLE_TEXT_PreventedPoison, + BATTLE_TEXT_PreventedConfusion, + BATTLE_TEXT_RaisedFirePower, + BATTLE_TEXT_AnchorsItself, + BATTLE_TEXT_CutsAttack, + BATTLE_TEXT_PreventedStatLoss, + BATTLE_TEXT_HurtOther, + BATTLE_TEXT_Traced, + BATTLE_TEXT_Sharply, + BATTLE_TEXT_Rose, + BATTLE_TEXT_Harshly, + BATTLE_TEXT_Fell, + BATTLE_TEXT_UnknownString7, + BATTLE_TEXT_UnknownString3, + BATTLE_TEXT_UnknownString5, + BATTLE_TEXT_UnknownString6, + BATTLE_TEXT_Critical, + BATTLE_TEXT_GrandSlam, + BATTLE_TEXT_MoveForget123, + BATTLE_TEXT_MoveForgetAnd, + BATTLE_TEXT_NotEffective, + BATTLE_TEXT_SuperEffective, + BATTLE_TEXT_GotAwaySafely, + BATTLE_TEXT_FledWild, + BATTLE_TEXT_NoRunning, + BATTLE_TEXT_CantEscape2, + BATTLE_TEXT_BirchDontLeaveMe, + BATTLE_TEXT_Nothing, + BATTLE_TEXT_Failed, + BATTLE_TEXT_HurtItself, + BATTLE_TEXT_MirrorFail, + BATTLE_TEXT_RainStart, + BATTLE_TEXT_PourStart, + BATTLE_TEXT_RainCont1, + BATTLE_TEXT_PourCont, + BATTLE_TEXT_RainStop, + BATTLE_TEXT_SandBrewed, + BATTLE_TEXT_SandRages, + BATTLE_TEXT_SandSubsided, + BATTLE_TEXT_SunBright, + BATTLE_TEXT_SunStrong, + BATTLE_TEXT_SunFaded, + BATTLE_TEXT_HailStart, + BATTLE_TEXT_HailCont, + BATTLE_TEXT_HailStop, + BATTLE_TEXT_SpitUpFail, + BATTLE_TEXT_SwallowFail, + BATTLE_TEXT_WindHeatWave, + BATTLE_TEXT_StatElim, + BATTLE_TEXT_CoinScatter, + BATTLE_TEXT_SubWeak, + BATTLE_TEXT_PainSplit, + BATTLE_TEXT_BellChime, + BATTLE_TEXT_PerishSong, + BATTLE_TEXT_NoPP1, + BATTLE_TEXT_NoPP2, + BATTLE_TEXT_Used1, + BATTLE_TEXT_TutorialUsed, + BATTLE_TEXT_BlockBall, + BATTLE_TEXT_DontBeAThief, + BATTLE_TEXT_DodgeBall, + BATTLE_TEXT_MissPoke, + BATTLE_TEXT_BallBrokeOhNo, + BATTLE_TEXT_BallBrokeAppeared, + BATTLE_TEXT_BallBrokeAlmost, + BATTLE_TEXT_BallBrokeSoClose, + BATTLE_TEXT_BallCaught1, + BATTLE_TEXT_BallCaught2, + BATTLE_TEXT_GiveNickname, + BATTLE_TEXT_SentToPC, + BATTLE_TEXT_AddedToDex, + BATTLE_TEXT_Raining, + BATTLE_TEXT_Sandstorm, + BATTLE_TEXT_CantEscape, + BATTLE_TEXT_IgnoredOrdersSLP, + BATTLE_TEXT_IgnoredOrders, + BATTLE_TEXT_BeganNap, + BATTLE_TEXT_LoafingAround, + BATTLE_TEXT_WontObey, + BATTLE_TEXT_TurnedAway, + BATTLE_TEXT_NotNotice, + BATTLE_TEXT_WillSwitch, + BATTLE_TEXT_CreptCloser, + BATTLE_TEXT_CantGetCloser, + BATTLE_TEXT_WatchingCarefully, + BATTLE_TEXT_CuriousAbout, + BATTLE_TEXT_EnthralledBy, + BATTLE_TEXT_IgnoredThing, + BATTLE_TEXT_ThrewBlock, + BATTLE_TEXT_SafariOver, + BATTLE_TEXT_CuredParalysis, + BATTLE_TEXT_CuredPoison, + BATTLE_TEXT_CuredBurn, + BATTLE_TEXT_CuredFreeze, + BATTLE_TEXT_CuredSleep, + BATTLE_TEXT_CuredConfusion, + BATTLE_TEXT_CuredStatus, + BATTLE_TEXT_RestoredHealth, + BATTLE_TEXT_RestoredPP, + BATTLE_TEXT_RestoredStatus, + BATTLE_TEXT_RestoredHPLittle, + BATTLE_TEXT_ChoiceBand, + BATTLE_TEXT_FocusSash, + BATTLE_TEXT_Terminator2, + BATTLE_TEXT_PreventedBurn, + BATTLE_TEXT_BlocksOther, + BATTLE_TEXT_RestoredHPByItem, + BATTLE_TEXT_WhipSandstorm, + BATTLE_TEXT_PreventedLoss, + BATTLE_TEXT_InfatuatedPoke, + BATTLE_TEXT_MadeIneffective, + BATTLE_TEXT_CuredProblem, + BATTLE_TEXT_OozeSuckup, + BATTLE_TEXT_Transformed2, + BATTLE_TEXT_ElecWeakened, + BATTLE_TEXT_FireWeakened, + BATTLE_TEXT_HidUnderwater, + BATTLE_TEXT_SprangUp, + BATTLE_TEXT_CantForgetHM, + BATTLE_TEXT_FoundOne, + BATTLE_TEXT_PlayerDefeatedTrainer2, + BATTLE_TEXT_SoothingAroma, + BATTLE_TEXT_CantUseItems, + BATTLE_TEXT_UnknownString2, + BATTLE_TEXT_UnknownString4, + BATTLE_TEXT_HustleUse, + BATTLE_TEXT_MadeUseless, + BATTLE_TEXT_SandTombTrapped, + BATTLE_TEXT_Terminator, + BATTLE_TEXT_BoostedExp, + BATTLE_TEXT_SunIntensified, + BATTLE_TEXT_GroundMoveNegate, + BATTLE_TEXT_WallyBall, + BATTLE_TEXT_TookAttack2, + BATTLE_TEXT_ChoseDestiny, + BATTLE_TEXT_LostFocus, + BATTLE_TEXT_UseNext, + BATTLE_TEXT_FledUsingItem, + BATTLE_TEXT_FledUsingOther, + BATTLE_TEXT_DraggedOut, + BATTLE_TEXT_PreventedOther, + BATTLE_TEXT_NormalizedStatus, + BATTLE_TEXT_Used2, + BATTLE_TEXT_BoxFull, + BATTLE_TEXT_AvoidedAttack, + BATTLE_TEXT_MadeIneffective2, + BATTLE_TEXT_PreventedFlinching, + BATTLE_TEXT_AlreadyBurned, + BATTLE_TEXT_StatNoLower, + BATTLE_TEXT_BlocksOther2, + BATTLE_TEXT_WoreOff, + BATTLE_TEXT_RaisedDefenseLittle, + BATTLE_TEXT_RaisedSpDefLittle, + BATTLE_TEXT_BrokeWall, + BATTLE_TEXT_PreventedOther2, + BATTLE_TEXT_CuredOfProblem, + BATTLE_TEXT_AttackingCantEscape, + BATTLE_TEXT_Obtained1, + BATTLE_TEXT_Obtained2, + BATTLE_TEXT_Obtained3, + BATTLE_TEXT_NoEffect, + BATTLE_TEXT_NoEffectOn, +}; + +const u8 BattleText_UnknownString[] = _("{STRING 33}"); +const u8 BattleText_GainExpPoints[] = _("{STRING 0} gained{STRING 1}\n{STRING 42} EXP. Points!\p"); +const u8 BattleText_Terminator[] = _(""); +const u8 BattleText_BoostedExp[] = _(" a boosted"); +const u8 BattleText_GrewLevel[] = _("{STRING 0} grew to\nLV. {STRING 1}!{UNKNOWN_A}\p"); +const u8 BattleText_LearnedMove[] = _("{STRING 0} learned\n{STRING 1}!{UNKNOWN_A}\p"); +const u8 BattleText_TryingToLearnMove[] = _("{STRING 0} is trying to\nlearn {STRING 1}.\p"); +const u8 BattleText_CantLearnMore[] = _("But, {STRING 0} can’t learn\nmore than four moves.\p"); +const u8 BattleText_DeleteMove[] = _("Delete a move to make\nroom for {STRING 1}?"); +const u8 BattleText_DeletedMove[] = _("{STRING 0} forgot\n{STRING 1}.\p"); +const u8 BattleText_StopLearning[] = _("{PAUSE 32}Stop learning\n{STRING 1}?"); +const u8 BattleText_DidNotLearn[] = _("{STRING 0} did not learn\n{STRING 1}.\p"); +const u8 BattleText_UseNext[] = _("Use next POKéMON?"); +const u8 BattleText_AttackMissed[] = _("{ATTACKING_MON}’s\nattack missed!"); +const u8 BattleText_ProtectedItself[] = _("{DEFENDING_MON}\nprotected itself!"); +const u8 BattleText_AvoidedDamage[] = _("{DEFENDING_MON} avoided\ndamage with {STRING 22}!"); +const u8 BattleText_GroundMoveNegate[] = _("{DEFENDING_MON} makes GROUND\nmoves miss with {STRING 22}!"); +const u8 BattleText_AvoidedAttack[] = _("{DEFENDING_MON} avoided\nthe attack!"); +const u8 BattleText_DoesntAffect[] = _("It doesn’t affect\n{DEFENDING_MON}..."); +const u8 BattleText_AttackingFainted[] = _("{ATTACKING_MON}\nfainted!\p"); +const u8 BattleText_DefendingFainted[] = _("{DEFENDING_MON}\nfainted!\p"); +const u8 BattleText_WinningPrize[] = _("{STRING 32} got ¥{STRING 0}\nfor winning!\p"); +const u8 BattleText_OutOfUsablePoke[] = _("{STRING 32} is out of\nuseable POKéMON!\p"); +const u8 BattleText_WhitedOut[] = _("{STRING 32} whited out!{PAUSE_UNTIL_PRESS}"); +const u8 BattleText_PreventEscape[] = _("{STRING 16} prevents\nescape with {STRING 23}!\p"); +const u8 BattleText_CantEscape[] = _("Can’t escape!\p"); +const u8 BattleText_AttackingCantEscape[] = _("{ATTACKING_MON}\ncan’t escape!"); +const u8 BattleText_HitMulti[] = _("Hit {STRING 0} time(s)!"); +const u8 BattleText_FellAsleep[] = _("{STRING 14}\nfell asleep!"); +const u8 BattleText_MadeAsleep[] = _("{STRING 16}’s {STRING 23}\nmade {STRING 14} sleep!"); +const u8 BattleText_DefendingAsleep[] = _("{DEFENDING_MON} is\nalready asleep!"); +const u8 BattleText_AttackingAsleep[] = _("{ATTACKING_MON} is\nalready asleep!"); +const u8 BattleText_WasntAffected[] = _("{DEFENDING_MON}\nwasn’t affected!"); +const u8 BattleText_Poisoned[] = _("{STRING 14}\nwas poisoned!"); +const u8 BattleText_Poisoned2[] = _("{STRING 16}’s {STRING 23}\npoisoned {STRING 14}!"); +const u8 BattleText_PoisonHurt[] = _("{ATTACKING_MON} is hurt\nby poison!"); +const u8 BattleText_AlreadyPoisoned[] = _("{DEFENDING_MON} is already\npoisoned."); +const u8 BattleText_BadlyPoisoned[] = _("{STRING 14} is badly\npoisoned!"); +const u8 BattleText_EnergyDrained[] = _("{DEFENDING_MON} had its\nenergy drained!"); +const u8 BattleText_Burned[] = _("{STRING 14} was burned!"); +const u8 BattleText_Burned2[] = _("{STRING 16}’s {STRING 23}\nburned {STRING 14}!"); +const u8 BattleText_BurnHurt[] = _("{ATTACKING_MON} is hurt\nby its burn!"); +const u8 BattleText_AlreadyBurned[] = _("{DEFENDING_MON} already\nhas a burn."); +const u8 BattleText_Frozen[] = _("{STRING 14} was\nfrozen solid!"); +const u8 BattleText_Frozen2[] = _("{STRING 16}’s {STRING 23}\nfroze {STRING 14} solid!"); +const u8 BattleText_FrozenSolid[] = _("{ATTACKING_MON} is\nfrozen solid!"); +const u8 BattleText_DefendingDefrosted[] = _("{DEFENDING_MON} was\ndefrosted!"); +const u8 BattleText_AttackingDefrosted[] = _("{ATTACKING_MON} was\ndefrosted!"); +const u8 BattleText_Defrosted[] = _("{ATTACKING_MON} was\ndefrosted by {STRING 17}!"); +const u8 BattleText_Paralyzed[] = _("{STRING 14} is paralyzed!\nIt may be unable to move!"); +const u8 BattleText_Paralyzed2[] = _("{STRING 16}’s {STRING 23}\nparalyzed {STRING 14}!\lIt may be unable to move!"); +const u8 BattleText_Paralyzed3[] = _("{ATTACKING_MON} is paralyzed!\nIt can’t move!"); +const u8 BattleText_AlreadyParalyzed[] = _("{DEFENDING_MON} is\nalready paralyzed!"); +const u8 BattleText_ParalysisHealed[] = _("{DEFENDING_MON} was\nhealed of paralysis!"); +const u8 BattleText_DreamEaten[] = _("{DEFENDING_MON}’s\ndream was eaten!"); +const u8 BattleText_AttackingStatNoHigher[] = _("{ATTACKING_MON}’s {STRING 0}\nwon’t go higher!"); +const u8 BattleText_DefendingStatNoHigher[] = _("{DEFENDING_MON}’s {STRING 0}\nwon’t go lower!"); +const u8 BattleText_StoppedWorking[] = _("Your team’s {STRING 0}\nstopped working!"); +const u8 BattleText_StoppedWorking2[] = _("The foe’s {STRING 0}\nstopped working!"); +const u8 BattleText_Confused[] = _("{ATTACKING_MON} is\nconfused!"); +const u8 BattleText_ConfusionSnapOut[] = _("{ATTACKING_MON} snapped\nout of confusion!"); +const u8 BattleText_BecameConfused[] = _("{STRING 14} became\nconfused!"); +const u8 BattleText_AlreadyConfused[] = _("{DEFENDING_MON} is\nalready confused!"); +const u8 BattleText_FellLove[] = _("{DEFENDING_MON}\nfell in love!"); +const u8 BattleText_InLoveWith[] = _("{ATTACKING_MON} is in love\nwith {STRING 16}!"); +const u8 BattleText_ImmobilizedBy[] = _("{ATTACKING_MON} is\nimmobilized by love!"); +const u8 BattleText_BlownAway[] = _("{DEFENDING_MON} was\nblown away!"); +const u8 BattleText_TypeTransform[] = _("{ATTACKING_MON} transformed\ninto the {STRING 0} type!"); +const u8 BattleText_Flinched[] = _("{ATTACKING_MON} flinched!"); +const u8 BattleText_RegainedHealth[] = _("{DEFENDING_MON} regained\nhealth!"); +const u8 BattleText_HPFull[] = _("{DEFENDING_MON}’s\nHP is full!"); +const u8 BattleText_RaisedSpDef[] = _("{STRING 38}’s {STRING 17}\nraised SP. DEF!"); +const u8 BattleText_RaisedSpDefLittle[] = _("{STRING 38}’s {STRING 17}\nraised SP. DEF a little!"); +const u8 BattleText_RaisedDefense[] = _("{STRING 38}’s {STRING 17}\nraised DEFENSE!"); +const u8 BattleText_RaisedDefenseLittle[] = _("{STRING 38}’s {STRING 17}\nraised DEFENSE a little!"); +const u8 BattleText_CoveredVeil[] = _("{STRING 38} is covered\nby a veil!"); +const u8 BattleText_SafeguardActive[] = _("{DEFENDING_MON} is protected\nby SAFEGUARD!"); +const u8 BattleText_SafeguardFaded[] = _("{STRING 40}’s SAFEGUARD\nfaded!"); +const u8 BattleText_WentToSleep[] = _("{ATTACKING_MON} went\nto sleep!"); +const u8 BattleText_SpeltHealthy[] = _("{ATTACKING_MON} slept and\nbecame healthy!"); +const u8 BattleText_WhipWhirlwind[] = _("{ATTACKING_MON} whipped\nup a whirlwind!"); +const u8 BattleText_TookSunlight[] = _("{ATTACKING_MON} took\nin sunlight!"); +const u8 BattleText_LoweredHead[] = _("{ATTACKING_MON} lowered\nits head!"); +const u8 BattleText_IsGlowing[] = _("{ATTACKING_MON} is glowing!"); +const u8 BattleText_FlewHigh[] = _("{ATTACKING_MON} flew\nup high!"); +const u8 BattleText_DugHole[] = _("{ATTACKING_MON} dug a hole!"); +const u8 BattleText_HidUnderwater[] = _("{ATTACKING_MON} hid\nunderwater!"); +const u8 BattleText_SprangUp[] = _("{ATTACKING_MON} sprang up!"); +const u8 BattleText_SqueezedBind[] = _("{DEFENDING_MON} was squeezed by\n{ATTACKING_MON}’s BIND!"); +const u8 BattleText_TrappedVortex[] = _("{DEFENDING_MON} was trapped\nin the vortex!"); +const u8 BattleText_SandTombTrapped[] = _("{DEFENDING_MON} was trapped\nby SAND TOMB!"); +const u8 BattleText_Wrapped[] = _("{DEFENDING_MON} was WRAPPED by\n{ATTACKING_MON}!"); +const u8 BattleText_Clamped[] = _("{ATTACKING_MON} CLAMPED\n{DEFENDING_MON}!"); +const u8 BattleText_HurtBy[] = _("{ATTACKING_MON} is hurt\nby {STRING 0}!"); +const u8 BattleText_FreedFrom[] = _("{ATTACKING_MON} was freed\nfrom {STRING 0}!"); +const u8 BattleText_KeptGoingCrash[] = _("{ATTACKING_MON} kept going\nand crashed!"); +const u8 BattleText_MistShroud[] = _("{STRING 38} became\nshrouded in MIST!"); +const u8 BattleText_MistProtect[] = _("{STRING 16} is protected\nby MIST!"); +const u8 BattleText_GetPumped[] = _("{ATTACKING_MON} is getting\npumped!"); +const u8 BattleText_HitRecoil[] = _("{ATTACKING_MON} is hit\nwith recoil!"); +const u8 BattleText_ProtectedItself2[] = _("{ATTACKING_MON} protected\nitself!"); +const u8 BattleText_SandBuffeted[] = _("{ATTACKING_MON} is buffeted\nby the sandstorm!"); +const u8 BattleText_HailStricken[] = _("{ATTACKING_MON} is stricken\nby HAIL!"); +const u8 BattleText_WoreOff[] = _("{STRING 36}’s {STRING 0}\nwore off!"); +const u8 BattleText_WasSeeded[] = _("{DEFENDING_MON} was seeded!"); +const u8 BattleText_EvadedAttack[] = _("{DEFENDING_MON} evaded\nthe attack!"); +const u8 BattleText_HealthSapped[] = _("{ATTACKING_MON}’s health is\nsapped by LEECH SEED!"); +const u8 BattleText_FastAsleep[] = _("{ATTACKING_MON} is fast\nasleep."); +const u8 BattleText_WokeUp[] = _("{ATTACKING_MON} woke up!"); +const u8 BattleText_UproarAwake[] = _("But {STRING 16}’s UPROAR\nkept it awake!"); +const u8 BattleText_UproarWoke[] = _("{ATTACKING_MON} woke up\nin the UPROAR!"); +const u8 BattleText_UproarCaused[] = _("{ATTACKING_MON} caused\nan UPROAR!"); +const u8 BattleText_UproarMaking[] = _("{ATTACKING_MON} is making\nan UPROAR!"); +const u8 BattleText_CalmedDown[] = _("{ATTACKING_MON} calmed down."); +const u8 BattleText_UproarCantSleep[] = _("But {DEFENDING_MON} can’t\nsleep in an UPROAR!"); +const u8 BattleText_Stockpiled[] = _("{ATTACKING_MON} STOCKPILED\n{STRING 0}!"); +const u8 BattleText_StockpiledCant[] = _("{ATTACKING_MON} can’t\nSTOCKPILE any more!"); +const u8 BattleText_UproarCantSleep2[] = _("But {DEFENDING_MON} can’t\nsleep in an UPROAR!"); +const u8 BattleText_UproarKeptAwake[] = _("But the UPROAR kept\n{DEFENDING_MON} awake!"); +const u8 BattleText_StayedAwake[] = _("{DEFENDING_MON} stayed awake\nusing its {STRING 22}!"); +const u8 BattleText_StoringEnergy[] = _("{ATTACKING_MON} is storing\nenergy!"); +const u8 BattleText_UnleashedEnergy[] = _("{ATTACKING_MON} unleashed\nenergy!"); +const u8 BattleText_FatigueConfuse[] = _("{ATTACKING_MON} became\nconfused out of fatigue!"); +const u8 BattleText_PickedUpYen[] = _("{STRING 32} picked up\n¥{STRING 0}!\p"); +const u8 BattleText_Unaffected[] = _("{DEFENDING_MON} is\nunaffected!"); +const u8 BattleText_Transformed[] = _("{ATTACKING_MON} transformed\ninto {STRING 0}!"); +const u8 BattleText_SubMade[] = _("{ATTACKING_MON} made\na SUBSTITUTE!"); +const u8 BattleText_SubAlready[] = _("{ATTACKING_MON} already\nhas a SUBSTITUTE!"); +const u8 BattleText_SubTookDamage[] = _("The SUBSTITUTE took damage\nfor {DEFENDING_MON}!\p"); +const u8 BattleText_SubFaded[] = _("{DEFENDING_MON}’s\nSUBSTITUTE faded!\p"); +const u8 BattleText_MustRecharge[] = _("{ATTACKING_MON} must\nrecharge!"); +const u8 BattleText_RageBuilding[] = _("{DEFENDING_MON}’s RAGE\nis building!"); +const u8 BattleText_MoveWasDisabled[] = _("{DEFENDING_MON}’s {STRING 0}\nwas disabled!"); +const u8 BattleText_DisabledNoMore[] = _("{ATTACKING_MON} is disabled\nno more!"); +const u8 BattleText_EncoreGot[] = _("{DEFENDING_MON} got\nan ENCORE!"); +const u8 BattleText_EncoreEnded[] = _("{ATTACKING_MON}’s ENCORE\nended!"); +const u8 BattleText_TookAim[] = _("{ATTACKING_MON} took aim\nat {DEFENDING_MON}!"); +const u8 BattleText_SketchedMove[] = _("{ATTACKING_MON} SKETCHED\n{STRING 0}!"); +const u8 BattleText_DestinyBondTake[] = _("{ATTACKING_MON} is trying\nto take its foe with it!"); +const u8 BattleText_DestinyBondTaken[] = _("{DEFENDING_MON} took\n{ATTACKING_MON} with it!"); +const u8 BattleText_ReducedBy[] = _("Reduced {DEFENDING_MON}’s\n{STRING 0} by {STRING 1}!"); +const u8 BattleText_StoleSomething[] = _("{ATTACKING_MON} stole\n{DEFENDING_MON}’s {STRING 19}!"); +const u8 BattleText_CantEscapeNow[] = _("{DEFENDING_MON} can’t\nescape now!"); +const u8 BattleText_NightmareStart[] = _("{DEFENDING_MON} fell into\na NIGHTMARE!"); +const u8 BattleText_NightmareLock[] = _("{ATTACKING_MON} is locked\nin a NIGHTMARE!"); +const u8 BattleText_CurseLay[] = _("{ATTACKING_MON} cut its own HP\nand laid a CURSE on\l{DEFENDING_MON}!"); +const u8 BattleText_CurseAfflict[] = _("{ATTACKING_MON} is afflicted\nby the CURSE!"); +const u8 BattleText_SpikesScattered[] = _("{STRING 37} POKéMON team had SPIKES\nscattered around it!"); +const u8 BattleText_SpikesHurt[] = _("{STRING 16} is hurt\nby SPIKES!"); +const u8 BattleText_IdentifiedPoke[] = _("{ATTACKING_MON} identified\n{DEFENDING_MON}!"); +const u8 BattleText_PerishSongFell[] = _("{ATTACKING_MON}’s PERISH count\nfell to {STRING 0}!"); +const u8 BattleText_BracedItself[] = _("{ATTACKING_MON} braced\nitself!"); +const u8 BattleText_EnduredHit[] = _("{DEFENDING_MON} ENDURED\nthe hit!"); +const u8 BattleText_MagnitudeCount[] = _("MAGNITUDE {STRING 0}!"); +const u8 BattleText_CutHPMaxATK[] = _("{ATTACKING_MON} cut its own HP\nand maximized ATTACK!"); +const u8 BattleText_CopyStatChanges[] = _("{ATTACKING_MON} copied\n{DEFENDING_MON}’s stat changes!"); +const u8 BattleText_GotFreeFrom[] = _("{ATTACKING_MON} got free of\n{DEFENDING_MON}’s {STRING 0}!"); +const u8 BattleText_LeechShed[] = _("{ATTACKING_MON} shed\nLEECH SEED!"); +const u8 BattleText_SpikesBlownAway[] = _("{ATTACKING_MON} blew away\nSPIKES!"); +const u8 BattleText_FledBattle[] = _("{ATTACKING_MON} fled from\nbattle!"); +const u8 BattleText_ForesawAttack[] = _("{ATTACKING_MON} foresaw\nan attack!"); +const u8 BattleText_TookAttack[] = _("{DEFENDING_MON} took\n{STRING 0}’s attack!"); +const u8 BattleText_ChoseDestiny[] = _("{ATTACKING_MON} chose\n{STRING 17} as its destiny!"); +const u8 BattleText_PokeAttack[] = _("{STRING 0}’s attack!"); +const u8 BattleText_CenterAttention[] = _("{ATTACKING_MON} became the\ncenter of attention!"); +const u8 BattleText_ChargingPower[] = _("{ATTACKING_MON} began\ncharging power!"); +const u8 BattleText_NaturePower[] = _("NATURE POWER turned into\n{STRING 17}!"); +const u8 BattleText_StatusNormal[] = _("{ATTACKING_MON}’s status\nreturned to normal!"); +const u8 BattleText_TormentSubject[] = _("{DEFENDING_MON} was subjected\nto TORMENT!"); +const u8 BattleText_TightenFocus[] = _("{ATTACKING_MON} is tightening\nits focus!"); +const u8 BattleText_TauntFell[] = _("{DEFENDING_MON} fell for\nthe TAUNT!"); +const u8 BattleText_ReadyToHelp[] = _("{ATTACKING_MON} is ready to\nhelp {DEFENDING_MON}!"); +const u8 BattleText_SwitchedItems[] = _("{ATTACKING_MON} switched\nitems with its opponent!"); +const u8 BattleText_Obtained1[] = _("{ATTACKING_MON} obtained\n{STRING 0}."); +const u8 BattleText_Obtained2[] = _("{DEFENDING_MON} obtained\n{STRING 1}."); +const u8 BattleText_Obtained3[] = _("{ATTACKING_MON} obtained\n{STRING 0}.\p{DEFENDING_MON} obtained\n{STRING 1}."); +const u8 BattleText_CopiedObject[] = _("{ATTACKING_MON} copied\n{DEFENDING_MON}’s {STRING 22}!"); +const u8 BattleText_WishMade[] = _("{ATTACKING_MON} made a WISH!"); +const u8 BattleText_WishTrue[] = _("{STRING 0}’s WISH\ncame true!"); +const u8 BattleText_PlantedRoots[] = _("{ATTACKING_MON} planted its roots!"); +const u8 BattleText_AbsorbNutrients[] = _("{ATTACKING_MON} absorbed\nnutrients with its roots!"); +const u8 BattleText_AnchoredItself[] = _("{DEFENDING_MON} anchored\nitself with its roots!"); +const u8 BattleText_DrowsyMade[] = _("{ATTACKING_MON} made\n{DEFENDING_MON} drowsy!"); +const u8 BattleText_KnockedOffItem[] = _("{ATTACKING_MON} knocked off\n{DEFENDING_MON}’s {STRING 19}!"); +const u8 BattleText_AbilitySwap[] = _("{ATTACKING_MON} swapped abilities\nwith its opponent!"); +const u8 BattleText_SealedMove[] = _("{ATTACKING_MON} sealed the\nopponent’s move(s)!"); +const u8 BattleText_GrudgeBear[] = _("{ATTACKING_MON} wants the\nopponent to bear a GRUDGE!"); +const u8 BattleText_GrudgeLosePP[] = _("{ATTACKING_MON}’s {STRING 0}\nlost all its PP due to\lthe GRUDGE!"); +const u8 BattleText_ShroudedItself[] = _("{ATTACKING_MON} shrouded\nitself in {STRING 17}!"); +const u8 BattleText_MagicCoatBounce[] = _("{ATTACKING_MON}’s {STRING 17}\nwas bounced back by MAGIC COAT!"); +const u8 BattleText_AwaitMove[] = _("{ATTACKING_MON} awaits its foe\nto make a move!"); +const u8 BattleText_SnatchedMove[] = _("{DEFENDING_MON} SNATCHED\n{STRING 16}’s move!"); +const u8 BattleText_ElecWeakened[] = _("Electricity’s power was\nweakened!"); +const u8 BattleText_FireWeakened[] = _("Fire’s power was\nweakened!"); +const u8 BattleText_FoundOne[] = _("{ATTACKING_MON} found\none {STRING 19}!"); +const u8 BattleText_SoothingAroma[] = _("A soothing aroma wafted\nthrough the area!"); +const u8 BattleText_CantUseItems[] = _("Items can’t be used now.{PAUSE 64}"); +const u8 BattleText_UnknownString2[] = _("For {STRING 16},\n{STRING 19} {STRING 0}"); +const u8 BattleText_HustleUse[] = _("{STRING 16} used\n{STRING 19} to hustle!"); +const u8 BattleText_LostFocus[] = _("{ATTACKING_MON} lost its\nfocus and couldn’t move!"); +const u8 BattleText_DraggedOut[] = _("{DEFENDING_MON} was\ndragged out!\p"); +const u8 BattleText_BrokeWall[] = _("The wall shattered!"); +const u8 BattleText_NoEffect[] = _("But it had no effect!"); +const u8 BattleText_NoMovesLeft[] = _("{STRING 15} has no\nmoves left!\p"); +const u8 BattleText_MoveIsDisabled[] = _("{STRING 15}’s {STRING 17}\nis disabled!\p"); +const u8 BattleText_TormentNoUse[] = _("{STRING 15} can’t use the same\nmove twice in a row due to the TORMENT!\p"); +const u8 BattleText_TauntNoUse[] = _("{STRING 15} can’t use\n{STRING 17} after the TAUNT!\p"); +const u8 BattleText_SealedNoUse[] = _("{STRING 15} can’t use the\nsealed {STRING 17}!\p"); +const u8 BattleText_RainMade[] = _("{STRING 16}’s {STRING 23}\nmade it rain!"); +const u8 BattleText_SpeedRisen[] = _("{STRING 16}’s {STRING 23}\nraised its SPEED!"); +const u8 BattleText_ProtectedBy[] = _("{DEFENDING_MON} was protected\nby {STRING 22}!"); +const u8 BattleText_PreventedBy[] = _("{DEFENDING_MON}’s {STRING 22}\nprevents {ATTACKING_MON}\lfrom using {STRING 17}!"); +const u8 BattleText_HPRestoredUsing[] = _("{DEFENDING_MON} restored HP\nusing its {STRING 22}!"); +const u8 BattleText_MadeUseless[] = _("{DEFENDING_MON}’s {STRING 22}\nmade {STRING 17} useless!"); +const u8 BattleText_MadeType[] = _("{DEFENDING_MON}’s {STRING 22}\nmade it the {STRING 0} type!"); +const u8 BattleText_PreventedPara[] = _("{STRING 14}’s {STRING 22}\nprevents paralysis!"); +const u8 BattleText_PreventedRomance[] = _("{DEFENDING_MON}’s {STRING 22}\nprevents romance!"); +const u8 BattleText_PreventedPoison[] = _("{STRING 14}’s {STRING 22}\nprevents poisoning!"); +const u8 BattleText_PreventedConfusion[] = _("{DEFENDING_MON}’s {STRING 22}\nprevents confusion!"); +const u8 BattleText_RaisedFirePower[] = _("{DEFENDING_MON}’s {STRING 22}\nraised its FIRE power!"); +const u8 BattleText_AnchorsItself[] = _("{DEFENDING_MON} anchors\nitself with {STRING 22}!"); +const u8 BattleText_CutsAttack[] = _("{STRING 16}’s {STRING 23}\ncuts {DEFENDING_MON}’s ATTACK!"); +const u8 BattleText_PreventedStatLoss[] = _("{STRING 16}’s {STRING 23}\nprevents stat loss!"); +const u8 BattleText_HurtOther[] = _("{DEFENDING_MON}’s {STRING 22}\nhurt {ATTACKING_MON}!"); +const u8 BattleText_Traced[] = _("{STRING 16} TRACED\n{STRING 0}’s {STRING 1}!"); +const u8 BattleText_PreventedBurn[] = _("{STRING 14}’s {STRING 24}\nprevents burns!"); +const u8 BattleText_BlocksOther[] = _("{DEFENDING_MON}’s {STRING 22}\nblocks {STRING 17}!"); +const u8 BattleText_BlocksOther2[] = _("{STRING 16}’s {STRING 23}\nblocks {STRING 17}!"); +const u8 BattleText_RestoredHPByItem[] = _("{ATTACKING_MON}’s {STRING 21}\nrestored some HP!"); +const u8 BattleText_WhipSandstorm[] = _("{STRING 16}’s {STRING 23}\nwhipped up a sandstorm!"); +const u8 BattleText_SunIntensified[] = _("{STRING 16}’s {STRING 23}\nintensified the sun’s rays!"); +const u8 BattleText_PreventedLoss[] = _("{STRING 16}’s {STRING 23}\nprevents {STRING 0} loss!"); +const u8 BattleText_InfatuatedPoke[] = _("{DEFENDING_MON}’s {STRING 22}\ninfatuated {ATTACKING_MON}!"); +const u8 BattleText_MadeIneffective[] = _("{DEFENDING_MON}’s {STRING 22}\nmade {STRING 17} ineffective!"); +const u8 BattleText_CuredProblem[] = _("{STRING 16}’s {STRING 23}\ncured its {STRING 0} problem!"); +const u8 BattleText_OozeSuckup[] = _("It sucked up the\nLIQUID OOZE!"); +const u8 BattleText_Transformed2[] = _("{STRING 16} transformed!"); +const u8 BattleText_TookAttack2[] = _("{DEFENDING_MON}’s {STRING 22}\ntook the attack!"); +const u8 BattleText_PreventedSwitch[] = _("{STRING 0}’s {STRING 20}\nprevents switching!\p"); +const u8 BattleText_PreventedOther[] = _("{DEFENDING_MON}’s {STRING 22}\nprevented {STRING 16}’s\l{STRING 0} from working!"); +const u8 BattleText_MadeIneffective2[] = _("{STRING 16}’s {STRING 23}\nmade it ineffective!"); +const u8 BattleText_PreventedFlinching[] = _("{STRING 14}’s {STRING 24}\nprevents flinching!"); +const u8 BattleText_PreventedOther2[] = _("{ATTACKING_MON}’s {STRING 21}\nprevents {DEFENDING_MON}’s\l{STRING 22} from working!"); +const u8 BattleText_CuredOfProblem[] = _("{STRING 16}’s {STRING 23}\ncured its {STRING 0} problem!"); +const u8 BattleText_NoEffectOn[] = _("{STRING 16}’s {STRING 23}\nhad no effect on {STRING 14}!"); +const u8 BattleText_Sharply[] = _("sharply "); +const u8 BattleText_Rose[] = _("rose!"); +const u8 BattleText_Harshly[] = _("harshly "); +const u8 BattleText_Fell[] = _("fell!"); +const u8 BattleText_UnknownString7[] = _("{ATTACKING_MON}’s {STRING 0}\n{STRING 1}"); +const u8 BattleText_UnknownString3[] = _("{DEFENDING_MON}’s {STRING 0}\n{STRING 1}"); +const u8 BattleText_UnknownString4[] = _("Using {STRING 19}, the {STRING 0}\nof {STRING 16} {STRING 1}"); +const u8 BattleText_UnknownString5[] = _("{ATTACKING_MON}’s {STRING 0}\n{STRING 1}"); +const u8 BattleText_UnknownString6[] = _("{DEFENDING_MON}’s {STRING 0}\n{STRING 1}"); +const u8 BattleText_StatNoHigher[] = _("{ATTACKING_MON}’s stats won’t\ngo any higher!"); +const u8 BattleText_StatNoLower[] = _("{DEFENDING_MON}’s stats won’t\ngo any lower!"); +const u8 BattleText_Critical[] = _("A critical hit!"); +const u8 BattleText_GrandSlam[] = _("It’s a one-hit KO!"); +const u8 BattleText_MoveForget123[] = _("{PAUSE 32}1, {PAUSE 15}2 and...{PAUSE 15} ...{PAUSE 15} ...{PAUSE 15}\n{PAUSE 15}{PLAY_SE SE_KON}Poof!\p"); +const u8 BattleText_MoveForgetAnd[] = _("And...\p"); +const u8 BattleText_CantForgetHM[] = _("HM moves can’t be\nforgotten now.\p"); +const u8 BattleText_NotEffective[] = _("It’s not very effective..."); +const u8 BattleText_SuperEffective[] = _("It’s super effective!"); +const u8 BattleText_GotAwaySafely[] = _("{PLAY_SE SE_NIGERU}Got away safely!\p"); +const u8 BattleText_FledUsingItem[] = _("{PLAY_SE SE_NIGERU}{ATTACKING_MON} fled\nusing its {STRING 19}!\p"); +const u8 BattleText_FledUsingOther[] = _("{PLAY_SE SE_NIGERU}{ATTACKING_MON} fled\nusing {STRING 21}!\p"); +const u8 BattleText_FledWild[] = _("{PLAY_SE SE_NIGERU}Wild {STRING 0} fled!"); +const u8 BattleText_PlayerDefeatedTrainer[] = _("Player defeated\n{STRING 29}!"); +const u8 BattleText_PlayerDefeatedTrainers[] = _("Player beat {STRING 30}\nand {STRING 29}!"); +const u8 BattleText_PlayerLostTrainer[] = _("Player lost against\n{STRING 29}!"); +const u8 BattleText_PlayerLostTrainers[] = _("Player lost to {STRING 30}\nand {STRING 29}!"); +const u8 BattleText_PlayerTiedTrainer[] = _("Player tied against\n{STRING 29}!"); +const u8 BattleText_PlayerTiedTrainers[] = _("Player tied against {STRING 30}\nand {STRING 29}!"); +const u8 BattleText_FledSingle[] = _("{PLAY_SE SE_NIGERU}{STRING 29} fled!"); +const u8 BattleText_FledDouble[] = _("{PLAY_SE SE_NIGERU}{STRING 29} and\n{STRING 30} fled!"); +const u8 BattleText_NoRunning[] = _("No! There’s no running\nfrom a TRAINER battle!\p"); +const u8 BattleText_CantEscape2[] = _("Can’t escape!\p"); +const u8 BattleText_BirchDontLeaveMe[] = _("PROF. BIRCH: D-don’t leave\nme here like this!\p"); +const u8 BattleText_Nothing[] = _("But nothing happened!"); +const u8 BattleText_Failed[] = _("But it failed!"); +const u8 BattleText_HurtItself[] = _("It hurt itself in its\nconfusion!"); +const u8 BattleText_MirrorFail[] = _("The MIRROR MOVE failed!"); +const u8 BattleText_RainStart[] = _("It started to rain!"); +const u8 BattleText_PourStart[] = _("A downpour started!"); +const u8 BattleText_RainCont1[] = _("Rain continues to fall."); +const u8 BattleText_PourCont[] = _("The downpour continues."); +const u8 BattleText_RainStop[] = _("The rain stopped."); +const u8 BattleText_SandBrewed[] = _("A sandstorm brewed!"); +const u8 BattleText_SandRages[] = _("The sandstorm rages."); +const u8 BattleText_SandSubsided[] = _("The sandstorm subsided."); +const u8 BattleText_SunBright[] = _("The sunlight got bright!"); +const u8 BattleText_SunStrong[] = _("The sunlight is strong."); +const u8 BattleText_SunFaded[] = _("The sunlight faded."); +const u8 BattleText_HailStart[] = _("It started to hail!"); +const u8 BattleText_HailCont[] = _("Hail continues to fall."); +const u8 BattleText_HailStop[] = _("The hail stopped."); +const u8 BattleText_SpitUpFail[] = _("But it failed to SPIT UP\na thing!"); +const u8 BattleText_SwallowFail[] = _("But it failed to SWALLOW\na thing!"); +const u8 BattleText_WindHeatWave[] = _("The wind turned into a\nHEAT WAVE!"); +const u8 BattleText_StatElim[] = _("All stat changes were\neliminated!"); +const u8 BattleText_CoinScatter[] = _("Coins scattered everywhere!"); +const u8 BattleText_SubWeak[] = _("It was too weak to make\na SUBSTITUTE!"); +const u8 BattleText_PainSplit[] = _("The battlers shared\ntheir pain!"); +const u8 BattleText_BellChime[] = _("A bell chimed!"); +const u8 BattleText_PerishSong[] = _("All affected POKéMON will\nfaint in 3 turns!"); +const u8 BattleText_NoPP1[] = _("There’s no PP left for\nthis move!\p"); +const u8 BattleText_NoPP2[] = _("But there was no PP left\nfor the move!"); +const u8 BattleText_IgnoredOrdersSLP[] = _("{ATTACKING_MON} ignored\norders while asleep!"); +const u8 BattleText_IgnoredOrders[] = _("{ATTACKING_MON} ignored\norders!"); +const u8 BattleText_BeganNap[] = _("{ATTACKING_MON} began to nap!"); +const u8 BattleText_LoafingAround[] = _("{ATTACKING_MON} is\nloafing around!"); +const u8 BattleText_WontObey[] = _("{ATTACKING_MON} won’t\nobey!"); +const u8 BattleText_TurnedAway[] = _("{ATTACKING_MON} turned away!"); +const u8 BattleText_NotNotice[] = _("{ATTACKING_MON} pretended\nto not notice!"); +const u8 BattleText_WillSwitch[] = _("{STRING 25} {STRING 26} is\nabout to use {STRING 1}.\pWill {STRING 32} change\nPOKéMON?"); +const u8 BattleText_LearnedMove2[] = _("{ATTACKING_MON} learned\n{STRING 0}!"); +const u8 BattleText_PlayerDefeatedTrainer2[] = _("Player defeated\n{STRING 25} {STRING 26}!\p"); +const u8 BattleText_CreptCloser[] = _("{STRING 32} crept closer to\n{STRING 3}!"); +const u8 BattleText_CantGetCloser[] = _("{STRING 32} can’t get any closer!"); +const u8 BattleText_WatchingCarefully[] = _("{STRING 3} is watching\ncarefully!"); +const u8 BattleText_CuriousAbout[] = _("{STRING 3} is curious about\nthe {STRING 0}!"); +const u8 BattleText_EnthralledBy[] = _("{STRING 3} is enthralled by\nthe {STRING 0}!"); +const u8 BattleText_IgnoredThing[] = _("{STRING 3} completely ignored\nthe {STRING 0}!"); +const u8 BattleText_ThrewBlock[] = _("{STRING 32} threw a {POKEBLOCK}\nat the {STRING 3}!"); +const u8 BattleText_SafariOver[] = _("{PLAY_SE SE_PINPON}ANNOUNCER: You’re out of\nSAFARI BALLS! Game over!\p"); +const u8 BattleText_WildAppeared1[] = _("Wild {STRING 3} appeared!\p"); +const u8 BattleText_WildAppeared2[] = _("Wild {STRING 3} appeared!\p"); +const u8 BattleText_WildAppeared3[] = _("Wild {STRING 3} appeared!{PAUSE 127}"); +const u8 BattleText_WildDoubleAppeared[] = _("Wild {STRING 5} and\n{STRING 3} appeared!\p"); +const u8 BattleText_SingleWantToBattle1[] = _("{STRING 25} {STRING 26}\nwould like to battle!\p"); +const u8 BattleText_SingleWantToBattle2[] = _("{STRING 29}\nwants to battle!"); +const u8 BattleText_DoubleWantToBattle[] = _("{STRING 29} and {STRING 30}\nwant to battle!"); +const u8 BattleText_SentOutSingle1[] = _("{STRING 25} {STRING 26} sent\nout {STRING 3}!"); +const u8 BattleText_SentOutDouble1[] = _("{STRING 25} {STRING 26} sent\nout {STRING 3} and {STRING 5}!"); +const u8 BattleText_SentOutSingle2[] = _("{STRING 25} {STRING 26} sent\nout {STRING 0}!"); +const u8 BattleText_SentOutSingle3[] = _("{STRING 29} sent\nout {STRING 3}!"); +const u8 BattleText_SentOutDouble2[] = _("{STRING 29} sent out\n{STRING 3} and {STRING 5}!"); +const u8 BattleText_SentOutDouble3[] = _("{STRING 29} sent out\n{STRING 7}!\p{STRING 30} sent out\n{STRING 9}!"); +const u8 BattleText_SentOutSingle4[] = _("{STRING 29} sent out\n{STRING 0}!"); +const u8 BattleText_SentOutSingle5[] = _("{STRING 31} sent out\n{STRING 0}!"); +const u8 BattleText_SentOutSingle6[] = _("Go! {STRING 2}!"); +const u8 BattleText_SentOutDouble4[] = _("Go! {STRING 2} and\n{STRING 4}!"); +const u8 BattleText_SentOutSingle7[] = _("Go! {STRING 0}!"); +const u8 BattleText_SentOutSingle8[] = _("Do it! {STRING 0}!"); +const u8 BattleText_SentOutSingle9[] = _("Go for it, {STRING 0}!"); +const u8 BattleText_SentOutSingle10[] = _("Your foe’s weak!\nGet’m, {STRING 0}!"); +const u8 BattleText_SentOutSingle11[] = _("{STRING 28} sent out\n{STRING 8}!\pGo! {STRING 6}!"); +const u8 BattleText_ComeBackSingle1[] = _("{STRING 0}, that’s enough!\nCome back!"); +const u8 BattleText_ComeBackSingle2[] = _("{STRING 0}, come back!"); +const u8 BattleText_ComeBackSingle3[] = _("{STRING 0}, OK!\nCome back!"); +const u8 BattleText_ComeBackSingle4[] = _("{STRING 0}, good!\nCome back!"); +const u8 BattleText_WithdrewPoke1[] = _("{STRING 25} {STRING 26}\nwithdrew {STRING 0}!"); +const u8 BattleText_WithdrewPoke2[] = _("{STRING 29} withdrew\n{STRING 0}!"); +const u8 BattleText_WithdrewPoke3[] = _("{STRING 31} withdrew\n{STRING 0}!"); +const u8 BattleText_Wild[] = _("Wild "); +const u8 BattleText_Foe[] = _("Foe "); +const u8 BattleText_Foe2[] = _("Foe "); +const u8 BattleText_Ally[] = _("Ally "); +const u8 BattleText_Foe3[] = _("Foe "); +const u8 BattleText_Ally2[] = _("Ally "); +const u8 BattleText_Foe4[] = _("Foe "); +const u8 BattleText_Ally3[] = _("Ally "); +const u8 BattleText_OpponentUsedMove[] = _("{ATTACKING_MON} used\n{STRING 1}"); +const u8 BattleText_Exclamation2[] = _("!"); +const u8 BattleText_Exclamation3[] = _("!"); +const u8 BattleText_Exclamation4[] = _("!"); +const u8 BattleText_Exclamation5[] = _("!"); +const u8 BattleText_Exclamation[] = _("!"); +const u8 BattleStatText_HP[] = _("HP"); +const u8 BattleStatText_Attack[] = _("ATTACK"); +const u8 BattleStatText_Defense[] = _("DEFENSE"); +const u8 BattleStatText_Speed[] = _("SPEED"); +const u8 BattleStatText_SpAtk[] = _("SP. ATK"); +const u8 BattleStatText_SpDef[] = _("SP. DEF"); +const u8 BattleStatText_Accuracy[] = _("accuracy"); +const u8 BattleStatText_Evasion[] = _("evasiveness"); +const u8 ContestStatText_TooSpicy[] = _("was too spicy!"); +const u8 ContestStatText_TooDry[] = _("was too dry!"); +const u8 ContestStatText_TooSweet[] = _("was too sweet!"); +const u8 ContestStatText_TooBitter[] = _("was too bitter!"); +const u8 ContestStatText_TooSour[] = _("was too sour!"); +const u8 BattleText_Used1[] = _("{STRING 32} used\n{STRING 19}!"); +const u8 BattleText_TutorialUsed[] = _("WALLY used\n{STRING 19}!"); +const u8 BattleText_Used2[] = _("{STRING 25} {STRING 26}\nused {STRING 19}!"); +const u8 BattleText_BlockBall[] = _("The TRAINER blocked the BALL!"); +const u8 BattleText_DontBeAThief[] = _("Don’t be a thief!"); +const u8 BattleText_DodgeBall[] = _("It dodged the thrown BALL!\nThis POKéMON can’t be caught!"); +const u8 BattleText_MissPoke[] = _("You missed the POKéMON!"); +const u8 BattleText_BallBrokeOhNo[] = _("Oh, no!\nThe POKéMON broke free!"); +const u8 BattleText_BallBrokeAppeared[] = _("Aww!\nIt appeared to be caught!"); +const u8 BattleText_BallBrokeAlmost[] = _("Aargh!\nAlmost had it!"); +const u8 BattleText_BallBrokeSoClose[] = _("Shoot!\nIt was so close, too!"); +const u8 BattleText_BallCaught1[] = _("Gotcha!\n{STRING 3} was caught!{UNKNOWN_A}{PLAY_BGM BGM_KACHI22}\p"); +const u8 BattleText_BallCaught2[] = _("Gotcha!\n{STRING 3} was caught!{UNKNOWN_A}{PLAY_BGM BGM_KACHI22}{PAUSE 127}"); +const u8 BattleText_GiveNickname[] = _("Give a nickname to the\ncaptured {STRING 3}?"); +const u8 BattleText_SentToPC[] = _("{STRING 3} was sent to\n{STRING 35} PC."); +const u8 BattleText_Someone[] = _("someone’s"); +const u8 BattleText_Lanette[] = _("LANETTE’s"); +const u8 BattleText_AddedToDex[] = _("{STRING 3}’s data was\nadded to the POKéDEX.\p"); +const u8 BattleText_Raining[] = _("It is raining."); +const u8 BattleText_Sandstorm[] = _("A sandstorm is raging."); +const u8 BattleText_BoxFull[] = _("The BOX is full!\nYou can’t catch any more!\p"); +const u8 BattleText_EnigmaBerry[] = _("ENIGMA BERRY"); +const u8 BattleText_Berry[] = _(" BERRY"); +const u8 BattleText_CuredParalysis[] = _("{STRING 16}’s {STRING 19}\ncured paralysis!"); +const u8 BattleText_CuredPoison[] = _("{STRING 16}’s {STRING 19}\ncured poison!"); +const u8 BattleText_CuredBurn[] = _("{STRING 16}’s {STRING 19}\nhealed its burn!"); +const u8 BattleText_CuredFreeze[] = _("{STRING 16}’s {STRING 19}\ndefrosted it!"); +const u8 BattleText_CuredSleep[] = _("{STRING 16}’s {STRING 19}\nwoke it from its sleep!"); +const u8 BattleText_CuredConfusion[] = _("{STRING 16}’s {STRING 19}\nsnapped it out of confusion!"); +const u8 BattleText_CuredStatus[] = _("{STRING 16}’s {STRING 19}\ncured its {STRING 0} problem!"); +const u8 BattleText_NormalizedStatus[] = _("{STRING 16}’s {STRING 19}\nnormalized its status!"); +const u8 BattleText_RestoredHealth[] = _("{STRING 16}’s {STRING 19}\nrestored health!"); +const u8 BattleText_RestoredPP[] = _("{STRING 16}’s {STRING 19}\nrestored {STRING 0}’s PP!"); +const u8 BattleText_RestoredStatus[] = _("{STRING 16}’s {STRING 19}\nrestored its status!"); +const u8 BattleText_RestoredHPLittle[] = _("{STRING 16}’s {STRING 19}\nrestored its HP a little!"); +const u8 BattleText_ChoiceBand[] = _("{STRING 19} allows the\nuse of only {STRING 17}!\p"); +const u8 BattleText_FocusSash[] = _("{DEFENDING_MON} hung on\nusing its {STRING 19}!"); +const u8 BattleText_Terminator2[] = _(""); +const u8 BattleText_WallyBall[] = _("You throw a BALL now, right?\nI... I’ll do my best!"); +const u8 BattleText_StartEvo[] = _("What?\n{STRING 2} is evolving!"); +const u8 BattleText_FinishEvo[] = _("Congratulations! Your {STRING 2}\nevolved into {STRING 3}!{UNKNOWN_A}\p"); +const u8 BattleText_StopEvo[] = _("Huh? {STRING 2}\nstopped evolving!\p"); +const u8 BattleText_OtherMenu[] = _("What should\n{STRING 15} do?"); +const u8 BattleText_PlayerMenu[] = _("What will\n{STRING 32} do?"); +const u8 BattleText_WallyMenu[] = _("What will\nWALLY do?"); +const u8 BattleText_LinkStandby[] = _("{PAUSE 16}Link standby..."); +const u8 BattleText_MenuOptions[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}FIGHT{CLEAR_TO 0x2E}BAG\nPOKéMON{CLEAR_TO 0x2E}RUN"); +const u8 BattleText_MenuOptionsSafari[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}BALL{CLEAR_TO 0x2E}{POKEBLOCK}\nGO NEAR{CLEAR_TO 0x2E}RUN"); +const u8 BattleText_PP[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}PP\nTYPE/"); +const u8 BattleText_Format[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}"); // cant think of a better name +const u8 BattleText_ForgetMove[] = _("{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}{PALETTE 5}Which move should\nbe forgotten?"); +const u8 BattleText_YesNo[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}Yes\nNo"); +const u8 BattleText_SwitchWhich[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}Switch\nwhich?"); +const u8 BattleText_Format2[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW SKY_BLUE LIGHT_BLUE WHITE2}"); +const u8 BattleText_RightArrow[] = _("{RIGHT_ARROW}"); +const u8 BattleText_Plus[] = _("+"); +const u8 BattleText_Dash[] = _("-"); +const u8 BattleText_HP[] = _("HP "); +const u8 BattleText_Attack[] = _("ATTACK "); +const u8 BattleText_Defense[] = _("DEFENSE"); +const u8 BattleText_SpAtk[] = _("SP. ATK"); +const u8 BattleText_SpDef[] = _("SP. DEF"); +const u8 BattleText_SafariBalls[] = _("{HIGHLIGHT RED}SAFARI BALLS"); +const u8 BattleText_SafariBallsLeft[] = _("{HIGHLIGHT RED}Left: "); +const u8 BattleText_HighlightRed[] = _("{HIGHLIGHT RED}"); +const u8 BattleText_Sleep[] = _("sleep"); +const u8 BattleText_PoisonStatus[] = _("poison"); +const u8 BattleText_Burn[] = _("burn"); +const u8 BattleText_Paralysis[] = _("paralysis"); +const u8 BattleText_IceStatus[] = _("ice"); +const u8 BattleText_Confusion[] = _("confusion"); +const u8 BattleText_Love[] = _("love"); +const u8 BattleText_Format3[] = _(" and "); +const u8 BattleText_Format4[] = _(", "); +const u8 BattleText_Format5[] = _(" "); +const u8 BattleText_Format6[] = _("\l"); +const u8 BattleText_Format7[] = _("\n"); +const u8 BattleText_Format8[] = _("are"); +const u8 BattleText_Format9[] = _("are"); +const u8 gBadEggNickname[] = _("Bad EGG"); // 8400E3A +const u8 BattleText_Wally[] = _("WALLY"); +const u8 BattleText_Win[] = _("{HIGHLIGHT TRANSPARENT}Win"); // 8400E48 +const u8 BattleText_Loss[] = _("{HIGHLIGHT TRANSPARENT}Loss"); // 8400E4F +const u8 BattleText_Tie[] = _("{HIGHLIGHT TRANSPARENT}Tie"); // 8400E57 +const u8 BattleText_Format10[] = _(" is"); +const u8 BattleText_Format11[] = _("’s"); +const u8 BattleText_Normal[] = _("a NORMAL move"); +const u8 BattleText_Fighting[] = _("a FIGHTING move"); +const u8 BattleText_Flying[] = _("a FLYING move"); +const u8 BattleText_Poison[] = _("a POISON move"); +const u8 BattleText_Ground[] = _("a GROUND move"); +const u8 BattleText_Rock[] = _("a ROCK move"); +const u8 BattleText_Bug[] = _("a BUG move"); +const u8 BattleText_Ghost[] = _("a GHOST move"); +const u8 BattleText_Steel[] = _("a STEEL move"); +const u8 BattleText_Typeless[] = _("a ??? move"); +const u8 BattleText_Fire[] = _("a FIRE move"); +const u8 BattleText_Water[] = _("a WATER move"); +const u8 BattleText_Grass[] = _("a GRASS move"); +const u8 BattleText_Electric[] = _("an ELECTRIC move"); +const u8 BattleText_Psychic[] = _("a PSYCHIC move"); +const u8 BattleText_Ice[] = _("an ICE move"); +const u8 BattleText_Dragon[] = _("a DRAGON move"); +const u8 BattleText_Dark[] = _("a DARK move"); + +const u8 *const gUnknown_08400F58[] = +{ + BattleStatText_HP, + BattleStatText_Attack, + BattleStatText_Defense, + BattleStatText_Speed, + BattleStatText_SpAtk, + BattleStatText_SpDef, + BattleStatText_Accuracy, + BattleStatText_Evasion, +}; + +const u8 *const gUnknown_08400F78[] = +{ + ContestStatText_TooSpicy, + ContestStatText_TooDry, + ContestStatText_TooSweet, + ContestStatText_TooBitter, + ContestStatText_TooSour, +}; + +const u8 *const gBattleStringsTable[] = +{ + BattleText_UnknownString, + BattleText_GainExpPoints, + BattleText_GrewLevel, + BattleText_LearnedMove, + BattleText_TryingToLearnMove, + BattleText_CantLearnMore, + BattleText_DeleteMove, + BattleText_DeletedMove, + BattleText_StopLearning, + BattleText_DidNotLearn, + BattleText_LearnedMove2, + BattleText_AttackMissed, + BattleText_ProtectedItself, + BattleText_StatNoHigher, + BattleText_AvoidedDamage, + BattleText_DoesntAffect, + BattleText_AttackingFainted, + BattleText_DefendingFainted, + BattleText_WinningPrize, + BattleText_OutOfUsablePoke, + BattleText_WhitedOut, + BattleText_PreventEscape, + BattleText_HitMulti, + BattleText_FellAsleep, + BattleText_MadeAsleep, + BattleText_DefendingAsleep, + BattleText_AttackingAsleep, + BattleText_WasntAffected, + BattleText_Poisoned, + BattleText_Poisoned2, + BattleText_PoisonHurt, + BattleText_AlreadyPoisoned, + BattleText_BadlyPoisoned, + BattleText_EnergyDrained, + BattleText_Burned, + BattleText_Burned2, + BattleText_BurnHurt, + BattleText_Frozen, + BattleText_Frozen2, + BattleText_FrozenSolid, + BattleText_DefendingDefrosted, + BattleText_AttackingDefrosted, + BattleText_Defrosted, + BattleText_Paralyzed, + BattleText_Paralyzed2, + BattleText_Paralyzed3, + BattleText_AlreadyParalyzed, + BattleText_ParalysisHealed, + BattleText_DreamEaten, + BattleText_AttackingStatNoHigher, + BattleText_DefendingStatNoHigher, + BattleText_StoppedWorking, + BattleText_StoppedWorking2, + BattleText_Confused, + BattleText_ConfusionSnapOut, + BattleText_BecameConfused, + BattleText_AlreadyConfused, + BattleText_FellLove, + BattleText_InLoveWith, + BattleText_ImmobilizedBy, + BattleText_BlownAway, + BattleText_TypeTransform, + BattleText_Flinched, + BattleText_RegainedHealth, + BattleText_HPFull, + BattleText_RaisedSpDef, + BattleText_RaisedDefense, + BattleText_CoveredVeil, + BattleText_SafeguardActive, + BattleText_SafeguardFaded, + BattleText_WentToSleep, + BattleText_SpeltHealthy, + BattleText_WhipWhirlwind, + BattleText_TookSunlight, + BattleText_LoweredHead, + BattleText_IsGlowing, + BattleText_FlewHigh, + BattleText_DugHole, + BattleText_SqueezedBind, + BattleText_TrappedVortex, + BattleText_Wrapped, + BattleText_Clamped, + BattleText_HurtBy, + BattleText_FreedFrom, + BattleText_KeptGoingCrash, + BattleText_MistShroud, + BattleText_MistProtect, + BattleText_GetPumped, + BattleText_HitRecoil, + BattleText_ProtectedItself2, + BattleText_SandBuffeted, + BattleText_HailStricken, + BattleText_WasSeeded, + BattleText_EvadedAttack, + BattleText_HealthSapped, + BattleText_FastAsleep, + BattleText_WokeUp, + BattleText_UproarAwake, + BattleText_UproarWoke, + BattleText_UproarCaused, + BattleText_UproarMaking, + BattleText_CalmedDown, + BattleText_UproarCantSleep, + BattleText_Stockpiled, + BattleText_StockpiledCant, + BattleText_UproarCantSleep2, + BattleText_UproarKeptAwake, + BattleText_StayedAwake, + BattleText_StoringEnergy, + BattleText_UnleashedEnergy, + BattleText_FatigueConfuse, + BattleText_PickedUpYen, + BattleText_Unaffected, + BattleText_Transformed, + BattleText_SubMade, + BattleText_SubAlready, + BattleText_SubTookDamage, + BattleText_SubFaded, + BattleText_MustRecharge, + BattleText_RageBuilding, + BattleText_MoveWasDisabled, + BattleText_MoveIsDisabled, + BattleText_DisabledNoMore, + BattleText_EncoreGot, + BattleText_EncoreEnded, + BattleText_TookAim, + BattleText_SketchedMove, + BattleText_DestinyBondTake, + BattleText_DestinyBondTaken, + BattleText_ReducedBy, + BattleText_StoleSomething, + BattleText_CantEscapeNow, + BattleText_NightmareStart, + BattleText_NightmareLock, + BattleText_CurseLay, + BattleText_CurseAfflict, + BattleText_SpikesScattered, + BattleText_SpikesHurt, + BattleText_IdentifiedPoke, + BattleText_PerishSongFell, + BattleText_BracedItself, + BattleText_EnduredHit, + BattleText_MagnitudeCount, + BattleText_CutHPMaxATK, + BattleText_CopyStatChanges, + BattleText_GotFreeFrom, + BattleText_LeechShed, + BattleText_SpikesBlownAway, + BattleText_FledBattle, + BattleText_ForesawAttack, + BattleText_TookAttack, + BattleText_PokeAttack, + BattleText_CenterAttention, + BattleText_ChargingPower, + BattleText_NaturePower, + BattleText_StatusNormal, + BattleText_NoMovesLeft, + BattleText_TormentSubject, + BattleText_TormentNoUse, + BattleText_TightenFocus, + BattleText_TauntFell, + BattleText_TauntNoUse, + BattleText_ReadyToHelp, + BattleText_SwitchedItems, + BattleText_CopiedObject, + BattleText_WishMade, + BattleText_WishTrue, + BattleText_PlantedRoots, + BattleText_AbsorbNutrients, + BattleText_AnchoredItself, + BattleText_DrowsyMade, + BattleText_KnockedOffItem, + BattleText_AbilitySwap, + BattleText_SealedMove, + BattleText_SealedNoUse, + BattleText_GrudgeBear, + BattleText_GrudgeLosePP, + BattleText_ShroudedItself, + BattleText_MagicCoatBounce, + BattleText_AwaitMove, + BattleText_SnatchedMove, + BattleText_RainMade, + BattleText_SpeedRisen, + BattleText_ProtectedBy, + BattleText_PreventedBy, + BattleText_HPRestoredUsing, + BattleText_MadeType, + BattleText_PreventedPara, + BattleText_PreventedRomance, + BattleText_PreventedPoison, + BattleText_PreventedConfusion, + BattleText_RaisedFirePower, + BattleText_AnchorsItself, + BattleText_CutsAttack, + BattleText_PreventedStatLoss, + BattleText_HurtOther, + BattleText_Traced, + BattleText_Sharply, + BattleText_Rose, + BattleText_Harshly, + BattleText_Fell, + BattleText_UnknownString7, + BattleText_UnknownString3, + BattleText_UnknownString5, + BattleText_UnknownString6, + BattleText_Critical, + BattleText_GrandSlam, + BattleText_MoveForget123, + BattleText_MoveForgetAnd, + BattleText_NotEffective, + BattleText_SuperEffective, + BattleText_GotAwaySafely, + BattleText_FledWild, + BattleText_NoRunning, + BattleText_CantEscape2, + BattleText_BirchDontLeaveMe, + BattleText_Nothing, + BattleText_Failed, + BattleText_HurtItself, + BattleText_MirrorFail, + BattleText_RainStart, + BattleText_PourStart, + BattleText_RainCont1, + BattleText_PourCont, + BattleText_RainStop, + BattleText_SandBrewed, + BattleText_SandRages, + BattleText_SandSubsided, + BattleText_SunBright, + BattleText_SunStrong, + BattleText_SunFaded, + BattleText_HailStart, + BattleText_HailCont, + BattleText_HailStop, + BattleText_SpitUpFail, + BattleText_SwallowFail, + BattleText_WindHeatWave, + BattleText_StatElim, + BattleText_CoinScatter, + BattleText_SubWeak, + BattleText_PainSplit, + BattleText_BellChime, + BattleText_PerishSong, + BattleText_NoPP1, + BattleText_NoPP2, + BattleText_Used1, + BattleText_TutorialUsed, + BattleText_BlockBall, + BattleText_DontBeAThief, + BattleText_DodgeBall, + BattleText_MissPoke, + BattleText_BallBrokeOhNo, + BattleText_BallBrokeAppeared, + BattleText_BallBrokeAlmost, + BattleText_BallBrokeSoClose, + BattleText_BallCaught1, + BattleText_BallCaught2, + BattleText_GiveNickname, + BattleText_SentToPC, + BattleText_AddedToDex, + BattleText_Raining, + BattleText_Sandstorm, + BattleText_CantEscape, + BattleText_IgnoredOrdersSLP, + BattleText_IgnoredOrders, + BattleText_BeganNap, + BattleText_LoafingAround, + BattleText_WontObey, + BattleText_TurnedAway, + BattleText_NotNotice, + BattleText_WillSwitch, + BattleText_CreptCloser, + BattleText_CantGetCloser, + BattleText_WatchingCarefully, + BattleText_CuriousAbout, + BattleText_EnthralledBy, + BattleText_IgnoredThing, + BattleText_ThrewBlock, + BattleText_SafariOver, + BattleText_CuredParalysis, + BattleText_CuredPoison, + BattleText_CuredBurn, + BattleText_CuredFreeze, + BattleText_CuredSleep, + BattleText_CuredConfusion, + BattleText_CuredStatus, + BattleText_RestoredHealth, + BattleText_RestoredPP, + BattleText_RestoredStatus, + BattleText_RestoredHPLittle, + BattleText_ChoiceBand, + BattleText_FocusSash, + BattleText_Terminator2, + BattleText_PreventedBurn, + BattleText_BlocksOther, + BattleText_RestoredHPByItem, + BattleText_WhipSandstorm, + BattleText_PreventedLoss, + BattleText_InfatuatedPoke, + BattleText_MadeIneffective, + BattleText_CuredProblem, + BattleText_OozeSuckup, + BattleText_Transformed2, + BattleText_ElecWeakened, + BattleText_FireWeakened, + BattleText_HidUnderwater, + BattleText_SprangUp, + BattleText_CantForgetHM, + BattleText_FoundOne, + BattleText_PlayerDefeatedTrainer2, + BattleText_SoothingAroma, + BattleText_CantUseItems, + BattleText_UnknownString2, + BattleText_UnknownString4, + BattleText_HustleUse, + BattleText_MadeUseless, + BattleText_SandTombTrapped, + BattleText_Terminator, + BattleText_BoostedExp, + BattleText_SunIntensified, + BattleText_GroundMoveNegate, + BattleText_WallyBall, + BattleText_TookAttack2, + BattleText_ChoseDestiny, + BattleText_LostFocus, + BattleText_UseNext, + BattleText_FledUsingItem, + BattleText_FledUsingOther, + BattleText_DraggedOut, + BattleText_PreventedOther, + BattleText_NormalizedStatus, + BattleText_Used2, + BattleText_BoxFull, + BattleText_AvoidedAttack, + BattleText_MadeIneffective2, + BattleText_PreventedFlinching, + BattleText_AlreadyBurned, + BattleText_StatNoLower, + BattleText_BlocksOther2, + BattleText_WoreOff, + BattleText_RaisedDefenseLittle, + BattleText_RaisedSpDefLittle, + BattleText_BrokeWall, + BattleText_PreventedOther2, + BattleText_CuredOfProblem, + BattleText_AttackingCantEscape, + BattleText_Obtained1, + BattleText_Obtained2, + BattleText_Obtained3, + BattleText_NoEffect, + BattleText_NoEffectOn, +}; + +// below are lists of battle string enums and NOT pointers to the strings. +const u16 gMissStrings[] = +{ + BATTLE_TEXT_AttackMissed, + BATTLE_TEXT_ProtectedItself, + BATTLE_TEXT_AvoidedAttack, + BATTLE_TEXT_AvoidedDamage, + BATTLE_TEXT_GroundMoveNegate, +}; + +const u16 BattleTextList_401512[] = +{ + BATTLE_TEXT_CantEscape2, + BATTLE_TEXT_BirchDontLeaveMe, + BATTLE_TEXT_PreventEscape, + BATTLE_TEXT_CantEscape, + BATTLE_TEXT_AttackingCantEscape, +}; + +const u16 BattleTextList_40151C[] = +{ + BATTLE_TEXT_RainStart, + BATTLE_TEXT_PourStart, + BATTLE_TEXT_Failed, + BATTLE_TEXT_SandBrewed, + BATTLE_TEXT_SunBright, + BATTLE_TEXT_HailStart, +}; + +const u16 BattleTextList_401528[] = +{ + BATTLE_TEXT_SandRages, + BATTLE_TEXT_HailCont, +}; + +const u16 BattleTextList_40152C[] = +{ + BATTLE_TEXT_SandBuffeted, + BATTLE_TEXT_HailStricken, +}; + +const u16 BattleTextList_401530[] = +{ + BATTLE_TEXT_SandSubsided, + BATTLE_TEXT_HailStop, +}; + +const u16 BattleTextList_401534[] = +{ + BATTLE_TEXT_RainCont1, + BATTLE_TEXT_PourCont, + BATTLE_TEXT_RainStop, +}; + +const u16 BattleTextList_40153A[] = +{ + BATTLE_TEXT_ProtectedItself2, + BATTLE_TEXT_BracedItself, + BATTLE_TEXT_Failed, +}; + +const u16 BattleTextList_401540[] = +{ + BATTLE_TEXT_Failed, + BATTLE_TEXT_RaisedDefense, + BATTLE_TEXT_RaisedDefenseLittle, + BATTLE_TEXT_RaisedSpDef, + BATTLE_TEXT_RaisedSpDefLittle, + BATTLE_TEXT_CoveredVeil, +}; + +const u16 BattleTextList_40154C[] = +{ + BATTLE_TEXT_WasSeeded, + BATTLE_TEXT_EvadedAttack, + BATTLE_TEXT_DoesntAffect, + BATTLE_TEXT_HealthSapped, + BATTLE_TEXT_OozeSuckup, +}; + +const u16 BattleTextList_401556[] = +{ + BATTLE_TEXT_WentToSleep, + BATTLE_TEXT_SpeltHealthy, +}; + +const u16 BattleTextList_40155A[] = +{ + BATTLE_TEXT_UproarMaking, + BATTLE_TEXT_CalmedDown, +}; + +const u16 BattleTextList_40155E[] = +{ + BATTLE_TEXT_Stockpiled, + BATTLE_TEXT_StockpiledCant, +}; + +const u16 BattleTextList_401562[] = +{ + BATTLE_TEXT_WokeUp, + BATTLE_TEXT_UproarWoke, +}; + +const u16 BattleTextList_401566[] = +{ + BATTLE_TEXT_SwallowFail, + BATTLE_TEXT_HPFull, +}; + +const u16 BattleTextList_40156A[] = +{ + BATTLE_TEXT_UproarCantSleep2, + BATTLE_TEXT_UproarKeptAwake, + BATTLE_TEXT_StayedAwake, +}; + +const u16 BattleTextList_401570[] = +{ + BATTLE_TEXT_UnknownString7, + BATTLE_TEXT_UnknownString3, + BATTLE_TEXT_AttackingStatNoHigher, + BATTLE_TEXT_Terminator2, + BATTLE_TEXT_UnknownString4, + BATTLE_TEXT_HustleUse, +}; + +const u16 BattleTextList_40157C[] = +{ + BATTLE_TEXT_UnknownString5, + BATTLE_TEXT_UnknownString6, + BATTLE_TEXT_DefendingStatNoHigher, + BATTLE_TEXT_Terminator2, +}; + +const u16 BattleTextList_401584[] = +{ + BATTLE_TEXT_WhipWhirlwind, + BATTLE_TEXT_TookSunlight, + BATTLE_TEXT_LoweredHead, + BATTLE_TEXT_IsGlowing, + BATTLE_TEXT_FlewHigh, + BATTLE_TEXT_DugHole, + BATTLE_TEXT_HidUnderwater, + BATTLE_TEXT_SprangUp, +}; + +const u16 BattleTextList_401594[] = +{ + BATTLE_TEXT_SqueezedBind, + BATTLE_TEXT_Wrapped, + BATTLE_TEXT_TrappedVortex, + BATTLE_TEXT_Clamped, + BATTLE_TEXT_TrappedVortex, + BATTLE_TEXT_SandTombTrapped, +}; + +const u16 BattleTextList_4015A0[] = +{ + BATTLE_TEXT_MistShroud, + BATTLE_TEXT_Failed, +}; + +const u16 BattleTextList_4015A4[] = +{ + BATTLE_TEXT_GetPumped, + BATTLE_TEXT_Failed, +}; + +const u16 BattleTextList_4015A8[] = +{ + BATTLE_TEXT_Transformed, + BATTLE_TEXT_Failed, +}; + +const u16 BattleTextList_4015AC[] = +{ + BATTLE_TEXT_SubMade, + BATTLE_TEXT_SubWeak, +}; + +const u16 BattleTextList_4015B0[] = +{ + BATTLE_TEXT_Poisoned, + BATTLE_TEXT_Poisoned2, +}; + +const u16 BattleTextList_4015B4[] = +{ + BATTLE_TEXT_Paralyzed, + BATTLE_TEXT_Paralyzed2, +}; + +const u16 BattleTextList_4015B8[] = +{ + BATTLE_TEXT_FellAsleep, + BATTLE_TEXT_MadeAsleep, +}; + +const u16 BattleTextList_4015BC[] = +{ + BATTLE_TEXT_Burned, + BATTLE_TEXT_Burned2, +}; + +const u16 BattleTextList_4015C0[] = +{ + BATTLE_TEXT_Frozen, + BATTLE_TEXT_Frozen2, +}; + +const u16 BattleTextList_4015C4[] = +{ + BATTLE_TEXT_AttackingDefrosted, + BATTLE_TEXT_Defrosted, +}; + +const u16 BattleTextList_4015C8[] = +{ + BATTLE_TEXT_AttackMissed, + BATTLE_TEXT_Unaffected, + BATTLE_TEXT_FellLove, + BATTLE_TEXT_InfatuatedPoke, +}; + +const u16 BattleTextList_4015D0[] = +{ + BATTLE_TEXT_EnergyDrained, + BATTLE_TEXT_OozeSuckup, +}; + +const u16 BattleTextList_4015D4[] = +{ + BATTLE_TEXT_ElecWeakened, + BATTLE_TEXT_FireWeakened, +}; + +const u16 BattleTextList_4015D8[] = +{ + BATTLE_TEXT_BellChime, + BATTLE_TEXT_BellChime, + BATTLE_TEXT_BellChime, + BATTLE_TEXT_BellChime, + BATTLE_TEXT_SoothingAroma, +}; + +const u16 BattleTextList_4015E2[] = +{ + BATTLE_TEXT_ForesawAttack, + BATTLE_TEXT_ChoseDestiny, +}; + +const u16 BattleTextList_4015E6[] = +{ + BATTLE_TEXT_BallBrokeOhNo, + BATTLE_TEXT_BallBrokeAppeared, + BATTLE_TEXT_BallBrokeAlmost, + BATTLE_TEXT_BallBrokeSoClose, +}; + +const u16 BattleTextList_4015EE[] = +{ + BATTLE_TEXT_Raining, + BATTLE_TEXT_Raining, + BATTLE_TEXT_Raining, + BATTLE_TEXT_Raining, + BATTLE_TEXT_Raining, + BATTLE_TEXT_Raining, + BATTLE_TEXT_Raining, + BATTLE_TEXT_Raining, + BATTLE_TEXT_Sandstorm, + BATTLE_TEXT_Raining, + BATTLE_TEXT_Raining, + BATTLE_TEXT_Raining, + BATTLE_TEXT_SunStrong, + BATTLE_TEXT_Raining, + BATTLE_TEXT_Raining, + BATTLE_TEXT_Raining, +}; + +const u16 BattleTextList_40160E[] = +{ + BATTLE_TEXT_LoafingAround, + BATTLE_TEXT_WontObey, + BATTLE_TEXT_TurnedAway, + BATTLE_TEXT_NotNotice, +}; + +const u16 BattleTextList_401616[] = +{ + BATTLE_TEXT_CreptCloser, + BATTLE_TEXT_CantGetCloser, +}; + +const u16 BattleTextList_40161A[] = +{ + BATTLE_TEXT_CuriousAbout, + BATTLE_TEXT_EnthralledBy, + BATTLE_TEXT_IgnoredThing, +}; + +const u16 BattleTextList_401620[] = +{ + BATTLE_TEXT_CuredConfusion, + BATTLE_TEXT_CuredParalysis, + BATTLE_TEXT_CuredFreeze, + BATTLE_TEXT_CuredBurn, + BATTLE_TEXT_CuredPoison, + BATTLE_TEXT_CuredSleep, +}; + +const u16 BattleTextList_40162C[] = +{ + BATTLE_TEXT_CuredStatus, + BATTLE_TEXT_NormalizedStatus, +}; + +const u16 BattleTextList_401630[] = +{ + BATTLE_TEXT_PreventedBurn, + BATTLE_TEXT_PreventedOther2, + BATTLE_TEXT_NoEffectOn, +}; + +const u16 BattleTextList_401636[] = +{ + BATTLE_TEXT_PreventedPara, + BATTLE_TEXT_PreventedOther2, + BATTLE_TEXT_NoEffectOn, +}; + +const u16 BattleTextList_40163C[] = +{ + BATTLE_TEXT_PreventedPoison, + BATTLE_TEXT_PreventedOther2, + BATTLE_TEXT_NoEffectOn, +}; + +const u16 BattleTextList_401642[] = +{ + BATTLE_TEXT_Obtained1, + BATTLE_TEXT_Obtained2, + BATTLE_TEXT_Obtained3, +}; + +const u16 BattleTextList_401648[] = +{ + BATTLE_TEXT_RaisedFirePower, + BATTLE_TEXT_MadeIneffective, +}; + +const u16 gTrappingMoves[] = +{ + MOVE_BIND, + MOVE_WRAP, + MOVE_FIRE_SPIN, + MOVE_CLAMP, + MOVE_WHIRLPOOL, + MOVE_SAND_TOMB, + 0xFFFF, +}; + +const u8 *const gUnknown_0840165C[] = +{ + BattleText_HP, + BattleText_SpAtk, + BattleText_Attack, + BattleText_SpDef, + BattleText_Defense, + BattleStatText_Speed, +}; + +const u8 *const gUnknown_08401674[] = +{ + BattleText_Normal, + BattleText_Fighting, + BattleText_Flying, + BattleText_Poison, + BattleText_Ground, + BattleText_Rock, + BattleText_Bug, + BattleText_Ghost, + BattleText_Steel, + BattleText_Typeless, + BattleText_Fire, + BattleText_Water, + BattleText_Grass, + BattleText_Electric, + BattleText_Psychic, + BattleText_Ice, + BattleText_Dragon, + BattleText_Dark, +}; diff --git a/src/debug/matsuda_debug_menu.c b/src/debug/matsuda_debug_menu.c index 3378e4e0a..dcb6fa2d8 100644 --- a/src/debug/matsuda_debug_menu.c +++ b/src/debug/matsuda_debug_menu.c @@ -41,32 +41,8 @@ extern u16 gUnknown_030041B8; extern struct Window gUnknown_03004210; extern u8 (*gCallback_03004AE8)(void); -extern u8 gUnknown_083C926E[][2]; -extern u8 gUnknown_083C9282[]; -extern const u8 gUnknown_083C928E[][2]; -extern u8 gUnknown_083C9296[]; -extern u8 gUnknown_083C92A8[]; -extern u8 gMatsudaDebugMenu_GoBackText[]; -extern u8 gMatsudaDebugMenu_BattlePointsText[]; -extern u8 gMatsudaDebugMenu_StartText[]; - -extern struct SpritePalette gUnknown_083C92BC; -extern struct SpriteSheet gUnknown_083C92B4; -extern struct SpriteTemplate gSpriteTemplate_83C92CC; -extern void (*gUnknown_083C92E4[][2])(struct Sprite *, s8); -extern u32 gUnknown_083C9400[2]; - - -extern u8 gMatsudaDebugMenu_UnknownByteArray[]; -extern u8* gMatsudaDebugMenuTextList1[]; -extern u8* gMatsudaDebugMenuTextList2[]; -extern u8* gMatsudaDebugMenuTextList3[]; -extern u8 gMatsudaDebugMenuContestTopLeft[][2]; - extern bool8 gReceivedRemoteLinkPlayers; -extern struct MenuAction gMatsudaDebugMenuActions[]; - static bool8 sub_80A9B78(void); static void sub_80A9BE4(u8 taskId); static void sub_80A9C98(u8); @@ -85,6 +61,191 @@ static void sub_80AA5BC(u8); static void sub_80AA614(u8, u8); static void sub_80AAD08(struct Sprite *, s8); +// unused +const u8 gText_Unused83C9150[] = _("テストです"); // "test" +const u8 gMatsudaDebugMenu_ActionContestText[] = _("Contest"); +const u8 gMatsudaDebugMenu_ActionContestResultsText[] = _("Contest results"); +// unused +const u8 gMatsudaDebugMenu_ActionChangePerimeterText[] = _("パラメータへんこう"); // "Change parameter" +// unused +const u8 gMatsudaDebugMenu_ActionChangeMoveText[] = _("わざ へんこう"); // "Change move" +const u8 gMatsudaDebugMenu_ActionContestCommText[] = _("Contest (comm.)"); +const u8 gMatsudaDebugMenu_ActionCommTestText[] = _("Init comm. data"); +const u8 gMatsudaDebugMenu_ActionSetHighScoreText[] = _("Set highest score"); +const u8 gMatsudaDebugMenu_ActionResetHighScoreText[] = _("Reset highest score"); +const u8 gMatsudaDebugMenu_ActionSetAllArtMuseumText[] = _("Set all art museum items"); + +const struct MenuAction gMatsudaDebugMenuActions[] = +{ + {gMatsudaDebugMenu_ActionContestText, MatsudaDebugMenu_Contest}, + {gMatsudaDebugMenu_ActionContestResultsText, MatsudaDebugMenu_ContestResults}, + {gMatsudaDebugMenu_ActionContestCommText, MatsudaDebugMenu_ContestComm}, + {gMatsudaDebugMenu_ActionCommTestText, MatsudaDebugMenu_CommTest}, + {gMatsudaDebugMenu_ActionSetHighScoreText, MatsudaDebugMenu_SetHighScore}, + {gMatsudaDebugMenu_ActionResetHighScoreText, MatsudaDebugMenu_ResetHighScore}, + {gMatsudaDebugMenu_ActionSetAllArtMuseumText, MatsudaDebugMenu_SetArtMuseumItems}, +}; + +const u8 gMatsudaDebugMenu_UnknownByteArray[] = {0xFC, 0x02, 0x0F, 0x00, 0xFF}; +const u8 Unknown_083C922D[] = INCBIN_U8("graphics/unknown/ball.4bpp"); +const u16 Unknown_083C924E[] = INCBIN_U16("graphics/unknown/ball.gbapal"); + +const u8 gUnknown_083C926E[][2] = +{ + {2, 0}, + {17, 0}, + {2, 2}, + {17, 2}, +}; + +const u8 gMatsudaDebugMenuContestTopLeft[][2] = +{ + {0, 6}, + {15, 6}, + {0, 8}, + {15, 8}, + {0, 10}, + {15, 10}, +}; + +const u8 gUnknown_083C9282[] = +{ + // TODO: 2d array? + 7, 6, + 22, 6, + 7, 8, + 22, 8, + 7, 10, + 22, 10, +}; + +const u8 gUnknown_083C928E[][2] = +{ + {2, 14}, + {17, 14}, + {2, 16}, + {17, 16}, +}; + +const u8 gUnknown_083C9296[] = {0x08, 0x80, 0x08, 0x80, 0x10, 0x10, 0x30, 0xA8, 0x30, 0xA8, 0x30, 0xA8, 0x08, 0x80, 0x08, 0x80, 0x10, 0x88}; +const u8 gUnknown_083C92A8[] = {0x08, 0x18, 0x28, 0x38, 0x48, 0x58, 0x78, 0x88, 0x98}; + +const struct SpriteSheet gUnknown_083C92B4[] = {Unknown_083C922D, 32, 0x4B0}; +const struct SpritePalette gUnknown_083C92BC[] = {Unknown_083C924E, 0x4B0}; + +const struct OamData gOamData_83C92C4 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +const struct SpriteTemplate gSpriteTemplate_83C92CC = +{ + .tileTag = 1200, + .paletteTag = 1200, + .oam = &gOamData_83C92C4, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80AA754, +}; + +static void (* const gUnknown_083C92E4[][2])(struct Sprite *, s8) = +{ + {sub_80AA8C8, sub_80AA8D8}, + {sub_80AA8E8, sub_80AA8F8}, + {sub_80AAC5C, sub_80AAC5C}, + {sub_80AA930, sub_80AA974}, + {sub_80AA9B8, sub_80AA9FC}, + {sub_80AAA40, sub_80AAA84}, + {sub_80AAAF0, sub_80AAB30}, + {sub_80AAB70, sub_80AABB0}, + {sub_80AABF0, sub_80AAD44}, +}; + +static const u8 gMatsudaDebugMenu_StartText[] = _("{COLOR CYAN}{HIGHLIGHT RED}"); +static const u8 gMatsudaDebugMenu_StartJapText[] = _("かいし"); // because StartText is only called by StringCopy, this part appears to be unused. +static const u8 gMatsudaDebugMenu_GoBackText[] = _("もどる"); + +#ifdef GERMAN +static const u8 gMatsudaDebugMenu_BattlePointsText[] = _("{COLOR MAGENTA}BP,"); +#else +static const u8 gMatsudaDebugMenu_BattlePointsText[] = _("{COLOR MAGENTA}BP."); +#endif + +static const u8 MatsudaDebugMenuText_Cool[] = _("かっこよさ"); // cool +static const u8 MatsudaDebugMenuText_Cute[] = _("かわいさ"); // cute +static const u8 MatsudaDebugMenuText_Beauty[] = _("うつくしさ"); // beauty +static const u8 MatsudaDebugMenuText_Smart[] = _("かしこさ"); // smart +static const u8 MatsudaDebugMenuText_Tough[] = _("たくましさ"); // tough +static const u8 MatsudaDebugMenuText_Sheen[] = _("けづや"); // sheen + +static const u8 *const gMatsudaDebugMenuTextList1[] = +{ + MatsudaDebugMenuText_Cool, + MatsudaDebugMenuText_Cute, + MatsudaDebugMenuText_Beauty, + MatsudaDebugMenuText_Smart, + MatsudaDebugMenuText_Tough, + MatsudaDebugMenuText_Sheen, +}; + +static const u8 MatsudaDebugMenuText_CoolContest[] = _("かっこよさコンテスト"); +static const u8 MatsudaDebugMenuText_BeautyContest[] = _("うつくしさコンテスト"); +static const u8 MatsudaDebugMenuText_CuteContest[] = _("かわいさコンテスト "); +static const u8 MatsudaDebugMenuText_SmartContest[] = _("かしこさコンテスト "); +static const u8 MatsudaDebugMenuText_ToughContest[] = _("たくましさコンテスト"); + +static const u8 *const gMatsudaDebugMenuTextList2[] = +{ + MatsudaDebugMenuText_CoolContest, + MatsudaDebugMenuText_BeautyContest, + MatsudaDebugMenuText_CuteContest, + MatsudaDebugMenuText_SmartContest, + MatsudaDebugMenuText_ToughContest, +}; + +static const u8 MatsudaDebugMenuText_Fallarbor[] = _("ハジツゲ/ノーマル"); // Fallarbor / Normal +static const u8 MatsudaDebugMenuText_Verdanturf[] = _("シダケ/スーパー "); // Verdanturf / Super +static const u8 MatsudaDebugMenuText_Slateport[] = _("カイナ/ハイパー "); // Slateport / Hyper +static const u8 MatsudaDebugMenuText_Lilycove[] = _("ミナモ/マスター "); // Lilycove / Master + +static const u8 *const gMatsudaDebugMenuTextList3[] = +{ + MatsudaDebugMenuText_Fallarbor, + MatsudaDebugMenuText_Verdanturf, + MatsudaDebugMenuText_Slateport, + MatsudaDebugMenuText_Lilycove, +}; + +static const struct OamData gUnknown_083C9400 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 1023, + .priority = 0, + .paletteNum = 15, + .affineParam = 0, +}; + u8 unref_sub_80A9B28(void) { MenuZeroFillScreen(); @@ -112,7 +273,7 @@ static bool8 sub_80A9B78(void) } } -s8 MatsudaDebugMenu_ContestResults(void) +u8 MatsudaDebugMenu_ContestResults(void) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); CreateTask(sub_80A9BE4, 0xFF); @@ -132,20 +293,20 @@ static void sub_80A9BE4(u8 taskId) } } -s8 MatsudaDebugMenu_Contest(void) +u8 MatsudaDebugMenu_Contest(void) { gIsLinkContest = 0; sub_80AA10C(); return 0; } -s8 MatsudaDebugMenu_ContestComm(void) +u8 MatsudaDebugMenu_ContestComm(void) { sub_80AA10C(); return 0; } -s8 MatsudaDebugMenu_CommTest(void) +u8 MatsudaDebugMenu_CommTest(void) { u8 newTaskId; u8 newTaskId2; @@ -397,8 +558,8 @@ static void sub_80AA10C(void) sub_80AA5E8(gScriptContestRank); sub_8003460(&gMenuWindow, gMatsudaDebugMenu_GoBackText, 0xD6, 0x12, 0x12); sub_8003460(&gMenuWindow, gMatsudaDebugMenu_BattlePointsText, 0xDC, zero, 0xC); - LoadSpriteSheet(&gUnknown_083C92B4); - LoadSpritePalette(&gUnknown_083C92BC); + LoadSpriteSheet(gUnknown_083C92B4); + LoadSpritePalette(gUnknown_083C92BC); sub_80AA280(3); sub_80AA658(3); sub_80AA614(3, zero); @@ -608,7 +769,7 @@ static u8 sub_80AA908(u32 a1, u8 a2, s8 a3) // first param is unused. return val; } -void sub_80AA930(struct Sprite *sprite, u8 var2) +void sub_80AA930(struct Sprite *sprite, s8 var2) { u8 val = sprite->data2; @@ -616,7 +777,7 @@ void sub_80AA930(struct Sprite *sprite, u8 var2) sub_80AA340(sprite->data2); } -void sub_80AA974(struct Sprite *sprite, u8 var2) +void sub_80AA974(struct Sprite *sprite, s8 var2) { u8 val = sprite->data2; @@ -624,7 +785,7 @@ void sub_80AA974(struct Sprite *sprite, u8 var2) sub_80AA388(sprite->data2); } -void sub_80AA9B8(struct Sprite *sprite, u8 var2) +void sub_80AA9B8(struct Sprite *sprite, s8 var2) { u8 val = sprite->data2; @@ -632,7 +793,7 @@ void sub_80AA9B8(struct Sprite *sprite, u8 var2) sub_80AA3D0(sprite->data2); } -void sub_80AA9FC(struct Sprite *sprite, u8 var2) +void sub_80AA9FC(struct Sprite *sprite, s8 var2) { u8 val = sprite->data2; @@ -640,7 +801,7 @@ void sub_80AA9FC(struct Sprite *sprite, u8 var2) sub_80AA418(sprite->data2); } -void sub_80AAA40(struct Sprite *sprite, u8 var2) +void sub_80AAA40(struct Sprite *sprite, s8 var2) { u8 val = sprite->data2; @@ -648,7 +809,7 @@ void sub_80AAA40(struct Sprite *sprite, u8 var2) sub_80AA460(sprite->data2); } -void sub_80AAA84(struct Sprite *sprite, u8 var2) +void sub_80AAA84(struct Sprite *sprite, s8 var2) { u8 val = sprite->data2; @@ -669,7 +830,7 @@ static u16 sub_80AAAC8(u32 a1, u16 a2, s8 a3) // first param is unused. return val; } -void sub_80AAAF0(struct Sprite *sprite, u8 var2) +void sub_80AAAF0(struct Sprite *sprite, s8 var2) { u8 val = sprite->data2; @@ -677,7 +838,7 @@ void sub_80AAAF0(struct Sprite *sprite, u8 var2) sub_80AA4F0(sprite->data2, 0); } -void sub_80AAB30(struct Sprite *sprite, u8 var2) +void sub_80AAB30(struct Sprite *sprite, s8 var2) { u8 val = sprite->data2; @@ -685,7 +846,7 @@ void sub_80AAB30(struct Sprite *sprite, u8 var2) sub_80AA4F0(sprite->data2, 1); } -void sub_80AAB70(struct Sprite *sprite, u8 var2) +void sub_80AAB70(struct Sprite *sprite, s8 var2) { u8 val = sprite->data2; @@ -693,7 +854,7 @@ void sub_80AAB70(struct Sprite *sprite, u8 var2) sub_80AA4F0(sprite->data2, 2); } -void sub_80AABB0(struct Sprite *sprite, u8 var2) +void sub_80AABB0(struct Sprite *sprite, s8 var2) { u8 val = sprite->data2; @@ -1013,16 +1174,14 @@ void sub_80AAF30(void) sub_80B2A7C(0xFE); } -//Don't know size of return type -int MatsudaDebugMenu_SetHighScore(void) +u8 MatsudaDebugMenu_SetHighScore(void) { sub_80AAF30(); CloseMenu(); return 1; } -//Don't know size of return type -int MatsudaDebugMenu_ResetHighScore(void) +u8 MatsudaDebugMenu_ResetHighScore(void) { s32 i; @@ -1037,8 +1196,7 @@ int MatsudaDebugMenu_ResetHighScore(void) return 1; } -//Don't know size of return type -int MatsudaDebugMenu_SetArtMuseumItems(void) +u8 MatsudaDebugMenu_SetArtMuseumItems(void) { s32 i; diff --git a/src/debug/mori_debug_menu.c b/src/debug/mori_debug_menu.c index e6ee243e8..2c937bb28 100644 --- a/src/debug/mori_debug_menu.c +++ b/src/debug/mori_debug_menu.c @@ -16,13 +16,50 @@ extern u8 (*gCallback_03004AE8)(void); u8 gUnknown_03004DA0[0x20]; -extern u8 gUnknown_0839B22C[][3]; -extern u8 gUnknown_0839B24A[]; -extern u8 gUnknown_0839B24D[]; -extern u8 gUnknown_0839B255[]; -extern u8 gUnknown_0839B257[]; - -extern const struct MenuAction gMoriDebugMenuActions[]; +const u8 gUnknown_0839B22C[][3] = +{ + _(" A"), + _(" B"), + _("SL"), + _("ST"), + _("RK"), + _("LK"), + _("UK"), + _("DK"), + _("RT"), + _("LT"), +}; + +const u8 gUnknown_0839B24A[] = _("ND"); +const u8 gUnknown_0839B24D[] = _("の こどもは\n"); // "'s child <topic-particle>"= +const u8 gUnknown_0839B255[] = _(" "); +const u8 gUnknown_0839B257[] = _("ながいなまえぽけもん"); // "long name pokemon" (used as test name) +const u8 Text_39B262[] = _("Search a child"); +const u8 Text_39B271[] = _("Egg"); +const u8 Text_39B275[] = _("Egg (male)"); +const u8 Text_39B280[] = _("1000 steps"); +const u8 Text_39B28B[] = _("10000 steps"); +const u8 Text_39B297[] = _("MOVE TUTOR"); +const u8 Text_39B2A2[] = _("Breed an egg"); +const u8 Text_39B2AF[] = _("Long name"); +#ifdef GERMAN +const u8 Text_39B2B9[] = _("Delete {POKEBLOCK}"); +#else +const u8 Text_39B2B9[] = _("ポロックけす"); +#endif + +const struct MenuAction gMoriDebugMenuActions[] = +{ + {Text_39B262, (u8 (*) (void))MoriDebugMenu_SearchChild}, // ugly cast needed to stop complaints of u8 (*func)() not being compatible with this declaration (TODO: Make MenuAction a Callback union to allow a new definition.) + {Text_39B271, MoriDebugMenu_Egg}, + {Text_39B275, MoriDebugMenu_MaleEgg}, + {Text_39B280, MoriDebugMenu_1000Steps}, + {Text_39B28B, MoriDebugMenu_10000Steps}, + {Text_39B297, MoriDebugMenu_MoveTutor}, + {Text_39B2A2, MoriDebugMenu_BreedEgg}, + {Text_39B2AF, MoriDebugMenu_LongName}, + {Text_39B2B9, MoriDebugMenu_PokeblockCase}, +}; void unref_sub_8083CF0(void) { @@ -65,7 +102,7 @@ u8 MoriDebugMenu_SearchChild(u8 a1, u8 a2, u8 *ptr) return 0; } -s8 MoriDebugMenu_Egg(void) +u8 MoriDebugMenu_Egg(void) { if (CountPokemonInDaycare(&gSaveBlock1.daycare) == 2 && GetDaycareCompatibilityScoreFromSave() ) TriggerPendingDaycareEgg(); @@ -74,7 +111,7 @@ s8 MoriDebugMenu_Egg(void) return 1; } -s8 MoriDebugMenu_MaleEgg(void) +u8 MoriDebugMenu_MaleEgg(void) { if (CountPokemonInDaycare(&gSaveBlock1.daycare) == 2 && GetDaycareCompatibilityScoreFromSave() ) TriggerPendingDaycareMaleEgg(); @@ -83,28 +120,28 @@ s8 MoriDebugMenu_MaleEgg(void) return 1; } -s8 MoriDebugMenu_1000Steps(void) +u8 MoriDebugMenu_1000Steps(void) { Debug_AddDaycareSteps(1000); CloseMenu(); return 1; } -s8 MoriDebugMenu_10000Steps(void) +u8 MoriDebugMenu_10000Steps(void) { Debug_AddDaycareSteps(10000); CloseMenu(); return 1; } -s8 MoriDebugMenu_MoveTutor(void) +u8 MoriDebugMenu_MoveTutor(void) { sub_8132670(); CloseMenu(); return 1; } -s8 MoriDebugMenu_BreedEgg(void) +u8 MoriDebugMenu_BreedEgg(void) { u8 loopCounter; @@ -122,14 +159,14 @@ s8 MoriDebugMenu_BreedEgg(void) return 1; } -s8 MoriDebugMenu_LongName(void) +u8 MoriDebugMenu_LongName(void) { SetMonData(gPlayerParty, MON_DATA_NICKNAME, gUnknown_0839B257); CloseMenu(); return 1; } -s8 MoriDebugMenu_PokeblockCase(void) +u8 MoriDebugMenu_PokeblockCase(void) { s32 loopCounter; diff --git a/src/engine/cable_club.c b/src/engine/cable_club.c index c61a1d01c..ec8acc65f 100644 --- a/src/engine/cable_club.c +++ b/src/engine/cable_club.c @@ -35,7 +35,6 @@ extern const u8 gUnknown_081A4932[]; extern const u8 gUnknown_081A4975[]; extern const u8 gUnknown_081A49B6[]; extern const u8 gUnknown_081A490C[]; -extern const u8* const gTrainerCardColorNames[]; extern struct { u8 field0; @@ -76,6 +75,26 @@ extern void sub_8055574(void); extern s32 sub_80554F8(void); extern void sub_805465C(void); +#ifdef GERMAN +const u8 TrainerCardColorName_Bronze[] = _("BRONZE"); +const u8 TrainerCardColorName_Copper[] = _("KUPFER"); +const u8 TrainerCardColorName_Silver[] = _("SILBER"); +const u8 TrainerCardColorName_Gold[] = _("GOLD"); +#else +const u8 TrainerCardColorName_Bronze[] = _("BRONZE"); +const u8 TrainerCardColorName_Copper[] = _("COPPER"); +const u8 TrainerCardColorName_Silver[] = _("SILVER"); +const u8 TrainerCardColorName_Gold[] = _("GOLD"); +#endif + +const u8 *const gTrainerCardColorNames[] = +{ + TrainerCardColorName_Bronze, + TrainerCardColorName_Copper, + TrainerCardColorName_Silver, + TrainerCardColorName_Gold, +}; + static void sub_8082CD4(u8 arg0, u8 arg1) { if (FindTaskIdByFunc(sub_8082F20) == 0xFF) diff --git a/src/engine/main_menu.c b/src/engine/main_menu.c index bfbf0dcd6..031dc49d1 100644 --- a/src/engine/main_menu.c +++ b/src/engine/main_menu.c @@ -30,8 +30,6 @@ extern struct PaletteFadeControl gPaletteFade; extern u16 gSaveFileStatus; -extern u16 gMainMenuPalette[]; - extern const u8 gBirchSpeech_Welcome[]; extern const u8 gBirchSpeech_ThisIsPokemon[]; extern const u8 gBirchSpeech_WorldInhabitedByPokemon[]; @@ -43,15 +41,11 @@ extern u8 gBirchSpeech_AhOkayYouArePlayer[]; extern u8 gBirchSpeech_AreYouReady[]; extern struct SpriteTemplate gUnknown_02024E8C; -extern u16 gUnknown_081E795C[]; extern const struct MenuAction gUnknown_081E79B0[]; extern const struct MenuAction gMalePresetNames[]; extern const struct MenuAction gFemalePresetNames[]; -extern const u8 gUnknown_081E764C[]; -extern const u8 gBirchIntroShadowGfx[]; extern const u8 gUnknown_081E7834[]; -extern const u8 gUnknown_081E796C[]; extern const union AffineAnimCmd *const gSpriteAffineAnimTable_81E79AC[]; @@ -136,6 +130,53 @@ static void CreateNameMenu(u8 left, u8 top); static s8 NameMenuProcessInput(void); static void SetPresetPlayerName(u8 index); +static const u16 gUnknown_081E764C[][16] = +{ + INCBIN_U16("graphics/birch_speech/bg0.gbapal"), + INCBIN_U16("graphics/birch_speech/bg1.gbapal"), +}; + +static const u8 gBirchIntroShadowGfx[] = INCBIN_U8("graphics/birch_speech/shadow.4bpp.lz"); +static const u8 gUnknown_081E7834[] = INCBIN_U8("graphics/birch_speech/map.bin.lz"); +static const u16 gUnknown_081E795C[] = INCBIN_U16("graphics/birch_speech/bg2.gbapal"); +static const u16 gUnknown_081E796C[] = INCBIN_U16("graphics/birch_speech/blank_pal.gbapal"); +static const u16 gMainMenuPalette[] = INCBIN_U16("graphics/misc/main_menu.gbapal"); + +static const union AffineAnimCmd gSpriteAffineAnim_81E799C[] = +{ + AFFINEANIMCMD_FRAME(0xFFFE, 0xFFFE, 0, 48), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd *const gSpriteAffineAnimTable_81E79AC[] = +{ + gSpriteAffineAnim_81E799C, +}; + +static const struct MenuAction gUnknown_081E79B0[] = +{ + {gBirchText_Boy, NULL}, + {gBirchText_Girl, NULL}, +}; + +static const struct MenuAction gMalePresetNames[] = +{ + {gBirchText_NewName, NULL}, + {gDefaultBoyName1, NULL}, + {gDefaultBoyName2, NULL}, + {gDefaultBoyName3, NULL}, + {gDefaultBoyName4, NULL}, +}; + +static const struct MenuAction gFemalePresetNames[] = +{ + {gBirchText_NewName, NULL}, + {gDefaultGirlName1, NULL}, + {gDefaultGirlName2, NULL}, + {gDefaultGirlName3, NULL}, + {gDefaultGirlName4, NULL}, +}; + static void CB2_MainMenu(void) { RunTasks(); diff --git a/src/engine/reset_rtc_screen.c b/src/engine/reset_rtc_screen.c index d052992ad..198bffaa7 100644 --- a/src/engine/reset_rtc_screen.c +++ b/src/engine/reset_rtc_screen.c @@ -27,15 +27,126 @@ struct ResetRtcStruct extern u16 gSaveFileStatus; -extern struct ResetRtcStruct gUnknown_08376420[]; -extern struct SpritePalette gUnknown_083764BC; -extern struct SpriteTemplate gSpriteTemplate_83764E8; -extern u8 gUnknown_08376500[]; - void CB2_ResetRtcScreen(void); void VBlankCB_ResetRtcScreen(void); void Task_ResetRtcScreen(u8); +static const struct ResetRtcStruct gUnknown_08376420[5] = +{ + { + .dataIndex = 3, + .minVal = 1, + .maxVal = 9999, + .left = 0, + .right = 2, + .unk8 = 0, + }, + { + .dataIndex = 4, + .minVal = 0, + .maxVal = 23, + .left = 1, + .right = 3, + .unk8 = 0, + }, + { + .dataIndex = 5, + .minVal = 0, + .maxVal = 59, + .left = 2, + .right = 4, + .unk8 = 0, + }, + { + .dataIndex = 6, + .minVal = 0, + .maxVal = 59, + .left = 3, + .right = 5, + .unk8 = 0, + }, + { + .dataIndex = 7, + .minVal = 0, + .maxVal = 0, + .left = 4, + .right = 0, + .unk8 = 6, + }, +}; + +const struct OamData gOamData_837645C = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +const u8 gSpriteImage_8376464[] = INCBIN_U8("graphics/unknown_sprites/83764AC/0.4bpp"); +const u8 gSpriteImage_8376484[] = INCBIN_U8("graphics/unknown_sprites/83764AC/1.4bpp"); + +const u16 Palette_3764A4[] = INCBIN_U16("graphics/unknown/83764A4.gbapal"); + +const struct SpriteFrameImage gSpriteImageTable_83764AC[] = +{ + { gSpriteImage_8376464, 0x20 }, + { gSpriteImage_8376484, 0x20 }, +}; + +const struct SpritePalette gUnknown_083764BC = +{ + .data = Palette_3764A4, + .tag = 0x1000, +}; + +const union AnimCmd gSpriteAnim_83764C4[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd gSpriteAnim_83764CC[] = +{ + ANIMCMD_FRAME(0, 158, .vFlip = TRUE), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd gSpriteAnim_83764D4[] = +{ + ANIMCMD_FRAME(1, 30), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gSpriteAnimTable_83764DC[] = +{ + gSpriteAnim_83764C4, + gSpriteAnim_83764CC, + gSpriteAnim_83764D4, +}; + +const struct SpriteTemplate gSpriteTemplate_83764E8 = +{ + .tileTag = 0xFFFF, + .paletteTag = 0x1000, + .oam = &gOamData_837645C, + .anims = gSpriteAnimTable_83764DC, + .images = gSpriteImageTable_83764AC, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +const u8 gUnknown_08376500[] = _(" : "); + void SpriteCB_ResetRtcCusor0(struct Sprite *sprite) { int state = gTasks[sprite->data0].data[2]; @@ -235,7 +346,7 @@ void Task_ResetRtc_1(u8 taskId) { s16 *data = gTasks[taskId].data; u8 selection = data[2]; - struct ResetRtcStruct *selectionInfo = &gUnknown_08376420[selection - 1]; + const struct ResetRtcStruct *selectionInfo = &gUnknown_08376420[selection - 1]; if (gMain.newKeys & B_BUTTON) { diff --git a/src/engine/text_window.c b/src/engine/text_window.c index 9a88789d1..c001ddefc 100644 --- a/src/engine/text_window.c +++ b/src/engine/text_window.c @@ -18,11 +18,83 @@ static void DrawMessageBox(struct Window *win, u8 left, u8 top, u8 width, u8 hei static u16 sTextWindowBaseTileNum; static u16 sMessageBoxBaseTileNum; -extern const struct FrameGraphics gUnknown_083761F0[20]; +extern const u8 gTextWindowFrame1_Gfx[]; +extern const u8 gTextWindowFrame2_Gfx[]; +extern const u8 gTextWindowFrame3_Gfx[]; +extern const u8 gTextWindowFrame4_Gfx[]; +extern const u8 gTextWindowFrame5_Gfx[]; +extern const u8 gTextWindowFrame6_Gfx[]; +extern const u8 gTextWindowFrame7_Gfx[]; +extern const u8 gTextWindowFrame8_Gfx[]; +extern const u8 gTextWindowFrame9_Gfx[]; +extern const u8 gTextWindowFrame10_Gfx[]; +extern const u8 gTextWindowFrame11_Gfx[]; +extern const u8 gTextWindowFrame12_Gfx[]; +extern const u8 gTextWindowFrame13_Gfx[]; +extern const u8 gTextWindowFrame14_Gfx[]; +extern const u8 gTextWindowFrame15_Gfx[]; +extern const u8 gTextWindowFrame16_Gfx[]; +extern const u8 gTextWindowFrame17_Gfx[]; +extern const u8 gTextWindowFrame18_Gfx[]; +extern const u8 gTextWindowFrame19_Gfx[]; +extern const u8 gTextWindowFrame20_Gfx[]; + +extern const u16 gTextWindowFrame1_Pal[]; +extern const u16 gTextWindowFrame2_Pal[]; +extern const u16 gTextWindowFrame3_Pal[]; +extern const u16 gTextWindowFrame4_Pal[]; +extern const u16 gTextWindowFrame5_Pal[]; +extern const u16 gTextWindowFrame6_Pal[]; +extern const u16 gTextWindowFrame7_Pal[]; +extern const u16 gTextWindowFrame8_Pal[]; +extern const u16 gTextWindowFrame9_Pal[]; +extern const u16 gTextWindowFrame10_Pal[]; +extern const u16 gTextWindowFrame11_Pal[]; +extern const u16 gTextWindowFrame12_Pal[]; +extern const u16 gTextWindowFrame13_Pal[]; +extern const u16 gTextWindowFrame14_Pal[]; +extern const u16 gTextWindowFrame15_Pal[]; +extern const u16 gTextWindowFrame16_Pal[]; +extern const u16 gTextWindowFrame17_Pal[]; +extern const u16 gTextWindowFrame18_Pal[]; +extern const u16 gTextWindowFrame19_Pal[]; +extern const u16 gTextWindowFrame20_Pal[]; -extern const u16 gMessageBoxTilemap[5][7]; extern const u8 gMessageBox_Gfx[]; +static const struct FrameGraphics gUnknown_083761F0[20] = +{ + {gTextWindowFrame1_Gfx, gTextWindowFrame1_Pal}, + {gTextWindowFrame2_Gfx, gTextWindowFrame2_Pal}, + {gTextWindowFrame3_Gfx, gTextWindowFrame3_Pal}, + {gTextWindowFrame4_Gfx, gTextWindowFrame4_Pal}, + {gTextWindowFrame5_Gfx, gTextWindowFrame5_Pal}, + {gTextWindowFrame6_Gfx, gTextWindowFrame6_Pal}, + {gTextWindowFrame7_Gfx, gTextWindowFrame7_Pal}, + {gTextWindowFrame8_Gfx, gTextWindowFrame8_Pal}, + {gTextWindowFrame9_Gfx, gTextWindowFrame9_Pal}, + {gTextWindowFrame10_Gfx, gTextWindowFrame10_Pal}, + {gTextWindowFrame11_Gfx, gTextWindowFrame11_Pal}, + {gTextWindowFrame12_Gfx, gTextWindowFrame12_Pal}, + {gTextWindowFrame13_Gfx, gTextWindowFrame13_Pal}, + {gTextWindowFrame14_Gfx, gTextWindowFrame14_Pal}, + {gTextWindowFrame15_Gfx, gTextWindowFrame15_Pal}, + {gTextWindowFrame16_Gfx, gTextWindowFrame16_Pal}, + {gTextWindowFrame17_Gfx, gTextWindowFrame17_Pal}, + {gTextWindowFrame18_Gfx, gTextWindowFrame18_Pal}, + {gTextWindowFrame19_Gfx, gTextWindowFrame19_Pal}, + {gTextWindowFrame20_Gfx, gTextWindowFrame20_Pal}, +}; + +static const u16 gMessageBoxTilemap[5][7] = +{ + {1, 3, 4, 4, 5, 6, 9}, + {11, 9, 9, 9, 9, 0x040B, 9}, + {7, 9, 9, 9, 9, 10, 9}, + {0x080B, 9, 9, 9, 9, 0x0C0B, 9}, + {0x0801, 0x0803, 0x0804, 0x0804, 0x0805, 0x0806, 9}, +}; + u16 SetTextWindowBaseTileNum(u16 baseTileNum) { sTextWindowBaseTileNum = baseTileNum; diff --git a/src/engine/tileset_anim.c b/src/engine/tileset_anim.c index f892e5e9a..abd38edad 100644 --- a/src/engine/tileset_anim.c +++ b/src/engine/tileset_anim.c @@ -1,39 +1,10 @@ #include "global.h" #include "tileset_anim.h" -extern u8 *gTilesetAnimTable_General_0[]; -extern u8 *gTilesetAnimTable_General_1[]; -extern u8 *gTilesetAnimTable_General_2[]; -extern u8 *gTilesetAnimTable_General_3[]; -extern u8 *gTilesetAnimTable_General_4[]; -extern u8 *gTilesetAnimTable_Lavaridge[]; -extern u8 *gTilesetAnimTable_Pacifidlog_0[]; -extern u8 *gTilesetAnimTable_Underwater[]; -extern u8 *gTilesetAnimTable_Pacifidlog_1[]; -extern u8 *gUnknown_0837BAE4[]; -extern u8 *gUnknown_0837BB04[]; -extern u8 *gTilesetAnimTable_Mauville_0A[]; -extern u8 *gTilesetAnimTable_Mauville_1A[]; -extern u8 *gTilesetAnimTable_Mauville_0B[]; -extern u8 *gTilesetAnimTable_Mauville_1B[]; -extern u8 *gUnknown_0837BFA4[]; -extern u8 *gTilesetAnimTable_Rustboro_0[]; -extern u8 *gTilesetAnimTable_Rustboro_1[]; -extern u8 *gTilesetAnimTable_Cave[]; -extern u8 *gUnknown_0837C93C[]; -extern u8 *gTilesetAnimTable_EverGrande[]; -extern u8 *gTilesetAnimTable_Building[]; -extern u8 *gTilesetAnimTable_SootopolisGym_0[]; -extern u8 *gTilesetAnimTable_SootopolisGym_1[]; -extern u8 *gTilesetAnimTable_EliteFour_0[]; -extern u8 *gTilesetAnimTable_EliteFour_1[]; -extern u8 *gTilesetAnimTable_MauvilleGym[]; -extern u8 *gTilesetAnimTable_BikeShop[]; - struct Dma { - void *src; - void *dest; + const void *src; + const void *dest; u16 size; }; @@ -89,13 +60,403 @@ static void sub_807399C(u16); static void sub_8073974(u16); static void sub_80739EC(u16); +static const u8 TilesetAnimTiles_General_0_1[] = INCBIN_U8("data/tilesets/primary/general/anim/0/1.4bpp"); +static const u8 TilesetAnimTiles_General_0_0[] = INCBIN_U8("data/tilesets/primary/general/anim/0/0.4bpp"); +static const u8 TilesetAnimTiles_General_0_2[] = INCBIN_U8("data/tilesets/primary/general/anim/0/2.4bpp"); +asm(".space 32"); + +static const u8 *const gTilesetAnimTable_General_0[] = +{ + TilesetAnimTiles_General_0_0, + TilesetAnimTiles_General_0_1, + TilesetAnimTiles_General_0_0, + TilesetAnimTiles_General_0_2, +}; + +static const u8 TilesetAnimTiles_General_1_0[] = INCBIN_U8("data/tilesets/primary/general/anim/1/0.4bpp"); +static const u8 TilesetAnimTiles_General_1_1[] = INCBIN_U8("data/tilesets/primary/general/anim/1/1.4bpp"); +static const u8 TilesetAnimTiles_General_1_2[] = INCBIN_U8("data/tilesets/primary/general/anim/1/2.4bpp"); +static const u8 TilesetAnimTiles_General_1_3[] = INCBIN_U8("data/tilesets/primary/general/anim/1/3.4bpp"); +static const u8 TilesetAnimTiles_General_1_4[] = INCBIN_U8("data/tilesets/primary/general/anim/1/4.4bpp"); +static const u8 TilesetAnimTiles_General_1_5[] = INCBIN_U8("data/tilesets/primary/general/anim/1/5.4bpp"); +static const u8 TilesetAnimTiles_General_1_6[] = INCBIN_U8("data/tilesets/primary/general/anim/1/6.4bpp"); +static const u8 TilesetAnimTiles_General_1_7[] = INCBIN_U8("data/tilesets/primary/general/anim/1/7.4bpp"); + +static const u8 *const gTilesetAnimTable_General_1[] = +{ + TilesetAnimTiles_General_1_0, + TilesetAnimTiles_General_1_1, + TilesetAnimTiles_General_1_2, + TilesetAnimTiles_General_1_3, + TilesetAnimTiles_General_1_4, + TilesetAnimTiles_General_1_5, + TilesetAnimTiles_General_1_6, + TilesetAnimTiles_General_1_7, +}; + +static const u8 TilesetAnimTiles_General_2_0[] = INCBIN_U8("data/tilesets/primary/general/anim/2/0.4bpp"); +static const u8 TilesetAnimTiles_General_2_1[] = INCBIN_U8("data/tilesets/primary/general/anim/2/1.4bpp"); +static const u8 TilesetAnimTiles_General_2_2[] = INCBIN_U8("data/tilesets/primary/general/anim/2/2.4bpp"); +static const u8 TilesetAnimTiles_General_2_3[] = INCBIN_U8("data/tilesets/primary/general/anim/2/3.4bpp"); +static const u8 TilesetAnimTiles_General_2_4[] = INCBIN_U8("data/tilesets/primary/general/anim/2/4.4bpp"); +static const u8 TilesetAnimTiles_General_2_5[] = INCBIN_U8("data/tilesets/primary/general/anim/2/5.4bpp"); +static const u8 TilesetAnimTiles_General_2_6[] = INCBIN_U8("data/tilesets/primary/general/anim/2/6.4bpp"); + +static const u8 *const gTilesetAnimTable_General_2[] = +{ + TilesetAnimTiles_General_2_0, + TilesetAnimTiles_General_2_1, + TilesetAnimTiles_General_2_2, + TilesetAnimTiles_General_2_3, + TilesetAnimTiles_General_2_4, + TilesetAnimTiles_General_2_5, + TilesetAnimTiles_General_2_6, + TilesetAnimTiles_General_2_0, +}; + +static const u8 TilesetAnimTiles_General_3_0[] = INCBIN_U8("data/tilesets/primary/general/anim/3/0.4bpp"); +static const u8 TilesetAnimTiles_General_3_1[] = INCBIN_U8("data/tilesets/primary/general/anim/3/1.4bpp"); +static const u8 TilesetAnimTiles_General_3_2[] = INCBIN_U8("data/tilesets/primary/general/anim/3/2.4bpp"); +static const u8 TilesetAnimTiles_General_3_3[] = INCBIN_U8("data/tilesets/primary/general/anim/3/3.4bpp"); + +static const u8 *const gTilesetAnimTable_General_3[] = +{ + TilesetAnimTiles_General_3_0, + TilesetAnimTiles_General_3_1, + TilesetAnimTiles_General_3_2, + TilesetAnimTiles_General_3_3, +}; + +static const u8 TilesetAnimTiles_General_4_0[] = INCBIN_U8("data/tilesets/primary/general/anim/4/0.4bpp"); +static const u8 TilesetAnimTiles_General_4_1[] = INCBIN_U8("data/tilesets/primary/general/anim/4/1.4bpp"); +static const u8 TilesetAnimTiles_General_4_2[] = INCBIN_U8("data/tilesets/primary/general/anim/4/2.4bpp"); +static const u8 TilesetAnimTiles_General_4_3[] = INCBIN_U8("data/tilesets/primary/general/anim/4/3.4bpp"); + +static const u8 *const gTilesetAnimTable_General_4[] = +{ + TilesetAnimTiles_General_4_0, + TilesetAnimTiles_General_4_1, + TilesetAnimTiles_General_4_2, + TilesetAnimTiles_General_4_3, +}; + +static const u8 TilesetAnimTiles_Lavaridge_0[] = INCBIN_U8("data/tilesets/secondary/lavaridge/anim/0.4bpp"); +static const u8 TilesetAnimTiles_Lavaridge_1[] = INCBIN_U8("data/tilesets/secondary/lavaridge/anim/1.4bpp"); +static const u8 TilesetAnimTiles_Lavaridge_2[] = INCBIN_U8("data/tilesets/secondary/lavaridge/anim/2.4bpp"); +static const u8 TilesetAnimTiles_Lavaridge_3[] = INCBIN_U8("data/tilesets/secondary/lavaridge/anim/3.4bpp"); + +static const u8 *const gTilesetAnimTable_Lavaridge[] = +{ + TilesetAnimTiles_Lavaridge_0, + TilesetAnimTiles_Lavaridge_1, + TilesetAnimTiles_Lavaridge_2, + TilesetAnimTiles_Lavaridge_3, +}; + +static const u8 TilesetAnimTiles_Pacifidlog_0_0[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/0/0.4bpp"); +static const u8 TilesetAnimTiles_Pacifidlog_0_1[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/0/1.4bpp"); +static const u8 TilesetAnimTiles_Pacifidlog_0_2[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/0/2.4bpp"); + +static const u8 *const gTilesetAnimTable_Pacifidlog_0[] = +{ + TilesetAnimTiles_Pacifidlog_0_0, + TilesetAnimTiles_Pacifidlog_0_1, + TilesetAnimTiles_Pacifidlog_0_2, + TilesetAnimTiles_Pacifidlog_0_1, +}; + +static const u8 TilesetAnimTiles_Underwater_0[] = INCBIN_U8("data/tilesets/secondary/underwater/anim/0.4bpp"); +static const u8 TilesetAnimTiles_Underwater_1[] = INCBIN_U8("data/tilesets/secondary/underwater/anim/1.4bpp"); +static const u8 TilesetAnimTiles_Underwater_2[] = INCBIN_U8("data/tilesets/secondary/underwater/anim/2.4bpp"); +static const u8 TilesetAnimTiles_Underwater_3[] = INCBIN_U8("data/tilesets/secondary/underwater/anim/3.4bpp"); + +static const u8 *const gTilesetAnimTable_Underwater[] = +{ + TilesetAnimTiles_Underwater_0, + TilesetAnimTiles_Underwater_1, + TilesetAnimTiles_Underwater_2, + TilesetAnimTiles_Underwater_3, +}; + +static const u8 TilesetAnimTiles_Pacifidlog_1_0[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/0.4bpp"); +static const u8 TilesetAnimTiles_Pacifidlog_1_1[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/1.4bpp"); +static const u8 TilesetAnimTiles_Pacifidlog_1_2[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/2.4bpp"); +static const u8 TilesetAnimTiles_Pacifidlog_1_3[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/3.4bpp"); +static const u8 TilesetAnimTiles_Pacifidlog_1_4[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/4.4bpp"); +static const u8 TilesetAnimTiles_Pacifidlog_1_5[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/5.4bpp"); +static const u8 TilesetAnimTiles_Pacifidlog_1_6[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/6.4bpp"); +static const u8 TilesetAnimTiles_Pacifidlog_1_7[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/7.4bpp"); + +static const u8 *const gTilesetAnimTable_Pacifidlog_1[] = +{ + TilesetAnimTiles_Pacifidlog_1_0, + TilesetAnimTiles_Pacifidlog_1_1, + TilesetAnimTiles_Pacifidlog_1_2, + TilesetAnimTiles_Pacifidlog_1_3, + TilesetAnimTiles_Pacifidlog_1_4, + TilesetAnimTiles_Pacifidlog_1_5, + TilesetAnimTiles_Pacifidlog_1_6, + TilesetAnimTiles_Pacifidlog_1_7, +}; + +static const u8 TilesetAnimTiles_Mauville_0_0[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/0/0.4bpp"); +static const u8 TilesetAnimTiles_Mauville_0_1[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/0/1.4bpp"); +static const u8 TilesetAnimTiles_Mauville_0_2[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/0/2.4bpp"); +static const u8 TilesetAnimTiles_Mauville_0_3[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/0/3.4bpp"); +static const u8 TilesetAnimTiles_Mauville_0_4[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/0/4.4bpp"); + +static const u8 TilesetAnimTiles_Mauville_1_0[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/1/0.4bpp"); +static const u8 TilesetAnimTiles_Mauville_1_1[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/1/1.4bpp"); +static const u8 TilesetAnimTiles_Mauville_1_2[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/1/2.4bpp"); +static const u8 TilesetAnimTiles_Mauville_1_3[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/1/3.4bpp"); +static const u8 TilesetAnimTiles_Mauville_1_4[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/1/4.4bpp"); + +static const void *const gUnknown_0837BAE4[] = +{ + (void *)(VRAM + 0x4C00), + (void *)(VRAM + 0x4C80), + (void *)(VRAM + 0x4D00), + (void *)(VRAM + 0x4D80), + (void *)(VRAM + 0x4E00), + (void *)(VRAM + 0x4E80), + (void *)(VRAM + 0x4F00), + (void *)(VRAM + 0x4F80), +}; + +static const void *const gUnknown_0837BB04[] = +{ + (void *)(VRAM + 0x5000), + (void *)(VRAM + 0x5080), + (void *)(VRAM + 0x5100), + (void *)(VRAM + 0x5180), + (void *)(VRAM + 0x5200), + (void *)(VRAM + 0x5280), + (void *)(VRAM + 0x5300), + (void *)(VRAM + 0x5380), +}; + +static const u8 *const gTilesetAnimTable_Mauville_0A[] = +{ + TilesetAnimTiles_Mauville_0_0, + TilesetAnimTiles_Mauville_0_0, + TilesetAnimTiles_Mauville_0_1, + TilesetAnimTiles_Mauville_0_2, + TilesetAnimTiles_Mauville_0_3, + TilesetAnimTiles_Mauville_0_3, + TilesetAnimTiles_Mauville_0_3, + TilesetAnimTiles_Mauville_0_3, + TilesetAnimTiles_Mauville_0_3, + TilesetAnimTiles_Mauville_0_3, + TilesetAnimTiles_Mauville_0_2, + TilesetAnimTiles_Mauville_0_1, +}; + +static const u8 *const gTilesetAnimTable_Mauville_1A[] = +{ + TilesetAnimTiles_Mauville_1_0, + TilesetAnimTiles_Mauville_1_0, + TilesetAnimTiles_Mauville_1_1, + TilesetAnimTiles_Mauville_1_2, + TilesetAnimTiles_Mauville_1_3, + TilesetAnimTiles_Mauville_1_3, + TilesetAnimTiles_Mauville_1_3, + TilesetAnimTiles_Mauville_1_3, + TilesetAnimTiles_Mauville_1_3, + TilesetAnimTiles_Mauville_1_3, + TilesetAnimTiles_Mauville_1_2, + TilesetAnimTiles_Mauville_1_1, +}; + +static const u8 *const gTilesetAnimTable_Mauville_0B[] = +{ + TilesetAnimTiles_Mauville_0_0, + TilesetAnimTiles_Mauville_0_0, + TilesetAnimTiles_Mauville_0_4, + TilesetAnimTiles_Mauville_0_4, +}; + +static const u8 *const gTilesetAnimTable_Mauville_1B[] = +{ + TilesetAnimTiles_Mauville_1_0, + TilesetAnimTiles_Mauville_1_0, + TilesetAnimTiles_Mauville_1_4, + TilesetAnimTiles_Mauville_1_4, +}; + +static const u8 TilesetAnimTiles_Rustboro_0_0[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/0.4bpp"); +static const u8 TilesetAnimTiles_Rustboro_0_1[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/1.4bpp"); +static const u8 TilesetAnimTiles_Rustboro_0_2[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/2.4bpp"); +static const u8 TilesetAnimTiles_Rustboro_0_3[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/3.4bpp"); +static const u8 TilesetAnimTiles_Rustboro_0_4[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/4.4bpp"); +static const u8 TilesetAnimTiles_Rustboro_0_5[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/5.4bpp"); +static const u8 TilesetAnimTiles_Rustboro_0_6[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/6.4bpp"); +static const u8 TilesetAnimTiles_Rustboro_0_7[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/7.4bpp"); + +static const void *const gUnknown_0837BFA4[] = +{ + (void *)(VRAM + 0x5000), + (void *)(VRAM + 0x5080), + (void *)(VRAM + 0x5100), + (void *)(VRAM + 0x5180), + (void *)(VRAM + 0x5200), + (void *)(VRAM + 0x5280), + (void *)(VRAM + 0x5300), + (void *)(VRAM + 0x5380), +}; + +static const u8 *const gTilesetAnimTable_Rustboro_0[] = +{ + TilesetAnimTiles_Rustboro_0_0, + TilesetAnimTiles_Rustboro_0_1, + TilesetAnimTiles_Rustboro_0_2, + TilesetAnimTiles_Rustboro_0_3, + TilesetAnimTiles_Rustboro_0_4, + TilesetAnimTiles_Rustboro_0_5, + TilesetAnimTiles_Rustboro_0_6, + TilesetAnimTiles_Rustboro_0_7, +}; + +static const u8 TilesetAnimTiles_Rustboro_1_0[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/1/0.4bpp"); +static const u8 TilesetAnimTiles_Rustboro_1_1[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/1/1.4bpp"); + +static const u8 *const gTilesetAnimTable_Rustboro_1[] = +{ + TilesetAnimTiles_Rustboro_1_0, + TilesetAnimTiles_Rustboro_1_1, +}; + +static const u8 TilesetAnimTiles_Cave_0[] = INCBIN_U8("data/tilesets/secondary/cave/anim/0.4bpp"); +static const u8 TilesetAnimTiles_Cave_1[] = INCBIN_U8("data/tilesets/secondary/cave/anim/1.4bpp"); +static const u8 TilesetAnimTiles_Cave_2[] = INCBIN_U8("data/tilesets/secondary/cave/anim/2.4bpp"); +static const u8 TilesetAnimTiles_Cave_3[] = INCBIN_U8("data/tilesets/secondary/cave/anim/3.4bpp"); +// unused anim tiles for cave +static const u8 TilesetAnimTiles_Cave_4[] = INCBIN_U8("data/tilesets/secondary/cave/anim/unused/0.4bpp"); +static const u8 TilesetAnimTiles_Cave_5[] = INCBIN_U8("data/tilesets/secondary/cave/anim/unused/1.4bpp"); +static const u8 TilesetAnimTiles_Cave_6[] = INCBIN_U8("data/tilesets/secondary/cave/anim/unused/2.4bpp"); +static const u8 TilesetAnimTiles_Cave_7[] = INCBIN_U8("data/tilesets/secondary/cave/anim/unused/3.4bpp"); +asm(".space 32"); + +static const u8 *const gTilesetAnimTable_Cave[] = +{ + TilesetAnimTiles_Cave_0, + TilesetAnimTiles_Cave_1, + TilesetAnimTiles_Cave_2, + TilesetAnimTiles_Cave_3, +}; + +static const u8 TilesetAnimTiles_EverGrande_0[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/0.4bpp"); +static const u8 TilesetAnimTiles_EverGrande_1[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/1.4bpp"); +static const u8 TilesetAnimTiles_EverGrande_2[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/2.4bpp"); +static const u8 TilesetAnimTiles_EverGrande_3[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/3.4bpp"); +static const u8 TilesetAnimTiles_EverGrande_4[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/4.4bpp"); +static const u8 TilesetAnimTiles_EverGrande_5[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/5.4bpp"); +static const u8 TilesetAnimTiles_EverGrande_6[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/6.4bpp"); +static const u8 TilesetAnimTiles_EverGrande_7[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/7.4bpp"); +asm(".space 32"); + +static const void *const gUnknown_0837C93C[] = +{ + (void *)(VRAM + 0x5C00), + (void *)(VRAM + 0x5C80), + (void *)(VRAM + 0x5D00), + (void *)(VRAM + 0x5D80), + (void *)(VRAM + 0x5E00), + (void *)(VRAM + 0x5E80), + (void *)(VRAM + 0x5F00), + (void *)(VRAM + 0x5F80), +}; + +static const u8 *const gTilesetAnimTable_EverGrande[] = +{ + TilesetAnimTiles_EverGrande_0, + TilesetAnimTiles_EverGrande_1, + TilesetAnimTiles_EverGrande_2, + TilesetAnimTiles_EverGrande_3, + TilesetAnimTiles_EverGrande_4, + TilesetAnimTiles_EverGrande_5, + TilesetAnimTiles_EverGrande_6, + TilesetAnimTiles_EverGrande_7, +}; + +static const u8 TilesetAnimTiles_Building_0[] = INCBIN_U8("data/tilesets/primary/building/anim/0.4bpp"); +static const u8 TilesetAnimTiles_Building_1[] = INCBIN_U8("data/tilesets/primary/building/anim/1.4bpp"); + +static const u8 *const gTilesetAnimTable_Building[] = +{ + TilesetAnimTiles_Building_0, + TilesetAnimTiles_Building_1, +}; + +static const u8 TilesetAnimTiles_SootopolisGym_0_0[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/0/0.4bpp"); +static const u8 TilesetAnimTiles_SootopolisGym_0_1[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/0/1.4bpp"); +static const u8 TilesetAnimTiles_SootopolisGym_0_2[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/0/2.4bpp"); +static const u8 TilesetAnimTiles_SootopolisGym_1_0[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/1/0.4bpp"); +static const u8 TilesetAnimTiles_SootopolisGym_1_1[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/1/1.4bpp"); +static const u8 TilesetAnimTiles_SootopolisGym_1_2[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/1/2.4bpp"); + +static const u8 *const gTilesetAnimTable_SootopolisGym_0[] = +{ + TilesetAnimTiles_SootopolisGym_0_0, + TilesetAnimTiles_SootopolisGym_0_1, + TilesetAnimTiles_SootopolisGym_0_2, +}; + +static const u8 *const gTilesetAnimTable_SootopolisGym_1[] = +{ + TilesetAnimTiles_SootopolisGym_1_0, + TilesetAnimTiles_SootopolisGym_1_1, + TilesetAnimTiles_SootopolisGym_1_2, +}; + +static const u8 TilesetAnimTiles_EliteFour_1_0[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/1/0.4bpp"); +static const u8 TilesetAnimTiles_EliteFour_1_1[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/1/1.4bpp"); +static const u8 TilesetAnimTiles_EliteFour_0_0[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/0/0.4bpp"); +static const u8 TilesetAnimTiles_EliteFour_0_1[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/0/1.4bpp"); +static const u8 TilesetAnimTiles_EliteFour_0_2[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/0/2.4bpp"); +static const u8 TilesetAnimTiles_EliteFour_0_3[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/0/3.4bpp"); +asm(".space 32"); + +static const u8 *const gTilesetAnimTable_EliteFour_0[] = +{ + TilesetAnimTiles_EliteFour_0_0, + TilesetAnimTiles_EliteFour_0_1, + TilesetAnimTiles_EliteFour_0_2, + TilesetAnimTiles_EliteFour_0_3, +}; + +static const u8 *const gTilesetAnimTable_EliteFour_1[] = +{ + TilesetAnimTiles_EliteFour_1_0, + TilesetAnimTiles_EliteFour_1_1, +}; + +static const u8 TilesetAnimTiles_MauvilleGym_0[] = INCBIN_U8("data/tilesets/secondary/mauville_gym/anim/0.4bpp"); +static const u8 TilesetAnimTiles_MauvilleGym_1[] = INCBIN_U8("data/tilesets/secondary/mauville_gym/anim/1.4bpp"); +asm(".space 32"); + +static const u8 *const gTilesetAnimTable_MauvilleGym[] = +{ + TilesetAnimTiles_MauvilleGym_0, + TilesetAnimTiles_MauvilleGym_1, +}; + +static const u8 TilesetAnimTiles_BikeShop_0[] = INCBIN_U8("data/tilesets/secondary/bike_shop/anim/0.4bpp"); +static const u8 TilesetAnimTiles_BikeShop_1[] = INCBIN_U8("data/tilesets/secondary/bike_shop/anim/1.4bpp"); +asm(".space 32"); + +static const u8 *const gTilesetAnimTable_BikeShop[] = +{ + TilesetAnimTiles_BikeShop_0, + TilesetAnimTiles_BikeShop_1, +}; + static void ClearTilesetAnimDmas(void) { gNumTilesetAnimDmas = 0; CpuFill32(0, &gTilesetAnimDmas, sizeof(gTilesetAnimDmas)); } -static void QueueTilesetAnimDma(void *src, void *dest, u16 size) +static void QueueTilesetAnimDma(const void *src, const void *dest, u16 size) { if (gNumTilesetAnimDmas < 20) { diff --git a/src/field/battle_tower.c b/src/field/battle_tower.c index 7a9c043b0..d6271643c 100644 --- a/src/field/battle_tower.c +++ b/src/field/battle_tower.c @@ -262,13 +262,13 @@ static void SetEReaderTrainerChecksum(struct BattleTowerEReaderTrainer *ereaderT static void SetBattleTowerRecordChecksum(struct BattleTowerRecord *); static void ClearBattleTowerRecord(struct BattleTowerRecord *); -extern const u8 gUnknown_08400E23[]; -extern const u8 gUnknown_08400E29[]; -extern const u8 gUnknown_08400E2C[]; -extern const u8 gUnknown_08400E2E[]; -extern const u8 gUnknown_08400E30[]; -extern const u8 gUnknown_08400E32[]; -extern const u8 gUnknown_08400E36[]; +extern const u8 BattleText_Format3[]; +extern const u8 BattleText_Format4[]; +extern const u8 BattleText_Format5[]; +extern const u8 BattleText_Format6[]; +extern const u8 BattleText_Format7[]; +extern const u8 BattleText_Format8[]; +extern const u8 BattleText_Format9[]; extern u16 gSpecialVar_0x8004; extern u8 gTrainerClassToPicIndex[]; extern u8 gTrainerClassToNameIndex[]; @@ -1409,24 +1409,24 @@ u8 AppendBattleTowerBannedSpeciesName(u16 species, u8 curIndexToAppend, s32 numT case 10: if (numToAppend == curIndexToAppend) { - StringAppend(gStringVar1, gUnknown_08400E23); + StringAppend(gStringVar1, BattleText_Format3); } else if (numToAppend > curIndexToAppend) { - StringAppend(gStringVar1, gUnknown_08400E29); + StringAppend(gStringVar1, BattleText_Format4); } break; case 1: if (curIndexToAppend == numToAppend) { - StringAppend(gStringVar1, gUnknown_08400E23); + StringAppend(gStringVar1, BattleText_Format3); } else { - StringAppend(gStringVar1, gUnknown_08400E29); + StringAppend(gStringVar1, BattleText_Format4); } - StringAppend(gStringVar1, gUnknown_08400E30); + StringAppend(gStringVar1, BattleText_Format7); break; case 3: case 5: @@ -1435,14 +1435,14 @@ u8 AppendBattleTowerBannedSpeciesName(u16 species, u8 curIndexToAppend, s32 numT default: if (curIndexToAppend == numToAppend) { - StringAppend(gStringVar1, gUnknown_08400E23); + StringAppend(gStringVar1, BattleText_Format3); } else { - StringAppend(gStringVar1, gUnknown_08400E29); + StringAppend(gStringVar1, BattleText_Format4); } - StringAppend(gStringVar1, gUnknown_08400E2E); + StringAppend(gStringVar1, BattleText_Format6); break; } @@ -1533,17 +1533,17 @@ void CheckPartyBattleTowerBanlist(void) if (counter == 0) { - StringAppend(gStringVar1, gUnknown_08400E2C); - StringAppend(gStringVar1, gUnknown_08400E32); + StringAppend(gStringVar1, BattleText_Format5); + StringAppend(gStringVar1, BattleText_Format8); return; } if (1 & counter) - StringAppend(gStringVar1, gUnknown_08400E2E); + StringAppend(gStringVar1, BattleText_Format6); else - StringAppend(gStringVar1, gUnknown_08400E2C); + StringAppend(gStringVar1, BattleText_Format5); - StringAppend(gStringVar1, gUnknown_08400E36); + StringAppend(gStringVar1, BattleText_Format9); } else { diff --git a/src/field/field_door.c b/src/field/field_door.c index ab46f0696..ef349bca7 100644 --- a/src/field/field_door.c +++ b/src/field/field_door.c @@ -6,16 +6,397 @@ #include "songs.h" #include "task.h" -extern struct DoorAnimFrame gDoorOpenAnimFrames[]; -extern struct DoorAnimFrame gDoorCloseAnimFrames[]; -extern struct DoorGraphics gDoorAnimGraphicsTable[]; +const u8 DoorAnimTiles_04[][0x100] = +{ + INCBIN_U8("graphics/door_anims/04/0.4bpp"), + INCBIN_U8("graphics/door_anims/04/1.4bpp"), + INCBIN_U8("graphics/door_anims/04/2.4bpp"), +}; + +// TODO: Make these blank palette includes? +asm(".space 32"); + +const u8 DoorAnimTiles_05[][0x100] = +{ + INCBIN_U8("graphics/door_anims/05/0.4bpp"), + INCBIN_U8("graphics/door_anims/05/1.4bpp"), + INCBIN_U8("graphics/door_anims/05/2.4bpp"), +}; + +const u8 DoorAnimTiles_08[][0x100] = +{ + INCBIN_U8("graphics/door_anims/08/0.4bpp"), + INCBIN_U8("graphics/door_anims/08/1.4bpp"), + INCBIN_U8("graphics/door_anims/08/2.4bpp"), +}; + +asm(".space 32"); + +const u8 DoorAnimTiles_15[][0x100] = +{ + INCBIN_U8("graphics/door_anims/15/0.4bpp"), + INCBIN_U8("graphics/door_anims/15/1.4bpp"), + INCBIN_U8("graphics/door_anims/15/2.4bpp"), +}; + +asm(".space 32"); + +const u8 DoorAnimTiles_16[][0x100] = +{ + INCBIN_U8("graphics/door_anims/16/0.4bpp"), + INCBIN_U8("graphics/door_anims/16/1.4bpp"), + INCBIN_U8("graphics/door_anims/16/2.4bpp"), +}; + +asm(".space 32"); + +const u8 DoorAnimTiles_00[][0x100] = +{ + INCBIN_U8("graphics/door_anims/00/0.4bpp"), + INCBIN_U8("graphics/door_anims/00/1.4bpp"), + INCBIN_U8("graphics/door_anims/00/2.4bpp"), +}; + +const u8 DoorAnimTiles_01[][0x100] = +{ + INCBIN_U8("graphics/door_anims/01/0.4bpp"), + INCBIN_U8("graphics/door_anims/01/1.4bpp"), + INCBIN_U8("graphics/door_anims/01/2.4bpp"), +}; + +const u8 DoorAnimTiles_02[][0x100] = +{ + INCBIN_U8("graphics/door_anims/02/0.4bpp"), + INCBIN_U8("graphics/door_anims/02/1.4bpp"), + INCBIN_U8("graphics/door_anims/02/2.4bpp"), +}; + +const u8 DoorAnimTiles_03[][0x100] = +{ + INCBIN_U8("graphics/door_anims/03/0.4bpp"), + INCBIN_U8("graphics/door_anims/03/1.4bpp"), + INCBIN_U8("graphics/door_anims/03/2.4bpp"), +}; + +const u8 DoorAnimTiles_06[][0x100] = +{ + INCBIN_U8("graphics/door_anims/06/0.4bpp"), + INCBIN_U8("graphics/door_anims/06/1.4bpp"), + INCBIN_U8("graphics/door_anims/06/2.4bpp"), +}; + +const u8 DoorAnimTiles_07[][0x100] = +{ + INCBIN_U8("graphics/door_anims/07/0.4bpp"), + INCBIN_U8("graphics/door_anims/07/1.4bpp"), + INCBIN_U8("graphics/door_anims/07/2.4bpp"), +}; + +const u8 DoorAnimTiles_09[][0x100] = +{ + INCBIN_U8("graphics/door_anims/09/0.4bpp"), + INCBIN_U8("graphics/door_anims/09/1.4bpp"), + INCBIN_U8("graphics/door_anims/09/2.4bpp"), +}; + +asm(".space 32"); + +const u8 DoorAnimTiles_10[][0x100] = +{ + INCBIN_U8("graphics/door_anims/10/0.4bpp"), + INCBIN_U8("graphics/door_anims/10/1.4bpp"), + INCBIN_U8("graphics/door_anims/10/2.4bpp"), +}; + +asm(".space 32"); + +const u8 DoorAnimTiles_11[][0x100] = +{ + INCBIN_U8("graphics/door_anims/11/0.4bpp"), + INCBIN_U8("graphics/door_anims/11/1.4bpp"), + INCBIN_U8("graphics/door_anims/11/2.4bpp"), +}; + +asm(".space 32"); + +const u8 DoorAnimTiles_12[][0x100] = +{ + INCBIN_U8("graphics/door_anims/12/0.4bpp"), + INCBIN_U8("graphics/door_anims/12/1.4bpp"), + INCBIN_U8("graphics/door_anims/12/2.4bpp"), +}; + +asm(".space 32"); + +const u8 DoorAnimTiles_13[][0x100] = +{ + INCBIN_U8("graphics/door_anims/13/0.4bpp"), + INCBIN_U8("graphics/door_anims/13/1.4bpp"), + INCBIN_U8("graphics/door_anims/13/2.4bpp"), +}; + +asm(".space 32"); + +const u8 DoorAnimTiles_14[][0x100] = +{ + INCBIN_U8("graphics/door_anims/14/0.4bpp"), + INCBIN_U8("graphics/door_anims/14/1.4bpp"), + INCBIN_U8("graphics/door_anims/14/2.4bpp"), +}; + +asm(".space 32"); + +const u8 DoorAnimTiles_17[][0x100] = +{ + INCBIN_U8("graphics/door_anims/17/0.4bpp"), + INCBIN_U8("graphics/door_anims/17/1.4bpp"), + INCBIN_U8("graphics/door_anims/17/2.4bpp"), +}; + +asm(".space 32"); + +const u8 DoorAnimTiles_18[][0x100] = +{ + INCBIN_U8("graphics/door_anims/18/0.4bpp"), + INCBIN_U8("graphics/door_anims/18/1.4bpp"), + INCBIN_U8("graphics/door_anims/18/2.4bpp"), +}; + +asm(".space 32"); + +const u8 DoorAnimTiles_19[][0x100] = +{ + INCBIN_U8("graphics/door_anims/19/0.4bpp"), + INCBIN_U8("graphics/door_anims/19/1.4bpp"), + INCBIN_U8("graphics/door_anims/19/2.4bpp"), +}; + +asm(".space 32"); + +const u8 DoorAnimTiles_20[][0x100] = +{ + INCBIN_U8("graphics/door_anims/20/0.4bpp"), + INCBIN_U8("graphics/door_anims/20/1.4bpp"), + INCBIN_U8("graphics/door_anims/20/2.4bpp"), +}; + +asm(".space 32"); + +const u8 DoorAnimTiles_21[][0x100] = +{ + INCBIN_U8("graphics/door_anims/21/0.4bpp"), + INCBIN_U8("graphics/door_anims/21/1.4bpp"), + INCBIN_U8("graphics/door_anims/21/2.4bpp"), +}; + +asm(".space 32"); + +const u8 DoorAnimTiles_22[][0x100] = +{ + INCBIN_U8("graphics/door_anims/22/0.4bpp"), + INCBIN_U8("graphics/door_anims/22/1.4bpp"), + INCBIN_U8("graphics/door_anims/22/2.4bpp"), +}; + +asm(".space 32"); + +const u8 DoorAnimTiles_23[][0x100] = +{ + INCBIN_U8("graphics/door_anims/23/0.4bpp"), + INCBIN_U8("graphics/door_anims/23/1.4bpp"), + INCBIN_U8("graphics/door_anims/23/2.4bpp"), +}; + +asm(".space 32"); + +const u8 DoorAnimTiles_24[][0x100] = +{ + INCBIN_U8("graphics/door_anims/24/0.4bpp"), + INCBIN_U8("graphics/door_anims/24/1.4bpp"), + INCBIN_U8("graphics/door_anims/24/2.4bpp"), +}; + +asm(".space 32"); + +const u8 DoorAnimTiles_25[][0x100] = +{ + INCBIN_U8("graphics/door_anims/25/0.4bpp"), + INCBIN_U8("graphics/door_anims/25/1.4bpp"), + INCBIN_U8("graphics/door_anims/25/2.4bpp"), +}; + +asm(".space 32"); + +const u8 DoorAnimTiles_26[][0x100] = +{ + INCBIN_U8("graphics/door_anims/26/0.4bpp"), + INCBIN_U8("graphics/door_anims/26/1.4bpp"), + INCBIN_U8("graphics/door_anims/26/2.4bpp"), +}; + +asm(".space 32"); + +const u8 DoorAnimTiles_27[][0x100] = +{ + INCBIN_U8("graphics/door_anims/27/0.4bpp"), + INCBIN_U8("graphics/door_anims/27/1.4bpp"), + INCBIN_U8("graphics/door_anims/27/2.4bpp"), +}; + +asm(".space 32"); + +const u8 DoorAnimTiles_28[][0x100] = +{ + INCBIN_U8("graphics/door_anims/28/0.4bpp"), + INCBIN_U8("graphics/door_anims/28/1.4bpp"), + INCBIN_U8("graphics/door_anims/28/2.4bpp"), +}; + +asm(".space 32"); + +const u8 DoorAnimTiles_29[][0x100] = +{ + INCBIN_U8("graphics/door_anims/29/0.4bpp"), + INCBIN_U8("graphics/door_anims/29/1.4bpp"), + INCBIN_U8("graphics/door_anims/29/2.4bpp"), +}; + +asm(".space 32"); + +const u8 DoorAnimTiles_30[][0x100] = +{ + INCBIN_U8("graphics/door_anims/30/0.4bpp"), + INCBIN_U8("graphics/door_anims/30/1.4bpp"), + INCBIN_U8("graphics/door_anims/30/2.4bpp"), +}; + +asm(".space 32"); + +const u8 DoorAnimTiles_31[][0x100] = +{ + INCBIN_U8("graphics/door_anims/31/0.4bpp"), + INCBIN_U8("graphics/door_anims/31/1.4bpp"), + INCBIN_U8("graphics/door_anims/31/2.4bpp"), +}; + +asm(".space 32"); + +const u8 DoorAnimTiles_32[][0x100] = +{ + INCBIN_U8("graphics/door_anims/32/0.4bpp"), + INCBIN_U8("graphics/door_anims/32/1.4bpp"), + INCBIN_U8("graphics/door_anims/32/2.4bpp"), +}; + +asm(".space 32"); + +const u8 DoorAnimTiles_33[][0x100] = +{ + INCBIN_U8("graphics/door_anims/33/0.4bpp"), + INCBIN_U8("graphics/door_anims/33/1.4bpp"), + INCBIN_U8("graphics/door_anims/33/2.4bpp"), +}; + +asm(".space 32"); + +static const struct DoorAnimFrame gDoorOpenAnimFrames[] = +{ + {4, -1}, + {4, 0}, + {4, 0x100}, + {4, 0x200}, + {0, 0}, +}; + +static const struct DoorAnimFrame gDoorCloseAnimFrames[] = +{ + {4, 0x200}, + {4, 0x100}, + {4, 0}, + {4, -1}, + {0, 0}, +}; + +const u8 DoorAnimPalettes_830F8A4[] = {1, 1, 1, 1, 1, 1, 1, 1}; // door 00 +const u8 DoorAnimPalettes_830F8AC[] = {1, 1, 1, 1, 1, 1, 1, 1}; // door 01 +const u8 DoorAnimPalettes_830F8B4[] = {5, 5, 5, 5, 5, 5, 5, 5}; // door 02 +const u8 DoorAnimPalettes_830F8BC[] = {0, 0, 1, 1, 1, 1, 1, 1}; // door 03 +const u8 DoorAnimPalettes_830F8C4[] = {6, 6, 6, 6, 6, 6, 6, 6}; // door 04 +const u8 DoorAnimPalettes_830F8CC[] = {8, 8, 8, 8, 8, 8, 8, 8}; // door 05 +const u8 DoorAnimPalettes_830F8D4[] = {11, 11, 11, 11, 11, 11, 11, 11}; // door 06 +const u8 DoorAnimPalettes_830F8DC[] = {10, 10, 10, 10, 10, 10, 10, 10}; // door 07 +const u8 DoorAnimPalettes_830F8E4[] = {7, 7, 7, 7, 7, 7, 7, 7}; // door 08 +const u8 DoorAnimPalettes_830F8EC[] = {8, 8, 8, 8, 8, 8, 8, 8}; // door 09 +const u8 DoorAnimPalettes_830F8F4[] = {9, 9, 9, 9, 9, 9, 9, 9}; // door 10 +const u8 DoorAnimPalettes_830F8FC[] = {9, 9, 1, 1, 1, 1, 1, 1}; // door 11 +const u8 DoorAnimPalettes_830F904[] = {8, 8, 8, 8, 8, 8, 8, 8}; // door 12 +const u8 DoorAnimPalettes_830F90C[] = {9, 9, 9, 9, 9, 9, 9, 9}; // door 13 +const u8 DoorAnimPalettes_830F914[] = {6, 6, 6, 6, 6, 6, 6, 6}; // door 14 +const u8 DoorAnimPalettes_830F91C[] = {6, 6, 6, 6, 6, 6, 6, 6}; // door 15 +const u8 DoorAnimPalettes_830F924[] = {0, 0, 5, 5, 5, 5, 5, 5}; // door 16 +const u8 DoorAnimPalettes_830F92C[] = {6, 6, 1, 1, 1, 1, 1, 1}; // door 17 +const u8 DoorAnimPalettes_830F934[] = {7, 7, 7, 7, 7, 7, 7, 7}; // door 18 +const u8 DoorAnimPalettes_830F93C[] = {6, 6, 5, 5, 5, 5, 5, 5}; // door 19 +const u8 DoorAnimPalettes_830F944[] = {5, 5, 5, 5, 5, 5, 5, 5}; // door 20 +const u8 DoorAnimPalettes_830F94C[] = {1, 1, 1, 1, 1, 1, 1, 1}; // door 21 +const u8 DoorAnimPalettes_830F954[] = {6, 6, 7, 7, 7, 7, 7, 7}; // door 22 +const u8 DoorAnimPalettes_830F95C[] = {7, 7, 7, 7, 7, 7, 7, 7}; // door 23 +const u8 DoorAnimPalettes_830F964[] = {5, 5, 5, 5, 5, 5, 5, 5}; // door 24 +const u8 DoorAnimPalettes_830F96C[] = {9, 9, 9, 9, 9, 9, 9, 9}; // door 25 +const u8 DoorAnimPalettes_830F974[] = {8, 8, 8, 8, 8, 8, 8, 8}; // door 26 +const u8 DoorAnimPalettes_830F97C[] = {6, 6, 6, 6, 6, 6, 6, 6}; // door 27 +const u8 DoorAnimPalettes_830F984[] = {7, 7, 7, 7, 7, 7, 7, 7}; // door 28 +const u8 DoorAnimPalettes_830F98C[] = {11, 11, 7, 7, 7, 7, 7, 7}; // door 29 +const u8 DoorAnimPalettes_830F994[] = {7, 7, 7, 7, 7, 7, 7, 7}; // door 30 +const u8 DoorAnimPalettes_830F99C[] = {6, 6, 7, 7, 7, 7, 7, 7}; // door 31 +const u8 DoorAnimPalettes_830F9A4[] = {9, 9, 9, 9, 9, 9, 9, 9}; // door 32 +const u8 DoorAnimPalettes_830F9AC[] = {7, 7, 7, 7, 7, 7, 7, 7}; // door 33 + +static const struct DoorGraphics gDoorAnimGraphicsTable[] = +{ + {0x021, 0, DoorAnimTiles_00, DoorAnimPalettes_830F8A4}, // door 00 + {0x061, 1, DoorAnimTiles_01, DoorAnimPalettes_830F8AC}, // door 01 + {0x1CD, 1, DoorAnimTiles_02, DoorAnimPalettes_830F8B4}, // door 02 + {0x041, 1, DoorAnimTiles_03, DoorAnimPalettes_830F8BC}, // door 03 + {0x248, 0, DoorAnimTiles_04, DoorAnimPalettes_830F8C4}, // door 04 + {0x249, 0, DoorAnimTiles_05, DoorAnimPalettes_830F8CC}, // door 05 + {0x22F, 0, DoorAnimTiles_06, DoorAnimPalettes_830F8D4}, // door 06 + {0x21F, 0, DoorAnimTiles_07, DoorAnimPalettes_830F8DC}, // door 07 + {0x2A5, 0, DoorAnimTiles_08, DoorAnimPalettes_830F8E4}, // door 08 + {0x287, 0, DoorAnimTiles_09, DoorAnimPalettes_830F8F4}, // door 09 + {0x2AC, 0, DoorAnimTiles_10, DoorAnimPalettes_830F934}, // door 10 + {0x3A1, 0, DoorAnimTiles_11, DoorAnimPalettes_830F93C}, // door 11 + {0x2DC, 0, DoorAnimTiles_12, DoorAnimPalettes_830F92C}, // door 12 + {0x225, 0, DoorAnimTiles_13, DoorAnimPalettes_830F924}, // door 13 + {0x1DB, 1, DoorAnimTiles_14, DoorAnimPalettes_830F94C}, // door 14 + {0x246, 0, DoorAnimTiles_15, DoorAnimPalettes_830F8EC}, // door 15 + {0x28E, 0, DoorAnimTiles_16, DoorAnimPalettes_830F944}, // door 16 + {0x2A1, 0, DoorAnimTiles_17, DoorAnimPalettes_830F8FC}, // door 17 + {0x21C, 0, DoorAnimTiles_18, DoorAnimPalettes_830F914}, // door 18 + {0x21E, 0, DoorAnimTiles_19, DoorAnimPalettes_830F91C}, // door 19 + {0x21D, 1, DoorAnimTiles_20, DoorAnimPalettes_830F904}, // door 20 + {0x21A, 0, DoorAnimTiles_21, DoorAnimPalettes_830F90C}, // door 21 + {0x224, 0, DoorAnimTiles_22, DoorAnimPalettes_830F954}, // door 22 + {0x289, 0, DoorAnimTiles_23, DoorAnimPalettes_830F95C}, // door 23 + {0x30C, 1, DoorAnimTiles_24, DoorAnimPalettes_830F964}, // door 24 + {0x32D, 1, DoorAnimTiles_25, DoorAnimPalettes_830F96C}, // door 25 + {0x2ED, 1, DoorAnimTiles_26, DoorAnimPalettes_830F974}, // door 26 + {0x264, 1, DoorAnimTiles_27, DoorAnimPalettes_830F97C}, // door 27 + {0x22B, 0, DoorAnimTiles_28, DoorAnimPalettes_830F984}, // door 28 + {0x2F7, 0, DoorAnimTiles_29, DoorAnimPalettes_830F98C}, // door 29 + {0x297, 0, DoorAnimTiles_30, DoorAnimPalettes_830F994}, // door 30 + {0x285, 1, DoorAnimTiles_31, DoorAnimPalettes_830F99C}, // door 31 + {0x25D, 1, DoorAnimTiles_32, DoorAnimPalettes_830F9A4}, // door 32 + {0x20E, 1, DoorAnimTiles_33, DoorAnimPalettes_830F9AC}, // door 33 + {0, 0, NULL, NULL}, +}; -static void CopyDoorTilesToVram(void *src) +static void CopyDoorTilesToVram(const void *src) { CpuFastSet(src, (void *)(VRAM + 0x7F00), 0x40); } -static void door_build_blockdef(u16 *a, u16 b, u8 *c) +static void door_build_blockdef(u16 *a, u16 b, const u8 *c) { int i; u16 unk; @@ -32,7 +413,7 @@ static void door_build_blockdef(u16 *a, u16 b, u8 *c) } } -static void DrawCurrentDoorAnimFrame(u32 x, u32 y, u8 *c) +static void DrawCurrentDoorAnimFrame(u32 x, u32 y, const u8 *c) { u16 arr[8]; @@ -48,7 +429,7 @@ static void DrawClosedDoorTiles(u32 x, u32 y) CurrentMapDrawMetatileAt(x, y); } -static void DrawDoor(struct DoorGraphics *gfx, struct DoorAnimFrame *frame, u32 x, u32 y) +static void DrawDoor(const struct DoorGraphics *gfx, const struct DoorAnimFrame *frame, u32 x, u32 y) { if (frame->offset == 0xFFFF) DrawClosedDoorTiles(x, y); @@ -96,14 +477,14 @@ static void Task_AnimateDoor(u8 taskId) DestroyTask(taskId); } -static struct DoorAnimFrame *GetLastDoorFrame(struct DoorAnimFrame *frame, void *unused) +static const struct DoorAnimFrame *GetLastDoorFrame(const struct DoorAnimFrame *frame, const void *unused) { while (frame->time != 0) frame++; return frame - 1; } -static struct DoorGraphics *GetDoorGraphics(struct DoorGraphics *gfx, u16 metatileNum) +static const struct DoorGraphics *GetDoorGraphics(const struct DoorGraphics *gfx, u16 metatileNum) { while (gfx->tiles != NULL) { @@ -114,7 +495,7 @@ static struct DoorGraphics *GetDoorGraphics(struct DoorGraphics *gfx, u16 metati return NULL; } -static s8 StartDoorAnimationTask(struct DoorGraphics *gfx, struct DoorAnimFrame *frames, u32 x, u32 y) +static s8 StartDoorAnimationTask(const struct DoorGraphics *gfx, const struct DoorAnimFrame *frames, u32 x, u32 y) { if (FuncIsActiveTask(Task_AnimateDoor) == TRUE) return -1; @@ -136,19 +517,19 @@ static s8 StartDoorAnimationTask(struct DoorGraphics *gfx, struct DoorAnimFrame } } -static void DrawClosedDoor(struct DoorGraphics *unused, u32 x, u32 y) +static void DrawClosedDoor(const struct DoorGraphics *unused, u32 x, u32 y) { DrawClosedDoorTiles(x, y); } -static void DrawOpenedDoor(struct DoorGraphics *gfx, u32 x, u32 y) +static void DrawOpenedDoor(const struct DoorGraphics *gfx, u32 x, u32 y) { gfx = GetDoorGraphics(gfx, MapGridGetMetatileIdAt(x, y)); if (gfx != NULL) DrawDoor(gfx, GetLastDoorFrame(gDoorOpenAnimFrames, gDoorOpenAnimFrames), x, y); } -static s8 StartDoorOpenAnimation(struct DoorGraphics *gfx, u32 x, u32 y) +static s8 StartDoorOpenAnimation(const struct DoorGraphics *gfx, u32 x, u32 y) { gfx = GetDoorGraphics(gfx, MapGridGetMetatileIdAt(x, y)); if (gfx == NULL) @@ -157,7 +538,7 @@ static s8 StartDoorOpenAnimation(struct DoorGraphics *gfx, u32 x, u32 y) return StartDoorAnimationTask(gfx, gDoorOpenAnimFrames, x, y); } -static s8 StartDoorCloseAnimation(struct DoorGraphics *gfx, u32 x, u32 y) +static s8 StartDoorCloseAnimation(const struct DoorGraphics *gfx, u32 x, u32 y) { gfx = GetDoorGraphics(gfx, MapGridGetMetatileIdAt(x, y)); if (gfx == NULL) @@ -166,7 +547,7 @@ static s8 StartDoorCloseAnimation(struct DoorGraphics *gfx, u32 x, u32 y) return StartDoorAnimationTask(gfx, gDoorCloseAnimFrames, x, y); } -static s8 cur_mapdata_get_door_x2_at(struct DoorGraphics *gfx, u32 x, u32 y) +static s8 cur_mapdata_get_door_x2_at(const struct DoorGraphics *gfx, u32 x, u32 y) { gfx = GetDoorGraphics(gfx, MapGridGetMetatileIdAt(x, y)); if (gfx == NULL) diff --git a/src/field/field_specials.c b/src/field/field_specials.c index 46061febf..48e9b44aa 100644 --- a/src/field/field_specials.c +++ b/src/field/field_specials.c @@ -48,6 +48,8 @@ extern u16 gSpecialVar_0x8004; extern u16 gSpecialVar_0x8005; extern u16 gScriptResult; +extern u8 *const gUnknown_083D1464[3]; + EWRAM_DATA bool8 gBikeCyclingChallenge = FALSE; EWRAM_DATA u8 gBikeCollisions = 0; EWRAM_DATA u32 gBikeCyclingTimer = 0; diff --git a/src/field/fldeff_flash.c b/src/field/fldeff_flash.c index 1ee8a8f05..30423a3f9 100644 --- a/src/field/fldeff_flash.c +++ b/src/field/fldeff_flash.c @@ -21,14 +21,6 @@ struct FlashStruct void (*func)(void); }; -extern struct FlashStruct gUnknown_083F7FC4[]; -extern u16 gCaveTransitionPalette_White[]; -extern u16 gCaveTransitionPalette_Black[]; -extern u16 gUnknown_083F808C[]; -extern u16 gUnknown_083F809C[]; -extern u16 gCaveTransitionTilemap[]; -extern u8 gCaveTransitionTiles[]; - extern u8 gLastFieldPokeMenuOpened; extern void (*gUnknown_03005CE4)(void); @@ -46,6 +38,38 @@ void sub_810D00C(u8); void sub_810D028(u8); void sub_810D0C4(u8); void sub_810D128(u8); +void sub_810CFF8(void); +void sub_810CE48(void); + +static const struct FlashStruct gUnknown_083F7FC4[] = +{ + {1, 4, 1, 0, sub_810CFF8}, + {2, 4, 1, 0, sub_810CFF8}, + {3, 4, 1, 0, sub_810CFF8}, + {5, 4, 1, 0, sub_810CFF8}, + {6, 4, 1, 0, sub_810CFF8}, + {7, 4, 1, 0, sub_810CFF8}, + {8, 4, 1, 0, sub_810CFF8}, + {9, 4, 1, 0, sub_810CFF8}, + {4, 1, 0, 1, sub_810CE48}, + {4, 2, 0, 1, sub_810CE48}, + {4, 3, 0, 1, sub_810CE48}, + {4, 5, 0, 1, sub_810CE48}, + {4, 6, 0, 1, sub_810CE48}, + {4, 7, 0, 1, sub_810CE48}, + {4, 8, 0, 1, sub_810CE48}, + {4, 9, 0, 1, sub_810CE48}, + {0, 0, 0, 0, NULL}, +}; + +// TODO: Make these extracted palettes? +static const u16 gCaveTransitionPalette_White[] = {0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF}; +static const u16 gCaveTransitionPalette_Black[] = {0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000}; + +static const u16 gUnknown_083F808C[] = INCBIN_U16("graphics/misc/83F808C.gbapal"); +static const u16 gUnknown_083F809C[] = INCBIN_U16("graphics/misc/83F809C.gbapal"); +static const u16 gCaveTransitionTilemap[] = INCBIN_U16("graphics/misc/cave_transition_map.bin.lz"); +static const u8 gCaveTransitionTiles[] = INCBIN_U8("graphics/misc/cave_transition.4bpp.lz"); bool8 SetUpFieldMove_Flash(void) { diff --git a/src/field/money.c b/src/field/money.c index 5d0f0ae8d..f277ac905 100644 --- a/src/field/money.c +++ b/src/field/money.c @@ -4,6 +4,7 @@ #include "menu.h" #include "sprite.h" #include "string_util.h" +#include "graphics.h" #define SPRITE_TAG_MONEY (0x2722) @@ -11,9 +12,47 @@ extern u16 gSpecialVar_0x8005; static EWRAM_DATA u8 gUnknown_02038734 = 0; -extern const struct CompressedSpriteSheet gUnknown_083CF584; -extern const struct CompressedSpritePalette gUnknown_083CF58C; -extern const struct SpriteTemplate gSpriteTemplate_83CF56C; +static const struct OamData gOamData_83CF558 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +const union AnimCmd gSpriteAnim_83CF560[] = +{ + ANIMCMD_FRAME(0, 0), + ANIMCMD_END +}; + +const union AnimCmd *const gSpriteAnimTable_83CF568[] = +{ + gSpriteAnim_83CF560, +}; + +const struct SpriteTemplate gSpriteTemplate_83CF56C = +{ + .tileTag = 10018, + .paletteTag = 10018, + .oam = &gOamData_83CF558, + .anims = gSpriteAnimTable_83CF568, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +const struct CompressedSpriteSheet gUnknown_083CF584[] = {gMenuMoneyGfx, 256, SPRITE_TAG_MONEY}; +const struct CompressedSpritePalette gUnknown_083CF58C[] = {gMenuMoneyPal, SPRITE_TAG_MONEY}; bool8 IsEnoughMoney(u32 budget, u32 cost) { @@ -239,8 +278,8 @@ void OpenMoneyWindow(u32 amount, u8 x, u8 y) MenuDrawTextWindow(x, y, x + 13, y + 3); UpdateMoneyWindow(amount, x, y); - LoadCompressedObjectPic(&gUnknown_083CF584); - LoadCompressedObjectPalette(&gUnknown_083CF58C); + LoadCompressedObjectPic(gUnknown_083CF584); + LoadCompressedObjectPalette(gUnknown_083CF58C); gUnknown_02038734 = CreateSprite(&gSpriteTemplate_83CF56C, x * 8 + 19, y * 8 + 11, 0); } diff --git a/src/field/tv.c b/src/field/tv.c index a0287e7df..29d012f28 100644 --- a/src/field/tv.c +++ b/src/field/tv.c @@ -39,6 +39,8 @@ #include "strings.h" #include "text.h" #include "ewram.h" +#include "moves.h" +#include "region_map_sections.h" struct UnkTvStruct { @@ -66,27 +68,6 @@ extern struct TVSaleItem gUnknown_02038724[3]; struct UnkTvStruct gUnknown_03005D38; -extern u8 *gTVBravoTrainerTextGroup[]; -extern u8 *gTVBravoTrainerBattleTowerTextGroup[]; -extern u8 *gTVSmartShopperTextGroup[]; -extern u8 *gTVNameRaterTextGroup[]; -extern u8 *gTVPokemonTodayTextGroup[]; -extern u8 *gTVPokemonTodayFailedCaptureTextGroup[]; -extern u8 *gTVFanClubTextGroup[]; -extern u8 *gTVRecentHappeningsTextGroup[]; -extern u8 *gTVFanClubOpinionsTextGroup[]; -extern u8 *gTVPokemonOutbreakTextGroup[]; -extern u8 *gTVGabbyAndTyTextGroup[]; -extern u8 *gTVFishingGuruAdviceTextGroup[]; -extern u8 *gTVWorldOfMastersTextGroup[]; -extern struct OutbreakPokemon gPokeOutbreakSpeciesList[5]; - - - -extern const u8 *gTVNewsTextGroup1[]; -extern const u8 *gTVNewsTextGroup2[]; -extern const u8 *gTVNewsTextGroup3[]; - extern u16 gScriptLastTalked; extern u8 gScriptContestCategory; @@ -105,6 +86,351 @@ static u8 gUnknown_03000720; static u8 gUnknown_03000721; static s8 gUnknown_03000722; +const struct OutbreakPokemon gPokeOutbreakSpeciesList[5] = +{ + { + .species = SPECIES_SURSKIT, + .moves = {MOVE_BUBBLE, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE}, + .level = 3, + .location = MAPSEC_Route102, + }, + { + .species = SPECIES_SURSKIT, + .moves = {MOVE_BUBBLE, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE}, + .level = 15, + .location = MAPSEC_Route114, + }, + { + .species = SPECIES_SURSKIT, + .moves = {MOVE_BUBBLE, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE}, + .level = 15, + .location = MAPSEC_Route117, + }, + { + .species = SPECIES_SURSKIT, + .moves = {MOVE_BUBBLE, MOVE_QUICK_ATTACK, MOVE_NONE, MOVE_NONE}, + .level = 28, + .location = MAPSEC_Route120, + }, + { + .species = SPECIES_SKITTY, + .moves = {MOVE_GROWL, MOVE_TACKLE, MOVE_NONE, MOVE_NONE}, + .level = 15, + .location = MAPSEC_Route116, + }, +}; + +extern const u8 gTVNewsText_EnergyGuru1[]; +extern const u8 gTVNewsText_GameCorner1[]; +extern const u8 gTVNewsText_LilycoveDepartment1[]; +extern const u8 gTVNewsText_EnergyGuru2[]; +extern const u8 gTVNewsText_GameCorner2[]; +extern const u8 gTVNewsText_LilycoveDepartment2[]; +extern const u8 gTVNewsText_EnergyGuru3[]; +extern const u8 gTVNewsText_GameCorner3[]; +extern const u8 gTVNewsText_LilycoveDepartment3[]; +extern const u8 gTVFanClubText1[]; +extern const u8 gTVFanClubText2[]; +extern const u8 gTVFanClubText3[]; +extern const u8 gTVFanClubText4[]; +extern const u8 gTVFanClubText5[]; +extern const u8 gTVFanClubText6[]; +extern const u8 gTVFanClubText7[]; +extern const u8 gTVFanClubText8[]; +extern const u8 gTVRecentHappeningsText1[]; +extern const u8 gTVRecentHappeningsText2[]; +extern const u8 gTVRecentHappeningsText3[]; +extern const u8 gTVRecentHappeningsText4[]; +extern const u8 gTVRecentHappeningsText5[]; +extern const u8 gTVRecentHappeningsText6[]; +extern const u8 gTVFanClubOpinionsText1[]; +extern const u8 gTVFanClubOpinionsText2[]; +extern const u8 gTVFanClubOpinionsText3[]; +extern const u8 gTVFanClubOpinionsText4[]; +extern const u8 gTVFanClubOpinionsText5[]; +extern const u8 gTVPokemonOutbreakText[]; +extern const u8 gTVPokemonTodayText1[]; +extern const u8 gTVPokemonTodayText2[]; +extern const u8 gTVPokemonTodayText3[]; +extern const u8 gTVPokemonTodayText4[]; +extern const u8 gTVPokemonTodayText5[]; +extern const u8 gTVPokemonTodayText6[]; +extern const u8 gTVPokemonTodayText7[]; +extern const u8 gTVPokemonTodayText8[]; +extern const u8 gTVPokemonTodayText9[]; +extern const u8 gTVPokemonTodayText10[]; +extern const u8 gTVPokemonTodayText11[]; +extern const u8 gTVPokemonTodayText12[]; +extern const u8 gTVSmartShopperText1[]; +extern const u8 gTVSmartShopperText2[]; +extern const u8 gTVSmartShopperText3[]; +extern const u8 gTVSmartShopperText4[]; +extern const u8 gTVSmartShopperText5[]; +extern const u8 gTVSmartShopperText6[]; +extern const u8 gTVSmartShopperText7[]; +extern const u8 gTVSmartShopperText8[]; +extern const u8 gTVSmartShopperText9[]; +extern const u8 gTVSmartShopperText10[]; +extern const u8 gTVSmartShopperText11[]; +extern const u8 gTVSmartShopperText12[]; +extern const u8 gTVSmartShopperText13[]; +extern const u8 gTVBravoTrainerText1[]; +extern const u8 gTVBravoTrainerText2[]; +extern const u8 gTVBravoTrainerText3[]; +extern const u8 gTVBravoTrainerText4[]; +extern const u8 gTVBravoTrainerText5[]; +extern const u8 gTVBravoTrainerText6[]; +extern const u8 gTVBravoTrainerText7[]; +extern const u8 gTVBravoTrainerText8[]; +extern const u8 gTVBravoTrainerText9[]; +extern const u8 gTVBravoTrainerBattleTowerText1[]; +extern const u8 gTVBravoTrainerBattleTowerText2[]; +extern const u8 gTVBravoTrainerBattleTowerText3[]; +extern const u8 gTVBravoTrainerBattleTowerText4[]; +extern const u8 gTVBravoTrainerBattleTowerText5[]; +extern const u8 gTVBravoTrainerBattleTowerText6[]; +extern const u8 gTVBravoTrainerBattleTowerText7[]; +extern const u8 gTVBravoTrainerBattleTowerText8[]; +extern const u8 gTVBravoTrainerBattleTowerText9[]; +extern const u8 gTVBravoTrainerBattleTowerText10[]; +extern const u8 gTVBravoTrainerBattleTowerText11[]; +extern const u8 gTVBravoTrainerBattleTowerText12[]; +extern const u8 gTVBravoTrainerBattleTowerText13[]; +extern const u8 gTVBravoTrainerBattleTowerText14[]; +extern const u8 gTVBravoTrainerBattleTowerText15[]; +extern const u8 gTVNameRaterText1[]; +extern const u8 gTVNameRaterText2[]; +extern const u8 gTVNameRaterText3[]; +extern const u8 gTVNameRaterText4[]; +extern const u8 gTVNameRaterText5[]; +extern const u8 gTVNameRaterText6[]; +extern const u8 gTVNameRaterText7[]; +extern const u8 gTVNameRaterText8[]; +extern const u8 gTVNameRaterText9[]; +extern const u8 gTVNameRaterText10[]; +extern const u8 gTVNameRaterText11[]; +extern const u8 gTVNameRaterText12[]; +extern const u8 gTVNameRaterText13[]; +extern const u8 gTVNameRaterText14[]; +extern const u8 gTVNameRaterText15[]; +extern const u8 gTVNameRaterText16[]; +extern const u8 gTVNameRaterText17[]; +extern const u8 gTVNameRaterText18[]; +extern const u8 gTVNameRaterText19[]; +extern const u8 gTVPokemonTodayFailedCaptureText1[]; +extern const u8 gTVPokemonTodayFailedCaptureText2[]; +extern const u8 gTVPokemonTodayFailedCaptureText3[]; +extern const u8 gTVPokemonTodayFailedCaptureText4[]; +extern const u8 gTVPokemonTodayFailedCaptureText5[]; +extern const u8 gTVPokemonTodayFailedCaptureText6[]; +extern const u8 gTVPokemonTodayFailedCaptureText7[]; +extern const u8 gTVFishingGuruAdviceText1[]; +extern const u8 gTVFishingGuruAdviceText2[]; +extern const u8 gTVWorldOfMastersText1[]; +extern const u8 gTVWorldOfMastersText2[]; +extern const u8 gTVWorldOfMastersText3[]; +extern const u8 gTVGabbyAndTyText1[]; +extern const u8 gTVGabbyAndTyText2[]; +extern const u8 gTVGabbyAndTyText3[]; +extern const u8 gTVGabbyAndTyText4[]; +extern const u8 gTVGabbyAndTyText5[]; +extern const u8 gTVGabbyAndTyText6[]; +extern const u8 gTVGabbyAndTyText7[]; +extern const u8 gTVGabbyAndTyText8[]; +extern const u8 gTVGabbyAndTyText9[]; + +const u8 *const gTVNewsTextGroup1[] = +{ + NULL, + gTVNewsText_EnergyGuru1, + gTVNewsText_GameCorner1, + gTVNewsText_LilycoveDepartment1, +}; + +const u8 *const gTVNewsTextGroup2[] = +{ + NULL, + gTVNewsText_EnergyGuru2, + gTVNewsText_GameCorner2, + gTVNewsText_LilycoveDepartment2, +}; + +const u8 *const gTVNewsTextGroup3[] = +{ + NULL, + gTVNewsText_EnergyGuru3, + gTVNewsText_GameCorner3, + gTVNewsText_LilycoveDepartment3, +}; + +u8 *const gUnknown_083D1464[] = +{ + gStringVar1, + gStringVar2, + gStringVar3, +}; + +const u8 *const gTVFanClubTextGroup[] = +{ + gTVFanClubText1, + gTVFanClubText2, + gTVFanClubText3, + gTVFanClubText4, + gTVFanClubText5, + gTVFanClubText6, + gTVFanClubText7, + gTVFanClubText8, +}; + +const u8 *const gTVRecentHappeningsTextGroup[] = +{ + gTVRecentHappeningsText1, + gTVRecentHappeningsText2, + gTVRecentHappeningsText3, + gTVRecentHappeningsText4, + gTVRecentHappeningsText5, + gTVRecentHappeningsText6, +}; + +const u8 *const gTVFanClubOpinionsTextGroup[] = +{ + gTVFanClubOpinionsText1, + gTVFanClubOpinionsText2, + gTVFanClubOpinionsText3, + gTVFanClubOpinionsText4, + gTVFanClubOpinionsText5, +}; + +const u8 *const gTVPokemonOutbreakTextGroup[] = +{ + gTVPokemonOutbreakText, +}; + +const u8 *const gTVPokemonTodayTextGroup[] = +{ + gTVPokemonTodayText1, + gTVPokemonTodayText2, + gTVPokemonTodayText3, + gTVPokemonTodayText4, + gTVPokemonTodayText5, + gTVPokemonTodayText6, + gTVPokemonTodayText7, + gTVPokemonTodayText8, + gTVPokemonTodayText9, + gTVPokemonTodayText10, + gTVPokemonTodayText11, + gTVPokemonTodayText12, +}; + +const u8 *const gTVSmartShopperTextGroup[] = +{ + gTVSmartShopperText1, + gTVSmartShopperText2, + gTVSmartShopperText3, + gTVSmartShopperText4, + gTVSmartShopperText5, + gTVSmartShopperText6, + gTVSmartShopperText7, + gTVSmartShopperText8, + gTVSmartShopperText9, + gTVSmartShopperText10, + gTVSmartShopperText11, + gTVSmartShopperText12, + gTVSmartShopperText13, +}; + +const u8 *const gTVBravoTrainerTextGroup[] = +{ + gTVBravoTrainerText1, + gTVBravoTrainerText2, + gTVBravoTrainerText3, + gTVBravoTrainerText4, + gTVBravoTrainerText5, + gTVBravoTrainerText6, + gTVBravoTrainerText7, + gTVBravoTrainerText8, + gTVBravoTrainerText9, +}; + +const u8 *const gTVBravoTrainerBattleTowerTextGroup[] = +{ + gTVBravoTrainerBattleTowerText1, + gTVBravoTrainerBattleTowerText2, + gTVBravoTrainerBattleTowerText3, + gTVBravoTrainerBattleTowerText4, + gTVBravoTrainerBattleTowerText5, + gTVBravoTrainerBattleTowerText6, + gTVBravoTrainerBattleTowerText7, + gTVBravoTrainerBattleTowerText8, + gTVBravoTrainerBattleTowerText9, + gTVBravoTrainerBattleTowerText10, + gTVBravoTrainerBattleTowerText11, + gTVBravoTrainerBattleTowerText12, + gTVBravoTrainerBattleTowerText13, + gTVBravoTrainerBattleTowerText14, + gTVBravoTrainerBattleTowerText15, +}; + +const u8 *const gTVNameRaterTextGroup[] = +{ + gTVNameRaterText1, + gTVNameRaterText2, + gTVNameRaterText3, + gTVNameRaterText4, + gTVNameRaterText5, + gTVNameRaterText6, + gTVNameRaterText7, + gTVNameRaterText8, + gTVNameRaterText9, + gTVNameRaterText10, + gTVNameRaterText11, + gTVNameRaterText12, + gTVNameRaterText13, + gTVNameRaterText14, + gTVNameRaterText15, + gTVNameRaterText16, + gTVNameRaterText17, + gTVNameRaterText18, + gTVNameRaterText19, +}; + +const u8 *const gTVPokemonTodayFailedCaptureTextGroup[] = +{ + gTVPokemonTodayFailedCaptureText1, + gTVPokemonTodayFailedCaptureText2, + gTVPokemonTodayFailedCaptureText3, + gTVPokemonTodayFailedCaptureText4, + gTVPokemonTodayFailedCaptureText5, + gTVPokemonTodayFailedCaptureText6, + gTVPokemonTodayFailedCaptureText7, +}; + +const u8 *const gTVFishingGuruAdviceTextGroup[] = +{ + gTVFishingGuruAdviceText1, + gTVFishingGuruAdviceText2, +}; + +const u8 *const gTVWorldOfMastersTextGroup[] = +{ + gTVWorldOfMastersText1, + gTVWorldOfMastersText2, + gTVWorldOfMastersText3, +}; + +const u8 *const gTVGabbyAndTyTextGroup[] = +{ + gTVGabbyAndTyText1, + gTVGabbyAndTyText2, + gTVGabbyAndTyText3, + gTVGabbyAndTyText4, + gTVGabbyAndTyText5, + gTVGabbyAndTyText6, + gTVGabbyAndTyText7, + gTVGabbyAndTyText8, + gTVGabbyAndTyText9, +}; + void ClearTVShowData(void) { u8 showidx; diff --git a/src/pokemon/mon_markings.c b/src/pokemon/mon_markings.c index 0cad8db59..9ea738c7b 100644 --- a/src/pokemon/mon_markings.c +++ b/src/pokemon/mon_markings.c @@ -24,8 +24,8 @@ struct PokemonMarkMenu /*0x000C*/ struct Sprite *menuWindowSprites[2]; // upper and lower halves of menu window /*0x0014*/ struct Sprite *menuMarkingSprites[4]; /*0x0024*/ struct Sprite *menuTextSprite; - /*0x0028*/ u8 *frameTiles; - /*0x002C*/ u16 *framePalette; + /*0x0028*/ const u8 *frameTiles; + /*0x002C*/ const u16 *framePalette; /*0x0030*/ u8 menuWindowSpriteTiles[0x1000]; /*0x1030*/ u8 filler1030[0x80]; /*0x10B0*/ u8 tileLoadState; diff --git a/src/pokemon/pokemon_3.c b/src/pokemon/pokemon_3.c index 19786e506..a8e824b33 100644 --- a/src/pokemon/pokemon_3.c +++ b/src/pokemon/pokemon_3.c @@ -56,10 +56,10 @@ extern u16 gBattlePartyID[]; extern u8 gJapaneseNidoranNames[][11]; extern u8 gUnknown_082082F8[]; -extern u8 gUnknown_083FFDB3[]; -extern u8 gUnknown_083FFDD3[]; -extern u8 gUnknown_083FEE5D[]; -extern u8 gUnknown_083FEE92[]; +extern u8 BattleText_Rose[]; +extern u8 BattleText_UnknownString3[]; +extern u8 BattleText_MistShroud[]; +extern u8 BattleText_GetPumped[]; extern u8 *gUnknown_08400F58[]; bool8 HealStatusConditions(struct Pokemon *mon, u32 unused, u32 healMask, u8 battleId) @@ -197,8 +197,8 @@ void sub_803F324(int stat) { gBankTarget = gBankInMenu; StringCopy(gBattleTextBuff1, gUnknown_08400F58[gUnknown_082082F8[stat]]); - StringCopy(gBattleTextBuff2, gUnknown_083FFDB3); - StrCpyDecodeToDisplayedStringBattle(gUnknown_083FFDD3); + StringCopy(gBattleTextBuff2, BattleText_Rose); + StrCpyDecodeToDisplayedStringBattle(BattleText_UnknownString3); } u8 *sub_803F378(u16 itemId) @@ -237,7 +237,7 @@ u8 *sub_803F378(u16 itemId) else { gBankAttacker = gBankInMenu; - StrCpyDecodeToDisplayedStringBattle(gUnknown_083FEE92); + StrCpyDecodeToDisplayedStringBattle(BattleText_GetPumped); } } } @@ -245,7 +245,7 @@ u8 *sub_803F378(u16 itemId) if (itemEffect[3] & 0x80) { gBankAttacker = gBankInMenu; - StrCpyDecodeToDisplayedStringBattle(gUnknown_083FEE5D); + StrCpyDecodeToDisplayedStringBattle(BattleText_MistShroud); } return gDisplayedStringBattle; diff --git a/src/scene/evolution_scene.c b/src/scene/evolution_scene.c index 755176c81..4b73ab5b2 100644 --- a/src/scene/evolution_scene.c +++ b/src/scene/evolution_scene.c @@ -85,9 +85,9 @@ extern u8 gBattleCommunication[]; #define sEvoCursorPos gBattleCommunication[1] // when learning a new move #define sEvoGraphicsTaskID gBattleCommunication[2] -extern const u8 gUnknown_08400C4A[]; -extern const u8 gUnknown_08400C60[]; -extern const u8 gUnknown_08400C8D[]; +extern const u8 BattleText_StartEvo[]; +extern const u8 BattleText_FinishEvo[]; +extern const u8 BattleText_StopEvo[]; extern void * const gUnknown_081FAF4C[]; extern const u8* const gBattleStringsTable[]; @@ -557,7 +557,7 @@ static void Task_EvolutionScene(u8 taskID) case 1: // print 'whoa, poke is evolving!!!' msg if (!gPaletteFade.active) { - StringExpandPlaceholders(gStringVar4, gUnknown_08400C4A); + StringExpandPlaceholders(gStringVar4, BattleText_StartEvo); sub_8002EB0(&gUnknown_03004210, gStringVar4, 144, 2, 15); gTasks[taskID].tState++; } @@ -645,7 +645,7 @@ static void Task_EvolutionScene(u8 taskID) case 13: // congratulations string and rename prompt if (IsCryFinished() && !gPaletteFade.active) { - StringExpandPlaceholders(gStringVar4, gUnknown_08400C60); + StringExpandPlaceholders(gStringVar4, BattleText_FinishEvo); sub_8002EB0(&gUnknown_03004210, gStringVar4, 144, 2, 15); PlayBGM(BGM_FANFA5); gTasks[taskID].tState++; @@ -714,7 +714,7 @@ static void Task_EvolutionScene(u8 taskID) case 18: // after the cry, print the string 'WHOA IT DID NOT EVOLVE!!!' if (IsCryFinished()) { - StringExpandPlaceholders(gStringVar4, gUnknown_08400C8D); + StringExpandPlaceholders(gStringVar4, BattleText_StopEvo); sub_8002EB0(&gUnknown_03004210, gStringVar4, 144, 2, 15); gTasks[taskID].tEvoWasStopped = TRUE; gTasks[taskID].tState = 14; @@ -899,7 +899,7 @@ static void Task_TradeEvolutionScene(u8 taskID) switch (gTasks[taskID].tState) { case 0: - StringExpandPlaceholders(gStringVar4, gUnknown_08400C4A); + StringExpandPlaceholders(gStringVar4, BattleText_StartEvo); sub_8002EB0(&gUnknown_03004828->window, gStringVar4, gUnknown_03004828->textWindowBaseTileNum, 2, 15); gTasks[taskID].tState++; break; @@ -987,7 +987,7 @@ static void Task_TradeEvolutionScene(u8 taskID) case 12: if (IsCryFinished() && !gPaletteFade.active) { - StringExpandPlaceholders(gStringVar4, gUnknown_08400C60); + StringExpandPlaceholders(gStringVar4, BattleText_FinishEvo); sub_8002EB0(&gUnknown_03004828->window, gStringVar4, gUnknown_03004828->textWindowBaseTileNum, 2, 15); PlayFanfare(BGM_FANFA5); gTasks[taskID].tState++; |